Merge branch 'release_1.6.0'
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 c45a8ad..20e2b56 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
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: My Sample App

 Bundle-SymbolicName: org.eclipse.emf.ecp.application.e4.fx;singleton:=true

-Bundle-Version: 1.5.1.qualifier

+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8

 Require-Bundle: org.eclipse.fx.ui.workbench.fx,

  org.eclipse.e4.ui.model.workbench,

diff --git a/bundles/javafx/org.eclipse.emf.ecp.application.e4.fx/pom.xml b/bundles/javafx/org.eclipse.emf.ecp.application.e4.fx/pom.xml
index 0d93707..1b3db58 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.application.e4.fx/pom.xml
+++ b/bundles/javafx/org.eclipse.emf.ecp.application.e4.fx/pom.xml
@@ -9,7 +9,7 @@
 		<groupId>org.eclipse.emf.ecp.fx</groupId>

 		<artifactId>ecp-fx-parent</artifactId>

 		<relativePath>../../../releng/javafx/org.eclipse.emf.ecp.fx.releng/pom.xml</relativePath>

-		<version>1.5.1-SNAPSHOT</version>

+		<version>1.6.0-SNAPSHOT</version>
 	</parent>

 

 	<build>

@@ -29,5 +29,5 @@
 		</plugins>

 	</build>

 

-	<version>1.5.1-SNAPSHOT</version>

+	<version>1.6.0-SNAPSHOT</version>
 </project>

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 9ed104e..4043cbf 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
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Controls FX
 Bundle-SymbolicName: org.eclipse.emf.ecp.controls.fx;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.controls.internal.fx.Activator
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.emf.ecp.edit;bundle-version="[1.3.0,2.0.0]",
diff --git a/bundles/javafx/org.eclipse.emf.ecp.controls.fx/pom.xml b/bundles/javafx/org.eclipse.emf.ecp.controls.fx/pom.xml
index 8c5fe3b..4ed7814 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.controls.fx/pom.xml
+++ b/bundles/javafx/org.eclipse.emf.ecp.controls.fx/pom.xml
@@ -9,8 +9,8 @@
 		<groupId>org.eclipse.emf.ecp.fx</groupId>

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

 		<relativePath>../../../releng/javafx/org.eclipse.emf.ecp.fx.releng.bundles/pom.xml</relativePath>

-		<version>1.5.1-SNAPSHOT</version>

+		<version>1.6.0-SNAPSHOT</version>
 	</parent>

 

-	<version>1.5.1-SNAPSHOT</version>

+	<version>1.6.0-SNAPSHOT</version>
 </project>

diff --git a/bundles/javafx/org.eclipse.emf.ecp.emfstore.ui.e4.fx/META-INF/MANIFEST.MF b/bundles/javafx/org.eclipse.emf.ecp.emfstore.ui.e4.fx/META-INF/MANIFEST.MF
index 9ff1596..55b1ead 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.emfstore.ui.e4.fx/META-INF/MANIFEST.MF
+++ b/bundles/javafx/org.eclipse.emf.ecp.emfstore.ui.e4.fx/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFStore e4 FX
 Bundle-SymbolicName: org.eclipse.emf.ecp.emfstore.ui.e4.fx;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Fragment-Host: org.eclipse.emf.emfstore.fx.projects;bundle-version="[1.3.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
diff --git a/bundles/javafx/org.eclipse.emf.ecp.emfstore.ui.e4.fx/pom.xml b/bundles/javafx/org.eclipse.emf.ecp.emfstore.ui.e4.fx/pom.xml
index 66840c0..9b998ed 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.emfstore.ui.e4.fx/pom.xml
+++ b/bundles/javafx/org.eclipse.emf.ecp.emfstore.ui.e4.fx/pom.xml
@@ -9,8 +9,8 @@
 		<groupId>org.eclipse.emf.ecp.fx</groupId>

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

 		<relativePath>../../../releng/javafx/org.eclipse.emf.ecp.fx.releng.bundles/pom.xml</relativePath>

-		<version>1.5.1-SNAPSHOT</version>

+		<version>1.6.0-SNAPSHOT</version>
 	</parent>

-

-	<version>1.5.1-SNAPSHOT</version>

+
+	<version>1.6.0-SNAPSHOT</version>
 </project>

diff --git a/bundles/javafx/org.eclipse.emf.ecp.util.e4.fx/META-INF/MANIFEST.MF b/bundles/javafx/org.eclipse.emf.ecp.util.e4.fx/META-INF/MANIFEST.MF
index d41f453..2eef829 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.util.e4.fx/META-INF/MANIFEST.MF
+++ b/bundles/javafx/org.eclipse.emf.ecp.util.e4.fx/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: E4 Util Fx
 Bundle-SymbolicName: org.eclipse.emf.ecp.util.e4.fx
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
@@ -10,4 +10,4 @@
  org.eclipse.e4.ui.model.workbench,
  org.eclipse.e4.core.contexts,
  org.eclipse.emf.emfstore.client
-Export-Package: org.eclipse.emf.ecp.util.e4.fx;version="1.5.1"
+Export-Package: org.eclipse.emf.ecp.util.e4.fx;version="1.6.0"
diff --git a/bundles/javafx/org.eclipse.emf.ecp.util.e4.fx/pom.xml b/bundles/javafx/org.eclipse.emf.ecp.util.e4.fx/pom.xml
index 4df78fd..ccbd749 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.util.e4.fx/pom.xml
+++ b/bundles/javafx/org.eclipse.emf.ecp.util.e4.fx/pom.xml
@@ -9,8 +9,8 @@
 		<groupId>org.eclipse.emf.ecp.fx</groupId>

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

 		<relativePath>../../../releng/javafx/org.eclipse.emf.ecp.fx.releng.bundles/pom.xml</relativePath>

-		<version>1.5.1-SNAPSHOT</version>

+		<version>1.6.0-SNAPSHOT</version>
 	</parent>

 

-	<version>1.5.1-SNAPSHOT</version>

+	<version>1.6.0-SNAPSHOT</version>
 </project>

diff --git a/bundles/javafx/org.eclipse.emf.ecp.util.fx/META-INF/MANIFEST.MF b/bundles/javafx/org.eclipse.emf.ecp.util.fx/META-INF/MANIFEST.MF
index 29db410..81d38c0 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.util.fx/META-INF/MANIFEST.MF
+++ b/bundles/javafx/org.eclipse.emf.ecp.util.fx/META-INF/MANIFEST.MF
@@ -2,10 +2,10 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: FX Util
 Bundle-SymbolicName: org.eclipse.emf.ecp.util.fx
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: ECLIPSESOURCE
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Export-Package: org.eclipse.emf.ecp.util.fx;version="1.5.1"
+Export-Package: org.eclipse.emf.ecp.util.fx;version="1.6.0"
 Require-Bundle: org.eclipse.emf.edit
 Import-Package: javafx.collections;version="2.2.0",
  javafx.event;version="2.2.0",
diff --git a/bundles/javafx/org.eclipse.emf.ecp.util.fx/pom.xml b/bundles/javafx/org.eclipse.emf.ecp.util.fx/pom.xml
index 68d2ed4..50ea429 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.util.fx/pom.xml
+++ b/bundles/javafx/org.eclipse.emf.ecp.util.fx/pom.xml
@@ -9,8 +9,8 @@
 		<groupId>org.eclipse.emf.ecp.fx</groupId>

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

 		<relativePath>../../../releng/javafx/org.eclipse.emf.ecp.fx.releng.bundles/pom.xml</relativePath>

-		<version>1.5.1-SNAPSHOT</version>

+		<version>1.6.0-SNAPSHOT</version>

 	</parent>

 

-	<version>1.5.1-SNAPSHOT</version>

+	<version>1.6.0-SNAPSHOT</version>

 </project>

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 01a6818..248ea38 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
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP View Group Fx
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.group.fx;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.group.fx.Activator
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Import-Package: javafx.collections;version="2.2.0",
@@ -14,4 +14,4 @@
 Require-Bundle: org.eclipse.emf.ecp.view.group.model;bundle-version="[1.3.0,2.0.0]",
  org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.3.0,2.0.0]",
  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.3.0,2.0.0)"
-Export-Package: org.eclipse.emf.ecp.view.group.fx;version="1.5.1"
+Export-Package: org.eclipse.emf.ecp.view.group.fx;version="1.6.0"
diff --git a/bundles/javafx/org.eclipse.emf.ecp.view.group.fx/pom.xml b/bundles/javafx/org.eclipse.emf.ecp.view.group.fx/pom.xml
index 13a3292..f7ea76c 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.view.group.fx/pom.xml
+++ b/bundles/javafx/org.eclipse.emf.ecp.view.group.fx/pom.xml
@@ -9,8 +9,8 @@
 		<groupId>org.eclipse.emf.ecp.fx</groupId>

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

 		<relativePath>../../../releng/javafx/org.eclipse.emf.ecp.fx.releng.bundles/pom.xml</relativePath>

-		<version>1.5.1-SNAPSHOT</version>

+		<version>1.6.0-SNAPSHOT</version>

 	</parent>

 

-	<version>1.5.1-SNAPSHOT</version>

+	<version>1.6.0-SNAPSHOT</version>

 </project>

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 680d18a..247b6be 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
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: HorizontalLayout FX
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.horizontal.fx;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.horizontal.fx.Activator
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.3.0,2.0.0]",
@@ -15,4 +15,4 @@
  javafx.scene.control;version="2.2.0",
  javafx.scene.layout;version="2.2.0",
  javafx.util;version="2.2.0"
-Export-Package: org.eclipse.emf.ecp.view.horizontal.fx;version="1.5.1"
+Export-Package: org.eclipse.emf.ecp.view.horizontal.fx;version="1.6.0"
diff --git a/bundles/javafx/org.eclipse.emf.ecp.view.horizontal.fx/pom.xml b/bundles/javafx/org.eclipse.emf.ecp.view.horizontal.fx/pom.xml
index c7560b6..c40d52b 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.view.horizontal.fx/pom.xml
+++ b/bundles/javafx/org.eclipse.emf.ecp.view.horizontal.fx/pom.xml
@@ -9,8 +9,8 @@
 		<groupId>org.eclipse.emf.ecp.fx</groupId>

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

 		<relativePath>../../../releng/javafx/org.eclipse.emf.ecp.fx.releng.bundles/pom.xml</relativePath>

-		<version>1.5.1-SNAPSHOT</version>

+		<version>1.6.0-SNAPSHOT</version>

 	</parent>

 

-	<version>1.5.1-SNAPSHOT</version>

+	<version>1.6.0-SNAPSHOT</version>

 </project>

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 c3d4142..a55ea06 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
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Fx
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.label.fx;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.eclipse.emf.ecp.view.model.fx;bundle-version="1.0.0",
diff --git a/bundles/javafx/org.eclipse.emf.ecp.view.label.fx/pom.xml b/bundles/javafx/org.eclipse.emf.ecp.view.label.fx/pom.xml
index 603437b..a74f24a 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.view.label.fx/pom.xml
+++ b/bundles/javafx/org.eclipse.emf.ecp.view.label.fx/pom.xml
@@ -9,8 +9,8 @@
 		<groupId>org.eclipse.emf.ecp.fx</groupId>

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

 		<relativePath>../../../releng/javafx/org.eclipse.emf.ecp.fx.releng.bundles/pom.xml</relativePath>

-		<version>1.5.1-SNAPSHOT</version>

+		<version>1.6.0-SNAPSHOT</version>

 	</parent>

 

-	<version>1.5.1-SNAPSHOT</version>

+	<version>1.6.0-SNAPSHOT</version>

 </project>

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 be9f683..bd95850 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
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP FX View Model Renderer
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.fx;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.model.internal.fx.Activator
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.emf.ecp.view.model;bundle-version="[1.3.0,2.0.0]",
@@ -14,8 +14,8 @@
  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.3.0,2.0.0)";visibility:=reexport
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emf.ecp.view.model.fx;version="1.5.1",
- org.eclipse.emf.ecp.view.model.internal.fx;version="1.5.1"
+Export-Package: org.eclipse.emf.ecp.view.model.fx;version="1.6.0",
+ org.eclipse.emf.ecp.view.model.internal.fx;version="1.6.0"
 Import-Package: javafx.collections;version="2.2.0",
  javafx.scene;version="2.2.0",
  javafx.scene.control;version="2.2.0",
diff --git a/bundles/javafx/org.eclipse.emf.ecp.view.model.fx/pom.xml b/bundles/javafx/org.eclipse.emf.ecp.view.model.fx/pom.xml
index 7a0f237..0b32515 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.view.model.fx/pom.xml
+++ b/bundles/javafx/org.eclipse.emf.ecp.view.model.fx/pom.xml
@@ -9,8 +9,8 @@
 		<groupId>org.eclipse.emf.ecp.fx</groupId>

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

 		<relativePath>../../../releng/javafx/org.eclipse.emf.ecp.fx.releng.bundles/pom.xml</relativePath>

-		<version>1.5.1-SNAPSHOT</version>

+		<version>1.6.0-SNAPSHOT</version>

 	</parent>

 

-	<version>1.5.1-SNAPSHOT</version>

+	<version>1.6.0-SNAPSHOT</version>

 </project>

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 b24333c..d4e8d19 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
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: TreeMasterDetail FX
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.treemasterdetail.fx;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.treemasterdetail.fx.Activator
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Import-Package: javafx.beans.property;version="2.2.0",
@@ -21,4 +21,4 @@
  org.eclipse.emf.edit;bundle-version="2.9.0",
  org.eclipse.emf.ecp.util.fx;bundle-version="[1.3.0,2.0.0]",
  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.3.0,2.0.0)"
-Export-Package: org.eclipse.emf.ecp.view.treemasterdetail.fx;version="1.5.1"
+Export-Package: org.eclipse.emf.ecp.view.treemasterdetail.fx;version="1.6.0"
diff --git a/bundles/javafx/org.eclipse.emf.ecp.view.treemasterdetail.fx/pom.xml b/bundles/javafx/org.eclipse.emf.ecp.view.treemasterdetail.fx/pom.xml
index 8419f96..c0a743a 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.view.treemasterdetail.fx/pom.xml
+++ b/bundles/javafx/org.eclipse.emf.ecp.view.treemasterdetail.fx/pom.xml
@@ -9,8 +9,8 @@
 		<groupId>org.eclipse.emf.ecp.fx</groupId>

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

 		<relativePath>../../../releng/javafx/org.eclipse.emf.ecp.fx.releng.bundles/pom.xml</relativePath>

-		<version>1.5.1-SNAPSHOT</version>

+		<version>1.6.0-SNAPSHOT</version>

 	</parent>

 

-	<version>1.5.1-SNAPSHOT</version>

+	<version>1.6.0-SNAPSHOT</version>

 </project>

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 9cbb1e5..1f25b1e 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
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: VerticalLayout FX
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.vertical.fx;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.vertical.fx.Activator
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.3.0,2.0.0]",
@@ -14,4 +14,4 @@
  javafx.scene;version="2.2.0",
  javafx.scene.control;version="2.2.0",
  javafx.scene.layout;version="2.2.0"
-Export-Package: org.eclipse.emf.ecp.view.vertical.fx;version="1.5.1"
+Export-Package: org.eclipse.emf.ecp.view.vertical.fx;version="1.6.0"
diff --git a/bundles/javafx/org.eclipse.emf.ecp.view.vertical.fx/pom.xml b/bundles/javafx/org.eclipse.emf.ecp.view.vertical.fx/pom.xml
index d70e14d..9c02c9b 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.view.vertical.fx/pom.xml
+++ b/bundles/javafx/org.eclipse.emf.ecp.view.vertical.fx/pom.xml
@@ -9,8 +9,8 @@
 		<groupId>org.eclipse.emf.ecp.fx</groupId>

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

 		<relativePath>../../../releng/javafx/org.eclipse.emf.ecp.fx.releng.bundles/pom.xml</relativePath>

-		<version>1.5.1-SNAPSHOT</version>

+		<version>1.6.0-SNAPSHOT</version>

 	</parent>

 

-	<version>1.5.1-SNAPSHOT</version>

+	<version>1.6.0-SNAPSHOT</version>

 </project>

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 6ee6ebd..f2d0be2 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
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Projects
 Bundle-SymbolicName: org.eclipse.emf.emfstore.fx.projects;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.emfstore.fx.internal.projects.Activator
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Import-Package: javafx.beans.property;version="2.2.0",
@@ -27,4 +27,4 @@
  org.eclipse.emf.ecp.util.fx;bundle-version="[1.3.0,2.0.0]",
  org.eclipse.e4.ui.workbench,
  org.eclipse.emf.ecp.util.e4.fx;bundle-version="[1.3.0,2.0.0]"
-Export-Package: org.eclipse.emf.emfstore.fx.internal.projects;version="1.5.1";x-internal:="true"
+Export-Package: org.eclipse.emf.emfstore.fx.internal.projects;version="1.6.0";x-internal:="true"
diff --git a/bundles/javafx/org.eclipse.emf.emfstore.fx.projects/pom.xml b/bundles/javafx/org.eclipse.emf.emfstore.fx.projects/pom.xml
index 8132622..44018a45 100644
--- a/bundles/javafx/org.eclipse.emf.emfstore.fx.projects/pom.xml
+++ b/bundles/javafx/org.eclipse.emf.emfstore.fx.projects/pom.xml
@@ -9,8 +9,8 @@
 		<groupId>org.eclipse.emf.ecp.fx</groupId>

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

 		<relativePath>../../../releng/javafx/org.eclipse.emf.ecp.fx.releng.bundles/pom.xml</relativePath>

-		<version>1.5.1-SNAPSHOT</version>

+		<version>1.6.0-SNAPSHOT</version>

 	</parent>

 

-	<version>1.5.1-SNAPSHOT</version>

+	<version>1.6.0-SNAPSHOT</version>

 </project>

diff --git a/bundles/javafx/org.eclipse.emf.emfstore.fx.util/META-INF/MANIFEST.MF b/bundles/javafx/org.eclipse.emf.emfstore.fx.util/META-INF/MANIFEST.MF
index 38c0789..32fe777 100644
--- a/bundles/javafx/org.eclipse.emf.emfstore.fx.util/META-INF/MANIFEST.MF
+++ b/bundles/javafx/org.eclipse.emf.emfstore.fx.util/META-INF/MANIFEST.MF
@@ -2,8 +2,8 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFStore FX Util
 Bundle-SymbolicName: org.eclipse.emf.emfstore.fx.util
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.eclipse.emf.emfstore.client
-Export-Package: org.eclipse.emf.emfstore.fx.util;version="1.5.1"
+Export-Package: org.eclipse.emf.emfstore.fx.util;version="1.6.0"
diff --git a/bundles/javafx/org.eclipse.emf.emfstore.fx.util/pom.xml b/bundles/javafx/org.eclipse.emf.emfstore.fx.util/pom.xml
index bc37dcb..02e16f2 100644
--- a/bundles/javafx/org.eclipse.emf.emfstore.fx.util/pom.xml
+++ b/bundles/javafx/org.eclipse.emf.emfstore.fx.util/pom.xml
@@ -9,8 +9,8 @@
 		<groupId>org.eclipse.emf.ecp.fx</groupId>

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

 		<relativePath>../../../releng/javafx/org.eclipse.emf.ecp.fx.releng.bundles/pom.xml</relativePath>

-		<version>1.5.1-SNAPSHOT</version>

+		<version>1.6.0-SNAPSHOT</version>

 	</parent>

 

-	<version>1.5.1-SNAPSHOT</version>

+	<version>1.6.0-SNAPSHOT</version>

 </project>

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 85a2fca..3bac595 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Demo Application Eclipse 3.x
 Bundle-SymbolicName: org.eclipse.emf.ecp.application.e3;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.application3x.Activator
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.emf.ecp.ui.e3;bundle-version="[1.5.0,2.0.0)",
@@ -13,6 +13,6 @@
 Bundle-ActivationPolicy: lazy
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.ecp.application3x;version="1.5.1";x-in
+Export-Package: org.eclipse.emf.ecp.application3x;version="1.6.0";x-in
  ternal:=true
 Bundle-Vendor: Eclipse Modeling Project
diff --git a/bundles/org.eclipse.emf.ecp.application.e3/pom.xml b/bundles/org.eclipse.emf.ecp.application.e3/pom.xml
index 4ff461b..d6d580c 100644
--- a/bundles/org.eclipse.emf.ecp.application.e3/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.application.e3/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.application.e4/.gitignore b/bundles/org.eclipse.emf.ecp.application.e4/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.application.e4/.gitignore
@@ -0,0 +1 @@
+/bin/
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 0e9cd80..eeb7ce0 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,7 +2,7 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: ECP e4 Application

 Bundle-SymbolicName: org.eclipse.emf.ecp.application.e4;singleton:=true

-Bundle-Version: 1.5.1.qualifier

+Bundle-Version: 1.6.0.qualifier

 Require-Bundle: org.eclipse.emf.ecp.ui.e4;bundle-version="[1.5.0,2.0.0)",

  org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)",

  org.eclipse.emf.ecp.core;bundle-version="[1.5.0,2.0.0)",

@@ -12,6 +12,6 @@
  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.6

-Export-Package: org.eclipse.emf.ecp.application.e4.editor;version="1.5

- .1";x-internal:=true

+Export-Package: org.eclipse.emf.ecp.application.e4.editor;version="1.6

+ .0";x-internal:=true

 Bundle-Vendor: Eclipse Modeling Project

diff --git a/bundles/org.eclipse.emf.ecp.application.e4/pom.xml b/bundles/org.eclipse.emf.ecp.application.e4/pom.xml
index 918436e..e542887 100644
--- a/bundles/org.eclipse.emf.ecp.application.e4/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.application.e4/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
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 b113d4c..12c2bcc 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,7 +2,7 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: ECP CDO Model Repository Core

 Bundle-SymbolicName: org.eclipse.emf.ecp.cdo.core;singleton:=true

-Bundle-Version: 1.5.1.qualifier

+Bundle-Version: 1.6.0.qualifier

 Bundle-Activator: org.eclipse.emf.ecp.cdo.internal.core.Activator

 Bundle-ActivationPolicy: lazy

 Bundle-RequiredExecutionEnvironment: JavaSE-1.6

@@ -14,6 +14,6 @@
  org.eclipse.net4j.db.h2;bundle-version="[4.0.0,5.0.0)"

 Import-Package: org.h2;version="[1.0.2.qualifier,2.0.0)",

  org.h2.jdbcx;version="[1.0.2.qualifier,2.0.0)"

-Export-Package: org.eclipse.emf.ecp.cdo.internal.core;version="1.5.1";

+Export-Package: org.eclipse.emf.ecp.cdo.internal.core;version="1.6.0";

  x-friends:="org.eclipse.emf.ecp.cdo.ui"

 Bundle-Vendor: Eclipse Modeling Project

diff --git a/bundles/org.eclipse.emf.ecp.cdo.core/pom.xml b/bundles/org.eclipse.emf.ecp.cdo.core/pom.xml
index 6789f79..2abb526 100644
--- a/bundles/org.eclipse.emf.ecp.cdo.core/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.cdo.core/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.cdo.core/src/org/eclipse/emf/ecp/cdo/internal/core/CDOProvider.java b/bundles/org.eclipse.emf.ecp.cdo.core/src/org/eclipse/emf/ecp/cdo/internal/core/CDOProvider.java
index c7b6018..17a7afe 100644
--- a/bundles/org.eclipse.emf.ecp.cdo.core/src/org/eclipse/emf/ecp/cdo/internal/core/CDOProvider.java
+++ b/bundles/org.eclipse.emf.ecp.cdo.core/src/org/eclipse/emf/ecp/cdo/internal/core/CDOProvider.java
@@ -105,7 +105,9 @@
 	 * Get the CDO Provider singleton.

 	 *

 	 * @return the singleton instance or null

+	 * @deprecated use ECPUtil.getECPProviderRegistry().getProvider(CDOProvider.NAME) instead

 	 */

+	@Deprecated

 	public static CDOProvider getInstance() {

 		// TODO: what if instance is still null because constructor was never called?

 		return instance;

@@ -396,10 +398,8 @@
 	/** {@inheritDoc} */

 	@Override

 	public void delete(InternalProject project, Collection<Object> objects) {

-		// CDOResource cdoResource = getProjectData(project).getRootResource();

-

-		// cdoResource.eContents().removeAll(eObjects);

-

+		final CDOResource cdoResource = getProjectData(project).getRootResource();

+		cdoResource.getContents().removeAll(objects);

 	}

 

 	/** {@inheritDoc} */

diff --git a/bundles/org.eclipse.emf.ecp.cdo.ui/.gitignore b/bundles/org.eclipse.emf.ecp.cdo.ui/.gitignore
index ed6c2ea..6a9e5d8 100644
--- a/bundles/org.eclipse.emf.ecp.cdo.ui/.gitignore
+++ b/bundles/org.eclipse.emf.ecp.cdo.ui/.gitignore
@@ -1,2 +1,3 @@
 /bin

 /target
+/bin/
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 0b24de3..85d0303 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,7 +2,7 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: CDO Model Repository ECP UI

 Bundle-SymbolicName: org.eclipse.emf.ecp.cdo.ui;singleton:=true

-Bundle-Version: 1.5.1.qualifier

+Bundle-Version: 1.6.0.qualifier

 Bundle-Activator: org.eclipse.emf.ecp.cdo.internal.ui.Activator

 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",

  org.eclipse.emf.ecp.cdo.core;bundle-version="[1.5.0,2.0.0)",

@@ -12,7 +12,7 @@
  org.eclipse.net4j.util.ui;bundle-version="[3.0.0,4.0.0)"

 Bundle-ActivationPolicy: lazy

 Bundle-RequiredExecutionEnvironment: JavaSE-1.6

-Export-Package: org.eclipse.emf.ecp.cdo.internal.ui;version="1.5.1";x-

+Export-Package: org.eclipse.emf.ecp.cdo.internal.ui;version="1.6.0";x-

  internal:=true,org.eclipse.emf.ecp.cdo.internal.ui.handlers;version="

- 1.5.1";x-internal:=true

+ 1.6.0";x-internal:=true

 Bundle-Vendor: Eclipse Modeling Project

diff --git a/bundles/org.eclipse.emf.ecp.cdo.ui/pom.xml b/bundles/org.eclipse.emf.ecp.cdo.ui/pom.xml
index 88891e0..79f5607 100644
--- a/bundles/org.eclipse.emf.ecp.cdo.ui/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.cdo.ui/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.changebroker.emfstore/.gitignore b/bundles/org.eclipse.emf.ecp.changebroker.emfstore/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.changebroker.emfstore/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.changebroker.emfstore/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.changebroker.emfstore/META-INF/MANIFEST.MF
index 34282e2..ea598d8 100644
--- a/bundles/org.eclipse.emf.ecp.changebroker.emfstore/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.changebroker.emfstore/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Change Broker EMFStore Provider
 Bundle-SymbolicName: org.eclipse.emf.ecp.changebroker.emfstore
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.emf.ecp.changebroker;bundle-version="[1.5.0,2.0.0)",
@@ -11,6 +11,6 @@
  org.eclipse.emf.ecp.core;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)"
 Export-Package: org.eclipse.emf.ecp.changebroker.emfstore.internal;ver
- sion="1.5.1";x-internal:=true
+ sion="1.6.0";x-internal:=true
 Service-Component: OSGI-INF/component.xml
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.changebroker.emfstore/pom.xml b/bundles/org.eclipse.emf.ecp.changebroker.emfstore/pom.xml
index 6c58e67..6a1a4fe 100644
--- a/bundles/org.eclipse.emf.ecp.changebroker.emfstore/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.changebroker.emfstore/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.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.emfstore</artifactId>
-  <version>1.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.changebroker/.gitignore b/bundles/org.eclipse.emf.ecp.changebroker/.gitignore
index 934e0e0..bf56436 100644
--- a/bundles/org.eclipse.emf.ecp.changebroker/.gitignore
+++ b/bundles/org.eclipse.emf.ecp.changebroker/.gitignore
@@ -1,2 +1,3 @@
 /bin
 /target
+/bin/
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 526c935..ea27e6e 100644
--- a/bundles/org.eclipse.emf.ecp.changebroker/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.changebroker/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Change Broker
 Bundle-SymbolicName: org.eclipse.emf.ecp.changebroker
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Require-Bundle: org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.changebroker.internal;version="1.5
- .1";x-internal:=true,org.eclipse.emf.ecp.changebroker.spi;version="1.
- 5.1"
+Export-Package: org.eclipse.emf.ecp.changebroker.internal;version="1.6
+ .0";x-internal:=true,org.eclipse.emf.ecp.changebroker.spi;version="1.
+ 6.0"
 Service-Component: OSGI-INF/component.xml
 
diff --git a/bundles/org.eclipse.emf.ecp.changebroker/pom.xml b/bundles/org.eclipse.emf.ecp.changebroker/pom.xml
index 6095a5e..04fe585 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.common.ui/.gitignore b/bundles/org.eclipse.emf.ecp.common.ui/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.common.ui/.gitignore
@@ -0,0 +1 @@
+/bin/
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 93c449d..39d9e92 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Common UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.common.ui
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Import-Package: org.eclipse.emf.edit.ui.provider;version="0.0.0",
@@ -18,9 +18,9 @@
  org.eclipse.swt.widgets;version="0.0.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.5.0,2.0.0)"
-Export-Package: org.eclipse.emf.ecp.common.ui;version="1.5.1",org.ecli
- pse.emf.ecp.internal.common.ui;version="1.5.1";x-internal:=true,org.e
- clipse.emf.ecp.spi.common.ui;version="1.5.1",org.eclipse.emf.ecp.spi.
- common.ui.composites;version="1.5.1"
+ org.eclipse.emf.ecp.common;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.6.0,2.0.0)"
+Export-Package: org.eclipse.emf.ecp.internal.common.ui;version="1.6.0"
+ ;x-internal:=true,org.eclipse.emf.ecp.spi.common.ui;version="1.6.0",o
+ rg.eclipse.emf.ecp.spi.common.ui.composites;version="1.6.0"
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.common.ui/src/org/eclipse/emf/ecp/common/ui/messages.properties b/bundles/org.eclipse.emf.ecp.common.ui/OSGI-INF/l10n/bundle.properties
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.common.ui/src/org/eclipse/emf/ecp/common/ui/messages.properties
rename to bundles/org.eclipse.emf.ecp.common.ui/OSGI-INF/l10n/bundle.properties
diff --git a/bundles/org.eclipse.emf.ecp.common.ui/build.properties b/bundles/org.eclipse.emf.ecp.common.ui/build.properties
index 9cbab3c..0565497 100644
--- a/bundles/org.eclipse.emf.ecp.common.ui/build.properties
+++ b/bundles/org.eclipse.emf.ecp.common.ui/build.properties
@@ -2,5 +2,6 @@
 output.. = bin/
 bin.includes = META-INF/,\
                .,\
-               about.html
+               about.html,\
+               OSGI-INF/
 src.includes = about.html
diff --git a/bundles/org.eclipse.emf.ecp.common.ui/pom.xml b/bundles/org.eclipse.emf.ecp.common.ui/pom.xml
index 0913534..104bb59 100644
--- a/bundles/org.eclipse.emf.ecp.common.ui/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.common.ui/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.common.ui/src/org/eclipse/emf/ecp/internal/common/ui/MessageKeys.java b/bundles/org.eclipse.emf.ecp.common.ui/src/org/eclipse/emf/ecp/internal/common/ui/MessageKeys.java
new file mode 100644
index 0000000..b7b1f18
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.common.ui/src/org/eclipse/emf/ecp/internal/common/ui/MessageKeys.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.internal.common.ui;
+
+/**
+ * Keys for translated strings.
+ *
+ * @author Eugen Neufeld
+ * @generated
+ */
+public interface MessageKeys {
+
+	String CheckedModelElementHelper_DeselectAllLabel = "CheckedModelElementHelper_DeselectAllLabel"; //$NON-NLS-1$
+	String CheckedModelElementHelper_SelectAllLabel = "CheckedModelElementHelper_SelectAllLabel"; //$NON-NLS-1$
+	String AbstractModelElementHelper_FilterLabel = "AbstractModelElementHelper_FilterLabel"; //$NON-NLS-1$
+	String AbstractModelElementHelper_FilterText = "AbstractModelElementHelper_FilterText"; //$NON-NLS-1$
+
+	String NewModelElementWizard_WizardTitle_AddModelElement = "NewModelElementWizard_WizardTitle_AddModelElement"; //$NON-NLS-1$
+	String NewModelElementWizard_PageTitle_AddModelElement = "NewModelElementWizard_PageTitle_AddModelElement"; //$NON-NLS-1$
+	String NewModelElementWizard_PageDescription_AddModelElement = "NewModelElementWizard_PageDescription_AddModelElement"; //$NON-NLS-1$
+
+	String ModelelementSelectionDialog_DialogMessage_SearchPattern = "ModelelementSelectionDialog_DialogMessage_SearchPattern"; //$NON-NLS-1$
+	String ModelelementSelectionDialog_DialogTitle = "ModelelementSelectionDialog_DialogTitle"; //$NON-NLS-1$
+
+	String SelectModelElementWizardFactory_ModelelementSelectionDialog_WindowTitle = "SelectModelElementWizardFactory_ModelelementSelectionDialog_WindowTitle"; //$NON-NLS-1$
+}
diff --git a/bundles/org.eclipse.emf.ecp.common.ui/src/org/eclipse/emf/ecp/internal/common/ui/Messages.java b/bundles/org.eclipse.emf.ecp.common.ui/src/org/eclipse/emf/ecp/internal/common/ui/Messages.java
deleted file mode 100644
index b51c43e..0000000
--- a/bundles/org.eclipse.emf.ecp.common.ui/src/org/eclipse/emf/ecp/internal/common/ui/Messages.java
+++ /dev/null
@@ -1,44 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eugen - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.internal.common.ui;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * @author Eugen
- * @generated
- */
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.emf.ecp.common.ui.messages"; //$NON-NLS-1$
-
-	public static String CheckedModelElementHelper_DeselectAllLabel;
-	public static String CheckedModelElementHelper_SelectAllLabel;
-	public static String AbstractModelElementHelper_FilterLabel;
-	public static String AbstractModelElementHelper_FilterText;
-
-	public static String NewModelElementWizard_WizardTitle_AddModelElement;
-	public static String NewModelElementWizard_PageTitle_AddModelElement;
-	public static String NewModelElementWizard_PageDescription_AddModelElement;
-
-	public static String ModelelementSelectionDialog_DialogMessage_SearchPattern;
-	public static String ModelelementSelectionDialog_DialogTitle;
-
-	public static String SelectModelElementWizardFactory_ModelelementSelectionDialog_WindowTitle;
-
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	private Messages() {
-	}
-}
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 56c7c20..fa89df7 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
@@ -17,8 +17,9 @@
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecp.internal.common.ui.Messages;
+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.TableViewer;
 import org.eclipse.jface.viewers.TreeViewer;
 import org.eclipse.jface.window.Window;
@@ -44,10 +45,14 @@
 			.getTableSelectionComposite(elements.toArray(), isMany);
 
 		final SelectModelElementWizard wizard = new SelectModelElementWizard(
-			Messages.SelectModelElementWizardFactory_ModelelementSelectionDialog_WindowTitle,
-			Messages.NewModelElementWizard_WizardTitle_AddModelElement,
-			Messages.ModelelementSelectionDialog_DialogTitle,
-			Messages.ModelelementSelectionDialog_DialogMessage_SearchPattern, EObject.class);
+			LocalizationServiceHelper.getString(SelectModelElementWizardFactory.class,
+				MessageKeys.SelectModelElementWizardFactory_ModelelementSelectionDialog_WindowTitle),
+			LocalizationServiceHelper.getString(SelectModelElementWizardFactory.class,
+				MessageKeys.NewModelElementWizard_WizardTitle_AddModelElement),
+			LocalizationServiceHelper.getString(SelectModelElementWizardFactory.class,
+				MessageKeys.ModelelementSelectionDialog_DialogTitle),
+			LocalizationServiceHelper.getString(SelectModelElementWizardFactory.class,
+				MessageKeys.ModelelementSelectionDialog_DialogMessage_SearchPattern), EObject.class);
 
 		final HashSet<EObject> selectedElements = new HashSet<EObject>();
 		wizard.setCompositeProvider(tableSelectionComposite);
@@ -76,9 +81,13 @@
 	 */
 	public static EObject openCreateNewModelElementDialog(final SelectionComposite<TreeViewer> selectionComposite) {
 		final SelectModelElementWizard wizard = new SelectModelElementWizard("New Reference Element", //$NON-NLS-1$
-			Messages.NewModelElementWizard_WizardTitle_AddModelElement,
-			Messages.NewModelElementWizard_PageTitle_AddModelElement,
-			Messages.NewModelElementWizard_PageDescription_AddModelElement);
+			LocalizationServiceHelper.getString(SelectModelElementWizardFactory.class,
+				MessageKeys.NewModelElementWizard_WizardTitle_AddModelElement),
+			LocalizationServiceHelper
+				.getString(SelectModelElementWizardFactory.class,
+					MessageKeys.NewModelElementWizard_PageTitle_AddModelElement),
+			LocalizationServiceHelper.getString(SelectModelElementWizardFactory.class,
+				MessageKeys.NewModelElementWizard_PageDescription_AddModelElement));
 
 		wizard.setCompositeProvider(selectionComposite);
 
diff --git a/bundles/org.eclipse.emf.ecp.common.ui/src/org/eclipse/emf/ecp/spi/common/ui/composites/AbstractFilteredSelectionComposite.java b/bundles/org.eclipse.emf.ecp.common.ui/src/org/eclipse/emf/ecp/spi/common/ui/composites/AbstractFilteredSelectionComposite.java
index cde1559..aba12c6 100644
--- a/bundles/org.eclipse.emf.ecp.common.ui/src/org/eclipse/emf/ecp/spi/common/ui/composites/AbstractFilteredSelectionComposite.java
+++ b/bundles/org.eclipse.emf.ecp.common.ui/src/org/eclipse/emf/ecp/spi/common/ui/composites/AbstractFilteredSelectionComposite.java
@@ -12,9 +12,10 @@
  *******************************************************************************/
 package org.eclipse.emf.ecp.spi.common.ui.composites;
 
-import org.eclipse.emf.ecp.internal.common.ui.Messages;
+import org.eclipse.emf.ecp.internal.common.ui.MessageKeys;
 import org.eclipse.emf.ecp.spi.common.ui.CompositeProvider;
 import org.eclipse.emf.ecp.spi.common.ui.ECPViewerFilter;
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.layout.GridLayoutFactory;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
@@ -59,9 +60,11 @@
 		GridLayoutFactory.fillDefaults().numColumns(2).equalWidth(false).applyTo(composite);
 
 		final Label filterLabel = new Label(composite, SWT.LEFT);
-		filterLabel.setText(Messages.AbstractModelElementHelper_FilterLabel);
+		filterLabel.setText(LocalizationServiceHelper.getString(AbstractFilteredSelectionComposite.class,
+			MessageKeys.AbstractModelElementHelper_FilterLabel));
 		final Text filterInput = new Text(composite, SWT.SEARCH);
-		filterInput.setMessage(Messages.AbstractModelElementHelper_FilterText);
+		filterInput.setMessage(LocalizationServiceHelper.getString(AbstractFilteredSelectionComposite.class,
+			MessageKeys.AbstractModelElementHelper_FilterText));
 		GridDataFactory.fillDefaults().align(SWT.FILL, SWT.BEGINNING).grab(true, false).applyTo(filterInput);
 
 		viewer = createViewer(composite);
diff --git a/bundles/org.eclipse.emf.ecp.common.ui/src/org/eclipse/emf/ecp/spi/common/ui/composites/CheckedEStructuralFeatureCompositeImpl.java b/bundles/org.eclipse.emf.ecp.common.ui/src/org/eclipse/emf/ecp/spi/common/ui/composites/CheckedEStructuralFeatureCompositeImpl.java
index c596409..afc48bc 100644
--- a/bundles/org.eclipse.emf.ecp.common.ui/src/org/eclipse/emf/ecp/spi/common/ui/composites/CheckedEStructuralFeatureCompositeImpl.java
+++ b/bundles/org.eclipse.emf.ecp.common.ui/src/org/eclipse/emf/ecp/spi/common/ui/composites/CheckedEStructuralFeatureCompositeImpl.java
@@ -18,7 +18,8 @@
 import java.util.Map;
 import java.util.Set;
 
-import org.eclipse.emf.ecp.internal.common.ui.Messages;
+import org.eclipse.emf.ecp.internal.common.ui.MessageKeys;
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.layout.GridLayoutFactory;
 import org.eclipse.jface.viewers.CheckStateChangedEvent;
@@ -71,7 +72,8 @@
 		GridDataFactory.fillDefaults().align(SWT.FILL, SWT.TOP).grab(true, false).span(2, 1).applyTo(buttons);
 
 		final Button buttonAll = new Button(buttons, SWT.PUSH);
-		buttonAll.setText(Messages.CheckedModelElementHelper_SelectAllLabel);
+		buttonAll.setText(LocalizationServiceHelper.getString(getClass(),
+			MessageKeys.CheckedModelElementHelper_SelectAllLabel));
 		GridDataFactory.fillDefaults().align(SWT.FILL, SWT.TOP).grab(true, false).applyTo(buttonAll);
 		buttonAll.addSelectionListener(new SelectionAdapter() {
 
@@ -83,7 +85,8 @@
 		});
 
 		final Button buttonNone = new Button(buttons, SWT.PUSH);
-		buttonNone.setText(Messages.CheckedModelElementHelper_DeselectAllLabel);
+		buttonNone.setText(LocalizationServiceHelper.getString(getClass(),
+			MessageKeys.CheckedModelElementHelper_DeselectAllLabel));
 		GridDataFactory.fillDefaults().align(SWT.FILL, SWT.TOP).grab(true, false).applyTo(buttonNone);
 		buttonNone.addSelectionListener(new SelectionAdapter() {
 
diff --git a/bundles/org.eclipse.emf.ecp.common.ui/src/org/eclipse/emf/ecp/spi/common/ui/composites/CheckedSelectModelClassCompositeImpl.java b/bundles/org.eclipse.emf.ecp.common.ui/src/org/eclipse/emf/ecp/spi/common/ui/composites/CheckedSelectModelClassCompositeImpl.java
index 7ab9e2d..0b9abd0 100644
--- a/bundles/org.eclipse.emf.ecp.common.ui/src/org/eclipse/emf/ecp/spi/common/ui/composites/CheckedSelectModelClassCompositeImpl.java
+++ b/bundles/org.eclipse.emf.ecp.common.ui/src/org/eclipse/emf/ecp/spi/common/ui/composites/CheckedSelectModelClassCompositeImpl.java
@@ -19,8 +19,9 @@
 
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecp.internal.common.ui.Messages;
+import org.eclipse.emf.ecp.internal.common.ui.MessageKeys;
 import org.eclipse.emf.ecp.spi.common.ui.CheckedModelClassComposite;
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.layout.GridLayoutFactory;
 import org.eclipse.jface.viewers.CheckboxTreeViewer;
@@ -71,7 +72,8 @@
 		GridDataFactory.fillDefaults().align(SWT.FILL, SWT.TOP).grab(true, false).span(2, 1).applyTo(buttons);
 
 		final Button buttonAll = new Button(buttons, SWT.PUSH);
-		buttonAll.setText(Messages.CheckedModelElementHelper_SelectAllLabel);
+		buttonAll.setText(LocalizationServiceHelper.getString(getClass(),
+			MessageKeys.CheckedModelElementHelper_SelectAllLabel));
 		GridDataFactory.fillDefaults().align(SWT.FILL, SWT.TOP).grab(true, false).applyTo(buttonAll);
 		buttonAll.addSelectionListener(new SelectionAdapter() {
 			@Override
@@ -82,7 +84,8 @@
 			}
 		});
 		final Button buttonNone = new Button(buttons, SWT.PUSH);
-		buttonNone.setText(Messages.CheckedModelElementHelper_DeselectAllLabel);
+		buttonNone.setText(LocalizationServiceHelper.getString(getClass(),
+			MessageKeys.CheckedModelElementHelper_DeselectAllLabel));
 		GridDataFactory.fillDefaults().align(SWT.FILL, SWT.TOP).grab(true, false).applyTo(buttonNone);
 		buttonNone.addSelectionListener(new SelectionAdapter() {
 			@Override
diff --git a/bundles/org.eclipse.emf.ecp.common/.gitignore b/bundles/org.eclipse.emf.ecp.common/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.common/.gitignore
@@ -0,0 +1 @@
+/bin/
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 515b571..be2b4cb 100644
--- a/bundles/org.eclipse.emf.ecp.common/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.common/META-INF/MANIFEST.MF
@@ -1,13 +1,14 @@
-Manifest-Version: 1.0

-Bundle-ManifestVersion: 2

-Bundle-Name: ECP Common

-Bundle-SymbolicName: org.eclipse.emf.ecp.common

-Bundle-Version: 1.5.1.qualifier

-Bundle-RequiredExecutionEnvironment: JavaSE-1.6

-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)"

-Export-Package: org.eclipse.emf.ecp.common.spi;version="1.5.1",org.ecl

- ipse.emf.ecp.common.spi.cachetree;version="1.5.1"

-Bundle-ActivationPolicy: lazy

-Bundle-Vendor: Eclipse Modeling Project

-

+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: ECP Common
+Bundle-SymbolicName: org.eclipse.emf.ecp.common
+Bundle-Version: 1.6.0.qualifier
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+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)"
+Export-Package: org.eclipse.emf.ecp.common.spi;version="1.6.0",org.ecl
+ ipse.emf.ecp.common.spi.asserts;version="1.6.0",org.eclipse.emf.ecp.c
+ ommon.spi.cachetree;version="1.6.0"
+Bundle-ActivationPolicy: lazy
+Bundle-Vendor: Eclipse Modeling Project
+
diff --git a/bundles/org.eclipse.emf.ecp.common/pom.xml b/bundles/org.eclipse.emf.ecp.common/pom.xml
index cab4cd6..40376a8 100644
--- a/bundles/org.eclipse.emf.ecp.common/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.common/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.common/src/org/eclipse/emf/ecp/common/spi/asserts/Assert.java b/bundles/org.eclipse.emf.ecp.common/src/org/eclipse/emf/ecp/common/spi/asserts/Assert.java
new file mode 100644
index 0000000..ec7635b
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.common/src/org/eclipse/emf/ecp/common/spi/asserts/Assert.java
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Alexandra Buzila - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.common.spi.asserts;
+
+/**
+ * Class for checking the validity of a provided object.
+ *
+ * @param <T> the type of the object the <code>Assert</code> class verifies.
+ * @author Alexandra Buzila
+ * @since 1.6
+ *
+ */
+public final class Assert<T> {
+
+	private final T object;
+
+	private Assert(T object) {
+		this.object = object;
+	}
+
+	/**
+	 * @param object the object that will be checked
+	 * @param <T> the type of the object the <code>Assert</code> class verifies.
+	 * @return a new instance of the <code>Assert</code> class.
+	 * */
+	public static <T> Assert<T> create(T object) {
+		return new Assert<T>(object);
+	}
+
+	/**
+	 * Checks if the object is null, in which case an {@link IllegalArgumentException} is thrown.
+	 *
+	 * @return the <code>Assert</code> instance, when no exception is thrown.
+	 */
+	public Assert<T> notNull() {
+		if (object == null) {
+			throw new IllegalArgumentException("Object must not be null."); //$NON-NLS-1$
+		}
+		return this;
+	}
+
+	/**
+	 * Checks if the object has a different type than the Class provided as parameter, in which case an
+	 * {@link IllegalArgumentException} is thrown.
+	 *
+	 * @param clazz the <code>Class</code> against which the type of the object is checked.
+	 * @return the <code>Assert</code> instance, when no exception is thrown.
+	 */
+	public Assert<?> ofClass(Class<?> clazz) {
+		if (clazz == null) {
+			throw new IllegalArgumentException("Class must not be null."); //$NON-NLS-1$
+		}
+		if (!clazz.isInstance(object)) {
+			final String message = String.format(
+				"%1$s is not of type %2$s.", object == null ? object : object.getClass().getName(), clazz.getName()); //$NON-NLS-1$
+			throw new IllegalArgumentException(message);
+		}
+		return this;
+	}
+
+	/**
+	 *
+	 * Usage example: <br>
+	 * <code>Assert.create(Object object).notNull().ofClass(Class clazz).check()</code>.
+	 *
+	 * @return the object for which the <code>Assert</code> is created.
+	 *
+	 *
+	 */
+	public T check() {
+		return object;
+	}
+
+}
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 14e1fd1..0534c88 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.core.emffilter.internal.Activator
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.6.0,4.0.0)",
  org.eclipse.emf.ecp.core;bundle-version="[1.5.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.core.emffilter.internal;version="1
- .5.1";x-internal:=true
+ .6.0";x-internal:=true
 Bundle-Vendor: Eclipse Modeling Project
diff --git a/bundles/org.eclipse.emf.ecp.core.emffilter/pom.xml b/bundles/org.eclipse.emf.ecp.core.emffilter/pom.xml
index 656ce4a..75c9194 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 6e57a61..8bd9648 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
@@ -86,6 +86,7 @@
 		packages.add("http://www.eclipse.org/emf/ecp/view/template/style/mandatory/model"); //$NON-NLS-1$

 		packages.add("http://www.eclipse.org/emf/ecp/view/template/selector/viewmodelelement/model"); //$NON-NLS-1$

 		packages.add("http://www.eclipse.org/emf/ecp/view/template/style/table/validation/model"); //$NON-NLS-1$

+		packages.add("http://www.eclipse.org/emf/ecp/view/template/style/background/model"); //$NON-NLS-1$

 

 		packages.add("http://org/eclipse/emf/ecp/view/treemasterview/model"); //$NON-NLS-1$

 

diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.checkstyle b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.checkstyle
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.checkstyle
rename to bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.checkstyle
diff --git a/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.classpath b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.classpath
new file mode 100644
index 0000000..8a8f166
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.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.core.rap.sessionprovider.rwt/.project b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.project
new file mode 100644
index 0000000..383d1a0
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.project
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>org.eclipse.emf.ecp.core.rap.sessionprovider.rwt</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.template.controls.swt/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.settings/org.eclipse.core.resources.prefs
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.core.resources.prefs
rename to bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.core.runtime.prefs
rename to bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.core.prefs
rename to bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.settings/org.eclipse.jdt.core.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.launching.prefs
rename to bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.settings/org.eclipse.jdt.launching.prefs
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
rename from examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.settings/org.eclipse.jdt.ui.prefs
rename to bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.ltk.core.refactoring.prefs
rename to bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.settings/org.eclipse.mylyn.tasks.ui.prefs b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.settings/org.eclipse.mylyn.tasks.ui.prefs
new file mode 100644
index 0000000..b050639
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.settings/org.eclipse.mylyn.tasks.ui.prefs
@@ -0,0 +1,4 @@
+#Thu Feb 04 09:44:24 CET 2010
+eclipse.preferences.version=1
+project.repository.kind=bugzilla
+project.repository.url=https\://bugs.eclipse.org/bugs
diff --git a/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.settings/org.eclipse.mylyn.team.ui.prefs b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.settings/org.eclipse.mylyn.team.ui.prefs
new file mode 100644
index 0000000..2f50f36
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.settings/org.eclipse.mylyn.team.ui.prefs
@@ -0,0 +1,3 @@
+#Thu Feb 04 09:44:24 CET 2010
+commit.comment.template=[${task.id}] ${task.description} \r\n${task.url}
+eclipse.preferences.version=1
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.pde.api.tools.prefs
rename to bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.settings/org.eclipse.pde.prefs
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.pde.prefs
rename to bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..8e05f0d
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/META-INF/MANIFEST.MF
@@ -0,0 +1,14 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: ECP Core RAP Sessionprovider
+Bundle-SymbolicName: org.eclipse.emf.ecp.core.rap.sessionprovider.rwt
+Bundle-Version: 1.6.0.qualifier
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Service-Component: OSGI-INF/component.xml
+Require-Bundle: org.eclipse.emf.ecp.core.rap;bundle-version="[1.5.0,2.0.0)"
+Import-Package: javax.servlet.http;version="0.0.0",
+ org.eclipse.emf.ecp.core.rap;version="0.0.0",
+ org.eclipse.rap.rwt;version="0.0.0"
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.emf.ecp.core.rap.sessionprovider.rwt;version="1.6.0"
+Bundle-Vendor: Eclipse Modeling Project
diff --git a/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/OSGI-INF/component.xml b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/OSGI-INF/component.xml
new file mode 100644
index 0000000..5765e76
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/OSGI-INF/component.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emf.ecp.core.rap.sessionprovider">
+   <implementation class="org.eclipse.emf.ecp.core.rap.sessionprovider.rwt.RWTSessionProvider"/>
+   <service>
+      <provide interface="org.eclipse.emf.ecp.core.rap.SessionProvider"/>
+   </service>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/about.html b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/about.html
new file mode 100644
index 0000000..82d49bf
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

+<html xmlns="http://www.w3.org/1999/xhtml">

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>

+<title>About</title>

+</head>

+<body lang="EN-US">

+<h2>About This Content</h2>

+ 

+<p>June 5, 2007</p>	

+<h3>License</h3>

+

+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 

+indicated below, the Content is provided to you under the terms and conditions of the

+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 

+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.

+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>

+

+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 

+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may

+apply to your use of any object code in the Content.  Check the Redistributor's license that was 

+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise

+indicated below, the terms and conditions of the EPL still apply to any source code in the Content

+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>

+

+</body>

+</html>

diff --git a/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/build.properties b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/build.properties
new file mode 100644
index 0000000..8e36148
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/build.properties
@@ -0,0 +1,7 @@
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               about.html,\
+               OSGI-INF/
+source.. = src/
+src.includes = about.html
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
new file mode 100644
index 0000000..9d3f9cb
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/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.6.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.6.0-SNAPSHOT</version>
+  <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/src/org/eclipse/emf/ecp/core/rap/sessionprovider/rwt/RWTSessionProvider.java b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/src/org/eclipse/emf/ecp/core/rap/sessionprovider/rwt/RWTSessionProvider.java
new file mode 100644
index 0000000..7a83464
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/src/org/eclipse/emf/ecp/core/rap/sessionprovider/rwt/RWTSessionProvider.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Neil Mackenzie - initial implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.core.rap.sessionprovider.rwt;
+
+import org.eclipse.emf.ecp.core.rap.SessionProvider;
+import org.eclipse.rap.rwt.RWT;
+
+/**
+ * This class provides the current session ID.
+ *
+ * @author neilmack
+ *
+ */
+public class RWTSessionProvider implements SessionProvider {
+
+	/**
+	 * get the current sessions ID.
+	 *
+	 * @return the current sessions ID
+	 */
+	@Override
+	public final String getSessionId() {
+		final String sessionId = RWT.getUISession().toString();
+		return sessionId;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.checkstyle b/bundles/org.eclipse.emf.ecp.core.rap/.checkstyle
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.table.editor/.checkstyle
rename to bundles/org.eclipse.emf.ecp.core.rap/.checkstyle
diff --git a/bundles/org.eclipse.emf.ecp.core.rap/.classpath b/bundles/org.eclipse.emf.ecp.core.rap/.classpath
new file mode 100644
index 0000000..a256c8a
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.core.rap/.classpath
@@ -0,0 +1,8 @@
+<?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 combineaccessrules="false" kind="src" path="/org.eclipse.emf.ecp.core"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/bundles/org.eclipse.emf.ecp.core.rap/.project b/bundles/org.eclipse.emf.ecp.core.rap/.project
new file mode 100644
index 0000000..67e73cf
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.core.rap/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+<name>org.eclipse.emf.ecp.core.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>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.editor/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.emf.ecp.core.rap/.settings/org.eclipse.core.resources.prefs
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.resources.prefs
rename to bundles/org.eclipse.emf.ecp.core.rap/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.emf.ecp.core.rap/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.runtime.prefs
rename to bundles/org.eclipse.emf.ecp.core.rap/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emf.ecp.core.rap/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.core.prefs
rename to bundles/org.eclipse.emf.ecp.core.rap/.settings/org.eclipse.jdt.core.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.emf.ecp.core.rap/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.launching.prefs
rename to bundles/org.eclipse.emf.ecp.core.rap/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.core.rap/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.emf.ecp.core.rap/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..7d2a1b1
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.core.rap/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,121 @@
+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_to_enhanced_for_loop=false
+cleanup.correct_indentation=true
+cleanup.format_source_code=true
+cleanup.format_source_code_changes_only=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_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_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+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_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=true
+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.editor/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.emf.ecp.core.rap/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.ltk.core.refactoring.prefs
rename to bundles/org.eclipse.emf.ecp.core.rap/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.core.rap/.settings/org.eclipse.mylyn.tasks.ui.prefs b/bundles/org.eclipse.emf.ecp.core.rap/.settings/org.eclipse.mylyn.tasks.ui.prefs
new file mode 100644
index 0000000..b050639
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.core.rap/.settings/org.eclipse.mylyn.tasks.ui.prefs
@@ -0,0 +1,4 @@
+#Thu Feb 04 09:44:24 CET 2010
+eclipse.preferences.version=1
+project.repository.kind=bugzilla
+project.repository.url=https\://bugs.eclipse.org/bugs
diff --git a/bundles/org.eclipse.emf.ecp.core.rap/.settings/org.eclipse.mylyn.team.ui.prefs b/bundles/org.eclipse.emf.ecp.core.rap/.settings/org.eclipse.mylyn.team.ui.prefs
new file mode 100644
index 0000000..2f50f36
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.core.rap/.settings/org.eclipse.mylyn.team.ui.prefs
@@ -0,0 +1,3 @@
+#Thu Feb 04 09:44:24 CET 2010
+commit.comment.template=[${task.id}] ${task.description} \r\n${task.url}
+eclipse.preferences.version=1
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.core.rap/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.api.tools.prefs
rename to bundles/org.eclipse.emf.ecp.core.rap/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.emf.ecp.core.rap/.settings/org.eclipse.pde.prefs
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.prefs
rename to bundles/org.eclipse.emf.ecp.core.rap/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..cc9322e
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.core.rap/META-INF/MANIFEST.MF
@@ -0,0 +1,18 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: ECP Core RAP
+Bundle-SymbolicName: org.eclipse.emf.ecp.core.rap
+Bundle-Version: 1.6.0.qualifier
+Bundle-Activator: org.eclipse.emf.ecp.core.rap.Activator
+Export-Package: org.eclipse.emf.ecp.core.rap;version="1.6.0"
+Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.emf.ecp.core;bundle-version="[1.5.0,2.0.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Import-Package: org.eclipse.core.runtime;version="0.0.0",
+ org.eclipse.net4j.util.lifecycle;version="0.0.0",
+ org.eclipse.rap.rwt;version="0.0.0",
+ org.eclipse.rap.rwt.service;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.framework;version="0.0.0"
+Bundle-ActivationPolicy: lazy
+Bundle-Vendor: Eclipse Modeling Project
diff --git a/bundles/org.eclipse.emf.ecp.core.rap/about.html b/bundles/org.eclipse.emf.ecp.core.rap/about.html
new file mode 100644
index 0000000..82d49bf
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.core.rap/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

+<html xmlns="http://www.w3.org/1999/xhtml">

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>

+<title>About</title>

+</head>

+<body lang="EN-US">

+<h2>About This Content</h2>

+ 

+<p>June 5, 2007</p>	

+<h3>License</h3>

+

+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 

+indicated below, the Content is provided to you under the terms and conditions of the

+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 

+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.

+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>

+

+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 

+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may

+apply to your use of any object code in the Content.  Check the Redistributor's license that was 

+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise

+indicated below, the terms and conditions of the EPL still apply to any source code in the Content

+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>

+

+</body>

+</html>

diff --git a/bundles/org.eclipse.emf.ecp.core.rap/build.properties b/bundles/org.eclipse.emf.ecp.core.rap/build.properties
new file mode 100644
index 0000000..9cbab3c
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.core.rap/build.properties
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               about.html
+src.includes = about.html
diff --git a/bundles/org.eclipse.emf.ecp.core.rap/pom.xml b/bundles/org.eclipse.emf.ecp.core.rap/pom.xml
new file mode 100644
index 0000000..df945f8
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.core.rap/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.6.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.6.0-SNAPSHOT</version>
+  <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/bundles/org.eclipse.emf.ecp.core.rap/src/org/eclipse/emf/ecp/core/rap/Activator.java b/bundles/org.eclipse.emf.ecp.core.rap/src/org/eclipse/emf/ecp/core/rap/Activator.java
new file mode 100644
index 0000000..a421461
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.core.rap/src/org/eclipse/emf/ecp/core/rap/Activator.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Neil Mackenzie - initial implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.core.rap;
+
+import java.util.Dictionary;
+import java.util.Hashtable;
+
+import org.eclipse.core.runtime.Plugin;
+import org.eclipse.emf.ecp.core.ECPProjectManager;
+import org.eclipse.emf.ecp.core.ECPProviderRegistry;
+import org.eclipse.emf.ecp.core.ECPRepositoryManager;
+import org.eclipse.emf.ecp.core.util.observer.ECPObserverBus;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.Constants;
+
+/**
+ * This is the Activator for the ECP Core RAP plugin.
+ *
+ */
+public class Activator extends Plugin {
+
+	@Override
+	public final void start(final BundleContext context) throws Exception {
+		final Dictionary<String, Object> dictionary =
+			new Hashtable<String, Object>();
+		dictionary.put(Constants.SERVICE_RANKING, 1000);
+		context.registerService(ECPProjectManager.class,
+			new ECPProjectManagerFactory(), dictionary);
+		context.registerService(ECPProviderRegistry.class,
+			new ECPProviderRegistryFactory(), dictionary);
+		context.registerService(ECPRepositoryManager.class,
+			new ECPRepositoryManagerFactory(), dictionary);
+		context.registerService(ECPObserverBus.class,
+			new ECPObserverBusFactory(), dictionary);
+		super.start(context);
+	}
+
+	@Override
+	public void stop(final BundleContext context) throws Exception {
+
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.core.rap/src/org/eclipse/emf/ecp/core/rap/ECPObserverBusFactory.java b/bundles/org.eclipse.emf.ecp.core.rap/src/org/eclipse/emf/ecp/core/rap/ECPObserverBusFactory.java
new file mode 100644
index 0000000..8ebc7c7
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.core.rap/src/org/eclipse/emf/ecp/core/rap/ECPObserverBusFactory.java
@@ -0,0 +1,116 @@
+/*******************************************************************************
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Neil Mackenzie - initial implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.core.rap;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.emf.ecp.core.util.observer.ECPObserverBus;
+import org.eclipse.emf.ecp.internal.core.util.observer.ECPObserverBusImpl;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceFactory;
+import org.osgi.framework.ServiceReference;
+import org.osgi.framework.ServiceRegistration;
+
+/**
+ * This is the factory for5 creating the ECPObserverBus service.
+ *
+ * @author neilmack
+ *
+ */
+public class ECPObserverBusFactory implements ServiceFactory<ECPObserverBus> {
+
+	/**
+	 * The session provider used to retrieve the current session.
+	 */
+	private SessionProvider sessionProvider;
+
+	/**
+	 * a map of sessions to services.
+	 */
+	private final Map<String, ECPObserverBus> sessionRegistry =
+		new HashMap<String, ECPObserverBus>();
+
+	/**
+	 * default constructor.
+	 */
+	public ECPObserverBusFactory() {
+		init();
+	}
+
+	/**
+	 * initialise the factory.
+	 */
+	public final void init() {
+		getSessionProvider();
+	}
+
+	/**
+	 * this class retrieves the session provider. If the sessionProvider is
+	 * not set yet then it is created and set.
+	 *
+	 * @return the session provider
+	 */
+	private SessionProvider getSessionProvider() {
+		if (sessionProvider == null) {
+			final BundleContext bundleContext =
+				FrameworkUtil.getBundle(getClass()).getBundleContext();
+			final ServiceReference<SessionProvider> serviceReference =
+				bundleContext.getServiceReference(SessionProvider.class);
+			sessionProvider = bundleContext.
+				getService(serviceReference);
+		}
+		return sessionProvider;
+	}
+
+	/**
+	 * this method returns the ECPObserverBus service for the current session.
+	 * It is called by the OSGI framework.
+	 *
+	 * @param bundle the OSGI bundle
+	 * @param registration the service registration
+	 *
+	 * @return the service
+	 */
+	@Override
+	public final ECPObserverBus getService(final Bundle bundle,
+		final ServiceRegistration<ECPObserverBus> registration) {
+
+		ECPObserverBus ecpObserverBus;
+		final String sessionId = getSessionProvider().getSessionId();
+
+		if (sessionRegistry.containsKey(sessionId)) {
+			ecpObserverBus = sessionRegistry.get(sessionId);
+		} else {
+			ecpObserverBus = new ECPObserverBusImpl();
+			sessionRegistry.put(sessionId, ecpObserverBus);
+		}
+		return ecpObserverBus;
+	}
+
+	/**
+	 * this methodis called to unget a serive from a service registration.
+	 *
+	 * @param bundle the OSGI bundle
+	 * @param registration the service registration
+	 * @param service the observerbus
+	 */
+	@Override
+	public void ungetService(final Bundle bundle,
+		final ServiceRegistration<ECPObserverBus> registration,
+		final ECPObserverBus service) {
+
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.core.rap/src/org/eclipse/emf/ecp/core/rap/ECPProjectManagerFactory.java b/bundles/org.eclipse.emf.ecp.core.rap/src/org/eclipse/emf/ecp/core/rap/ECPProjectManagerFactory.java
new file mode 100644
index 0000000..e4ef5d7
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.core.rap/src/org/eclipse/emf/ecp/core/rap/ECPProjectManagerFactory.java
@@ -0,0 +1,120 @@
+/*******************************************************************************
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Neil Mackenzie - initial implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.core.rap;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.emf.ecp.core.ECPProjectManager;
+import org.eclipse.emf.ecp.internal.core.ECPProjectManagerImpl;
+import org.eclipse.net4j.util.lifecycle.Lifecycle;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceFactory;
+import org.osgi.framework.ServiceReference;
+import org.osgi.framework.ServiceRegistration;
+
+/**
+ * This is the factory for creating the ECPProjectManager service.
+ *
+ * @author neilmack
+ *
+ */
+public class ECPProjectManagerFactory implements
+ServiceFactory<ECPProjectManager> {
+
+	/**
+	 * The session provider used to retrieve the current session.
+	 */
+	private SessionProvider sessionProvider;
+	/**
+	 * a map of sessions to services.
+	 */
+	private final Map<String, ECPProjectManager> sessionRegistry =
+		new HashMap<String, ECPProjectManager>();
+
+	/**
+	 * default constructor.
+	 */
+	public ECPProjectManagerFactory() {
+		init();
+	}
+
+	/**
+	 * initialise the factory.
+	 */
+	public final void init() {
+		getSessionProvider();
+	}
+
+	/**
+	 * this class retrieves the session provider. If the sessionProvider is
+	 * not set yet then it is created and set.
+	 *
+	 * @return the session provider
+	 */
+	private SessionProvider getSessionProvider() {
+		if (sessionProvider == null) {
+			final BundleContext bundleContext =
+				FrameworkUtil.getBundle(getClass()).
+					getBundleContext();
+			final ServiceReference<SessionProvider> serviceReference =
+				bundleContext.
+				getServiceReference(SessionProvider.class);
+			sessionProvider = bundleContext.
+				getService(serviceReference);
+		}
+		return sessionProvider;
+	}
+
+	/**
+	 * this method returns the ECPProjectManager service for the
+	 * current session.
+	 * It is called by the OSGI framework.
+	 *
+	 * @param bundle the OSGI bundle
+	 * @param registration the service registration
+	 *
+	 * @return the service
+	 */
+	@Override
+	public ECPProjectManager getService(Bundle bundle,
+		ServiceRegistration<ECPProjectManager> registration) {
+		ECPProjectManager ecpProjectManager;
+		final String sessionId = getSessionProvider().getSessionId();
+		if (sessionRegistry.containsKey(sessionId)) {
+			ecpProjectManager = sessionRegistry.get(sessionId);
+		} else {
+			ecpProjectManager = new ECPProjectManagerImpl(sessionId);
+			sessionRegistry.put(sessionId, ecpProjectManager);
+			((Lifecycle) ecpProjectManager).activate();
+
+		}
+		return ecpProjectManager;
+	}
+
+	/**
+	 * this methodis called to unget a serive from a service registration.
+	 *
+	 * @param bundle the OSGI bundle
+	 * @param registration the service registration
+	 * @param service the service
+	 */
+	@Override
+	public void ungetService(Bundle bundle,
+		ServiceRegistration<ECPProjectManager> registration,
+		ECPProjectManager service) {
+
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.core.rap/src/org/eclipse/emf/ecp/core/rap/ECPProviderRegistryFactory.java b/bundles/org.eclipse.emf.ecp.core.rap/src/org/eclipse/emf/ecp/core/rap/ECPProviderRegistryFactory.java
new file mode 100644
index 0000000..10d1f18
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.core.rap/src/org/eclipse/emf/ecp/core/rap/ECPProviderRegistryFactory.java
@@ -0,0 +1,118 @@
+/*******************************************************************************
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Neil Mackenzie - initial implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.core.rap;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.emf.ecp.core.ECPProviderRegistry;
+import org.eclipse.emf.ecp.internal.core.ECPProviderRegistryImpl;
+import org.eclipse.net4j.util.lifecycle.Lifecycle;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceFactory;
+import org.osgi.framework.ServiceReference;
+import org.osgi.framework.ServiceRegistration;
+
+/**
+ * This is the factory for creating the ECPProviderRegistry service.
+ *
+ * @author neilmack
+ *
+ */
+public class ECPProviderRegistryFactory implements
+ServiceFactory<ECPProviderRegistry> {
+
+	/**
+	 * The session provider used to retrieve the current session.
+	 */
+	private SessionProvider sessionProvider;
+	/**
+	 * a map of sessions to services.
+	 */
+	private final Map<String, ECPProviderRegistry> sessionRegistry =
+		new HashMap<String, ECPProviderRegistry>();
+
+	/**
+	 * default constructor.
+	 */
+	public ECPProviderRegistryFactory() {
+		init();
+	}
+
+	/**
+	 * initialise the factory.
+	 */
+	public void init() {
+		getSessionProvider();
+	}
+
+	/**
+	 * this class retrieves the session provider. If the sessionProvider is
+	 * not set yet then it is created and set.
+	 *
+	 * @return the session provider
+	 */
+	private SessionProvider getSessionProvider() {
+		if (sessionProvider == null) {
+			final BundleContext bundleContext = FrameworkUtil.getBundle(getClass()).getBundleContext();
+			final ServiceReference<SessionProvider> serviceReference = bundleContext
+				.getServiceReference(SessionProvider.class);
+			sessionProvider = bundleContext.getService(serviceReference);
+		}
+		return sessionProvider;
+	}
+
+	/**
+	 * this method returns the ECPProviderRegistry service for the current session.
+	 * It is called by the OSGI framework.
+	 *
+	 * @param bundle the OSGI bundle
+	 * @param registration the service registration
+	 *
+	 * @return the service
+	 */
+	@Override
+	public ECPProviderRegistry getService(Bundle bundle,
+		ServiceRegistration<ECPProviderRegistry> registration) {
+
+		ECPProviderRegistry ecpProviderRegistry;
+		final String sessionId = getSessionProvider().getSessionId();
+		if (sessionRegistry.containsKey(sessionId)) {
+			ecpProviderRegistry = sessionRegistry.get(sessionId);
+		} else {
+			ecpProviderRegistry = new ECPProviderRegistryImpl();
+			sessionRegistry.put(sessionId, ecpProviderRegistry);
+			((Lifecycle) ecpProviderRegistry).activate();
+
+		}
+		return ecpProviderRegistry;
+	}
+
+	/**
+	 * this method is called to unget a service from a service registration.
+	 *
+	 * @param bundle the OSGI bundle
+	 * @param registration the service registration
+	 * @param service the service
+	 *
+	 */
+	@Override
+	public void ungetService(Bundle bundle,
+		ServiceRegistration<ECPProviderRegistry> registration,
+		ECPProviderRegistry service) {
+		// TODO Auto-generated method stub
+
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.core.rap/src/org/eclipse/emf/ecp/core/rap/ECPRepositoryManagerFactory.java b/bundles/org.eclipse.emf.ecp.core.rap/src/org/eclipse/emf/ecp/core/rap/ECPRepositoryManagerFactory.java
new file mode 100644
index 0000000..6e23458
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.core.rap/src/org/eclipse/emf/ecp/core/rap/ECPRepositoryManagerFactory.java
@@ -0,0 +1,116 @@
+/*******************************************************************************
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Neil Mackenzie - initial implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.core.rap;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.emf.ecp.core.ECPRepositoryManager;
+import org.eclipse.emf.ecp.internal.core.ECPRepositoryManagerImpl;
+import org.eclipse.net4j.util.lifecycle.Lifecycle;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceFactory;
+import org.osgi.framework.ServiceReference;
+import org.osgi.framework.ServiceRegistration;
+
+/**
+ * This is the factory for creating the ECPRepositoryManager service.
+ *
+ * @author neilmack
+ *
+ */
+public class ECPRepositoryManagerFactory implements
+	ServiceFactory<ECPRepositoryManager> {
+
+	/**
+	 * The session provider used to retrieve the current session.
+	 */
+	private SessionProvider sessionProvider;
+	/**
+	 * a map of sessions to services.
+	 */
+	private final Map<String, ECPRepositoryManager> sessionRegistry =
+		new HashMap<String, ECPRepositoryManager>();
+
+	/**
+	 * default constructor.
+	 */
+	public ECPRepositoryManagerFactory() {
+		init();
+	}
+
+	/**
+	 * initialise the factory.
+	 */
+	public void init() {
+		getSessionProvider();
+	}
+
+	/**
+	 * this class retrieves the session provider. If the sessionProvider is
+	 * not set yet then it is created and set.
+	 *
+	 * @return the session provider
+	 */
+	private SessionProvider getSessionProvider() {
+		if (sessionProvider == null) {
+			final BundleContext bundleContext =
+				FrameworkUtil.getBundle(getClass()).getBundleContext();
+			final ServiceReference<SessionProvider> serviceReference =
+				bundleContext.getServiceReference(SessionProvider.class);
+			sessionProvider = bundleContext.getService(serviceReference);
+		}
+		return sessionProvider;
+	}
+
+	/**
+	 * this method returns the ECPRepositoryManager service for the
+	 * current session.
+	 * It is called by the OSGI framework.
+	 *
+	 * @param bundle the OSGI bundle
+	 * @param registration the service registration
+	 *
+	 * @return the service
+	 */
+	@Override
+	public final ECPRepositoryManager getService(final Bundle bundle,
+		final ServiceRegistration<ECPRepositoryManager> registration) {
+		ECPRepositoryManager ecpRepositoryManager;
+		final String sessionId = getSessionProvider().getSessionId();
+		if (sessionRegistry.containsKey(sessionId)) {
+			ecpRepositoryManager = sessionRegistry.get(sessionId);
+		} else {
+			ecpRepositoryManager = new ECPRepositoryManagerImpl();
+			sessionRegistry.put(sessionId, ecpRepositoryManager);
+			((Lifecycle) ecpRepositoryManager).activate();
+		}
+		return ecpRepositoryManager;
+	}
+
+	/**
+	 * this method is called to unget a service from a service registration.
+	 *
+	 * @param bundle the OSGI bundle
+	 * @param registration the service registration
+	 * @param service the service
+	 */
+	@Override
+	public void ungetService(final Bundle bundle,
+		final ServiceRegistration<ECPRepositoryManager> registration,
+		final ECPRepositoryManager service) {
+
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.core.rap/src/org/eclipse/emf/ecp/core/rap/SessionProvider.java b/bundles/org.eclipse.emf.ecp.core.rap/src/org/eclipse/emf/ecp/core/rap/SessionProvider.java
new file mode 100644
index 0000000..71084c7
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.core.rap/src/org/eclipse/emf/ecp/core/rap/SessionProvider.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Neil Mackenzie - initial implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.core.rap;
+
+/**
+ * This class provides the current session ID.
+ *
+ * @author neilmack
+ *
+ */
+public interface SessionProvider {
+	/**
+	 * get the current sessions ID.
+	 *
+	 * @return the current sessions ID
+	 */
+	String getSessionId();
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.core/.gitignore b/bundles/org.eclipse.emf.ecp.core/.gitignore
index 934e0e0..bf56436 100644
--- a/bundles/org.eclipse.emf.ecp.core/.gitignore
+++ b/bundles/org.eclipse.emf.ecp.core/.gitignore
@@ -1,2 +1,3 @@
 /bin
 /target
+/bin/
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 aadb9b1..8258356 100644
--- a/bundles/org.eclipse.emf.ecp.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Core
 Bundle-SymbolicName: org.eclipse.emf.ecp.core;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.internal.core.Activator
 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,
@@ -12,17 +12,20 @@
  org.eclipse.emf.ecp.common;bundle-version="[1.5.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.ecp.core;version="1.5.1",org.eclipse.e
- mf.ecp.core.exceptions;version="1.5.1",org.eclipse.emf.ecp.core.util;
- version="1.5.1",org.eclipse.emf.ecp.core.util.observer;version="1.5.1
- ",org.eclipse.emf.ecp.internal.core;version="1.5.1";x-friends:="org.e
- clipse.emf.ecp.ui,org.eclipse.emf.ecp.ui.view.test,org.eclipse.emf.ec
- p.edit.ecore.swt",org.eclipse.emf.ecp.internal.core.properties;versio
- n="1.5.1";x-internal:=true,org.eclipse.emf.ecp.internal.core.util;ver
- sion="1.5.1";x-friends:="org.eclipse.emf.ecp.ui",org.eclipse.emf.ecp.
- internal.core.util.observer;version="1.5.1";x-internal:=true,org.ecli
- pse.emf.ecp.spi.core;version="1.5.1",org.eclipse.emf.ecp.spi.core.uti
- l;version="1.5.1"
-Service-Component:  OSGI-INF/ecpProviderRegistry.xml,OSGI-INF/ecpRepositoryManager.xml,OSGI-INF/ecpProjectManager.xml
+Export-Package: org.eclipse.emf.ecp.core;version="1.6.0",
+ org.eclipse.emf.ecp.core.exceptions;version="1.6.0",
+ org.eclipse.emf.ecp.core.util;version="1.6.0",
+ org.eclipse.emf.ecp.core.util.observer;version="1.6.0",
+ org.eclipse.emf.ecp.internal.core;version="1.6.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.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.internal.core.util;version="1.6.0";x-friends:="org.eclipse.emf.ecp.ui",
+ org.eclipse.emf.ecp.internal.core.util.observer;version="1.6.0";x-friends:="org.eclipse.emf.ecp.core.rap",
+ org.eclipse.emf.ecp.spi.core;version="1.6.0",
+ org.eclipse.emf.ecp.spi.core.util;version="1.6.0"
+Service-Component:  OSGI-INF/ecpProviderRegistry.xml,OSGI-INF/ecpRepositoryManager.xml,OSGI-INF/ecpProjectManager.xml,OSGI-INF/ecpObserverBus.xml
 Bundle-Vendor: Eclipse Modeling Project
 
diff --git a/bundles/org.eclipse.emf.ecp.core/OSGI-INF/ecpObserverBus.xml b/bundles/org.eclipse.emf.ecp.core/OSGI-INF/ecpObserverBus.xml
new file mode 100644
index 0000000..734fbb6
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.core/OSGI-INF/ecpObserverBus.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" immediate="false" name="org.eclipse.emf.ecp.core.util.observer.ecpObserverBus">
+   <implementation class="org.eclipse.emf.ecp.internal.core.util.observer.ECPObserverBusImpl"/>
+   <service>
+      <provide interface="org.eclipse.emf.ecp.core.util.observer.ECPObserverBus"/>
+   </service>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.core/pom.xml b/bundles/org.eclipse.emf.ecp.core/pom.xml
index 4ed1d22..e1e7570 100644
--- a/bundles/org.eclipse.emf.ecp.core/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.core/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/core/util/ECPUtil.java b/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/core/util/ECPUtil.java
index 395857f..7a29690 100644
--- a/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/core/util/ECPUtil.java
+++ b/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/core/util/ECPUtil.java
@@ -33,7 +33,6 @@
 import org.eclipse.emf.ecp.internal.core.Activator;
 import org.eclipse.emf.ecp.internal.core.util.ElementDescriptor;
 import org.eclipse.emf.ecp.internal.core.util.Properties;
-import org.eclipse.emf.ecp.internal.core.util.observer.ECPObserverBusImpl;
 import org.eclipse.emf.ecp.spi.core.util.ECPDisposable;
 
 /**
@@ -141,9 +140,17 @@
 
 		// avoid ConcurrentModificationException while iterating over the registry's key set
 		final List<String> keySet = new ArrayList<String>(Registry.INSTANCE.keySet());
-		for (final String nsURI : keySet)
-		{
-			final EPackage ePackage = Registry.INSTANCE.getEPackage(nsURI);
+		for (final String nsURI : keySet) {
+			EPackage ePackage;
+			try {
+				ePackage = Registry.INSTANCE.getEPackage(nsURI);
+			}
+			// BEGIN SUPRESS CATCH EXCEPTION
+			catch (final Exception ex) {// END SUPRESS CATCH EXCEPTION
+				/* If there is a wrongly configured EPackage the call to getEPackage might throw a runtime exception */
+				/* Catch here, so we can still loop through the whole registry */
+				continue;
+			}
 			for (final EClassifier eClassifier : ePackage.getEClassifiers()) {
 				if (eClassifier instanceof EClass) {
 					final EClass eClass = (EClass) eClassifier;
@@ -166,43 +173,28 @@
 	}
 
 	/**
-	 * Instance of the ECPProjectManager.
-	 */
-	private static ECPProjectManager ecpProjectManagerInstance;
-
-	/**
 	 * Helper method to get the instance of the {@link ECPProjectManager}.
 	 *
 	 * @return the {@link ECPProjectManager}
 	 */
 	public static ECPProjectManager getECPProjectManager() {
-		if (ecpProjectManagerInstance == null) {
-			ecpProjectManagerInstance = Activator.getECPProjectManager();
-		}
+
+		final ECPProjectManager ecpProjectManagerInstance = Activator.getECPProjectManager();
+
 		return ecpProjectManagerInstance;
 	}
 
 	/**
-	 * The {@link ECPRepositoryManager} instance.
-	 */
-	private static ECPRepositoryManager ecpRepositoryManagerInstance;
-
-	/**
 	 * Helper method to get the instance of the {@link ECPRepositoryManager}.
 	 *
 	 * @return the {@link ECPRepositoryManager}
 	 */
 	public static ECPRepositoryManager getECPRepositoryManager() {
-		if (ecpRepositoryManagerInstance == null) {
-			ecpRepositoryManagerInstance = Activator.getECPRepositoryManager();
-		}
-		return ecpRepositoryManagerInstance;
-	}
 
-	/**
-	 * Instance of the ECPProviderRegistry.
-	 */
-	private static ECPProviderRegistry ecpProviderRegistryInstance;
+		final ECPRepositoryManager epm = Activator.getECPRepositoryManager();
+
+		return epm;
+	}
 
 	/**
 	 * Helper method to get the instance of the {@link ECPProviderRegistry}.
@@ -210,9 +202,9 @@
 	 * @return the {@link ECPProviderRegistry}
 	 */
 	public static ECPProviderRegistry getECPProviderRegistry() {
-		if (ecpProviderRegistryInstance == null) {
-			ecpProviderRegistryInstance = Activator.getECPProviderRegistry();
-		}
+
+		final ECPProviderRegistry ecpProviderRegistryInstance = Activator.getECPProviderRegistry();
+
 		return ecpProviderRegistryInstance;
 	}
 
@@ -222,6 +214,7 @@
 	 * @return the {@link ECPObserverBus}
 	 */
 	public static ECPObserverBus getECPObserverBus() {
-		return ECPObserverBusImpl.getInstance();
+		return Activator.getECPObserverBus();
 	}
+
 }
diff --git a/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/Activator.java b/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/Activator.java
index 284986c..70469a2 100644
--- a/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/Activator.java
+++ b/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/Activator.java
@@ -20,6 +20,7 @@
 import org.eclipse.emf.ecp.core.ECPProjectManager;

 import org.eclipse.emf.ecp.core.ECPProviderRegistry;

 import org.eclipse.emf.ecp.core.ECPRepositoryManager;

+import org.eclipse.emf.ecp.core.util.observer.ECPObserverBus;

 import org.osgi.framework.BundleContext;

 import org.osgi.framework.ServiceReference;

 

@@ -47,24 +48,11 @@
 	@Override

 	public void start(BundleContext bundleContext) throws Exception {

 		instance = this;

-		// Initialize all manager

-		// getECPProviderRegistry();

-		// getECPRepositoryManager();

-		// getECPProjectManager();

 		super.start(bundleContext);

 	}

 

 	@Override

 	public void stop(BundleContext bundleContext) throws Exception {

-		if (ECPProjectManagerImpl.INSTANCE != null) {

-			ECPProjectManagerImpl.INSTANCE.deactivate();

-		}

-		if (ECPRepositoryManagerImpl.INSTANCE != null) {

-			ECPRepositoryManagerImpl.INSTANCE.deactivate();

-		}

-		if (ECPProviderRegistryImpl.INSTANCE != null) {

-			ECPProviderRegistryImpl.INSTANCE.deactivate();

-		}

 

 		instance = null;

 		super.stop(bundleContext);

@@ -129,51 +117,76 @@
 		return new Status(IStatus.ERROR, PLUGIN_ID, msg, t);

 	}

 

-	private static ECPProjectManager ecpProjectManager;

-

 	/**

 	 * Helper method to get the {@link ECPProjectManager}.

 	 *

 	 * @return the {@link ECPProjectManager}

 	 */

-	public static ECPProjectManager getECPProjectManager() {

-		if (ecpProjectManager == null) {

-			final ServiceReference<ECPProjectManager> serviceRef = instance.getBundle().getBundleContext()

-				.getServiceReference(ECPProjectManager.class);

-			ecpProjectManager = instance.getBundle().getBundleContext().getService(serviceRef);

-		}

+	public static synchronized ECPProjectManager getECPProjectManager() {

+		ECPProjectManager ecpProjectManager = null;

+		final ServiceReference<ECPProjectManager> serviceRef = instance.getBundle().getBundleContext()

+			.getServiceReference(ECPProjectManager.class);

+		ecpProjectManager = instance.getBundle().getBundleContext().getService(serviceRef);

+		// because we are using a service factory for the RAP implementation we must unget

+		// the service so that the service factory is called again on each call. otherwise

+		// the service factor will keep returning the same cached instance as the reference

+		// count of the service will remain greater than zero

+		instance.getBundle().getBundleContext().ungetService(serviceRef);

 		return ecpProjectManager;

 	}

 

-	private static ECPRepositoryManager ecpRepositoryManager;

-

 	/**

 	 * Helper method to get the {@link ECPRepositoryManager}.

 	 *

 	 * @return the {@link ECPRepositoryManager}

 	 */

-	public static ECPRepositoryManager getECPRepositoryManager() {

-		if (ecpRepositoryManager == null) {

-			final ServiceReference<ECPRepositoryManager> serviceRef = instance.getBundle().getBundleContext()

-				.getServiceReference(ECPRepositoryManager.class);

-			ecpRepositoryManager = instance.getBundle().getBundleContext().getService(serviceRef);

-		}

+	public static synchronized ECPRepositoryManager getECPRepositoryManager() {

+		ECPRepositoryManager ecpRepositoryManager = null;

+		final ServiceReference<ECPRepositoryManager> serviceRef = instance.getBundle().getBundleContext()

+			.getServiceReference(ECPRepositoryManager.class);

+		ecpRepositoryManager = instance.getBundle().getBundleContext().getService(serviceRef);

+		// because we are using a service factory for the RAP implementation we must unget

+		// the service so that the service factory is called again on each call. otherwise

+		// the service factor will keep returning the same cached instance as the reference

+		// count of the service will remian greater that zero

+		instance.getBundle().getBundleContext().ungetService(serviceRef);

 		return ecpRepositoryManager;

 	}

 

-	private static ECPProviderRegistry ecpProviderRegistry;

-

 	/**

 	 * Helper method to get the {@link ECPProviderRegistry}.

 	 *

 	 * @return the {@link ECPProviderRegistry}

 	 */

-	public static ECPProviderRegistry getECPProviderRegistry() {

-		if (ecpProviderRegistry == null) {

-			final ServiceReference<ECPProviderRegistry> serviceRef = instance.getBundle().getBundleContext()

-				.getServiceReference(ECPProviderRegistry.class);

-			ecpProviderRegistry = instance.getBundle().getBundleContext().getService(serviceRef);

-		}

+	public static synchronized ECPProviderRegistry getECPProviderRegistry() {

+		ECPProviderRegistry ecpProviderRegistry = null;

+		final ServiceReference<ECPProviderRegistry> serviceRef = instance.getBundle().getBundleContext()

+			.getServiceReference(ECPProviderRegistry.class);

+		ecpProviderRegistry = instance.getBundle().getBundleContext().getService(serviceRef);

+		// because we are using a service factory for the RAP implementation we must unget

+		// the service so that the service factory is called again on each call. otherwise

+		// the service factor will keep returning the same cached instance as the reference

+		// count of the service will remain greater than zero

+		instance.getBundle().getBundleContext().ungetService(serviceRef);

 		return ecpProviderRegistry;

 	}

+

+	/**

+	 * Helper method to get the {@link ECPObserverBus}.

+	 *

+	 * @return the {@link ECPObserverBus}

+	 */

+	public static synchronized ECPObserverBus getECPObserverBus() {

+		ECPObserverBus ecpObserverBus = null;

+		final ServiceReference<ECPObserverBus> serviceRef = instance.getBundle().getBundleContext()

+			.getServiceReference(ECPObserverBus.class);

+		ecpObserverBus = instance.getBundle().getBundleContext().getService(serviceRef);

+		// because we are using a service factory for the RAP implementation we must unget

+		// the service so that the service factory is called again on each call. otherwise

+		// the service factor will keep returning the same cached instance as the reference

+		// count of the service will remain greater than zero

+		instance.getBundle().getBundleContext().ungetService(serviceRef);

+		return ecpObserverBus;

+	}

+

 }

diff --git a/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/ECPProjectImpl.java b/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/ECPProjectImpl.java
index 6aa1a75..d1f3310 100644
--- a/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/ECPProjectImpl.java
+++ b/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/ECPProjectImpl.java
@@ -1,665 +1,667 @@
-/*******************************************************************************

- * Copyright (c) 2011 Eike Stepper (Berlin, Germany) 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:

- * Eike Stepper - initial API and implementation

- *

- *******************************************************************************/

-package org.eclipse.emf.ecp.internal.core;

-

-import java.io.IOException;

-import java.io.ObjectInput;

-import java.io.ObjectOutput;

-import java.util.ArrayList;

-import java.util.Collection;

-import java.util.Collections;

-import java.util.HashSet;

-import java.util.Iterator;

-import java.util.List;

-import java.util.Map.Entry;

-import java.util.Set;

-

-import org.eclipse.core.runtime.CoreException;

-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.common.notify.Notifier;

-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.EPackage.Registry;

-import org.eclipse.emf.ecore.EReference;

-import org.eclipse.emf.ecp.core.ECPRepository;

-import org.eclipse.emf.ecp.core.util.ECPElement;

-import org.eclipse.emf.ecp.core.util.ECPFilterProvider;

-import org.eclipse.emf.ecp.core.util.ECPModelContextAdapter;

-import org.eclipse.emf.ecp.core.util.ECPProperties;

-import org.eclipse.emf.ecp.core.util.ECPUtil;

-import org.eclipse.emf.ecp.core.util.observer.ECPProjectPreDeleteObserver;

-import org.eclipse.emf.ecp.internal.core.util.PropertiesElement;

-import org.eclipse.emf.ecp.spi.core.InternalProject;

-import org.eclipse.emf.ecp.spi.core.InternalProvider;

-import org.eclipse.emf.ecp.spi.core.InternalProvider.LifecycleEvent;

-import org.eclipse.emf.ecp.spi.core.InternalRepository;

-import org.eclipse.emf.ecp.spi.core.util.ECPDisposable;

-import org.eclipse.emf.ecp.spi.core.util.ECPDisposable.DisposeListener;

-import org.eclipse.emf.edit.domain.EditingDomain;

-

-/**

- * @author Eike Stepper

- * @author Eugen Neufeld

- */

-public final class ECPProjectImpl extends PropertiesElement implements InternalProject, DisposeListener {

-

-	private static final String PACKAGEFILTERS_EXTENSIONPOINT = "org.eclipse.emf.ecp.core.filters"; //$NON-NLS-1$

-

-	private InternalRepository repository;

-

-	private InternalProvider provider;

-

-	private Object providerSpecificData;

-

-	private Set<EPackage> filteredEPackages = Collections.emptySet();

-

-	private Set<EClass> filteredEClasses = Collections.emptySet();

-

-	private EditingDomain editingDomain;

-

-	private boolean open;

-

-	private boolean initialized = false;

-

-	/**

-	 * Constructor used when an offline project is created.

-	 *

-	 * @param provider the {@link InternalProvider} of this project

-	 * @param name the name of the project

-	 * @param properties the properties of the project

-	 */

-	public ECPProjectImpl(InternalProvider provider, String name, ECPProperties properties) {

-		super(name, properties);

-		this.provider = provider;

-		open = true;

-		setupFilteredEPackages();

-		notifyProvider(LifecycleEvent.INIT);

-	}

-

-	/**

-	 * Constructor used when an online project is created.

-	 *

-	 * @param repository the {@link ECPRepository} of this project

-	 * @param name the name of the project

-	 * @param properties the properties of the project

-	 */

-	public ECPProjectImpl(ECPRepository repository, String name, ECPProperties properties) {

-		super(name, properties);

-

-		if (repository == null) {

-			throw new IllegalArgumentException("Repository is null"); //$NON-NLS-1$

-		}

-

-		setRepository((InternalRepository) repository);

-		provider = getRepository().getProvider();

-		open = true;

-		setupFilteredEPackages();

-		notifyProvider(LifecycleEvent.INIT);

-	}

-

-	/**

-	 * Constructor used to load persisted projects on startup.

-	 *

-	 * @param in the {@link ObjectInput} to parse

-	 * @throws IOException is thrown when file can't be read.

-	 */

-	public ECPProjectImpl(ObjectInput in) throws IOException {

-		super(in);

-

-		final boolean shared = in.readBoolean();

-		if (shared) {

-			final String repositoryName = in.readUTF();

-			InternalRepository repository = (InternalRepository) ECPUtil.getECPRepositoryManager().getRepository(

-				repositoryName);

-			if (repository == null) {

-				repository = new Disposed(repositoryName);

-			}

-

-			setRepository(repository);

-			provider = repository.getProvider();

-		} else {

-			final String providerName = in.readUTF();

-			provider = (InternalProvider) ECPUtil.getECPProviderRegistry().getProvider(providerName);

-			if (provider == null) {

-				throw new IllegalStateException("Provider not found: " + providerName); //$NON-NLS-1$

-			}

-		}

-

-		open = in.readBoolean();

-

-		final int filteredPackageSize = in.readInt();

-		filteredEPackages = new HashSet<EPackage>();

-		for (int i = 0; i < filteredPackageSize; i++) {

-			final EPackage ePackage = Registry.INSTANCE.getEPackage(in.readUTF());

-			if (ePackage != null) {

-				filteredEPackages.add(ePackage);

-			}

-		}

-		final int filteredEClassSize = in.readInt();

-		filteredEClasses = new HashSet<EClass>();

-		for (int i = 0; i < filteredEClassSize; i++) {

-			final EPackage ePackage = Registry.INSTANCE.getEPackage(in.readUTF());

-			final EClassifier eClassifier = ePackage.getEClassifier(in.readUTF());

-			if (eClassifier instanceof EClass) {

-				filteredEClasses.add((EClass) eClassifier);

-			}

-		}

-

-		// do not initialize on startup, will be initializes by view

-		// notifyProvider(LifecycleEvent.INIT);

-	}

-

-	/**

-	 * this method sets all known {@link EPackage}s as the filter.

-	 */

-	private void setupFilteredEPackages() {

-		final List<ECPFilterProvider> filterProviders = new ArrayList<ECPFilterProvider>();

-		final IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint(

-			PACKAGEFILTERS_EXTENSIONPOINT);

-		for (final IExtension extension : extensionPoint.getExtensions()) {

-			final IConfigurationElement configurationElement = extension.getConfigurationElements()[0];

-			try {

-				final ECPFilterProvider filterProvider = (ECPFilterProvider) configurationElement

-					.createExecutableExtension("class"); //$NON-NLS-1$

-				filterProviders.add(filterProvider);

-			} catch (final CoreException ex) {

-				Activator.log(ex);

-			}

-		}

-

-		final Set<EPackage> ePackages = new HashSet<EPackage>();

-		final Set<String> filteredNsUris = new HashSet<String>();

-		for (final ECPFilterProvider filterProvider : filterProviders) {

-			filteredNsUris.addAll(filterProvider.getHiddenPackages());

-		}

-

-		final Set<String> relevantURIs = new HashSet<String>(Registry.INSTANCE.keySet());

-		relevantURIs.removeAll(filteredNsUris);

-

-		for (final String nsUri : relevantURIs) {

-			final EPackage ePackage = Registry.INSTANCE.getEPackage(nsUri);

-			ePackages.add(ePackage);

-		}

-

-		setVisiblePackages(ePackages);

-	}

-

-	@Override

-	public void write(ObjectOutput out) throws IOException {

-		super.write(out);

-		if (repository != null) {

-			out.writeBoolean(true);

-			out.writeUTF(repository.getName());

-		} else if (provider != null) {

-			out.writeBoolean(false);

-			out.writeUTF(provider.getName());

-		}

-

-		out.writeBoolean(open);

-

-		out.writeInt(filteredEPackages.size());

-		for (final EPackage ePackage : filteredEPackages) {

-			out.writeUTF(ePackage.getNsURI());

-		}

-		out.writeInt(filteredEClasses.size());

-		for (final EClass eClass : filteredEClasses) {

-

-			out.writeUTF(eClass.getEPackage().getNsURI());

-			out.writeUTF(eClass.getName());

-		}

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public String getType() {

-		return TYPE;

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public void disposed(ECPDisposable disposable) {

-		if (disposable == repository) {

-			dispose();

-		}

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public boolean isStorable() {

-		return true;

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public InternalProject getProject() {

-		return this;

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public InternalRepository getRepository() {

-		return repository;

-	}

-

-	private void setRepository(InternalRepository repository) {

-		if (this.repository != null) {

-			this.repository.removeDisposeListener(this);

-		}

-

-		this.repository = repository;

-

-		if (this.repository != null) {

-

-			this.repository.addDisposeListener(this);

-		}

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public InternalProvider getProvider() {

-		return provider;

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public Object getProviderSpecificData() {

-		return providerSpecificData;

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public void setProviderSpecificData(Object providerSpecificData) {

-		this.providerSpecificData = providerSpecificData;

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public void notifyObjectsChanged(Collection<Object> objects, boolean structural) {

-		if (objects != null && objects.size() != 0) {

-			// if (getProvider().isDirty(this)) {

-			// getProvider().doSave(this);

-			// }

-			ECPProjectManagerImpl.INSTANCE.notifyObjectsChanged(this, objects, structural);

-		}

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public synchronized EditingDomain getEditingDomain() {

-		if (editingDomain == null) {

-			editingDomain = getProvider().createEditingDomain(this);

-		}

-

-		return editingDomain;

-	}

-

-	/**

-	 * Returns an object which is an instance of the given class associated with this object. Returns <code>null</code>

-	 * if

-	 * no such object can be found.

-	 * <p>

-	 * This implementation of the method declared by <code>IAdaptable</code> passes the request along to the platform's

-	 * adapter manager; roughly <code>Platform.getAdapterManager().getAdapter(this, adapter)</code>. Subclasses may

-	 * override this method (however, if they do so, they should invoke the method on their superclass to ensure that

-	 * the Platform's adapter manager is consulted).

-	 * </p>

-	 *

-	 * @param adapterType

-	 *            the class to adapt to

-	 * @return the adapted object or <code>null</code>

-	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(Class) IAdaptable#getAdapter(Class)

-	 */

-	@SuppressWarnings({ "unchecked", "rawtypes" })

-	public Object getAdapter(Class adapterType) {

-		final InternalProvider provider = getProvider();

-		if (provider != null && !provider.isDisposed()) {

-			final Object result = provider.getAdapter(this, adapterType);

-			if (result != null) {

-				return result;

-			}

-		}

-

-		return Platform.getAdapterManager().getAdapter(this, adapterType);

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public boolean canDelete() {

-		return true;

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public void delete() {

-		ECPUtil.getECPObserverBus().notify(ECPProjectPreDeleteObserver.class).projectDelete(this);

-		getProvider().handleLifecycle(this, LifecycleEvent.REMOVE);

-		ECPProjectManagerImpl.INSTANCE.changeElements(Collections.singleton(getName()), null);

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public synchronized boolean isOpen() {

-		return !isRepositoryDisposed() && open;

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public synchronized void open() {

-		if (!isRepositoryDisposed()) {

-			setOpen(true);

-		}

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public synchronized void close() {

-		if (!isRepositoryDisposed()) {

-			setOpen(false);

-		}

-	}

-

-	private boolean isRepositoryDisposed() {

-		return repository != null && repository.isDisposed();

-	}

-

-	private void setOpen(boolean open) {

-		boolean modified = false;

-		synchronized (this) {

-			if (open != this.open) {

-				this.open = open;

-				modified = true;

-

-				notifyProvider(open ? LifecycleEvent.INIT : LifecycleEvent.DISPOSE);

-

-				if (!open) {

-					providerSpecificData = null;

-					editingDomain = null;

-				}

-			}

-		}

-

-		if (modified) {

-			ECPProjectManagerImpl.INSTANCE.changeProject(this, open, true);

-		}

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public void notifyProvider(LifecycleEvent event) {

-		// guard to prevent multiple initializations

-		if (event == LifecycleEvent.INIT && initialized) {

-			return;

-		}

-		final InternalProvider provider = getProvider();

-

-		provider.handleLifecycle(this, event);

-		if (event == LifecycleEvent.INIT) {

-			initialized = true;

-			final Notifier root = provider.getRoot(this);

-			if (root != null) {

-				root.eAdapters().add(new ECPModelContextAdapter(this));

-			}

-		}

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public void undispose(InternalRepository repository) {

-		setRepository(repository);

-		notifyProvider(LifecycleEvent.INIT);

-

-		if (open) {

-			ECPProjectManagerImpl.INSTANCE.changeProject(this, true, true);

-		}

-	}

-

-	private void dispose() {

-		notifyProvider(LifecycleEvent.DISPOSE);

-		if (repository != null) {

-			setRepository(new Disposed(repository.getName()));

-		}

-

-		providerSpecificData = null;

-		editingDomain = null;

-

-		ECPProjectManagerImpl.INSTANCE.changeProject(this, false, false);

-	}

-

-	/**

-	 * @author Eike Stepper

-	 */

-	private static final class Disposed implements InternalRepository {

-		private final String name;

-

-		public Disposed(String name) {

-			this.name = name;

-		}

-

-		/** {@inheritDoc} */

-		@Override

-		public String getName() {

-			return name;

-		}

-

-		/** {@inheritDoc} */

-		@Override

-		public boolean isDisposed() {

-			return true;

-		}

-

-		/** {@inheritDoc} */

-		@Override

-		public String getLabel() {

-			return null;

-		}

-

-		/** {@inheritDoc} */

-		@Override

-		public String getDescription() {

-			return null;

-		}

-

-		/** {@inheritDoc} */

-		@Override

-		public int compareTo(ECPElement o) {

-			return 0;

-		}

-

-		/** {@inheritDoc} */

-		@Override

-		public ECPProperties getProperties() {

-			return null;

-		}

-

-		/** {@inheritDoc} */

-		@Override

-		public boolean canDelete() {

-			return false;

-		}

-

-		/** {@inheritDoc} */

-		@Override

-		public void delete() {

-		}

-

-		/** {@inheritDoc} */

-		@Override

-		public boolean isStorable() {

-			return false;

-		}

-

-		/** {@inheritDoc} */

-		@Override

-		public void write(ObjectOutput out) throws IOException {

-		}

-

-		/** {@inheritDoc} */

-		@Override

-		public void setLabel(String label) {

-		}

-

-		/** {@inheritDoc} */

-		@Override

-		public void setDescription(String description) {

-		}

-

-		/** {@inheritDoc} */

-		@Override

-		public void dispose() {

-		}

-

-		/** {@inheritDoc} */

-		@Override

-		public void addDisposeListener(DisposeListener listener) {

-		}

-

-		/** {@inheritDoc} */

-		@Override

-		public void removeDisposeListener(DisposeListener listener) {

-		}

-

-		/** {@inheritDoc} */

-		@Override

-		public InternalProvider getProvider() {

-			return null;

-		}

-

-		/** {@inheritDoc} */

-		@Override

-		public Object getProviderSpecificData() {

-			return null;

-		}

-

-		/** {@inheritDoc} */

-		@Override

-		public void setProviderSpecificData(Object data) {

-		}

-

-		/** {@inheritDoc} */

-		@Override

-		public void notifyObjectsChanged(Collection<Object> objects) {

-		}

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	@SuppressWarnings("unchecked")

-	public EList<Object> getContents() {

-		return (EList<Object>) getProvider().getElements(this);

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public Set<EPackage> getUnsupportedEPackages() {

-		return getProvider().getUnsupportedEPackages(ECPUtil.getAllRegisteredEPackages(), getRepository());

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public void setVisiblePackages(Set<EPackage> filteredPackages) {

-		filteredEPackages = filteredPackages;

-		ECPProjectManagerImpl.INSTANCE.storeElement(this);

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public Set<EPackage> getVisiblePackages() {

-		return filteredEPackages;

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public Set<EClass> getVisibleEClasses() {

-		return filteredEClasses;

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public void setVisibleEClasses(Set<EClass> filteredEClasses) {

-		this.filteredEClasses = filteredEClasses;

-		ECPProjectManagerImpl.INSTANCE.storeElement(this);

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public Iterator<EObject> getReferenceCandidates(EObject modelElement, EReference eReference) {

-		return getProvider().getLinkElements(this, modelElement, eReference);

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public void saveContents() {

-		getProvider().doSave(this);

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public boolean hasDirtyContents() {

-		return getProvider().isDirty(this);

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public void deleteElements(Collection<Object> objects) {

-		getProvider().delete(this, objects);

-		notifyObjectsChanged(Collections.singleton((Object) this), true);

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public InternalProject clone(String name) {

-		try {

-			super.clone();

-		} catch (final CloneNotSupportedException ex) {

-			Activator.log(ex);

-		}

-		final InternalProject project = new ECPProjectImpl(getProvider(), name, ECPUtil.createProperties());

-		project.setVisibleEClasses(getVisibleEClasses());

-		project.setVisiblePackages(getVisiblePackages());

-		getProvider().cloneProject(this, project);

-		return project;

-	}

-

-	@Override

-	protected void propertiesChanged(Collection<Entry<String, String>> oldProperties,

-		Collection<Entry<String, String>> newProperties) {

-		ECPProjectManagerImpl.INSTANCE.storeElement(this);

-	}

-

-	/**

-	 * You must not call this anymore as properties are save automatically now.

-	 */

-	@Override

-	@Deprecated

-	public void saveProperties() {

-		ECPProjectManagerImpl.INSTANCE.storeElement(this);

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public boolean isModelRoot(Object object) {

-		return getProvider().getRoot(this).equals(object);

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public boolean contains(Object object) {

-		return getProvider().contains(this, object);

-	}

-}

+/*******************************************************************************
+ * Copyright (c) 2011-2015 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.emf.ecp.internal.core;
+
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map.Entry;
+import java.util.Set;
+
+import org.eclipse.core.runtime.CoreException;
+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.common.notify.Notifier;
+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.EPackage.Registry;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecp.core.ECPRepository;
+import org.eclipse.emf.ecp.core.util.ECPElement;
+import org.eclipse.emf.ecp.core.util.ECPFilterProvider;
+import org.eclipse.emf.ecp.core.util.ECPModelContextAdapter;
+import org.eclipse.emf.ecp.core.util.ECPProperties;
+import org.eclipse.emf.ecp.core.util.ECPUtil;
+import org.eclipse.emf.ecp.core.util.observer.ECPProjectPreDeleteObserver;
+import org.eclipse.emf.ecp.internal.core.util.PropertiesElement;
+import org.eclipse.emf.ecp.spi.core.InternalProject;
+import org.eclipse.emf.ecp.spi.core.InternalProvider;
+import org.eclipse.emf.ecp.spi.core.InternalProvider.LifecycleEvent;
+import org.eclipse.emf.ecp.spi.core.InternalRepository;
+import org.eclipse.emf.ecp.spi.core.util.ECPDisposable;
+import org.eclipse.emf.ecp.spi.core.util.ECPDisposable.DisposeListener;
+import org.eclipse.emf.edit.domain.EditingDomain;
+
+/**
+ * @author Eike Stepper
+ * @author Eugen Neufeld
+ */
+public final class ECPProjectImpl extends PropertiesElement implements InternalProject, DisposeListener {
+
+	private static final String PACKAGEFILTERS_EXTENSIONPOINT = "org.eclipse.emf.ecp.core.filters"; //$NON-NLS-1$
+
+	private InternalRepository repository;
+
+	private InternalProvider provider;
+
+	private Object providerSpecificData;
+
+	private Set<EPackage> filteredEPackages = Collections.emptySet();
+
+	private Set<EClass> filteredEClasses = Collections.emptySet();
+
+	private EditingDomain editingDomain;
+
+	private boolean open;
+
+	private boolean initialized = false;
+
+	/**
+	 * Constructor used when an offline project is created.
+	 *
+	 * @param provider the {@link InternalProvider} of this project
+	 * @param name the name of the project
+	 * @param properties the properties of the project
+	 */
+	public ECPProjectImpl(InternalProvider provider, String name, ECPProperties properties) {
+		super(name, properties);
+		this.provider = provider;
+		open = true;
+		setupFilteredEPackages();
+		notifyProvider(LifecycleEvent.INIT);
+	}
+
+	/**
+	 * Constructor used when an online project is created.
+	 *
+	 * @param repository the {@link ECPRepository} of this project
+	 * @param name the name of the project
+	 * @param properties the properties of the project
+	 */
+	public ECPProjectImpl(ECPRepository repository, String name, ECPProperties properties) {
+		super(name, properties);
+
+		if (repository == null) {
+			throw new IllegalArgumentException("Repository is null"); //$NON-NLS-1$
+		}
+
+		setRepository((InternalRepository) repository);
+		provider = getRepository().getProvider();
+		open = true;
+		setupFilteredEPackages();
+		notifyProvider(LifecycleEvent.INIT);
+	}
+
+	/**
+	 * Constructor used to load persisted projects on startup.
+	 *
+	 * @param in the {@link ObjectInput} to parse
+	 * @throws IOException is thrown when file can't be read.
+	 */
+	public ECPProjectImpl(ObjectInput in) throws IOException {
+		super(in);
+
+		final boolean shared = in.readBoolean();
+		if (shared) {
+			final String repositoryName = in.readUTF();
+			InternalRepository repository = (InternalRepository) ECPUtil.getECPRepositoryManager().getRepository(
+				repositoryName);
+			if (repository == null) {
+				repository = new Disposed(repositoryName);
+			}
+
+			setRepository(repository);
+			provider = repository.getProvider();
+		} else {
+			final String providerName = in.readUTF();
+			provider = (InternalProvider) ECPUtil.getECPProviderRegistry().getProvider(providerName);
+			if (provider == null) {
+				throw new IllegalStateException("Provider not found: " + providerName); //$NON-NLS-1$
+			}
+		}
+
+		open = in.readBoolean();
+
+		final int filteredPackageSize = in.readInt();
+		filteredEPackages = new HashSet<EPackage>();
+		for (int i = 0; i < filteredPackageSize; i++) {
+			final EPackage ePackage = Registry.INSTANCE.getEPackage(in.readUTF());
+			if (ePackage != null) {
+				filteredEPackages.add(ePackage);
+			}
+		}
+		final int filteredEClassSize = in.readInt();
+		filteredEClasses = new HashSet<EClass>();
+		for (int i = 0; i < filteredEClassSize; i++) {
+			final EPackage ePackage = Registry.INSTANCE.getEPackage(in.readUTF());
+			final EClassifier eClassifier = ePackage.getEClassifier(in.readUTF());
+			if (eClassifier instanceof EClass) {
+				filteredEClasses.add((EClass) eClassifier);
+			}
+		}
+
+		// do not initialize on startup, will be initializes by view
+		// notifyProvider(LifecycleEvent.INIT);
+	}
+
+	/**
+	 * this method sets all known {@link EPackage}s as the filter.
+	 */
+	private void setupFilteredEPackages() {
+		final List<ECPFilterProvider> filterProviders = new ArrayList<ECPFilterProvider>();
+		final IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint(
+			PACKAGEFILTERS_EXTENSIONPOINT);
+		for (final IExtension extension : extensionPoint.getExtensions()) {
+			final IConfigurationElement configurationElement = extension.getConfigurationElements()[0];
+			try {
+				final ECPFilterProvider filterProvider = (ECPFilterProvider) configurationElement
+					.createExecutableExtension("class"); //$NON-NLS-1$
+				filterProviders.add(filterProvider);
+			} catch (final CoreException ex) {
+				Activator.log(ex);
+			}
+		}
+
+		final Set<EPackage> ePackages = new HashSet<EPackage>();
+		final Set<String> filteredNsUris = new HashSet<String>();
+		for (final ECPFilterProvider filterProvider : filterProviders) {
+			filteredNsUris.addAll(filterProvider.getHiddenPackages());
+		}
+
+		final Set<String> relevantURIs = new HashSet<String>(Registry.INSTANCE.keySet());
+		relevantURIs.removeAll(filteredNsUris);
+
+		for (final String nsUri : relevantURIs) {
+			final EPackage ePackage = Registry.INSTANCE.getEPackage(nsUri);
+			ePackages.add(ePackage);
+		}
+
+		setVisiblePackages(ePackages);
+	}
+
+	@Override
+	public void write(ObjectOutput out) throws IOException {
+		super.write(out);
+		if (repository != null) {
+			out.writeBoolean(true);
+			out.writeUTF(repository.getName());
+		} else if (provider != null) {
+			out.writeBoolean(false);
+			out.writeUTF(provider.getName());
+		}
+
+		out.writeBoolean(open);
+
+		out.writeInt(filteredEPackages.size());
+		for (final EPackage ePackage : filteredEPackages) {
+			out.writeUTF(ePackage.getNsURI());
+		}
+		out.writeInt(filteredEClasses.size());
+		for (final EClass eClass : filteredEClasses) {
+
+			out.writeUTF(eClass.getEPackage().getNsURI());
+			out.writeUTF(eClass.getName());
+		}
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public String getType() {
+		return TYPE;
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public void disposed(ECPDisposable disposable) {
+		if (disposable == repository) {
+			dispose();
+		}
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public boolean isStorable() {
+		return true;
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public InternalProject getProject() {
+		return this;
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public InternalRepository getRepository() {
+		return repository;
+	}
+
+	private void setRepository(InternalRepository repository) {
+		if (this.repository != null) {
+			this.repository.removeDisposeListener(this);
+		}
+
+		this.repository = repository;
+
+		if (this.repository != null) {
+
+			this.repository.addDisposeListener(this);
+		}
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public InternalProvider getProvider() {
+		return provider;
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public Object getProviderSpecificData() {
+		return providerSpecificData;
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public void setProviderSpecificData(Object providerSpecificData) {
+		this.providerSpecificData = providerSpecificData;
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public void notifyObjectsChanged(Collection<Object> objects, boolean structural) {
+		if (objects != null && objects.size() != 0) {
+			// if (getProvider().isDirty(this)) {
+			// getProvider().doSave(this);
+			// }
+			((ECPProjectManagerImpl) ECPUtil.getECPProjectManager()).notifyObjectsChanged(this, objects, structural);
+		}
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public synchronized EditingDomain getEditingDomain() {
+		if (editingDomain == null) {
+			editingDomain = getProvider().createEditingDomain(this);
+		}
+
+		return editingDomain;
+	}
+
+	/**
+	 * Returns an object which is an instance of the given class associated with this object. Returns <code>null</code>
+	 * if
+	 * no such object can be found.
+	 * <p>
+	 * This implementation of the method declared by <code>IAdaptable</code> passes the request along to the platform's
+	 * adapter manager; roughly <code>Platform.getAdapterManager().getAdapter(this, adapter)</code>. Subclasses may
+	 * override this method (however, if they do so, they should invoke the method on their superclass to ensure that
+	 * the Platform's adapter manager is consulted).
+	 * </p>
+	 *
+	 * @param adapterType
+	 *            the class to adapt to
+	 * @return the adapted object or <code>null</code>
+	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(Class) IAdaptable#getAdapter(Class)
+	 */
+	@SuppressWarnings({ "unchecked", "rawtypes" })
+	public Object getAdapter(Class adapterType) {
+		final InternalProvider provider = getProvider();
+		if (provider != null && !provider.isDisposed()) {
+			final Object result = provider.getAdapter(this, adapterType);
+			if (result != null) {
+				return result;
+			}
+		}
+
+		return Platform.getAdapterManager().getAdapter(this, adapterType);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public boolean canDelete() {
+		return true;
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public void delete() {
+		ECPUtil.getECPObserverBus().notify(ECPProjectPreDeleteObserver.class).projectDelete(this);
+		// FIXME https://bugs.eclipse.org/bugs/show_bug.cgi?id=462399
+		cleanup();
+		getProvider().handleLifecycle(this, LifecycleEvent.REMOVE);
+		((ECPProjectManagerImpl) ECPUtil.getECPProjectManager()).changeElements(Collections.singleton(getName()), null);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public synchronized boolean isOpen() {
+		return !isRepositoryDisposed() && open;
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public synchronized void open() {
+		if (!isRepositoryDisposed()) {
+			setOpen(true);
+		}
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public synchronized void close() {
+		if (!isRepositoryDisposed()) {
+			setOpen(false);
+		}
+	}
+
+	private boolean isRepositoryDisposed() {
+		return repository != null && repository.isDisposed();
+	}
+
+	private void setOpen(boolean open) {
+		boolean modified = false;
+		synchronized (this) {
+			if (open != this.open) {
+				this.open = open;
+				modified = true;
+
+				notifyProvider(open ? LifecycleEvent.INIT : LifecycleEvent.DISPOSE);
+
+				if (!open) {
+					providerSpecificData = null;
+					editingDomain = null;
+				}
+			}
+		}
+
+		if (modified) {
+			((ECPProjectManagerImpl) ECPUtil.getECPProjectManager()).changeProject(this, open, true);
+		}
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public void notifyProvider(LifecycleEvent event) {
+		// guard to prevent multiple initializations
+		if (event == LifecycleEvent.INIT && initialized) {
+			return;
+		}
+		final InternalProvider provider = getProvider();
+
+		provider.handleLifecycle(this, event);
+		if (event == LifecycleEvent.INIT) {
+			initialized = true;
+			final Notifier root = provider.getRoot(this);
+			if (root != null) {
+				root.eAdapters().add(new ECPModelContextAdapter(this));
+			}
+		}
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public void undispose(InternalRepository repository) {
+		setRepository(repository);
+		notifyProvider(LifecycleEvent.INIT);
+
+		if (open) {
+			((ECPProjectManagerImpl) ECPUtil.getECPProjectManager()).changeProject(this, true, true);
+		}
+	}
+
+	private void dispose() {
+		notifyProvider(LifecycleEvent.DISPOSE);
+		if (repository != null) {
+			setRepository(new Disposed(repository.getName()));
+		}
+
+		providerSpecificData = null;
+		editingDomain = null;
+
+		((ECPProjectManagerImpl) ECPUtil.getECPProjectManager()).changeProject(this, false, false);
+	}
+
+	/**
+	 * @author Eike Stepper
+	 */
+	private static final class Disposed implements InternalRepository {
+		private final String name;
+
+		public Disposed(String name) {
+			this.name = name;
+		}
+
+		/** {@inheritDoc} */
+		@Override
+		public String getName() {
+			return name;
+		}
+
+		/** {@inheritDoc} */
+		@Override
+		public boolean isDisposed() {
+			return true;
+		}
+
+		/** {@inheritDoc} */
+		@Override
+		public String getLabel() {
+			return null;
+		}
+
+		/** {@inheritDoc} */
+		@Override
+		public String getDescription() {
+			return null;
+		}
+
+		/** {@inheritDoc} */
+		@Override
+		public int compareTo(ECPElement o) {
+			return 0;
+		}
+
+		/** {@inheritDoc} */
+		@Override
+		public ECPProperties getProperties() {
+			return null;
+		}
+
+		/** {@inheritDoc} */
+		@Override
+		public boolean canDelete() {
+			return false;
+		}
+
+		/** {@inheritDoc} */
+		@Override
+		public void delete() {
+		}
+
+		/** {@inheritDoc} */
+		@Override
+		public boolean isStorable() {
+			return false;
+		}
+
+		/** {@inheritDoc} */
+		@Override
+		public void write(ObjectOutput out) throws IOException {
+		}
+
+		/** {@inheritDoc} */
+		@Override
+		public void setLabel(String label) {
+		}
+
+		/** {@inheritDoc} */
+		@Override
+		public void setDescription(String description) {
+		}
+
+		/** {@inheritDoc} */
+		@Override
+		public void dispose() {
+		}
+
+		/** {@inheritDoc} */
+		@Override
+		public void addDisposeListener(DisposeListener listener) {
+		}
+
+		/** {@inheritDoc} */
+		@Override
+		public void removeDisposeListener(DisposeListener listener) {
+		}
+
+		/** {@inheritDoc} */
+		@Override
+		public InternalProvider getProvider() {
+			return null;
+		}
+
+		/** {@inheritDoc} */
+		@Override
+		public Object getProviderSpecificData() {
+			return null;
+		}
+
+		/** {@inheritDoc} */
+		@Override
+		public void setProviderSpecificData(Object data) {
+		}
+
+		/** {@inheritDoc} */
+		@Override
+		public void notifyObjectsChanged(Collection<Object> objects) {
+		}
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	@SuppressWarnings("unchecked")
+	public EList<Object> getContents() {
+		return (EList<Object>) getProvider().getElements(this);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public Set<EPackage> getUnsupportedEPackages() {
+		return getProvider().getUnsupportedEPackages(ECPUtil.getAllRegisteredEPackages(), getRepository());
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public void setVisiblePackages(Set<EPackage> filteredPackages) {
+		filteredEPackages = filteredPackages;
+		((ECPProjectManagerImpl) ECPUtil.getECPProjectManager()).storeElement(this);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public Set<EPackage> getVisiblePackages() {
+		return filteredEPackages;
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public Set<EClass> getVisibleEClasses() {
+		return filteredEClasses;
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public void setVisibleEClasses(Set<EClass> filteredEClasses) {
+		this.filteredEClasses = filteredEClasses;
+		((ECPProjectManagerImpl) ECPUtil.getECPProjectManager()).storeElement(this);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public Iterator<EObject> getReferenceCandidates(EObject modelElement, EReference eReference) {
+		return getProvider().getLinkElements(this, modelElement, eReference);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public void saveContents() {
+		getProvider().doSave(this);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public boolean hasDirtyContents() {
+		return getProvider().isDirty(this);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public void deleteElements(Collection<Object> objects) {
+		getProvider().delete(this, objects);
+		notifyObjectsChanged(Collections.singleton((Object) this), true);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public InternalProject clone(String name) {
+		try {
+			super.clone();
+		} catch (final CloneNotSupportedException ex) {
+			Activator.log(ex);
+		}
+		final InternalProject project = new ECPProjectImpl(getProvider(), name, ECPUtil.createProperties());
+		project.setVisibleEClasses(getVisibleEClasses());
+		project.setVisiblePackages(getVisiblePackages());
+		getProvider().cloneProject(this, project);
+		return project;
+	}
+
+	@Override
+	protected void propertiesChanged(Collection<Entry<String, String>> oldProperties,
+		Collection<Entry<String, String>> newProperties) {
+		((ECPProjectManagerImpl) ECPUtil.getECPProjectManager()).storeElement(this);
+	}
+
+	/**
+	 * You must not call this anymore as properties are save automatically now.
+	 */
+	@Override
+	@Deprecated
+	public void saveProperties() {
+		((ECPProjectManagerImpl) ECPUtil.getECPProjectManager()).storeElement(this);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public boolean isModelRoot(Object object) {
+		return getProvider().getRoot(this).equals(object);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public boolean contains(Object object) {
+		return getProvider().contains(this, object);
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/ECPProjectManagerImpl.java b/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/ECPProjectManagerImpl.java
index fb1bf7d..4cfd003 100644
--- a/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/ECPProjectManagerImpl.java
+++ b/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/ECPProjectManagerImpl.java
@@ -51,16 +51,10 @@
  * @author Eugen Neufeld

  */

 public final class ECPProjectManagerImpl extends PropertiesStore<InternalProject, ECPObserver> implements

-	ECPProjectManager, ECPRepositoriesChangedObserver {

+ECPProjectManager, ECPRepositoriesChangedObserver {

 

 	private static final String PROJECT_FOLDERNAME = "projects"; //$NON-NLS-1$

-	/**

-	 * The Singleton to access the implementation of the Default ECPProjectManager.

-	 *

-	 * @deprecated use {@link ECPUtil} instead

-	 */

-	@Deprecated

-	public static ECPProjectManagerImpl INSTANCE;

+

 	/**

 	 * This variable defines whether the projects where already initialized. Default value is false.

 	 */

@@ -70,12 +64,26 @@
 	 * Should not be called directly, use service instead.

 	 */

 	public ECPProjectManagerImpl() {

-		if (INSTANCE != null) {

-			throw new IllegalStateException("Manager must not be initialized twice"); //$NON-NLS-1$

-		}

-		INSTANCE = this;

+		initializeFolder(null);

+	}

+

+	/**

+	 * @param sessionId Will be appended to the folder name so that there are different folders for each session

+	 */

+

+	public ECPProjectManagerImpl(String sessionId) {

+		initializeFolder(sessionId);

+	}

+

+	private void initializeFolder(String sessionId) {

+

 		final File stateLocation = Activator.getInstance().getStateLocation().toFile();

 		setFolder(new File(stateLocation, PROJECT_FOLDERNAME));

+		String finalFolderName = PROJECT_FOLDERNAME;

+		if (sessionId != null) {

+			finalFolderName += "-" + sessionId;

+		}

+		setFolder(new File(stateLocation, finalFolderName));

 	}

 

 	/** {@inheritDoc} */

diff --git a/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/ECPProviderRegistryImpl.java b/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/ECPProviderRegistryImpl.java
index a960acd..cb89db7 100644
--- a/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/ECPProviderRegistryImpl.java
+++ b/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/ECPProviderRegistryImpl.java
@@ -50,13 +50,6 @@
  */

 public final class ECPProviderRegistryImpl extends ElementRegistry<InternalProvider, ECPObserver> implements

 	ECPProviderRegistry {

-	/**

-	 * The Singleton to access the implementation of the Default ECPProviderRegistry.

-	 *

-	 * @deprecated use {@link ECPUtil} instead

-	 */

-	@Deprecated

-	public static ECPProviderRegistryImpl INSTANCE;

 

 	private final ProviderParser extensionParser = new ProviderParser();

 

@@ -64,10 +57,7 @@
 	 * Should not be called directly, use service instead.

 	 */

 	public ECPProviderRegistryImpl() {

-		if (INSTANCE != null) {

-			throw new IllegalStateException("Manager must not be initialized twice"); //$NON-NLS-1$

-		}

-		INSTANCE = this;

+

 	}

 

 	/** {@inheritDoc} **/

diff --git a/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/ECPRepositoryImpl.java b/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/ECPRepositoryImpl.java
index 23a6bdf..bf30a88 100644
--- a/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/ECPRepositoryImpl.java
+++ b/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/ECPRepositoryImpl.java
@@ -1,283 +1,285 @@
-/*******************************************************************************

- * Copyright (c) 2011-2012 EclipseSource Muenchen GmbH and others.

- *

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- * Eike Stepper - initial API and implementation

- * Eugen Neufeld - JavaDoc

- *******************************************************************************/

-

-package org.eclipse.emf.ecp.internal.core;

-

-import java.io.IOException;

-import java.io.ObjectInput;

-import java.io.ObjectOutput;

-import java.util.ArrayList;

-import java.util.Collection;

-import java.util.Collections;

-import java.util.List;

-import java.util.Map.Entry;

-

-import org.eclipse.core.runtime.Platform;

-import org.eclipse.emf.ecp.core.ECPProject;

-import org.eclipse.emf.ecp.core.ECPProvider;

-import org.eclipse.emf.ecp.core.ECPRepository;

-import org.eclipse.emf.ecp.core.util.ECPProperties;

-import org.eclipse.emf.ecp.core.util.ECPUtil;

-import org.eclipse.emf.ecp.internal.core.util.Disposable;

-import org.eclipse.emf.ecp.internal.core.util.PropertiesElement;

-import org.eclipse.emf.ecp.spi.core.InternalProject;

-import org.eclipse.emf.ecp.spi.core.InternalProvider;

-import org.eclipse.emf.ecp.spi.core.InternalProvider.LifecycleEvent;

-import org.eclipse.emf.ecp.spi.core.InternalRepository;

-import org.eclipse.emf.ecp.spi.core.util.DisposeException;

-import org.eclipse.emf.ecp.spi.core.util.ECPDisposable;

-import org.eclipse.emf.ecp.spi.core.util.ECPDisposable.DisposeListener;

-import org.eclipse.net4j.util.ReflectUtil.ExcludeFromDump;

-

-/**

- * This Class describes a repository.

- *

- * @author Eike Stepper

- * @author Eugen Neufeld

- */

-public final class ECPRepositoryImpl extends PropertiesElement implements InternalRepository, DisposeListener {

-	@ExcludeFromDump

-	private final Disposable disposable = new Disposable(this) {

-		@Override

-		protected void doDispose() {

-			provider = null;

-			providerSpecificData = null;

-		}

-	};

-

-	private String label;

-

-	private String description;

-

-	private InternalProvider provider;

-

-	private Object providerSpecificData;

-

-	/**

-	 * Constructor used to create an instance through user input.

-	 *

-	 * @param provider the {@link ECPProvider} for this repository

-	 * @param name the name of this repository

-	 * @param properties the {@link ECPProperties} of this repository

-	 */

-	public ECPRepositoryImpl(ECPProvider provider, String name, ECPProperties properties) {

-		super(name, properties);

-		label = name;

-		description = "";

-

-		if (provider == null) {

-			throw new IllegalArgumentException("Provider is null");

-		}

-

-		this.provider = (InternalProvider) provider;

-		this.provider.addDisposeListener(this);

-	}

-

-	/**

-	 * Constructor used by the {@link org.eclipse.emf.ecp.core.ECPRepositoryManager ECPRepositoryManager} when loading

-	 * existing repositories during startup.

-	 *

-	 * @param in the {@link ObjectInput} to parse

-	 * @throws IOException when an error occurs

-	 */

-	public ECPRepositoryImpl(ObjectInput in) throws IOException {

-		super(in);

-

-		label = in.readUTF();

-		description = in.readUTF();

-

-		final String providerName = in.readUTF();

-		provider = (InternalProvider) ECPUtil.getECPProviderRegistry().getProvider(providerName);

-		if (provider == null) {

-			throw new IllegalStateException("Provider not found: " + providerName);

-		}

-

-		provider.addDisposeListener(this);

-	}

-

-	/** {@inheritDoc} **/

-	@Override

-	public String getType() {

-		return ECPRepository.TYPE;

-	}

-

-	/** {@inheritDoc} **/

-	@Override

-	public void disposed(ECPDisposable disposable) throws DisposeException {

-		if (disposable == provider) {

-			dispose();

-		}

-	}

-

-	/** {@inheritDoc} **/

-	@Override

-	public boolean isStorable() {

-		return true;

-	}

-

-	@Override

-	public void write(ObjectOutput out) throws IOException {

-		super.write(out);

-		out.writeUTF(label);

-		out.writeUTF(description);

-		out.writeUTF(provider.getName());

-	}

-

-	/** {@inheritDoc} **/

-	@Override

-	public String getLabel() {

-		return label;

-	}

-

-	/** {@inheritDoc} **/

-	@Override

-	public void setLabel(String label) {

-		this.label = label;

-	}

-

-	/** {@inheritDoc} **/

-	@Override

-	public String getDescription() {

-		return description;

-	}

-

-	/** {@inheritDoc} **/

-	@Override

-	public void setDescription(String description) {

-		this.description = description;

-	}

-

-	/** {@inheritDoc} **/

-	@Override

-	public boolean isDisposed() {

-		return disposable.isDisposed();

-	}

-

-	/**

-	 * Returns an object which is an instance of the given class associated with this object. Returns <code>null</code>

-	 * if

-	 * no such object can be found.

-	 * <p>

-	 * This implementation of the method declared by <code>IAdaptable</code> passes the request along to the platform's

-	 * adapter manager; roughly <code>Platform.getAdapterManager().getAdapter(this, adapter)</code>. Subclasses may

-	 * override this method (however, if they do so, they should invoke the method on their superclass to ensure that

-	 * the Platform's adapter manager is consulted).

-	 * </p>

-	 *

-	 * @param adapterType

-	 *            the class to adapt to

-	 * @return the adapted object or <code>null</code>

-	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(Class)

-	 */

-	@SuppressWarnings({ "unchecked", "rawtypes" })

-	public Object getAdapter(Class adapterType) {

-		final InternalProvider provider = getProvider();

-		if (!provider.isDisposed()) {

-			final Object result = provider.getAdapter(this, adapterType);

-			if (result != null) {

-				return result;

-			}

-		}

-

-		return Platform.getAdapterManager().getAdapter(this, adapterType);

-	}

-

-	/** {@inheritDoc} **/

-	@Override

-	public void dispose() {

-		disposable.dispose();

-	}

-

-	/** {@inheritDoc} **/

-	@Override

-	public void addDisposeListener(DisposeListener listener) {

-		disposable.addDisposeListener(listener);

-	}

-

-	/** {@inheritDoc} **/

-	@Override

-	public void removeDisposeListener(DisposeListener listener) {

-		disposable.removeDisposeListener(listener);

-	}

-

-	/** {@inheritDoc} **/

-	@Override

-	public InternalProvider getProvider() {

-		return provider;

-	}

-

-	/** {@inheritDoc} **/

-	@Override

-	public Object getProviderSpecificData() {

-		return providerSpecificData;

-	}

-

-	/** {@inheritDoc} **/

-	@Override

-	public void setProviderSpecificData(Object providerSpecificData) {

-		this.providerSpecificData = providerSpecificData;

-	}

-

-	/** {@inheritDoc} **/

-	@Override

-	public boolean canDelete() {

-		return isStorable();

-	}

-

-	/** {@inheritDoc} **/

-	@Override

-	public void delete() {

-		if (!canDelete()) {

-			throw new UnsupportedOperationException();

-		}

-

-		try {

-			provider.handleLifecycle(this, LifecycleEvent.REMOVE);

-		} catch (final Exception ex) {

-			Activator.log(ex);

-		}

-

-		ECPRepositoryManagerImpl.INSTANCE.changeElements(Collections.singleton(getName()), null);

-	}

-

-	/** {@inheritDoc} **/

-	@Override

-	public void notifyObjectsChanged(Collection<Object> objects) {

-		if (objects != null && objects.size() != 0) {

-			ECPRepositoryManagerImpl.INSTANCE.notifyObjectsChanged(this, objects);

-		}

-	}

-

-	/**

-	 * Return all open projects of that are shared on this repository.

-	 *

-	 * @return array of currently open {@link ECPProject ECPProjects} that are shared on this repository

-	 */

-	public InternalProject[] getOpenProjects() {

-		final List<InternalProject> result = new ArrayList<InternalProject>();

-		for (final ECPProject project : ECPUtil.getECPProjectManager().getProjects()) {

-			if (project.isOpen() && project.getRepository().equals(this)) {

-				result.add((InternalProject) project);

-			}

-		}

-

-		// TODO Consider to cache the result

-		return result.toArray(new InternalProject[result.size()]);

-	}

-

-	@Override

-	protected void propertiesChanged(Collection<Entry<String, String>> oldProperties,

-		Collection<Entry<String, String>> newProperties) {

-		ECPRepositoryManagerImpl.INSTANCE.storeElement(this);

-	}

-}

+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ * Eugen Neufeld - JavaDoc
+ *******************************************************************************/
+
+package org.eclipse.emf.ecp.internal.core;
+
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map.Entry;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.ecp.core.ECPProject;
+import org.eclipse.emf.ecp.core.ECPProvider;
+import org.eclipse.emf.ecp.core.ECPRepository;
+import org.eclipse.emf.ecp.core.util.ECPProperties;
+import org.eclipse.emf.ecp.core.util.ECPUtil;
+import org.eclipse.emf.ecp.internal.core.util.Disposable;
+import org.eclipse.emf.ecp.internal.core.util.PropertiesElement;
+import org.eclipse.emf.ecp.spi.core.InternalProject;
+import org.eclipse.emf.ecp.spi.core.InternalProvider;
+import org.eclipse.emf.ecp.spi.core.InternalProvider.LifecycleEvent;
+import org.eclipse.emf.ecp.spi.core.InternalRepository;
+import org.eclipse.emf.ecp.spi.core.util.DisposeException;
+import org.eclipse.emf.ecp.spi.core.util.ECPDisposable;
+import org.eclipse.emf.ecp.spi.core.util.ECPDisposable.DisposeListener;
+import org.eclipse.net4j.util.ReflectUtil.ExcludeFromDump;
+
+/**
+ * This Class describes a repository.
+ *
+ * @author Eike Stepper
+ * @author Eugen Neufeld
+ */
+public final class ECPRepositoryImpl extends PropertiesElement implements InternalRepository, DisposeListener {
+	@ExcludeFromDump
+	private final Disposable disposable = new Disposable(this) {
+		@Override
+		protected void doDispose() {
+			provider = null;
+			providerSpecificData = null;
+		}
+	};
+
+	private String label;
+
+	private String description;
+
+	private InternalProvider provider;
+
+	private Object providerSpecificData;
+
+	/**
+	 * Constructor used to create an instance through user input.
+	 *
+	 * @param provider the {@link ECPProvider} for this repository
+	 * @param name the name of this repository
+	 * @param properties the {@link ECPProperties} of this repository
+	 */
+	public ECPRepositoryImpl(ECPProvider provider, String name, ECPProperties properties) {
+		super(name, properties);
+		label = name;
+		description = "";
+
+		if (provider == null) {
+			throw new IllegalArgumentException("Provider is null");
+		}
+
+		this.provider = (InternalProvider) provider;
+		this.provider.addDisposeListener(this);
+	}
+
+	/**
+	 * Constructor used by the {@link org.eclipse.emf.ecp.core.ECPRepositoryManager ECPRepositoryManager} when loading
+	 * existing repositories during startup.
+	 *
+	 * @param in the {@link ObjectInput} to parse
+	 * @throws IOException when an error occurs
+	 */
+	public ECPRepositoryImpl(ObjectInput in) throws IOException {
+		super(in);
+
+		label = in.readUTF();
+		description = in.readUTF();
+
+		final String providerName = in.readUTF();
+		provider = (InternalProvider) ECPUtil.getECPProviderRegistry().getProvider(providerName);
+		if (provider == null) {
+			throw new IllegalStateException("Provider not found: " + providerName);
+		}
+
+		provider.addDisposeListener(this);
+	}
+
+	/** {@inheritDoc} **/
+	@Override
+	public String getType() {
+		return ECPRepository.TYPE;
+	}
+
+	/** {@inheritDoc} **/
+	@Override
+	public void disposed(ECPDisposable disposable) throws DisposeException {
+		if (disposable == provider) {
+			dispose();
+		}
+	}
+
+	/** {@inheritDoc} **/
+	@Override
+	public boolean isStorable() {
+		return true;
+	}
+
+	@Override
+	public void write(ObjectOutput out) throws IOException {
+		super.write(out);
+		out.writeUTF(label);
+		out.writeUTF(description);
+		out.writeUTF(provider.getName());
+	}
+
+	/** {@inheritDoc} **/
+	@Override
+	public String getLabel() {
+		return label;
+	}
+
+	/** {@inheritDoc} **/
+	@Override
+	public void setLabel(String label) {
+		this.label = label;
+	}
+
+	/** {@inheritDoc} **/
+	@Override
+	public String getDescription() {
+		return description;
+	}
+
+	/** {@inheritDoc} **/
+	@Override
+	public void setDescription(String description) {
+		this.description = description;
+	}
+
+	/** {@inheritDoc} **/
+	@Override
+	public boolean isDisposed() {
+		return disposable.isDisposed();
+	}
+
+	/**
+	 * Returns an object which is an instance of the given class associated with this object. Returns <code>null</code>
+	 * if
+	 * no such object can be found.
+	 * <p>
+	 * This implementation of the method declared by <code>IAdaptable</code> passes the request along to the platform's
+	 * adapter manager; roughly <code>Platform.getAdapterManager().getAdapter(this, adapter)</code>. Subclasses may
+	 * override this method (however, if they do so, they should invoke the method on their superclass to ensure that
+	 * the Platform's adapter manager is consulted).
+	 * </p>
+	 *
+	 * @param adapterType
+	 *            the class to adapt to
+	 * @return the adapted object or <code>null</code>
+	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(Class)
+	 */
+	@SuppressWarnings({ "unchecked", "rawtypes" })
+	public Object getAdapter(Class adapterType) {
+		final InternalProvider provider = getProvider();
+		if (!provider.isDisposed()) {
+			final Object result = provider.getAdapter(this, adapterType);
+			if (result != null) {
+				return result;
+			}
+		}
+
+		return Platform.getAdapterManager().getAdapter(this, adapterType);
+	}
+
+	/** {@inheritDoc} **/
+	@Override
+	public void dispose() {
+		disposable.dispose();
+	}
+
+	/** {@inheritDoc} **/
+	@Override
+	public void addDisposeListener(DisposeListener listener) {
+		disposable.addDisposeListener(listener);
+	}
+
+	/** {@inheritDoc} **/
+	@Override
+	public void removeDisposeListener(DisposeListener listener) {
+		disposable.removeDisposeListener(listener);
+	}
+
+	/** {@inheritDoc} **/
+	@Override
+	public InternalProvider getProvider() {
+		return provider;
+	}
+
+	/** {@inheritDoc} **/
+	@Override
+	public Object getProviderSpecificData() {
+		return providerSpecificData;
+	}
+
+	/** {@inheritDoc} **/
+	@Override
+	public void setProviderSpecificData(Object providerSpecificData) {
+		this.providerSpecificData = providerSpecificData;
+	}
+
+	/** {@inheritDoc} **/
+	@Override
+	public boolean canDelete() {
+		return isStorable();
+	}
+
+	/** {@inheritDoc} **/
+	@Override
+	public void delete() {
+		if (!canDelete()) {
+			throw new UnsupportedOperationException();
+		}
+		// FIXME https://bugs.eclipse.org/bugs/show_bug.cgi?id=462399
+		cleanup();
+		try {
+			provider.handleLifecycle(this, LifecycleEvent.REMOVE);
+		} catch (final Exception ex) {
+			Activator.log(ex);
+		}
+
+		((ECPRepositoryManagerImpl) ECPUtil.getECPRepositoryManager()).changeElements(Collections.singleton(getName()),
+			null);
+	}
+
+	/** {@inheritDoc} **/
+	@Override
+	public void notifyObjectsChanged(Collection<Object> objects) {
+		if (objects != null && objects.size() != 0) {
+			((ECPRepositoryManagerImpl) ECPUtil.getECPRepositoryManager()).notifyObjectsChanged(this, objects);
+		}
+	}
+
+	/**
+	 * Return all open projects of that are shared on this repository.
+	 *
+	 * @return array of currently open {@link ECPProject ECPProjects} that are shared on this repository
+	 */
+	public InternalProject[] getOpenProjects() {
+		final List<InternalProject> result = new ArrayList<InternalProject>();
+		for (final ECPProject project : ECPUtil.getECPProjectManager().getProjects()) {
+			if (project.isOpen() && project.getRepository().equals(this)) {
+				result.add((InternalProject) project);
+			}
+		}
+
+		// TODO Consider to cache the result
+		return result.toArray(new InternalProject[result.size()]);
+	}
+
+	@Override
+	protected void propertiesChanged(Collection<Entry<String, String>> oldProperties,
+		Collection<Entry<String, String>> newProperties) {
+		((ECPRepositoryManagerImpl) ECPUtil.getECPRepositoryManager()).storeElement(this);
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/ECPRepositoryManagerImpl.java b/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/ECPRepositoryManagerImpl.java
index 89825a2..6b31754 100644
--- a/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/ECPRepositoryManagerImpl.java
+++ b/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/ECPRepositoryManagerImpl.java
@@ -60,13 +60,6 @@
  */

 public final class ECPRepositoryManagerImpl extends PropertiesStore<InternalRepository, ECPObserver> implements

 	ECPRepositoryManager, ECPProvidersChangedObserver {

-	/**

-	 * The Singleton to access the implementation of the Default ECPRepositoryManagerImpl.

-	 *

-	 * @deprecated use {@link ECPUtil} instead

-	 */

-	@Deprecated

-	public static ECPRepositoryManagerImpl INSTANCE;

 

 	/**

 	 * The file extension that is used for dynamic properties of statically declared repositories.

@@ -79,10 +72,7 @@
 	 * Should not be called directly, use service instead.

 	 */

 	public ECPRepositoryManagerImpl() {

-		if (INSTANCE != null) {

-			throw new IllegalStateException("Manager must not be initialized twice");

-		}

-		INSTANCE = this;

+

 		final File stateLocation = Activator.getInstance().getStateLocation().toFile();

 		setFolder(new File(stateLocation, "repositories"));

 	}

@@ -146,7 +136,7 @@
 

 		try {

 			ECPUtil.getECPObserverBus().notify(ECPRepositoryContentChangedObserver.class)

-				.contentChanged(repository, objects);

+			.contentChanged(repository, objects);

 		} catch (final Exception ex) {

 			Activator.log(ex);

 		}

@@ -188,7 +178,7 @@
 	protected void notifyObservers(Collection<InternalRepository> oldRepositories,

 		Collection<InternalRepository> newRepositories) throws Exception {

 		ECPUtil.getECPObserverBus().notify(ECPRepositoriesChangedObserver.class)

-			.repositoriesChanged((Collection) oldRepositories, (Collection) newRepositories);

+		.repositoriesChanged((Collection) oldRepositories, (Collection) newRepositories);

 	}

 

 	@Override

@@ -228,7 +218,7 @@
 	 * @author Eike Stepper

 	 */

 	private final class RepositoryDescriptor extends ExtensionDescriptor<InternalRepository> implements

-		InternalRepository {

+	InternalRepository {

 		private final Set<String> declaredPropertyKeys;

 		private final ECPProperties properties = new Properties() {

 			@Override

@@ -294,7 +284,8 @@
 				@Override

 				public void propertiesChanged(ECPProperties properties,

 					Collection<Entry<String, String>> oldProperties, Collection<Entry<String, String>> newProperties) {

-					ECPRepositoryManagerImpl.INSTANCE.storeElement(RepositoryDescriptor.this);

+					((ECPRepositoryManagerImpl) ECPUtil.getECPRepositoryManager())

+						.storeElement(RepositoryDescriptor.this);

 				}

 			});

 		}

diff --git a/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/util/PropertiesElement.java b/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/util/PropertiesElement.java
index ccd632d..e521eea 100644
--- a/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/util/PropertiesElement.java
+++ b/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/util/PropertiesElement.java
@@ -1,90 +1,106 @@
-/********************************************************************************

- * Copyright (c) 2011 Eike Stepper (Berlin, Germany) 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:

- * Eike Stepper - initial API and implementation

- ********************************************************************************/

-package org.eclipse.emf.ecp.internal.core.util;

-

-import java.io.IOException;

-import java.io.ObjectInput;

-import java.io.ObjectOutput;

-import java.util.Collection;

-import java.util.Map.Entry;

-

-import org.eclipse.emf.ecp.core.util.ECPProperties;

-import org.eclipse.emf.ecp.core.util.ECPPropertiesAware;

-import org.eclipse.emf.ecp.core.util.observer.ECPPropertiesObserver;

-import org.eclipse.emf.ecp.internal.core.util.PropertiesStore.StorableElement;

-

-/**

- * An element holding {@link ECPProperties}.

- *

- * @author Eike Stepper

- */

-public abstract class PropertiesElement extends Element implements StorableElement, ECPPropertiesAware {

-	private final ECPProperties properties;

-

-	/**

-	 * Constructor.

-	 *

-	 * @param name the name of the elements

-	 * @param properties the initial properties

-	 */

-	public PropertiesElement(String name, ECPProperties properties) {

-		super(name);

-		this.properties = properties;

-		observeProperties();

-	}

-

-	/**

-	 * Create a {@link PropertiesElement} from an {@link ObjectInput}.

-	 *

-	 * @param in the {@link ObjectInput}

-	 * @throws IOException if there a problem while reading the input

-	 */

-	public PropertiesElement(ObjectInput in) throws IOException {

-		super(in.readUTF());

-		properties = new Properties(in);

-		observeProperties();

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public void write(ObjectOutput out) throws IOException {

-		out.writeUTF(getName());

-		((Properties) properties).write(out);

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public final ECPProperties getProperties() {

-		return properties;

-	}

-

-	/**

-	 * Called if the properties of the element change. Can be implemented by subclasses

-	 *

-	 * @param oldProperties the old properties

-	 * @param newProperties the new properties

-	 */

-	protected void propertiesChanged(Collection<Entry<String, String>> oldProperties,

-		Collection<Entry<String, String>> newProperties) {

-		// Do nothing

-	}

-

-	private void observeProperties() {

-		properties.addObserver(new ECPPropertiesObserver() {

-			@Override

-			public void propertiesChanged(ECPProperties properties, Collection<Entry<String, String>> oldProperties,

-				Collection<Entry<String, String>> newProperties) {

-				PropertiesElement.this.propertiesChanged(oldProperties, newProperties);

-			}

-		});

-	}

-}

+/********************************************************************************
+ * Copyright (c) 2011-2015 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ ********************************************************************************/
+package org.eclipse.emf.ecp.internal.core.util;
+
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.util.Collection;
+import java.util.Map.Entry;
+
+import org.eclipse.emf.ecp.core.util.ECPProperties;
+import org.eclipse.emf.ecp.core.util.ECPPropertiesAware;
+import org.eclipse.emf.ecp.core.util.observer.ECPPropertiesObserver;
+import org.eclipse.emf.ecp.internal.core.util.PropertiesStore.StorableElement;
+
+/**
+ * An element holding {@link ECPProperties}.
+ *
+ * @author Eike Stepper
+ */
+public abstract class PropertiesElement extends Element implements StorableElement, ECPPropertiesAware {
+	private final ECPProperties properties;
+	private ECPPropertiesObserver observer;
+
+	/**
+	 * Constructor.
+	 *
+	 * @param name the name of the elements
+	 * @param properties the initial properties
+	 */
+	public PropertiesElement(String name, ECPProperties properties) {
+		super(name);
+		this.properties = properties;
+		observeProperties();
+	}
+
+	/**
+	 * Create a {@link PropertiesElement} from an {@link ObjectInput}.
+	 *
+	 * @param in the {@link ObjectInput}
+	 * @throws IOException if there a problem while reading the input
+	 */
+	public PropertiesElement(ObjectInput in) throws IOException {
+		super(in.readUTF());
+		properties = new Properties(in);
+		observeProperties();
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public void write(ObjectOutput out) throws IOException {
+		out.writeUTF(getName());
+		((Properties) properties).write(out);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public final ECPProperties getProperties() {
+		return properties;
+	}
+
+	/**
+	 * Called if the properties of the element change. Can be implemented by subclasses
+	 *
+	 * @param oldProperties the old properties
+	 * @param newProperties the new properties
+	 */
+	protected void propertiesChanged(Collection<Entry<String, String>> oldProperties,
+		Collection<Entry<String, String>> newProperties) {
+		// Do nothing
+	}
+
+	private void observeProperties() {
+		if (observer != null) {
+			cleanup();
+		}
+		observer = new ECPPropertiesObserver() {
+			@Override
+			public void propertiesChanged(ECPProperties properties, Collection<Entry<String, String>> oldProperties,
+				Collection<Entry<String, String>> newProperties) {
+				PropertiesElement.this.propertiesChanged(oldProperties, newProperties);
+			}
+		};
+		properties.addObserver(observer);
+	}
+
+	/**
+	 * Cleans up after the PropertiesElement. This call unregisters the {@link ECPPropertiesObserver} from the
+	 * {@link ECPProperties}.
+	 */
+	protected void cleanup() {
+		if (properties == null || observer == null) {
+			return;
+		}
+		properties.removeObserver(observer);
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/util/observer/ECPObserverBusImpl.java b/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/util/observer/ECPObserverBusImpl.java
index 597f545..59dd0ca 100644
--- a/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/util/observer/ECPObserverBusImpl.java
+++ b/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/internal/core/util/observer/ECPObserverBusImpl.java
@@ -88,22 +88,6 @@
  */

 public class ECPObserverBusImpl implements ECPObserverBus {

 

-	/**

-	 * Initializes the singleton instance statically.

-	 */

-	private static class SingletonHolder {

-		public static final ECPObserverBusImpl INSTANCE = new ECPObserverBusImpl();

-	}

-

-	/**

-	 * Static ObserverBus singleton. Use of singleton is optional, for that reason the constructor is public.

-	 *

-	 * @return Static instance of the observerbus

-	 */

-	public static ECPObserverBusImpl getInstance() {

-		return SingletonHolder.INSTANCE;

-	}

-

 	private final HashMap<Class<? extends ECPObserver>, List<ECPObserver>> observerMap;

 

 	/**

diff --git a/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/spi/core/DefaultProvider.java b/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/spi/core/DefaultProvider.java
index 76ea6f7..91cbb66 100644
--- a/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/spi/core/DefaultProvider.java
+++ b/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/spi/core/DefaultProvider.java
@@ -21,6 +21,8 @@
 import org.eclipse.emf.common.command.BasicCommandStack;

 import org.eclipse.emf.common.command.CommandStack;

 import org.eclipse.emf.common.notify.Notifier;

+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;

@@ -363,7 +365,12 @@
 	 */

 	@Override

 	public Iterator<EObject> getLinkElements(InternalProject project, EObject modelElement, EReference eReference) {

-		return ItemPropertyDescriptor.getReachableObjectsOfType(modelElement, eReference.getEType()).iterator();

+		final EClass elementClass = modelElement.eClass();

+		EClassifier type = EcoreUtil.getReifiedType(elementClass, eReference.getEGenericType()).getEClassifier();

+		if (type == null) {

+			type = eReference.getEType();

+		}

+		return ItemPropertyDescriptor.getReachableObjectsOfType(modelElement, type).iterator();

 	}

 

 	/**

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 01c9f25..48fcd00 100644
--- a/bundles/org.eclipse.emf.ecp.diagnostician/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.diagnostician/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Diagnostician
 Bundle-SymbolicName: org.eclipse.emf.ecp.validation.diagnostician;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: Eclipse Modeling Project
 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)"
-Export-Package: org.eclipse.emf.ecp.diagnostician;version="1.5.1";x-fr
+Export-Package: org.eclipse.emf.ecp.diagnostician;version="1.6.0";x-fr
  iends:="org.eclipse.emf.ecp.ui.validation.e4,org.eclipse.emf.ecp.ui.v
  alidation.test",org.eclipse.emf.ecp.internal.diagnostician;version="1
- .5.1";x-internal:=true
+ .6.0";x-internal:=true
 Bundle-ActivationPolicy: lazy
 Bundle-Activator: org.eclipse.emf.ecp.internal.diagnostician.Activator
diff --git a/bundles/org.eclipse.emf.ecp.diagnostician/pom.xml b/bundles/org.eclipse.emf.ecp.diagnostician/pom.xml
index 406b26a..741a05c 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.context/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.diffmerge.context/.settings/.api_filters
index 9bc3e47..0e58a20 100644
--- a/bundles/org.eclipse.emf.ecp.diffmerge.context/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.context/.settings/.api_filters
@@ -1,10 +1,18 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.emf.ecp.diffmerge.context" version="2">
     <resource path="META-INF/MANIFEST.MF">
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.context"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/diffmerge/spi/context/DefaultMergeUtil.java" type="org.eclipse.emf.ecp.diffmerge.spi.context.DefaultMergeUtil">
+        <filter comment="SPI Change in 1.6" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.diffmerge.spi.context.DefaultMergeUtil"/>
+                <message_argument value="copyValues(VControl, VControl)"/>
             </message_arguments>
         </filter>
     </resource>
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 71ce4cd..03e0145 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,15 +2,20 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Diff Merge Context
 Bundle-SymbolicName: org.eclipse.emf.ecp.diffmerge.context
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.5.0,2.0.0)";visibility:=reexport,
  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
  org.eclipse.emf.ecp.view.model;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.diffmerge.model;bundle-version="[1.5.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.core.runtime;bundle-version="[3.8.0,4.0.0)",
+ org.eclipse.core.databinding.observable;bundle-version="[1.4.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.emf.ecp.diffmerge.internal.context;version
- ="1.5.1";x-internal:=true,org.eclipse.emf.ecp.diffmerge.spi.context;v
- ersion="1.5.1"
+ ="1.6.0";x-internal:=true,org.eclipse.emf.ecp.diffmerge.spi.context;v
+ ersion="1.6.0"
 Bundle-Vendor: Eclipse Modeling Project
+Bundle-Activator: org.eclipse.emf.ecp.diffmerge.internal.context.Activator
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="1.6.0"
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.context/pom.xml b/bundles/org.eclipse.emf.ecp.diffmerge.context/pom.xml
index eb062d6..efb1f73 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-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.diffmerge.context</artifactId>
-  <version>1.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.context/src/org/eclipse/emf/ecp/diffmerge/internal/context/Activator.java b/bundles/org.eclipse.emf.ecp.diffmerge.context/src/org/eclipse/emf/ecp/diffmerge/internal/context/Activator.java
new file mode 100644
index 0000000..8b79b12
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.context/src/org/eclipse/emf/ecp/diffmerge/internal/context/Activator.java
@@ -0,0 +1,87 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.diffmerge.internal.context;
+
+import org.eclipse.core.runtime.Plugin;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * Activator for this plugin.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class Activator extends Plugin {
+	/**
+	 * The constant holding the id of this plugin.
+	 */
+	public static final String PLUGIN_ID = "org.eclipse.emf.ecp.diffmerge.context"; //$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 {
+		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 = plugin.getBundle().getBundleContext()
+				.getServiceReference(ReportService.class);
+		}
+		return plugin.getBundle().getBundleContext().getService(reportServiceReference);
+	}
+
+	/**
+	 * Returns the {@link EMFFormsDatabinding} service.
+	 *
+	 * @return The {@link EMFFormsDatabinding}
+	 */
+	public EMFFormsDatabinding getEMFFormsDatabinding() {
+		final ServiceReference<EMFFormsDatabinding> serviceReference = plugin.getBundle().getBundleContext()
+			.getServiceReference(EMFFormsDatabinding.class);
+
+		final EMFFormsDatabinding service = plugin.getBundle().getBundleContext()
+			.getService(serviceReference);
+		plugin.getBundle().getBundleContext().ungetService(serviceReference);
+
+		return service;
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.context/src/org/eclipse/emf/ecp/diffmerge/internal/context/CompareControls.java b/bundles/org.eclipse.emf.ecp.diffmerge.context/src/org/eclipse/emf/ecp/diffmerge/internal/context/CompareControls.java
index 8c131ae..b5e01eb 100644
--- a/bundles/org.eclipse.emf.ecp.diffmerge.context/src/org/eclipse/emf/ecp/diffmerge/internal/context/CompareControls.java
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.context/src/org/eclipse/emf/ecp/diffmerge/internal/context/CompareControls.java
@@ -13,6 +13,7 @@
 
 import java.util.Iterator;
 
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EStructuralFeature.Setting;
 import org.eclipse.emf.ecore.EcorePackage;
 import org.eclipse.emf.ecp.view.spi.model.VControl;
@@ -31,24 +32,30 @@
 
 	/**
 	 * Compares to {@link VControl VControls}. This is just a convenience method which delegates to
-	 * {@link #areEqual(VDomainModelReference, VDomainModelReference)}.
+	 * {@link #areEqual(VDomainModelReference,EObject, VDomainModelReference,EObject)}.
 	 *
 	 * @param left the first VControl to compare
+	 * @param leftDomainModel The domain model of the left VControl
 	 * @param right the second VControl to compare
+	 * @param rightDomainModel The domain model of the right VControl
 	 * @return true if all values of the {@link VDomainModelReference VDomainModelReferences} are equal
 	 */
-	public static boolean areEqual(VControl left, VControl right) {
-		return areEqual(left.getDomainModelReference(), right.getDomainModelReference());
+	public static boolean areEqual(VControl left, EObject leftDomainModel, VControl right, EObject rightDomainModel) {
+		return areEqual(left.getDomainModelReference(), leftDomainModel, right.getDomainModelReference(),
+			rightDomainModel);
 	}
 
 	/**
 	 * Compares to {@link VDomainModelReference VDomainModelReferences} by comparing all values.
 	 *
 	 * @param left the first {@link VDomainModelReference}
+	 * @param leftDomainModel The domain model of the left VControl
 	 * @param right the second {@link VDomainModelReference}
+	 * @param rightDomainModel The domain model of the right VControl
 	 * @return true if all values of the {@link VDomainModelReference VDomainModelReferences} are equal
 	 */
-	public static boolean areEqual(VDomainModelReference left, VDomainModelReference right) {
+	public static boolean areEqual(VDomainModelReference left, EObject leftDomainModel, VDomainModelReference right,
+		EObject rightDomainModel) {
 		final Iterator<Setting> leftSettings = left.getIterator();
 		final Iterator<Setting> rightSettings = right.getIterator();
 		boolean leftHasNext = leftSettings.hasNext();
@@ -82,5 +89,45 @@
 		}
 		// will be false if one iterator still has elements
 		return !leftHasNext && !rightHasNext;
+
+		// TODO: New code does not work so far for table domain model references:
+		// IObservableValue leftObservableValue;
+		// IObservableValue rightObservableValue;
+		// try {
+		// leftObservableValue = Activator.getDefault().getEMFFormsDatabinding()
+		// .getObservableValue(left, leftDomainModel);
+		// rightObservableValue = Activator.getDefault().getEMFFormsDatabinding()
+		// .getObservableValue(right, rightDomainModel);
+		// } catch (final DatabindingFailedException ex) {
+		// Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+		// return false;
+		// }
+		// final EObject leftEObject = (EObject) ((IObserving) leftObservableValue).getObserved();
+		// final EStructuralFeature leftStructuralFeature = (EStructuralFeature) leftObservableValue.getValueType();
+		// final EObject rightEObject = (EObject) ((IObserving) rightObservableValue).getObserved();
+		// final EStructuralFeature rightStructuralFeature = (EStructuralFeature) rightObservableValue.getValueType();
+		//
+		// final Object leftValue = leftEObject.eGet(leftStructuralFeature, true);
+		// final Object rightValue = rightEObject.eGet(rightStructuralFeature, true);
+		//
+		// if (leftValue == null && rightValue == null) {
+		// return true;
+		// }
+		// // TODO handle EReference (single and many)
+		// if (EcorePackage.eINSTANCE.getEReference().isInstance(leftStructuralFeature)
+		// || EcorePackage.eINSTANCE.getEReference().isInstance(rightStructuralFeature)) {
+		// return true;
+		// }
+		//
+		// if (leftValue == null && rightValue != null) {
+		// return false;
+		// }
+		// if (leftValue != null && rightValue == null) {
+		// return false;
+		// }
+		// if (leftValue.equals(rightValue)) {
+		// return true;
+		// }
+		// return false;
 	}
 }
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.context/src/org/eclipse/emf/ecp/diffmerge/internal/context/DiffMergeModelContextImpl.java b/bundles/org.eclipse.emf.ecp.diffmerge.context/src/org/eclipse/emf/ecp/diffmerge/internal/context/DiffMergeModelContextImpl.java
index d8fb664..dc3fd3d 100644
--- a/bundles/org.eclipse.emf.ecp.diffmerge.context/src/org/eclipse/emf/ecp/diffmerge/internal/context/DiffMergeModelContextImpl.java
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.context/src/org/eclipse/emf/ecp/diffmerge/internal/context/DiffMergeModelContextImpl.java
@@ -12,16 +12,19 @@
 package org.eclipse.emf.ecp.diffmerge.internal.context;
 
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import org.eclipse.core.databinding.observable.IObserving;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
 import org.eclipse.emf.common.util.TreeIterator;
 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.ecore.util.EcoreUtil;
 import org.eclipse.emf.ecp.diffmerge.spi.context.ControlPair;
 import org.eclipse.emf.ecp.diffmerge.spi.context.DiffMergeModelContext;
@@ -33,8 +36,9 @@
 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.model.VFeaturePathDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.model.util.ViewModelUtil;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 
 /**
  * Implementation of the DiffMergeModelContext based on the {@link ViewModelContextImpl}.
@@ -126,22 +130,27 @@
 
 	private void readAlreadyMerged(Set<VDomainModelReference> mergedReferences) {
 		for (final VDomainModelReference domainModelReference : mergedReferences) {
-			domainModelReference.init(getDomainModel());
-			final Iterator<Setting> iterator = domainModelReference.getIterator();
-			while (iterator.hasNext()) {
-				final Setting setting = iterator.next();
-				Set<VControl> controls = getControlsFor(setting);
-				controls = getValidMergeControls(controls);
-				if (controls == null) {
-					continue;
-				}
-				for (final VControl vControl : controls) {
-					markControl(vControl, true);
-				}
-				// break for table not for custom
-				if (VFeaturePathDomainModelReference.class.isInstance(domainModelReference)) {
-					break;
-				}
+			IObservableValue observableValue;
+			try {
+				observableValue = Activator.getDefault().getEMFFormsDatabinding()
+					.getObservableValue(domainModelReference, getDomainModel());
+			} catch (final DatabindingFailedException ex) {
+				Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+				continue;
+			}
+			final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+			final InternalEObject internalEObject = (InternalEObject) ((IObserving) observableValue)
+				.getObserved();
+			final Setting setting = internalEObject.eSetting(structuralFeature);
+			observableValue.dispose();
+
+			Set<VControl> controls = getControlsFor(setting);
+			controls = getValidMergeControls(controls);
+			if (controls == null) {
+				continue;
+			}
+			for (final VControl vControl : controls) {
+				markControl(vControl, true);
 			}
 		}
 	}
@@ -161,6 +170,7 @@
 		final VElement viewModelLeft = EcoreUtil.copy(getViewModel());
 		final VElement viewModelRight = EcoreUtil.copy(getViewModel());
 
+		// TODO: remove when compare works for table references without iterators and settings
 		ViewModelUtil.resolveDomainReferences(viewModelLeft, getLeftModel());
 		ViewModelUtil.resolveDomainReferences(viewModelRight, getRightModel());
 
@@ -176,7 +186,8 @@
 			final EObject leftEObject = leftViewModel.next();
 			final EObject rightEObject = rightViewModel.next();
 			if (VControl.class.isInstance(mainEObject)) {
-				if (hasDiff((VControl) leftEObject, (VControl) rightEObject, (VControl) mainEObject)) {
+				if (hasDiff((VControl) leftEObject, getLeftModel(), (VControl) rightEObject, getRightModel(),
+					(VControl) mainEObject)) {
 					final VControl control = (VControl) mainEObject;
 					controlDiffMap.put(control, new ControlPair((VControl) leftEObject,
 						(VControl) rightEObject));
@@ -245,12 +256,15 @@
 	 * Checks whether the controls have a diff.
 	 *
 	 * @param leftControl the left control to check
+	 * @param leftDomainModel The domain model of the left control
 	 * @param rightControl the right control to check
+	 * @param rightDomainModel The domain model of the right control
 	 * @param targetControl the target control to check
 	 * @return true if there is a diff, false otherwise
 	 */
-	protected boolean hasDiff(VControl leftControl, VControl rightControl, VControl targetControl) {
-		return !CompareControls.areEqual(leftControl, rightControl);
+	protected boolean hasDiff(VControl leftControl, EObject leftDomainModel, VControl rightControl,
+		EObject rightDomainModel, VControl targetControl) {
+		return !CompareControls.areEqual(leftControl, leftDomainModel, rightControl, rightDomainModel);
 	}
 
 	/** {@inheritDoc} **/
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.context/src/org/eclipse/emf/ecp/diffmerge/spi/context/DefaultMergeUtil.java b/bundles/org.eclipse.emf.ecp.diffmerge.context/src/org/eclipse/emf/ecp/diffmerge/spi/context/DefaultMergeUtil.java
index 03d822a..618c1e9 100644
--- a/bundles/org.eclipse.emf.ecp.diffmerge.context/src/org/eclipse/emf/ecp/diffmerge/spi/context/DefaultMergeUtil.java
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.context/src/org/eclipse/emf/ecp/diffmerge/spi/context/DefaultMergeUtil.java
@@ -12,19 +12,23 @@
 package org.eclipse.emf.ecp.diffmerge.spi.context;
 
 import java.util.Collection;
-import java.util.Iterator;
 
+import org.eclipse.core.databinding.observable.IObserving;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
 import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecp.diffmerge.internal.context.Activator;
 import org.eclipse.emf.ecp.view.spi.model.VControl;
 import org.eclipse.emf.edit.command.AddCommand;
 import org.eclipse.emf.edit.command.RemoveCommand;
 import org.eclipse.emf.edit.command.SetCommand;
 import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
 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;
 
 /**
  * This util class provides a method, which allows to copy values from one {@link VControl} to another generically.
@@ -42,63 +46,68 @@
 	 * Copies the values from one {@link VControl} to another.
 	 *
 	 * @param from the {@link VControl} holding the values
+	 * @param fromDomainModel The domain model belonging to the 'from control'.
 	 * @param to the {@link VControl} which values should be updated
+	 * @param toDomainModel The domain model belonging to the 'to control'.
+	 * @since 1.6
 	 */
 	@SuppressWarnings("unchecked")
-	public static void copyValues(VControl from, VControl to) {
-		final Iterator<Setting> fromIterator = from.getDomainModelReference().getIterator();
-		Iterator<Setting> toIterator = to.getDomainModelReference().getIterator();
-		int stepsChecked = 0;
-		while (fromIterator.hasNext()) {
-			final Setting toSetting = toIterator.next();
-			final Setting fromSetting = fromIterator.next();
-			stepsChecked++;
-			// break because of derived tables
-			// if (toSetting.getEStructuralFeature().isDerived()) {
-			// break;
-			// }
-			if (!toSetting.getEStructuralFeature().isChangeable()) {
-				continue;
-			}
-			final EditingDomain editingDomain = AdapterFactoryEditingDomain.getEditingDomainFor(toSetting
-				.getEObject());
+	public static void copyValues(VControl from, EObject fromDomainModel, VControl to, EObject toDomainModel) {
+		final IObservableValue fromObservableValue;
+		final IObservableValue toObservableValue;
+		try {
+			fromObservableValue = Activator.getDefault().getEMFFormsDatabinding()
+				.getObservableValue(from.getDomainModelReference(), fromDomainModel);
+			toObservableValue = Activator.getDefault().getEMFFormsDatabinding()
+				.getObservableValue(to.getDomainModelReference(), toDomainModel);
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+			return;
+		}
+		final EObject fromEObject = (EObject) ((IObserving) fromObservableValue).getObserved();
+		final EStructuralFeature fromStructuralFeature = (EStructuralFeature) fromObservableValue.getValueType();
+		final EObject toEObject = (EObject) ((IObserving) toObservableValue).getObserved();
+		final EStructuralFeature toStructuralFeature = (EStructuralFeature) toObservableValue.getValueType();
 
-			if (toSetting.getEStructuralFeature().isMany()) {
+		fromObservableValue.dispose();
+		toObservableValue.dispose();
+
+		if (!toStructuralFeature.isChangeable()) {
+			return;
+		}
+
+		final EditingDomain editingDomain = AdapterFactoryEditingDomain.getEditingDomainFor(toEObject);
+
+		if (toStructuralFeature.isMany()) {
+			editingDomain.getCommandStack().execute(
+				RemoveCommand.create(editingDomain, toEObject, toStructuralFeature,
+					(Collection<?>) toEObject.eGet(toStructuralFeature, true)));
+		}
+		if (EAttribute.class.isInstance(toStructuralFeature)) {
+
+			if (toStructuralFeature.isMany()) {
 				editingDomain.getCommandStack().execute(
-					RemoveCommand.create(editingDomain, toSetting.getEObject(), toSetting.getEStructuralFeature(),
-						(Collection<?>) toSetting.get(true)));
+					AddCommand.create(editingDomain, toEObject, toStructuralFeature,
+						(Collection<?>) fromEObject.eGet(fromStructuralFeature, true)));
 			}
-			if (EAttribute.class.isInstance(toSetting.getEStructuralFeature())) {
-
-				if (toSetting.getEStructuralFeature().isMany()) {
-					editingDomain.getCommandStack().execute(
-						AddCommand.create(editingDomain, toSetting.getEObject(), toSetting.getEStructuralFeature(),
-							(Collection<?>) fromSetting.get(true)));
-				}
-				else {
-					editingDomain.getCommandStack().execute(
-						SetCommand.create(editingDomain, toSetting.getEObject(), toSetting.getEStructuralFeature(),
-							fromSetting.get(true)));
-				}
-			}
-			if (EReference.class.isInstance(toSetting.getEStructuralFeature())) {
-				if (toSetting.getEStructuralFeature().isMany()) {
-					for (final EObject eObject : (Collection<EObject>) fromSetting.get(true)) {
-						editingDomain.getCommandStack().execute(
-							AddCommand.create(editingDomain, toSetting.getEObject(), toSetting.getEStructuralFeature(),
-								EcoreUtil.copy(eObject)));
-					}
-					toIterator = to.getDomainModelReference().getIterator();
-					for (int i = 0; i < stepsChecked; i++) {
-						toIterator.next();
-					}
-					break;
-				}
+			else {
 				editingDomain.getCommandStack().execute(
-					SetCommand.create(editingDomain, toSetting.getEObject(), toSetting.getEStructuralFeature(),
-						EcoreUtil.copy((EObject) fromSetting.get(true))));
-
+					SetCommand.create(editingDomain, toEObject, toStructuralFeature,
+						fromEObject.eGet(fromStructuralFeature, true)));
 			}
 		}
+		if (EReference.class.isInstance(toStructuralFeature)) {
+			if (toStructuralFeature.isMany()) {
+				for (final EObject eObject : (Collection<EObject>) fromEObject.eGet(fromStructuralFeature, true)) {
+					editingDomain.getCommandStack().execute(
+						AddCommand.create(editingDomain, toEObject, toStructuralFeature, EcoreUtil.copy(eObject)));
+				}
+				return;
+			}
+			editingDomain.getCommandStack().execute(
+				SetCommand.create(editingDomain, toEObject, toStructuralFeature,
+					EcoreUtil.copy((EObject) fromEObject.eGet(fromStructuralFeature, true))));
+
+		}
 	}
 }
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.model.edit/.gitignore b/bundles/org.eclipse.emf.ecp.diffmerge.model.edit/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.model.edit/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.model.edit/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.diffmerge.model.edit/.settings/.api_filters
index 110ab94..ff4c0ca 100644
--- a/bundles/org.eclipse.emf.ecp.diffmerge.model.edit/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.model.edit/.settings/.api_filters
@@ -1,10 +1,34 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.emf.ecp.diffmerge.model.edit" version="2">
     <resource path="META-INF/MANIFEST.MF">
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model.edit"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.diffmerge.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.diffmerge.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.diffmerge.model.edit_1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
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 7726f24..8a58742 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,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.diffmerge.model.edit;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.spi.diffmerge.model.provider.DiffmergeEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.spi.diffmerge.model.provider;versi
- on="1.5.1"
+ on="1.6.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.emf.ecp.diffmerge.model;bundle-version="[1.5.0,2.0.0)";visibility:=reexport,
  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
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 a4457b3..fab3356 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-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.diffmerge.model.edit</artifactId>
-  <version>1.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.model/.gitignore b/bundles/org.eclipse.emf.ecp.diffmerge.model/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.model/.gitignore
@@ -0,0 +1 @@
+/bin/
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 39bc4f9..60f5b27 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,14 +2,14 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: %pluginName

 Bundle-SymbolicName: org.eclipse.emf.ecp.diffmerge.model;singleton:=true

-Bundle-Version: 1.5.1.qualifier

+Bundle-Version: 1.6.0.qualifier

 Bundle-ClassPath: .

 Bundle-Vendor: %providerName

 Bundle-Localization: plugin

 Bundle-RequiredExecutionEnvironment: JavaSE-1.6

-Export-Package: org.eclipse.emf.ecp.spi.diffmerge.model;version="1.5.1

- ",org.eclipse.emf.ecp.spi.diffmerge.model.impl;version="1.5.1",org.ec

- lipse.emf.ecp.spi.diffmerge.model.util;version="1.5.1"

+Export-Package: org.eclipse.emf.ecp.spi.diffmerge.model;version="1.6.0

+ ",org.eclipse.emf.ecp.spi.diffmerge.model.impl;version="1.6.0",org.ec

+ lipse.emf.ecp.spi.diffmerge.model.util;version="1.6.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.5.0,2.0.0)"

diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.model/pom.xml b/bundles/org.eclipse.emf.ecp.diffmerge.model/pom.xml
index 33d0e18..1d36f6b 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-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.diffmerge.model</artifactId>
-  <version>1.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.renderer.swt/.gitignore b/bundles/org.eclipse.emf.ecp.diffmerge.renderer.swt/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.renderer.swt/.gitignore
@@ -0,0 +1 @@
+/bin/
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 ef5c656..1425e2c 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: DiffMerge Renderer
 Bundle-SymbolicName: org.eclipse.emf.ecp.diffmerge.renderer.swt;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
@@ -15,8 +15,13 @@
  org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.diffmerge.model;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.5.0,2.0.0)"
-Import-Package: org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.5.0,2.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.emfforms.core.services;bundle-version="[1.6.0,2.0.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="1.6.0",
+ org.eclipse.emfforms.spi.swt.core;version="1.6.0",
+ org.eclipse.jface.layout;version="0.0.0",
  org.eclipse.jface.resource;version="0.0.0",
  org.eclipse.swt;version="0.0.0",
  org.eclipse.swt.events;version="0.0.0",
@@ -25,5 +30,5 @@
  org.eclipse.swt.widgets;version="0.0.0"
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.emf.ecp.diffmerge.internal.renderer.swt;ve
- rsion="1.5.1";x-internal:=true
+ rsion="1.6.0";x-internal:=true
 Bundle-Activator: org.eclipse.emf.ecp.diffmerge.internal.renderer.swt.Activator
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 3fd3483..a15ab47 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-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.diffmerge.renderer.swt</artifactId>
-  <version>1.5.1-SNAPSHOT</version>
+  <version>1.6.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 abeddb3..18812eb 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
@@ -13,6 +13,9 @@
 
 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.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
 import org.eclipse.swt.graphics.Image;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
@@ -27,6 +30,7 @@
 
 	private static Activator instance;
 	private ServiceReference<ImageRegistryService> imageRegistryServiceReference;
+	private ServiceReference<ReportService> reportServiceReference;
 
 	// BEGIN SUPRESS CATCH EXCEPTION
 	@Override
@@ -65,4 +69,58 @@
 		}
 		return getBundle().getBundleContext().getService(imageRegistryServiceReference);
 	}
+
+	/**
+	 * Returns the shared instance.
+	 *
+	 * @return the shared instance
+	 */
+	public static Activator getInstance() {
+		return instance;
+	}
+
+	/**
+	 * Returns the {@link ReportService}.
+	 *
+	 * @return the {@link ReportService}
+	 */
+	public ReportService getReportService() {
+		if (reportServiceReference == null) {
+			reportServiceReference = instance.getBundle().getBundleContext()
+				.getServiceReference(ReportService.class);
+		}
+		return instance.getBundle().getBundleContext().getService(reportServiceReference);
+	}
+
+	/**
+	 * Returns the {@link EMFFormsDatabinding} service.
+	 *
+	 * @return The {@link EMFFormsDatabinding}
+	 */
+	public EMFFormsDatabinding getEMFFormsDatabinding() {
+		final ServiceReference<EMFFormsDatabinding> serviceReference = instance.getBundle().getBundleContext()
+			.getServiceReference(EMFFormsDatabinding.class);
+
+		final EMFFormsDatabinding service = instance.getBundle().getBundleContext()
+			.getService(serviceReference);
+		instance.getBundle().getBundleContext().ungetService(serviceReference);
+
+		return service;
+	}
+
+	/**
+	 * Returns the {@link EMFFormsLabelProvider} service.
+	 *
+	 * @return The {@link EMFFormsLabelProvider}
+	 */
+	public EMFFormsLabelProvider getEMFFormsLabelProvider() {
+		final ServiceReference<EMFFormsLabelProvider> serviceReference = instance.getBundle().getBundleContext()
+			.getServiceReference(EMFFormsLabelProvider.class);
+
+		final EMFFormsLabelProvider service = instance.getBundle().getBundleContext()
+			.getService(serviceReference);
+		instance.getBundle().getBundleContext().ungetService(serviceReference);
+
+		return service;
+	}
 }
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.renderer.swt/src/org/eclipse/emf/ecp/diffmerge/internal/renderer/swt/SWTDiffMergeAddition.java b/bundles/org.eclipse.emf.ecp.diffmerge.renderer.swt/src/org/eclipse/emf/ecp/diffmerge/internal/renderer/swt/SWTDiffMergeAddition.java
index 7265de6..7ae527b 100644
--- a/bundles/org.eclipse.emf.ecp.diffmerge.renderer.swt/src/org/eclipse/emf/ecp/diffmerge/internal/renderer/swt/SWTDiffMergeAddition.java
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.renderer.swt/src/org/eclipse/emf/ecp/diffmerge/internal/renderer/swt/SWTDiffMergeAddition.java
@@ -12,25 +12,23 @@
 package org.eclipse.emf.ecp.diffmerge.internal.renderer.swt;
 
 import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
 import org.eclipse.emf.ecp.diffmerge.spi.context.DiffMergeModelContext;
 import org.eclipse.emf.ecp.diffmerge.swt.DiffDialogHelper;
 import org.eclipse.emf.ecp.spi.diffmerge.model.VDiffAttachment;
 import org.eclipse.emf.ecp.spi.diffmerge.model.VDiffmergePackage;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 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.renderer.NoPropertyDescriptorFoundExeption;
 import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException;
-import org.eclipse.emf.ecp.view.spi.swt.AbstractAdditionalSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
-import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
-import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.label.NoLabelFoundException;
+import org.eclipse.emfforms.spi.swt.core.AbstractAdditionalSWTRenderer;
+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.events.DisposeEvent;
 import org.eclipse.swt.events.DisposeListener;
@@ -49,9 +47,18 @@
 public class SWTDiffMergeAddition extends AbstractAdditionalSWTRenderer<VControl> {
 
 	/**
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 */
+	public SWTDiffMergeAddition(VControl vElement, ViewModelContext viewContext, ReportService reportService) {
+		super(vElement, viewContext, reportService);
+	}
+
+	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#getGridDescription(org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription)
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#getGridDescription(org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription)
 	 */
 	@Override
 	public SWTGridDescription getGridDescription(SWTGridDescription gridDescription) {
@@ -64,7 +71,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#renderControl(org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell,
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#renderControl(org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell,
 	 *      org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
@@ -143,30 +150,16 @@
 
 	private void openDiffDialog(DiffMergeModelContext diffModelContext, VControl vControl) {
 
-		final Setting setting = vControl.getDomainModelReference().getIterator().next();
-		if (setting == null) {
-			return;
+		String label;
+		try {
+			label = (String) Activator.getInstance().getEMFFormsLabelProvider()
+				.getDisplayName(vControl.getDomainModelReference(), diffModelContext.getDomainModel()).getValue();
+		} catch (final NoLabelFoundException ex) {
+			Activator.getInstance().getReportService().report(new AbstractReport(ex));
+			label = ex.getMessage();
 		}
-		final IItemPropertyDescriptor itemPropertyDescriptor = getItemPropertyDescriptor(setting);
-		final String label = itemPropertyDescriptor.getDisplayName(setting.getEObject());
 
 		DiffDialogHelper.showDialog(diffModelContext, vControl, label);
-
-	}
-
-	private IItemPropertyDescriptor getItemPropertyDescriptor(Setting setting) {
-		final ComposedAdapterFactory composedAdapterFactory = new ComposedAdapterFactory(new AdapterFactory[] {
-			new ReflectiveItemProviderAdapterFactory(),
-			new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE) });
-		final AdapterFactoryItemDelegator adapterFactoryItemDelegator = new AdapterFactoryItemDelegator(
-			composedAdapterFactory);
-
-		final IItemPropertyDescriptor descriptor = adapterFactoryItemDelegator.getPropertyDescriptor(
-			setting.getEObject(),
-			setting.getEStructuralFeature());
-		composedAdapterFactory.dispose();
-		return descriptor;
-
 	}
 
 }
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.renderer.swt/src/org/eclipse/emf/ecp/diffmerge/internal/renderer/swt/SWTDiffMergeAdditionTester.java b/bundles/org.eclipse.emf.ecp.diffmerge.renderer.swt/src/org/eclipse/emf/ecp/diffmerge/internal/renderer/swt/SWTDiffMergeAdditionTester.java
index 3ed9d7c..068e494 100644
--- a/bundles/org.eclipse.emf.ecp.diffmerge.renderer.swt/src/org/eclipse/emf/ecp/diffmerge/internal/renderer/swt/SWTDiffMergeAdditionTester.java
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.renderer.swt/src/org/eclipse/emf/ecp/diffmerge/internal/renderer/swt/SWTDiffMergeAdditionTester.java
@@ -11,11 +11,15 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.diffmerge.internal.renderer.swt;
 
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecp.diffmerge.spi.context.DiffMergeModelContext;
 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.swt.ECPAdditionalRendererTester;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 
 /**
  * The tester for {@link SWTDiffMergeAddition}.
@@ -39,10 +43,20 @@
 		if (!VControl.class.isInstance(vElement)) {
 			return false;
 		}
-		if (!((VControl) vElement).getDomainModelReference().getEStructuralFeatureIterator().next().isChangeable()) {
+		final VControl control = (VControl) vElement;
+		IValueProperty valueProperty;
+		try {
+			valueProperty = Activator.getInstance().getEMFFormsDatabinding()
+				.getValueProperty(control.getDomainModelReference(), viewModelContext.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			Activator.getInstance().getReportService().report(new DatabindingFailedReport(ex));
 			return false;
 		}
-		if (!((DiffMergeModelContext) viewModelContext).hasDiff((VControl) vElement)) {
+		final EStructuralFeature feature = (EStructuralFeature) valueProperty.getValueType();
+		if (!feature.isChangeable()) {
+			return false;
+		}
+		if (!((DiffMergeModelContext) viewModelContext).hasDiff(control)) {
 			return false;
 		}
 		return true;
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.swt/.gitignore b/bundles/org.eclipse.emf.ecp.diffmerge.swt/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.swt/.gitignore
@@ -0,0 +1 @@
+/bin/
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 f78ad63..3c8ed86 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: DiffMerge UI SWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.diffmerge.swt
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
@@ -26,7 +26,9 @@
  org.eclipse.emf.ecp.ui.view;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
- org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.5.0,2.0.0)"
-Export-Package: org.eclipse.emf.ecp.diffmerge.swt;version="1.5.1";x-fr
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)"
+Export-Package: org.eclipse.emf.ecp.diffmerge.swt;version="1.6.0";x-fr
  iends:="org.eclipse.emf.ecp.diffmerge.renderer.swt"
 Bundle-Activator: org.eclipse.emf.ecp.diffmerge.swt.Activator
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.swt/src/org/eclipse/emf/ecp/diffmerge/swt/messages.properties b/bundles/org.eclipse.emf.ecp.diffmerge.swt/OSGI-INF/l10n/bundle.properties
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.diffmerge.swt/src/org/eclipse/emf/ecp/diffmerge/swt/messages.properties
rename to bundles/org.eclipse.emf.ecp.diffmerge.swt/OSGI-INF/l10n/bundle.properties
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.swt/build.properties b/bundles/org.eclipse.emf.ecp.diffmerge.swt/build.properties
index 22c9bb0..4b83e0b 100644
--- a/bundles/org.eclipse.emf.ecp.diffmerge.swt/build.properties
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.swt/build.properties
@@ -3,5 +3,6 @@
 bin.includes = META-INF/,\
                .,\
                icons/,\
-               build.properties
+               build.properties,\
+               OSGI-INF/
 src.includes = about.html
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.swt/pom.xml b/bundles/org.eclipse.emf.ecp.diffmerge.swt/pom.xml
index 66b0081..dfb0cea 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-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.diffmerge.swt</artifactId>
-  <version>1.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.swt/src/org/eclipse/emf/ecp/diffmerge/swt/Activator.java b/bundles/org.eclipse.emf.ecp.diffmerge.swt/src/org/eclipse/emf/ecp/diffmerge/swt/Activator.java
index 2ee472d..bf61762 100644
--- a/bundles/org.eclipse.emf.ecp.diffmerge.swt/src/org/eclipse/emf/ecp/diffmerge/swt/Activator.java
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.swt/src/org/eclipse/emf/ecp/diffmerge/swt/Activator.java
@@ -13,6 +13,7 @@
 
 import org.eclipse.core.runtime.Plugin;
 import org.eclipse.emf.ecp.view.spi.util.swt.ImageRegistryService;
+import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
 import org.eclipse.swt.graphics.Image;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
@@ -43,6 +44,15 @@
 	// END SUPRESS CATCH EXCEPTION
 
 	/**
+	 * Returns the shared instance.
+	 *
+	 * @return the shared instance
+	 */
+	public static Activator getInstance() {
+		return instance;
+	}
+
+	/**
 	 * Finds and returns an image for the provided path.
 	 *
 	 * @param path the path to get the image from
@@ -66,4 +76,20 @@
 		}
 		return getBundle().getBundleContext().getService(imageRegistryServiceReference);
 	}
+
+	/**
+	 * Returns the {@link EMFFormsLabelProvider} service.
+	 *
+	 * @return The {@link EMFFormsLabelProvider}
+	 */
+	public EMFFormsLabelProvider getEMFFormsLabelProvider() {
+		final ServiceReference<EMFFormsLabelProvider> serviceReference = instance.getBundle().getBundleContext()
+			.getServiceReference(EMFFormsLabelProvider.class);
+
+		final EMFFormsLabelProvider service = instance.getBundle().getBundleContext()
+			.getService(serviceReference);
+		instance.getBundle().getBundleContext().ungetService(serviceReference);
+
+		return service;
+	}
 }
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.swt/src/org/eclipse/emf/ecp/diffmerge/swt/DiffDialog.java b/bundles/org.eclipse.emf.ecp.diffmerge.swt/src/org/eclipse/emf/ecp/diffmerge/swt/DiffDialog.java
index 0b137b5..1101c17 100644
--- a/bundles/org.eclipse.emf.ecp.diffmerge.swt/src/org/eclipse/emf/ecp/diffmerge/swt/DiffDialog.java
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.swt/src/org/eclipse/emf/ecp/diffmerge/swt/DiffDialog.java
@@ -36,6 +36,7 @@
 import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
 import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.layout.GridLayoutFactory;
 import org.eclipse.swt.SWT;
@@ -71,6 +72,7 @@
 	private final DiffMergeModelContext viewModelContext;
 
 	private VControl mergeControl;
+	private EObject mergeDomainObject;
 	private boolean diffConfirmed = true;
 
 	/**
@@ -144,7 +146,8 @@
 				.applyTo(diffConfirmedComposite);
 			diffConfirmedComposite.setLayout(new FillLayout(SWT.HORIZONTAL));
 			final Button buttonDiffConfirmed = new Button(diffConfirmedComposite, SWT.CHECK);
-			buttonDiffConfirmed.setText(Messages.DiffDialog_DiffConfirmed);
+			buttonDiffConfirmed.setText(LocalizationServiceHelper.getString(getClass(),
+				MessageKeys.DiffDialog_DiffConfirmed));
 			buttonDiffConfirmed.setSelection(diffConfirmed);
 			buttonDiffConfirmed.addSelectionListener(new SelectionAdapter() {
 
@@ -172,7 +175,7 @@
 				.applyTo(nextPreviousComposite);
 
 			final Button previous = new Button(nextPreviousComposite, SWT.PUSH);
-			previous.setText(Messages.DiffDialog_Previous);
+			previous.setText(LocalizationServiceHelper.getString(getClass(), MessageKeys.DiffDialog_Previous));
 			previous.setImage(Activator.getImage("icons/arrow_left.png")); //$NON-NLS-1$
 			GridDataFactory.fillDefaults().align(SWT.FILL, SWT.BEGINNING).grab(false, false).applyTo(previous);
 			previous.addSelectionListener(new SelectionAdapter() {
@@ -191,7 +194,7 @@
 
 			});
 			final Button next = new Button(nextPreviousComposite, SWT.PUSH);
-			next.setText(Messages.DiffDialog_Next);
+			next.setText(LocalizationServiceHelper.getString(getClass(), MessageKeys.DiffDialog_Next));
 			next.setImage(Activator.getImage("icons/arrow_right.png")); //$NON-NLS-1$
 			GridDataFactory.fillDefaults().align(SWT.FILL, SWT.BEGINNING).grab(false, false).applyTo(next);
 			next.addSelectionListener(new SelectionAdapter() {
@@ -220,7 +223,7 @@
 
 		{
 			final Button bConfirm = new Button(buttonRowComposite, SWT.PUSH);
-			bConfirm.setText(Messages.DiffDialog_Confirm);
+			bConfirm.setText(LocalizationServiceHelper.getString(getClass(), MessageKeys.DiffDialog_Confirm));
 			bConfirm.setData(CUSTOM_VARIANT, "org_eclipse_emf_ecp_compare_dialog_merge_confirm"); //$NON-NLS-1$
 			GridDataFactory.fillDefaults().align(SWT.END, SWT.BEGINNING).grab(true, false).applyTo(bConfirm);
 			bConfirm.addSelectionListener(new SelectionAdapter() {
@@ -251,7 +254,7 @@
 	private Control createTarget(final Composite parent) {
 		final Group targetGroup = new Group(parent, SWT.NONE);
 		targetGroup.setData(CUSTOM_VARIANT, "org_eclipse_emf_ecp_compare_dialog_target"); //$NON-NLS-1$
-		targetGroup.setText(Messages.DiffDialog_targetObject);
+		targetGroup.setText(LocalizationServiceHelper.getString(getClass(), MessageKeys.DiffDialog_targetObject));
 		GridLayoutFactory.fillDefaults().numColumns(2).equalWidth(false).applyTo(targetGroup);
 
 		// final Label mainObject = new Label(targetGroup, SWT.NONE);
@@ -266,11 +269,11 @@
 				new ReflectiveItemProviderAdapterFactory(),
 				new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE) }),
 			new BasicCommandStack(), resourceSet);
-		final EObject domainObject = EcoreUtil.copy(viewModelContext.getDomainModel());
+		mergeDomainObject = EcoreUtil.copy(viewModelContext.getDomainModel());
 		resourceSet.eAdapters().add(new AdapterFactoryEditingDomain.EditingDomainProvider(domain));
 		final Resource resource = resourceSet.createResource(URI.createURI("VIRTUAL_URI_TEMP")); //$NON-NLS-1$
-		resource.getContents().add(domainObject);
-		createControl(targetGroup, mergeControl, domainObject, false);
+		resource.getContents().add(mergeDomainObject);
+		createControl(targetGroup, mergeControl, mergeDomainObject, false);
 
 		return targetGroup;
 	}
@@ -283,19 +286,20 @@
 	 */
 	private Control createDiff(final Composite parent) {
 		final Group group = new Group(parent, SWT.NONE);
-		group.setText(Messages.DiffDialog_DifferenceGroup);
+		group.setText(LocalizationServiceHelper.getString(getClass(), MessageKeys.DiffDialog_DifferenceGroup));
 		group.setData(CUSTOM_VARIANT, "org_eclipse_emf_ecp_compare_dialog_diff"); //$NON-NLS-1$
 		GridLayoutFactory.fillDefaults().numColumns(2).equalWidth(false).applyTo(group);
 
 		final Label leftObject = new Label(group, SWT.NONE);
-		leftObject.setText(Messages.DiffDialog_leftObject + ":"); //$NON-NLS-1$
+		leftObject.setText(LocalizationServiceHelper.getString(getClass(), MessageKeys.DiffDialog_leftObject + ":")); //$NON-NLS-1$
 		leftObject.setData(CUSTOM_VARIANT, "org_eclipse_emf_ecp_compare_dialog_diff_left"); //$NON-NLS-1$
 		GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.FILL).grab(false, false).span(2, 1).applyTo(leftObject);
 
 		createControl(group, EcoreUtil.copy(left), EcoreUtil.copy(viewModelContext.getLeftModel()), true);
 
 		final Button bReplaceWithLeft = new Button(group, SWT.PUSH);
-		bReplaceWithLeft.setText(Messages.DiffDialog_replaceWithLeft);
+		bReplaceWithLeft.setText(LocalizationServiceHelper
+			.getString(getClass(), MessageKeys.DiffDialog_replaceWithLeft));
 		bReplaceWithLeft.setImage(Activator.getImage("icons/arrow_down.png")); //$NON-NLS-1$
 		bReplaceWithLeft.setData(CUSTOM_VARIANT, "org_eclipse_emf_ecp_compare_dialog_diff_leftReplace"); //$NON-NLS-1$
 		GridDataFactory.fillDefaults().align(SWT.FILL, SWT.BEGINNING).grab(false, false).applyTo(bReplaceWithLeft);
@@ -309,13 +313,13 @@
 			@Override
 			public void widgetSelected(SelectionEvent e) {
 				super.widgetSelected(e);
-				replaceMainWith(left);
+				replaceMainWith(left, viewModelContext.getLeftModel());
 			}
 
 		});
 
 		final Label rightObject = new Label(group, SWT.NONE);
-		rightObject.setText(Messages.DiffDialog_rightObject + ":"); //$NON-NLS-1$
+		rightObject.setText(LocalizationServiceHelper.getString(getClass(), MessageKeys.DiffDialog_rightObject + ":")); //$NON-NLS-1$
 		rightObject.setData(CUSTOM_VARIANT, "org_eclipse_emf_ecp_compare_dialog_diff_right"); //$NON-NLS-1$
 		GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.FILL).grab(false, false).span(2, 1)
 			.applyTo(rightObject);
@@ -323,7 +327,8 @@
 		createControl(group, EcoreUtil.copy(right), EcoreUtil.copy(viewModelContext.getRightModel()), true);
 
 		final Button bReplaceWithRight = new Button(group, SWT.PUSH);
-		bReplaceWithRight.setText(Messages.DiffDialog_replaceWithRight);
+		bReplaceWithRight.setText(LocalizationServiceHelper.getString(getClass(),
+			MessageKeys.DiffDialog_replaceWithRight));
 		bReplaceWithRight.setImage(Activator.getImage("icons/arrow_down.png")); //$NON-NLS-1$
 		bReplaceWithLeft.setData(CUSTOM_VARIANT, "org_eclipse_emf_ecp_compare_dialog_diff_rightReplace"); //$NON-NLS-1$
 		GridDataFactory.fillDefaults().align(SWT.FILL, SWT.BEGINNING).grab(false, false).applyTo(bReplaceWithRight);
@@ -337,7 +342,7 @@
 			@Override
 			public void widgetSelected(SelectionEvent e) {
 				super.widgetSelected(e);
-				replaceMainWith(right);
+				replaceMainWith(right, viewModelContext.getRightModel());
 			}
 
 		});
@@ -359,8 +364,8 @@
 		}
 	}
 
-	private void replaceMainWith(VControl replaceControl) {
-		DefaultMergeUtil.copyValues(replaceControl, mergeControl);
+	private void replaceMainWith(VControl replaceControl, EObject replaceDomainModel) {
+		DefaultMergeUtil.copyValues(replaceControl, replaceDomainModel, mergeControl, mergeDomainObject);
 	}
 
 	/**
@@ -398,7 +403,7 @@
 	}
 
 	private void saveAndCloseDialog(final Shell shell) {
-		DefaultMergeUtil.copyValues(mergeControl, main);
+		DefaultMergeUtil.copyValues(mergeControl, mergeDomainObject, main, viewModelContext.getDomainModel());
 
 		viewModelContext.markControl(main, diffConfirmed);
 
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.swt/src/org/eclipse/emf/ecp/diffmerge/swt/DiffDialogHelper.java b/bundles/org.eclipse.emf.ecp.diffmerge.swt/src/org/eclipse/emf/ecp/diffmerge/swt/DiffDialogHelper.java
index 1866f33..48da370 100644
--- a/bundles/org.eclipse.emf.ecp.diffmerge.swt/src/org/eclipse/emf/ecp/diffmerge/swt/DiffDialogHelper.java
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.swt/src/org/eclipse/emf/ecp/diffmerge/swt/DiffDialogHelper.java
@@ -11,15 +11,11 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.diffmerge.swt;
 
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
 import org.eclipse.emf.ecp.diffmerge.spi.context.ControlPair;
 import org.eclipse.emf.ecp.diffmerge.spi.context.DiffMergeModelContext;
 import org.eclipse.emf.ecp.view.spi.model.VControl;
-import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
-import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+import org.eclipse.emfforms.spi.core.services.label.NoLabelFoundException;
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Rectangle;
 import org.eclipse.swt.layout.FillLayout;
@@ -47,7 +43,7 @@
 	public static void showDialog(DiffMergeModelContext diffModelContext, int diffIndex)
 		throws IllegalArgumentException {
 		final VControl control = diffModelContext.getControl(diffIndex);
-		final String label = getControlLabel(control);
+		final String label = getControlLabel(control, diffModelContext);
 		showDialog(diffModelContext, control, label);
 	}
 
@@ -76,7 +72,8 @@
 		}
 		shell
 			.setText(String.format(
-				Messages.DiffDialog_title, featureLabel, index + 1, diffModelContext.getTotalNumberOfDiffs()));
+				LocalizationServiceHelper.getString(DiffDialogHelper.class, MessageKeys.DiffDialog_title),
+				featureLabel, index + 1, diffModelContext.getTotalNumberOfDiffs()));
 		shell.setLayout(new FillLayout());
 		final Rectangle clientArea = shell.getDisplay().getBounds();
 		shell.setSize(clientArea.width / 2, 500);
@@ -85,18 +82,12 @@
 		shell.open();
 	}
 
-	private static String getControlLabel(VControl control) {
-		final Setting firstSetting = control.getDomainModelReference().getIterator().next();
-		final ComposedAdapterFactory composedAdapterFactory = new ComposedAdapterFactory(new AdapterFactory[] {
-			new ReflectiveItemProviderAdapterFactory(),
-			new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE) });
-		final AdapterFactoryItemDelegator adapterFactoryItemDelegator = new AdapterFactoryItemDelegator(
-			composedAdapterFactory);
-		final IItemPropertyDescriptor propertyDescriptor =
-			adapterFactoryItemDelegator
-				.getPropertyDescriptor(firstSetting.getEObject(), firstSetting.getEStructuralFeature());
-
-		composedAdapterFactory.dispose();
-		return propertyDescriptor.getDisplayName(firstSetting.getEObject());
+	private static String getControlLabel(VControl control, DiffMergeModelContext diffModelContext) {
+		try {
+			return (String) Activator.getInstance().getEMFFormsLabelProvider()
+				.getDisplayName(control.getDomainModelReference(), diffModelContext.getDomainModel()).getValue();
+		} catch (final NoLabelFoundException e) {
+			return e.getMessage();
+		}
 	}
 }
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.swt/src/org/eclipse/emf/ecp/diffmerge/swt/MessageKeys.java b/bundles/org.eclipse.emf.ecp.diffmerge.swt/src/org/eclipse/emf/ecp/diffmerge/swt/MessageKeys.java
new file mode 100644
index 0000000..67238a9
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.swt/src/org/eclipse/emf/ecp/diffmerge/swt/MessageKeys.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.diffmerge.swt;
+
+/**
+ * Keys for translated strings.
+ *
+ * @author Eugen Neufeld
+ * @generated
+ */
+public interface MessageKeys {
+	String DiffDialog_Confirm = "DiffDialog_Confirm"; //$NON-NLS-1$
+	String DiffDialog_DiffConfirmed = "DiffDialog_DiffConfirmed"; //$NON-NLS-1$
+	String DiffDialog_DifferenceGroup = "DiffDialog_DifferenceGroup"; //$NON-NLS-1$
+	String DiffDialog_leftObject = "DiffDialog_leftObject"; //$NON-NLS-1$
+	String DiffDialog_targetObject = "DiffDialog_targetObject"; //$NON-NLS-1$
+	String DiffDialog_Next = "DiffDialog_Next"; //$NON-NLS-1$
+	String DiffDialog_Previous = "DiffDialog_Previous"; //$NON-NLS-1$
+	String DiffDialog_replaceWithLeft = "DiffDialog_replaceWithLeft"; //$NON-NLS-1$
+	String DiffDialog_replaceWithRight = "DiffDialog_replaceWithRight"; //$NON-NLS-1$
+	String DiffDialog_rightObject = "DiffDialog_rightObject"; //$NON-NLS-1$
+	String DiffDialog_title = "DiffDialog_title"; //$NON-NLS-1$
+}
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.swt/src/org/eclipse/emf/ecp/diffmerge/swt/Messages.java b/bundles/org.eclipse.emf.ecp.diffmerge.swt/src/org/eclipse/emf/ecp/diffmerge/swt/Messages.java
deleted file mode 100644
index 81fffda..0000000
--- a/bundles/org.eclipse.emf.ecp.diffmerge.swt/src/org/eclipse/emf/ecp/diffmerge/swt/Messages.java
+++ /dev/null
@@ -1,42 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eugen Neufeld - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.diffmerge.swt;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Messages for Diff UI.
- *
- * @author Eugen Neufeld
- * @generated
- */
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.emf.ecp.diffmerge.swt.messages"; //$NON-NLS-1$
-	public static String DiffDialog_Confirm;
-	public static String DiffDialog_DiffConfirmed;
-	public static String DiffDialog_DifferenceGroup;
-	public static String DiffDialog_leftObject;
-	public static String DiffDialog_targetObject;
-	public static String DiffDialog_Next;
-	public static String DiffDialog_Previous;
-	public static String DiffDialog_replaceWithLeft;
-	public static String DiffDialog_replaceWithRight;
-	public static String DiffDialog_rightObject;
-	public static String DiffDialog_title;
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	private Messages() {
-	}
-}
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 e24a5ac..60c24aa 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.5.1.qualifier
+Bundle-Version: 1.6.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 318fcc6..ea4e55c 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
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 c3005df..03936a1 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
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 062baf1..839c7b0 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.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.0-SNAPSHOT</version>

   <packaging>eclipse-plugin</packaging>

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.ecore.editor/.gitignore b/bundles/org.eclipse.emf.ecp.ecore.editor/.gitignore
index 5e56e04..f8d886b 100644
--- a/bundles/org.eclipse.emf.ecp.ecore.editor/.gitignore
+++ b/bundles/org.eclipse.emf.ecp.ecore.editor/.gitignore
@@ -1 +1,2 @@
 /bin
+/bin/
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 2139269..621c742 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Import-Package: org.eclipse.emf.codegen.ecore.genmodel;version="0.0.0",
  org.eclipse.emf.ecore.presentation;version="0.0.0",
diff --git a/bundles/org.eclipse.emf.ecp.ecore.editor/pom.xml b/bundles/org.eclipse.emf.ecp.ecore.editor/pom.xml
index 7ac5abb..4cbf509 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.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.0-SNAPSHOT</version>

   <packaging>eclipse-plugin</packaging>

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.edit.ecore.swt/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.edit.ecore.swt/META-INF/MANIFEST.MF
index d1757a5..4a327b5 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Editor controls for Ecore Elements
 Bundle-SymbolicName: org.eclipse.emf.ecp.edit.ecore.swt;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 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.5.0,2.0.0)",
@@ -12,5 +12,5 @@
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.emf.ecp.edit.ecore.swt.internal;version="1
- .5.1";x-internal:=true
+ .6.0";x-internal:=true
 Bundle-Vendor: Eclipse Modeling Project
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 90208e5..8746cd3 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.edit.ecore.swt/src/org/eclipse/emf/ecp/edit/ecore/swt/internal/EClassifierControl.java b/bundles/org.eclipse.emf.ecp.edit.ecore.swt/src/org/eclipse/emf/ecp/edit/ecore/swt/internal/EClassifierControl.java
index c1c0001..0b9ea97 100644
--- a/bundles/org.eclipse.emf.ecp.edit.ecore.swt/src/org/eclipse/emf/ecp/edit/ecore/swt/internal/EClassifierControl.java
+++ b/bundles/org.eclipse.emf.ecp.edit.ecore.swt/src/org/eclipse/emf/ecp/edit/ecore/swt/internal/EClassifierControl.java
@@ -41,7 +41,7 @@
 		final Button[] buttons = new Button[2];
 		final Setting setting = getFirstSetting();
 		buttons[0] = createButtonForAction(new DeleteReferenceAction(getEditingDomain(getFirstSetting()), setting,
-			getItemPropertyDescriptor(setting), getService(ReferenceService.class)), composite);
+			getService(ReferenceService.class)), composite);
 		buttons[1] = createButtonForAction(new AddEClassifierReferenceAction(getEditingDomain(getFirstSetting()),
 			setting, getItemPropertyDescriptor(setting), getService(ReferenceService.class), getVisiblePackages()),
 			composite);
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.edit.swt/.settings/.api_filters
index fa3e285..523b022 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/.settings/.api_filters
@@ -7,10 +7,10 @@
                 <message_argument value="1.1.1"/>
             </message_arguments>
         </filter>
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Changes for 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.edit"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
@@ -38,4 +38,66 @@
             </message_arguments>
         </filter>
     </resource>
+    <resource path="src/org/eclipse/emf/ecp/edit/spi/swt/reference/DeleteReferenceAction.java" type="org.eclipse.emf.ecp.edit.spi.swt.reference.DeleteReferenceAction">
+        <filter comment="SPI Changes for 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.edit.spi.swt.reference.DeleteReferenceAction"/>
+                <message_argument value="DeleteReferenceAction(EditingDomain, EStructuralFeature.Setting, IItemPropertyDescriptor, ReferenceService)"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/edit/spi/swt/reference/NewReferenceAction.java" type="org.eclipse.emf.ecp.edit.spi.swt.reference.NewReferenceAction">
+        <filter comment="SPI Changes for 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.edit.spi.swt.reference.NewReferenceAction"/>
+                <message_argument value="NewReferenceAction(EditingDomain, EStructuralFeature.Setting, IItemPropertyDescriptor, ReferenceService)"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/edit/spi/swt/table/ECPCellEditor.java" type="org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor">
+        <filter comment="SPI change" id="403804204">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor"/>
+                <message_argument value="getMinWidth()"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Changes for 1.6" id="403804204">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor"/>
+                <message_argument value="getModelToTargetStrategy(DataBindingContext)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Changes for 1.6" id="403804204">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor"/>
+                <message_argument value="getTargetToModelStrategy(DataBindingContext)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Changes for 1.6" id="405901410">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor"/>
+                <message_argument value="getModelToTargetStrategy()"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Changes for 1.6" id="405901410">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor"/>
+                <message_argument value="getTargetToModelStrategy()"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/edit/spi/swt/table/StringCellEditor.java" type="org.eclipse.emf.ecp.edit.spi.swt.table.StringCellEditor">
+        <filter comment="SPI Changes for 1.6" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.edit.spi.swt.table.StringCellEditor"/>
+                <message_argument value="getModelToTargetStrategy()"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Changes for 1.6" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.edit.spi.swt.table.StringCellEditor"/>
+                <message_argument value="getTargetToModelStrategy()"/>
+            </message_arguments>
+        </filter>
+    </resource>
 </component>
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 7f71512..0685e51 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name
 Bundle-SymbolicName: org.eclipse.emf.ecp.edit.swt;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.edit.internal.swt.Activator
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.emf.ecp.edit;bundle-version="[1.5.0,2.0.0)";visibility:=reexport,
@@ -10,10 +10,15 @@
  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.5.0,2.0.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.5.0,2.0.0)"
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Import-Package: org.eclipse.core.commands;version="0.0.0",
+ org.eclipse.emfforms.spi.common.report;version="1.6.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",
@@ -31,25 +36,25 @@
  org.eclipse.swt.layout;version="0.0.0",
  org.eclipse.swt.widgets;version="0.0.0"
 Bundle-Vendor: %Bundle-Vendor
-Export-Package: org.eclipse.emf.ecp.edit.internal.swt;version="1.5.1";
+Export-Package: org.eclipse.emf.ecp.edit.internal.swt;version="1.6.0";
   x-friends:="org.eclipse.emf.ecp.ui.view.editor.controls,  org.eclips
  e.emf.ecp.view.treemasterdetail.ui.swt",org.eclipse.emf.ecp.edit.inte
- rnal.swt.actions;version="1.5.1"; x-friends:="org.eclipse.emf.ecp.ui.
+ rnal.swt.actions;version="1.6.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.5.1"; x-friends:="org.e
+ emf.ecp.edit.internal.swt.controls;version="1.6.0"; x-friends:="org.e
  clipse.emf.ecp.ui.view.swt,org.eclipse.emf.ecp.ui.view.editor.control
  s,org.eclipse.emf.ecp.view.table.ui.swt",org.eclipse.emf.ecp.edit.int
- ernal.swt.reference;version="1.5.1"; x-friends:="org.eclipse.emf.ecp.
+ ernal.swt.reference;version="1.6.0"; x-friends:="org.eclipse.emf.ecp.
  edit.ecore.swt,org.eclipse.emf.ecp.ui.view.editor.controls",org.eclip
- se.emf.ecp.edit.internal.swt.table;version="1.5.1"; x-friends:="org.e
+ se.emf.ecp.edit.internal.swt.table;version="1.6.0"; x-friends:="org.e
  clipse.emf.ecp.view.table.ui.swt",org.eclipse.emf.ecp.edit.internal.s
- wt.util;version="1.5.1"; x-friends:="org.eclipse.emf.ecp.editor,  org
+ wt.util;version="1.6.0"; x-friends:="org.eclipse.emf.ecp.editor,  org
  .eclipse.emf.ecp.explorereditorbridge,  org.eclipse.emf.ecp.ui.view.s
  wt,  org.eclipse.emf.ecp.ui.view.editor.controls,  org.eclipse.emf.ec
  p.view.groupedgrid.ui.swt,  org.eclipse.emf.ecp.edit.ecore.swt,  org.
  eclipse.emf.ecp.view.table.ui.swt,  org.eclipse.emf.ecp.view.categori
  zation.swt,  org.eclipse.emf.ecp.view.treemasterdetail.ui.swt",org.ec
- lipse.emf.ecp.edit.spi.swt.actions;version="1.5.1",org.eclipse.emf.ec
- p.edit.spi.swt.reference;version="1.5.1",org.eclipse.emf.ecp.edit.spi
- .swt.table;version="1.5.1",org.eclipse.emf.ecp.edit.spi.swt.util;vers
- ion="1.5.1"
+ lipse.emf.ecp.edit.spi.swt.actions;version="1.6.0",org.eclipse.emf.ec
+ p.edit.spi.swt.reference;version="1.6.0",org.eclipse.emf.ecp.edit.spi
+ .swt.table;version="1.6.0",org.eclipse.emf.ecp.edit.spi.swt.util;vers
+ ion="1.6.0"
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.emf.ecp.edit.swt/OSGI-INF/l10n/bundle.properties
index 7f3e862..8d0fcca 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/OSGI-INF/l10n/bundle.properties
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/OSGI-INF/l10n/bundle.properties
@@ -15,4 +15,83 @@
 Bundle-Name = Edit SWT
 
 extension-point.cell-editor = ECP SWT Table CellEditor
-extension-point.dialog-wrapper = Dialog Wrapper
\ No newline at end of file
+extension-point.dialog-wrapper = Dialog Wrapper
+
+#reference messages
+AddReferenceAction_Link=Link 
+AddReferenceAction_Confirmation=Confirmation
+AddReferenceAction_No=No
+AddReferenceAction_Warning=This feature is a containment! The previous value and the linked value will be removed from their containment trees.\n\nDo you really want to continue?
+AddReferenceAction_Yes=Yes
+
+DeleteReferenceAction_Confirmation=Confirmation
+DeleteReferenceAction_DeleteModelQuestion=Do you really want to delete the model element 
+DeleteReferenceAction_DeleteReference=Delete Reference
+DeleteReferenceAction_Yes=Yes
+DeleteReferenceAction_No=No
+DeleteReferenceAction_Questionmark=?
+
+NewReferenceAction_CreateAndLinkNew=Create and link new 
+NewReferenceAction_Confirmation=Confirmation
+NewReferenceAction_No=No
+NewReferenceAction_Warning=This feature is a containment! The previous value will be removed from the containment tree.\n\nDo you really want to continue?
+NewReferenceAction_Yes=Yes
+
+ReferenceMultiControl_NotSetClickToSet=Not set. Click to set\\!
+ReferenceMultiControl_Unset=Unset
+LinkControl_NoLinkSetClickToSetLink=No link set\\! Click to set link.
+LinkControl_NotSet=(Not Set)
+LinkControl_UnsetLink=Unset Link
+
+#attribute action messages
+AddAttributeAction_AddEntry=Add Entry
+#numbercelleditor messages
+NumberCellEditor_InvalidNumber=Invalid Number
+NumberCellEditor_NumberYouEnteredIsInvalid=The Number you have entered is invalid. The value will be unset.
+NumberCellEditor_ValueIsNull=Value is null
+#util classes messaged
+CellEditorFactory_CannotBeLoadedBecauseBundle=\ cannot be loaded because bundle 
+CellEditorFactory_CannotBeResolved=\ cannot be resolved
+
+#depricated controls
+AbstractTextControl_Unset=<unset>
+
+AttributeMultiControl_NotSetClickToSet=Not set. Click to set\!
+AttributeMultiControl_Unset=Unset
+
+BooleanControl_NoBooleanSetClickToSetBoolean=No boolean set\! Click to set boolean.
+BooleanControl_UnsetBoolean=Unset boolean
+
+DateTimeControl_NoDateSetClickToSetDate=No date set\! Click to set date.
+DateTimeControl_UnsetDate=Unset Date
+
+EEnumControl_NoValueSetClickToSetValue=No value set\! Click to set value.
+EEnumControl_UnsetValue=Unset value
+
+NumericalControl_FormatNumerical=The format is '\#'.
+NumericalControl_FormatNumericalDecimal=The format is '\#.\#'.
+NumericalControl_InvalidNumber=Invalid Number
+NumericalControl_InvalidNumberWillBeUnset=The Number you have entered is invalid. The value will be unset.
+NumericalControl_NoNumberClickToSetNumber=No number set\! Click to set number.
+NumericalControl_UnsetNumber=Unset number
+
+StringControl_NoTextSetClickToSetText=No text set\! Click to set text.
+StringControl_UnsetText=Unset text
+
+TableControl_AddInstanceOf=Add an instance of %1$s
+TableControl_Delete=Delete?
+TableControl_DeleteAreYouSure=Are you sure you want to delete the selected Elements?
+TableControl_RemoveSelected=Remove the selected %1$s
+TableControl_ValidationStatusColumn=Validation Status
+TableControl_NotSetClickToSet=Not set. Click to set\!
+TableControl_Unset=Unset
+
+XmlDateControlText_InvalidNumber=Invalid Number
+XmlDateControlText_NoDateSetClickToSetDate=No date set\! Click to set date.
+XmlDateControlText_NumberInvalidValueWillBeUnset=The Number you have entered is invalid. The value will be unset.
+XmlDateControlText_UnsetDate=Unset date
+
+#unused
+#SWTControl_Help=Help
+#AbstractTextControl_InvalidInput=Invalid input
+#AbstractTextControl_InvalidInputSpace=Invalid input 
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/icons/unset_feature.png b/bundles/org.eclipse.emf.ecp.edit.swt/icons/unset_feature.png
new file mode 100644
index 0000000..08f2493
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/icons/unset_feature.png
Binary files differ
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/icons/unset_reference.png b/bundles/org.eclipse.emf.ecp.edit.swt/icons/unset_reference.png
new file mode 100644
index 0000000..f66e297
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/icons/unset_reference.png
Binary files differ
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/pom.xml b/bundles/org.eclipse.emf.ecp.edit.swt/pom.xml
index e3b76b9..6c8ee11 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/Activator.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/Activator.java
index 4141dd6..c377d85 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/Activator.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/Activator.java
@@ -21,6 +21,9 @@
 import org.eclipse.core.runtime.Status;

 import org.eclipse.emf.ecp.edit.spi.ECPControlFactory;

 import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;

+import org.eclipse.emfforms.spi.common.report.ReportService;

+import org.eclipse.emfforms.spi.core.services.editsupport.EMFFormsEditSupport;

+import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;

 import org.eclipse.jface.action.Action;

 import org.eclipse.jface.resource.ImageDescriptor;

 import org.eclipse.swt.graphics.Image;

@@ -226,4 +229,51 @@
 		return viewTemplate;

 	}

 

+	/**

+	 * Returns the {@link EMFFormsEditSupport} service.

+	 *

+	 * @return The {@link EMFFormsEditSupport}

+	 */

+	public EMFFormsEditSupport getEMFFormsEditSupport() {

+		final ServiceReference<EMFFormsEditSupport> serviceReference = plugin.getBundle().getBundleContext()

+			.getServiceReference(EMFFormsEditSupport.class);

+

+		final EMFFormsEditSupport service = plugin.getBundle().getBundleContext()

+			.getService(serviceReference);

+		plugin.getBundle().getBundleContext().ungetService(serviceReference);

+

+		return service;

+	}

+

+	/**

+	 * Returns the {@link EMFFormsLabelProvider} service.

+	 *

+	 * @return The {@link EMFFormsLabelProvider}

+	 */

+	public EMFFormsLabelProvider getEMFFormsLabelProvider() {

+		final ServiceReference<EMFFormsLabelProvider> serviceReference = plugin.getBundle().getBundleContext()

+			.getServiceReference(EMFFormsLabelProvider.class);

+

+		final EMFFormsLabelProvider service = plugin.getBundle().getBundleContext()

+			.getService(serviceReference);

+		plugin.getBundle().getBundleContext().ungetService(serviceReference);

+

+		return service;

+	}

+

+	/**

+	 * Returns the {@link ReportService}.

+	 *

+	 * @return The {@link ReportService}

+	 */

+	public ReportService getReportService() {

+		final ServiceReference<ReportService> serviceReference = plugin.getBundle().getBundleContext()

+			.getServiceReference(ReportService.class);

+

+		final ReportService service = plugin.getBundle().getBundleContext()

+			.getService(serviceReference);

+		plugin.getBundle().getBundleContext().ungetService(serviceReference);

+

+		return service;

+	}

 }

diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/actions/ActionMessageKeys.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/actions/ActionMessageKeys.java
new file mode 100644
index 0000000..b8f4f26
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/actions/ActionMessageKeys.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.edit.internal.swt.actions;
+
+/**
+ * Keys for translated strings.
+ *
+ * @author Eugen Neufeld
+ * @generated
+ */
+public interface ActionMessageKeys {
+	String AddAttributeAction_AddEntry = "AddAttributeAction_AddEntry"; //$NON-NLS-1$
+}
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/actions/ActionMessages.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/actions/ActionMessages.java
deleted file mode 100644
index 5e0af55..0000000
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/actions/ActionMessages.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 EclipseSource.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource - initial API and implementation
- *******************************************************************************/
-package org.eclipse.emf.ecp.edit.internal.swt.actions;
-
-import org.eclipse.osgi.util.NLS;
-
-/*
- * @generated
- */
-public final class ActionMessages extends NLS {
-
-	private static final String BUNDLE_NAME = "org.eclipse.emf.ecp.edit.internal.swt.actions.messages"; //$NON-NLS-1$
-
-	public static String AddAttributeAction_AddEntry;
-
-	private ActionMessages() {
-	}
-
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, ActionMessages.class);
-	}
-
-}
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/actions/AddAttributeAction.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/actions/AddAttributeAction.java
index e35ec5f..bfb83bf 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/actions/AddAttributeAction.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/actions/AddAttributeAction.java
@@ -18,6 +18,7 @@
 import org.eclipse.emf.ecp.edit.spi.swt.actions.ECPSWTAction;
 import org.eclipse.emf.edit.command.AddCommand;
 import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
 
 /**
  * The action to allow adding of attribute values to multi attribute controls.
@@ -37,7 +38,7 @@
 		super(editingDomain, setting);
 		// TODO remove PlatformUI
 		setImageDescriptor(Activator.getImageDescriptor("icons/add.png")); //$NON-NLS-1$
-		setToolTipText(ActionMessages.AddAttributeAction_AddEntry);
+		setToolTipText(LocalizationServiceHelper.getString(getClass(), ActionMessageKeys.AddAttributeAction_AddEntry));
 	}
 
 	@Override
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/actions/messages.properties b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/actions/messages.properties
deleted file mode 100644
index 4938029..0000000
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/actions/messages.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2013 EclipseSource.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#    EclipseSource - initial API and implementation
-################################################################################
-
-AddAttributeAction_AddEntry=Add Entry
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/AbstractTextControl.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/AbstractTextControl.java
index f256531..8b6f08e 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/AbstractTextControl.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/AbstractTextControl.java
@@ -24,6 +24,7 @@
 import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
 import org.eclipse.emf.ecp.view.template.style.textControlEnablement.model.VTTextControlEnablementStyleProperty;
 import org.eclipse.emf.edit.command.SetCommand;
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
 import org.eclipse.jface.databinding.swt.SWTObservables;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Color;
@@ -38,6 +39,7 @@
  *
  * @author Eugen Neufeld
  */
+@Deprecated
 public abstract class AbstractTextControl extends SingleControl {
 
 	/**
@@ -63,7 +65,8 @@
 		text.setLayoutData(getTextWidgetLayoutData());
 
 		if (getFirstStructuralFeature().isUnsettable()) {
-			text.setMessage(ControlMessages.AbstractTextControl_Unset);
+			text.setMessage(LocalizationServiceHelper.getString(getClass(),
+				DepricatedControlMessageKeys.AbstractTextControl_Unset));
 		}
 		text.setData(CUSTOM_VARIANT, getTextVariantID());
 		customizeText(text);
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/AttributeMultiControl.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/AttributeMultiControl.java
index a7fb818..27979cf 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/AttributeMultiControl.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/AttributeMultiControl.java
@@ -16,6 +16,7 @@
 import org.eclipse.emf.ecp.edit.internal.swt.actions.AddAttributeAction;
 import org.eclipse.emf.ecp.edit.spi.swt.actions.ECPSWTAction;
 import org.eclipse.emf.ecp.edit.spi.util.ECPStaticApplicableTester;
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
 
 /**
  * This class defines a Control which is used for displaying {@link org.eclipse.emf.ecore.EStructuralFeature}s which
@@ -46,7 +47,8 @@
 	 */
 	@Override
 	protected String getUnsetLabelText() {
-		return ControlMessages.AttributeMultiControl_NotSetClickToSet;
+		return LocalizationServiceHelper.getString(getClass(),
+			DepricatedControlMessageKeys.AttributeMultiControl_NotSetClickToSet);
 	}
 
 	/*
@@ -55,7 +57,8 @@
 	 */
 	@Override
 	protected String getUnsetButtonTooltip() {
-		return ControlMessages.AttributeMultiControl_Unset;
+		return LocalizationServiceHelper
+			.getString(getClass(), DepricatedControlMessageKeys.AttributeMultiControl_Unset);
 	}
 
 }
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/AttributeMultiControlTester.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/AttributeMultiControlTester.java
index d8926aa..e0f5b07 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/AttributeMultiControlTester.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/AttributeMultiControlTester.java
@@ -12,13 +12,10 @@
  *******************************************************************************/
 package org.eclipse.emf.ecp.edit.internal.swt.controls;
 
-import java.util.Iterator;
-
 import org.eclipse.emf.ecore.EAttribute;
 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.ecp.edit.internal.swt.Activator;
 import org.eclipse.emf.ecp.edit.spi.ECPControlDescription;
 import org.eclipse.emf.ecp.edit.spi.ECPControlFactory;
@@ -139,17 +136,7 @@
 	@Override
 	@Deprecated
 	public int isApplicable(VDomainModelReference domainModelReference) {
-		final Iterator<Setting> iterator = domainModelReference.getIterator();
-		int count = 0;
-		Setting setting = null;
-		while (iterator.hasNext()) {
-			count++;
-			setting = iterator.next();
-		}
-		if (count != 1) {
-			return NOT_APPLICABLE;
-		}
-		return isApplicable(setting.getEObject(), setting.getEStructuralFeature());
+		return NOT_APPLICABLE;
 	}
 
 }
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/BooleanControl.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/BooleanControl.java
index b14deec..e325c2a 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/BooleanControl.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/BooleanControl.java
@@ -14,6 +14,7 @@
 
 import org.eclipse.core.databinding.Binding;
 import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
 import org.eclipse.jface.databinding.swt.SWTObservables;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Color;
@@ -29,6 +30,7 @@
  * @author Eugen Neufeld
  *
  */
+@Deprecated
 public class BooleanControl extends SingleControl {
 
 	private Button check;
@@ -65,7 +67,8 @@
 	 */
 	@Override
 	protected String getUnsetLabelText() {
-		return ControlMessages.BooleanControl_NoBooleanSetClickToSetBoolean;
+		return LocalizationServiceHelper.getString(getClass(),
+			DepricatedControlMessageKeys.BooleanControl_NoBooleanSetClickToSetBoolean);
 	}
 
 	/*
@@ -74,7 +77,8 @@
 	 */
 	@Override
 	protected String getUnsetButtonTooltip() {
-		return ControlMessages.BooleanControl_UnsetBoolean;
+		return LocalizationServiceHelper
+			.getString(getClass(), DepricatedControlMessageKeys.BooleanControl_UnsetBoolean);
 	}
 
 	/*
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/ControlMessages.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/ControlMessages.java
deleted file mode 100644
index a2e2062..0000000
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/ControlMessages.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 EclipseSource.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource - initial API and implementation
- *******************************************************************************/
-package org.eclipse.emf.ecp.edit.internal.swt.controls;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * @generated
- *
- * @author Jonas
- *
- */
-
-public final class ControlMessages extends NLS {
-
-	private static final String BUNDLE_NAME = "org.eclipse.emf.ecp.edit.internal.swt.controls.messages"; //$NON-NLS-1$
-
-	public static String AbstractTextControl_InvalidInput;
-	public static String AbstractTextControl_InvalidInputSpace;
-	public static String AbstractTextControl_Unset;
-
-	public static String AttributeMultiControl_NotSetClickToSet;
-	public static String AttributeMultiControl_Unset;
-
-	public static String BooleanControl_NoBooleanSetClickToSetBoolean;
-	public static String BooleanControl_UnsetBoolean;
-
-	public static String DateTimeControl_NoDateSetClickToSetDate;
-	public static String DateTimeControl_UnsetDate;
-
-	public static String EEnumControl_NoValueSetClickToSetValue;
-	public static String EEnumControl_UnsetValue;
-
-	public static String LinkControl_NoLinkSetClickToSetLink;
-	public static String LinkControl_NotSet;
-	public static String LinkControl_UnsetLink;
-
-	public static String NumericalControl_FormatNumerical;
-	public static String NumericalControl_FormatNumericalDecimal;
-	public static String NumericalControl_InvalidNumber;
-	public static String NumericalControl_InvalidNumberWillBeUnset;
-	public static String NumericalControl_NoNumberClickToSetNumber;
-	public static String NumericalControl_UnsetNumber;
-
-	public static String ReferenceMultiControl_NotSetClickToSet;
-	public static String ReferenceMultiControl_Unset;
-
-	public static String StringControl_NoTextSetClickToSetText;
-	public static String StringControl_UnsetText;
-
-	public static String TableControl_AddInstanceOf;
-	public static String TableControl_Delete;
-	public static String TableControl_DeleteAreYouSure;
-	public static String TableControl_NotSetClickToSet;
-	public static String TableControl_RemoveSelected;
-	public static String TableControl_Unset;
-	public static String TableControl_ValidationStatusColumn;
-
-	public static String XmlDateControlText_InvalidNumber;
-	public static String XmlDateControlText_NoDateSetClickToSetDate;
-	public static String XmlDateControlText_NumberInvalidValueWillBeUnset;
-	public static String XmlDateControlText_UnsetDate;
-
-	private ControlMessages() {
-	}
-
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, ControlMessages.class);
-	}
-
-}
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/DateTimeControl.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/DateTimeControl.java
index 0ccac02..05a42e8 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/DateTimeControl.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/DateTimeControl.java
@@ -15,6 +15,7 @@
 import org.eclipse.core.databinding.Binding;
 import org.eclipse.core.databinding.observable.value.DateAndTimeObservableValue;
 import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
 import org.eclipse.jface.databinding.swt.SWTObservables;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.layout.GridLayoutFactory;
@@ -33,6 +34,7 @@
  * @author Eugen Neufeld
  *
  */
+@Deprecated
 public class DateTimeControl extends SingleControl {
 
 	private DateTime dateWidget;
@@ -95,7 +97,8 @@
 	 */
 	@Override
 	protected String getUnsetLabelText() {
-		return ControlMessages.DateTimeControl_NoDateSetClickToSetDate;
+		return LocalizationServiceHelper.getString(getClass(),
+			DepricatedControlMessageKeys.DateTimeControl_NoDateSetClickToSetDate);
 	}
 
 	/*
@@ -104,7 +107,7 @@
 	 */
 	@Override
 	protected String getUnsetButtonTooltip() {
-		return ControlMessages.DateTimeControl_UnsetDate;
+		return LocalizationServiceHelper.getString(getClass(), DepricatedControlMessageKeys.DateTimeControl_UnsetDate);
 	}
 
 	/*
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/DepricatedControlMessageKeys.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/DepricatedControlMessageKeys.java
new file mode 100644
index 0000000..2cff628
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/DepricatedControlMessageKeys.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.edit.internal.swt.controls;
+
+/**
+ * Keys for translated strings.
+ *
+ * @author Eugen Neufeld
+ * @generated
+ */
+public interface DepricatedControlMessageKeys {
+	// String AbstractTextControl_InvalidInput;
+	// String AbstractTextControl_InvalidInputSpace;
+	String AbstractTextControl_Unset = "AbstractTextControl_Unset"; //$NON-NLS-1$
+
+	String AttributeMultiControl_NotSetClickToSet = "AttributeMultiControl_NotSetClickToSet"; //$NON-NLS-1$
+	String AttributeMultiControl_Unset = "AttributeMultiControl_Unset"; //$NON-NLS-1$
+
+	String BooleanControl_NoBooleanSetClickToSetBoolean = "BooleanControl_NoBooleanSetClickToSetBoolean"; //$NON-NLS-1$
+	String BooleanControl_UnsetBoolean = "BooleanControl_UnsetBoolean"; //$NON-NLS-1$
+
+	String DateTimeControl_NoDateSetClickToSetDate = "DateTimeControl_NoDateSetClickToSetDate"; //$NON-NLS-1$
+	String DateTimeControl_UnsetDate = "DateTimeControl_UnsetDate"; //$NON-NLS-1$
+
+	String EEnumControl_NoValueSetClickToSetValue = "EEnumControl_NoValueSetClickToSetValue"; //$NON-NLS-1$
+	String EEnumControl_UnsetValue = "EEnumControl_UnsetValue"; //$NON-NLS-1$
+
+	String NumericalControl_FormatNumerical = "NumericalControl_FormatNumerical"; //$NON-NLS-1$
+	String NumericalControl_FormatNumericalDecimal = "NumericalControl_FormatNumericalDecimal"; //$NON-NLS-1$
+	String NumericalControl_InvalidNumber = "NumericalControl_InvalidNumber"; //$NON-NLS-1$
+	String NumericalControl_InvalidNumberWillBeUnset = "NumericalControl_InvalidNumberWillBeUnset"; //$NON-NLS-1$
+	String NumericalControl_NoNumberClickToSetNumber = "NumericalControl_NoNumberClickToSetNumber"; //$NON-NLS-1$
+	String NumericalControl_UnsetNumber = "NumericalControl_UnsetNumber"; //$NON-NLS-1$
+
+	String StringControl_NoTextSetClickToSetText = "StringControl_NoTextSetClickToSetText"; //$NON-NLS-1$
+	String StringControl_UnsetText = "StringControl_UnsetText"; //$NON-NLS-1$
+
+	String TableControl_AddInstanceOf = "TableControl_AddInstanceOf"; //$NON-NLS-1$
+	String TableControl_Delete = "TableControl_Delete"; //$NON-NLS-1$
+	String TableControl_DeleteAreYouSure = "TableControl_DeleteAreYouSure"; //$NON-NLS-1$
+	String TableControl_NotSetClickToSet = "TableControl_NotSetClickToSet"; //$NON-NLS-1$
+	String TableControl_RemoveSelected = "TableControl_RemoveSelected"; //$NON-NLS-1$
+	String TableControl_Unset = "TableControl_Unset"; //$NON-NLS-1$
+	String TableControl_ValidationStatusColumn = "TableControl_ValidationStatusColumn"; //$NON-NLS-1$
+
+	String XmlDateControlText_InvalidNumber = "XmlDateControlText_InvalidNumber"; //$NON-NLS-1$
+	String XmlDateControlText_NoDateSetClickToSetDate = "XmlDateControlText_NoDateSetClickToSetDate"; //$NON-NLS-1$
+	String XmlDateControlText_NumberInvalidValueWillBeUnset = "XmlDateControlText_NumberInvalidValueWillBeUnset"; //$NON-NLS-1$
+	String XmlDateControlText_UnsetDate = "XmlDateControlText_UnsetDate"; //$NON-NLS-1$
+}
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/EEnumControl.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/EEnumControl.java
index 872469d..8367284 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/EEnumControl.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/EEnumControl.java
@@ -16,6 +16,7 @@
 import org.eclipse.core.databinding.observable.value.IObservableValue;
 import org.eclipse.emf.ecore.EStructuralFeature.Setting;
 import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
 import org.eclipse.jface.databinding.swt.SWTObservables;
 import org.eclipse.jface.databinding.viewers.ViewersObservables;
 import org.eclipse.jface.viewers.ArrayContentProvider;
@@ -33,6 +34,7 @@
  * @author Eugen Neufeld
  *
  */
+@Deprecated
 public class EEnumControl extends SingleControl {
 
 	private ComboViewer combo;
@@ -78,7 +80,8 @@
 	 */
 	@Override
 	protected String getUnsetLabelText() {
-		return ControlMessages.EEnumControl_NoValueSetClickToSetValue;
+		return LocalizationServiceHelper.getString(getClass(),
+			DepricatedControlMessageKeys.EEnumControl_NoValueSetClickToSetValue);
 	}
 
 	/*
@@ -87,7 +90,7 @@
 	 */
 	@Override
 	protected String getUnsetButtonTooltip() {
-		return ControlMessages.EEnumControl_UnsetValue;
+		return LocalizationServiceHelper.getString(getClass(), DepricatedControlMessageKeys.EEnumControl_UnsetValue);
 	}
 
 	/*
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/MultiControl.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/MultiControl.java
index 33185c2..aa3ad4b 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/MultiControl.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/MultiControl.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2013 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
  *
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -65,6 +65,7 @@
 
 	private static final String ICONS_ARROW_DOWN_PNG = "icons/arrow_down.png";//$NON-NLS-1$
 	private static final String ICONS_ARROW_UP_PNG = "icons/arrow_up.png";//$NON-NLS-1$
+	private static final String ICONS_UNSET_FEATURE = "icons/unset_feature.png"; //$NON-NLS-1$
 
 	private IObservableList model;
 	private IListChangeListener changeListener;
@@ -202,7 +203,8 @@
 						}
 						final int widthAfterChange = sectionComposite.getSize().x;
 						if (widthBeforeChange != widthAfterChange) {
-							scrolledComposite.setMinHeight(sectionComposite.computeSize(widthAfterChange, SWT.DEFAULT).y);
+							scrolledComposite
+								.setMinHeight(sectionComposite.computeSize(widthAfterChange, SWT.DEFAULT).y);
 							widthBeforeChange = widthAfterChange;
 						}
 					}
@@ -316,7 +318,7 @@
 			unsetButton = new Button(toolbarComposite, SWT.PUSH);
 			unsetButton.setEnabled(!getControl().isReadonly());
 			unsetButton.setToolTipText(getUnsetButtonTooltip());
-			unsetButton.setImage(Activator.getImage("icons/delete.png")); //$NON-NLS-1$
+			unsetButton.setImage(Activator.getImage(ICONS_UNSET_FEATURE));
 		}
 	}
 
@@ -369,7 +371,7 @@
 		 */
 		private void createDeleteButton(Composite composite) {
 			final Button delB = new Button(composite, SWT.PUSH);
-			delB.setImage(Activator.getImage("icons/delete.png")); //$NON-NLS-1$
+			delB.setImage(Activator.getImage(ICONS_UNSET_FEATURE));
 			delB.setEnabled(!getControl().isReadonly());
 			delB.addSelectionListener(new SelectionAdapter() {
 				private static final long serialVersionUID = 1L;
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/NumericalControl.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/NumericalControl.java
index f8ef770..bd27a33 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/NumericalControl.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/NumericalControl.java
@@ -24,6 +24,7 @@
 import org.eclipse.emf.ecp.edit.internal.swt.Activator;

 import org.eclipse.emf.ecp.edit.spi.swt.util.ECPDialogExecutor;

 import org.eclipse.emf.edit.command.SetCommand;

+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;

 import org.eclipse.jface.databinding.swt.SWTObservables;

 import org.eclipse.jface.dialogs.IDialogLabelKeys;

 import org.eclipse.jface.dialogs.MessageDialog;

@@ -37,6 +38,7 @@
  * @author Eugen Neufeld

  * @author emueller

  */

+@Deprecated

 public class NumericalControl extends AbstractTextControl {

 

 	@Override

@@ -59,7 +61,8 @@
 	 */

 	@Override

 	protected String getUnsetLabelText() {

-		return ControlMessages.NumericalControl_NoNumberClickToSetNumber;

+		return LocalizationServiceHelper.getString(getClass(),

+			DepricatedControlMessageKeys.NumericalControl_NoNumberClickToSetNumber);

 	}

 

 	/*

@@ -68,7 +71,8 @@
 	 */

 	@Override

 	protected String getUnsetButtonTooltip() {

-		return ControlMessages.NumericalControl_UnsetNumber;

+		return LocalizationServiceHelper.getString(getClass(),

+			DepricatedControlMessageKeys.NumericalControl_UnsetNumber);

 	}

 

 	@Override

@@ -122,9 +126,11 @@
 	private String getFormatText() {

 

 		if (NumericalHelper.isInteger(getInstanceClass())) {

-			return ControlMessages.NumericalControl_FormatNumerical;

+			return LocalizationServiceHelper.getString(getClass(),

+				DepricatedControlMessageKeys.NumericalControl_FormatNumerical);

 		} else if (NumericalHelper.isDouble(getInstanceClass())) {

-			return ControlMessages.NumericalControl_FormatNumericalDecimal;

+			return LocalizationServiceHelper.getString(getClass(),

+				DepricatedControlMessageKeys.NumericalControl_FormatNumericalDecimal);

 		}

 

 		return ""; //$NON-NLS-1$

@@ -239,8 +245,10 @@
 			final Object result = getModelValue().getValue();

 

 			final MessageDialog messageDialog = new MessageDialog(getText().getShell(),

-				ControlMessages.NumericalControl_InvalidNumber, null,

-				ControlMessages.NumericalControl_InvalidNumberWillBeUnset, MessageDialog.ERROR,

+				LocalizationServiceHelper.getString(getClass(),

+					DepricatedControlMessageKeys.NumericalControl_InvalidNumber), null,

+				LocalizationServiceHelper.getString(getClass(),

+					DepricatedControlMessageKeys.NumericalControl_InvalidNumberWillBeUnset), MessageDialog.ERROR,

 				new String[] { JFaceResources.getString(IDialogLabelKeys.OK_LABEL_KEY) }, 0);

 

 			new ECPDialogExecutor(messageDialog) {

diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/NumericalHelper.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/NumericalHelper.java
index cf39153..d89c734 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/NumericalHelper.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/NumericalHelper.java
@@ -52,7 +52,11 @@
 		// int integerDigits = totalDigits - fractionalDigits;
 		// format.setMaximumIntegerDigits(integerDigits);
 		// } else {
-		format.setMaximumFractionDigits(100);
+		if (isDouble(instanceClass)) {
+			format.setMaximumFractionDigits(100);
+		} else {
+			format.setMaximumFractionDigits(0);
+		}
 		// }
 		return format;
 	}
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/SingleControl.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/SingleControl.java
index 180cd50..1c412cf 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/SingleControl.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/SingleControl.java
@@ -26,6 +26,7 @@
  * @author Eugen Neufeld
  *
  */
+@Deprecated
 public abstract class SingleControl extends SWTControl {
 
 	//	private static final String VALIDATION_ERROR_ICON = "icons/validation_error.png";//$NON-NLS-1$
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/StringControl.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/StringControl.java
index 582c290..e230179 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/StringControl.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/StringControl.java
@@ -12,6 +12,7 @@
  *******************************************************************************/
 package org.eclipse.emf.ecp.edit.internal.swt.controls;
 
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Text;
@@ -22,6 +23,7 @@
  * @author Eugen Neufeld
  *
  */
+@Deprecated
 public class StringControl extends AbstractTextControl {
 
 	/** {@inheritDoc} */
@@ -64,7 +66,8 @@
 	 */
 	@Override
 	protected String getUnsetLabelText() {
-		return ControlMessages.StringControl_NoTextSetClickToSetText;
+		return LocalizationServiceHelper.getString(getClass(),
+			DepricatedControlMessageKeys.StringControl_NoTextSetClickToSetText);
 	}
 
 	/*
@@ -73,7 +76,7 @@
 	 */
 	@Override
 	protected String getUnsetButtonTooltip() {
-		return ControlMessages.StringControl_UnsetText;
+		return LocalizationServiceHelper.getString(getClass(), DepricatedControlMessageKeys.StringControl_UnsetText);
 	}
 
 	@Override
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/TableControl.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/TableControl.java
index cb40c35..9108f41 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/TableControl.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/TableControl.java
@@ -1,1167 +1,1182 @@
-/*******************************************************************************

- * 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 v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- * Eugen Neufeld - initial API and implementation

- *

- *******************************************************************************/

-package org.eclipse.emf.ecp.edit.internal.swt.controls;

-

-import java.util.ArrayList;

-import java.util.Collection;

-import java.util.Collections;

-import java.util.Iterator;

-import java.util.LinkedHashMap;

-import java.util.List;

-import java.util.Map;

-

-import org.eclipse.core.databinding.Binding;

-import org.eclipse.core.databinding.observable.list.IObservableList;

-import org.eclipse.core.databinding.observable.map.IObservableMap;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.core.runtime.Assert;

-import org.eclipse.emf.common.notify.AdapterFactory;

-import org.eclipse.emf.common.util.Diagnostic;

-import org.eclipse.emf.databinding.EMFProperties;

-import org.eclipse.emf.databinding.EObjectObservableMap;

-import org.eclipse.emf.databinding.edit.EMFEditObservables;

-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.ecp.edit.internal.swt.Activator;

-import org.eclipse.emf.ecp.edit.internal.swt.table.TableColumnConfiguration;

-import org.eclipse.emf.ecp.edit.internal.swt.table.TableControlConfiguration;

-import org.eclipse.emf.ecp.edit.internal.swt.util.CellEditorFactory;

-import org.eclipse.emf.ecp.edit.internal.swt.util.SWTControl;

-import org.eclipse.emf.ecp.edit.internal.swt.util.SWTRenderingHelper;

-import org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor;

-import org.eclipse.emf.ecp.edit.spi.swt.util.ECPDialogExecutor;

-import org.eclipse.emf.ecp.view.spi.model.VDiagnostic;

-import org.eclipse.emf.ecp.view.spi.renderer.RenderingResultRow;

-import org.eclipse.emf.edit.command.AddCommand;

-import org.eclipse.emf.edit.command.RemoveCommand;

-import org.eclipse.emf.edit.domain.EditingDomain;

-import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;

-import org.eclipse.emf.edit.provider.ComposedAdapterFactory;

-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;

-import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;

-import org.eclipse.jface.databinding.swt.SWTObservables;

-import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;

-import org.eclipse.jface.databinding.viewers.ObservableMapCellLabelProvider;

-import org.eclipse.jface.dialogs.IDialogConstants;

-import org.eclipse.jface.dialogs.IDialogLabelKeys;

-import org.eclipse.jface.dialogs.MessageDialog;

-import org.eclipse.jface.layout.GridDataFactory;

-import org.eclipse.jface.layout.GridLayoutFactory;

-import org.eclipse.jface.layout.TableColumnLayout;

-import org.eclipse.jface.resource.JFaceResources;

-import org.eclipse.jface.viewers.CellEditor;

-import org.eclipse.jface.viewers.CellLabelProvider;

-import org.eclipse.jface.viewers.ColumnViewer;

-import org.eclipse.jface.viewers.ColumnViewerEditor;

-import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;

-import org.eclipse.jface.viewers.ColumnViewerEditorActivationListener;

-import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;

-import org.eclipse.jface.viewers.ColumnViewerEditorDeactivationEvent;

-import org.eclipse.jface.viewers.ColumnViewerToolTipSupport;

-import org.eclipse.jface.viewers.ColumnWeightData;

-import org.eclipse.jface.viewers.EditingSupport;

-import org.eclipse.jface.viewers.IColorProvider;

-import org.eclipse.jface.viewers.IStructuredSelection;

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.jface.viewers.TableViewerColumn;

-import org.eclipse.jface.viewers.TableViewerEditor;

-import org.eclipse.jface.viewers.TableViewerFocusCellManager;

-import org.eclipse.jface.viewers.Viewer;

-import org.eclipse.jface.viewers.ViewerCell;

-import org.eclipse.jface.viewers.ViewerComparator;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.events.DisposeEvent;

-import org.eclipse.swt.events.DisposeListener;

-import org.eclipse.swt.events.SelectionAdapter;

-import org.eclipse.swt.events.SelectionEvent;

-import org.eclipse.swt.graphics.Color;

-import org.eclipse.swt.graphics.Image;

-import org.eclipse.swt.layout.GridLayout;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.swt.widgets.TableColumn;

-

-/**

- * The class describing a table control.

- *

- * @author Eugen Neufeld

- * @author emueller

- */

-// this class is not serialized

-public class TableControl extends SWTControl {

-

-	private static final String FIXED_COLUMNS = "org.eclipse.rap.rwt.fixedColumns"; //$NON-NLS-1$

-

-	private static final String ICON_ADD = "icons/add.png"; //$NON-NLS-1$

-

-	private TableViewer tableViewer;

-	private ComposedAdapterFactory composedAdapterFactory;

-	private AdapterFactoryItemDelegator adapterFactoryItemDelegator;

-	private Button unsetButton;

-	private EClass clazz;

-	private TableControlConfiguration tableControlConfiguration;

-	private boolean editable = true;

-

-	private EReference getTableReference() {

-		return (EReference) getFirstStructuralFeature();

-	}

-

-	/**

-	 *

-	 * @param tableControlConfiguration the {@link TableControlConfiguration} to use when creating the table

-	 */

-	public final void setTableControlConfiguration(TableControlConfiguration tableControlConfiguration) {

-		this.tableControlConfiguration = tableControlConfiguration;

-	}

-

-	@Override

-	protected Binding bindValue() {

-		return null;

-	}

-

-	/**

-	 *

-	 * {@inheritDoc}

-	 *

-	 * @see org.eclipse.emf.ecp.edit.internal.swt.util.ECPControlSWT#createControls(org.eclipse.swt.widgets.Composite)

-	 */

-	@Override

-	public List<RenderingResultRow<Control>> createControls(final Composite parent) {

-		final IItemPropertyDescriptor itemPropertyDescriptor = getItemPropertyDescriptor(getFirstSetting());

-		if (itemPropertyDescriptor == null) {

-			return null;

-		}

-		parent.addDisposeListener(new DisposeListener() {

-

-			@Override

-			public void widgetDisposed(DisposeEvent e) {

-				dispose();

-			}

-		});

-		final List<RenderingResultRow<Control>> list = Collections.singletonList(SWTRenderingHelper.INSTANCE

-			.getResultRowFactory().createRenderingResultRow(

-				createControl(parent)));

-

-		applyValidation(getControl().getDiagnostic());

-		return list;

-

-	}

-

-	@Override

-	public Composite createControl(final Composite parent) {

-		mainSetting = getFirstSetting();

-		composedAdapterFactory = new ComposedAdapterFactory(new AdapterFactory[] {

-			new ReflectiveItemProviderAdapterFactory(),

-			new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE) });

-

-		adapterFactoryItemDelegator = new AdapterFactoryItemDelegator(composedAdapterFactory);

-

-		clazz = getTableReference().getEReferenceType();

-

-		final Composite composite = new Composite(parent, SWT.NONE);

-		composite.setLayout(new GridLayout(1, false));

-		composite.setBackground(parent.getBackground());

-

-		final Composite titleComposite = new Composite(composite, SWT.NONE);

-		titleComposite.setBackground(parent.getBackground());

-		GridDataFactory.fillDefaults().grab(true, false).align(SWT.FILL, SWT.BEGINNING)

-			.applyTo(titleComposite);

-		GridLayoutFactory.fillDefaults().numColumns(3).equalWidth(false).applyTo(titleComposite);

-

-		final Label label = new Label(titleComposite, SWT.NONE);

-		label.setBackground(parent.getBackground());

-		label.setText(getItemPropertyDescriptor(mainSetting).getDisplayName(null));

-		GridDataFactory.fillDefaults().align(SWT.FILL, SWT.BEGINNING).grab(true, false).applyTo(label);

-

-		// VALIDATION

-		validationLabel = new Label(titleComposite, SWT.NONE);

-		validationLabel.setBackground(parent.getBackground());

-		// set the size of the label to the size of the image

-		GridDataFactory.fillDefaults().hint(16, 17).applyTo(validationLabel);

-

-		boolean createButtons = true;

-		if (tableControlConfiguration != null) {

-			createButtons = !tableControlConfiguration.isAddRemoveDisabled();

-		}

-		if (createButtons) {

-			// addButtons

-			final Composite buttonComposite = new Composite(titleComposite, SWT.NONE);

-			GridDataFactory.fillDefaults().align(SWT.END, SWT.BEGINNING).grab(true, false).applyTo(buttonComposite);

-			int numButtons = 2;

-

-			createAddRowButton(clazz, buttonComposite);

-			createRemoveRowButton(clazz, buttonComposite);

-			if (!isEmbedded() && getTableReference().isUnsettable()) {

-				unsetButton = new Button(buttonComposite, SWT.PUSH);

-				unsetButton.setToolTipText(getUnsetButtonTooltip());

-				unsetButton.setImage(Activator.getImage("icons/delete.png")); //$NON-NLS-1$

-				numButtons++;

-			}

-			GridLayoutFactory.fillDefaults().numColumns(numButtons).equalWidth(true).applyTo(buttonComposite);

-		}

-		final Composite controlComposite = new Composite(composite, SWT.NONE);

-		GridDataFactory.fillDefaults().grab(true, true).align(SWT.FILL,

-			SWT.FILL).applyTo(controlComposite);

-		GridLayoutFactory.fillDefaults().numColumns(1).applyTo(controlComposite);

-

-		// delegate to super class

-		createContentControl(controlComposite);

-

-		return composite;

-	}

-

-	private TableViewer createTableViewer(Composite parent) {

-		final TableViewer tableViewer = new TableViewer(parent, SWT.MULTI | SWT.V_SCROLL | SWT.FULL_SELECTION

-			| SWT.BORDER);

-		tableViewer.getTable().setData(CUSTOM_VARIANT, "org_eclipse_emf_ecp_control_table"); //$NON-NLS-1$

-		tableViewer.getTable().setHeaderVisible(true);

-		tableViewer.getTable().setLinesVisible(true);

-

-		final TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(tableViewer,

-			new ECPFocusCellDrawHighlighter(tableViewer));

-		final ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(tableViewer) {

-			@Override

-			protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {

-				return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL

-					|| event.eventType == ColumnViewerEditorActivationEvent.MOUSE_CLICK_SELECTION

-					|| event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR

-					|| event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;

-			}

-		};

-

-		TableViewerEditor.create(tableViewer, focusCellManager, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL

-			| ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.TABBING_VERTICAL

-			| ColumnViewerEditor.KEYBOARD_ACTIVATION);

-

-		tableViewer.getTable().setData(FIXED_COLUMNS, new Integer(1));

-		ColumnViewerToolTipSupport.enableFor(tableViewer);

-

-		return tableViewer;

-	}

-

-	private void createFixedValidationStatusColumn(TableViewer tableViewer,

-		final List<EStructuralFeature> structuralFeatures) {

-		final TableViewerColumn column = TableViewerColumnBuilder.create()

-			.setMoveable(false)

-			.setText(ControlMessages.TableControl_ValidationStatusColumn)

-			.setWidth(80)

-			.build(tableViewer);

-

-		column.setLabelProvider(new ValidationStatusCellLabelProvider(structuralFeatures));

-	}

-

-	private EObject getInstanceOf(EClass clazz) {

-		return clazz.getEPackage().getEFactoryInstance().create(clazz);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * @see

-	 * org.eclipse.emf.ecp.edit.internal.swt.util.SWTControl#fillControlComposite(org.eclipse.swt.widgets.Composite)

-	 */

-	@Override

-	protected void fillControlComposite(Composite parent) {

-		final Composite composite = new Composite(parent, SWT.NONE);

-		GridDataFactory.fillDefaults().grab(true, true).align(SWT.FILL, SWT.FILL).hint(1, 200).applyTo(composite);

-		tableViewer = createTableViewer(composite);

-

-		final ObservableListContentProvider cp = new ObservableListContentProvider();

-		final EObject tempInstance = getInstanceOf(clazz);

-		final ECPTableViewerComparator comparator = new ECPTableViewerComparator();

-		tableViewer.setComparator(comparator);

-		int columnNumber = 0;

-		final Map<EStructuralFeature, Boolean> readOnlyConfig = createReadOnlyConfig(clazz);

-		final List<EStructuralFeature> structuralFeatures = new ArrayList<EStructuralFeature>();

-		structuralFeatures.addAll(readOnlyConfig.keySet());

-		if (!getControl().isReadonly()) {

-			createFixedValidationStatusColumn(tableViewer, structuralFeatures);

-		}

-

-		for (final EStructuralFeature feature : structuralFeatures) {

-			final IItemPropertyDescriptor itemPropertyDescriptor = adapterFactoryItemDelegator.getPropertyDescriptor(

-				tempInstance, feature);

-			if (itemPropertyDescriptor == null) {

-				// if we can't render because no edit information is available, do nothing

-				continue;

-			}

-

-			final CellEditor cellEditor = createCellEditor(tempInstance, feature);

-			final TableViewerColumn column = TableViewerColumnBuilder

-				.create()

-				.setText(itemPropertyDescriptor.getDisplayName(null))

-				.setToolTipText(itemPropertyDescriptor.getDescription(null))

-				.setResizable(true)

-				.setMoveable(false)

-				.setStyle(noStyle())

-				.setData("width", //$NON-NLS-1$

-					ECPCellEditor.class.isInstance(cellEditor) ? ECPCellEditor.class.cast(cellEditor)

-						.getColumnWidthWeight() : 100)

-				.build(tableViewer);

-

-			column.setLabelProvider(new ECPCellLabelProvider(feature, cellEditor, feature.isMany() ?

-				new EObjectObservableMap(cp.getKnownElements(), feature) :

-				EMFProperties.value(feature).observeDetail(cp.getKnownElements())));

-			column.getColumn().addSelectionListener(getSelectionAdapter(comparator, column.getColumn(), columnNumber));

-

-			if (!isReadOnlyFeature(readOnlyConfig, feature)) {

-				// remove if no editing needed

-				final EditingSupport observableSupport = new ECPTableEditingSupport(tableViewer, cellEditor, feature);

-				column.setEditingSupport(observableSupport);

-			}

-			columnNumber++;

-		}

-		tableViewer.setContentProvider(cp);

-		final IObservableList list = EMFEditObservables.observeList(getEditingDomain(mainSetting),

-			mainSetting.getEObject(), mainSetting.getEStructuralFeature());

-		tableViewer.setInput(list);

-

-		// IMPORTANT:

-		// - the minimumWidth and (non)resizable settings of the ColumnWeightData are not supported properly

-		// - the layout stops resizing columns that have been resized manually by the user (this could be considered a

-		// feature though)

-		final TableColumnLayout layout = new TableColumnLayout();

-		composite.setLayout(layout);

-		for (int i = 0; i < tableViewer.getTable().getColumns().length; i++) {

-			final Integer storedValue = (Integer) tableViewer.getTable().getColumns()[i].getData("width"); //$NON-NLS-1$

-			layout.setColumnData(tableViewer.getTable().getColumns()[i], new ColumnWeightData(storedValue == null ? 50

-				: storedValue));

-		}

-	}

-

-	private CellEditor createCellEditor(final EObject tempInstance, final EStructuralFeature feature) {

-		return CellEditorFactory.INSTANCE.getCellEditor(feature,

-			tempInstance, tableViewer.getTable(), getViewModelContext());

-	}

-

-	private static boolean isReadOnlyFeature(Map<EStructuralFeature, Boolean> readOnlyConfig, EStructuralFeature feature) {

-		if (readOnlyConfig != null) {

-			final Boolean isReadOnly = readOnlyConfig.get(feature);

-			if (isReadOnly != null) {

-				return isReadOnly;

-			}

-		}

-		return false;

-	}

-

-	private Map<EStructuralFeature, Boolean> createReadOnlyConfig(EClass clazz) {

-		final Map<EStructuralFeature, Boolean> readOnlyConfig = new LinkedHashMap<EStructuralFeature, Boolean>();

-		if (tableControlConfiguration != null) {

-			for (final TableColumnConfiguration tcc : tableControlConfiguration.getColumns()) {

-				readOnlyConfig.put(tcc.getColumnAttribute(), tcc.isReadOnly());

-			}

-		} else {

-			for (final EStructuralFeature feature : clazz.getEStructuralFeatures()) {

-				readOnlyConfig.put(feature, Boolean.FALSE);

-			}

-		}

-		return readOnlyConfig;

-	}

-

-	private int noStyle() {

-		return SWT.NONE;

-	}

-

-	@Override

-	protected Button getCustomUnsetButton() {

-		return unsetButton;

-	}

-

-	private SelectionAdapter getSelectionAdapter(final ECPTableViewerComparator comparator, final TableColumn column,

-		final int index) {

-		final SelectionAdapter selectionAdapter = new SelectionAdapter() {

-			@Override

-			public void widgetSelected(SelectionEvent e) {

-				comparator.setColumn(index);

-				final int dir = comparator.getDirection();

-				tableViewer.getTable().setSortDirection(dir);

-				tableViewer.getTable().setSortColumn(column);

-				tableViewer.refresh();

-			}

-		};

-		return selectionAdapter;

-	}

-

-	private Button removeButton;

-

-	private void createRemoveRowButton(EClass clazz, final Composite buttonComposite) {

-		removeButton = new Button(buttonComposite, SWT.None);

-		final Image image = Activator.getImage("icons/delete.png"); //$NON-NLS-1$

-		removeButton.setImage(image);

-		removeButton.setToolTipText(ControlMessages.TableControl_RemoveSelected

-			+ clazz.getInstanceClass().getSimpleName());

-		removeButton.addSelectionListener(new SelectionAdapter() {

-			/*

-			 * (non-Javadoc)

-			 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)

-			 */

-			@Override

-			public void widgetSelected(SelectionEvent e) {

-				final IStructuredSelection selection = (IStructuredSelection) tableViewer.getSelection();

-

-				if (selection == null || selection.getFirstElement() == null) {

-					return;

-				}

-

-				final List<EObject> deletionList = new ArrayList<EObject>();

-				final Iterator<?> iterator = selection.iterator();

-

-				while (iterator.hasNext()) {

-					deletionList.add((EObject) iterator.next());

-				}

-

-				deleteRowUserConfirmDialog(deletionList);

-

-			}

-		});

-

-		final List<?> containments = (List<?>) mainSetting.get(true);

-		if (containments.size() <= getTableReference().getLowerBound()) {

-			removeButton.setEnabled(false);

-		}

-	}

-

-	/**

-	 * This method shows a user confirmation dialog when the user attempts to delete a row in the table.

-	 *

-	 * @param deletionList the list of selected EObjects to delete

-	 */

-	protected void deleteRowUserConfirmDialog(final List<EObject> deletionList) {

-		final MessageDialog dialog = new MessageDialog(tableViewer.getTable().getShell(),

-			ControlMessages.TableControl_Delete, null,

-			ControlMessages.TableControl_DeleteAreYouSure, MessageDialog.CONFIRM, new String[] {

-				JFaceResources.getString(IDialogLabelKeys.YES_LABEL_KEY),

-				JFaceResources.getString(IDialogLabelKeys.NO_LABEL_KEY) }, 0);

-

-		new ECPDialogExecutor(dialog) {

-

-			@Override

-			public void handleResult(int codeResult) {

-				if (codeResult == IDialogConstants.CANCEL_ID) {

-					return;

-				}

-

-				deleteRows(deletionList);

-

-				final List<?> containments = (List<?>) mainSetting.get(true);

-				if (containments.size() < getTableReference().getUpperBound()) {

-					addButton.setEnabled(true);

-				}

-				if (containments.size() <= getTableReference().getLowerBound()) {

-					removeButton.setEnabled(false);

-				}

-			}

-		}.execute();

-	}

-

-	/**

-	 * This is called by {@link #deleteRowUserConfirmDialog(List)} after the user confirmed to delete the selected

-	 * elements.

-	 *

-	 * @param deletionList the list of {@link EObject EObjects} to delete

-	 */

-	protected void deleteRows(List<EObject> deletionList) {

-		final EditingDomain editingDomain = getEditingDomain(mainSetting);

-		final EObject modelElement = mainSetting.getEObject();

-		editingDomain.getCommandStack().execute(

-			RemoveCommand.create(editingDomain, modelElement, getTableReference(), deletionList));

-	}

-

-	/**

-	 * This method is called to add a new entry in the domain model and thus to create a new row in the table. The

-	 * element to create is defined by the provided class.

-	 * You can override this method but you have to call super nonetheless.

-	 *

-	 * @param clazz the {@link EClass} defining the EObject to create

-	 */

-	protected void addRow(EClass clazz) {

-		final EObject modelElement = mainSetting.getEObject();

-		final EObject instance = clazz.getEPackage().getEFactoryInstance().create(clazz);

-

-		final EditingDomain editingDomain = getEditingDomain(mainSetting);

-		editingDomain.getCommandStack().execute(

-			AddCommand.create(editingDomain, modelElement, getTableReference(), instance));

-

-	}

-

-	private Button addButton;

-	private Setting mainSetting;

-

-	private boolean isDisposing;

-

-	private void createAddRowButton(final EClass clazz, final Composite buttonComposite) {

-		addButton = new Button(buttonComposite, SWT.None);

-		final Image image = Activator.getImage(ICON_ADD);

-		addButton.setImage(image);

-		addButton.setToolTipText(ControlMessages.TableControl_AddInstanceOf + clazz.getInstanceClass().getSimpleName());

-		addButton.addSelectionListener(new SelectionAdapter() {

-

-			/*

-			 * (non-Javadoc)

-			 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)

-			 */

-			@Override

-			public void widgetSelected(SelectionEvent e) {

-				addRow(clazz);

-

-				final List<?> containments = (List<?>) mainSetting.get(true);

-				if (getTableReference().getUpperBound() != -1

-					&& containments.size() >= getTableReference().getUpperBound()) {

-					addButton.setEnabled(false);

-				}

-				if (containments.size() > getTableReference().getLowerBound()) {

-					removeButton.setEnabled(true);

-				}

-			}

-		});

-

-		final List<?> containments = (List<?>) mainSetting.get(true);

-		if (getTableReference().getUpperBound() != -1

-			&& containments.size() >= getTableReference().getUpperBound()) {

-			addButton.setEnabled(false);

-		}

-	}

-

-	/**

-	 * {@inheritDoc}

-	 */

-	@Override

-	public void dispose() {

-		isDisposing = true;

-		super.dispose();

-		composedAdapterFactory.dispose();

-		mainSetting = null;

-		adapterFactoryItemDelegator = null;

-		composedAdapterFactory = null;

-		isDisposing = false;

-	}

-

-	/**

-	 * {@inheritDoc}

-	 *

-	 * @see org.eclipse.emf.ecp.edit.spi.ECPAbstractControl#applyValidation(org.eclipse.emf.ecp.view.spi.model.VDiagnostic)

-	 */

-	@Override

-	protected void applyValidation(VDiagnostic diagnostic) {

-

-		if (validationLabel == null || validationLabel.isDisposed()) {

-			return;

-		}

-		if (diagnostic != null) {

-			final Image image = getValidationIcon(diagnostic.getHighestSeverity());

-			validationLabel.setImage(image);

-			validationLabel.setToolTipText(diagnostic.getMessage());

-			for (final Object object : (Collection<?>) mainSetting.get(true)) {

-				tableViewer.update(object, null);

-			}

-		}

-	}

-

-	// /**

-	// * {@inheritDoc}

-	// *

-	// * @deprecated

-	// */

-	// @Deprecated

-	// @Override

-	// public void resetValidation() {

-	// if (validationLabel == null || validationLabel.isDisposed()) {

-	// return;

-	// }

-	//		validationLabel.setToolTipText(""); //$NON-NLS-1$

-	// validationLabel.setImage(null);

-	// tableViewer.refresh();

-	// }

-	// /**

-	// * {@inheritDoc}

-	// *

-	// * @deprecated

-	// */

-	// @Deprecated

-	// @Override

-	// public void handleValidation(Diagnostic diagnostic) {

-	// if (diagnostic.getData().isEmpty()) {

-	// return;

-	// }

-	// final Image image = getValidationIcon(diagnostic.getSeverity());

-	// validationLabel.setImage(image);

-	// validationLabel.setToolTipText(getTableTooltipMessage(diagnostic));

-	// final EObject object = (EObject) diagnostic.getData().get(0);

-	// tableViewer.update(object, null);

-	// }

-

-	/**

-	 * Returns the message of the validation tool tip shown in the table header.

-	 *

-	 * @param diagnostic the {@link Diagnostic} to extract the message from

-	 * @return the message

-	 */

-	protected String getTableTooltipMessage(Diagnostic diagnostic) {

-		return diagnostic.getMessage();

-	}

-

-	/**

-	 * Returns the message of the validation tool tip shown in the row.

-	 *

-	 * @param vDiagnostic the {@link VDiagnostic} to get the message from

-	 * @return the message

-	 */

-	protected String getRowTooltipMessage(VDiagnostic vDiagnostic) {

-		return vDiagnostic.getMessage();

-	}

-

-	/**

-	 * Returns the message of the validation tool tip shown in the cell.

-	 *

-	 * @param vDiagnostic the {@link VDiagnostic} to get the message from

-	 * @return the message

-	 */

-	protected String getCellTooltipMessage(VDiagnostic vDiagnostic) {

-		if (vDiagnostic == null) {

-			return null;

-		}

-		if (vDiagnostic.getDiagnostics().size() == 0) {

-			return vDiagnostic.getMessage();

-		}

-		final Diagnostic diagnostic = (Diagnostic) vDiagnostic.getDiagnostics().get(0);

-		Diagnostic reason = diagnostic;

-		if (diagnostic.getChildren() != null && diagnostic.getChildren().size() != 0) {

-			reason = diagnostic.getChildren().get(0);

-		}

-		return reason.getMessage();

-	}

-

-	/**

-	 * {@inheritDoc}

-	 *

-	 * @deprecated

-	 */

-	@Deprecated

-	@Override

-	public void setEditable(boolean isEditable) {

-		if (addButton != null) {

-			addButton.setVisible(isEditable);

-		}

-		if (removeButton != null) {

-			removeButton.setVisible(isEditable);

-		}

-		editable = isEditable;

-	}

-

-	/**

-	 * @author Jonas

-	 *

-	 */

-	private final class ValidationStatusCellLabelProvider extends CellLabelProvider {

-		private final List<EStructuralFeature> structuralFeatures;

-

-		/**

-		 * @param structuralFeatures

-		 */

-		private ValidationStatusCellLabelProvider(List<EStructuralFeature> structuralFeatures) {

-			this.structuralFeatures = structuralFeatures;

-		}

-

-		@Override

-		public void update(ViewerCell cell) {

-			Integer mostSevere = Diagnostic.OK;

-			final VDiagnostic vDiagnostic = getControl().getDiagnostic();

-			// for (final Object diagObject : vDiagnostic.getDiagnostics()) {

-			// final Diagnostic diagnostic = (Diagnostic) diagObject;

-			// if (diagnostic.getData().size() == 0) {

-			// continue;

-			// }

-			// if (diagnostic.getData().get(0).equals(cell.getElement())) {

-			// final int currentSeverity = diagnostic.getSeverity();

-			// if (currentSeverity > mostSevere) {

-			// mostSevere = currentSeverity;

-			// }

-			// }

-			// }

-			final List<Diagnostic> diagnostics = vDiagnostic.getDiagnostics((EObject) cell.getElement());

-			if (diagnostics.size() != 0) {

-				mostSevere = diagnostics.get(0).getSeverity();

-			}

-			cell.setImage(getValidationIcon(mostSevere));

-		}

-

-		@Override

-		public String getToolTipText(Object element) {

-			final StringBuffer tooltip = new StringBuffer();

-			final VDiagnostic vDiagnostic = getControl().getDiagnostic();

-			// for (final Object diagObject : vDiagnostic.getDiagnostics()) {

-			// final Diagnostic diagnostic = (Diagnostic) diagObject;

-			// if (diagnostic.getData().size() < 2) {

-			// continue;

-			// }

-			// if (diagnostic.getSeverity() == Diagnostic.OK) {

-			// continue;

-			// }

-			// if (diagnostic.getData().get(0).equals(element)

-			// && structuralFeatures.contains(diagnostic.getData().get(1))) {

-			// if (tooltip.length() > 0) {

-			//						tooltip.append("\n"); //$NON-NLS-1$

-			// }

-			// tooltip.append(diagnostic.getMessage());

-			// }

-			// }

-

-			final List<Diagnostic> diagnostics = vDiagnostic.getDiagnostics((EObject) element);

-			for (final Diagnostic diagnostic : diagnostics) {

-				if (tooltip.length() > 0) {

-					tooltip.append("\n"); //$NON-NLS-1$

-				}

-				tooltip.append(diagnostic.getMessage());

-			}

-

-			return tooltip.toString();

-		}

-	}

-

-	/**

-	 * The {@link ViewerComparator} for this table which allows 3 states for sort order:

-	 * none, up and down.

-	 *

-	 * @author Eugen Neufeld

-	 *

-	 */

-	private class ECPTableViewerComparator extends ViewerComparator {

-		private int propertyIndex;

-		private static final int NONE = 0;

-		private int direction = NONE;

-

-		public ECPTableViewerComparator() {

-			propertyIndex = 0;

-			direction = NONE;

-		}

-

-		public int getDirection() {

-			switch (direction) {

-			case 0:

-				return SWT.NONE;

-			case 1:

-				return SWT.UP;

-			case 2:

-				return SWT.DOWN;

-			default:

-				return SWT.NONE;

-			}

-

-		}

-

-		public void setColumn(int column) {

-			if (column == propertyIndex) {

-				// Same column as last sort; toggle the direction

-				direction = (direction + 1) % 3;

-			} else {

-				// New column; do an ascending sort

-				propertyIndex = column;

-				direction = 1;

-			}

-		}

-

-		@Override

-		public int compare(Viewer viewer, Object e1, Object e2) {

-			if (direction == 0) {

-				return 0;

-			}

-			int rc = 0;

-			final EObject object1 = (EObject) e1;

-			final EObject object2 = (EObject) e2;

-			final EStructuralFeature feat1 = object1.eClass().getEAllStructuralFeatures().get(propertyIndex);

-			final EStructuralFeature feat2 = object2.eClass().getEAllStructuralFeatures().get(propertyIndex);

-

-			final Object value1 = object1.eGet(feat1);

-			final Object value2 = object2.eGet(feat2);

-

-			if (value1 == null) {

-				rc = 1;

-			} else if (value2 == null) {

-				rc = -1;

-			} else {

-				rc = value1.toString().compareTo(value2.toString());

-			}

-			// If descending order, flip the direction

-			if (direction == 2) {

-				rc = -rc;

-			}

-			return rc;

-		}

-	}

-

-	/**

-	 * ECP specficic cell label provider that does also implement {@link IColorProvider} in

-	 * order to correctly.

-	 *

-	 * @author emueller

-	 *

-	 */

-	public class ECPCellLabelProvider extends ObservableMapCellLabelProvider implements IColorProvider {

-

-		private final EStructuralFeature feature;

-		private final CellEditor cellEditor;

-

-		/**

-		 * Constructor.

-		 *

-		 * @param feature

-		 *            the {@link EStructuralFeature} the cell is bound to

-		 * @param cellEditor

-		 *            the {@link CellEditor} instance

-		 * @param attributeMap

-		 *            an {@link IObservableMap} instance that is passed to the {@link ObservableMapCellLabelProvider}

-		 */

-		public ECPCellLabelProvider(EStructuralFeature feature, CellEditor cellEditor, IObservableMap attributeMap) {

-			super(attributeMap);

-			this.feature = feature;

-			this.cellEditor = cellEditor;

-		}

-

-		/**

-		 * {@inheritDoc}

-		 *

-		 * @see org.eclipse.jface.viewers.CellLabelProvider#getToolTipText(java.lang.Object)

-		 */

-		@Override

-		public String getToolTipText(Object element) {

-			final EObject domainObject = (EObject) element;

-

-			final StringBuffer tooltip = new StringBuffer();

-			final VDiagnostic vDiagnostic = getControl().getDiagnostic();

-			final List<Diagnostic> diagnostics = vDiagnostic.getDiagnostic(domainObject, feature);

-			for (final Diagnostic diagnostic : diagnostics) {

-				if (tooltip.length() > 0) {

-					tooltip.append("\n"); //$NON-NLS-1$

-				}

-				tooltip.append(diagnostic.getMessage());

-			}

-			return tooltip.toString();

-

-			// final VDiagnostic vDiagnostic = getControl().getDiagnostic();

-			// for (final Object diagObject : vDiagnostic.getDiagnostics()) {

-			// final Diagnostic diagnostic = (Diagnostic) diagObject;

-			// if (diagnostic.getData().size() < 2) {

-			// continue;

-			// }

-			// if (diagnostic.getData().get(0).equals(element) && diagnostic.getData().get(1).equals(feature)) {

-			//

-			// if (diagnostic.getChildren() != null && diagnostic.getChildren().size() != 0) {

-			// boolean childrenUsefull = false;

-			// for (final Diagnostic diagnostic2 : diagnostic.getChildren()) {

-			// if (diagnostic2.getSeverity() != Diagnostic.OK) {

-			// if (tooltip.length() > 0) {

-			//									tooltip.append("\n"); //$NON-NLS-1$

-			// }

-			// tooltip.append(diagnostic2.getMessage());

-			// childrenUsefull = true;

-			// }

-			// }

-			// if (!childrenUsefull) {

-			// if (tooltip.length() > 0) {

-			//								tooltip.append("\n"); //$NON-NLS-1$

-			// }

-			// tooltip.append(diagnostic.getMessage());

-			// }

-			// } else {

-			// if (tooltip.length() > 0) {

-			//							tooltip.append("\n"); //$NON-NLS-1$

-			// }

-			// tooltip.append(diagnostic.getMessage());

-			// }

-			// }

-			// }

-			// if (tooltip.length() != 0) {

-			// return tooltip.toString();

-			// }

-			// final Object value = ((EObject) element).eGet(feature);

-			// if (value == null) {

-			// return null;

-			// }

-			// return String.valueOf(value);

-		}

-

-		@Override

-		public void update(ViewerCell cell) {

-			final EObject element = (EObject) cell.getElement();

-			final Object value = attributeMaps[0].get(element);

-

-			if (ECPCellEditor.class.isInstance(cellEditor)) {

-				final ECPCellEditor ecpCellEditor = (ECPCellEditor) cellEditor;

-				final String text = ecpCellEditor.getFormatedString(value);

-				cell.setText(text == null ? "" : text); //$NON-NLS-1$

-				cell.setImage(ecpCellEditor.getImage(value));

-			} else {

-				cell.setText(value == null ? "" : value.toString()); //$NON-NLS-1$

-				cell.getControl().setData(CUSTOM_VARIANT, "org_eclipse_emf_ecp_edit_cellEditor_string"); //$NON-NLS-1$

-			}

-

-			cell.setBackground(getBackground(element));

-		}

-

-		/**

-		 * {@inheritDoc}

-		 *

-		 * @see org.eclipse.jface.viewers.IColorProvider#getForeground(java.lang.Object)

-		 */

-		@Override

-		public Color getForeground(Object element) {

-			return null;

-		}

-

-		/**

-		 * {@inheritDoc}

-		 *

-		 * @see org.eclipse.jface.viewers.IColorProvider#getBackground(java.lang.Object)

-		 */

-		@Override

-		public Color getBackground(Object element) {

-			if (isDisposing) {

-				return null;

-			}

-

-			final Integer mostSevere = Diagnostic.OK;

-			final VDiagnostic vDiagnostic = getControl().getDiagnostic();

-			// for (final Object diagObject : vDiagnostic.getDiagnostics()) {

-			// final Diagnostic diagnostic = (Diagnostic) diagObject;

-			// if (diagnostic.getData().size() < 2) {

-			// continue;

-			// }

-			// if (diagnostic.getData().get(0).equals(element) && diagnostic.getData().get(1).equals(feature)) {

-			// final int currentSeverity = diagnostic.getSeverity();

-			// if (currentSeverity > mostSevere) {

-			// mostSevere = currentSeverity;

-			// }

-			// }

-			// }

-			final List<Diagnostic> diagnostic = vDiagnostic.getDiagnostic((EObject) element, feature);

-			return getValidationBackgroundColor(diagnostic.size() == 0 ? Diagnostic.OK : diagnostic.get(0)

-				.getSeverity());

-		}

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * @see org.eclipse.emf.ecp.edit.internal.swt.util.SWTControl#getUnsetLabelText()

-	 */

-	@Override

-	protected String getUnsetLabelText() {

-		return ControlMessages.TableControl_NotSetClickToSet;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * @see org.eclipse.emf.ecp.edit.internal.swt.util.SWTControl#getUnsetButtonTooltip()

-	 */

-	@Override

-	protected String getUnsetButtonTooltip() {

-		return ControlMessages.TableControl_Unset;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * @see org.eclipse.emf.ecp.edit.internal.swt.util.SWTControl#getControlForTooltip()

-	 */

-	@Override

-	protected Control[] getControlsForTooltip() {

-		// return new Control[] { tableViewer.getControl() };

-		return new Control[0];

-	}

-

-	/**

-	 * {@inheritDoc}

-	 *

-	 * @deprecated

-	 */

-	@Override

-	@Deprecated

-	public boolean showLabel() {

-		return false;

-	}

-

-	/**

-	 * Implementation of the {@link EditingSupport} for the generic ECP Table.

-	 *

-	 * @author Eugen Neufeld

-	 *

-	 */

-	private class ECPTableEditingSupport extends EditingSupport {

-

-		private final CellEditor cellEditor;

-

-		private final EStructuralFeature cellFeature;

-

-		/**

-		 * @param viewer

-		 */

-		public ECPTableEditingSupport(ColumnViewer viewer, CellEditor cellEditor, EStructuralFeature feature) {

-			super(viewer);

-			this.cellEditor = cellEditor;

-			cellFeature = feature;

-		}

-

-		private EditingState editingState;

-

-		private final ColumnViewerEditorActivationListenerHelper activationListener = new ColumnViewerEditorActivationListenerHelper();

-

-		/**

-		 * Default implementation always returns <code>true</code>.

-		 *

-		 * @see org.eclipse.jface.viewers.EditingSupport#canEdit(java.lang.Object)

-		 */

-		@Override

-		protected boolean canEdit(Object element) {

-			if (ECPCellEditor.class.isInstance(cellEditor)) {

-				ECPCellEditor.class.cast(cellEditor).setEditable(editable);

-				return true;

-			}

-			return editable;

-		}

-

-		/**

-		 * Default implementation always returns <code>null</code> as this will be

-		 * handled by the Binding.

-		 *

-		 * @see org.eclipse.jface.viewers.EditingSupport#getValue(java.lang.Object)

-		 */

-		@Override

-		protected Object getValue(Object element) {

-			// no op

-			return null;

-		}

-

-		/**

-		 * Default implementation does nothing as this will be handled by the

-		 * Binding.

-		 *

-		 * @see org.eclipse.jface.viewers.EditingSupport#setValue(java.lang.Object, java.lang.Object)

-		 */

-		@Override

-		protected void setValue(Object element, Object value) {

-			// no op

-		}

-

-		/**

-		 * Creates a {@link Binding} between the editor and the element to be

-		 * edited. Invokes {@link #doCreateCellEditorObservable(CellEditor)},

-		 * {@link #doCreateElementObservable(Object, ViewerCell)}, and then

-		 * {@link #createBinding(IObservableValue, IObservableValue)}.

-		 */

-		@Override

-		protected void initializeCellEditorValue(CellEditor cellEditor, ViewerCell cell) {

-

-			final IObservableValue target = doCreateCellEditorObservable(cellEditor);

-			Assert.isNotNull(target, "doCreateCellEditorObservable(...) did not return an observable"); //$NON-NLS-1$

-

-			final IObservableValue model = doCreateElementObservable(cell.getElement(), cell);

-			Assert.isNotNull(model, "doCreateElementObservable(...) did not return an observable"); //$NON-NLS-1$

-

-			final Binding binding = createBinding(target, model);

-

-			Assert.isNotNull(binding, "createBinding(...) did not return a binding"); //$NON-NLS-1$

-

-			editingState = new EditingState(binding, target, model);

-

-			getViewer().getColumnViewerEditor().addEditorActivationListener(activationListener);

-		}

-

-		@Override

-		protected CellEditor getCellEditor(Object element) {

-			return cellEditor;

-		}

-

-		protected Binding createBinding(IObservableValue target, IObservableValue model) {

-			if (ECPCellEditor.class.isInstance(cellEditor)) {

-				return getDataBindingContext().bindValue(target, model,

-					((ECPCellEditor) cellEditor).getTargetToModelStrategy(),

-					((ECPCellEditor) cellEditor).getModelToTargetStrategy());

-			}

-			return getDataBindingContext().bindValue(target, model);

-		}

-

-		protected IObservableValue doCreateElementObservable(Object element, ViewerCell cell) {

-			return EMFEditObservables.observeValue(getEditingDomain(),

-				(EObject) element, cellFeature);

-		}

-

-		protected IObservableValue doCreateCellEditorObservable(CellEditor cellEditor) {

-			if (ECPCellEditor.class.isInstance(cellEditor)) {

-				return ((ECPCellEditor) cellEditor).getValueProperty().observe(cellEditor);

-			}

-			return SWTObservables.observeText(cellEditor.getControl(), SWT.FocusOut);

-		}

-

-		@Override

-		protected final void saveCellEditorValue(CellEditor cellEditor, ViewerCell cell) {

-			editingState.binding.updateTargetToModel();

-		}

-

-		class ColumnViewerEditorActivationListenerHelper extends ColumnViewerEditorActivationListener {

-

-			@Override

-			public void afterEditorActivated(ColumnViewerEditorActivationEvent event) {

-				// do nothing

-			}

-

-			@Override

-			public void afterEditorDeactivated(ColumnViewerEditorDeactivationEvent event) {

-				editingState.dispose();

-				editingState = null;

-

-				getViewer().getColumnViewerEditor().removeEditorActivationListener(this);

-				final ViewerCell focusCell = getViewer().getColumnViewerEditor().getFocusCell();

-				if (focusCell != null) {

-					getViewer().update(focusCell.getElement(), null);

-				}

-			}

-

-			@Override

-			public void beforeEditorActivated(ColumnViewerEditorActivationEvent event) {

-				// do nothing

-			}

-

-			@Override

-			public void beforeEditorDeactivated(ColumnViewerEditorDeactivationEvent event) {

-				// do nothing

-			}

-		}

-

-		/**

-		 * Maintains references to objects that only live for the length of the edit

-		 * cycle.

-		 */

-		class EditingState {

-			private final IObservableValue target;

-

-			private final IObservableValue model;

-

-			private final Binding binding;

-

-			EditingState(Binding binding, IObservableValue target, IObservableValue model) {

-				this.binding = binding;

-				this.target = target;

-				this.model = model;

-			}

-

-			void dispose() {

-				binding.dispose();

-				target.dispose();

-				model.dispose();

-			}

-		}

-	}

-

-}

+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.emf.ecp.edit.internal.swt.controls;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.databinding.Binding;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.map.IObservableMap;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.databinding.EMFProperties;
+import org.eclipse.emf.databinding.EObjectObservableMap;
+import org.eclipse.emf.databinding.edit.EMFEditObservables;
+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.ecp.edit.internal.swt.Activator;
+import org.eclipse.emf.ecp.edit.internal.swt.table.TableColumnConfiguration;
+import org.eclipse.emf.ecp.edit.internal.swt.table.TableControlConfiguration;
+import org.eclipse.emf.ecp.edit.internal.swt.util.CellEditorFactory;
+import org.eclipse.emf.ecp.edit.internal.swt.util.SWTControl;
+import org.eclipse.emf.ecp.edit.internal.swt.util.SWTRenderingHelper;
+import org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor;
+import org.eclipse.emf.ecp.edit.spi.swt.util.ECPDialogExecutor;
+import org.eclipse.emf.ecp.view.spi.model.VDiagnostic;
+import org.eclipse.emf.ecp.view.spi.renderer.RenderingResultRow;
+import org.eclipse.emf.edit.command.AddCommand;
+import org.eclipse.emf.edit.command.RemoveCommand;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
+import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
+import org.eclipse.jface.databinding.viewers.ObservableMapCellLabelProvider;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.dialogs.IDialogLabelKeys;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.jface.layout.GridLayoutFactory;
+import org.eclipse.jface.layout.TableColumnLayout;
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jface.viewers.CellLabelProvider;
+import org.eclipse.jface.viewers.ColumnViewer;
+import org.eclipse.jface.viewers.ColumnViewerEditor;
+import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
+import org.eclipse.jface.viewers.ColumnViewerEditorActivationListener;
+import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
+import org.eclipse.jface.viewers.ColumnViewerEditorDeactivationEvent;
+import org.eclipse.jface.viewers.ColumnViewerToolTipSupport;
+import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.viewers.EditingSupport;
+import org.eclipse.jface.viewers.IColorProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TableViewerColumn;
+import org.eclipse.jface.viewers.TableViewerEditor;
+import org.eclipse.jface.viewers.TableViewerFocusCellManager;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerCell;
+import org.eclipse.jface.viewers.ViewerComparator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.TableColumn;
+
+/**
+ * The class describing a table control.
+ *
+ * @author Eugen Neufeld
+ * @author emueller
+ */
+// this class is not serialized
+@Deprecated
+public class TableControl extends SWTControl {
+
+	private static final String FIXED_COLUMNS = "org.eclipse.rap.rwt.fixedColumns"; //$NON-NLS-1$
+
+	private static final String ICON_ADD = "icons/add.png"; //$NON-NLS-1$
+	private static final String ICONS_UNSET_REFERENCE = "icons/unset_reference.png"; //$NON-NLS-1$
+	private static final String ICONS_UNSET_FEATURE = "icons/unset_feature.png"; //$NON-NLS-1$
+
+	private TableViewer tableViewer;
+	private ComposedAdapterFactory composedAdapterFactory;
+	private AdapterFactoryItemDelegator adapterFactoryItemDelegator;
+	private Button unsetButton;
+	private EClass clazz;
+	private TableControlConfiguration tableControlConfiguration;
+	private boolean editable = true;
+
+	private EReference getTableReference() {
+		return (EReference) getFirstStructuralFeature();
+	}
+
+	/**
+	 *
+	 * @param tableControlConfiguration the {@link TableControlConfiguration} to use when creating the table
+	 */
+	public final void setTableControlConfiguration(TableControlConfiguration tableControlConfiguration) {
+		this.tableControlConfiguration = tableControlConfiguration;
+	}
+
+	@Override
+	protected Binding bindValue() {
+		return null;
+	}
+
+	/**
+	 *
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.edit.internal.swt.util.ECPControlSWT#createControls(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	public List<RenderingResultRow<Control>> createControls(final Composite parent) {
+		final IItemPropertyDescriptor itemPropertyDescriptor = getItemPropertyDescriptor(getFirstSetting());
+		if (itemPropertyDescriptor == null) {
+			return null;
+		}
+		parent.addDisposeListener(new DisposeListener() {
+
+			@Override
+			public void widgetDisposed(DisposeEvent e) {
+				dispose();
+			}
+		});
+		final List<RenderingResultRow<Control>> list = Collections.singletonList(SWTRenderingHelper.INSTANCE
+			.getResultRowFactory().createRenderingResultRow(
+				createControl(parent)));
+
+		applyValidation(getControl().getDiagnostic());
+		return list;
+
+	}
+
+	@Override
+	public Composite createControl(final Composite parent) {
+		mainSetting = getFirstSetting();
+		composedAdapterFactory = new ComposedAdapterFactory(new AdapterFactory[] {
+			new ReflectiveItemProviderAdapterFactory(),
+			new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE) });
+
+		adapterFactoryItemDelegator = new AdapterFactoryItemDelegator(composedAdapterFactory);
+
+		clazz = getTableReference().getEReferenceType();
+
+		final Composite composite = new Composite(parent, SWT.NONE);
+		composite.setLayout(new GridLayout(1, false));
+		composite.setBackground(parent.getBackground());
+
+		final Composite titleComposite = new Composite(composite, SWT.NONE);
+		titleComposite.setBackground(parent.getBackground());
+		GridDataFactory.fillDefaults().grab(true, false).align(SWT.FILL, SWT.BEGINNING)
+			.applyTo(titleComposite);
+		GridLayoutFactory.fillDefaults().numColumns(3).equalWidth(false).applyTo(titleComposite);
+
+		final Label label = new Label(titleComposite, SWT.NONE);
+		label.setBackground(parent.getBackground());
+		label.setText(getItemPropertyDescriptor(mainSetting).getDisplayName(null));
+		GridDataFactory.fillDefaults().align(SWT.FILL, SWT.BEGINNING).grab(true, false).applyTo(label);
+
+		// VALIDATION
+		validationLabel = new Label(titleComposite, SWT.NONE);
+		validationLabel.setBackground(parent.getBackground());
+		// set the size of the label to the size of the image
+		GridDataFactory.fillDefaults().hint(16, 17).applyTo(validationLabel);
+
+		boolean createButtons = true;
+		if (tableControlConfiguration != null) {
+			createButtons = !tableControlConfiguration.isAddRemoveDisabled();
+		}
+		if (createButtons) {
+			// addButtons
+			final Composite buttonComposite = new Composite(titleComposite, SWT.NONE);
+			GridDataFactory.fillDefaults().align(SWT.END, SWT.BEGINNING).grab(true, false).applyTo(buttonComposite);
+			int numButtons = 2;
+
+			createAddRowButton(clazz, buttonComposite);
+			createRemoveRowButton(clazz, buttonComposite);
+			if (!isEmbedded() && getTableReference().isUnsettable()) {
+				unsetButton = new Button(buttonComposite, SWT.PUSH);
+				unsetButton.setToolTipText(getUnsetButtonTooltip());
+				unsetButton.setImage(Activator.getImage(ICONS_UNSET_FEATURE));
+				numButtons++;
+			}
+			GridLayoutFactory.fillDefaults().numColumns(numButtons).equalWidth(true).applyTo(buttonComposite);
+		}
+		final Composite controlComposite = new Composite(composite, SWT.NONE);
+		GridDataFactory.fillDefaults().grab(true, true).align(SWT.FILL,
+			SWT.FILL).applyTo(controlComposite);
+		GridLayoutFactory.fillDefaults().numColumns(1).applyTo(controlComposite);
+
+		// delegate to super class
+		createContentControl(controlComposite);
+
+		return composite;
+	}
+
+	private TableViewer createTableViewer(Composite parent) {
+		final TableViewer tableViewer = new TableViewer(parent, SWT.MULTI | SWT.V_SCROLL | SWT.FULL_SELECTION
+			| SWT.BORDER);
+		tableViewer.getTable().setData(CUSTOM_VARIANT, "org_eclipse_emf_ecp_control_table"); //$NON-NLS-1$
+		tableViewer.getTable().setHeaderVisible(true);
+		tableViewer.getTable().setLinesVisible(true);
+
+		final TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(tableViewer,
+			new ECPFocusCellDrawHighlighter(tableViewer));
+		final ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(tableViewer) {
+			@Override
+			protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
+				return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
+					|| event.eventType == ColumnViewerEditorActivationEvent.MOUSE_CLICK_SELECTION
+					|| event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR
+					|| event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
+			}
+		};
+
+		TableViewerEditor.create(tableViewer, focusCellManager, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL
+			| ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.TABBING_VERTICAL
+			| ColumnViewerEditor.KEYBOARD_ACTIVATION);
+
+		tableViewer.getTable().setData(FIXED_COLUMNS, new Integer(1));
+		ColumnViewerToolTipSupport.enableFor(tableViewer);
+
+		return tableViewer;
+	}
+
+	private void createFixedValidationStatusColumn(TableViewer tableViewer,
+		final List<EStructuralFeature> structuralFeatures) {
+		final TableViewerColumn column = TableViewerColumnBuilder
+			.create()
+			.setMoveable(false)
+			.setText(
+				LocalizationServiceHelper.getString(getClass(),
+					DepricatedControlMessageKeys.TableControl_ValidationStatusColumn))
+			.setWidth(80)
+			.build(tableViewer);
+
+		column.setLabelProvider(new ValidationStatusCellLabelProvider(structuralFeatures));
+	}
+
+	private EObject getInstanceOf(EClass clazz) {
+		return clazz.getEPackage().getEFactoryInstance().create(clazz);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see
+	 * org.eclipse.emf.ecp.edit.internal.swt.util.SWTControl#fillControlComposite(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	protected void fillControlComposite(Composite parent) {
+		final Composite composite = new Composite(parent, SWT.NONE);
+		GridDataFactory.fillDefaults().grab(true, true).align(SWT.FILL, SWT.FILL).hint(1, 200).applyTo(composite);
+		tableViewer = createTableViewer(composite);
+
+		final ObservableListContentProvider cp = new ObservableListContentProvider();
+		final EObject tempInstance = getInstanceOf(clazz);
+		final ECPTableViewerComparator comparator = new ECPTableViewerComparator();
+		tableViewer.setComparator(comparator);
+		int columnNumber = 0;
+		final Map<EStructuralFeature, Boolean> readOnlyConfig = createReadOnlyConfig(clazz);
+		final List<EStructuralFeature> structuralFeatures = new ArrayList<EStructuralFeature>();
+		structuralFeatures.addAll(readOnlyConfig.keySet());
+		if (!getControl().isReadonly()) {
+			createFixedValidationStatusColumn(tableViewer, structuralFeatures);
+		}
+
+		for (final EStructuralFeature feature : structuralFeatures) {
+			final IItemPropertyDescriptor itemPropertyDescriptor = adapterFactoryItemDelegator.getPropertyDescriptor(
+				tempInstance, feature);
+			if (itemPropertyDescriptor == null) {
+				// if we can't render because no edit information is available, do nothing
+				continue;
+			}
+
+			final CellEditor cellEditor = createCellEditor(tempInstance, feature);
+			final TableViewerColumn column = TableViewerColumnBuilder
+				.create()
+				.setText(itemPropertyDescriptor.getDisplayName(null))
+				.setToolTipText(itemPropertyDescriptor.getDescription(null))
+				.setResizable(true)
+				.setMoveable(false)
+				.setStyle(noStyle())
+				.setData("width", //$NON-NLS-1$
+					ECPCellEditor.class.isInstance(cellEditor) ? ECPCellEditor.class.cast(cellEditor)
+						.getColumnWidthWeight() : 100)
+				.build(tableViewer);
+
+			column.setLabelProvider(new ECPCellLabelProvider(feature, cellEditor,
+				feature.isMany() ? new EObjectObservableMap(cp.getKnownElements(), feature)
+					: EMFProperties.value(feature).observeDetail(cp.getKnownElements())));
+			column.getColumn().addSelectionListener(getSelectionAdapter(comparator, column.getColumn(), columnNumber));
+
+			if (!isReadOnlyFeature(readOnlyConfig, feature)) {
+				// remove if no editing needed
+				final EditingSupport observableSupport = new ECPTableEditingSupport(tableViewer, cellEditor, feature);
+				column.setEditingSupport(observableSupport);
+			}
+			columnNumber++;
+		}
+		tableViewer.setContentProvider(cp);
+		final IObservableList list = EMFEditObservables.observeList(getEditingDomain(mainSetting),
+			mainSetting.getEObject(), mainSetting.getEStructuralFeature());
+		tableViewer.setInput(list);
+
+		// IMPORTANT:
+		// - the minimumWidth and (non)resizable settings of the ColumnWeightData are not supported properly
+		// - the layout stops resizing columns that have been resized manually by the user (this could be considered a
+		// feature though)
+		final TableColumnLayout layout = new TableColumnLayout();
+		composite.setLayout(layout);
+		for (int i = 0; i < tableViewer.getTable().getColumns().length; i++) {
+			final Integer storedValue = (Integer) tableViewer.getTable().getColumns()[i].getData("width"); //$NON-NLS-1$
+			layout.setColumnData(tableViewer.getTable().getColumns()[i], new ColumnWeightData(storedValue == null ? 50
+				: storedValue));
+		}
+	}
+
+	private CellEditor createCellEditor(final EObject tempInstance, final EStructuralFeature feature) {
+		return CellEditorFactory.INSTANCE.getCellEditor(feature,
+			tempInstance, tableViewer.getTable(), getViewModelContext());
+	}
+
+	private static boolean isReadOnlyFeature(Map<EStructuralFeature, Boolean> readOnlyConfig,
+		EStructuralFeature feature) {
+		if (readOnlyConfig != null) {
+			final Boolean isReadOnly = readOnlyConfig.get(feature);
+			if (isReadOnly != null) {
+				return isReadOnly;
+			}
+		}
+		return false;
+	}
+
+	private Map<EStructuralFeature, Boolean> createReadOnlyConfig(EClass clazz) {
+		final Map<EStructuralFeature, Boolean> readOnlyConfig = new LinkedHashMap<EStructuralFeature, Boolean>();
+		if (tableControlConfiguration != null) {
+			for (final TableColumnConfiguration tcc : tableControlConfiguration.getColumns()) {
+				readOnlyConfig.put(tcc.getColumnAttribute(), tcc.isReadOnly());
+			}
+		} else {
+			for (final EStructuralFeature feature : clazz.getEStructuralFeatures()) {
+				readOnlyConfig.put(feature, Boolean.FALSE);
+			}
+		}
+		return readOnlyConfig;
+	}
+
+	private int noStyle() {
+		return SWT.NONE;
+	}
+
+	@Override
+	protected Button getCustomUnsetButton() {
+		return unsetButton;
+	}
+
+	private SelectionAdapter getSelectionAdapter(final ECPTableViewerComparator comparator, final TableColumn column,
+		final int index) {
+		final SelectionAdapter selectionAdapter = new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				comparator.setColumn(index);
+				final int dir = comparator.getDirection();
+				tableViewer.getTable().setSortDirection(dir);
+				tableViewer.getTable().setSortColumn(column);
+				tableViewer.refresh();
+			}
+		};
+		return selectionAdapter;
+	}
+
+	private Button removeButton;
+
+	private void createRemoveRowButton(EClass clazz, final Composite buttonComposite) {
+		removeButton = new Button(buttonComposite, SWT.None);
+		final Image image = Activator.getImage(ICONS_UNSET_REFERENCE);
+		removeButton.setImage(image);
+		removeButton.setToolTipText(LocalizationServiceHelper.getString(getClass(),
+			DepricatedControlMessageKeys.TableControl_RemoveSelected)
+			+ clazz.getInstanceClass().getSimpleName());
+		removeButton.addSelectionListener(new SelectionAdapter() {
+			/*
+			 * (non-Javadoc)
+			 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+			 */
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				final IStructuredSelection selection = (IStructuredSelection) tableViewer.getSelection();
+
+				if (selection == null || selection.getFirstElement() == null) {
+					return;
+				}
+
+				final List<EObject> deletionList = new ArrayList<EObject>();
+				final Iterator<?> iterator = selection.iterator();
+
+				while (iterator.hasNext()) {
+					deletionList.add((EObject) iterator.next());
+				}
+
+				deleteRowUserConfirmDialog(deletionList);
+
+			}
+		});
+
+		final List<?> containments = (List<?>) mainSetting.get(true);
+		if (containments.size() <= getTableReference().getLowerBound()) {
+			removeButton.setEnabled(false);
+		}
+	}
+
+	/**
+	 * This method shows a user confirmation dialog when the user attempts to delete a row in the table.
+	 *
+	 * @param deletionList the list of selected EObjects to delete
+	 */
+	protected void deleteRowUserConfirmDialog(final List<EObject> deletionList) {
+		final MessageDialog dialog = new MessageDialog(
+			tableViewer.getTable().getShell(),
+			LocalizationServiceHelper.getString(getClass(), DepricatedControlMessageKeys.TableControl_Delete),
+			null,
+			LocalizationServiceHelper.getString(getClass(), DepricatedControlMessageKeys.TableControl_DeleteAreYouSure),
+			MessageDialog.CONFIRM, new String[] {
+				JFaceResources.getString(IDialogLabelKeys.YES_LABEL_KEY),
+				JFaceResources.getString(IDialogLabelKeys.NO_LABEL_KEY) },
+			0);
+
+		new ECPDialogExecutor(dialog) {
+
+			@Override
+			public void handleResult(int codeResult) {
+				if (codeResult == IDialogConstants.CANCEL_ID) {
+					return;
+				}
+
+				deleteRows(deletionList);
+
+				final List<?> containments = (List<?>) mainSetting.get(true);
+				if (containments.size() < getTableReference().getUpperBound()) {
+					addButton.setEnabled(true);
+				}
+				if (containments.size() <= getTableReference().getLowerBound()) {
+					removeButton.setEnabled(false);
+				}
+			}
+		}.execute();
+	}
+
+	/**
+	 * This is called by {@link #deleteRowUserConfirmDialog(List)} after the user confirmed to delete the selected
+	 * elements.
+	 *
+	 * @param deletionList the list of {@link EObject EObjects} to delete
+	 */
+	protected void deleteRows(List<EObject> deletionList) {
+		final EditingDomain editingDomain = getEditingDomain(mainSetting);
+		final EObject modelElement = mainSetting.getEObject();
+		editingDomain.getCommandStack().execute(
+			RemoveCommand.create(editingDomain, modelElement, getTableReference(), deletionList));
+	}
+
+	/**
+	 * This method is called to add a new entry in the domain model and thus to create a new row in the table. The
+	 * element to create is defined by the provided class.
+	 * You can override this method but you have to call super nonetheless.
+	 *
+	 * @param clazz the {@link EClass} defining the EObject to create
+	 */
+	protected void addRow(EClass clazz) {
+		final EObject modelElement = mainSetting.getEObject();
+		final EObject instance = clazz.getEPackage().getEFactoryInstance().create(clazz);
+
+		final EditingDomain editingDomain = getEditingDomain(mainSetting);
+		editingDomain.getCommandStack().execute(
+			AddCommand.create(editingDomain, modelElement, getTableReference(), instance));
+
+	}
+
+	private Button addButton;
+	private Setting mainSetting;
+
+	private boolean isDisposing;
+
+	private void createAddRowButton(final EClass clazz, final Composite buttonComposite) {
+		addButton = new Button(buttonComposite, SWT.None);
+		final Image image = Activator.getImage(ICON_ADD);
+		addButton.setImage(image);
+		addButton.setToolTipText(LocalizationServiceHelper.getString(getClass(),
+			DepricatedControlMessageKeys.TableControl_AddInstanceOf) + clazz.getInstanceClass().getSimpleName());
+		addButton.addSelectionListener(new SelectionAdapter() {
+
+			/*
+			 * (non-Javadoc)
+			 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+			 */
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				addRow(clazz);
+
+				final List<?> containments = (List<?>) mainSetting.get(true);
+				if (getTableReference().getUpperBound() != -1
+					&& containments.size() >= getTableReference().getUpperBound()) {
+					addButton.setEnabled(false);
+				}
+				if (containments.size() > getTableReference().getLowerBound()) {
+					removeButton.setEnabled(true);
+				}
+			}
+		});
+
+		final List<?> containments = (List<?>) mainSetting.get(true);
+		if (getTableReference().getUpperBound() != -1
+			&& containments.size() >= getTableReference().getUpperBound()) {
+			addButton.setEnabled(false);
+		}
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public void dispose() {
+		isDisposing = true;
+		super.dispose();
+		composedAdapterFactory.dispose();
+		mainSetting = null;
+		adapterFactoryItemDelegator = null;
+		composedAdapterFactory = null;
+		isDisposing = false;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.edit.spi.ECPAbstractControl#applyValidation(org.eclipse.emf.ecp.view.spi.model.VDiagnostic)
+	 */
+	@Override
+	protected void applyValidation(VDiagnostic diagnostic) {
+
+		if (validationLabel == null || validationLabel.isDisposed()) {
+			return;
+		}
+		if (diagnostic != null) {
+			final Image image = getValidationIcon(diagnostic.getHighestSeverity());
+			validationLabel.setImage(image);
+			validationLabel.setToolTipText(diagnostic.getMessage());
+			for (final Object object : (Collection<?>) mainSetting.get(true)) {
+				tableViewer.update(object, null);
+			}
+		}
+	}
+
+	// /**
+	// * {@inheritDoc}
+	// *
+	// * @deprecated
+	// */
+	// @Deprecated
+	// @Override
+	// public void resetValidation() {
+	// if (validationLabel == null || validationLabel.isDisposed()) {
+	// return;
+	// }
+	// validationLabel.setToolTipText(""); //$NON-NLS-1$
+	// validationLabel.setImage(null);
+	// tableViewer.refresh();
+	// }
+	// /**
+	// * {@inheritDoc}
+	// *
+	// * @deprecated
+	// */
+	// @Deprecated
+	// @Override
+	// public void handleValidation(Diagnostic diagnostic) {
+	// if (diagnostic.getData().isEmpty()) {
+	// return;
+	// }
+	// final Image image = getValidationIcon(diagnostic.getSeverity());
+	// validationLabel.setImage(image);
+	// validationLabel.setToolTipText(getTableTooltipMessage(diagnostic));
+	// final EObject object = (EObject) diagnostic.getData().get(0);
+	// tableViewer.update(object, null);
+	// }
+
+	/**
+	 * Returns the message of the validation tool tip shown in the table header.
+	 *
+	 * @param diagnostic the {@link Diagnostic} to extract the message from
+	 * @return the message
+	 */
+	protected String getTableTooltipMessage(Diagnostic diagnostic) {
+		return diagnostic.getMessage();
+	}
+
+	/**
+	 * Returns the message of the validation tool tip shown in the row.
+	 *
+	 * @param vDiagnostic the {@link VDiagnostic} to get the message from
+	 * @return the message
+	 */
+	protected String getRowTooltipMessage(VDiagnostic vDiagnostic) {
+		return vDiagnostic.getMessage();
+	}
+
+	/**
+	 * Returns the message of the validation tool tip shown in the cell.
+	 *
+	 * @param vDiagnostic the {@link VDiagnostic} to get the message from
+	 * @return the message
+	 */
+	protected String getCellTooltipMessage(VDiagnostic vDiagnostic) {
+		if (vDiagnostic == null) {
+			return null;
+		}
+		if (vDiagnostic.getDiagnostics().size() == 0) {
+			return vDiagnostic.getMessage();
+		}
+		final Diagnostic diagnostic = (Diagnostic) vDiagnostic.getDiagnostics().get(0);
+		Diagnostic reason = diagnostic;
+		if (diagnostic.getChildren() != null && diagnostic.getChildren().size() != 0) {
+			reason = diagnostic.getChildren().get(0);
+		}
+		return reason.getMessage();
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @deprecated
+	 */
+	@Deprecated
+	@Override
+	public void setEditable(boolean isEditable) {
+		if (addButton != null) {
+			addButton.setVisible(isEditable);
+		}
+		if (removeButton != null) {
+			removeButton.setVisible(isEditable);
+		}
+		editable = isEditable;
+	}
+
+	/**
+	 * @author Jonas
+	 *
+	 */
+	private final class ValidationStatusCellLabelProvider extends CellLabelProvider {
+		private final List<EStructuralFeature> structuralFeatures;
+
+		/**
+		 * @param structuralFeatures
+		 */
+		private ValidationStatusCellLabelProvider(List<EStructuralFeature> structuralFeatures) {
+			this.structuralFeatures = structuralFeatures;
+		}
+
+		@Override
+		public void update(ViewerCell cell) {
+			Integer mostSevere = Diagnostic.OK;
+			final VDiagnostic vDiagnostic = getControl().getDiagnostic();
+			// for (final Object diagObject : vDiagnostic.getDiagnostics()) {
+			// final Diagnostic diagnostic = (Diagnostic) diagObject;
+			// if (diagnostic.getData().size() == 0) {
+			// continue;
+			// }
+			// if (diagnostic.getData().get(0).equals(cell.getElement())) {
+			// final int currentSeverity = diagnostic.getSeverity();
+			// if (currentSeverity > mostSevere) {
+			// mostSevere = currentSeverity;
+			// }
+			// }
+			// }
+			final List<Diagnostic> diagnostics = vDiagnostic.getDiagnostics((EObject) cell.getElement());
+			if (diagnostics.size() != 0) {
+				mostSevere = diagnostics.get(0).getSeverity();
+			}
+			cell.setImage(getValidationIcon(mostSevere));
+		}
+
+		@Override
+		public String getToolTipText(Object element) {
+			final StringBuffer tooltip = new StringBuffer();
+			final VDiagnostic vDiagnostic = getControl().getDiagnostic();
+			// for (final Object diagObject : vDiagnostic.getDiagnostics()) {
+			// final Diagnostic diagnostic = (Diagnostic) diagObject;
+			// if (diagnostic.getData().size() < 2) {
+			// continue;
+			// }
+			// if (diagnostic.getSeverity() == Diagnostic.OK) {
+			// continue;
+			// }
+			// if (diagnostic.getData().get(0).equals(element)
+			// && structuralFeatures.contains(diagnostic.getData().get(1))) {
+			// if (tooltip.length() > 0) {
+			// tooltip.append("\n"); //$NON-NLS-1$
+			// }
+			// tooltip.append(diagnostic.getMessage());
+			// }
+			// }
+
+			final List<Diagnostic> diagnostics = vDiagnostic.getDiagnostics((EObject) element);
+			for (final Diagnostic diagnostic : diagnostics) {
+				if (tooltip.length() > 0) {
+					tooltip.append("\n"); //$NON-NLS-1$
+				}
+				tooltip.append(diagnostic.getMessage());
+			}
+
+			return tooltip.toString();
+		}
+	}
+
+	/**
+	 * The {@link ViewerComparator} for this table which allows 3 states for sort order:
+	 * none, up and down.
+	 *
+	 * @author Eugen Neufeld
+	 *
+	 */
+	private class ECPTableViewerComparator extends ViewerComparator {
+		private int propertyIndex;
+		private static final int NONE = 0;
+		private int direction = NONE;
+
+		public ECPTableViewerComparator() {
+			propertyIndex = 0;
+			direction = NONE;
+		}
+
+		public int getDirection() {
+			switch (direction) {
+			case 0:
+				return SWT.NONE;
+			case 1:
+				return SWT.UP;
+			case 2:
+				return SWT.DOWN;
+			default:
+				return SWT.NONE;
+			}
+
+		}
+
+		public void setColumn(int column) {
+			if (column == propertyIndex) {
+				// Same column as last sort; toggle the direction
+				direction = (direction + 1) % 3;
+			} else {
+				// New column; do an ascending sort
+				propertyIndex = column;
+				direction = 1;
+			}
+		}
+
+		@Override
+		public int compare(Viewer viewer, Object e1, Object e2) {
+			if (direction == 0) {
+				return 0;
+			}
+			int rc = 0;
+			final EObject object1 = (EObject) e1;
+			final EObject object2 = (EObject) e2;
+			final EStructuralFeature feat1 = object1.eClass().getEAllStructuralFeatures().get(propertyIndex);
+			final EStructuralFeature feat2 = object2.eClass().getEAllStructuralFeatures().get(propertyIndex);
+
+			final Object value1 = object1.eGet(feat1);
+			final Object value2 = object2.eGet(feat2);
+
+			if (value1 == null) {
+				rc = 1;
+			} else if (value2 == null) {
+				rc = -1;
+			} else {
+				rc = value1.toString().compareTo(value2.toString());
+			}
+			// If descending order, flip the direction
+			if (direction == 2) {
+				rc = -rc;
+			}
+			return rc;
+		}
+	}
+
+	/**
+	 * ECP specficic cell label provider that does also implement {@link IColorProvider} in
+	 * order to correctly.
+	 *
+	 * @author emueller
+	 *
+	 */
+	public class ECPCellLabelProvider extends ObservableMapCellLabelProvider implements IColorProvider {
+
+		private final EStructuralFeature feature;
+		private final CellEditor cellEditor;
+
+		/**
+		 * Constructor.
+		 *
+		 * @param feature
+		 *            the {@link EStructuralFeature} the cell is bound to
+		 * @param cellEditor
+		 *            the {@link CellEditor} instance
+		 * @param attributeMap
+		 *            an {@link IObservableMap} instance that is passed to the {@link ObservableMapCellLabelProvider}
+		 */
+		public ECPCellLabelProvider(EStructuralFeature feature, CellEditor cellEditor, IObservableMap attributeMap) {
+			super(attributeMap);
+			this.feature = feature;
+			this.cellEditor = cellEditor;
+		}
+
+		/**
+		 * {@inheritDoc}
+		 *
+		 * @see org.eclipse.jface.viewers.CellLabelProvider#getToolTipText(java.lang.Object)
+		 */
+		@Override
+		public String getToolTipText(Object element) {
+			final EObject domainObject = (EObject) element;
+
+			final StringBuffer tooltip = new StringBuffer();
+			final VDiagnostic vDiagnostic = getControl().getDiagnostic();
+			final List<Diagnostic> diagnostics = vDiagnostic.getDiagnostic(domainObject, feature);
+			for (final Diagnostic diagnostic : diagnostics) {
+				if (tooltip.length() > 0) {
+					tooltip.append("\n"); //$NON-NLS-1$
+				}
+				tooltip.append(diagnostic.getMessage());
+			}
+			return tooltip.toString();
+
+			// final VDiagnostic vDiagnostic = getControl().getDiagnostic();
+			// for (final Object diagObject : vDiagnostic.getDiagnostics()) {
+			// final Diagnostic diagnostic = (Diagnostic) diagObject;
+			// if (diagnostic.getData().size() < 2) {
+			// continue;
+			// }
+			// if (diagnostic.getData().get(0).equals(element) && diagnostic.getData().get(1).equals(feature)) {
+			//
+			// if (diagnostic.getChildren() != null && diagnostic.getChildren().size() != 0) {
+			// boolean childrenUsefull = false;
+			// for (final Diagnostic diagnostic2 : diagnostic.getChildren()) {
+			// if (diagnostic2.getSeverity() != Diagnostic.OK) {
+			// if (tooltip.length() > 0) {
+			// tooltip.append("\n"); //$NON-NLS-1$
+			// }
+			// tooltip.append(diagnostic2.getMessage());
+			// childrenUsefull = true;
+			// }
+			// }
+			// if (!childrenUsefull) {
+			// if (tooltip.length() > 0) {
+			// tooltip.append("\n"); //$NON-NLS-1$
+			// }
+			// tooltip.append(diagnostic.getMessage());
+			// }
+			// } else {
+			// if (tooltip.length() > 0) {
+			// tooltip.append("\n"); //$NON-NLS-1$
+			// }
+			// tooltip.append(diagnostic.getMessage());
+			// }
+			// }
+			// }
+			// if (tooltip.length() != 0) {
+			// return tooltip.toString();
+			// }
+			// final Object value = ((EObject) element).eGet(feature);
+			// if (value == null) {
+			// return null;
+			// }
+			// return String.valueOf(value);
+		}
+
+		@Override
+		public void update(ViewerCell cell) {
+			final EObject element = (EObject) cell.getElement();
+			final Object value = attributeMaps[0].get(element);
+
+			if (ECPCellEditor.class.isInstance(cellEditor)) {
+				final ECPCellEditor ecpCellEditor = (ECPCellEditor) cellEditor;
+				final String text = ecpCellEditor.getFormatedString(value);
+				cell.setText(text == null ? "" : text); //$NON-NLS-1$
+				cell.setImage(ecpCellEditor.getImage(value));
+			} else {
+				cell.setText(value == null ? "" : value.toString()); //$NON-NLS-1$
+				cell.getControl().setData(CUSTOM_VARIANT, "org_eclipse_emf_ecp_edit_cellEditor_string"); //$NON-NLS-1$
+			}
+
+			cell.setBackground(getBackground(element));
+		}
+
+		/**
+		 * {@inheritDoc}
+		 *
+		 * @see org.eclipse.jface.viewers.IColorProvider#getForeground(java.lang.Object)
+		 */
+		@Override
+		public Color getForeground(Object element) {
+			return null;
+		}
+
+		/**
+		 * {@inheritDoc}
+		 *
+		 * @see org.eclipse.jface.viewers.IColorProvider#getBackground(java.lang.Object)
+		 */
+		@Override
+		public Color getBackground(Object element) {
+			if (isDisposing) {
+				return null;
+			}
+
+			final Integer mostSevere = Diagnostic.OK;
+			final VDiagnostic vDiagnostic = getControl().getDiagnostic();
+			// for (final Object diagObject : vDiagnostic.getDiagnostics()) {
+			// final Diagnostic diagnostic = (Diagnostic) diagObject;
+			// if (diagnostic.getData().size() < 2) {
+			// continue;
+			// }
+			// if (diagnostic.getData().get(0).equals(element) && diagnostic.getData().get(1).equals(feature)) {
+			// final int currentSeverity = diagnostic.getSeverity();
+			// if (currentSeverity > mostSevere) {
+			// mostSevere = currentSeverity;
+			// }
+			// }
+			// }
+			final List<Diagnostic> diagnostic = vDiagnostic.getDiagnostic((EObject) element, feature);
+			return getValidationBackgroundColor(diagnostic.size() == 0 ? Diagnostic.OK : diagnostic.get(0)
+				.getSeverity());
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.emf.ecp.edit.internal.swt.util.SWTControl#getUnsetLabelText()
+	 */
+	@Override
+	protected String getUnsetLabelText() {
+		return LocalizationServiceHelper.getString(getClass(),
+			DepricatedControlMessageKeys.TableControl_NotSetClickToSet);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.emf.ecp.edit.internal.swt.util.SWTControl#getUnsetButtonTooltip()
+	 */
+	@Override
+	protected String getUnsetButtonTooltip() {
+		return LocalizationServiceHelper.getString(getClass(), DepricatedControlMessageKeys.TableControl_Unset);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.emf.ecp.edit.internal.swt.util.SWTControl#getControlForTooltip()
+	 */
+	@Override
+	protected Control[] getControlsForTooltip() {
+		// return new Control[] { tableViewer.getControl() };
+		return new Control[0];
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @deprecated
+	 */
+	@Override
+	@Deprecated
+	public boolean showLabel() {
+		return false;
+	}
+
+	/**
+	 * Implementation of the {@link EditingSupport} for the generic ECP Table.
+	 *
+	 * @author Eugen Neufeld
+	 *
+	 */
+	private class ECPTableEditingSupport extends EditingSupport {
+
+		private final CellEditor cellEditor;
+
+		private final EStructuralFeature cellFeature;
+
+		/**
+		 * @param viewer
+		 */
+		public ECPTableEditingSupport(ColumnViewer viewer, CellEditor cellEditor, EStructuralFeature feature) {
+			super(viewer);
+			this.cellEditor = cellEditor;
+			cellFeature = feature;
+		}
+
+		private EditingState editingState;
+
+		private final ColumnViewerEditorActivationListenerHelper activationListener = new ColumnViewerEditorActivationListenerHelper();
+
+		/**
+		 * Default implementation always returns <code>true</code>.
+		 *
+		 * @see org.eclipse.jface.viewers.EditingSupport#canEdit(java.lang.Object)
+		 */
+		@Override
+		protected boolean canEdit(Object element) {
+			if (ECPCellEditor.class.isInstance(cellEditor)) {
+				ECPCellEditor.class.cast(cellEditor).setEditable(editable);
+				return true;
+			}
+			return editable;
+		}
+
+		/**
+		 * Default implementation always returns <code>null</code> as this will be
+		 * handled by the Binding.
+		 *
+		 * @see org.eclipse.jface.viewers.EditingSupport#getValue(java.lang.Object)
+		 */
+		@Override
+		protected Object getValue(Object element) {
+			// no op
+			return null;
+		}
+
+		/**
+		 * Default implementation does nothing as this will be handled by the
+		 * Binding.
+		 *
+		 * @see org.eclipse.jface.viewers.EditingSupport#setValue(java.lang.Object, java.lang.Object)
+		 */
+		@Override
+		protected void setValue(Object element, Object value) {
+			// no op
+		}
+
+		/**
+		 * Creates a {@link Binding} between the editor and the element to be
+		 * edited. Invokes {@link #doCreateCellEditorObservable(CellEditor)},
+		 * {@link #doCreateElementObservable(Object, ViewerCell)}, and then
+		 * {@link #createBinding(IObservableValue, IObservableValue)}.
+		 */
+		@Override
+		protected void initializeCellEditorValue(CellEditor cellEditor, ViewerCell cell) {
+
+			final IObservableValue target = doCreateCellEditorObservable(cellEditor);
+			Assert.isNotNull(target, "doCreateCellEditorObservable(...) did not return an observable"); //$NON-NLS-1$
+
+			final IObservableValue model = doCreateElementObservable(cell.getElement(), cell);
+			Assert.isNotNull(model, "doCreateElementObservable(...) did not return an observable"); //$NON-NLS-1$
+
+			final Binding binding = createBinding(target, model);
+
+			Assert.isNotNull(binding, "createBinding(...) did not return a binding"); //$NON-NLS-1$
+
+			editingState = new EditingState(binding, target, model);
+
+			getViewer().getColumnViewerEditor().addEditorActivationListener(activationListener);
+		}
+
+		@Override
+		protected CellEditor getCellEditor(Object element) {
+			return cellEditor;
+		}
+
+		protected Binding createBinding(IObservableValue target, IObservableValue model) {
+			if (ECPCellEditor.class.isInstance(cellEditor)) {
+				return getDataBindingContext().bindValue(target, model,
+					((ECPCellEditor) cellEditor).getTargetToModelStrategy(getDataBindingContext()),
+					((ECPCellEditor) cellEditor).getModelToTargetStrategy(getDataBindingContext()));
+			}
+			return getDataBindingContext().bindValue(target, model);
+		}
+
+		protected IObservableValue doCreateElementObservable(Object element, ViewerCell cell) {
+			return EMFEditObservables.observeValue(getEditingDomain(),
+				(EObject) element, cellFeature);
+		}
+
+		protected IObservableValue doCreateCellEditorObservable(CellEditor cellEditor) {
+			if (ECPCellEditor.class.isInstance(cellEditor)) {
+				return ((ECPCellEditor) cellEditor).getValueProperty().observe(cellEditor);
+			}
+			return SWTObservables.observeText(cellEditor.getControl(), SWT.FocusOut);
+		}
+
+		@Override
+		protected final void saveCellEditorValue(CellEditor cellEditor, ViewerCell cell) {
+			editingState.binding.updateTargetToModel();
+		}
+
+		class ColumnViewerEditorActivationListenerHelper extends ColumnViewerEditorActivationListener {
+
+			@Override
+			public void afterEditorActivated(ColumnViewerEditorActivationEvent event) {
+				// do nothing
+			}
+
+			@Override
+			public void afterEditorDeactivated(ColumnViewerEditorDeactivationEvent event) {
+				editingState.dispose();
+				editingState = null;
+
+				getViewer().getColumnViewerEditor().removeEditorActivationListener(this);
+				final ViewerCell focusCell = getViewer().getColumnViewerEditor().getFocusCell();
+				if (focusCell != null) {
+					getViewer().update(focusCell.getElement(), null);
+				}
+			}
+
+			@Override
+			public void beforeEditorActivated(ColumnViewerEditorActivationEvent event) {
+				// do nothing
+			}
+
+			@Override
+			public void beforeEditorDeactivated(ColumnViewerEditorDeactivationEvent event) {
+				// do nothing
+			}
+		}
+
+		/**
+		 * Maintains references to objects that only live for the length of the edit
+		 * cycle.
+		 */
+		class EditingState {
+			private final IObservableValue target;
+
+			private final IObservableValue model;
+
+			private final Binding binding;
+
+			EditingState(Binding binding, IObservableValue target, IObservableValue model) {
+				this.binding = binding;
+				this.target = target;
+				this.model = model;
+			}
+
+			void dispose() {
+				binding.dispose();
+				target.dispose();
+				model.dispose();
+			}
+		}
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/TableViewerColumnBuilder.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/TableViewerColumnBuilder.java
index d34c1b8..6a94991 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/TableViewerColumnBuilder.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/TableViewerColumnBuilder.java
@@ -11,6 +11,10 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.edit.internal.swt.controls;
 
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Map.Entry;
+
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.jface.viewers.TableViewerColumn;
 import org.eclipse.swt.SWT;
@@ -27,8 +31,7 @@
 	private Boolean isMoveable;
 	private String text;
 	private String tooltip;
-	private String key;
-	private Object value;
+	private final Map<String, Object> data = new LinkedHashMap<String, Object>();
 	private Integer width;
 	private Integer style = SWT.NONE;
 
@@ -57,8 +60,7 @@
 	}
 
 	public TableViewerColumnBuilder setData(String key, Object value) {
-		this.key = key;
-		this.value = value;
+		data.put(key, value);
 		return this;
 	}
 
@@ -108,8 +110,8 @@
 	}
 
 	private void setData(TableViewerColumn column) {
-		if (key != null) {
-			column.getColumn().setData(key, value);
+		for (final Entry<String, Object> entry : data.entrySet()) {
+			column.getColumn().setData(entry.getKey(), entry.getValue());
 		}
 	}
 
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/XmlDateControlText.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/XmlDateControlText.java
index 98e4e59..9524fd4 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/XmlDateControlText.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/XmlDateControlText.java
@@ -28,6 +28,7 @@
 import org.eclipse.emf.ecp.edit.internal.swt.util.DateUtil;

 import org.eclipse.emf.ecp.edit.spi.swt.util.ECPDialogExecutor;

 import org.eclipse.emf.edit.command.SetCommand;

+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;

 import org.eclipse.jface.databinding.swt.SWTObservables;

 import org.eclipse.jface.dialogs.IDialogLabelKeys;

 import org.eclipse.jface.dialogs.MessageDialog;

@@ -67,12 +68,14 @@
 

 	@Override

 	protected String getUnsetLabelText() {

-		return ControlMessages.XmlDateControlText_NoDateSetClickToSetDate;

+		return LocalizationServiceHelper.getString(getClass(),

+			DepricatedControlMessageKeys.XmlDateControlText_NoDateSetClickToSetDate);

 	}

 

 	@Override

 	protected String getUnsetButtonTooltip() {

-		return ControlMessages.XmlDateControlText_UnsetDate;

+		return LocalizationServiceHelper.getString(getClass(),

+			DepricatedControlMessageKeys.XmlDateControlText_UnsetDate);

 	}

 

 	@Override

@@ -238,8 +241,11 @@
 			final Object result = getModelValue().getValue();

 

 			final MessageDialog messageDialog = new MessageDialog(getText().getShell(),

-				ControlMessages.XmlDateControlText_InvalidNumber, null,

-				ControlMessages.XmlDateControlText_NumberInvalidValueWillBeUnset, MessageDialog.ERROR,

+				LocalizationServiceHelper.getString(getClass(),

+					DepricatedControlMessageKeys.XmlDateControlText_InvalidNumber), null,

+				LocalizationServiceHelper.getString(getClass(),

+					DepricatedControlMessageKeys.XmlDateControlText_NumberInvalidValueWillBeUnset),

+				MessageDialog.ERROR,

 				new String[] { JFaceResources.getString(IDialogLabelKeys.OK_LABEL_KEY) }, 0);

 

 			new ECPDialogExecutor(messageDialog) {

diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/messages.properties b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/messages.properties
deleted file mode 100644
index 7a6dd15..0000000
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/messages.properties
+++ /dev/null
@@ -1,56 +0,0 @@
-###############################################################################
-# Copyright (c) 2013 EclipseSource.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#    EclipseSource - initial API and implementation
-################################################################################
-
-AbstractTextControl_InvalidInput=Invalid input
-AbstractTextControl_InvalidInputSpace=Invalid input 
-AbstractTextControl_Unset=<unset>
-
-AttributeMultiControl_NotSetClickToSet=Not set. Click to set\!
-AttributeMultiControl_Unset=Unset
-
-BooleanControl_NoBooleanSetClickToSetBoolean=No boolean set\! Click to set boolean.
-BooleanControl_UnsetBoolean=Unset boolean
-
-DateTimeControl_NoDateSetClickToSetDate=No date set\! Click to set date.
-DateTimeControl_UnsetDate=Unset Date
-
-EEnumControl_NoValueSetClickToSetValue=No value set\! Click to set value.
-EEnumControl_UnsetValue=Unset value
-
-LinkControl_NoLinkSetClickToSetLink=No link set\! Click to set link.
-LinkControl_NotSet=(Not Set)
-LinkControl_UnsetLink=Unset Link
-
-NumericalControl_FormatNumerical=The format is '\#'.
-NumericalControl_FormatNumericalDecimal=The format is '\#.\#'.
-NumericalControl_InvalidNumber=Invalid Number
-NumericalControl_InvalidNumberWillBeUnset=The Number you have entered is invalid. The value will be unset.
-NumericalControl_NoNumberClickToSetNumber=No number set\! Click to set number.
-NumericalControl_UnsetNumber=Unset number
-
-ReferenceMultiControl_NotSetClickToSet=Not set. Click to set\!
-ReferenceMultiControl_Unset=Unset
-
-StringControl_NoTextSetClickToSetText=No text set\! Click to set text.
-StringControl_UnsetText=Unset text
-
-TableControl_AddInstanceOf=Add an instance of %1$s
-TableControl_Delete=Delete?
-TableControl_DeleteAreYouSure=Are you sure you want to delete the selected Elements?
-TableControl_NotSetClickToSet=Not set. Click to set\!
-TableControl_RemoveSelected=Remove the selected %1$s
-TableControl_Unset=Unset
-TableControl_ValidationStatusColumn=Validation Status
-
-XmlDateControlText_InvalidNumber=Invalid Number
-XmlDateControlText_NoDateSetClickToSetDate=No date set\! Click to set date.
-XmlDateControlText_NumberInvalidValueWillBeUnset=The Number you have entered is invalid. The value will be unset.
-XmlDateControlText_UnsetDate=Unset date
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/reference/ActionMessages.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/reference/ActionMessages.java
deleted file mode 100644
index 59b79df..0000000
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/reference/ActionMessages.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 EclipseSource.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource - initial API and implementation
- *******************************************************************************/
-package org.eclipse.emf.ecp.edit.internal.swt.reference;
-
-import org.eclipse.osgi.util.NLS;
-
-/*
- * @generated
- */
-
-public final class ActionMessages extends NLS {
-
-	private static final String BUNDLE_NAME = "org.eclipse.emf.ecp.edit.internal.swt.reference.messages"; //$NON-NLS-1$
-
-	public static String AddReferenceAction_Link;
-
-	public static String DeleteReferenceAction_Confirmation;
-	public static String DeleteReferenceAction_DeleteModelQuestion;
-	public static String DeleteReferenceAction_DeleteReference;
-	public static String DeleteReferenceAction_Yes;
-	public static String DeleteReferenceAction_No;
-	public static String DeleteReferenceAction_Questionmark;
-
-	public static String NewReferenceAction_CreateAndLinkNew;
-
-	private ActionMessages() {
-	}
-
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, ActionMessages.class);
-	}
-
-}
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 cf8d486..655adf4 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
@@ -13,6 +13,7 @@
 

 import java.text.MessageFormat;

 

+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.value.IValueProperty;

@@ -236,10 +237,10 @@
 	 *

 	 * {@inheritDoc}

 	 *

-	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getTargetToModelStrategy()

+	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getTargetToModelStrategy(org.eclipse.core.databinding.DataBindingContext)

 	 */

 	@Override

-	public UpdateValueStrategy getTargetToModelStrategy() {

+	public UpdateValueStrategy getTargetToModelStrategy(DataBindingContext databindingContext) {

 		// TODO Auto-generated method stub

 		return null;

 	}

@@ -248,10 +249,10 @@
 	 *

 	 * {@inheritDoc}

 	 *

-	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getModelToTargetStrategy()

+	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getModelToTargetStrategy(org.eclipse.core.databinding.DataBindingContext)

 	 */

 	@Override

-	public UpdateValueStrategy getModelToTargetStrategy() {

+	public UpdateValueStrategy getModelToTargetStrategy(DataBindingContext databindingContext) {

 		// TODO Auto-generated method stub

 		return null;

 	}

@@ -270,11 +271,21 @@
 

 	/**

 	 * {@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()

+	 */

+	@Override

+	public int getMinWidth() {

+		return 0;

+	}

 }

diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/reference/LinkControl.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/reference/LinkControl.java
index 362e44d..ce179bb 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/reference/LinkControl.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/reference/LinkControl.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2013 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
  *
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -8,6 +8,7 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
+ * Philip Langer - bug fix 460968
  *
  *******************************************************************************/
 package org.eclipse.emf.ecp.edit.internal.swt.reference;
@@ -19,8 +20,8 @@
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.emf.ecp.edit.internal.swt.Activator;
 import org.eclipse.emf.ecp.edit.internal.swt.SWTImageHelper;
-import org.eclipse.emf.ecp.edit.internal.swt.controls.ControlMessages;
 import org.eclipse.emf.ecp.edit.internal.swt.controls.SingleControl;
 import org.eclipse.emf.ecp.edit.spi.ReferenceService;
 import org.eclipse.emf.ecp.edit.spi.swt.reference.AddReferenceAction;
@@ -30,6 +31,7 @@
 import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
 import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
 import org.eclipse.jface.databinding.swt.SWTObservables;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.layout.GridLayoutFactory;
@@ -100,7 +102,7 @@
 		mainComposite.setLayout(stackLayout);
 
 		unsetLabel = new Label(mainComposite, SWT.NONE);
-		unsetLabel.setText(ControlMessages.LinkControl_NotSet);
+		unsetLabel.setText(LocalizationServiceHelper.getString(getClass(), ReferenceMessageKeys.LinkControl_NotSet));
 		unsetLabel.setBackground(mainComposite.getBackground());
 		unsetLabel.setForeground(getSystemColor(SWT.COLOR_DARK_GRAY));
 		unsetLabel.setAlignment(SWT.CENTER);
@@ -139,11 +141,13 @@
 		final Button[] buttons = new Button[3];
 		final Setting setting = getFirstSetting();
 		buttons[0] = createButtonForAction(new DeleteReferenceAction(getEditingDomain(getFirstSetting()), setting,
-			getItemPropertyDescriptor(setting), getService(ReferenceService.class)), composite);
+			getService(ReferenceService.class)), composite);
 		buttons[1] = createButtonForAction(new AddReferenceAction(getEditingDomain(getFirstSetting()), setting,
 			getItemPropertyDescriptor(setting), getService(ReferenceService.class)), composite);
 		buttons[2] = createButtonForAction(new NewReferenceAction(getEditingDomain(getFirstSetting()), setting,
-			getItemPropertyDescriptor(setting), getService(ReferenceService.class)), composite);
+			Activator.getDefault().getEMFFormsEditSupport(), Activator.getDefault().getEMFFormsLabelProvider(),
+			getService(ReferenceService.class), Activator.getDefault().getReportService(), getDomainModelReference(),
+			getViewModelContext().getDomainModel()), composite);
 		return buttons;
 	}
 
@@ -207,58 +211,89 @@
 	public Binding bindValue() {
 
 		final IObservableValue value = SWTObservables.observeText(hyperlink);
+		getDataBindingContext().bindValue(value, getModelValue(), createValueExtractingUpdateStrategy(),
+			new UpdateValueStrategy() {
+				@Override
+				public Object convert(Object value) {
+					updateChangeListener((EObject) value);
+					return "<a>" + getLinkText(value) + "</a>"; //$NON-NLS-1$ //$NON-NLS-2$
+				}
+			});
 
-		final Binding binding = getDataBindingContext().bindValue(value, getModelValue(), new UpdateValueStrategy() {
-
-			@Override
-			public Object convert(Object value) {
-				return getModelValue().getValue();
-			}
-		}, new UpdateValueStrategy() {
-			@Override
-			public Object convert(Object value) {
-				updateChangeListener((EObject) value);
-				return "<a>" + getLinkText(value) + "</a>"; //$NON-NLS-1$ //$NON-NLS-2$
-			}
-		});
 		final IObservableValue tooltipValue = SWTObservables.observeTooltipText(hyperlink);
-		getDataBindingContext().bindValue(tooltipValue, getModelValue(), new UpdateValueStrategy() {
-
-			@Override
-			public Object convert(Object value) {
-				return getModelValue().getValue();
-			}
-		}, new UpdateValueStrategy() {
-			@Override
-			public Object convert(Object value) {
-				return getLinkText(value);
-			}
-		});
+		getDataBindingContext().bindValue(tooltipValue, getModelValue(),
+			createValueExtractingUpdateStrategy(),
+			new UpdateValueStrategy() {
+				@Override
+				public Object convert(Object value) {
+					return getLinkText(value);
+				}
+			});
 
 		final IObservableValue imageValue = SWTObservables.observeImage(imageHyperlink);
 		getDataBindingContext().bindValue(imageValue, getModelValue(),
-			new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER)
-			, new UpdateValueStrategy() {
+			new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER),
+			new UpdateValueStrategy() {
 				@Override
 				public Object convert(Object value) {
 					return getImage(value);
 				}
 			});
 
+		final IObservableValue deleteButtonEnablement = SWTObservables.observeEnabled(getDeleteButton());
+		getDataBindingContext().bindValue(deleteButtonEnablement, getModelValue(),
+			createValueExtractingUpdateStrategy(),
+			new UpdateValueStrategy() {
+				@Override
+				public Object convert(Object value) {
+					return value != null;
+				}
+			});
+
 		return null;
 	}
 
+	private UpdateValueStrategy createValueExtractingUpdateStrategy() {
+		return new UpdateValueStrategy() {
+			@Override
+			public Object convert(Object value) {
+				return getModelValue().getValue();
+			}
+		};
+	}
+
+	/**
+	 * Returns the image to be used for the given linked {@code value}.
+	 *
+	 * @param value the value
+	 * @return The image.
+	 */
 	protected Object getImage(Object value) {
 		final Object image = getAdapterFactoryItemDelegator().getImage(value);
 		return SWTImageHelper.getImage(image);
 	}
 
+	/**
+	 * Returns the link text to be used for the given linked {@code value}.
+	 *
+	 * @param value the value
+	 * @return The link text.
+	 */
 	protected Object getLinkText(Object value) {
 		final String linkName = getAdapterFactoryItemDelegator().getText(value);
 		return linkName == null ? "" : linkName; //$NON-NLS-1$
 	}
 
 	/**
+	 * Returns the delete button of this control.
+	 *
+	 * @return The delete button of this control.
+	 */
+	protected Button getDeleteButton() {
+		return buttons[0];
+	}
+
+	/**
 	 * {@inheritDoc}
 	 *
 	 * @see org.eclipse.emf.ecp.edit.internal.swt.controls.SingleControl#updateValidationColor(org.eclipse.swt.graphics.Color)
@@ -330,7 +365,8 @@
 	 */
 	@Override
 	protected String getUnsetLabelText() {
-		return ControlMessages.LinkControl_NoLinkSetClickToSetLink;
+		return LocalizationServiceHelper
+			.getString(getClass(), ReferenceMessageKeys.LinkControl_NoLinkSetClickToSetLink);
 	}
 
 	/*
@@ -339,7 +375,7 @@
 	 */
 	@Override
 	protected String getUnsetButtonTooltip() {
-		return ControlMessages.LinkControl_UnsetLink;
+		return LocalizationServiceHelper.getString(getClass(), ReferenceMessageKeys.LinkControl_UnsetLink);
 	}
 
 	/*
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/reference/ReferenceMessageKeys.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/reference/ReferenceMessageKeys.java
new file mode 100644
index 0000000..a11d334
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/reference/ReferenceMessageKeys.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.edit.internal.swt.reference;
+
+/**
+ * Keys for translated strings.
+ *
+ * @author Eugen Neufeld
+ * @generated
+ */
+public interface ReferenceMessageKeys {
+	String AddReferenceAction_Link = "AddReferenceAction_Link"; //$NON-NLS-1$
+	String AddReferenceAction_Confirmation = "AddReferenceAction_Confirmation"; //$NON-NLS-1$
+	String AddReferenceAction_No = "AddReferenceAction_No"; //$NON-NLS-1$
+	String AddReferenceAction_Warning = "AddReferenceAction_Warning"; //$NON-NLS-1$
+	String AddReferenceAction_Yes = "AddReferenceAction_Yes"; //$NON-NLS-1$
+
+	String DeleteReferenceAction_DeleteReference = "DeleteReferenceAction_DeleteReference"; //$NON-NLS-1$
+	String DeleteReferenceAction_DeleteModelQuestion = "DeleteReferenceAction_DeleteModelQuestion"; //$NON-NLS-1$
+	String DeleteReferenceAction_Questionmark = "DeleteReferenceAction_Questionmark"; //$NON-NLS-1$
+
+	String DeleteReferenceAction_Confirmation = "DeleteReferenceAction_Confirmation"; //$NON-NLS-1$
+	String DeleteReferenceAction_Yes = "DeleteReferenceAction_Yes"; //$NON-NLS-1$
+	String DeleteReferenceAction_No = "DeleteReferenceAction_No"; //$NON-NLS-1$
+
+	String NewReferenceAction_CreateAndLinkNew = "NewReferenceAction_CreateAndLinkNew"; //$NON-NLS-1$
+	String NewReferenceAction_Confirmation = "NewReferenceAction_Confirmation"; //$NON-NLS-1$
+	String NewReferenceAction_No = "NewReferenceAction_No"; //$NON-NLS-1$
+	String NewReferenceAction_Warning = "NewReferenceAction_Warning"; //$NON-NLS-1$
+	String NewReferenceAction_Yes = "NewReferenceAction_Yes"; //$NON-NLS-1$
+
+	String LinkControl_NoLinkSetClickToSetLink = "LinkControl_NoLinkSetClickToSetLink"; //$NON-NLS-1$
+	String LinkControl_NotSet = "LinkControl_NotSet"; //$NON-NLS-1$
+	String LinkControl_UnsetLink = "LinkControl_UnsetLink"; //$NON-NLS-1$
+	String ReferenceMultiControl_NotSetClickToSet = "ReferenceMultiControl_NotSetClickToSet"; //$NON-NLS-1$
+	String ReferenceMultiControl_Unset = "ReferenceMultiControl_Unset"; //$NON-NLS-1$
+}
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/reference/ReferenceMultiControl.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/reference/ReferenceMultiControl.java
index 07bc618..713367b 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/reference/ReferenceMultiControl.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/reference/ReferenceMultiControl.java
@@ -13,13 +13,14 @@
 package org.eclipse.emf.ecp.edit.internal.swt.reference;
 
 import org.eclipse.emf.ecore.EStructuralFeature.Setting;
-import org.eclipse.emf.ecp.edit.internal.swt.controls.ControlMessages;
+import org.eclipse.emf.ecp.edit.internal.swt.Activator;
 import org.eclipse.emf.ecp.edit.internal.swt.controls.MultiControl;
 import org.eclipse.emf.ecp.edit.spi.ReferenceService;
 import org.eclipse.emf.ecp.edit.spi.swt.actions.ECPSWTAction;
 import org.eclipse.emf.ecp.edit.spi.swt.reference.AddReferenceAction;
 import org.eclipse.emf.ecp.edit.spi.swt.reference.NewReferenceAction;
 import org.eclipse.emf.ecp.edit.spi.util.ECPStaticApplicableTester;
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
 
 /**
  * This class defines a Control which is used for displaying {@link org.eclipse.emf.ecore.EStructuralFeature}s which
@@ -37,7 +38,9 @@
 		actions[0] = new AddReferenceAction(getEditingDomain(firstSetting), firstSetting,
 			getItemPropertyDescriptor(firstSetting), getService(ReferenceService.class));
 		actions[1] = new NewReferenceAction(getEditingDomain(firstSetting), firstSetting,
-			getItemPropertyDescriptor(firstSetting), getService(ReferenceService.class));
+			Activator.getDefault().getEMFFormsEditSupport(), Activator.getDefault().getEMFFormsLabelProvider(),
+			getService(ReferenceService.class), Activator.getDefault().getReportService(), getDomainModelReference(),
+			getViewModelContext().getDomainModel());
 		return actions;
 	}
 
@@ -53,7 +56,8 @@
 	 */
 	@Override
 	protected String getUnsetLabelText() {
-		return ControlMessages.ReferenceMultiControl_NotSetClickToSet;
+		return LocalizationServiceHelper.getString(getClass(),
+			ReferenceMessageKeys.ReferenceMultiControl_NotSetClickToSet);
 	}
 
 	/*
@@ -62,6 +66,6 @@
 	 */
 	@Override
 	protected String getUnsetButtonTooltip() {
-		return ControlMessages.ReferenceMultiControl_Unset;
+		return LocalizationServiceHelper.getString(getClass(), ReferenceMessageKeys.ReferenceMultiControl_Unset);
 	}
 }
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/reference/ReferenceMultiControlTester.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/reference/ReferenceMultiControlTester.java
index 2626821..4208edc 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/reference/ReferenceMultiControlTester.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/reference/ReferenceMultiControlTester.java
@@ -12,13 +12,10 @@
  *******************************************************************************/
 package org.eclipse.emf.ecp.edit.internal.swt.reference;
 
-import java.util.Iterator;
-
 import org.eclipse.emf.ecore.EAttribute;
 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.ecp.edit.internal.swt.Activator;
 import org.eclipse.emf.ecp.edit.spi.ECPControlDescription;
 import org.eclipse.emf.ecp.edit.spi.ECPControlFactory;
@@ -124,17 +121,7 @@
 	@Override
 	@Deprecated
 	public int isApplicable(VDomainModelReference domainModelReference) {
-		final Iterator<Setting> iterator = domainModelReference.getIterator();
-		int count = 0;
-		Setting setting = null;
-		while (iterator.hasNext()) {
-			count++;
-			setting = iterator.next();
-		}
-		if (count != 1) {
-			return NOT_APPLICABLE;
-		}
-		return isApplicable(setting.getEObject(), setting.getEStructuralFeature());
+		return NOT_APPLICABLE;
 	}
 
 }
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/reference/messages.properties b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/reference/messages.properties
deleted file mode 100644
index daa04bb..0000000
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/reference/messages.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-###############################################################################
-# Copyright (c) 2013 EclipseSource.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#    EclipseSource - initial API and implementation
-################################################################################
-
-AddReferenceAction_Link=Link 
-
-DeleteReferenceAction_Confirmation=Confirmation
-DeleteReferenceAction_DeleteModelQuestion=Do you really want to delete the model element 
-DeleteReferenceAction_DeleteReference=Delete Reference
-DeleteReferenceAction_Yes=Yes
-DeleteReferenceAction_No=No
-DeleteReferenceAction_Questionmark=?
-
-NewReferenceAction_CreateAndLinkNew=Create and link new 
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 2d3fce0..c0eb652 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
@@ -17,6 +17,7 @@
 import java.util.Calendar;

 import java.util.Date;

 

+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.value.IValueProperty;

@@ -269,10 +270,10 @@
 	 *

 	 * {@inheritDoc}

 	 *

-	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getTargetToModelStrategy()

+	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getTargetToModelStrategy(org.eclipse.core.databinding.DataBindingContext)

 	 */

 	@Override

-	public UpdateValueStrategy getTargetToModelStrategy() {

+	public UpdateValueStrategy getTargetToModelStrategy(DataBindingContext databindingContext) {

 		// TODO Auto-generated method stub

 		return null;

 	}

@@ -281,10 +282,10 @@
 	 *

 	 * {@inheritDoc}

 	 *

-	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getModelToTargetStrategy()

+	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getModelToTargetStrategy(org.eclipse.core.databinding.DataBindingContext)

 	 */

 	@Override

-	public UpdateValueStrategy getModelToTargetStrategy() {

+	public UpdateValueStrategy getModelToTargetStrategy(DataBindingContext databindingContext) {

 		// TODO Auto-generated method stub

 		return null;

 	}

@@ -303,11 +304,21 @@
 

 	/**

 	 * {@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()

+	 */

+	@Override

+	public int getMinWidth() {

+		return 0;

+	}

 }

diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/table/NumberCellEditor.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/table/NumberCellEditor.java
index 3ae7d2b..b3d43d2 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/table/NumberCellEditor.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/table/NumberCellEditor.java
@@ -16,6 +16,7 @@
 import java.text.ParsePosition;

 import java.util.Locale;

 

+import org.eclipse.core.databinding.DataBindingContext;

 import org.eclipse.core.databinding.UpdateValueStrategy;

 import org.eclipse.core.databinding.property.value.IValueProperty;

 import org.eclipse.emf.databinding.EMFUpdateValueStrategy;

@@ -26,6 +27,8 @@
 import org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor;

 import org.eclipse.emf.ecp.edit.spi.swt.util.ECPDialogExecutor;

 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;

+import org.eclipse.emf.edit.command.SetCommand;

+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;

 import org.eclipse.jface.databinding.swt.WidgetProperties;

 import org.eclipse.jface.databinding.viewers.CellEditorProperties;

 import org.eclipse.jface.dialogs.IDialogLabelKeys;

@@ -103,7 +106,8 @@
 	@Override

 	public String getFormatedString(Object value) {

 		if (value == null) {

-			setErrorMessage(TableMessages.NumberCellEditor_ValueIsNull);

+			setErrorMessage(LocalizationServiceHelper.getString(getClass(),

+				TableMessageKeys.NumberCellEditor_ValueIsNull));

 			return ""; //$NON-NLS-1$

 		}

 

@@ -139,10 +143,10 @@
 	 *

 	 * {@inheritDoc}

 	 *

-	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getTargetToModelStrategy()

+	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getTargetToModelStrategy(org.eclipse.core.databinding.DataBindingContext)

 	 */

 	@Override

-	public UpdateValueStrategy getTargetToModelStrategy() {

+	public UpdateValueStrategy getTargetToModelStrategy(final DataBindingContext databindingContext) {

 		return new EMFUpdateValueStrategy() {

 

 			@Override

@@ -219,12 +223,13 @@
 					return null;

 				}

 

-				// Object result = getModelValue().getValue();

 				final Object result = null;

 

-				final MessageDialog messageDialog = new MessageDialog(getText().getShell(),

-					TableMessages.NumberCellEditor_InvalidNumber, null,

-					TableMessages.NumberCellEditor_NumberYouEnteredIsInvalid, MessageDialog.ERROR,

+				final MessageDialog messageDialog = new MessageDialog(text.getShell(),

+					LocalizationServiceHelper.getString(getClass(), TableMessageKeys.NumberCellEditor_InvalidNumber),

+					null, LocalizationServiceHelper.getString(getClass(),

+						TableMessageKeys.NumberCellEditor_NumberYouEnteredIsInvalid),

+					MessageDialog.ERROR,

 					new String[] { JFaceResources.getString(IDialogLabelKeys.OK_LABEL_KEY) }, 0);

 

 				new ECPDialogExecutor(messageDialog) {

@@ -234,18 +239,11 @@
 					}

 				}.execute();

 

-				if (result == null) {

-					getText().setText(""); //$NON-NLS-1$

-				} else {

-					final DecimalFormat format = NumericalHelper.setupFormat(getLocale(),

-						getInstanceClass());

-					getText().setText(format.format(result));

-				}

+				databindingContext.updateTargets();

 

-				// if (getStructuralFeature().isUnsettable() && result == null) {

-				// showUnsetLabel();

-				// return SetCommand.UNSET_VALUE;

-				// }

+				if (eStructuralFeature.isUnsettable()) {

+					return SetCommand.UNSET_VALUE;

+				}

 				return result;

 			}

 		};

@@ -255,10 +253,10 @@
 	 *

 	 * {@inheritDoc}

 	 *

-	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getModelToTargetStrategy()

+	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getModelToTargetStrategy(org.eclipse.core.databinding.DataBindingContext)

 	 */

 	@Override

-	public UpdateValueStrategy getModelToTargetStrategy() {

+	public UpdateValueStrategy getModelToTargetStrategy(DataBindingContext databindingContext) {

 		return new EMFUpdateValueStrategy() {

 			@Override

 			public Object convert(Object value) {

@@ -294,11 +292,21 @@
 

 	/**

 	 * {@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()

+	 */

+	@Override

+	public int getMinWidth() {

+		return 0;

+	}

 }

diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/table/NumberCellEditorTester.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/table/NumberCellEditorTester.java
index 70d797a..5f85fe2 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/table/NumberCellEditorTester.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/table/NumberCellEditorTester.java
@@ -41,6 +41,26 @@
 			if (Number.class.isAssignableFrom(instanceClass)) {

 				return 1;

 			}

+

+			// if the attribute class is an primitive test the primitive types

+			if (instanceClass.isPrimitive()) {

+				if (int.class.equals(instanceClass)) {

+					return 1;

+				}

+				else if (float.class.equals(instanceClass)) {

+					return 1;

+				}

+				else if (long.class.equals(instanceClass)) {

+					return 1;

+				}

+				else if (double.class.equals(instanceClass)) {

+					return 1;

+				}

+				else if (short.class.equals(instanceClass)) {

+					return 1;

+				}

+			}

+

 		}

 		return NOT_APPLICABLE;

 	}

diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/table/TableMessageKeys.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/table/TableMessageKeys.java
new file mode 100644
index 0000000..ed514e1
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/table/TableMessageKeys.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.edit.internal.swt.table;
+
+/**
+ * Keys for translated strings.
+ *
+ * @author Eugen Neufeld
+ * @generated
+ */
+public interface TableMessageKeys {
+	String NumberCellEditor_InvalidNumber = "NumberCellEditor_InvalidNumber"; //$NON-NLS-1$
+	String NumberCellEditor_NumberYouEnteredIsInvalid = "NumberCellEditor_NumberYouEnteredIsInvalid"; //$NON-NLS-1$
+	String NumberCellEditor_ValueIsNull = "NumberCellEditor_ValueIsNull"; //$NON-NLS-1$
+}
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/table/TableMessages.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/table/TableMessages.java
deleted file mode 100644
index a720c35..0000000
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/table/TableMessages.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 EclipseSource.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource - initial API and implementation
- *******************************************************************************/
-package org.eclipse.emf.ecp.edit.internal.swt.table;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * @generated
- * @author Jonas
- *
- */
-public final class TableMessages extends NLS {
-
-	private static final String BUNDLE_NAME = "org.eclipse.emf.ecp.edit.internal.swt.table.messages"; //$NON-NLS-1$
-
-	public static String NumberCellEditor_InvalidNumber;
-	public static String NumberCellEditor_NumberYouEnteredIsInvalid;
-	public static String NumberCellEditor_ValueIsNull;
-
-	private TableMessages() {
-	}
-
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, TableMessages.class);
-	}
-
-}
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 603feb9..d91e05a 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
@@ -19,6 +19,7 @@
 

 import javax.xml.datatype.XMLGregorianCalendar;

 

+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.value.IValueProperty;

@@ -265,10 +266,10 @@
 	 *

 	 * {@inheritDoc}

 	 *

-	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getTargetToModelStrategy()

+	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getTargetToModelStrategy(org.eclipse.core.databinding.DataBindingContext)

 	 */

 	@Override

-	public UpdateValueStrategy getTargetToModelStrategy() {

+	public UpdateValueStrategy getTargetToModelStrategy(DataBindingContext databindingContext) {

 		return null;

 	}

 

@@ -276,10 +277,10 @@
 	 *

 	 * {@inheritDoc}

 	 *

-	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getModelToTargetStrategy()

+	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getModelToTargetStrategy(org.eclipse.core.databinding.DataBindingContext)

 	 */

 	@Override

-	public UpdateValueStrategy getModelToTargetStrategy() {

+	public UpdateValueStrategy getModelToTargetStrategy(DataBindingContext databindingContext) {

 		return null;

 	}

 

@@ -297,11 +298,21 @@
 

 	/**

 	 * {@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()

+	 */

+	@Override

+	public int getMinWidth() {

+		return 0;

+	}

 }

diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/table/messages.properties b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/table/messages.properties
deleted file mode 100644
index 96b5266..0000000
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/table/messages.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2013 EclipseSource.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#    EclipseSource - initial API and implementation
-################################################################################
-
-NumberCellEditor_InvalidNumber=Invalid Number
-
-NumberCellEditor_NumberYouEnteredIsInvalid=The Number you have entered is invalid. The value will be unset.
-
-NumberCellEditor_ValueIsNull=Value is null
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/util/CellEditorFactory.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/util/CellEditorFactory.java
index 9bd291e..a080c97 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/util/CellEditorFactory.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/util/CellEditorFactory.java
@@ -25,6 +25,7 @@
 import org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor;

 import org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditorTester;

 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;

+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;

 import org.eclipse.jface.viewers.CellEditor;

 import org.eclipse.jface.viewers.TextCellEditor;

 import org.eclipse.swt.widgets.Composite;

@@ -68,9 +69,12 @@
 	private static <T> Class<T> loadClass(String bundleName, String clazz) throws ClassNotFoundException {

 		final Bundle bundle = Platform.getBundle(bundleName);

 		if (bundle == null) {

-			throw new ClassNotFoundException(clazz + UtilMessages.CellEditorFactory_CannotBeLoadedBecauseBundle

+			throw new ClassNotFoundException(clazz

+				+ LocalizationServiceHelper.getString(CellEditorFactory.class,

+					UtilMessageKeys.CellEditorFactory_CannotBeLoadedBecauseBundle)

 				+ bundleName

-				+ UtilMessages.CellEditorFactory_CannotBeResolved);

+				+ LocalizationServiceHelper.getString(CellEditorFactory.class,

+					UtilMessageKeys.CellEditorFactory_CannotBeResolved));

 		}

 		return (Class<T>) bundle.loadClass(clazz);

 

diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/util/SWTControl.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/util/SWTControl.java
index 77c69d6..513e5d5 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/util/SWTControl.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/util/SWTControl.java
@@ -66,6 +66,8 @@
 	 */
 	protected static final String VALIDATION_ERROR_ICON = "icons/validation_error.png";//$NON-NLS-1$
 
+	private static final String ICONS_UNSET_FEATURE = "icons/unset_feature.png"; //$NON-NLS-1$
+
 	/**
 	 * The label for the validation icon.
 	 */
@@ -232,7 +234,7 @@
 				numControls++;
 				unsetButton = new Button(controlComposite, SWT.PUSH);
 				unsetButton.setToolTipText(getUnsetButtonTooltip());
-				unsetButton.setImage(Activator.getImage("icons/delete.png")); //$NON-NLS-1$
+				unsetButton.setImage(Activator.getImage(ICONS_UNSET_FEATURE));
 			}
 			unsetButton.addSelectionListener(new SelectionAdapter() {
 				@Override
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/util/UtilMessageKeys.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/util/UtilMessageKeys.java
new file mode 100644
index 0000000..b1bc1eb
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/util/UtilMessageKeys.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.edit.internal.swt.util;
+
+/**
+ * Keys for translated strings.
+ *
+ * @author Eugen Neufeld
+ * @generated
+ */
+public interface UtilMessageKeys {
+	String CellEditorFactory_CannotBeLoadedBecauseBundle = "CellEditorFactory_CannotBeLoadedBecauseBundle"; //$NON-NLS-1$
+	String CellEditorFactory_CannotBeResolved = "CellEditorFactory_CannotBeResolved"; //$NON-NLS-1$
+}
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/util/UtilMessages.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/util/UtilMessages.java
deleted file mode 100644
index 3d6ef30..0000000
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/util/UtilMessages.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 EclipseSource.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource - initial API and implementation
- *******************************************************************************/
-package org.eclipse.emf.ecp.edit.internal.swt.util;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * @generated
- * @author Jonas
- *
- */
-
-public final class UtilMessages extends NLS {
-
-	private static final String BUNDLE_NAME = "org.eclipse.emf.ecp.edit.internal.swt.util.messages"; //$NON-NLS-1$
-
-	public static String CellEditorFactory_CannotBeLoadedBecauseBundle;
-	public static String CellEditorFactory_CannotBeResolved;
-
-	public static String SWTControl_Help;
-
-	private UtilMessages() {
-	}
-
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, UtilMessages.class);
-	}
-
-}
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/util/messages.properties b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/util/messages.properties
deleted file mode 100644
index e069a5a..0000000
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/util/messages.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2013 EclipseSource.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#    EclipseSource - initial API and implementation
-################################################################################
-
-CellEditorFactory_CannotBeLoadedBecauseBundle=\ cannot be loaded because bundle 
-CellEditorFactory_CannotBeResolved=\ cannot be resolved
-
-SWTControl_Help=Help
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/reference/AddReferenceAction.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/reference/AddReferenceAction.java
index 05dd0a9..175e50f 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/reference/AddReferenceAction.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/reference/AddReferenceAction.java
@@ -1,114 +1,153 @@
-/*******************************************************************************

- * 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 v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- * Eugen Neufeld - initial API and implementation

- *

- *******************************************************************************/

-

-package org.eclipse.emf.ecp.edit.spi.swt.reference;

-

-import java.net.MalformedURLException;

-import java.net.URL;

-

-import org.eclipse.emf.common.util.URI;

-import org.eclipse.emf.ecore.EReference;

-import org.eclipse.emf.ecore.EStructuralFeature.Setting;

-import org.eclipse.emf.ecp.edit.internal.swt.Activator;

-import org.eclipse.emf.ecp.edit.internal.swt.reference.ActionMessages;

-import org.eclipse.emf.ecp.edit.internal.swt.util.OverlayImageDescriptor;

-import org.eclipse.emf.ecp.edit.spi.ReferenceService;

-import org.eclipse.emf.ecp.edit.spi.swt.actions.ECPSWTAction;

-import org.eclipse.emf.edit.domain.EditingDomain;

-import org.eclipse.emf.edit.provider.ComposedImage;

-import org.eclipse.emf.edit.provider.IItemLabelProvider;

-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;

-import org.eclipse.jface.resource.ImageDescriptor;

-import org.eclipse.swt.graphics.ImageData;

-

-/**

- * An Action for adding reference links to a model element. It is mainly used in the

- * {@link org.eclipse.emf.ecp.edit.internal.swt.controls.MultiControl MultiControl}

- *

- * @author shterev

- * @author Eugen Neufeld

- * @since 1.5

- */

-public class AddReferenceAction extends ECPSWTAction {

-

-	private final ReferenceService referenceService;

-

-	/**

-	 * The constructor for the add reference action.

-	 *

-	 * @param editingDomain the {@link EditingDomain} to use

-	 * @param setting the {@link Setting} to use

-	 * @param itemPropertyDescriptor the property descriptor

-	 * @param referenceService the {@link ReferenceService}

-	 */

-	public AddReferenceAction(EditingDomain editingDomain, Setting setting,

-		IItemPropertyDescriptor itemPropertyDescriptor, ReferenceService referenceService) {

-		super(editingDomain, setting);

-		this.referenceService = referenceService;

-		final EReference eReference = (EReference) setting.getEStructuralFeature();

-		Object obj = null;

-		if (!eReference.getEReferenceType().isAbstract()) {

-			obj = eReference.getEReferenceType().getEPackage().getEFactoryInstance()

-				.create(eReference.getEReferenceType());

-		}

-		final IItemLabelProvider labelProvider = itemPropertyDescriptor.getLabelProvider(setting.getEObject());

-		Object labelProviderImageResult = labelProvider.getImage(obj);

-		ImageData imageData = null;

-

-		if (ComposedImage.class.isInstance(labelProviderImageResult)) {

-			labelProviderImageResult = ((ComposedImage) labelProviderImageResult).getImages().get(0);

-		}

-		if (URI.class.isInstance(labelProviderImageResult)) {

-			try {

-				labelProviderImageResult = new URL(((URI) labelProviderImageResult).toString());

-			} catch (final MalformedURLException ex) {

-				Activator.logException(ex);

-			}

-		}

-		if (URL.class.isInstance(labelProviderImageResult)) {

-			imageData = Activator.getImageData((URL) labelProviderImageResult);

-		}

-		else {

-			imageData = Activator.getImageData((URL) null);

-		}

-		String overlayString = "icons/link_overlay.png";//$NON-NLS-1$

-		if (eReference.isContainment()) {

-			overlayString = "icons/containment_overlay.png";//$NON-NLS-1$

-		}

-		final ImageDescriptor addOverlay = Activator.getImageDescriptor(overlayString);

-		final OverlayImageDescriptor imageDescriptor = new OverlayImageDescriptor(imageData, addOverlay,

-			OverlayImageDescriptor.LOWER_RIGHT);

-		setImageDescriptor(imageDescriptor);

-

-		String attribute = itemPropertyDescriptor.getDisplayName(null);

-		// make singular attribute labels

-		// TODO language dependent

-		if (attribute.endsWith("ies")) {//$NON-NLS-1$

-			attribute = attribute.substring(0, attribute.length() - 3) + "y"; //$NON-NLS-1$

-		} else if (attribute.endsWith("s")) {//$NON-NLS-1$

-			attribute = attribute.substring(0, attribute.length() - 1);

-		}

-		setToolTipText(ActionMessages.AddReferenceAction_Link + attribute);

-	}

-

-	/**

-	 * {@inheritDoc}

-	 */

-	@Override

-	public void run() {

-		referenceService.addExistingModelElements(getSetting().getEObject(), (EReference) getSetting()

-			.getEStructuralFeature());

-

-	}

-

-}

+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ *
+ *******************************************************************************/
+
+package org.eclipse.emf.ecp.edit.spi.swt.reference;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.emf.ecp.edit.internal.swt.Activator;
+import org.eclipse.emf.ecp.edit.internal.swt.reference.ReferenceMessageKeys;
+import org.eclipse.emf.ecp.edit.internal.swt.util.OverlayImageDescriptor;
+import org.eclipse.emf.ecp.edit.spi.ReferenceService;
+import org.eclipse.emf.ecp.edit.spi.swt.actions.ECPSWTAction;
+import org.eclipse.emf.ecp.edit.spi.swt.util.ECPDialogExecutor;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.provider.ComposedImage;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.graphics.ImageData;
+
+/**
+ * An Action for adding reference links to a model element. It is mainly used in the
+ * {@link org.eclipse.emf.ecp.edit.internal.swt.controls.MultiControl MultiControl}
+ *
+ * @author shterev
+ * @author Eugen Neufeld
+ * @since 1.5
+ */
+public class AddReferenceAction extends ECPSWTAction {
+
+	private final ReferenceService referenceService;
+
+	/**
+	 * The constructor for the add reference action.
+	 *
+	 * @param editingDomain the {@link EditingDomain} to use
+	 * @param setting the {@link Setting} to use
+	 * @param itemPropertyDescriptor the property descriptor
+	 * @param referenceService the {@link ReferenceService}
+	 */
+	public AddReferenceAction(EditingDomain editingDomain, Setting setting,
+		IItemPropertyDescriptor itemPropertyDescriptor, ReferenceService referenceService) {
+		super(editingDomain, setting);
+		this.referenceService = referenceService;
+		final EReference eReference = (EReference) setting.getEStructuralFeature();
+		Object obj = null;
+		if (!eReference.getEReferenceType().isAbstract()) {
+			obj = eReference.getEReferenceType().getEPackage().getEFactoryInstance()
+				.create(eReference.getEReferenceType());
+		}
+		final IItemLabelProvider labelProvider = itemPropertyDescriptor.getLabelProvider(setting.getEObject());
+		Object labelProviderImageResult = labelProvider.getImage(obj);
+		ImageData imageData = null;
+
+		if (ComposedImage.class.isInstance(labelProviderImageResult)) {
+			labelProviderImageResult = ((ComposedImage) labelProviderImageResult).getImages().get(0);
+		}
+		if (URI.class.isInstance(labelProviderImageResult)) {
+			try {
+				labelProviderImageResult = new URL(((URI) labelProviderImageResult).toString());
+			} catch (final MalformedURLException ex) {
+				Activator.logException(ex);
+			}
+		}
+		if (URL.class.isInstance(labelProviderImageResult)) {
+			imageData = Activator.getImageData((URL) labelProviderImageResult);
+		} else {
+			imageData = Activator.getImageData((URL) null);
+		}
+		String overlayString = "icons/link_overlay.png";//$NON-NLS-1$
+		if (eReference.isContainment()) {
+			overlayString = "icons/containment_overlay.png";//$NON-NLS-1$
+		}
+		final ImageDescriptor addOverlay = Activator.getImageDescriptor(overlayString);
+		final OverlayImageDescriptor imageDescriptor = new OverlayImageDescriptor(imageData, addOverlay,
+			OverlayImageDescriptor.LOWER_RIGHT);
+		setImageDescriptor(imageDescriptor);
+
+		String attribute = itemPropertyDescriptor.getDisplayName(null);
+		// make singular attribute labels
+		// TODO language dependent
+		if (attribute.endsWith("ies")) {//$NON-NLS-1$
+			attribute = attribute.substring(0, attribute.length() - 3) + "y"; //$NON-NLS-1$
+		} else if (attribute.endsWith("s")) {//$NON-NLS-1$
+			attribute = attribute.substring(0, attribute.length() - 1);
+		}
+		setToolTipText(
+			LocalizationServiceHelper.getString(getClass(), ReferenceMessageKeys.AddReferenceAction_Link) + attribute);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public void run() {
+		final EReference eReference = (EReference) getSetting().getEStructuralFeature();
+		if (eReference.isContainment()) {
+			final MessageDialog dialog = getContainmentWarningDialog();
+			new ECPDialogExecutor(dialog) {
+				@Override
+				public void handleResult(int codeResult) {
+					if (codeResult == Window.OK) {
+						addExistingElementsToReferenceService(getSetting().getEObject(), (EReference) getSetting()
+							.getEStructuralFeature());
+					}
+				}
+			}.execute();
+		}
+		addExistingElementsToReferenceService(getSetting().getEObject(), (EReference) getSetting()
+			.getEStructuralFeature());
+	}
+
+	private void addExistingElementsToReferenceService(EObject eObject, EReference eReference) {
+		if (referenceService == null) {
+			return;
+		}
+		referenceService.addExistingModelElements(eObject, eReference);
+	}
+
+	private MessageDialog getContainmentWarningDialog() {
+		return new MessageDialog(null,
+			LocalizationServiceHelper.getString(AddReferenceAction.class,
+				ReferenceMessageKeys.AddReferenceAction_Confirmation),
+			null,
+			LocalizationServiceHelper.getString(AddReferenceAction.class,
+				ReferenceMessageKeys.AddReferenceAction_Warning),
+			MessageDialog.WARNING,
+			new String[] {
+				LocalizationServiceHelper.getString(AddReferenceAction.class,
+					ReferenceMessageKeys.AddReferenceAction_Yes),
+				LocalizationServiceHelper.getString(AddReferenceAction.class,
+					ReferenceMessageKeys.AddReferenceAction_No) },
+			0);
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/reference/DeleteReferenceAction.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/reference/DeleteReferenceAction.java
index 4835566..80a2df5 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/reference/DeleteReferenceAction.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/reference/DeleteReferenceAction.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2013 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
  *
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -15,10 +15,11 @@
 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.ecore.EStructuralFeature.Setting;
-import org.eclipse.emf.ecore.impl.DynamicEObjectImpl;
+import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecp.edit.internal.swt.Activator;
-import org.eclipse.emf.ecp.edit.internal.swt.reference.ActionMessages;
+import org.eclipse.emf.ecp.edit.internal.swt.reference.ReferenceMessageKeys;
 import org.eclipse.emf.ecp.edit.spi.ReferenceService;
 import org.eclipse.emf.ecp.edit.spi.swt.actions.ECPSWTAction;
 import org.eclipse.emf.edit.command.RemoveCommand;
@@ -26,8 +27,8 @@
 import org.eclipse.emf.edit.domain.EditingDomain;
 import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
 import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.window.Window;
 
@@ -44,26 +45,37 @@
 	 * The constructor for a delete reference action.
 	 *
 	 * @param editingDomain the {@link EditingDomain} to use
-	 * @param itemPropertyDescriptor the {@link IItemPropertyDescriptor} to use
 	 * @param setting the {@link Setting} to use
 	 * @param referenceService the {@link ReferenceService} to use
+	 * @since 1.6
 	 */
-	public DeleteReferenceAction(EditingDomain editingDomain, Setting setting,
-		IItemPropertyDescriptor itemPropertyDescriptor, ReferenceService referenceService) {
+	public DeleteReferenceAction(EditingDomain editingDomain, Setting setting, ReferenceService referenceService) {
 		super(editingDomain, setting);
 		// TODO remove PlatformUI
 
-		setImageDescriptor(Activator.getImageDescriptor("icons/delete.png")); //$NON-NLS-1$
-		setToolTipText(ActionMessages.DeleteReferenceAction_DeleteReference);
+		setImageDescriptor(Activator.getImageDescriptor("icons/unset_reference.png")); //$NON-NLS-1$
+		setToolTipText(LocalizationServiceHelper.getString(DeleteReferenceAction.class,
+			ReferenceMessageKeys.DeleteReferenceAction_DeleteReference));
+	}
+
+	/**
+	 * The constructor for a delete reference action.
+	 *
+	 * @param editingDomain The {@link EditingDomain} to use
+	 * @param eObject The {@link EObject} to use
+	 * @param structuralFeature The {@link EStructuralFeature} defining which feature of the {@link EObject} is used
+	 * @param referenceService The {@link ReferenceService} to use
+	 * @since 1.6
+	 */
+	public DeleteReferenceAction(EditingDomain editingDomain, EObject eObject, EStructuralFeature structuralFeature,
+		ReferenceService referenceService) {
+		this(editingDomain, ((InternalEObject) eObject).eSetting(structuralFeature), referenceService);
 	}
 
 	@Override
 	public void run() {
 		super.run();
-		// TODO: Reactivate
-		if (DynamicEObjectImpl.class.isInstance(getSetting().getEObject())) {
-			return;
-		}
+
 		final EReference reference = (EReference) getSetting().getEStructuralFeature();
 
 		if (reference.isContainment()) // &&
@@ -99,14 +111,27 @@
 		final AdapterFactoryItemDelegator adapterFactoryItemDelegator = new AdapterFactoryItemDelegator(adapterFactory);
 		// AdapterFactoryLabelProvider adapterFactoryLabelProvider = new AdapterFactoryLabelProvider(adapterFactory);
 		final String modelElementName = adapterFactoryItemDelegator.getText(toBeDeleted);
-		question = ActionMessages.DeleteReferenceAction_DeleteModelQuestion + modelElementName
-			+ ActionMessages.DeleteReferenceAction_Questionmark;
+		question = LocalizationServiceHelper.getString(DeleteReferenceAction.class,
+			ReferenceMessageKeys.DeleteReferenceAction_DeleteModelQuestion)
+			+ modelElementName
+			+ LocalizationServiceHelper.getString(DeleteReferenceAction.class,
+				ReferenceMessageKeys.DeleteReferenceAction_Questionmark);
 		// } else {
 		// question = "Do you really want to delete these " + toBeDeleted.size() + " model elements?";
 		// }
-		final MessageDialog dialog = new MessageDialog(null, ActionMessages.DeleteReferenceAction_Confirmation, null,
-			question, MessageDialog.QUESTION, new String[] { ActionMessages.DeleteReferenceAction_Yes,
-				ActionMessages.DeleteReferenceAction_No }, 0);
+		final MessageDialog dialog = new MessageDialog(
+			null,
+			LocalizationServiceHelper.getString(DeleteReferenceAction.class,
+				ReferenceMessageKeys.DeleteReferenceAction_Confirmation),
+			null,
+			question,
+			MessageDialog.QUESTION,
+			new String[] {
+				LocalizationServiceHelper.getString(DeleteReferenceAction.class,
+					ReferenceMessageKeys.DeleteReferenceAction_Yes),
+				LocalizationServiceHelper.getString(DeleteReferenceAction.class,
+					ReferenceMessageKeys.DeleteReferenceAction_No) },
+			0);
 
 		boolean confirm = false;
 		if (dialog.open() == Window.OK) {
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/reference/NewReferenceAction.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/reference/NewReferenceAction.java
index 7def8aa..0883501 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/reference/NewReferenceAction.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/reference/NewReferenceAction.java
@@ -1,160 +1,240 @@
-/*******************************************************************************

- * 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 v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- * Eugen Neufeld - initial API and implementation

- *

- *******************************************************************************/

-package org.eclipse.emf.ecp.edit.spi.swt.reference;

-

-import java.net.MalformedURLException;

-import java.net.URL;

-

-import org.eclipse.emf.common.util.URI;

-import org.eclipse.emf.ecore.EReference;

-import org.eclipse.emf.ecore.EStructuralFeature.Setting;

-import org.eclipse.emf.ecp.edit.internal.swt.Activator;

-import org.eclipse.emf.ecp.edit.internal.swt.reference.ActionMessages;

-import org.eclipse.emf.ecp.edit.internal.swt.util.OverlayImageDescriptor;

-import org.eclipse.emf.ecp.edit.spi.ReferenceService;

-import org.eclipse.emf.ecp.edit.spi.swt.actions.ECPSWTAction;

-import org.eclipse.emf.edit.domain.EditingDomain;

-import org.eclipse.emf.edit.provider.ComposedImage;

-import org.eclipse.emf.edit.provider.IItemLabelProvider;

-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;

-import org.eclipse.jface.resource.ImageDescriptor;

-import org.eclipse.swt.graphics.ImageData;

-

-/**

- * An Action for adding reference links to a model element. It is mainly used in the

- * {@link org.eclipse.emf.ecp.edit.internal.swt.reference.ReferenceMultiControl ReferenceMultiControl}

- *

- * @author shterev

- * @author Eugen Neufeld

- * @since 1.5

- */

-public class NewReferenceAction extends ECPSWTAction {

-

-	private final ReferenceService referenceService;

-

-	/**

-	 * The constructor for a new reference action.

-	 *

-	 * @param editingDomain the {@link EditingDomain} to use

-	 * @param itemPropertyDescriptor teh {@link IItemPropertyDescriptor} to use

-	 * @param setting the {@link Setting} to use

-	 * @param referenceService the {@link ReferenceService} to use

-	 */

-	public NewReferenceAction(EditingDomain editingDomain, Setting setting,

-		IItemPropertyDescriptor itemPropertyDescriptor, ReferenceService referenceService) {

-		super(editingDomain, setting);

-		this.referenceService = referenceService;

-		Object obj = null;

-		final EReference eReference = (EReference) getSetting().getEStructuralFeature();

-		// Only create a temporary object in order to get the correct icon from the label provider

-		// the actual ME is created later on.

-		if (!eReference.getEReferenceType().isAbstract()) {

-			obj = eReference.getEReferenceType().getEPackage().getEFactoryInstance()

-				.create(eReference.getEReferenceType());

-		}

-		final IItemLabelProvider labelProvider = itemPropertyDescriptor.getLabelProvider(

-			getSetting().getEObject());

-		Object labelProviderImageResult = labelProvider.getImage(obj);

-

-		ImageData imageData = null;

-

-		if (ComposedImage.class.isInstance(labelProviderImageResult)) {

-			labelProviderImageResult = ((ComposedImage) labelProviderImageResult).getImages().get(0);

-		}

-		if (URI.class.isInstance(labelProviderImageResult)) {

-			try {

-				labelProviderImageResult = new URL(((URI) labelProviderImageResult).toString());

-			} catch (final MalformedURLException ex) {

-				Activator.logException(ex);

-			}

-		}

-		if (URL.class.isInstance(labelProviderImageResult)) {

-			imageData = Activator.getImageData((URL) labelProviderImageResult);

-		}

-		else {

-			imageData = Activator.getImageData((URL) null);

-		}

-

-		final ImageDescriptor addOverlay = Activator.getImageDescriptor("icons/add_overlay.png");//$NON-NLS-1$

-		final OverlayImageDescriptor imageDescriptor = new OverlayImageDescriptor(imageData, addOverlay,

-			OverlayImageDescriptor.LOWER_RIGHT);

-		setImageDescriptor(imageDescriptor);

-

-		String attribute = itemPropertyDescriptor.getDisplayName(eReference);

-		// TODO language, same text as in addreference

-		// make singular attribute labels

-		if (attribute.endsWith("ies")) {//$NON-NLS-1$

-			attribute = attribute.substring(0, attribute.length() - 3) + "y";//$NON-NLS-1$

-		} else if (attribute.endsWith("s")) {//$NON-NLS-1$

-			attribute = attribute.substring(0, attribute.length() - 1);

-		}

-		setToolTipText(ActionMessages.NewReferenceAction_CreateAndLinkNew + attribute);

-	}

-

-	/**

-	 * Default constructor.

-	 *

-	 * @param modelElement

-	 *            the source model element

-	 * @param eReference

-	 *            the target reference

-	 * @param descriptor

-	 *            the descriptor used to generate display content

-	 * @param modelElementContext

-	 *            the model element context

-	 */

-	// public NewReferenceAction(EObject modelElement, EReference eReference, IItemPropertyDescriptor descriptor,

-	// EditModelElementContext modelElementContext, Shell shell, AdapterFactoryLabelProvider labelProvider) {

-	// this.modelElement = modelElement;

-	// this.eReference = eReference;

-	// this.modelElementContext = modelElementContext;

-	// this.shell = shell;

-	//

-	// Object obj = null;

-	// // Only create a temporary object in order to get the correct icon from the label provider

-	// // the actual ME is created later on.

-	// if (!eReference.getEReferenceType().isAbstract()) {

-	// obj = eReference.getEReferenceType().getEPackage().getEFactoryInstance()

-	// .create(eReference.getEReferenceType());

-	// }

-	// Image image = labelProvider.getImage(obj);

-	//

-	// ImageDescriptor addOverlay = Activator.getImageDescriptor("icons/add_overlay.png");//$NON-NLS-1$

-	// OverlayImageDescriptor imageDescriptor = new OverlayImageDescriptor(image, addOverlay,

-	// OverlayImageDescriptor.LOWER_RIGHT);

-	// setImageDescriptor(imageDescriptor);

-	//

-	// String attribute = descriptor.getDisplayName(eReference);

-	//

-	// // make singular attribute labels

-	// if (attribute.endsWith("ies")) {//$NON-NLS-1$

-	// attribute = attribute.substring(0, attribute.length() - 3) + "y";//$NON-NLS-1$

-	// } else if (attribute.endsWith("s")) {//$NON-NLS-1$

-	// attribute = attribute.substring(0, attribute.length() - 1);

-	// }

-	// setToolTipText(ActionMessages.NewReferenceAction_CreateAndLinkNew + attribute);

-	//

-	// }

-

-	/**

-	 * {@inheritDoc}

-	 */

-	@Override

-	public void run() {

-		// checks if we try to create a container for ourself, this is not allowed

-		final EReference eReference = (EReference) getSetting().getEStructuralFeature();

-		referenceService.addNewModelElements(getSetting().getEObject(),

-			eReference);

-	}

-

-}

+/*******************************************************************************
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.emf.ecp.edit.spi.swt.reference;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.common.util.URI;
+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.edit.internal.swt.Activator;
+import org.eclipse.emf.ecp.edit.internal.swt.reference.ReferenceMessageKeys;
+import org.eclipse.emf.ecp.edit.internal.swt.util.OverlayImageDescriptor;
+import org.eclipse.emf.ecp.edit.spi.ReferenceService;
+import org.eclipse.emf.ecp.edit.spi.swt.actions.ECPSWTAction;
+import org.eclipse.emf.ecp.edit.spi.swt.util.ECPDialogExecutor;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.provider.ComposedImage;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+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.LocalizationServiceHelper;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.graphics.ImageData;
+
+/**
+ * An Action for adding reference links to a model element. It is mainly used in the
+ * {@link org.eclipse.emf.ecp.edit.internal.swt.reference.ReferenceMultiControl ReferenceMultiControl}
+ *
+ * @author shterev
+ * @author Eugen Neufeld
+ * @since 1.5
+ */
+public class NewReferenceAction extends ECPSWTAction {
+
+	private final ReferenceService referenceService;
+
+	/**
+	 * The constructor for a new reference action.
+	 *
+	 * @param editingDomain the {@link EditingDomain} to use
+	 * @param setting the {@link Setting} to use
+	 * @param editSupport the {@link EMFFormsEditSupport} to use
+	 * @param labelProvider the {@link EMFFormsLabelProvider} to use
+	 * @param referenceService the {@link ReferenceService} to use
+	 * @param reportService the {@link ReportService} to use
+	 * @param domainModelReference the {@link VDomainModelReference} to use
+	 * @param domainModel the domain model of the given {@link VDomainModelReference}
+	 * @since 1.6
+	 *
+	 */
+	public NewReferenceAction(EditingDomain editingDomain, Setting setting, EMFFormsEditSupport editSupport,
+		EMFFormsLabelProvider labelProvider, ReferenceService referenceService, ReportService reportService,
+		VDomainModelReference domainModelReference, EObject domainModel) {
+		super(editingDomain, setting);
+		this.referenceService = referenceService;
+		Object obj = null;
+		final EReference eReference = (EReference) getSetting().getEStructuralFeature();
+		// Only create a temporary object in order to get the correct icon from the label provider
+		// the actual ME is created later on.
+		if (!eReference.getEReferenceType().isAbstract()) {
+			obj = eReference.getEReferenceType().getEPackage().getEFactoryInstance()
+				.create(eReference.getEReferenceType());
+		}
+		Object labelProviderImageResult = editSupport.getImage(domainModelReference, domainModel, obj);
+
+		ImageData imageData = null;
+
+		if (ComposedImage.class.isInstance(labelProviderImageResult)) {
+			labelProviderImageResult = ((ComposedImage) labelProviderImageResult).getImages().get(0);
+		}
+		if (URI.class.isInstance(labelProviderImageResult)) {
+			try {
+				labelProviderImageResult = new URL(((URI) labelProviderImageResult).toString());
+			} catch (final MalformedURLException ex) {
+				Activator.logException(ex);
+			}
+		}
+		if (URL.class.isInstance(labelProviderImageResult)) {
+			imageData = Activator.getImageData((URL) labelProviderImageResult);
+		} else {
+			imageData = Activator.getImageData((URL) null);
+		}
+
+		final ImageDescriptor addOverlay = Activator.getImageDescriptor("icons/add_overlay.png");//$NON-NLS-1$
+		final OverlayImageDescriptor imageDescriptor = new OverlayImageDescriptor(imageData, addOverlay,
+			OverlayImageDescriptor.LOWER_RIGHT);
+		setImageDescriptor(imageDescriptor);
+
+		String attribute;
+		try {
+			final IObservableValue displayName = labelProvider.getDisplayName(domainModelReference, domainModel);
+			attribute = (String) displayName.getValue();
+			displayName.dispose();
+		} catch (final NoLabelFoundException ex) {
+			reportService.report(new AbstractReport(ex));
+			setToolTipText(ex.getMessage());
+			return;
+		}
+		// TODO language, same text as in addreference
+		// make singular attribute labels
+		if (attribute.endsWith("ies")) {//$NON-NLS-1$
+			attribute = attribute.substring(0, attribute.length() - 3) + "y";//$NON-NLS-1$
+		} else if (attribute.endsWith("s")) {//$NON-NLS-1$
+			attribute = attribute.substring(0, attribute.length() - 1);
+		}
+		setToolTipText(LocalizationServiceHelper.getString(getClass(),
+			ReferenceMessageKeys.NewReferenceAction_CreateAndLinkNew)
+			+ attribute);
+	}
+
+	/**
+	 * The constructor for a new reference action.
+	 *
+	 * @param editingDomain The {@link EditingDomain} to use
+	 * @param eObject The {@link EObject} to use
+	 * @param structuralFeature The {@link EStructuralFeature} defining which feature of the {@link EObject} is used
+	 * @param editSupport The {@link EMFFormsEditSupport} to use
+	 * @param labelProvider the {@link EMFFormsLabelProvider} to use
+	 * @param referenceService The {@link ReferenceService} to use
+	 * @param reportService The {@link ReportService} to use
+	 * @param domainModelReference the {@link VDomainModelReference} to use
+	 * @param domainModel the domain model of the given {@link VDomainModelReference}
+	 * @since 1.6
+	 */
+	public NewReferenceAction(EditingDomain editingDomain, EObject eObject, EStructuralFeature structuralFeature,
+		EMFFormsEditSupport editSupport, EMFFormsLabelProvider labelProvider, ReferenceService referenceService,
+		ReportService reportService, VDomainModelReference domainModelReference, EObject domainModel) {
+		this(editingDomain, ((InternalEObject) eObject).eSetting(structuralFeature), editSupport, labelProvider,
+			referenceService, reportService, domainModelReference, domainModel);
+	}
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param modelElement
+	 *            the source model element
+	 * @param eReference
+	 *            the target reference
+	 * @param descriptor
+	 *            the descriptor used to generate display content
+	 * @param modelElementContext
+	 *            the model element context
+	 */
+	// public NewReferenceAction(EObject modelElement, EReference eReference, IItemPropertyDescriptor descriptor,
+	// EditModelElementContext modelElementContext, Shell shell, AdapterFactoryLabelProvider labelProvider) {
+	// this.modelElement = modelElement;
+	// this.eReference = eReference;
+	// this.modelElementContext = modelElementContext;
+	// this.shell = shell;
+	//
+	// Object obj = null;
+	// // Only create a temporary object in order to get the correct icon from the label provider
+	// // the actual ME is created later on.
+	// if (!eReference.getEReferenceType().isAbstract()) {
+	// obj = eReference.getEReferenceType().getEPackage().getEFactoryInstance()
+	// .create(eReference.getEReferenceType());
+	// }
+	// Image image = labelProvider.getImage(obj);
+	//
+	// ImageDescriptor addOverlay = Activator.getImageDescriptor("icons/add_overlay.png");//$NON-NLS-1$
+	// OverlayImageDescriptor imageDescriptor = new OverlayImageDescriptor(image, addOverlay,
+	// OverlayImageDescriptor.LOWER_RIGHT);
+	// setImageDescriptor(imageDescriptor);
+	//
+	// String attribute = descriptor.getDisplayName(eReference);
+	//
+	// // make singular attribute labels
+	// if (attribute.endsWith("ies")) {//$NON-NLS-1$
+	// attribute = attribute.substring(0, attribute.length() - 3) + "y";//$NON-NLS-1$
+	// } else if (attribute.endsWith("s")) {//$NON-NLS-1$
+	// attribute = attribute.substring(0, attribute.length() - 1);
+	// }
+	// setToolTipText(ActionMessages.NewReferenceAction_CreateAndLinkNew + attribute);
+	//
+	// }
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public void run() {
+		// checks if we try to create a container for ourself, this is not allowed
+		final EReference eReference = (EReference) getSetting().getEStructuralFeature();
+		if (eReference.isContainment() && getSetting().getEObject().eIsSet(eReference)) {
+			final MessageDialog dialog = getContainmentWarningDialog();
+			new ECPDialogExecutor(dialog) {
+				@Override
+				public void handleResult(int codeResult) {
+					if (codeResult == Window.OK) {
+						addNewElementsToReferenceService(getSetting().getEObject(), eReference);
+					}
+				}
+			}.execute();
+		}
+		addNewElementsToReferenceService(getSetting().getEObject(), eReference);
+	}
+
+	private void addNewElementsToReferenceService(EObject eObject, EReference eReference) {
+		if (referenceService == null) {
+			return;
+		}
+		referenceService.addNewModelElements(eObject, eReference);
+	}
+
+	private MessageDialog getContainmentWarningDialog() {
+		return new MessageDialog(null,
+			LocalizationServiceHelper.getString(NewReferenceAction.class,
+				ReferenceMessageKeys.NewReferenceAction_Confirmation),
+			null,
+			LocalizationServiceHelper.getString(NewReferenceAction.class,
+				ReferenceMessageKeys.NewReferenceAction_Warning),
+			MessageDialog.WARNING,
+			new String[] {
+				LocalizationServiceHelper.getString(NewReferenceAction.class,
+					ReferenceMessageKeys.NewReferenceAction_Yes),
+				LocalizationServiceHelper.getString(NewReferenceAction.class,
+					ReferenceMessageKeys.NewReferenceAction_No) },
+			0);
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/table/ECPCellEditor.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/table/ECPCellEditor.java
index d69ae0e..7d25838 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/table/ECPCellEditor.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/table/ECPCellEditor.java
@@ -12,6 +12,7 @@
  *******************************************************************************/

 package org.eclipse.emf.ecp.edit.spi.swt.table;

 

+import org.eclipse.core.databinding.DataBindingContext;

 import org.eclipse.core.databinding.UpdateValueStrategy;

 import org.eclipse.core.databinding.property.value.IValueProperty;

 import org.eclipse.emf.ecore.EStructuralFeature;

@@ -60,7 +61,7 @@
 

 	/**

 	 * This returns the Image which will be shown in the table when no cell editor is open.

-	 * 

+	 *

 	 * @param value the Object to get the Image for

 	 * @return the image

 	 */

@@ -78,16 +79,20 @@
 	/**

 	 * This {@link UpdateValueStrategy} will be used as the target to model strategy during data binding.

 	 *

-	 * @return the stratefy

+	 * @param databindingContext The {@link DataBindingContext} used by this strategy

+	 * @return the strategy

+	 * @since 1.6

 	 */

-	UpdateValueStrategy getTargetToModelStrategy();

+	UpdateValueStrategy getTargetToModelStrategy(DataBindingContext databindingContext);

 

 	/**

 	 * This {@link UpdateValueStrategy} will be used as the model to target strategy during data binding.

 	 *

-	 * @return the stratefy

+	 * @param databindingContext The {@link DataBindingContext} used by this strategy

+	 * @return the strategy

+	 * @since 1.6

 	 */

-	UpdateValueStrategy getModelToTargetStrategy();

+	UpdateValueStrategy getModelToTargetStrategy(DataBindingContext databindingContext);

 

 	/**

 	 * Sets editable state of the cell editor.

@@ -95,4 +100,12 @@
 	 * @param editable <code>true</code> if editable, <code>false</code> otherwise

 	 */

 	void setEditable(boolean editable);

+

+	/**

+	 * Returns the minimum width of the cell editor.

+	 *

+	 * @return the minimum width

+	 * @since 1.6

+	 */

+	int getMinWidth();

 }

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 6fbf481..f912be2 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
@@ -11,6 +11,7 @@
  *******************************************************************************/
 package org.eclipse.emf.ecp.edit.spi.swt.table;
 
+import org.eclipse.core.databinding.DataBindingContext;
 import org.eclipse.core.databinding.UpdateValueStrategy;
 import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.emf.ecore.EStructuralFeature;
@@ -107,10 +108,11 @@
 	 *
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getTargetToModelStrategy()
+	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getTargetToModelStrategy(org.eclipse.core.databinding.DataBindingContext)
+	 * @since 1.6
 	 */
 	@Override
-	public UpdateValueStrategy getTargetToModelStrategy() {
+	public UpdateValueStrategy getTargetToModelStrategy(DataBindingContext databindingContext) {
 		// TODO Auto-generated method stub
 		return null;
 	}
@@ -119,10 +121,11 @@
 	 *
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getModelToTargetStrategy()
+	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getModelToTargetStrategy(org.eclipse.core.databinding.DataBindingContext)
+	 * @since 1.6
 	 */
 	@Override
-	public UpdateValueStrategy getModelToTargetStrategy() {
+	public UpdateValueStrategy getModelToTargetStrategy(DataBindingContext databindingContext) {
 		// TODO Auto-generated method stub
 		return null;
 	}
@@ -142,7 +145,7 @@
 
 	/**
 	 * {@inheritDoc}
-	 * 
+	 *
 	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getImage(java.lang.Object)
 	 */
 	@Override
@@ -150,4 +153,15 @@
 		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/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.edit/.settings/.api_filters
index ff8aa5a..45eed6e 100644
--- a/bundles/org.eclipse.emf.ecp.edit/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.edit/.settings/.api_filters
@@ -13,10 +13,10 @@
                 <message_argument value="1.4.0"/>
             </message_arguments>
         </filter>
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
@@ -44,6 +44,30 @@
             </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
     <resource path="src/org/eclipse/emf/ecp/edit/spi/ECPAbstractControl.java" type="org.eclipse.emf.ecp.edit.spi.ECPAbstractControl">
         <filter comment="This class is SPI" id="337682486">
             <message_arguments>
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 51e6009..9f57111 100644
--- a/bundles/org.eclipse.emf.ecp.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.edit/META-INF/MANIFEST.MF
@@ -2,20 +2,25 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name
 Bundle-SymbolicName: org.eclipse.emf.ecp.edit;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.internal.edit.Activator
 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)";visibility:=reexport,
+ org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
  org.eclipse.emf.ecp.view.context;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.model;bundle-version="[1.5.0,2.0.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.5.0,2.0.0)"
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.6.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.ecp.edit.spi;version="1.5.1",org.eclip
- se.emf.ecp.edit.spi.util;version="1.5.1",org.eclipse.emf.ecp.internal
- .edit;version="1.5.1";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.edit.spi;version="1.6.0",org.eclip
+ se.emf.ecp.edit.spi.util;version="1.6.0",org.eclipse.emf.ecp.internal
+ .edit;version="1.6.0";x-internal:=true
 Service-Component: OSGI-INF/ecpControlFactory.xml
 Bundle-Vendor: %Bundle-Vendor
+Import-Package: org.eclipse.emf.ecp.view.model.common.edit.provider;version="1.6.0",
+ org.eclipse.emfforms.spi.common.report;version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="1.6.0"
diff --git a/bundles/org.eclipse.emf.ecp.edit/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.emf.ecp.edit/OSGI-INF/l10n/bundle.properties
index 8bd8840..ef330b3 100644
--- a/bundles/org.eclipse.emf.ecp.edit/OSGI-INF/l10n/bundle.properties
+++ b/bundles/org.eclipse.emf.ecp.edit/OSGI-INF/l10n/bundle.properties
@@ -15,3 +15,6 @@
 Bundle-Name = ECP Edit
 
 extension-point.controls = ECP Controls
+
+CONTROLFACTROY_CANNOT_BE_LOADED=\ cannot be loaded because bundle 
+CONTROLFACTORY_CANNOT_BE_RESOLVED=\ cannot be resolved
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.edit/pom.xml b/bundles/org.eclipse.emf.ecp.edit/pom.xml
index e463b93..ec0d3f2 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/edit/spi/DeleteService.java b/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/edit/spi/DeleteService.java
new file mode 100644
index 0000000..273de59
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/edit/spi/DeleteService.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.edit.spi;
+
+import java.util.Collection;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelService;
+
+/**
+ * The DeleteService is used by renderers in order to delete objects from the containment tree.
+ *
+ * @author jfaltermeier
+ * @since 1.6
+ *
+ */
+public interface DeleteService extends ViewModelService {
+
+	/**
+	 * Deletes the given objects from the containment tree. This will cut all references to the deleted objects.
+	 *
+	 * @param toDelete the objects to delete
+	 */
+	void deleteElements(Collection<Object> toDelete);
+
+	/**
+	 * Deletes the given object from the containment tree. This will cut all references to the deleted object.
+	 *
+	 * @param toDelete the object to delete
+	 */
+	void deleteElement(Object toDelete);
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/edit/spi/ECPAbstractControl.java b/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/edit/spi/ECPAbstractControl.java
index e3c08c2..87fd332 100644
--- a/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/edit/spi/ECPAbstractControl.java
+++ b/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/edit/spi/ECPAbstractControl.java
@@ -11,16 +11,19 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.edit.spi;
 
-import java.util.Iterator;
 import java.util.Locale;
 
 import org.eclipse.core.databinding.DataBindingContext;
+import org.eclipse.core.databinding.observable.IObserving;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notifier;
 import org.eclipse.emf.common.util.Diagnostic;
 import org.eclipse.emf.databinding.EMFDataBindingContext;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecp.internal.edit.Activator;
 import org.eclipse.emf.ecp.view.model.common.edit.provider.CustomReflectiveItemProviderAdapterFactory;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
@@ -35,6 +38,8 @@
 import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
 import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 
 /**
  * The {@link ECPAbstractControl} is the abstract class describing a control.
@@ -192,20 +197,21 @@
 	 */
 	public final Setting getFirstSetting() {
 		if (firstSetting == null) {
-			final Iterator<Setting> iterator = control.getDomainModelReference().getIterator();
-			int count = 0;
-			firstSetting = null;
-			while (iterator.hasNext()) {
-				count++;
-				final Setting setting = iterator.next();
-				if (firstSetting == null) {
-					firstSetting = setting;
-				}
+			IObservableValue observableValue;
+			try {
+				observableValue = Activator.getDefault().getEMFFormsDatabinding()
+					.getObservableValue(control.getDomainModelReference(), getViewModelContext().getDomainModel());
+			} catch (final DatabindingFailedException ex) {
+				Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+				throw new IllegalStateException("The databinding failed due to an incorrect VDomainModelReference: " //$NON-NLS-1$
+					+ ex.getMessage());
 			}
-			if (count == 0) {
-				Activator.logException(new IllegalArgumentException(control.getName() + " : " + //$NON-NLS-1$
-					"The passed VDomainModelReference resolves to no setting.")); //$NON-NLS-1$
-			}
+			final InternalEObject internalEObject = (InternalEObject) ((IObserving) observableValue).getObserved();
+			final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+			observableValue.dispose();
+
+			firstSetting = internalEObject.eSetting(structuralFeature);
+			return firstSetting;
 		}
 		return firstSetting;
 	}
@@ -218,22 +224,15 @@
 	 */
 	public final EStructuralFeature getFirstStructuralFeature() {
 		if (firstFeature == null) {
-			final Iterator<EStructuralFeature> iterator = control.getDomainModelReference()
-				.getEStructuralFeatureIterator();
-			int count = 0;
-			firstFeature = null;
-			while (iterator.hasNext()) {
-				count++;
-				if (firstFeature == null) {
-					firstFeature = iterator.next();
-				} else {
-					iterator.next();
-				}
-			}
-			if (count == 0) {
+			IValueProperty valueProperty;
+			try {
+				valueProperty = Activator.getDefault().getEMFFormsDatabinding()
+					.getValueProperty(control.getDomainModelReference(), viewModelContext.getDomainModel());
+			} catch (final DatabindingFailedException ex) {
 				throw new IllegalArgumentException(
 					"The passed VDomainModelReference resolves to no EStructuralFeature."); //$NON-NLS-1$
 			}
+			firstFeature = (EStructuralFeature) valueProperty.getValueType();
 		}
 		return firstFeature;
 	}
diff --git a/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/edit/spi/ECPControlFactory.java b/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/edit/spi/ECPControlFactory.java
index ff1aee7..afd7575 100644
--- a/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/edit/spi/ECPControlFactory.java
+++ b/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/edit/spi/ECPControlFactory.java
@@ -14,11 +14,12 @@
 
 import java.util.Set;
 
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
 
 /**
  * The ControlFactory provides a
- * method ({@link ECPControlFactory#createControl(Class, VDomainModelReference)}) for creating a
+ * method ({@link ECPControlFactory#createControl(Class,EObject, VDomainModelReference)}) for creating a
  * suitable
  * control with the known widgets.
  *
@@ -35,13 +36,14 @@
 	 * Creates an {@link ECPAbstractControl} based on a {@link Class} and the {@link VDomainModelReference}.
 	 *
 	 * @param controlTypeClass the type of the control to return
+	 * @param domainModel The domain model object which is the root of the domain model reference
 	 * @param domainModelReference the {@link VDomainModelReference} to use to identify the control
 	 * @param <T> the type of the control to return
 	 * @return the found control or null
 	 *
-	 * @since 1.2
+	 * @since 1.6
 	 */
-	<T> T createControl(Class<T> controlTypeClass, VDomainModelReference domainModelReference);
+	<T> T createControl(Class<T> controlTypeClass, EObject domainModel, VDomainModelReference domainModelReference);
 
 	/**
 	 * Creates an {@link ECPAbstractControl} based on an id.
diff --git a/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/edit/spi/EMFDeleteServiceImpl.java b/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/edit/spi/EMFDeleteServiceImpl.java
new file mode 100644
index 0000000..73b13d5
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/edit/spi/EMFDeleteServiceImpl.java
@@ -0,0 +1,143 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.edit.spi;
+
+import java.util.Collection;
+import java.util.Collections;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.edit.command.ChangeCommand;
+import org.eclipse.emf.edit.command.DeleteCommand;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+
+/**
+ * Default EMF implementation of the {@link DeleteService}. Uses {@link DeleteCommand}
+ * respectively.
+ *
+ * @author jfaltermeier
+ * @since 1.6
+ *
+ */
+public class EMFDeleteServiceImpl implements DeleteService {
+
+	private EditingDomain editingDomain;
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelService#instantiate(org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
+	 */
+	@Override
+	public void instantiate(ViewModelContext context) {
+		editingDomain = AdapterFactoryEditingDomain
+			.getEditingDomainFor(context.getDomainModel());
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelService#dispose()
+	 */
+	@Override
+	public void dispose() {
+		// no op
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelService#getPriority()
+	 */
+	@Override
+	public int getPriority() {
+		return 1;
+	}
+
+	/**
+	 *
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.edit.spi.DeleteService#deleteElements(java.util.Collection)
+	 */
+	@Override
+	public void deleteElements(final Collection<Object> toDelete) {
+		if (toDelete == null || toDelete.isEmpty()) {
+			return;
+		}
+
+		if (editingDomain == null) {
+			deleteWithoutEditingDomain(toDelete);
+			return;
+		}
+
+		final Command deleteCommand = DeleteCommand.create(editingDomain, toDelete);
+		if (deleteCommand.canExecute()) {
+			if (editingDomain.getCommandStack() == null) {
+				deleteCommand.execute();
+			} else {
+				editingDomain.getCommandStack().execute(deleteCommand);
+			}
+			return;
+		}
+
+		/*
+		 * the default DeleteCommand cannot be executed for whatever reason.
+		 * Wrap the default delete in a change command for undo support.
+		 */
+		final Command changeCommand = new ChangeCommand(editingDomain.getResourceSet()) {
+			@Override
+			protected void doExecute() {
+				deleteWithoutEditingDomain(toDelete);
+			}
+		};
+		if (changeCommand.canExecute()) {
+			if (editingDomain.getCommandStack() == null) {
+				changeCommand.execute();
+			} else {
+				editingDomain.getCommandStack().execute(changeCommand);
+			}
+			return;
+		}
+
+		throw new IllegalStateException("Delete was not successful."); //$NON-NLS-1$
+	}
+
+	private void deleteWithoutEditingDomain(Collection<Object> toDelete) {
+		for (final Object object : toDelete) {
+			final Object unwrap = AdapterFactoryEditingDomain.unwrap(object);
+			if (!EObject.class.isInstance(unwrap)) {
+				continue;
+			}
+			EcoreUtil.delete(EObject.class.cast(unwrap), true);
+		}
+	}
+
+	/**
+	 *
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.edit.spi.DeleteService#deleteElement(java.lang.Object)
+	 */
+	@Override
+	public void deleteElement(Object toDelete) {
+		if (toDelete == null) {
+			return;
+		}
+		/* delete command for collections/single object works the same */
+		deleteElements(Collections.singleton(toDelete));
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/edit/spi/ViewLocaleService.java b/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/edit/spi/ViewLocaleService.java
index 41eaba1..e654f2d 100644
--- a/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/edit/spi/ViewLocaleService.java
+++ b/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/edit/spi/ViewLocaleService.java
@@ -20,8 +20,11 @@
  *
  * @author Eugen Neufeld
  * @since 1.2
- *
+ * @deprecated Please use the {@link org.eclipse.emfforms.spi.core.services.locale.EMFFormsLocaleProvider
+ *             EMFFormsLocaleProvider}
  */
+@SuppressWarnings("javadoc")
+@Deprecated
 public interface ViewLocaleService extends ViewModelService {
 
 	/**
diff --git a/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/edit/spi/util/ECPApplicableTester.java b/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/edit/spi/util/ECPApplicableTester.java
index 7c80d44..bfaac19 100644
--- a/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/edit/spi/util/ECPApplicableTester.java
+++ b/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/edit/spi/util/ECPApplicableTester.java
@@ -51,7 +51,9 @@
 	 * @return {@link #NOT_APPLICABLE} if the corresponding control should not be used, a positivie integer value
 	 *         otherwise. The control with the highest priority will be taken.
 	 * @since 1.2
+	 * @deprecated Do not use. Use {@link #isApplicable(EObject, EStructuralFeature)} instead.
 	 */
+	@Deprecated
 	int isApplicable(VDomainModelReference domainModelReference);
 
 	/**
diff --git a/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/edit/spi/util/ECPStaticApplicableTester.java b/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/edit/spi/util/ECPStaticApplicableTester.java
index 05928ad..c0956fb 100644
--- a/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/edit/spi/util/ECPStaticApplicableTester.java
+++ b/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/edit/spi/util/ECPStaticApplicableTester.java
@@ -12,13 +12,10 @@
  *******************************************************************************/
 package org.eclipse.emf.ecp.edit.spi.util;
 
-import java.util.Iterator;
-
 import org.eclipse.emf.ecore.EAttribute;
 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.ecp.view.spi.model.VDomainModelReference;
 import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
 
@@ -74,17 +71,7 @@
 	@Deprecated
 	@Override
 	public int isApplicable(VDomainModelReference domainModelReference) {
-		final Iterator<Setting> iterator = domainModelReference.getIterator();
-		int count = 0;
-		Setting setting = null;
-		while (iterator.hasNext()) {
-			count++;
-			setting = iterator.next();
-		}
-		if (count != 1) {
-			return NOT_APPLICABLE;
-		}
-		return isApplicable(setting.getEObject(), setting.getEStructuralFeature());
+		return NOT_APPLICABLE;
 	}
 
 	/**
diff --git a/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/internal/edit/Activator.java b/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/internal/edit/Activator.java
index 73757ea..e39c0f1 100644
--- a/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/internal/edit/Activator.java
+++ b/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/internal/edit/Activator.java
@@ -15,7 +15,10 @@
 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.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;

 import org.osgi.framework.BundleContext;

+import org.osgi.framework.ServiceReference;

 

 /**

  * Activator class.

@@ -35,6 +38,8 @@
 	 */

 	private static Activator plugin;

 

+	private ServiceReference<ReportService> reportServiceReference;

+

 	/**

 	 * The constructor.

 	 */

@@ -75,4 +80,33 @@
 			new Status(IStatus.ERROR, Activator.getDefault().getBundle().getSymbolicName(), e.getMessage(), e));

 	}

 

+	/**

+	 * Returns the {@link ReportService}.

+	 *

+	 * @return the {@link ReportService}

+	 */

+	public ReportService getReportService() {

+		if (reportServiceReference == null) {

+			reportServiceReference = plugin.getBundle().getBundleContext()

+				.getServiceReference(ReportService.class);

+		}

+		return plugin.getBundle().getBundleContext().getService(reportServiceReference);

+	}

+

+	/**

+	 * Returns the {@link EMFFormsDatabinding} service.

+	 *

+	 * @return The {@link EMFFormsDatabinding}

+	 */

+	public EMFFormsDatabinding getEMFFormsDatabinding() {

+		final ServiceReference<EMFFormsDatabinding> serviceReference = plugin.getBundle().getBundleContext()

+			.getServiceReference(EMFFormsDatabinding.class);

+

+		final EMFFormsDatabinding service = plugin.getBundle().getBundleContext()

+			.getService(serviceReference);

+		plugin.getBundle().getBundleContext().ungetService(serviceReference);

+

+		return service;

+	}

+

 }

diff --git a/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/internal/edit/ControlFactoryImpl.java b/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/internal/edit/ControlFactoryImpl.java
index 2378807..23d1119 100644
--- a/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/internal/edit/ControlFactoryImpl.java
+++ b/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/internal/edit/ControlFactoryImpl.java
@@ -16,21 +16,27 @@
 import java.util.HashSet;
 import java.util.Set;
 
+import org.eclipse.core.databinding.observable.IObserving;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecp.edit.spi.ECPAbstractControl;
 import org.eclipse.emf.ecp.edit.spi.ECPControlDescription;
 import org.eclipse.emf.ecp.edit.spi.ECPControlFactory;
 import org.eclipse.emf.ecp.edit.spi.util.ECPApplicableTester;
 import org.eclipse.emf.ecp.edit.spi.util.ECPStaticApplicableTester;
 import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
 import org.osgi.framework.Bundle;
 
 /**
  * The ControlFactoryImpl is a Singleton which reads the org.eclipse.emf.ecp.editor.widgets ExtensionPoint and provides
- * a method ({@link #createControl(Class, VDomainModelReference)}) for creating a suitable
+ * a method ({@link #createControl(Class, EObject, VDomainModelReference)}) for creating a suitable
  * control for with the known widgets.
  *
  * @author Eugen Neufeld
@@ -122,9 +128,12 @@
 	private static <T> Class<T> loadClass(String bundleName, String clazz) throws ClassNotFoundException {
 		final Bundle bundle = Platform.getBundle(bundleName);
 		if (bundle == null) {
-			throw new ClassNotFoundException(clazz + EditMessages.CONTROLFACTROY_CANNOT_BE_LOADED
+			throw new ClassNotFoundException(clazz
+				+ LocalizationServiceHelper.getString(ControlFactoryImpl.class,
+					MessageKeys.CONTROLFACTROY_CANNOT_BE_LOADED)
 				+ bundleName
-				+ EditMessages.CONTROLFACTORY_CANNOT_BE_RESOLVED);
+				+ LocalizationServiceHelper.getString(ControlFactoryImpl.class,
+					MessageKeys.CONTROLFACTORY_CANNOT_BE_RESOLVED));
 		}
 		return (Class<T>) bundle.loadClass(clazz);
 
@@ -133,13 +142,14 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.edit.spi.ECPControlFactory#createControl(java.lang.Class,
+	 * @see org.eclipse.emf.ecp.edit.spi.ECPControlFactory#createControl(java.lang.Class, org.eclipse.emf.ecore.EObject,
 	 *      org.eclipse.emf.ecp.view.spi.model.VDomainModelReference)
 	 */
 	@Override
-	public <T> T createControl(Class<T> controlType, VDomainModelReference domainModelReference) {
+	public <T> T createControl(Class<T> controlType, EObject domainModel, VDomainModelReference domainModelReference) {
 
-		final ECPControlDescription controlDescription = getControlCandidate(controlType, domainModelReference);
+		final ECPControlDescription controlDescription = getControlCandidate(controlType, domainModel,
+			domainModelReference);
 		if (controlDescription == null) {
 			return null;
 		}
@@ -201,13 +211,25 @@
 		return null;
 	}
 
-	private ECPControlDescription getControlCandidate(Class<?> controlClass,
+	private ECPControlDescription getControlCandidate(Class<?> controlClass, EObject domainModel,
 		VDomainModelReference domainModelReference) {
 		int highestPriority = -1;
 		ECPControlDescription bestCandidate = null;
 		if (domainModelReference == null) {
 			return bestCandidate;
 		}
+		IObservableValue observableValue;
+		try {
+			observableValue = Activator.getDefault().getEMFFormsDatabinding()
+				.getObservableValue(domainModelReference, domainModel);
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+			return bestCandidate;
+		}
+		final EObject eObject = (EObject) ((IObserving) observableValue).getObserved();
+		final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+		observableValue.dispose();
+
 		for (final ECPControlDescription description : controlDescriptors) {
 
 			if (!controlClass.isAssignableFrom(description.getControlClass())) {
@@ -216,7 +238,7 @@
 			int currentPriority = -1;
 
 			for (final ECPApplicableTester tester : description.getTester()) {
-				final int testerPriority = tester.isApplicable(domainModelReference);
+				final int testerPriority = tester.isApplicable(eObject, structuralFeature);
 				if (testerPriority > currentPriority) {
 					currentPriority = testerPriority;
 				}
diff --git a/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/internal/edit/EditMessages.java b/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/internal/edit/EditMessages.java
deleted file mode 100644
index 2c5e282..0000000
--- a/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/internal/edit/EditMessages.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 EclipseSource.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource - initial API and implementation
- *
- *******************************************************************************/
-package org.eclipse.emf.ecp.internal.edit;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * The Class EditMessages.
- *
- * @generated
- */
-public final class EditMessages extends NLS {
-
-	private static final String BUNDLE_NAME = "org.eclipse.emf.ecp.internal.edit.messages"; //$NON-NLS-1$
-
-	/** The Control factory impl_ cannot be loaded because bundle. */
-	public static String CONTROLFACTROY_CANNOT_BE_LOADED;
-
-	/** The Control factory impl_ cannot be resolved. */
-	public static String CONTROLFACTORY_CANNOT_BE_RESOLVED;
-
-	private EditMessages() {
-	}
-
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, EditMessages.class);
-	}
-
-}
diff --git a/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/internal/edit/MessageKeys.java b/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/internal/edit/MessageKeys.java
new file mode 100644
index 0000000..950b478
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/internal/edit/MessageKeys.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.internal.edit;
+
+/**
+ * Keys for translated strings.
+ *
+ * @author Eugen Neufeld
+ * @generated
+ */
+public interface MessageKeys {
+	String CONTROLFACTROY_CANNOT_BE_LOADED = "CONTROLFACTROY_CANNOT_BE_LOADED"; //$NON-NLS-1$
+
+	/** The Control factory impl_ cannot be resolved. */
+	String CONTROLFACTORY_CANNOT_BE_RESOLVED = "CONTROLFACTORY_CANNOT_BE_RESOLVED"; //$NON-NLS-1$
+}
diff --git a/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/internal/edit/messages.properties b/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/internal/edit/messages.properties
deleted file mode 100644
index bb5ef08..0000000
--- a/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/internal/edit/messages.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2013 EclipseSource.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#    EclipseSource - initial API and implementation
-################################################################################
-
-CONTROLFACTROY_CANNOT_BE_LOADED=\ cannot be loaded because bundle 
-CONTROLFACTORY_CANNOT_BE_RESOLVED=\ cannot be resolved
diff --git a/bundles/org.eclipse.emf.ecp.editor.e3/.gitignore b/bundles/org.eclipse.emf.ecp.editor.e3/.gitignore
index ea8c4bf..d9d66d8 100644
--- a/bundles/org.eclipse.emf.ecp.editor.e3/.gitignore
+++ b/bundles/org.eclipse.emf.ecp.editor.e3/.gitignore
@@ -1 +1,2 @@
 /target
+/bin/
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 d54cdbf..7aa9761 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,7 +2,7 @@
 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.editor.internal.e3.Activator
 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)",
@@ -15,6 +15,7 @@
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 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.6.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",
@@ -35,6 +36,6 @@
  org.eclipse.ui.plugin;version="0.0.0",
  org.eclipse.ui.services;version="0.0.0"
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.editor.e3;version="1.5.1";x-friend
+Export-Package: org.eclipse.emf.ecp.editor.e3;version="1.6.0";x-friend
  s:="org.eclipse.emf.ecp.explorereditorbridge",org.eclipse.emf.ecp.edi
- tor.internal.e3;version="1.5.1";x-internal:=true
+ tor.internal.e3;version="1.6.0";x-internal:=true
diff --git a/bundles/org.eclipse.emf.ecp.editor.e3/pom.xml b/bundles/org.eclipse.emf.ecp.editor.e3/pom.xml
index 47ad7ae..843c27e 100644
--- a/bundles/org.eclipse.emf.ecp.editor.e3/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.editor.e3/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.editor.e3/src/org/eclipse/emf/ecp/editor/e3/MEEditorInput.java b/bundles/org.eclipse.emf.ecp.editor.e3/src/org/eclipse/emf/ecp/editor/e3/MEEditorInput.java
index db5fb4b..82fd88a 100644
--- a/bundles/org.eclipse.emf.ecp.editor.e3/src/org/eclipse/emf/ecp/editor/e3/MEEditorInput.java
+++ b/bundles/org.eclipse.emf.ecp.editor.e3/src/org/eclipse/emf/ecp/editor/e3/MEEditorInput.java
@@ -97,6 +97,9 @@
 			if (modelElementContext == other.modelElementContext) {

 				return true;

 			}

+			if (other.modelElementContext == null) {

+				return false;

+			}

 			final boolean ret = modelElementContext.getDomainObject().equals(

 				other.modelElementContext.getDomainObject());

 			return ret;

diff --git a/bundles/org.eclipse.emf.ecp.editor.e3/src/org/eclipse/emf/ecp/editor/internal/e3/Activator.java b/bundles/org.eclipse.emf.ecp.editor.e3/src/org/eclipse/emf/ecp/editor/internal/e3/Activator.java
index 465b173..3a46113 100644
--- a/bundles/org.eclipse.emf.ecp.editor.e3/src/org/eclipse/emf/ecp/editor/internal/e3/Activator.java
+++ b/bundles/org.eclipse.emf.ecp.editor.e3/src/org/eclipse/emf/ecp/editor/internal/e3/Activator.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
-import org.eclipse.emf.ecp.view.spi.model.reporting.ReportService;
+import org.eclipse.emfforms.spi.common.report.ReportService;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.ui.plugin.AbstractUIPlugin;
 import org.osgi.framework.BundleContext;
diff --git a/bundles/org.eclipse.emf.ecp.editor.e3/src/org/eclipse/emf/ecp/editor/internal/e3/MEEditorPage.java b/bundles/org.eclipse.emf.ecp.editor.e3/src/org/eclipse/emf/ecp/editor/internal/e3/MEEditorPage.java
index e271311..59a19fd 100644
--- a/bundles/org.eclipse.emf.ecp.editor.e3/src/org/eclipse/emf/ecp/editor/internal/e3/MEEditorPage.java
+++ b/bundles/org.eclipse.emf.ecp.editor.e3/src/org/eclipse/emf/ecp/editor/internal/e3/MEEditorPage.java
@@ -13,8 +13,9 @@
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecp.edit.spi.DeleteService;
 import org.eclipse.emf.ecp.editor.e3.ECPEditorContext;
+import org.eclipse.emf.ecp.spi.ui.ECPDeleteServiceImpl;
 import org.eclipse.emf.ecp.spi.ui.ECPReferenceServiceImpl;
 import org.eclipse.emf.ecp.ui.view.ECPRendererException;
 import org.eclipse.emf.ecp.ui.view.swt.ECPSWTView;
@@ -24,8 +25,6 @@
 import org.eclipse.emf.ecp.view.spi.model.VView;
 import org.eclipse.emf.ecp.view.spi.provider.ViewProviderHelper;
 import org.eclipse.emf.ecp.view.spi.swt.reporting.RenderingFailedReport;
-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.provider.ReflectiveItemProviderAdapterFactory;
 import org.eclipse.jface.action.Action;
@@ -61,6 +60,7 @@
 
 	private ComposedAdapterFactory composedAdapterFactory;
 	private ECPSWTView ecpView;
+	private DeleteService deleteService;
 
 	/**
 	 * Default constructor.
@@ -125,8 +125,9 @@
 
 		final EObject domainObject = modelElementContext.getDomainObject();
 		final VView view = ViewProviderHelper.getView(domainObject, null);
+		deleteService = new ECPDeleteServiceImpl();
 		final ViewModelContext vmc = ViewModelContextFactory.INSTANCE.createViewModelContext(view, domainObject,
-			new ECPReferenceServiceImpl());
+			new ECPReferenceServiceImpl(), deleteService);
 		try {
 			ecpView = ECPSWTViewRenderer.INSTANCE.render(body, vmc);
 		} catch (final ECPRendererException ex) {
@@ -183,23 +184,12 @@
 
 		form.getToolBarManager().add(new Action("", Activator.getImageDescriptor(ISharedImages.IMG_TOOL_DELETE)) { //$NON-NLS-1$
 
-				@Override
-				public void run() {
-					final EditingDomain editingDomain = AdapterFactoryEditingDomain
-						.getEditingDomainFor(modelElementContext
-							.getDomainObject());
-					new ECPCommand(modelElementContext.getDomainObject(), editingDomain) {
-
-						@Override
-						protected void doRun() {
-							EcoreUtil.delete(modelElementContext.getDomainObject(), true);
-						}
-
-					}.run(true);
-
-					MEEditorPage.this.getEditor().close(true);
-				}
-			});
+			@Override
+			public void run() {
+				deleteService.deleteElement(modelElementContext.getDomainObject());
+				MEEditorPage.this.getEditor().close(true);
+			}
+		});
 		menuService.populateContributionManager((ContributionManager) form.getToolBarManager(),
 			TOOLBAR_ORG_ECLIPSE_EMF_ECP_EDITOR_INTERNAL_E3_ME_EDITOR_PAGE);
 		form.getToolBarManager().update(true);
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.checkstyle b/bundles/org.eclipse.emf.ecp.emfstore.core.rap/.checkstyle
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.checkstyle
copy to bundles/org.eclipse.emf.ecp.emfstore.core.rap/.checkstyle
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.classpath b/bundles/org.eclipse.emf.ecp.emfstore.core.rap/.classpath
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.table.editor/.classpath
rename to bundles/org.eclipse.emf.ecp.emfstore.core.rap/.classpath
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.core.rap/.project b/bundles/org.eclipse.emf.ecp.emfstore.core.rap/.project
new file mode 100644
index 0000000..b76d767
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.emfstore.core.rap/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emf.ecp.emfstore.core.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>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.editor/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.emf.ecp.emfstore.core.rap/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.resources.prefs
copy to bundles/org.eclipse.emf.ecp.emfstore.core.rap/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.emf.ecp.emfstore.core.rap/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.runtime.prefs
copy to bundles/org.eclipse.emf.ecp.emfstore.core.rap/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emf.ecp.emfstore.core.rap/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.core.prefs
copy to bundles/org.eclipse.emf.ecp.emfstore.core.rap/.settings/org.eclipse.jdt.core.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.emf.ecp.emfstore.core.rap/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.launching.prefs
copy to bundles/org.eclipse.emf.ecp.emfstore.core.rap/.settings/org.eclipse.jdt.launching.prefs
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.emf.ecp.emfstore.core.rap/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
rename from examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.settings/org.eclipse.jdt.ui.prefs
rename to bundles/org.eclipse.emf.ecp.emfstore.core.rap/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.emf.ecp.emfstore.core.rap/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to bundles/org.eclipse.emf.ecp.emfstore.core.rap/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.emfstore.core.rap/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.api.tools.prefs
copy to bundles/org.eclipse.emf.ecp.emfstore.core.rap/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.emf.ecp.emfstore.core.rap/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.prefs
copy to bundles/org.eclipse.emf.ecp.emfstore.core.rap/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..1eda477
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.emfstore.core.rap/META-INF/MANIFEST.MF
@@ -0,0 +1,13 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: ECP EMFStore Core RAP
+Bundle-SymbolicName: org.eclipse.emf.ecp.emfstore.core.rap
+Bundle-Version: 1.6.0.qualifier
+Bundle-Activator: org.eclipse.emf.ecp.emfstore.internal.core.rap.Activator
+Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.emf.ecp.core.rap;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.5.0,2.0.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.emf.ecp.emfstore.internal.core.rap;version="1.6.0";x-internal:=true
+Bundle-Vendor: Eclipse Modeling Project
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/about.html b/bundles/org.eclipse.emf.ecp.emfstore.core.rap/about.html
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.table.editor/about.html
rename to bundles/org.eclipse.emf.ecp.emfstore.core.rap/about.html
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.core.rap/build.properties b/bundles/org.eclipse.emf.ecp.emfstore.core.rap/build.properties
new file mode 100644
index 0000000..9cbab3c
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.emfstore.core.rap/build.properties
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               about.html
+src.includes = about.html
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.core.rap/pom.xml b/bundles/org.eclipse.emf.ecp.emfstore.core.rap/pom.xml
new file mode 100644
index 0000000..b6580a5
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.emfstore.core.rap/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.6.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.6.0-SNAPSHOT</version>
+  <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.core.rap/src/org/eclipse/emf/ecp/emfstore/internal/core/rap/Activator.java b/bundles/org.eclipse.emf.ecp.emfstore.core.rap/src/org/eclipse/emf/ecp/emfstore/internal/core/rap/Activator.java
new file mode 100644
index 0000000..e8a521f
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.emfstore.core.rap/src/org/eclipse/emf/ecp/emfstore/internal/core/rap/Activator.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Neil Mackenzie - initial implementation
+ * Johannes Faltermeier - moved from ecp.core.rap
+ ******************************************************************************/
+package org.eclipse.emf.ecp.emfstore.internal.core.rap;
+
+import java.util.Dictionary;
+import java.util.Hashtable;
+
+import org.eclipse.core.runtime.Plugin;
+import org.eclipse.emf.ecp.emfstore.core.internal.ESWorkspaceProviderProvider;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.Constants;
+
+/**
+ * Activator.
+ *
+ */
+public class Activator extends Plugin {
+
+	@Override
+	public final void start(final BundleContext context) throws Exception {
+		final Dictionary<String, Object> dictionary =
+			new Hashtable<String, Object>();
+		dictionary.put(Constants.SERVICE_RANKING, 1000);
+		context.registerService(ESWorkspaceProviderProvider.class,
+			new ESWorkspaceProviderProviderFactory(), dictionary);
+		super.start(context);
+	}
+
+	@Override
+	public void stop(final BundleContext context) throws Exception {
+
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.core.rap/src/org/eclipse/emf/ecp/emfstore/internal/core/rap/ESWorkspaceProviderProviderFactory.java b/bundles/org.eclipse.emf.ecp.emfstore.core.rap/src/org/eclipse/emf/ecp/emfstore/internal/core/rap/ESWorkspaceProviderProviderFactory.java
new file mode 100644
index 0000000..7820c51
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.emfstore.core.rap/src/org/eclipse/emf/ecp/emfstore/internal/core/rap/ESWorkspaceProviderProviderFactory.java
@@ -0,0 +1,97 @@
+/*******************************************************************************
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Neil Mackenzie - initial implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.emfstore.internal.core.rap;
+
+import org.eclipse.emf.ecp.core.rap.SessionProvider;
+import org.eclipse.emf.ecp.emfstore.core.internal.ESWorkspaceProviderProvider;
+import org.eclipse.emf.ecp.emfstore.core.internal.ESWorkspaceProviderProviderImpl;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceFactory;
+import org.osgi.framework.ServiceReference;
+import org.osgi.framework.ServiceRegistration;
+
+/**
+ * This is the factory for creating the ESWorkspaceProviderProvider service.
+ *
+ * @author neilmack
+ *
+ */
+public class ESWorkspaceProviderProviderFactory implements ServiceFactory<ESWorkspaceProviderProvider> {
+
+	/**
+	 * The session provider used to retrieve the current session.
+	 */
+	private SessionProvider sessionProvider;
+
+	/**
+	 * default constructor.
+	 */
+	public ESWorkspaceProviderProviderFactory() {
+		init();
+	}
+
+	/**
+	 * initialise the factory.
+	 */
+	public void init() {
+		getSessionProvider();
+	}
+
+	/**
+	 * this class retrieves the session provider. If the sessionProvider is
+	 * not set yet then it is created and set.
+	 *
+	 * @return the session provider
+	 */
+	private SessionProvider getSessionProvider() {
+		if (sessionProvider == null) {
+			final BundleContext bundleContext =
+				FrameworkUtil.getBundle(getClass()).getBundleContext();
+			final ServiceReference<SessionProvider> serviceReference =
+				bundleContext.getServiceReference(SessionProvider.class);
+			sessionProvider = bundleContext.getService(serviceReference);
+		}
+		return sessionProvider;
+	}
+
+	/**
+	 * this method returns the ESWorkspaceProviderProvider
+	 * service for the current session.
+	 * It is called by the OSGI framework.
+	 *
+	 * @param bundle the OSGI bundle
+	 * @param registration the service registration
+	 *
+	 * @return the service
+	 */
+	@Override
+	public final ESWorkspaceProviderProvider getService(final Bundle bundle,
+		final ServiceRegistration<ESWorkspaceProviderProvider> registration) {
+		ESWorkspaceProviderProvider esWorkspaceProviderProvider;
+		final String sessionId = getSessionProvider().getSessionId();
+
+		esWorkspaceProviderProvider =
+			new ESWorkspaceProviderProviderImpl(sessionId);
+		return esWorkspaceProviderProvider;
+	}
+
+	@Override
+	public void ungetService(final Bundle bundle,
+		final ServiceRegistration<ESWorkspaceProviderProvider> registration,
+		final ESWorkspaceProviderProvider service) {
+		// TODO Auto-generated method stub
+
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.core/.gitignore b/bundles/org.eclipse.emf.ecp.emfstore.core/.gitignore
index ea8c4bf..d9d66d8 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.core/.gitignore
+++ b/bundles/org.eclipse.emf.ecp.emfstore.core/.gitignore
@@ -1 +1,2 @@
 /target
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.core/.project b/bundles/org.eclipse.emf.ecp.emfstore.core/.project
index d86526d..3f8ef89 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.core/.project
+++ b/bundles/org.eclipse.emf.ecp.emfstore.core/.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.emfstore.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.emfstore.core/META-INF/MANIFEST.MF
index a87abef..a9f5226 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP EMFStore Provider Core Plugin
 Bundle-SymbolicName: org.eclipse.emf.ecp.emfstore.core;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.emfstore.core.internal.Activator
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.emf.ecp.core;bundle-version="[1.5.0,2.0.0)",
@@ -10,9 +10,13 @@
  org.eclipse.net4j.util;bundle-version="[3.0.0,4.0.0)"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.ecp.emfstore.core.internal;version="1.
- 5.1"; x-friends:="org.eclipse.emf.ecp.emfstore.ui,  org.eclipse.emf.e
- cp.emfstore.ui.search,  org.eclipse.emf.ecp.view.ui.editor.test,  org
- .eclipse.emf.ecp.emfstore.ui.e3,  org.eclipse.emf.ecp.emfstore.ui.e4,
-   org.eclipse.emf.ecp.changebroker.emfstore"
+Export-Package: org.eclipse.emf.ecp.emfstore.core.internal;version="1.6.0";
+  x-friends:="org.eclipse.emf.ecp.emfstore.ui,
+   org.eclipse.emf.ecp.emfstore.ui.search,
+   org.eclipse.emf.ecp.view.ui.editor.test,
+   org.eclipse.emf.ecp.emfstore.ui.e3,
+   org.eclipse.emf.ecp.emfstore.ui.e4,
+   org.eclipse.emf.ecp.changebroker.emfstore,
+   org.eclipse.emf.ecp.emfstore.core.rap"
+Service-Component:  OSGI-INF/esWorkspaceProviderProvider.xml
 Bundle-Vendor: Eclipse Modeling Project
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.core/OSGI-INF/esWorkspaceProviderProvider.xml b/bundles/org.eclipse.emf.ecp.emfstore.core/OSGI-INF/esWorkspaceProviderProvider.xml
new file mode 100644
index 0000000..f4753f8
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.emfstore.core/OSGI-INF/esWorkspaceProviderProvider.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" immediate="false" name="org.eclipse.emf.ecp.emfstore.core.internal.esWorkspaceProviderProvider">
+   <implementation class="org.eclipse.emf.ecp.emfstore.core.internal.ESWorkspaceProviderProviderImpl"/>
+   <service>
+      <provide interface="org.eclipse.emf.ecp.emfstore.core.internal.ESWorkspaceProviderProvider"/>
+   </service>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.core/build.properties b/bundles/org.eclipse.emf.ecp.emfstore.core/build.properties
index 2af274d..f994921 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.core/build.properties
+++ b/bundles/org.eclipse.emf.ecp.emfstore.core/build.properties
@@ -8,5 +8,6 @@
                about.ini,\

                about.mappings,\

                about.properties,\

-               modeling32.png

+               modeling32.png,\

+               OSGI-INF/

 src.includes = about.html

diff --git a/bundles/org.eclipse.emf.ecp.emfstore.core/pom.xml b/bundles/org.eclipse.emf.ecp.emfstore.core/pom.xml
index 0592acf..d35ff33 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.core/src/org/eclipse/emf/ecp/emfstore/core/internal/Activator.java b/bundles/org.eclipse.emf.ecp.emfstore.core/src/org/eclipse/emf/ecp/emfstore/core/internal/Activator.java
index c2f59fe..0d25541 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.core/src/org/eclipse/emf/ecp/emfstore/core/internal/Activator.java
+++ b/bundles/org.eclipse.emf.ecp.emfstore.core/src/org/eclipse/emf/ecp/emfstore/core/internal/Activator.java
@@ -1,100 +1,121 @@
-/*******************************************************************************

- * Copyright (c) 2011-2012 EclipseSource Muenchen GmbH and others.

- *

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- * Eugen Neufeld - initial API and implementation

- *

- *******************************************************************************/

-package org.eclipse.emf.ecp.emfstore.core.internal;

-

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.core.runtime.IStatus;

-import org.eclipse.core.runtime.Plugin;

-import org.eclipse.core.runtime.Status;

-import org.osgi.framework.BundleContext;

-

-/**

- * The activator class controls the plug-in life cycle.

- */

-public class Activator extends Plugin {

-

-	/** The plug-in ID. **/

-	public static final String PLUGIN_ID = "org.eclipse.emf.ecp.emfstore.core"; //$NON-NLS-1$

-

-	/** The shared instance. **/

-	private static Activator plugin;

-

-	/**

-	 * The constructor.

-	 */

-	public Activator() {

-	}

-

-	/** {@inheritDoc} **/

-	@Override

-	public void start(BundleContext context) throws Exception {

-		super.start(context);

-		plugin = this;

-	}

-

-	/** {@inheritDoc} **/

-	@Override

-	public void stop(BundleContext context) throws Exception {

-		plugin = null;

-		super.stop(context);

-	}

-

-	/**

-	 * Returns the shared instance.

-	 *

-	 * @return the shared instance

-	 */

-	public static Activator getDefault() {

-		return plugin;

-	}

-

-	private static void log(IStatus status) {

-		plugin.getLog().log(status);

-	}

-

-	/**

-	 * Logs a message with a specific status.

-	 *

-	 * @param status the {@link IStatus} value

-	 * @param message the message to log

-	 */

-	public static void log(int status, String message) {

-		plugin.getLog().log(new Status(status, PLUGIN_ID, message));

-	}

-

-	/**

-	 * Logs a {@link Throwable}.

-	 *

-	 * @param t the {@link Throwable}

-	 * @return the message of the {@link Throwable}

-	 */

-	public static String log(Throwable t) {

-		final IStatus status = getStatus(t);

-		log(status);

-		return status.getMessage();

-	}

-

-	private static IStatus getStatus(Throwable t) {

-		if (t instanceof CoreException) {

-			final CoreException coreException = (CoreException) t;

-			return coreException.getStatus();

-		}

-

-		String msg = t.getLocalizedMessage();

-		if (msg == null || msg.length() == 0) {

-			msg = t.getClass().getName();

-		}

-

-		return new Status(IStatus.ERROR, PLUGIN_ID, msg, t);

-	}

-}

+/*******************************************************************************
+ * Copyright (c) 2011-2012 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.emf.ecp.emfstore.core.internal;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Plugin;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.emfstore.internal.client.model.ESWorkspaceProviderImpl;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * The activator class controls the plug-in life cycle.
+ */
+public class Activator extends Plugin {
+
+	/** The plug-in ID. **/
+	public static final String PLUGIN_ID = "org.eclipse.emf.ecp.emfstore.core"; //$NON-NLS-1$
+
+	/** The shared instance. **/
+	private static Activator plugin;
+
+	/**
+	 * The constructor.
+	 */
+	public Activator() {
+	}
+
+	/** {@inheritDoc} **/
+	@Override
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+	}
+
+	/** {@inheritDoc} **/
+	@Override
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance.
+	 *
+	 * @return the shared instance
+	 */
+	public static Activator getDefault() {
+		return plugin;
+	}
+
+	private static void log(IStatus status) {
+		plugin.getLog().log(status);
+	}
+
+	/**
+	 * Logs a message with a specific status.
+	 *
+	 * @param status the {@link IStatus} value
+	 * @param message the message to log
+	 */
+	public static void log(int status, String message) {
+		plugin.getLog().log(new Status(status, PLUGIN_ID, message));
+	}
+
+	/**
+	 * Logs a {@link Throwable}.
+	 *
+	 * @param t the {@link Throwable}
+	 * @return the message of the {@link Throwable}
+	 */
+	public static String log(Throwable t) {
+		final IStatus status = getStatus(t);
+		log(status);
+		return status.getMessage();
+	}
+
+	private static IStatus getStatus(Throwable t) {
+		if (t instanceof CoreException) {
+			final CoreException coreException = (CoreException) t;
+			return coreException.getStatus();
+		}
+
+		String msg = t.getLocalizedMessage();
+		if (msg == null || msg.length() == 0) {
+			msg = t.getClass().getName();
+		}
+
+		return new Status(IStatus.ERROR, PLUGIN_ID, msg, t);
+	}
+
+	/**
+	 * Helper method to obtain the relevant ESWorkspaceProvider.
+	 *
+	 * @return the {@link ESWorkspaceProviderImpl}
+	 */
+	public static ESWorkspaceProviderImpl getESWorkspaceProviderInstance() {
+		// TODO Auto-generated method stub
+		ESWorkspaceProviderProvider esWorkspaceProviderProvider = null;
+		final ServiceReference<ESWorkspaceProviderProvider> serviceRef = plugin.getBundle().getBundleContext()
+			.getServiceReference(ESWorkspaceProviderProvider.class);
+		esWorkspaceProviderProvider = plugin.getBundle().getBundleContext().getService(serviceRef);
+		// because we are using a service factory for the RAP implementation we must unget
+		// the service so that the service factory is called again on each call. otherwise
+		// the service factor will keep returning the same cached instance as the reference
+		// count of the service will remain greater than zero
+		plugin.getBundle().getBundleContext().ungetService(serviceRef);
+		return esWorkspaceProviderProvider.getESWorkspaceProviderInstance();
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.core/src/org/eclipse/emf/ecp/emfstore/core/internal/ECPEMFUtils.java b/bundles/org.eclipse.emf.ecp.emfstore.core/src/org/eclipse/emf/ecp/emfstore/core/internal/ECPEMFUtils.java
new file mode 100644
index 0000000..647b641
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.emfstore.core/src/org/eclipse/emf/ecp/emfstore/core/internal/ECPEMFUtils.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * neilmack - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.emfstore.core.internal;
+
+import org.eclipse.emf.emfstore.internal.client.model.ESWorkspaceProviderImpl;
+
+/**
+ * @author neilmack
+ *
+ */
+public abstract class ECPEMFUtils {
+
+	/**
+	 * Helper method to get the instance of the {@link ESWorkspaceProviderImpl}.
+	 *
+	 * @return the {@link ESWorkspaceProviderImpl}
+	 * @since 1.5
+	 */
+	public static ESWorkspaceProviderImpl getESWorkspaceProviderInstance() {
+		return Activator.getESWorkspaceProviderInstance();
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.core/src/org/eclipse/emf/ecp/emfstore/core/internal/EMFStoreProvider.java b/bundles/org.eclipse.emf.ecp.emfstore.core/src/org/eclipse/emf/ecp/emfstore/core/internal/EMFStoreProvider.java
index bf99db9..9dab5dc 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.core/src/org/eclipse/emf/ecp/emfstore/core/internal/EMFStoreProvider.java
+++ b/bundles/org.eclipse.emf.ecp.emfstore.core/src/org/eclipse/emf/ecp/emfstore/core/internal/EMFStoreProvider.java
@@ -31,10 +31,13 @@
 import org.eclipse.emf.common.notify.Notifier;
 import org.eclipse.emf.common.notify.impl.AdapterImpl;
 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.EReference;
 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.core.ECPProject;
 import org.eclipse.emf.ecp.core.ECPRepository;
 import org.eclipse.emf.ecp.core.util.ECPContainer;
@@ -50,16 +53,13 @@
 import org.eclipse.emf.emfstore.client.ESRemoteProject;
 import org.eclipse.emf.emfstore.client.ESServer;
 import org.eclipse.emf.emfstore.client.ESWorkspace;
-import org.eclipse.emf.emfstore.client.ESWorkspaceProvider;
 import org.eclipse.emf.emfstore.client.util.ESVoidCallable;
 import org.eclipse.emf.emfstore.client.util.RunESCommand;
 import org.eclipse.emf.emfstore.internal.client.model.Configuration;
 import org.eclipse.emf.emfstore.internal.client.model.ESWorkspaceProviderImpl;
 import org.eclipse.emf.emfstore.internal.client.model.ProjectSpace;
-import org.eclipse.emf.emfstore.internal.client.model.ServerInfo;
 import org.eclipse.emf.emfstore.internal.client.model.impl.ProjectSpaceImpl;
 import org.eclipse.emf.emfstore.internal.client.model.impl.api.ESLocalProjectImpl;
-import org.eclipse.emf.emfstore.internal.client.model.impl.api.ESWorkspaceImpl;
 import org.eclipse.emf.emfstore.internal.client.model.util.EMFStoreClientUtil;
 import org.eclipse.emf.emfstore.internal.client.model.util.EMFStoreCommand;
 import org.eclipse.emf.emfstore.internal.client.observers.OperationObserver;
@@ -77,6 +77,7 @@
  * @author Eugen Neufeld
  */
 public final class EMFStoreProvider extends DefaultProvider {
+
 	/**
 	 * This is the name of the EMFStore Provider.
 	 */
@@ -84,7 +85,10 @@
 
 	/**
 	 * EMFStore Provider Singleton.
+	 *
+	 * @deprecated use ECPUtil.getECPProviderRegistry().getProvider(EMFStoreProvider.NAME) instead
 	 */
+	@Deprecated
 	public static EMFStoreProvider INSTANCE;
 
 	/**
@@ -132,7 +136,7 @@
 	@Override
 	public EditingDomain createEditingDomain(final InternalProject project) {
 
-		final EditingDomain domain = ((ESWorkspaceImpl) ESWorkspaceProvider.INSTANCE.getWorkspace()).toInternalAPI()
+		final EditingDomain domain = ECPEMFUtils.getESWorkspaceProviderInstance().getWorkspace().toInternalAPI()
 			.getEditingDomain();
 
 		return domain;
@@ -353,10 +357,16 @@
 	@Override
 	public Iterator<EObject> getLinkElements(InternalProject project, EObject modelElement, EReference eReference) {
 		final Collection<EObject> result = new HashSet<EObject>();
+		final EClass elementClass = modelElement.eClass();
+		EClassifier type = EcoreUtil.getReifiedType(elementClass, eReference.getEGenericType()).getEClassifier();
+		if (type == null) {
+			type = eReference.getEType();
+		}
+
 		// TODO EMFStore does it work with ESLocalProject?
 		final ProjectSpace projectSpace = ((ESLocalProjectImpl) getProjectSpace(project)).toInternalAPI();
 		ItemPropertyDescriptor.collectReachableObjectsOfType(new HashSet<EObject>(), result, projectSpace.getProject(),
-			eReference.getEType());
+			type);
 		return result.iterator();
 	}
 
@@ -449,6 +459,7 @@
 			final EObject eObject = (EObject) element;
 			ProjectSpace ps = null;
 			try {
+
 				ps = ESWorkspaceProviderImpl.getProjectSpace(eObject);
 			} catch (final IllegalArgumentException iae) {
 				return null;
@@ -502,7 +513,8 @@
 
 		if (projectSpace == null) {
 			boolean found = false;
-			final List<ESLocalProject> localProjects = ESWorkspaceProvider.INSTANCE.getWorkspace().getLocalProjects();
+			final List<ESLocalProject> localProjects = ECPEMFUtils.getESWorkspaceProviderInstance().getWorkspace()
+				.getLocalProjects();
 			for (final ESLocalProject localProject : localProjects) {
 				final String projectSpaceID = internalProject.getProperties().getValue(
 					EMFStoreProvider.PROP_PROJECTSPACEID);
@@ -514,7 +526,7 @@
 			}
 
 			if (!found && createNewIfNeeded) {
-				projectSpace = ESWorkspaceProvider.INSTANCE.getWorkspace()
+				projectSpace = ECPEMFUtils.getESWorkspaceProviderInstance().getWorkspace()
 					.createLocalProject(internalProject.getName());
 				internalProject.getProperties().addProperty(EMFStoreProvider.PROP_PROJECTSPACEID,
 					projectSpace.getLocalProjectId().getId());
@@ -526,7 +538,8 @@
 	}
 
 	/**
-	 * This retrieves the {@link ServerInfo} from an {@link InternalRepository}.
+	 * This retrieves the {@link org.eclipse.emf.emfstore.internal.client.model.ServerInfo} from an
+	 * {@link InternalRepository}.
 	 * First it checks whether the {@link InternalRepository} has a ServerInfoID attached.
 	 * If an ID is attached, a ServerInfo is searched with this ID.
 	 * If no ID is attached or now ServerInfo was found a default ServerInfo is created.
@@ -539,7 +552,7 @@
 
 		if (serverInfo == null) {
 
-			final ESWorkspace workspace = ESWorkspaceProvider.INSTANCE.getWorkspace();
+			final ESWorkspace workspace = ECPEMFUtils.getESWorkspaceProviderInstance().getWorkspace();
 			boolean foundExisting = false;
 
 			for (final ESServer info : workspace.getServers()) {
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.core/src/org/eclipse/emf/ecp/emfstore/core/internal/ESWorkspaceProviderProvider.java b/bundles/org.eclipse.emf.ecp.emfstore.core/src/org/eclipse/emf/ecp/emfstore/core/internal/ESWorkspaceProviderProvider.java
new file mode 100644
index 0000000..7b02be5
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.emfstore.core/src/org/eclipse/emf/ecp/emfstore/core/internal/ESWorkspaceProviderProvider.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * neilmack - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.emfstore.core.internal;
+
+import org.eclipse.emf.emfstore.internal.client.model.ESWorkspaceProviderImpl;
+
+/**
+ * @author neilmack
+ *
+ *         This interace provides the relevant ESWorkspaceProviderImpl
+ * @since 1.5
+ */
+public interface ESWorkspaceProviderProvider {
+
+	/**
+	 * @return an {@link ESWorkspaceProviderImpl}
+	 */
+	ESWorkspaceProviderImpl getESWorkspaceProviderInstance();
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.core/src/org/eclipse/emf/ecp/emfstore/core/internal/ESWorkspaceProviderProviderImpl.java b/bundles/org.eclipse.emf.ecp.emfstore.core/src/org/eclipse/emf/ecp/emfstore/core/internal/ESWorkspaceProviderProviderImpl.java
new file mode 100644
index 0000000..812cb0f
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.emfstore.core/src/org/eclipse/emf/ecp/emfstore/core/internal/ESWorkspaceProviderProviderImpl.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * neilmack - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.emfstore.core.internal;
+
+import org.eclipse.emf.emfstore.internal.client.model.ESWorkspaceProviderImpl;
+
+/**
+ * @author neilmack
+ *
+ *         This class provides the relevant ESWorkspaceProvider
+ */
+public class ESWorkspaceProviderProviderImpl implements ESWorkspaceProviderProvider {
+
+	private String token;
+
+	/**
+	 * Default constructor.
+	 */
+	public ESWorkspaceProviderProviderImpl() {
+
+	}
+
+	/**
+	 * constructor. This constructor takes a token, the getESWorkspaceProviderInstance mothod
+	 * of instances that have a token will try to recieve ESWorkspaceProviderImpl with the same token.
+	 * This constructor is useful in applications where there may be more than one ESWorkspaceProviderInstance
+	 * such as web based applications
+	 *
+	 * @param aToken a token to associate with the instance
+	 */
+	public ESWorkspaceProviderProviderImpl(String aToken) {
+
+		token = aToken;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.emfstore.core.internal.ESWorkspaceProviderProvider#getESWorkspaceProviderInstance()
+	 */
+	@Override
+	public ESWorkspaceProviderImpl getESWorkspaceProviderInstance() {
+		// TODO Auto-generated method stub
+		if (token == null) {
+			return ESWorkspaceProviderImpl.getInstance();
+		}
+		return ESWorkspaceProviderImpl.getInstance(token);
+
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.localserver/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.emfstore.localserver/META-INF/MANIFEST.MF
index fddab8b..fa32ba1 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.localserver/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.emfstore.localserver/META-INF/MANIFEST.MF
@@ -2,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Local EMFstore
 Bundle-SymbolicName: org.eclipse.emf.ecp.emfstore.localserver;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.emfstore.localserver.internal.Activator
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.6.0,4.0.0)",
  org.eclipse.emf.emfstore.server;bundle-version="[1.3.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emf.ecp.emfstore.localserver.internal;version="1.3.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.emfstore.localserver.internal;version="1.6.0";x-internal:=true
 Bundle-Vendor: Eclipse Modeling Project
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.localserver/pom.xml b/bundles/org.eclipse.emf.ecp.emfstore.localserver/pom.xml
index f01822f..d0c9889 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.localserver/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.emfstore.localserver/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.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.localserver</artifactId>
-  <version>1.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.ui.e3/.gitignore b/bundles/org.eclipse.emf.ecp.emfstore.ui.e3/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.emfstore.ui.e3/.gitignore
@@ -0,0 +1 @@
+/bin/
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 2b72f97..7fbcb16 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP EMFStore E3
 Bundle-SymbolicName: org.eclipse.emf.ecp.emfstore.ui.e3;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.emf.ecp.core;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.5.0,2.0.0)",
@@ -31,8 +31,8 @@
  org.eclipse.ui.handlers;version="0.0.0",
  org.eclipse.ui.plugin;version="0.0.0"
 Export-Package: org.eclipse.emf.ecp.emfstore.internal.ui.decorator;ver
- sion="1.5.1";x-internal:=true,org.eclipse.emf.ecp.emfstore.internal.u
- i.e3;version="1.5.1";x-internal:=true,org.eclipse.emf.ecp.emfstore.in
- ternal.ui.handler;version="1.5.1";x-internal:=true;uses:="org.eclipse
+ sion="1.6.0";x-internal:=true,org.eclipse.emf.ecp.emfstore.internal.u
+ i.e3;version="1.6.0";x-internal:=true,org.eclipse.emf.ecp.emfstore.in
+ ternal.ui.handler;version="1.6.0";x-internal:=true;uses:="org.eclipse
  .core.commands"
 Bundle-Activator: org.eclipse.emf.ecp.emfstore.internal.ui.e3.Activator
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.ui.e3/plugin.xml b/bundles/org.eclipse.emf.ecp.emfstore.ui.e3/plugin.xml
index afb83c1..c23becd 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.ui.e3/plugin.xml
+++ b/bundles/org.eclipse.emf.ecp.emfstore.ui.e3/plugin.xml
@@ -648,11 +648,6 @@
       <observer
             logoutObserver="org.eclipse.emf.ecp.emfstore.internal.ui.decorator.RepositoryViewLabelDecorator">
       </observer>
-   </extension> <extension
-         point="org.eclipse.emf.emfstore.client.commitObserver">
-      <observer
-            commitObserver="org.eclipse.emf.ecp.emfstore.internal.ui.decorator.EMFStoreDirtyDecorator">
-      </observer>
    </extension>
                 <extension
                       point="org.eclipse.emf.emfstore.client.shareObserver">
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 cc01bc9..b8e07e7 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.ui.e3/src/org/eclipse/emf/ecp/emfstore/internal/ui/decorator/EMFStoreDirtyObserver.java b/bundles/org.eclipse.emf.ecp.emfstore.ui.e3/src/org/eclipse/emf/ecp/emfstore/internal/ui/decorator/EMFStoreDirtyObserver.java
index 4d1c5a5..7153146 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.ui.e3/src/org/eclipse/emf/ecp/emfstore/internal/ui/decorator/EMFStoreDirtyObserver.java
+++ b/bundles/org.eclipse.emf.ecp.emfstore.ui.e3/src/org/eclipse/emf/ecp/emfstore/internal/ui/decorator/EMFStoreDirtyObserver.java
@@ -1,200 +1,204 @@
-/*******************************************************************************

- * Copyright (c) 2011-2012 EclipseSource Muenchen GmbH and others.

- *

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- * Eugen Neufeld - initial API and implementation

- *

- *******************************************************************************/

-package org.eclipse.emf.ecp.emfstore.internal.ui.decorator;

-

-import java.util.HashMap;

-import java.util.HashSet;

-import java.util.Map;

-import java.util.Set;

-

-import org.eclipse.emf.ecore.EObject;

-import org.eclipse.emf.ecp.spi.core.InternalProject;

-import org.eclipse.emf.emfstore.internal.client.model.ProjectSpace;

-import org.eclipse.emf.emfstore.internal.client.observers.OperationObserver;

-import org.eclipse.emf.emfstore.internal.common.model.ModelElementId;

-import org.eclipse.emf.emfstore.internal.common.model.Project;

-import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.AbstractOperation;

-import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.CreateDeleteOperation;

-import org.eclipse.swt.widgets.Display;

-import org.eclipse.ui.IDecoratorManager;

-import org.eclipse.ui.PlatformUI;

-

-/**

- * Project change observer that marks elements as dirty.

- *

- * @author Tobias Verhoeven

- */

-public class EMFStoreDirtyObserver implements OperationObserver {

-

-	private static final String DIRTYDECORATORID = "org.eclipse.emf.ecp.emfstore.ui.decorators.EMFStoreDirtyDecorator"; //$NON-NLS-1$

-	private ProjectSpace projectSpace;

-	private InternalProject internalProject;

-	private final Map<ModelElementId, Integer> modelElementIdToOperationCount = new HashMap<ModelElementId, Integer>();

-	private Set<EObject> lastAffected;

-	private int operations;

-

-	/**

-	 * Default constructor.

-	 *

-	 * @param projectSpace the ProjectSpace of the decorator

-	 * @param project the ecpproject of the decorator

-	 */

-	public EMFStoreDirtyObserver(ProjectSpace projectSpace, InternalProject project) {

-		this.projectSpace = projectSpace;

-		internalProject = project;

-

-		if (!projectSpace.isShared()) {

-			return;

-		}

-		initCachedTree(projectSpace);

-	}

-

-	private void initCachedTree(ProjectSpace ps) {

-		for (final AbstractOperation operation : ps.getOperations()) {

-			operations++;

-			for (final ModelElementId modelElementId : operation.getAllInvolvedModelElements()) {

-				final EObject element = ps.getProject().getModelElement(modelElementId);

-				if (element != null) {

-					EMFStoreDirtyDecoratorCachedTree.getInstance(internalProject).addOperation(element);

-				}

-			}

-			removeDeletedElementsFromCachedTree(ps, operation);

-		}

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public void operationExecuted(AbstractOperation operation) {

-		operations++;

-		if (!projectSpace.isShared()) {

-			return;

-		}

-

-		lastAffected = new HashSet<EObject>();

-		for (final ModelElementId modelElementId : operation.getAllInvolvedModelElements()) {

-			final Project project = projectSpace.getProject();

-

-			final EObject element = project.getModelElement(modelElementId);

-

-			if (element != null) {

-				lastAffected.add(element);

-				lastAffected

-					.addAll(EMFStoreDirtyDecoratorCachedTree.getInstance(internalProject).addOperation(element));

-			}

-			removeDeletedElementsFromCachedTree(projectSpace, operation);

-		}

-		updateDecoration();

-	}

-

-	/** {@inheritDoc} */

-	@Override

-	public void operationUndone(AbstractOperation operation) {

-		operations--;

-		if (!projectSpace.isShared()) {

-			return;

-		}

-		lastAffected = new HashSet<EObject>();

-

-		for (final ModelElementId modelElementId : operation.getAllInvolvedModelElements()) {

-			final Project project = projectSpace.getProject();

-			final EObject element = project.get(modelElementId);

-

-			if (element != null) {

-				lastAffected.add(element);

-				lastAffected.addAll(EMFStoreDirtyDecoratorCachedTree.getInstance(internalProject).removeOperation(

-					element));

-			}

-		}

-		initializeRestoredDeletedElement(operation);

-		updateDecoration();

-	}

-

-	private void updateDecoration() {

-		// TODO remove dependency to workbench

-		final IDecoratorManager decoratorManager = PlatformUI.getWorkbench().getDecoratorManager();

-		if (decoratorManager != null) {

-			Display.getDefault().syncExec(new Runnable() {

-

-				@Override

-				public void run() {

-					decoratorManager.update(DIRTYDECORATORID);

-				}

-			});

-

-		}

-	}

-

-	/**

-	 * @param projectSpace

-	 * @param operation

-	 */

-	private void removeDeletedElementsFromCachedTree(ProjectSpace projectSpace, AbstractOperation operation) {

-		if (operation instanceof CreateDeleteOperation) {

-			final CreateDeleteOperation cdo = (CreateDeleteOperation) operation;

-

-			if (cdo.isDelete()) {

-

-				modelElementIdToOperationCount.put(cdo.getModelElementId(), EMFStoreDirtyDecoratorCachedTree

-					.getInstance(internalProject).getOwnValue(projectSpace.getProject().get(cdo.getModelElementId())));

-

-				EMFStoreDirtyDecoratorCachedTree.getInstance(internalProject).remove(

-					projectSpace.getProject().get(cdo.getModelElementId()));

-				// TODO: consider containments

-			}

-		}

-	}

-

-	/**

-	 * @param operation

-	 */

-	private void initializeRestoredDeletedElement(AbstractOperation operation) {

-		if (operation instanceof CreateDeleteOperation) {

-			final CreateDeleteOperation cdo = (CreateDeleteOperation) operation;

-

-			if (cdo.isDelete()) {

-				lastAffected.addAll(EMFStoreDirtyDecoratorCachedTree.getInstance(internalProject).setOperationCount(

-					projectSpace.getProject().get(cdo.getModelElementId()),

-					modelElementIdToOperationCount.get(cdo.getModelElementId().toAPI())));

-

-				modelElementIdToOperationCount.remove(projectSpace.getProject().get(cdo.getModelElementId()));

-				// TODO: consider containments

-			}

-		}

-	}

-

-	/**

-	 * The Collection of {@link EObject} that were affected during last operation.

-	 *

-	 * @return a {@link Set} of {@link EObject} affected or null if none

-	 */

-	public Set<EObject> getLastAffected() {

-		return lastAffected;

-	}

-

-	/**

-	 * Clears the cache of deleted elements and resets the operation count to 0.

-	 */

-	public void clearObserverCache() {

-		modelElementIdToOperationCount.clear();

-		operations = 0;

-	}

-

-	/**

-	 * Returns weather the observed projectSpac is dirty.

-	 *

-	 * @return true, if is dirty.

-	 */

-	public boolean isDirty() {

-		return operations > 0;

-	}

+/*******************************************************************************
+ * Copyright (c) 2011-2012 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.emf.ecp.emfstore.internal.ui.decorator;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.spi.core.InternalProject;
+import org.eclipse.emf.emfstore.internal.client.model.ProjectSpace;
+import org.eclipse.emf.emfstore.internal.client.observers.OperationObserver;
+import org.eclipse.emf.emfstore.internal.common.model.ModelElementId;
+import org.eclipse.emf.emfstore.internal.common.model.Project;
+import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.AbstractOperation;
+import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.CreateDeleteOperation;
+import org.eclipse.emf.emfstore.server.ESCloseableIterable;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IDecoratorManager;
+import org.eclipse.ui.PlatformUI;
+
+/**
+ * Project change observer that marks elements as dirty.
+ *
+ * @author Tobias Verhoeven
+ */
+public class EMFStoreDirtyObserver implements OperationObserver {
+
+	private static final String DIRTYDECORATORID = "org.eclipse.emf.ecp.emfstore.ui.decorators.EMFStoreDirtyDecorator"; //$NON-NLS-1$
+	private ProjectSpace projectSpace;
+	private InternalProject internalProject;
+	private final Map<ModelElementId, Integer> modelElementIdToOperationCount = new HashMap<ModelElementId, Integer>();
+	private Set<EObject> lastAffected;
+	private int operations;
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param projectSpace the ProjectSpace of the decorator
+	 * @param project the ecpproject of the decorator
+	 */
+	public EMFStoreDirtyObserver(ProjectSpace projectSpace, InternalProject project) {
+		this.projectSpace = projectSpace;
+		internalProject = project;
+
+		if (!projectSpace.isShared()) {
+			return;
+		}
+		initCachedTree(projectSpace);
+	}
+
+	private void initCachedTree(ProjectSpace ps) {
+		@SuppressWarnings("restriction")
+		final ESCloseableIterable<AbstractOperation> operationIterator = ps.getLocalChangePackage().operations();
+		for (final AbstractOperation operation : operationIterator.iterable()) {
+			operations++;
+			for (final ModelElementId modelElementId : operation.getAllInvolvedModelElements()) {
+				final EObject element = ps.getProject().getModelElement(modelElementId);
+				if (element != null) {
+					EMFStoreDirtyDecoratorCachedTree.getInstance(internalProject).addOperation(element);
+				}
+			}
+			removeDeletedElementsFromCachedTree(ps, operation);
+		}
+		operationIterator.close();
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public void operationExecuted(AbstractOperation operation) {
+		operations++;
+		if (!projectSpace.isShared()) {
+			return;
+		}
+
+		lastAffected = new HashSet<EObject>();
+		for (final ModelElementId modelElementId : operation.getAllInvolvedModelElements()) {
+			final Project project = projectSpace.getProject();
+
+			final EObject element = project.getModelElement(modelElementId);
+
+			if (element != null) {
+				lastAffected.add(element);
+				lastAffected
+					.addAll(EMFStoreDirtyDecoratorCachedTree.getInstance(internalProject).addOperation(element));
+			}
+			removeDeletedElementsFromCachedTree(projectSpace, operation);
+		}
+		updateDecoration();
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public void operationUndone(AbstractOperation operation) {
+		operations--;
+		if (!projectSpace.isShared()) {
+			return;
+		}
+		lastAffected = new HashSet<EObject>();
+
+		for (final ModelElementId modelElementId : operation.getAllInvolvedModelElements()) {
+			final Project project = projectSpace.getProject();
+			final EObject element = project.get(modelElementId);
+
+			if (element != null) {
+				lastAffected.add(element);
+				lastAffected.addAll(EMFStoreDirtyDecoratorCachedTree.getInstance(internalProject).removeOperation(
+					element));
+			}
+		}
+		initializeRestoredDeletedElement(operation);
+		updateDecoration();
+	}
+
+	private void updateDecoration() {
+		// TODO remove dependency to workbench
+		final IDecoratorManager decoratorManager = PlatformUI.getWorkbench().getDecoratorManager();
+		if (decoratorManager != null) {
+			Display.getDefault().syncExec(new Runnable() {
+
+				@Override
+				public void run() {
+					decoratorManager.update(DIRTYDECORATORID);
+				}
+			});
+
+		}
+	}
+
+	/**
+	 * @param projectSpace
+	 * @param operation
+	 */
+	private void removeDeletedElementsFromCachedTree(ProjectSpace projectSpace, AbstractOperation operation) {
+		if (operation instanceof CreateDeleteOperation) {
+			final CreateDeleteOperation cdo = (CreateDeleteOperation) operation;
+
+			if (cdo.isDelete()) {
+
+				modelElementIdToOperationCount.put(cdo.getModelElementId(), EMFStoreDirtyDecoratorCachedTree
+					.getInstance(internalProject).getOwnValue(projectSpace.getProject().get(cdo.getModelElementId())));
+
+				EMFStoreDirtyDecoratorCachedTree.getInstance(internalProject).remove(
+					projectSpace.getProject().get(cdo.getModelElementId()));
+				// TODO: consider containments
+			}
+		}
+	}
+
+	/**
+	 * @param operation
+	 */
+	private void initializeRestoredDeletedElement(AbstractOperation operation) {
+		if (operation instanceof CreateDeleteOperation) {
+			final CreateDeleteOperation cdo = (CreateDeleteOperation) operation;
+
+			if (cdo.isDelete()) {
+				lastAffected.addAll(EMFStoreDirtyDecoratorCachedTree.getInstance(internalProject).setOperationCount(
+					projectSpace.getProject().get(cdo.getModelElementId()),
+					modelElementIdToOperationCount.get(cdo.getModelElementId().toAPI())));
+
+				modelElementIdToOperationCount.remove(projectSpace.getProject().get(cdo.getModelElementId()));
+				// TODO: consider containments
+			}
+		}
+	}
+
+	/**
+	 * The Collection of {@link EObject} that were affected during last operation.
+	 *
+	 * @return a {@link Set} of {@link EObject} affected or null if none
+	 */
+	public Set<EObject> getLastAffected() {
+		return lastAffected;
+	}
+
+	/**
+	 * Clears the cache of deleted elements and resets the operation count to 0.
+	 */
+	public void clearObserverCache() {
+		modelElementIdToOperationCount.clear();
+		operations = 0;
+	}
+
+	/**
+	 * Returns weather the observed projectSpac is dirty.
+	 *
+	 * @return true, if is dirty.
+	 */
+	public boolean isDirty() {
+		return operations > 0;
+	}
 }
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.ui.e4/.gitignore b/bundles/org.eclipse.emf.ecp.emfstore.ui.e4/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.emfstore.ui.e4/.gitignore
@@ -0,0 +1 @@
+/bin/
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 525d4df..52e38b9 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Emfstore e4 ui
 Bundle-SymbolicName: org.eclipse.emf.ecp.emfstore.ui.e4;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.e4.emfstore.Activator
 Require-Bundle: org.eclipse.e4.core.di;bundle-version="[1.2.0,2.0.0)",
  javax.inject;bundle-version="[1.0.0,2.0.0)",
@@ -17,6 +17,6 @@
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Import-Package: org.osgi.framework;version="1.3.0"
 Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emf.ecp.e4.emfstore;version="1.5.1";x-inte
+Export-Package: org.eclipse.emf.ecp.e4.emfstore;version="1.6.0";x-inte
  rnal:=true
 Bundle-Vendor: Eclipse Modeling Project
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 502e338..37e4772 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.ui.search/.gitignore b/bundles/org.eclipse.emf.ecp.emfstore.ui.search/.gitignore
index ea8c4bf..d9d66d8 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.ui.search/.gitignore
+++ b/bundles/org.eclipse.emf.ecp.emfstore.ui.search/.gitignore
@@ -1 +1,2 @@
 /target
+/bin/
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 10abd00..5045de1 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Search UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.emfstore.ui.search;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.emf.ecp.core;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.5.0,2.0.0)",
@@ -21,6 +21,6 @@
  org.eclipse.ui.dialogs;ui.workbench=split;version="0.0.0",
  org.eclipse.ui.handlers;version="0.0.0",
  org.eclipse.ui.plugin;version="0.0.0"
-Export-Package: org.eclipse.emf.ecp.emfstore.ui.search;version="1.5.1"
+Export-Package: org.eclipse.emf.ecp.emfstore.ui.search;version="1.6.0"
  ;x-internal:=true
 Bundle-Vendor: Eclipse Modeling Project
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 edd27be..b1e0ec0 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.ui/.gitignore b/bundles/org.eclipse.emf.ecp.emfstore.ui/.gitignore
index ea8c4bf..d9d66d8 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.ui/.gitignore
+++ b/bundles/org.eclipse.emf.ecp.emfstore.ui/.gitignore
@@ -1 +1,2 @@
 /target
+/bin/
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 0300ab7..143414f 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP EMFStore UI Provider
 Bundle-SymbolicName: org.eclipse.emf.ecp.emfstore.ui;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.emfstore.internal.ui.Activator
 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)",
@@ -14,12 +14,12 @@
  org.eclipse.emf.ecp.common;bundle-version="[1.5.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.ecp.emfstore.internal.ui;version="1.5.
- 1";x-internal:=true,org.eclipse.emf.ecp.emfstore.internal.ui.handler;
- version="1.5.1";x-friends:="org.eclipse.emf.ecp.emfstore.ui.e4,org.ec
+Export-Package: org.eclipse.emf.ecp.emfstore.internal.ui;version="1.6.
+ 0";x-internal:=true,org.eclipse.emf.ecp.emfstore.internal.ui.handler;
+ version="1.6.0";x-friends:="org.eclipse.emf.ecp.emfstore.ui.e4,org.ec
  lipse.emf.ecp.emfstore.ui.e3",org.eclipse.emf.ecp.emfstore.internal.u
- i.observer;version="1.5.1";x-internal:=true,org.eclipse.emf.ecp.emfst
- ore.internal.ui.property;version="1.5.1";x-internal:=true
+ i.observer;version="1.6.0";x-internal:=true,org.eclipse.emf.ecp.emfst
+ ore.internal.ui.property;version="1.6.0";x-internal:=true
 Import-Package: org.eclipse.core.commands;version="0.0.0",
  org.eclipse.jface.action;version="0.0.0",
  org.eclipse.jface.dialogs;version="0.0.0",
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.ui/pom.xml b/bundles/org.eclipse.emf.ecp.emfstore.ui/pom.xml
index 67e6e61..d8cb0c7 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.ui/src/org/eclipse/emf/ecp/emfstore/internal/ui/EMFStoreUIProvider.java b/bundles/org.eclipse.emf.ecp.emfstore.ui/src/org/eclipse/emf/ecp/emfstore/internal/ui/EMFStoreUIProvider.java
index 927e76f..7fb08ca 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.ui/src/org/eclipse/emf/ecp/emfstore/internal/ui/EMFStoreUIProvider.java
+++ b/bundles/org.eclipse.emf.ecp.emfstore.ui/src/org/eclipse/emf/ecp/emfstore/internal/ui/EMFStoreUIProvider.java
@@ -28,6 +28,7 @@
 import org.eclipse.emf.emfstore.server.exceptions.ESException;

 import org.eclipse.jface.resource.ImageDescriptor;

 import org.eclipse.jface.viewers.LabelProvider;

+import org.eclipse.jface.window.Window;

 import org.eclipse.swt.SWT;

 import org.eclipse.swt.events.ModifyEvent;

 import org.eclipse.swt.events.ModifyListener;

@@ -184,16 +185,16 @@
 		ArrayList<String> certificates;

 		try {

 			certificates = KeyStoreManager.getInstance().getCertificates();

-			// csd.setElements(certificates.toArray());

+			csd.setElements(certificates.toArray());

 		} catch (final ESCertificateException e1) {

-			// csd.setErrorMessage(e1.getMessage());

+			csd.setErrorMessage(e1.getMessage());

 		}

-		// csd.setBlockOnOpen(true);

-		// csd.setTitle("Certificate Selection Dialog");

-		// csd.open();

-		// if (csd.getReturnCode() == Window.OK) {

-		// return csd.getCertificateAlias();

-		// }

+		csd.setBlockOnOpen(true);

+		csd.setTitle("Certificate Selection Dialog"); //$NON-NLS-1$

+		csd.open();

+		if (csd.getReturnCode() == Window.OK) {

+			return csd.getCertificateAlias();

+		}

 		return ""; //$NON-NLS-1$

 	}

 

diff --git a/bundles/org.eclipse.emf.ecp.emfstore.ui/src/org/eclipse/emf/ecp/emfstore/internal/ui/handler/ExportProjectHelper.java b/bundles/org.eclipse.emf.ecp.emfstore.ui/src/org/eclipse/emf/ecp/emfstore/internal/ui/handler/ExportProjectHelper.java
index b6d5500..bbbf8f3 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.ui/src/org/eclipse/emf/ecp/emfstore/internal/ui/handler/ExportProjectHelper.java
+++ b/bundles/org.eclipse.emf.ecp.emfstore.ui/src/org/eclipse/emf/ecp/emfstore/internal/ui/handler/ExportProjectHelper.java
@@ -13,12 +13,11 @@
 
 import java.io.File;
 import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
 
 import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Platform;
 import org.eclipse.emf.ecp.emfstore.core.internal.EMFStoreProvider;
 import org.eclipse.emf.ecp.emfstore.internal.ui.Activator;
+import org.eclipse.emf.ecp.internal.ui.util.ECPExportHandlerHelper;
 import org.eclipse.emf.ecp.internal.ui.util.ECPFileDialogHelper;
 import org.eclipse.emf.ecp.spi.core.InternalProject;
 import org.eclipse.emf.emfstore.client.ESLocalProject;
@@ -27,7 +26,9 @@
 import org.eclipse.emf.emfstore.internal.client.importexport.impl.ExportImportDataUnits;
 import org.eclipse.emf.emfstore.internal.client.model.impl.api.ESLocalProjectImpl;
 import org.eclipse.swt.widgets.Shell;
-import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
 
 /**
  * A helper class that can be used to export projects.
@@ -80,37 +81,13 @@
 	}
 
 	private static String getFilePathByFileDialog(Shell shell, String modelElementName) {
-		try {
-			final Class<ECPFileDialogHelper> clazz = loadClass(ECP_UI_PLUGIN_ID,
-				FILE_DIALOG_HELPER_CLASS);
-			final ECPFileDialogHelper fileDialogHelper = clazz.getConstructor().newInstance();
-			return fileDialogHelper.getPathForExport(shell, modelElementName);
-		} catch (final ClassNotFoundException ex) {
-			Activator.log(ex);
-		} catch (final InstantiationException ex) {
-			Activator.log(ex);
-		} catch (final IllegalAccessException ex) {
-			Activator.log(ex);
-		} catch (final IllegalArgumentException ex) {
-			Activator.log(ex);
-		} catch (final InvocationTargetException ex) {
-			Activator.log(ex);
-		} catch (final NoSuchMethodException ex) {
-			Activator.log(ex);
-		} catch (final SecurityException ex) {
-			Activator.log(ex);
-		}
-		return null;
-	}
-
-	@SuppressWarnings("unchecked")
-	private static <T> Class<T> loadClass(String bundleName, String clazz) throws ClassNotFoundException {
-		final Bundle bundle = Platform.getBundle(bundleName);
-		if (bundle == null) {
-			throw new ClassNotFoundException(clazz + " cannot be loaded because bundle " + bundleName //$NON-NLS-1$
-				+ " cannot be resolved"); //$NON-NLS-1$
-		}
-		return (Class<T>) bundle.loadClass(clazz);
+		final BundleContext bundleContext = FrameworkUtil.getBundle(ECPExportHandlerHelper.class).getBundleContext();
+		final ServiceReference<ECPFileDialogHelper> serviceReference = bundleContext
+			.getServiceReference(ECPFileDialogHelper.class);
+		final ECPFileDialogHelper fileDialogHelper = bundleContext.getService(serviceReference);
+		final String result = fileDialogHelper.getPathForExport(shell, modelElementName);
+		bundleContext.ungetService(serviceReference);
+		return result;
 	}
 
 }
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.ui/src/org/eclipse/emf/ecp/emfstore/internal/ui/handler/ImportProjectHelper.java b/bundles/org.eclipse.emf.ecp.emfstore.ui/src/org/eclipse/emf/ecp/emfstore/internal/ui/handler/ImportProjectHelper.java
index fa0361a..2730e84 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.ui/src/org/eclipse/emf/ecp/emfstore/internal/ui/handler/ImportProjectHelper.java
+++ b/bundles/org.eclipse.emf.ecp.emfstore.ui/src/org/eclipse/emf/ecp/emfstore/internal/ui/handler/ImportProjectHelper.java
@@ -13,20 +13,19 @@
 
 import java.io.File;
 import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
 import java.util.List;
 
 import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Platform;
 import org.eclipse.emf.ecp.core.exceptions.ECPProjectWithNameExistsException;
 import org.eclipse.emf.ecp.core.util.ECPProperties;
 import org.eclipse.emf.ecp.core.util.ECPUtil;
+import org.eclipse.emf.ecp.emfstore.core.internal.ECPEMFUtils;
 import org.eclipse.emf.ecp.emfstore.core.internal.EMFStoreProvider;
 import org.eclipse.emf.ecp.emfstore.internal.ui.Activator;
 import org.eclipse.emf.ecp.internal.ui.PreferenceHelper;
+import org.eclipse.emf.ecp.internal.ui.util.ECPExportHandlerHelper;
 import org.eclipse.emf.ecp.internal.ui.util.ECPFileDialogHelper;
 import org.eclipse.emf.emfstore.client.ESLocalProject;
-import org.eclipse.emf.emfstore.client.ESWorkspaceProvider;
 import org.eclipse.emf.emfstore.internal.client.importexport.ExportImportControllerExecutor;
 import org.eclipse.emf.emfstore.internal.client.importexport.ExportImportControllerFactory;
 import org.eclipse.emf.emfstore.internal.client.importexport.impl.ExportImportDataUnits;
@@ -34,7 +33,9 @@
 import org.eclipse.jface.dialogs.InputDialog;
 import org.eclipse.jface.window.Window;
 import org.eclipse.swt.widgets.Shell;
-import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
 
 /**
  * A helper class that can be used to import projects.
@@ -58,10 +59,6 @@
 
 	private static final String EXPORT_MODEL_PATH = "org.eclipse.emf.ecp.exportProjectModelPath"; //$NON-NLS-1$
 
-	private static final String ECP_UI_PLUGIN_ID = "org.eclipse.emf.ecp.ui"; //$NON-NLS-1$
-
-	private static final String FILE_DIALOG_HELPER_CLASS = "org.eclipse.emf.ecp.internal.ui.util.ECPFileDialogHelperImpl"; //$NON-NLS-1$
-
 	private ImportProjectHelper() {
 	}
 
@@ -81,7 +78,8 @@
 				.execute(ExportImportControllerFactory.Import.getImportProjectSpaceController());
 			PreferenceHelper.setPreference(EXPORT_MODEL_PATH, file.getParent());
 
-			final List<ESLocalProject> localProjects = ESWorkspaceProvider.INSTANCE.getWorkspace().getLocalProjects();
+			final List<ESLocalProject> localProjects = ECPEMFUtils.getESWorkspaceProviderInstance().getWorkspace()
+				.getLocalProjects();
 			final ESLocalProject localProject = localProjects.get(localProjects.size() - 1);
 			final ECPProperties properties = ECPUtil.createProperties();
 			properties.addProperty(EMFStoreProvider.PROP_PROJECTSPACEID, localProject.getLocalProjectId().getId());
@@ -110,40 +108,16 @@
 	}
 
 	private static File getFile(Shell shell) {
-		try {
-			final Class<ECPFileDialogHelper> clazz = loadClass(ECP_UI_PLUGIN_ID,
-				FILE_DIALOG_HELPER_CLASS);
-			final ECPFileDialogHelper fileDialogHelper = clazz.getConstructor().newInstance();
-			final String fileName = fileDialogHelper.getPathForImport(shell);
-			if (fileName != null) {
-				return new File(fileName);
-			}
-		} catch (final ClassNotFoundException ex) {
-			Activator.log(ex);
-		} catch (final InstantiationException ex) {
-			Activator.log(ex);
-		} catch (final IllegalAccessException ex) {
-			Activator.log(ex);
-		} catch (final IllegalArgumentException ex) {
-			Activator.log(ex);
-		} catch (final InvocationTargetException ex) {
-			Activator.log(ex);
-		} catch (final NoSuchMethodException ex) {
-			Activator.log(ex);
-		} catch (final SecurityException ex) {
-			Activator.log(ex);
+		final BundleContext bundleContext = FrameworkUtil.getBundle(ECPExportHandlerHelper.class).getBundleContext();
+		final ServiceReference<ECPFileDialogHelper> serviceReference = bundleContext
+			.getServiceReference(ECPFileDialogHelper.class);
+		final ECPFileDialogHelper fileDialogHelper = bundleContext.getService(serviceReference);
+		final String result = fileDialogHelper.getPathForImport(shell);
+		bundleContext.ungetService(serviceReference);
+		if (result == null) {
+			return null;
 		}
-		return null;
-	}
-
-	@SuppressWarnings("unchecked")
-	private static <T> Class<T> loadClass(String bundleName, String clazz) throws ClassNotFoundException {
-		final Bundle bundle = Platform.getBundle(bundleName);
-		if (bundle == null) {
-			throw new ClassNotFoundException(clazz + " cannot be loaded because bundle " + bundleName //$NON-NLS-1$
-				+ " cannot be resolved"); //$NON-NLS-1$
-		}
-		return (Class<T>) bundle.loadClass(clazz);
+		return new File(result);
 	}
 
 }
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 a951df7..419e4a2 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,7 +2,7 @@
 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.eclipse.emf.ecp.edit;bundle-version="[1.5.0,2.0.0)",
diff --git a/bundles/org.eclipse.emf.ecp.examplemodel.ui/pom.xml b/bundles/org.eclipse.emf.ecp.examplemodel.ui/pom.xml
index 2c9c5b9..e526ac1 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.explorereditorbridge/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.explorereditorbridge/META-INF/MANIFEST.MF
index 57e6401..9a64028 100644
--- a/bundles/org.eclipse.emf.ecp.explorereditorbridge/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.explorereditorbridge/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Explorer Editor Bridge
 Bundle-SymbolicName: org.eclipse.emf.ecp.explorereditorbridge;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.explorereditorbridge.internal.Activator
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.emf.ecp.ui;bundle-version="[1.5.0,2.0.0)",
@@ -15,7 +15,7 @@
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.explorereditorbridge.internal;vers
- ion="1.5.1";x-friends:="org.eclipse.emf.ecp.ui.view.test"
+ ion="1.6.0";x-friends:="org.eclipse.emf.ecp.ui.view.test"
 Import-Package: org.eclipse.core.commands;version="0.0.0",
  org.eclipse.emf.ecp.edit.internal.swt;version="1.2.0",
  org.eclipse.emf.edit.ui.provider;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 26e15b3..701b354 100644
--- a/bundles/org.eclipse.emf.ecp.explorereditorbridge/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.explorereditorbridge/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.graphiti.core/src/org/eclipse/emf/ecp/graphiti/ECPDiagramBehavior.java b/bundles/org.eclipse.emf.ecp.graphiti.core/src/org/eclipse/emf/ecp/graphiti/ECPDiagramBehavior.java
index eee98d1..5de55e3 100644
--- a/bundles/org.eclipse.emf.ecp.graphiti.core/src/org/eclipse/emf/ecp/graphiti/ECPDiagramBehavior.java
+++ b/bundles/org.eclipse.emf.ecp.graphiti.core/src/org/eclipse/emf/ecp/graphiti/ECPDiagramBehavior.java
@@ -85,13 +85,13 @@
 	}

 

 	@Override

-	protected void disableAdapters() {

+	public void disableAdapters() {

 		// TODO Auto-generated method stub

 		super.disableAdapters();

 	}

 

 	@Override

-	protected void enableAdapters() {

+	public void enableAdapters() {

 		// TODO Auto-generated method stub

 		super.enableAdapters();

 	}

diff --git a/bundles/org.eclipse.emf.ecp.graphiti.core/src/org/eclipse/emf/ecp/graphiti/UpdateBehavior.java b/bundles/org.eclipse.emf.ecp.graphiti.core/src/org/eclipse/emf/ecp/graphiti/UpdateBehavior.java
index bdf7900..582aa1a 100644
--- a/bundles/org.eclipse.emf.ecp.graphiti.core/src/org/eclipse/emf/ecp/graphiti/UpdateBehavior.java
+++ b/bundles/org.eclipse.emf.ecp.graphiti.core/src/org/eclipse/emf/ecp/graphiti/UpdateBehavior.java
@@ -10,7 +10,6 @@
 import org.eclipse.emf.ecore.EObject;

 import org.eclipse.emf.ecore.resource.Resource;

 import org.eclipse.emf.ecore.resource.ResourceSet;

-import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;

 import org.eclipse.emf.transaction.TransactionalEditingDomain;

 import org.eclipse.graphiti.mm.pictograms.Diagram;

 import org.eclipse.graphiti.ui.editor.DefaultUpdateBehavior;

@@ -355,17 +354,17 @@
 

 	}

 

-	/**

-	 * Created the {@link TransactionalEditingDomain} that shall be used within

-	 * the diagram editor and initializes it by delegating to

-	 * {@link #initializeEditingDomain(TransactionalEditingDomain)}.

-	 */

-	@Override

-	protected void createEditingDomain() {

-		final TransactionalEditingDomain editingDomain = (TransactionalEditingDomain) AdapterFactoryEditingDomain

-			.getEditingDomainFor(diagramBehavior.getDiagram());

-		initializeEditingDomain(editingDomain);

-	}

+	// /**

+	// * Created the {@link TransactionalEditingDomain} that shall be used within

+	// * the diagram editor and initializes it by delegating to

+	// * {@link #initializeEditingDomain(TransactionalEditingDomain)}.

+	// */

+	// @Override

+	// protected void createEditingDomain() {

+	// final TransactionalEditingDomain editingDomain = (TransactionalEditingDomain) AdapterFactoryEditingDomain

+	// .getEditingDomainFor(diagramBehavior.getDiagram());

+	// initializeEditingDomain(editingDomain);

+	// }

 

 	/**

 	 * This sets up the editing domain for this model editor.

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 9e94fe3..938eb9d 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
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Graphiti Integration
 Bundle-SymbolicName: org.eclipse.emf.ecp.graphiti.integration;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Require-Bundle: org.eclipse.ui;bundle-version="3.1.0",
  org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.graphiti;bundle-version="0.9.1",
@@ -17,5 +17,5 @@
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.graphiti.internal.integration;version="1.3.0";x-internal:=true,
- org.eclipse.emf.ecp.internal.graphiti.feature;version="1.3.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.graphiti.internal.integration;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.internal.graphiti.feature;version="1.6.0";x-internal:=true
diff --git a/bundles/org.eclipse.emf.ecp.graphiti.integration/pom.xml b/bundles/org.eclipse.emf.ecp.graphiti.integration/pom.xml
index 2e4ae7b..e05faf7 100644
--- a/bundles/org.eclipse.emf.ecp.graphiti.integration/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.graphiti.integration/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.graphiti.integration</artifactId>
-  <version>1.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ide.editor.view.control/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.ide.editor.view.control/META-INF/MANIFEST.MF
index 99225b4..dd2eec7 100644
--- a/bundles/org.eclipse.emf.ecp.ide.editor.view.control/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.ide.editor.view.control/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: IDE Specific Control
 Bundle-SymbolicName: org.eclipse.emf.ecp.ide.editor.view.control;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.ide.editor.view.control.Activator
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.5.0,2.0.0)",
@@ -15,5 +15,5 @@
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.emf.ecp.ide.editor.view.control;version="1
- .5.1";x-internal:=true
+ .6.0";x-internal:=true
 Bundle-Vendor: Eclipse Modeling Project
diff --git a/bundles/org.eclipse.emf.ecp.ide.editor.view.control/pom.xml b/bundles/org.eclipse.emf.ecp.ide.editor.view.control/pom.xml
index 98eccb9..a29e803 100644
--- a/bundles/org.eclipse.emf.ecp.ide.editor.view.control/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.ide.editor.view.control/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.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.control</artifactId>
-  <version>1.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ide.editor.view/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.ide.editor.view/META-INF/MANIFEST.MF
index 855524b..dd969f0 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: IDE View Editor
 Bundle-SymbolicName: org.eclipse.emf.ecp.ide.editor.view;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.ide.editor.view.Activator
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.ui;bundle-version="[3.0.0,4.0.0)",
@@ -20,6 +20,7 @@
  org.eclipse.emf.ecp.view.migrator;bundle-version="[1.5.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emf.ecp.ide.editor.view;version="1.5.1";x-
+Export-Package: org.eclipse.emf.ecp.ide.editor.view;version="1.6.0";x-
  friends:="org.eclipse.emf.ecp.view.model.preview.e3",org.eclipse.emf.
- ecp.ide.editor.view.messages;version="1.5.1";x-internal:=true
+ ecp.ide.editor.view.messages;version="1.6.0";x-internal:=true
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.6.0,2.0.0)"
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 15f6319..ea74104 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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/Activator.java b/bundles/org.eclipse.emf.ecp.ide.editor.view/src/org/eclipse/emf/ecp/ide/editor/view/Activator.java
index 0f76f5e..15db9fc 100644
--- a/bundles/org.eclipse.emf.ecp.ide.editor.view/src/org/eclipse/emf/ecp/ide/editor/view/Activator.java
+++ b/bundles/org.eclipse.emf.ecp.ide.editor.view/src/org/eclipse/emf/ecp/ide/editor/view/Activator.java
@@ -12,7 +12,7 @@
 package org.eclipse.emf.ecp.ide.editor.view;
 
 import org.eclipse.emf.ecp.ide.view.service.IDEViewModelRegistry;
-import org.eclipse.emf.ecp.view.spi.model.reporting.ReportService;
+import org.eclipse.emfforms.spi.common.report.ReportService;
 import org.eclipse.ui.plugin.AbstractUIPlugin;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
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 5d32ba0..0e4c668 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
@@ -41,18 +41,22 @@
 import org.eclipse.emf.ecore.util.FeatureMap;
 import org.eclipse.emf.ecore.xmi.XMLResource;
 import org.eclipse.emf.ecore.xml.type.AnyType;
+import org.eclipse.emf.ecp.edit.spi.EMFDeleteServiceImpl;
 import org.eclipse.emf.ecp.ide.editor.view.messages.Messages;
 import org.eclipse.emf.ecp.ide.view.service.ViewModelEditorCallback;
 import org.eclipse.emf.ecp.internal.ide.util.EcoreHelper;
 import org.eclipse.emf.ecp.ui.view.ECPRendererException;
+import org.eclipse.emf.ecp.ui.view.swt.DefaultReferenceService;
 import org.eclipse.emf.ecp.ui.view.swt.ECPSWTView;
 import org.eclipse.emf.ecp.ui.view.swt.ECPSWTViewRenderer;
 import org.eclipse.emf.ecp.view.migrator.ViewModelMigrationException;
 import org.eclipse.emf.ecp.view.migrator.ViewModelMigrator;
 import org.eclipse.emf.ecp.view.migrator.ViewModelMigratorUtil;
 import org.eclipse.emf.ecp.view.model.common.edit.provider.CustomReflectiveItemProviderAdapterFactory;
+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.reporting.StatusReport;
+import org.eclipse.emf.ecp.view.spi.provider.ViewProviderHelper;
 import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
 import org.eclipse.jface.dialogs.MessageDialog;
@@ -149,36 +153,7 @@
 		partListener = new ViewPartListener();
 		getSite().getPage().addPartListener(partListener);
 
-		final IResourceChangeListener listener = new IResourceChangeListener() {
-			@Override
-			public void resourceChanged(IResourceChangeEvent event) {
-				final IResourceDelta delta = event.getDelta();
-				final IResourceDeltaVisitor visitor = new IResourceDeltaVisitor() {
-					@Override
-					public boolean visit(IResourceDelta delta)
-					{
-						if (delta.getKind() == IResourceDelta.REMOVED) {
-							final FileEditorInput fei = (FileEditorInput) instance.getEditorInput();
-							if (delta.getFullPath().equals(fei.getFile().getFullPath())) {
-								final IWorkbenchPage page = instance.getSite().getPage();
-								Display.getDefault().asyncExec(new Runnable() {
-									@Override
-									public void run() {
-										page.closeEditor(instance, false);
-									}
-								});
-								return false;
-							}
-						}
-						return true;
-					}
-				};
-				try {
-					delta.accept(visitor);
-				} catch (final CoreException ex) {
-				}
-			}
-		};
+		final IResourceChangeListener listener = new EditorResourceChangedListener();
 		ResourcesPlugin.getWorkspace().addResourceChangeListener(listener);
 	}
 
@@ -405,7 +380,10 @@
 		}
 
 		try {
-			render = ECPSWTViewRenderer.INSTANCE.render(parent, view);
+
+			render = ECPSWTViewRenderer.INSTANCE.render(parent, ViewModelContextFactory.INSTANCE
+				.createViewModelContext(ViewProviderHelper.getView(view, null), view, new DefaultReferenceService(),
+					new EMFDeleteServiceImpl()));
 		} catch (final ECPRendererException ex) {
 			Activator.getDefault().getReportService().report(
 				new StatusReport(new Status(IStatus.ERROR, Activator.PLUGIN_ID, ex.getMessage(), ex)));
@@ -427,6 +405,11 @@
 
 			@Override
 			public void run() {
+				if (parent == null || parent.isDisposed()) {
+					final IWorkbenchPage page = instance.getSite().getPage();
+					page.closeEditor(instance, true);
+					return;
+				}
 				if (render != null) {
 					render.dispose();
 					render.getSWTControl().dispose();
@@ -604,4 +587,45 @@
 		ecoreOutOfSync = true;
 
 	}
+
+	/** Listens for changes in the editor's resource. */
+	private class EditorResourceChangedListener implements IResourceChangeListener {
+
+		/**
+		 * {@inheritDoc}
+		 *
+		 * @see org.eclipse.core.resources.IResourceChangeListener#resourceChanged(org.eclipse.core.resources.IResourceChangeEvent)
+		 */
+		@Override
+		public void resourceChanged(IResourceChangeEvent event) {
+			final IResourceDelta delta = event.getDelta();
+			final IResourceDeltaVisitor visitor = new IResourceDeltaVisitor() {
+				@Override
+				public boolean visit(IResourceDelta delta)
+				{
+					if (delta.getKind() == IResourceDelta.REMOVED) {
+						final FileEditorInput fei = (FileEditorInput) instance.getEditorInput();
+						if (delta.getFullPath().equals(fei.getFile().getFullPath())) {
+							final IWorkbenchPage page = instance.getSite().getPage();
+							Display.getDefault().asyncExec(new Runnable() {
+								@Override
+								public void run() {
+									page.closeEditor(instance, false);
+								}
+							});
+							return false;
+						}
+					}
+					return true;
+				}
+			};
+			try {
+				if (delta == null) {
+					return;
+				}
+				delta.accept(visitor);
+			} catch (final CoreException ex) {
+			}
+		}
+	}
 }
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 30a2b7f..ff07149 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
@@ -1,9 +1,9 @@
 ViewEditorPart_EcoreSelectionTitle=Select Ecore
 ViewEditorPart_EcoreSelectionValidation=Please Select a File
-ViewEditorPart_EditorViewChanged=The ECore of your ViewModel just changed. This change is not reflected in this View Model Editor. Do you want to reload now?
+ViewEditorPart_EditorViewChanged=The Ecore of your ViewModel just changed. This change is not reflected in this View Model Editor. Do you want to reload now?
 ViewEditorPart_LoadedPartyDescription=The view model could only be loaded partly. Probably it needs migration. Please visit our migration guide for more information.
 ViewEditorPart_LoadedPartyTitle=Problems while loading the view model.
-ViewEditorPart_MigrationErrorText1=An error occured during migration of the model. 
+ViewEditorPart_MigrationErrorText1=An error occurred during migration of the model. 
 ViewEditorPart_MigrationErrorText2=More information on the error can be found in the error log.
 ViewEditorPart_MigrationErrorTitle=EMFForms View Model Migration Error
 ViewEditorPart_MigrationQuestion=Your view model is not up to date. Do you want to migrate it to the latest version?
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 a657207..13279af 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Viewmodel
 Bundle-SymbolicName: org.eclipse.emf.ecp.ide.editor.viewmodel;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.5.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
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 0e4fa16..c6f8090 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ide.util/.gitignore b/bundles/org.eclipse.emf.ecp.ide.util/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ide.util/.gitignore
@@ -0,0 +1 @@
+/bin/
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 39fd36c..54d00fb 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,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Ecore Helper Plugin
 Bundle-SymbolicName: org.eclipse.emf.ecp.ide.util;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.ide.util.Activator
 Bundle-Vendor: Eclipse Modeling Project
 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.5.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.6.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emf.ecp.ide.util;version="1.5.1";x-interna
- l:=true,org.eclipse.emf.ecp.internal.ide.util;version="1.5.1"; x-frie
+Export-Package: org.eclipse.emf.ecp.ide.util;version="1.6.0";x-interna
+ l:=true,org.eclipse.emf.ecp.internal.ide.util;version="1.6.0"; x-frie
  nds:="org.eclipse.emf.ecp.ecore.ui,  org.eclipse.emf.ecp.ide.editor.v
  iew,  org.eclipse.emf.ecp.ide.view.service,  org.eclipse.emf.ecp.ide.
  util.test,  org.eclipse.emf.ecp.view.model.editor"
diff --git a/bundles/org.eclipse.emf.ecp.ide.util/pom.xml b/bundles/org.eclipse.emf.ecp.ide.util/pom.xml
index f5280e1..6633239 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ide.util/src/org/eclipse/emf/ecp/ide/util/Activator.java b/bundles/org.eclipse.emf.ecp.ide.util/src/org/eclipse/emf/ecp/ide/util/Activator.java
index 578c0f2..8deed6f 100644
--- a/bundles/org.eclipse.emf.ecp.ide.util/src/org/eclipse/emf/ecp/ide/util/Activator.java
+++ b/bundles/org.eclipse.emf.ecp.ide.util/src/org/eclipse/emf/ecp/ide/util/Activator.java
@@ -13,7 +13,10 @@
 package org.eclipse.emf.ecp.ide.util;
 
 import org.eclipse.core.runtime.Plugin;
+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.ServiceReference;
 
 /**
  * The activator class controls the plug-in life cycle.
@@ -26,6 +29,8 @@
 	// The shared instance
 	private static Activator plugin;
 
+	private ReportService reportService;
+
 	/**
 	 * The constructor.
 	 */
@@ -61,4 +66,27 @@
 		return plugin;
 	}
 
+	/**
+	 * Logs a message.
+	 *
+	 * @param severity the severity of the Message
+	 * @param message The warning to log
+	 */
+	public static void log(int severity, String message) {
+		plugin.getReportService().report(new AbstractReport(message, severity));
+	}
+
+	/**
+	 * Return the {@link ReportService}.
+	 *
+	 * @return The {@link ReportService}
+	 */
+	public ReportService getReportService() {
+		if (reportService == null) {
+			final ServiceReference<ReportService> serviceReference = getBundle().getBundleContext()
+				.getServiceReference(ReportService.class);
+			reportService = getBundle().getBundleContext().getService(serviceReference);
+		}
+		return reportService;
+	}
 }
diff --git a/bundles/org.eclipse.emf.ecp.ide.util/src/org/eclipse/emf/ecp/internal/ide/util/EcoreHelper.java b/bundles/org.eclipse.emf.ecp.ide.util/src/org/eclipse/emf/ecp/internal/ide/util/EcoreHelper.java
index cf952bb..88bc191 100644
--- a/bundles/org.eclipse.emf.ecp.ide.util/src/org/eclipse/emf/ecp/internal/ide/util/EcoreHelper.java
+++ b/bundles/org.eclipse.emf.ecp.ide.util/src/org/eclipse/emf/ecp/internal/ide/util/EcoreHelper.java
@@ -20,6 +20,7 @@
 import java.util.Map;
 import java.util.Set;
 
+import org.eclipse.core.runtime.IStatus;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
@@ -28,6 +29,7 @@
 import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
 import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecp.ide.util.Activator;
 
 /**
  * Helper methods for dealing with ecores.
@@ -68,7 +70,7 @@
 	 * @param ecorePath - path to the ecore
 	 * @throws IOException if resource cannot be loaded
 	 *
-	 * */
+	 */
 	public static void registerEcore(String ecorePath) throws IOException {
 		if (ecorePath == null) {
 			return;
@@ -108,10 +110,16 @@
 
 			if (isContainedInPackageRegistry(ePackage.getNsURI())) {
 				if (!ALL_NSURIS_REGISTERED_BY_TOOLING.contains(ePackage.getNsURI())) {
+					Activator.log(
+						IStatus.INFO,
+						String.format(
+							"Tooling Registered Packages don't contain package with URI %1$s.", ePackage.getNsURI())); //$NON-NLS-1$
 					continue;
 				}
 				final EPackage registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ePackage.getNsURI());
 				if (EcoreUtil.equals(ePackage, registeredPackage)) {
+					Activator.log(IStatus.INFO,
+						String.format("Another package with same URI is already registered: %1$s.", registeredPackage)); //$NON-NLS-1$
 					continue;
 				}
 			}
@@ -127,7 +135,23 @@
 		virtualResource.getContents().add(ePackage);
 		EPackage.Registry.INSTANCE.put(ePackage.getNsURI(), ePackage);
 		ALL_NSURIS_REGISTERED_BY_TOOLING.add(ePackage.getNsURI());
+		Activator.log(IStatus.INFO, String.format("Registered Package with URI %1$s.", ePackage.getNsURI())); //$NON-NLS-1$
 		WORKSPACEURI_TO_REGISTEREDPACKAGE.put(platformResourceURI, ePackage);
+		Activator.log(IStatus.INFO,
+			String.format("Mapped Package with URI %1$s to %2$s.", ePackage.getNsURI(), platformResourceURI)); //$NON-NLS-1$
+		registerSubpackages(ePackage);
+	}
+
+	/**
+	 * @param ePackage - the EPackage whose subpackages need to be registered
+	 */
+	private static void registerSubpackages(EPackage ePackage) {
+		for (final EPackage subpackage : ePackage.getESubpackages()) {
+			EPackage.Registry.INSTANCE.put(subpackage.getNsURI(), subpackage);
+			Activator.log(IStatus.INFO,
+				String.format("Register subpackage %1$s of package %2$s.", subpackage.getNsURI(), ePackage.getNsURI())); //$NON-NLS-1$
+			registerSubpackages(subpackage);
+		}
 	}
 
 	/**
@@ -161,6 +185,12 @@
 				ECOREPATH_TO_WORKSPACEURIS.put(ecorePath, new HashSet<String>());
 			}
 			ECOREPATH_TO_WORKSPACEURIS.get(ecorePath).add(physicalResource.getURI().toString());
+			Activator
+				.log(
+					IStatus.INFO,
+					String
+						.format(
+							"Resolved ecorePath %1$s to workspace path %2$s.", ecorePath, physicalResource.getURI().toString())); //$NON-NLS-1$
 		}
 		return uri;
 	}
@@ -176,7 +206,7 @@
 	 *
 	 * @param ecorePath - the path of the ecore to be removed.
 	 *
-	 * */
+	 */
 	public static void unregisterEcore(String ecorePath) {
 		if (ecorePath == null || ECOREPATH_TO_WORKSPACEURIS.get(ecorePath) == null) {
 			return;
@@ -223,6 +253,22 @@
 			}
 			EPackage.Registry.INSTANCE.remove(pkgToRemove.getNsURI());
 			ALL_NSURIS_REGISTERED_BY_TOOLING.remove(pkgToRemove.getNsURI());
+			Activator.log(IStatus.INFO,
+				String.format("Unregister package %1$s.", pkgToRemove.getNsURI())); //$NON-NLS-1$
+			unregisterSubpackages(pkgToRemove);
+		}
+	}
+
+	/**
+	 * @param ePackage - the EPackage whose subpackages need to be unregistered
+	 */
+	private static void unregisterSubpackages(EPackage ePackage) {
+		for (final EPackage subpackage : ePackage.getESubpackages()) {
+			EPackage.Registry.INSTANCE.remove(subpackage.getNsURI());
+			Activator.log(IStatus.INFO,
+				String
+					.format("Unregister subpackage %1$s of package %2$s.", subpackage.getNsURI(), ePackage.getNsURI())); //$NON-NLS-1$
+			unregisterSubpackages(subpackage);
 		}
 	}
 
@@ -249,6 +295,7 @@
 	private static void initResourceSet(ResourceSet resourceSet, boolean withLocalRegistry) {
 		if (withLocalRegistry) {
 			resourceSet.getPackageRegistry().putAll(WORKSPACEURI_TO_REGISTEREDPACKAGE);
+			Activator.log(IStatus.INFO, "Added map of platformuri to epackage to resourceset package registry."); //$NON-NLS-1$
 		}
 		if (!resourceSet.getURIConverter().exists(
 			URI.createURI(ECORE_RESOURCE_URI), null)) {
diff --git a/bundles/org.eclipse.emf.ecp.ide.view.service/.gitignore b/bundles/org.eclipse.emf.ecp.ide.view.service/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ide.view.service/.gitignore
@@ -0,0 +1 @@
+/bin/
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 a52b453..0a1aee5 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: IDE ViewModel Service
 Bundle-SymbolicName: org.eclipse.emf.ecp.ide.view.service
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
@@ -11,8 +11,8 @@
  org.eclipse.emf.ecp.ide.util;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)"
 Export-Package: org.eclipse.emf.ecp.ide.view.internal.service;version=
- "1.5.1";x-friends:="org.eclipse.emf.ecp.ui.view.editor.controls",org.
- eclipse.emf.ecp.ide.view.service;version="1.5.1"; x-friends:="org.ecl
+ "1.6.0";x-friends:="org.eclipse.emf.ecp.ui.view.editor.controls",org.
+ eclipse.emf.ecp.ide.view.service;version="1.6.0"; x-friends:="org.ecl
  ipse.emf.ecp.ide.editor.view,  org.eclipse.emf.ecp.ide.editor.view.co
  ntrol,  org.eclipse.emf.ecp.ui.view.editor.controls,  org.eclipse.emf
  .ecp.view.model.editor,  org.eclipse.emf.ecp.view.model.project.insta
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 2c76e55..2218cee 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ide.view.service/src/org/eclipse/emf/ecp/ide/view/internal/service/IDEViewModelRegistryImpl.java b/bundles/org.eclipse.emf.ecp.ide.view.service/src/org/eclipse/emf/ecp/ide/view/internal/service/IDEViewModelRegistryImpl.java
index cee41e4..32c1bf5 100644
--- a/bundles/org.eclipse.emf.ecp.ide.view.service/src/org/eclipse/emf/ecp/ide/view/internal/service/IDEViewModelRegistryImpl.java
+++ b/bundles/org.eclipse.emf.ecp.ide.view.service/src/org/eclipse/emf/ecp/ide/view/internal/service/IDEViewModelRegistryImpl.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2013 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
  *
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -69,7 +69,7 @@
 						if (ecorePath == null) {
 							return;
 						}
-						if (ecorePath.contains(delta.getResource().getFullPath().toString())) {
+						if (delta.getResource().getFullPath().toString().contains(ecorePath)) {
 							final ViewModelEditorCallback viewModelEditorCallback = viewModelViewModelEditorMapping
 								.get(view);
 							if (viewModelEditorCallback == null) {
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 6af008d..80bf1f9 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Quickfix UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.quickfix.ui.e4;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Require-Bundle: org.eclipse.e4.ui.model.workbench;bundle-version="[1.1.0,2.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)",
@@ -13,6 +13,6 @@
  org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.jface;bundle-version="[3.7.0,4.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.ecp.quickfix.ui.e4.internal;version="1.5.1";x-friends:="org.eclipse.emf.ecp.application.e4"
+Export-Package: org.eclipse.emf.ecp.quickfix.ui.e4.internal;version="1.6.0";x-friends:="org.eclipse.emf.ecp.application.e4"
 Bundle-ActivationPolicy: lazy
 Bundle-Vendor: Eclipse Modeling Project
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 1636dc2..97e0ea3 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.5.1-SNAPSHOT</version>
+    <version>1.6.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.quickfix/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.quickfix/META-INF/MANIFEST.MF
index 7acb958..d2b28b0 100644
--- a/bundles/org.eclipse.emf.ecp.quickfix/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.quickfix/META-INF/MANIFEST.MF
@@ -2,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Quickfix Service
 Bundle-SymbolicName: org.eclipse.emf.ecp.quickfix;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 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)"
 Service-Component: OSGI-INF/modelQuickFix.xml
-Export-Package: org.eclipse.emf.ecp.quickfix;version="1.5.1",
- org.eclipse.emf.ecp.quickfix.internal;version="1.5.1";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.quickfix;version="1.6.0",
+ org.eclipse.emf.ecp.quickfix.internal;version="1.6.0";x-internal:=true
 Bundle-ActivationPolicy: lazy
 Bundle-Vendor: Eclipse Modeling Project
diff --git a/bundles/org.eclipse.emf.ecp.quickfix/pom.xml b/bundles/org.eclipse.emf.ecp.quickfix/pom.xml
index dad6638..a33dd46 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.5.1-SNAPSHOT</version>
+    <version>1.6.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.rap.util/.gitignore b/bundles/org.eclipse.emf.ecp.rap.util/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.rap.util/.gitignore
@@ -0,0 +1 @@
+/bin/
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 4a16b1e..ad56146 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: RAP Util
 Bundle-SymbolicName: org.eclipse.emf.ecp.rap.util;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.eclipse.emf.ecp.edit.swt;bundle-version="[1.5.0,2.0.0)"
@@ -11,4 +11,4 @@
  org.eclipse.swt.events;version="0.0.0",
  org.eclipse.swt.widgets;version="0.0.0"
 Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emf.ecp.rap.spi.util;version="1.5.1"
+Export-Package: org.eclipse.emf.ecp.rap.spi.util;version="1.6.0"
diff --git a/bundles/org.eclipse.emf.ecp.rap.util/pom.xml b/bundles/org.eclipse.emf.ecp.rap.util/pom.xml
index 5085a2e..f22b15a 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.rap/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.rap/META-INF/MANIFEST.MF
index b885e1d..5f3982b 100644
--- a/bundles/org.eclipse.emf.ecp.rap/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.rap/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: ECP RAP

 Bundle-SymbolicName: org.eclipse.emf.ecp.rap; singleton:=true

-Bundle-Version: 1.5.1.qualifier

+Bundle-Version: 1.6.0.qualifier

 Bundle-Activator: org.eclipse.emf.ecp.rap.Activator

 Bundle-ActivationPolicy: lazy

 Bundle-RequiredExecutionEnvironment: JavaSE-1.6

@@ -10,5 +10,5 @@
  org.eclipse.core.runtime;bundle-version="3.8.0",

  org.eclipse.rap.ui;bundle-version="2.0.0"

 Bundle-Vendor: Eclipse Modeling Project

-Export-Package: org.eclipse.emf.ecp.rap;version="1.5.1";x-internal:=tr

+Export-Package: org.eclipse.emf.ecp.rap;version="1.6.0";x-internal:=tr

  ue

diff --git a/bundles/org.eclipse.emf.ecp.rap/pom.xml b/bundles/org.eclipse.emf.ecp.rap/pom.xml
index ab94446..235d6c6 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.checkstyle b/bundles/org.eclipse.emf.ecp.test.common/.checkstyle
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.checkstyle
copy to bundles/org.eclipse.emf.ecp.test.common/.checkstyle
diff --git a/bundles/org.eclipse.emf.ecp.test.common/.classpath b/bundles/org.eclipse.emf.ecp.test.common/.classpath
new file mode 100644
index 0000000..8a8f166
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.test.common/.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.test.common/.project b/bundles/org.eclipse.emf.ecp.test.common/.project
new file mode 100644
index 0000000..06240e2
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.test.common/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>org.eclipse.emf.ecp.test.common</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.emf.ecp.view.table.editor/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.emf.ecp.test.common/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.resources.prefs
copy to bundles/org.eclipse.emf.ecp.test.common/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.emf.ecp.test.common/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.runtime.prefs
copy to bundles/org.eclipse.emf.ecp.test.common/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emf.ecp.test.common/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.core.prefs
rename to bundles/org.eclipse.emf.ecp.test.common/.settings/org.eclipse.jdt.core.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.emf.ecp.test.common/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.launching.prefs
copy to bundles/org.eclipse.emf.ecp.test.common/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.emf.ecp.test.common/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs
rename to bundles/org.eclipse.emf.ecp.test.common/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.emf.ecp.test.common/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to bundles/org.eclipse.emf.ecp.test.common/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.ecp.test.common/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.api.tools.prefs
copy to bundles/org.eclipse.emf.ecp.test.common/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.emf.ecp.test.common/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.prefs
copy to bundles/org.eclipse.emf.ecp.test.common/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..d8b9da4
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.test.common/META-INF/MANIFEST.MF
@@ -0,0 +1,10 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Common Test Helpers
+Bundle-SymbolicName: org.eclipse.emf.ecp.test.common
+Bundle-Version: 1.6.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.eclipse.core.databinding.observable;bundle-version="[1.3.0,2.0.0)"
+Export-Package: org.eclipse.emf.ecp.test.common;version="1.6.0"
+Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.test.common/build.properties b/bundles/org.eclipse.emf.ecp.test.common/build.properties
new file mode 100644
index 0000000..41eb6ad
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.test.common/build.properties
@@ -0,0 +1,4 @@
+source.. = src/

+output.. = bin/

+bin.includes = META-INF/,\

+               .

diff --git a/bundles/org.eclipse.emf.ecp.test.common/pom.xml b/bundles/org.eclipse.emf.ecp.test.common/pom.xml
new file mode 100644
index 0000000..edbc04b
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.test.common/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.eclipse.emf.ecp</groupId>
+		<artifactId>ecp-tests-parent</artifactId>
+		<version>1.6.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.6.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
new file mode 100644
index 0000000..7272a4e
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.test.common/src/org/eclipse/emf/ecp/test/common/DefaultRealm.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * http://wiki.eclipse.org/JFace_Data_Binding/Realm
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.test.common;
+
+import org.eclipse.core.databinding.observable.Realm;
+
+/**
+ * Simple realm implementation that will set itself as default when constructed. Invoke {@link #dispose()} to remove the
+ * realm from being the default. Does not support asyncExec(...).
+ *
+ * @see <a href="http://wiki.eclipse.org/JFace_Data_Binding/Realm">http://wiki.eclipse.org/JFace_Data_Binding/Realm</a>
+ * @author Lucas Koehler
+ */
+public class DefaultRealm extends Realm {
+	private final Realm previousRealm;
+
+	/**
+	 * Create a new instance of {@link DefaultRealm}.
+	 */
+	public DefaultRealm() {
+		previousRealm = super.setDefault(this);
+	}
+
+	/**
+	 * @return always returns true
+	 */
+	@Override
+	public boolean isCurrent() {
+		return true;
+	}
+
+	@Override
+	protected void syncExec(Runnable runnable) {
+		runnable.run();
+	}
+
+	/**
+	 * @throws UnsupportedOperationException
+	 */
+	@Override
+	public void asyncExec(Runnable runnable) {
+		throw new UnsupportedOperationException("asyncExec is unsupported"); //$NON-NLS-1$
+	}
+
+	/**
+	 * Removes the realm from being the current and sets the previous realm to the default.
+	 */
+	public void dispose() {
+		if (getDefault() == this) {
+			setDefault(previousRealm);
+		}
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.ui.e3/.gitignore b/bundles/org.eclipse.emf.ecp.ui.e3/.gitignore
index ea8c4bf..d9d66d8 100644
--- a/bundles/org.eclipse.emf.ecp.ui.e3/.gitignore
+++ b/bundles/org.eclipse.emf.ecp.ui.e3/.gitignore
@@ -1 +1,2 @@
 /target
+/bin/
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 1538aeb..4d0b95c 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Eclipse 3.x Integration
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.e3;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.ui.platform.Activator
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.emf.ecp.ui;bundle-version="[1.5.0,2.0.0)",
@@ -31,13 +31,13 @@
  org.eclipse.ui.part;ui.workbench=split;version="0.0.0",
  org.eclipse.ui.plugin;version="0.0.0",
  org.eclipse.ui.services;version="0.0.0"
-Export-Package: org.eclipse.emf.ecp.ui.actions;version="1.5.1";x-inter
- nal:=true,org.eclipse.emf.ecp.ui.commands;version="1.5.1";x-internal:
- =true,org.eclipse.emf.ecp.ui.e3;version="1.5.1";x-internal:=true,org.
- eclipse.emf.ecp.ui.linkedView;version="1.5.1";x-internal:=true,org.ec
- lipse.emf.ecp.ui.perspective;version="1.5.1";x-internal:=true,org.ecl
- ipse.emf.ecp.ui.platform;version="1.5.1";x-friends:="org.eclipse.emf.
- ecp.emfstore.ui",org.eclipse.emf.ecp.ui.tester;version="1.5.1";x-inte
- rnal:=true,org.eclipse.emf.ecp.ui.views;version="1.5.1";x-internal:=t
+Export-Package: org.eclipse.emf.ecp.ui.actions;version="1.6.0";x-inter
+ nal:=true,org.eclipse.emf.ecp.ui.commands;version="1.6.0";x-internal:
+ =true,org.eclipse.emf.ecp.ui.e3;version="1.6.0";x-internal:=true,org.
+ eclipse.emf.ecp.ui.linkedView;version="1.6.0";x-internal:=true,org.ec
+ lipse.emf.ecp.ui.perspective;version="1.6.0";x-internal:=true,org.ecl
+ ipse.emf.ecp.ui.platform;version="1.6.0";x-friends:="org.eclipse.emf.
+ ecp.emfstore.ui",org.eclipse.emf.ecp.ui.tester;version="1.6.0";x-inte
+ rnal:=true,org.eclipse.emf.ecp.ui.views;version="1.6.0";x-internal:=t
  rue
 Bundle-Vendor: Eclipse Modeling Project
diff --git a/bundles/org.eclipse.emf.ecp.ui.e3/pom.xml b/bundles/org.eclipse.emf.ecp.ui.e3/pom.xml
index ac2189a..ec70aca 100644
--- a/bundles/org.eclipse.emf.ecp.ui.e3/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.ui.e3/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ui.e4/.gitignore b/bundles/org.eclipse.emf.ecp.ui.e4/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.e4/.gitignore
@@ -0,0 +1 @@
+/bin/
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 8c3325a..6059c09 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP E4 UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.e4;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 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)",
@@ -20,13 +20,14 @@
  org.eclipse.emf.ecp.edit;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.e4.core.services;bundle-version="[1.0.0,3.0.0)"
 Import-Package: javax.annotation;version="1.1.0",
+ org.eclipse.emfforms.spi.common.report;version="1.6.0",
  org.osgi.service.event;version="1.3.0"
 Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emf.ecp.ui.e4.editor;version="1.5.1";x-fri
+Export-Package: org.eclipse.emf.ecp.ui.e4.editor;version="1.6.0";x-fri
  ends:="org.eclipse.emf.ecp.application.e4",org.eclipse.emf.ecp.ui.e4.
- handlers;version="1.5.1";x-internal:=true,org.eclipse.emf.ecp.ui.e4.u
- til;version="1.5.1";x-friends:="org.eclipse.emf.ecp.application.e4",o
- rg.eclipse.emf.ecp.ui.e4.view;version="1.5.1";x-internal:=true,org.ec
- lipse.emf.ecp.ui.internal.e4;version="1.5.1";x-internal:=true
+ handlers;version="1.6.0";x-internal:=true,org.eclipse.emf.ecp.ui.e4.u
+ til;version="1.6.0";x-friends:="org.eclipse.emf.ecp.application.e4",o
+ rg.eclipse.emf.ecp.ui.e4.view;version="1.6.0";x-internal:=true,org.ec
+ lipse.emf.ecp.ui.internal.e4;version="1.6.0";x-internal:=true
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Activator: org.eclipse.emf.ecp.ui.internal.e4.Activator
diff --git a/bundles/org.eclipse.emf.ecp.ui.e4/pom.xml b/bundles/org.eclipse.emf.ecp.ui.e4/pom.xml
index 49b9d2d..daed0c3 100644
--- a/bundles/org.eclipse.emf.ecp.ui.e4/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.ui.e4/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ui.e4/src/org/eclipse/emf/ecp/ui/e4/editor/ECPE4Editor.java b/bundles/org.eclipse.emf.ecp.ui.e4/src/org/eclipse/emf/ecp/ui/e4/editor/ECPE4Editor.java
index 603fd25..b0ae031 100644
--- a/bundles/org.eclipse.emf.ecp.ui.e4/src/org/eclipse/emf/ecp/ui/e4/editor/ECPE4Editor.java
+++ b/bundles/org.eclipse.emf.ecp.ui.e4/src/org/eclipse/emf/ecp/ui/e4/editor/ECPE4Editor.java
@@ -28,6 +28,7 @@
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecp.core.ECPProject;
 import org.eclipse.emf.ecp.spi.core.InternalProvider;
+import org.eclipse.emf.ecp.spi.ui.ECPDeleteServiceImpl;
 import org.eclipse.emf.ecp.spi.ui.ECPReferenceServiceImpl;
 import org.eclipse.emf.ecp.ui.internal.e4.Activator;
 import org.eclipse.emf.ecp.ui.view.ECPRendererException;
@@ -96,7 +97,7 @@
 			// render = ECPSWTViewRenderer.INSTANCE.render(parent, modelElement);
 			final VView view = ViewProviderHelper.getView(modelElement, null);
 			final ViewModelContext vmc = ViewModelContextFactory.INSTANCE.createViewModelContext(view, modelElement,
-				new ECPReferenceServiceImpl());
+				new ECPReferenceServiceImpl(), new ECPDeleteServiceImpl());
 
 			render = ECPSWTViewRenderer.INSTANCE.render(parent, vmc);
 
diff --git a/bundles/org.eclipse.emf.ecp.ui.e4/src/org/eclipse/emf/ecp/ui/internal/e4/Activator.java b/bundles/org.eclipse.emf.ecp.ui.e4/src/org/eclipse/emf/ecp/ui/internal/e4/Activator.java
index 2a6f99f..aac08bf 100644
--- a/bundles/org.eclipse.emf.ecp.ui.e4/src/org/eclipse/emf/ecp/ui/internal/e4/Activator.java
+++ b/bundles/org.eclipse.emf.ecp.ui.e4/src/org/eclipse/emf/ecp/ui/internal/e4/Activator.java
@@ -11,7 +11,7 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.ui.internal.e4;
 
-import org.eclipse.emf.ecp.view.spi.model.reporting.ReportService;
+import org.eclipse.emfforms.spi.common.report.ReportService;
 import org.osgi.framework.BundleActivator;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
diff --git a/bundles/org.eclipse.emf.ecp.ui.rap/.project b/bundles/org.eclipse.emf.ecp.ui.rap/.project
index e3b0b72..2ba8442 100644
--- a/bundles/org.eclipse.emf.ecp.ui.rap/.project
+++ b/bundles/org.eclipse.emf.ecp.ui.rap/.project
@@ -6,6 +6,11 @@
 	</projects>
 	<buildSpec>
 		<buildCommand>
+			<name>com.wuetherich.osgi.ds.annotations.dsAnnotationBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
 			<name>org.eclipse.jdt.core.javabuilder</name>
 			<arguments>
 			</arguments>
@@ -36,5 +41,6 @@
 		<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.rap/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.ui.rap/META-INF/MANIFEST.MF
index de5f87d..a17b9ed 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,10 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP UI RWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.rap
-Bundle-Version: 1.5.1.qualifier
-Fragment-Host: org.eclipse.emf.ecp.ui;bundle-version="[1.5.0,2.0.0)"
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Require-Bundle: org.eclipse.rap.addons.filedialog;bundle-version="[0.5.0,1.0.0)"
-Export-Package: org.eclipse.emf.ecp.internal.ui.util;version="1.5.1";x
- -internal:=true
+Export-Package: org.eclipse.emf.ecp.internal.ui.util;version="1.6.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.6.0,2.0.0)"
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Service-Component: OSGI-INF/org.eclipse.emf.ecp.internal.ui.util.ECPFileDialogHelperImpl.xml
+Import-Package: org.osgi.service.component.annotations;version="[1.0.0,2.0.0)"
+Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.ui.rap/OSGI-INF/org.eclipse.emf.ecp.internal.ui.util.ECPFileDialogHelperImpl.xml b/bundles/org.eclipse.emf.ecp.ui.rap/OSGI-INF/org.eclipse.emf.ecp.internal.ui.util.ECPFileDialogHelperImpl.xml
new file mode 100644
index 0000000..5eadd27
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.rap/OSGI-INF/org.eclipse.emf.ecp.internal.ui.util.ECPFileDialogHelperImpl.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--Generated by DS Annotation Builder [src/org/eclipse/emf/ecp/internal/ui/util/ECPFileDialogHelperImpl.java]-->
+<scr:component name="org.eclipse.emf.ecp.internal.ui.util.ECPFileDialogHelperImpl" xmlns:scr="http://www.osgi.org/xmlns/scr/v1.0.0">
+    <implementation class="org.eclipse.emf.ecp.internal.ui.util.ECPFileDialogHelperImpl"/>
+    <service>
+        <provide interface="org.eclipse.emf.ecp.internal.ui.util.ECPFileDialogHelper"/>
+    </service>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.ui.rap/build.properties b/bundles/org.eclipse.emf.ecp.ui.rap/build.properties
index 9cbab3c..5689bc7 100644
--- a/bundles/org.eclipse.emf.ecp.ui.rap/build.properties
+++ b/bundles/org.eclipse.emf.ecp.ui.rap/build.properties
@@ -1,6 +1,7 @@
-source.. = src/
 output.. = bin/
 bin.includes = META-INF/,\
                .,\
-               about.html
+               about.html,\
+               OSGI-INF/
 src.includes = about.html
+source.. = src/
diff --git a/bundles/org.eclipse.emf.ecp.ui.rap/pom.xml b/bundles/org.eclipse.emf.ecp.ui.rap/pom.xml
index 276a331..1f8061b 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ui.rap/src/org/eclipse/emf/ecp/internal/ui/util/ECPFileDialogHelperImpl.java b/bundles/org.eclipse.emf.ecp.ui.rap/src/org/eclipse/emf/ecp/internal/ui/util/ECPFileDialogHelperImpl.java
index f3b9873..5255ff4 100644
--- a/bundles/org.eclipse.emf.ecp.ui.rap/src/org/eclipse/emf/ecp/internal/ui/util/ECPFileDialogHelperImpl.java
+++ b/bundles/org.eclipse.emf.ecp.ui.rap/src/org/eclipse/emf/ecp/internal/ui/util/ECPFileDialogHelperImpl.java
@@ -17,6 +17,7 @@
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.FileDialog;
 import org.eclipse.swt.widgets.Shell;
+import org.osgi.service.component.annotations.Component;
 
 /**
  * {@link ECPFileDialogHelper} using the RWT implementation of the {@link FileDialog}.
@@ -24,6 +25,7 @@
  * @author jfaltermeier
  *
  */
+@Component
 public class ECPFileDialogHelperImpl implements ECPFileDialogHelper {
 
 	private static final String IMPORT_MODEL_PATH = "org.eclipse.emf.emfstore.client.ui.importModelPath"; //$NON-NLS-1$
diff --git a/bundles/org.eclipse.emf.ecp.ui.rcp/.gitignore b/bundles/org.eclipse.emf.ecp.ui.rcp/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.rcp/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.ui.rcp/.project b/bundles/org.eclipse.emf.ecp.ui.rcp/.project
index b618f1c..55d0631 100644
--- a/bundles/org.eclipse.emf.ecp.ui.rcp/.project
+++ b/bundles/org.eclipse.emf.ecp.ui.rcp/.project
@@ -6,6 +6,11 @@
 	</projects>
 	<buildSpec>
 		<buildCommand>
+			<name>com.wuetherich.osgi.ds.annotations.dsAnnotationBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
 			<name>org.eclipse.jdt.core.javabuilder</name>
 			<arguments>
 			</arguments>
@@ -36,5 +41,6 @@
 		<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.rcp/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.ui.rcp/META-INF/MANIFEST.MF
index ebe8a6c..7ab82de 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,10 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP UI SWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.rcp
-Bundle-Version: 1.5.1.qualifier
-Fragment-Host: org.eclipse.emf.ecp.ui;bundle-version="[1.5.0,2.0.0)"
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Require-Bundle: org.eclipse.swt;bundle-version="[3.7.0,4.0.0)"
-Export-Package: org.eclipse.emf.ecp.internal.ui.util;version="1.5.1";x
- -internal:=true
+Export-Package: org.eclipse.emf.ecp.internal.ui.util;version="1.6.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.6.0,2.0.0)"
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Import-Package: org.osgi.service.component.annotations;version="[1.0.0,2.0.0)"
+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/OSGI-INF/org.eclipse.emf.ecp.internal.ui.util.ECPFileDialogHelperImpl.xml b/bundles/org.eclipse.emf.ecp.ui.rcp/OSGI-INF/org.eclipse.emf.ecp.internal.ui.util.ECPFileDialogHelperImpl.xml
new file mode 100644
index 0000000..5eadd27
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.rcp/OSGI-INF/org.eclipse.emf.ecp.internal.ui.util.ECPFileDialogHelperImpl.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--Generated by DS Annotation Builder [src/org/eclipse/emf/ecp/internal/ui/util/ECPFileDialogHelperImpl.java]-->
+<scr:component name="org.eclipse.emf.ecp.internal.ui.util.ECPFileDialogHelperImpl" xmlns:scr="http://www.osgi.org/xmlns/scr/v1.0.0">
+    <implementation class="org.eclipse.emf.ecp.internal.ui.util.ECPFileDialogHelperImpl"/>
+    <service>
+        <provide interface="org.eclipse.emf.ecp.internal.ui.util.ECPFileDialogHelper"/>
+    </service>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.ui.rcp/build.properties b/bundles/org.eclipse.emf.ecp.ui.rcp/build.properties
index 9cbab3c..5689bc7 100644
--- a/bundles/org.eclipse.emf.ecp.ui.rcp/build.properties
+++ b/bundles/org.eclipse.emf.ecp.ui.rcp/build.properties
@@ -1,6 +1,7 @@
-source.. = src/
 output.. = bin/
 bin.includes = META-INF/,\
                .,\
-               about.html
+               about.html,\
+               OSGI-INF/
 src.includes = about.html
+source.. = src/
diff --git a/bundles/org.eclipse.emf.ecp.ui.rcp/pom.xml b/bundles/org.eclipse.emf.ecp.ui.rcp/pom.xml
index 47120ec..2816f51 100644
--- a/bundles/org.eclipse.emf.ecp.ui.rcp/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.ui.rcp/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ui.rcp/src/org/eclipse/emf/ecp/internal/ui/util/ECPFileDialogHelperImpl.java b/bundles/org.eclipse.emf.ecp.ui.rcp/src/org/eclipse/emf/ecp/internal/ui/util/ECPFileDialogHelperImpl.java
index 09ef2d7..52c61e5 100644
--- a/bundles/org.eclipse.emf.ecp.ui.rcp/src/org/eclipse/emf/ecp/internal/ui/util/ECPFileDialogHelperImpl.java
+++ b/bundles/org.eclipse.emf.ecp.ui.rcp/src/org/eclipse/emf/ecp/internal/ui/util/ECPFileDialogHelperImpl.java
@@ -18,6 +18,7 @@
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.FileDialog;
 import org.eclipse.swt.widgets.Shell;
+import org.osgi.service.component.annotations.Component;
 
 /**
  * {@link ECPFileDialogHelper} using the SWT implementation of the {@link FileDialog}.
@@ -25,6 +26,7 @@
  * @author jfaltermeier
  *
  */
+@Component
 public class ECPFileDialogHelperImpl implements ECPFileDialogHelper {
 
 	private static final String IMPORT_MODEL_PATH = "org.eclipse.emf.emfstore.client.ui.importModelPath"; //$NON-NLS-1$
diff --git a/bundles/org.eclipse.emf.ecp.ui.transaction/.gitignore b/bundles/org.eclipse.emf.ecp.ui.transaction/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.transaction/.gitignore
@@ -0,0 +1 @@
+/bin/
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 8acc135..d933f95 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Transactional UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.transaction;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.eclipse.emf.transaction;bundle-version="1.4.0",
  org.eclipse.emf.ecp.ui;bundle-version="[1.5.0,2.0.0)",
@@ -31,6 +31,6 @@
  org.eclipse.ui.part;ui.workbench=split;version="0.0.0",
  org.eclipse.ui.plugin;version="0.0.0",
  org.eclipse.ui.views.properties;ui.views=split;version="0.0.0"
-Export-Package: org.eclipse.emf.ecp.ui.transaction;version="1.5.1";x-i
+Export-Package: org.eclipse.emf.ecp.ui.transaction;version="1.6.0";x-i
  nternal:=true
 Bundle-Vendor: Eclipse Modeling Project
diff --git a/bundles/org.eclipse.emf.ecp.ui.transaction/pom.xml b/bundles/org.eclipse.emf.ecp.ui.transaction/pom.xml
index 22b2837..878f6aa 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-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.ui.transaction</artifactId>
-  <version>1.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ui.validation.e4/.gitignore b/bundles/org.eclipse.emf.ecp.ui.validation.e4/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.validation.e4/.gitignore
@@ -0,0 +1 @@
+/bin/
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 3520b30..ee5a863 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP UI Validation E4
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.validation.e4;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: Eclipse Modeling Project
 Import-Package: javax.annotation;version="1.1.0",
@@ -19,6 +19,6 @@
  org.eclipse.e4.ui.model.workbench;bundle-version="[1.0.1,2.0.0)",
  org.eclipse.core.expressions;bundle-version="[3.4.500,4.0.0)"
 Export-Package: org.eclipse.emf.ecp.ui.validation.e4.handler;version="
- 1.5.1";x-internal:=true,org.eclipse.emf.ecp.ui.validation.e4.view;ver
- sion="1.5.1";x-internal:=true
+ 1.6.0";x-internal:=true,org.eclipse.emf.ecp.ui.validation.e4.view;ver
+ sion="1.6.0";x-internal:=true
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.ui.validation.e4/pom.xml b/bundles/org.eclipse.emf.ecp.ui.validation.e4/pom.xml
index ef829be..bc7bb9e 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ui.validation/.gitignore b/bundles/org.eclipse.emf.ecp.ui.validation/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.validation/.gitignore
@@ -0,0 +1 @@
+/bin/
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 5e82799..d20aa83 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Validation View
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.validation;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-ActivationPolicy: lazy
@@ -16,8 +16,8 @@
  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)"
 Export-Package: org.eclipse.emf.ecp.internal.ui.validation;version="1.
- 5.1";x-friends:="org.eclipse.emf.ecp.ui.validation.e4",org.eclipse.em
- f.ecp.ui.validation;version="1.5.1";x-friends:="org.eclipse.emf.ecp.u
+ 6.0";x-friends:="org.eclipse.emf.ecp.ui.validation.e4",org.eclipse.em
+ f.ecp.ui.validation;version="1.6.0";x-friends:="org.eclipse.emf.ecp.u
  i.validation.e4"
 Service-Component: OSGI-INF/component.xml
 Bundle-Activator: org.eclipse.emf.ecp.internal.ui.validation.Activator
diff --git a/bundles/org.eclipse.emf.ecp.ui.validation/pom.xml b/bundles/org.eclipse.emf.ecp.ui.validation/pom.xml
index b532968..d458db1 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/.gitignore b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/.gitignore
@@ -0,0 +1 @@
+/bin/
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 8de5fae..ae1c8c4 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Controls
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.view.editor.controls;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.internal.editor.controls.Activator
 Require-Bundle: org.eclipse.core.runtime;bundle-version="3.7.0",
  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.5.0,2.0.0)",
@@ -22,10 +22,16 @@
  org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)",
  org.eclipse.emf.ecp.view.label.model;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.common.ui;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.5.0,2.0.0)"
+ org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.5.0,2.0.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.6.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.6.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Import-Package: org.eclipse.jface.databinding.swt;version="0.0.0",
+Import-Package: org.eclipse.emfforms.spi.common.report;version="1.6.0",
+ org.eclipse.jface.databinding.swt;version="0.0.0",
  org.eclipse.jface.databinding.viewers;version="0.0.0",
  org.eclipse.jface.resource;version="0.0.0",
  org.eclipse.swt;version="0.0.0",
@@ -33,9 +39,9 @@
  org.eclipse.swt.layout;version="0.0.0",
  org.eclipse.swt.widgets;version="0.0.0"
 Export-Package: org.eclipse.emf.ecp.view.internal.editor.controls;vers
- ion="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.internal.editor
- .handler;version="1.5.1";x-friends:="org.eclipse.emf.ecp.view.model.p
+ ion="1.6.0";x-internal:=true,org.eclipse.emf.ecp.view.internal.editor
+ .handler;version="1.6.0";x-friends:="org.eclipse.emf.ecp.view.model.p
  roject.installer,org.eclipse.emf.ecp.view.model.editor,org.eclipse.em
  f.ecp.view.treemasterdetail.ui.swt",org.eclipse.emf.ecp.view.spi.edit
- or.controls;version="1.5.1"
+ or.controls;version="1.6.0"
 Bundle-Vendor: Eclipse Modeling Project
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/OSGI-INF/l10n/bundle.properties
new file mode 100644
index 0000000..f147ede
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/OSGI-INF/l10n/bundle.properties
@@ -0,0 +1,2 @@
+LinkControl_NotSet=(Not Set)
+LinkControl_NoLinkSetClickToSetLink=No link set\\! Click to set link.
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/build.properties b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/build.properties
index 6597d9e..9662bfa 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/build.properties
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/build.properties
@@ -8,5 +8,6 @@
                about.ini,\

                about.mappings,\

                about.properties,\

-               modeling32.png

+               modeling32.png,\

+               OSGI-INF/

 src.includes = about.html

diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/plugin.xml b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/plugin.xml
index c0db802..2516422 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/plugin.xml
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/plugin.xml
@@ -36,13 +36,6 @@
          </dynamicTest>
       </control>
       <control
-            class="org.eclipse.emf.ecp.view.internal.editor.controls.ControlRootEClassControl2SWTRenderer"
-            id="org.eclipse.emf.ecp.view.editor.controls.rootEClass2">
-         <dynamicTest
-               testClass="org.eclipse.emf.ecp.view.internal.editor.controls.RootEClassControlIDETester">
-         </dynamicTest>
-      </control>
-      <control
             class="org.eclipse.emf.ecp.view.internal.editor.controls.TableColumnDomainModelReferenceControl"
             id="org.eclipse.emf.ecp.view.editor.controls.tableColumnDomainModelReference">
          <dynamicTest
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 8709f46..c24cbab 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.5.1-SNAPSHOT</version>

+    <version>1.6.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/Activator.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/Activator.java
index f970490..bdd07e7 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/Activator.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/Activator.java
@@ -12,18 +12,30 @@
  *******************************************************************************/

 package org.eclipse.emf.ecp.view.internal.editor.controls;

 

+import java.net.URL;

 import java.util.ArrayList;

 import java.util.Collection;

+import java.util.LinkedHashMap;

+import java.util.Map;

 

 import org.eclipse.emf.common.util.EList;

 import org.eclipse.emf.ecp.core.ECPProject;

 import org.eclipse.emf.ecp.core.util.ECPUtil;

 import org.eclipse.emf.ecp.core.util.observer.ECPProjectContentChangedObserver;

+import org.eclipse.emf.ecp.edit.internal.swt.ImageDescriptorToImage;

 import org.eclipse.emf.ecp.view.model.provider.xmi.ViewModelFileExtensionsManager;

 import org.eclipse.emf.ecp.view.spi.model.VView;

 import org.eclipse.emf.ecp.workspace.internal.core.WorkspaceProvider;

+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;

+import org.eclipse.jface.action.Action;

+import org.eclipse.jface.resource.ImageDescriptor;

+import org.eclipse.swt.graphics.Image;

+import org.eclipse.swt.graphics.ImageData;

 import org.eclipse.ui.plugin.AbstractUIPlugin;

 import org.osgi.framework.BundleContext;

+import org.osgi.framework.ServiceReference;

 

 /**

  * The activator class controls the plug-in life cycle.

@@ -38,12 +50,111 @@
 	// The shared instance

 	private static Activator plugin;

 

+	private ServiceReference<ReportService> reportServiceReference;

+

 	/**

 	 * The constructor.

 	 */

 	public Activator() {

 	}

 

+	// TODO check if necessary

+	private final Map<String, ImageDescriptorToImage> imageRegistry = new LinkedHashMap<String, ImageDescriptorToImage>(

+		20, .8F, 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<String, ImageDescriptorToImage> eldest) {

+			return size() > 20;

+		}

+

+		@Override

+		public ImageDescriptorToImage remove(Object arg0) {

+			final ImageDescriptorToImage image = super.remove(arg0);

+			image.getImage().dispose();

+			return image;

+		}

+

+	};

+

+	private final Map<Action, ImageDescriptorToImage> imageRegistryByAction = new LinkedHashMap<Action, ImageDescriptorToImage>();

+

+	/**

+	 * Loads an image based on the provided path form this bundle.

+	 *

+	 * @param path the bundle specific path to the image

+	 * @return the {@link Image}

+	 */

+	public static Image getImage(String path) {

+		if (!getDefault().imageRegistry.containsKey(path)) {

+			getDefault().imageRegistry.put(path,

+				new ImageDescriptorToImage(ImageDescriptor.createFromURL(getDefault().getBundle().getResource(path))));

+		}

+		return getDefault().imageRegistry.get(path).getImage();

+

+	}

+

+	/**

+	 * Loads an image for the given Action.

+	 *

+	 * @param action the action

+	 * @return the {@link Image}

+	 */

+	public static Image getImage(Action action) {

+		final String path = action.toString();

+		if (!getDefault().imageRegistry.containsKey(path)) {

+			getDefault().imageRegistry.put(path,

+				new ImageDescriptorToImage(action.getImageDescriptor()));

+		}

+		return getDefault().imageRegistry.get(path).getImage();

+

+	}

+

+	/**

+	 * Loads an image based on the provided {@link URL} form this bundle. The url may be null, then an empty image is

+	 * returned.

+	 *

+	 * @param url the {@link URL} to load the {@link Image} from

+	 * @return the {@link Image}

+	 */

+	public static Image getImage(URL url) {

+		if (!getDefault().imageRegistry.containsKey(url == null ? "NULL" : url.toExternalForm())) { //$NON-NLS-1$

+

+			final ImageDescriptor createFromURL = ImageDescriptor.createFromURL(url);

+			// final ImageData imageData = createFromURL.getImageData();

+			getDefault().imageRegistry.put(url == null ? "NULL" : url.toExternalForm(), new ImageDescriptorToImage( //$NON-NLS-1$

+				createFromURL));

+		}

+		return getDefault().imageRegistry.get(url == null ? "NULL" : url.toExternalForm()).getImage(); //$NON-NLS-1$

+

+	}

+

+	/**

+	 * Loads an {@link ImageDescriptor} based on the provided path form this bundle.

+	 *

+	 * @param path the bundle specific path to the {@link ImageDescriptor}

+	 * @return the {@link ImageDescriptor}

+	 */

+	public static ImageDescriptor getImageDescriptor(String path) {

+		if (!getDefault().imageRegistry.containsKey(path)) {

+			getDefault().imageRegistry.put(path,

+				new ImageDescriptorToImage(ImageDescriptor.createFromURL(getDefault().getBundle().getResource(path))));

+		}

+		return getDefault().imageRegistry.get(path).getImageDescriptor();

+

+	}

+

+	/**

+	 * Loads an {@link ImageData} based on the provided {@link URL}.

+	 *

+	 * @param url the {@link URL} to the {@link ImageData}

+	 * @return the {@link ImageData}

+	 */

+	public static ImageData getImageData(URL url) {

+		return ImageDescriptor.createFromURL(url).getImageData();

+	}

+

 	/*

 	 * (non-Javadoc)

 	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)

@@ -83,6 +194,12 @@
 	public void stop(BundleContext context) throws Exception {

 		plugin = null;

 		super.stop(context);

+		for (final ImageDescriptorToImage descriptorToImage : imageRegistry.values()) {

+			descriptorToImage.getImage().dispose();

+		}

+		for (final ImageDescriptorToImage descriptorToImage : imageRegistryByAction.values()) {

+			descriptorToImage.getImage().dispose();

+		}

 	}

 

 	/**

@@ -93,4 +210,49 @@
 	public static Activator getDefault() {

 		return plugin;

 	}

+

+	/**

+	 * Returns the {@link ReportService}.

+	 *

+	 * @return the {@link ReportService}

+	 */

+	public ReportService getReportService() {

+		if (reportServiceReference == null) {

+			reportServiceReference = plugin.getBundle().getBundleContext()

+				.getServiceReference(ReportService.class);

+		}

+		return plugin.getBundle().getBundleContext().getService(reportServiceReference);

+	}

+

+	/**

+	 * Returns the {@link EMFFormsDatabinding} service.

+	 *

+	 * @return The {@link EMFFormsDatabinding}

+	 */

+	public EMFFormsDatabinding getEMFFormsDatabinding() {

+		final ServiceReference<EMFFormsDatabinding> serviceReference = plugin.getBundle().getBundleContext()

+			.getServiceReference(EMFFormsDatabinding.class);

+

+		final EMFFormsDatabinding service = plugin.getBundle().getBundleContext()

+			.getService(serviceReference);

+		plugin.getBundle().getBundleContext().ungetService(serviceReference);

+

+		return service;

+	}

+

+	/**

+	 * Returns the {@link EMFFormsLabelProvider} service.

+	 *

+	 * @return The {@link EMFFormsLabelProvider}

+	 */

+	public EMFFormsLabelProvider getEMFFormsLabelProvider() {

+		final ServiceReference<EMFFormsLabelProvider> serviceReference = plugin.getBundle().getBundleContext()

+			.getServiceReference(EMFFormsLabelProvider.class);

+

+		final EMFFormsLabelProvider service = plugin.getBundle().getBundleContext()

+			.getService(serviceReference);

+		plugin.getBundle().getBundleContext().ungetService(serviceReference);

+

+		return service;

+	}

 }

diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ControlRootEClassControl.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ControlRootEClassControl.java
index 225dcdc..e8ffa73 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ControlRootEClassControl.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ControlRootEClassControl.java
@@ -71,7 +71,7 @@
 		final Button[] buttons = new Button[2];
 		final Setting setting = getFirstSetting();
 		buttons[0] = createButtonForAction(new DeleteReferenceAction(getEditingDomain(setting), setting,
-			getItemPropertyDescriptor(setting), getService(ReferenceService.class)), composite);
+			getService(ReferenceService.class)), composite);
 		buttons[1] = createButtonForAction(new FilteredReferenceAction(getEditingDomain(setting), setting,
 			getItemPropertyDescriptor(setting), composite.getShell()), composite);
 		return buttons;
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ControlRootEClassControl2SWTRenderer.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ControlRootEClassControl2SWTRenderer.java
index 9dbd950..4f3555d 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ControlRootEClassControl2SWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ControlRootEClassControl2SWTRenderer.java
@@ -19,13 +19,19 @@
 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.EStructuralFeature.Setting;
-import org.eclipse.emf.ecp.edit.internal.swt.Activator;
 import org.eclipse.emf.ecp.edit.spi.util.ECPModelElementChangeListener;
+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.model.VControl;
+import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
 import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
 import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+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.DatabindingFailedReport;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
 import org.eclipse.jface.databinding.swt.SWTObservables;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.layout.GridLayoutFactory;
@@ -34,6 +40,9 @@
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Label;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
 
 /**
  * @author Alexandra Buzila
@@ -41,6 +50,36 @@
  */
 public class ControlRootEClassControl2SWTRenderer extends SimpleControlSWTControlSWTRenderer {
 
+	private static final EMFFormsDatabinding emfFormsDatabinding;
+	private static final EMFFormsLabelProvider emfFormsLabelProvider;
+	private static final VTViewTemplateProvider vtViewTemplateProvider;
+
+	static {
+		final BundleContext bundleContext = FrameworkUtil.getBundle(ControlRootEClassControl2SWTRenderer.class)
+			.getBundleContext();
+		final ServiceReference<EMFFormsDatabinding> emfFormsDatabindingServiceReference = bundleContext
+			.getServiceReference(EMFFormsDatabinding.class);
+		emfFormsDatabinding = bundleContext.getService(emfFormsDatabindingServiceReference);
+		final ServiceReference<EMFFormsLabelProvider> emfFormsLabelProviderServiceReference = bundleContext
+			.getServiceReference(EMFFormsLabelProvider.class);
+		emfFormsLabelProvider = bundleContext.getService(emfFormsLabelProviderServiceReference);
+		final ServiceReference<VTViewTemplateProvider> vtViewTemplateProviderServiceReference = bundleContext
+			.getServiceReference(VTViewTemplateProvider.class);
+		vtViewTemplateProvider = bundleContext.getService(vtViewTemplateProviderServiceReference);
+	}
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService The {@link ReportService}
+	 */
+	public ControlRootEClassControl2SWTRenderer(VControl vElement, ViewModelContext viewContext,
+		ReportService reportService) {
+		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider);
+	}
+
 	private Composite labelComposite;
 	private Label label;
 	private ComposedAdapterFactory composedAdapterFactory;
@@ -55,16 +94,21 @@
 	 *      org.eclipse.emf.ecore.EStructuralFeature.Setting)
 	 */
 	@Override
-	protected Binding[] createBindings(Control control, final Setting setting) {
+	protected Binding[] createBindings(Control control) throws DatabindingFailedException {
 
 		final Binding[] bindings = new Binding[3];
 		final IObservableValue value = SWTObservables.observeText(label);
 
-		bindings[0] = getDataBindingContext().bindValue(value, getModelValue(setting), new UpdateValueStrategy() {
+		bindings[0] = getDataBindingContext().bindValue(value, getModelValue(), new UpdateValueStrategy() {
 
 			@Override
 			public Object convert(Object value) {
-				return getModelValue(setting).getValue();
+				try {
+					return getModelValue().getValue();
+				} catch (final DatabindingFailedException ex) {
+					getReportService().report(new DatabindingFailedReport(ex));
+					return null;
+				}
 			}
 		}, new UpdateValueStrategy() {
 			@Override
@@ -74,12 +118,17 @@
 			}
 		});
 		final IObservableValue tooltipValue = SWTObservables.observeTooltipText(label);
-		bindings[1] = getDataBindingContext().bindValue(tooltipValue, getModelValue(setting),
+		bindings[1] = getDataBindingContext().bindValue(tooltipValue, getModelValue(),
 			new UpdateValueStrategy() {
 
 				@Override
 				public Object convert(Object value) {
-					return getModelValue(setting).getValue();
+					try {
+						return getModelValue().getValue();
+					} catch (final DatabindingFailedException ex) {
+						Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+						return null;
+					}
 				}
 			}, new UpdateValueStrategy() {
 				@Override
@@ -89,11 +138,16 @@
 			});
 
 		final IObservableValue imageValue = SWTObservables.observeImage(imageLabel);
-		bindings[2] = getDataBindingContext().bindValue(imageValue, getModelValue(setting), new UpdateValueStrategy() {
+		bindings[2] = getDataBindingContext().bindValue(imageValue, getModelValue(), new UpdateValueStrategy() {
 
 			@Override
 			public Object convert(Object value) {
-				return getModelValue(setting).getValue();
+				try {
+					return getModelValue().getValue();
+				} catch (final DatabindingFailedException ex) {
+					Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+					return null;
+				}
 			}
 		}, new UpdateValueStrategy() {
 			@Override
@@ -146,11 +200,10 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer#createSWTControl(org.eclipse.swt.widgets.Composite,
-	 *      org.eclipse.emf.ecore.EStructuralFeature.Setting)
+	 * @see org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer#createSWTControl(org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
-	protected Control createSWTControl(Composite parent2, Setting setting) {
+	protected Control createSWTControl(Composite parent2) {
 		final Composite composite2 = new Composite(parent2, SWT.NONE);
 		composite2.setBackground(parent2.getBackground());
 		GridLayoutFactory.fillDefaults().numColumns(1).spacing(0, 0).equalWidth(false).applyTo(composite2);
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ControlRootEClassControl2SWTRendererTester.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ControlRootEClassControl2SWTRendererTester.java
index 4e77c18..aa6a7f2 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ControlRootEClassControl2SWTRendererTester.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ControlRootEClassControl2SWTRendererTester.java
@@ -11,13 +11,15 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.editor.controls;
 
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+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.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.VViewPackage;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 
 /**
  * @author Alexandra Buzila
@@ -27,35 +29,33 @@
 
 	/**
 	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.view.internal.core.swt.renderer.SimpleControlRendererTester#getSupportedClassType()
 	 */
 	@Override
 	public int isApplicable(VElement vElement, ViewModelContext context) {
 		if (!VControl.class.isInstance(vElement)) {
 			return NOT_APPLICABLE;
 		}
-		if (!VControl.class.cast(vElement).getDomainModelReference().getIterator().hasNext()) {
+		final VControl control = (VControl) vElement;
+		IValueProperty valueProperty;
+		try {
+			valueProperty = Activator.getDefault().getEMFFormsDatabinding()
+				.getValueProperty(control.getDomainModelReference(), context.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
 			return NOT_APPLICABLE;
 		}
-		final Setting setting = VControl.class.cast(vElement).getDomainModelReference().getIterator().next();
-		return isApplicable(setting);
+		final EStructuralFeature feature = (EStructuralFeature) valueProperty.getValueType();
+		return isApplicable(feature);
 	}
 
 	/**
-	 * Test if setting contains the correct data.
+	 * Test if the structural feature and the corresponding EObject contain the correct data.
 	 *
-	 * @param setting the {@link Setting} to check
+	 * @param feature The {@link EStructuralFeature} to check
 	 * @return the priority of the control
 	 */
-	protected int isApplicable(Setting setting) {
-		if (!VView.class.isInstance(setting.getEObject())) {
-			return NOT_APPLICABLE;
-		}
-		if (VViewPackage.eINSTANCE.getView_RootEClass() != setting.getEStructuralFeature()) {
-			return NOT_APPLICABLE;
-		}
-		if (setting.get(true) == null) {
+	protected int isApplicable(EStructuralFeature feature) {
+		if (VViewPackage.eINSTANCE.getView_RootEClass() != feature) {
 			return NOT_APPLICABLE;
 		}
 		return 3;
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ControlRootEClassControlChangeableSWTRenderer.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ControlRootEClassControlChangeableSWTRenderer.java
index 8f76c5d..d863ec2 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ControlRootEClassControlChangeableSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ControlRootEClassControlChangeableSWTRenderer.java
@@ -15,6 +15,7 @@
 import java.util.Map;
 import java.util.Set;
 
+import org.eclipse.core.databinding.observable.value.IObservableValue;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.emf.common.notify.AdapterFactory;
@@ -26,18 +27,21 @@
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.EPackage.Descriptor;
 import org.eclipse.emf.ecore.EPackage.Registry;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
 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.edit.internal.swt.Activator;
 import org.eclipse.emf.ecp.ide.view.internal.service.IDEViewModelRegistryImpl;
 import org.eclipse.emf.ecp.ide.view.service.IDEViewModelRegistry;
+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.VView;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
 import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
 import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+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.DatabindingFailedReport;
 import org.eclipse.jface.layout.GridLayoutFactory;
 import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jface.viewers.Viewer;
@@ -61,21 +65,30 @@
 public class ControlRootEClassControlChangeableSWTRenderer extends ControlRootEClassControl2SWTRenderer {
 
 	/**
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 */
+	public ControlRootEClassControlChangeableSWTRenderer(VControl vElement, ViewModelContext viewContext,
+		ReportService reportService) {
+		super(vElement, viewContext, reportService);
+		// TODO Auto-generated constructor stub
+	}
+
+	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.internal.editor.controls.ControlRootEClassControl2SWTRenderer#createSWTControl(org.eclipse.swt.widgets.Composite,
-	 *      org.eclipse.emf.ecore.EStructuralFeature.Setting)
+	 * @see org.eclipse.emf.ecp.view.internal.editor.controls.ControlRootEClassControl2SWTRenderer#createSWTControl(org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
-	protected Control createSWTControl(final Composite parent2, Setting setting) {
-		// TODO Auto-generated method stub
-		final Composite composite = (Composite) super.createSWTControl(parent2, setting);
+	protected Control createSWTControl(final Composite parent2) {
+		final Composite composite = (Composite) super.createSWTControl(parent2);
 
 		GridLayoutFactory.fillDefaults().numColumns(2).spacing(0, 0).equalWidth(false).applyTo(composite);
 
 		final Button selectClass = new Button(composite, SWT.PUSH);
-		selectClass.setText("Link Root EClass");
-		selectClass.setToolTipText("Link Root EClass");
+		selectClass.setText("Link Root EClass"); //$NON-NLS-1$
+		selectClass.setToolTipText("Link Root EClass"); //$NON-NLS-1$
 		selectClass.addSelectionListener(new SelectionAdapter() {
 
 			/**
@@ -125,7 +138,20 @@
 			final Object selection = dialog.getFirstResult();
 			if (EClass.class.isInstance(selection)) {
 				final EClass selectedFeature = (EClass) selection;
-				final VView view = (VView) getVElement().getDomainModelReference().getIterator().next().getEObject();
+				final VView view;
+				final IObservableValue observableValue;
+				try {
+					observableValue = Activator
+						.getDefault()
+						.getEMFFormsDatabinding()
+						.getObservableValue(getVElement().getDomainModelReference(),
+							getViewModelContext().getDomainModel());
+				} catch (final DatabindingFailedException ex) {
+					Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+					return;
+				}
+				view = (VView) observableValue.getValue();
+				observableValue.dispose();
 
 				if (view.getRootEClass() != null) {
 					getViewModelRegistry().unregister(
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ControlTargetFeatureControl.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ControlTargetFeatureControl.java
index 9723065..b07fe14 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ControlTargetFeatureControl.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ControlTargetFeatureControl.java
@@ -80,7 +80,7 @@
 		final Button[] buttons = new Button[2];
 		final Setting setting = getFirstSetting();
 		buttons[0] = createButtonForAction(new DeleteReferenceAction(getEditingDomain(setting), setting,
-			getItemPropertyDescriptor(setting), getService(ReferenceService.class)) {
+			getService(ReferenceService.class)) {
 
 			@Override
 			public void run() {
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 0802e7b..42bb3bb 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
@@ -17,6 +17,7 @@
 import org.eclipse.core.databinding.Binding;
 import org.eclipse.core.databinding.DataBindingContext;
 import org.eclipse.core.databinding.UpdateValueStrategy;
+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;
@@ -26,12 +27,9 @@
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
 import org.eclipse.emf.ecore.impl.EReferenceImpl;
 import org.eclipse.emf.ecp.core.util.ECPUtil;
-import org.eclipse.emf.ecp.edit.internal.swt.Activator;
 import org.eclipse.emf.ecp.edit.internal.swt.SWTImageHelper;
-import org.eclipse.emf.ecp.edit.internal.swt.controls.ControlMessages;
 import org.eclipse.emf.ecp.edit.spi.swt.reference.DeleteReferenceAction;
 import org.eclipse.emf.ecp.edit.spi.swt.reference.NewReferenceAction;
 import org.eclipse.emf.ecp.edit.spi.util.ECPModelElementChangeListener;
@@ -47,10 +45,18 @@
 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.table.model.VTableDomainModelReference;
+import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
 import org.eclipse.emf.edit.command.SetCommand;
 import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
 import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+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.DatabindingFailedReport;
+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.LocalizationServiceHelper;
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.databinding.swt.SWTObservables;
 import org.eclipse.jface.layout.GridDataFactory;
@@ -67,6 +73,9 @@
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Label;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
 
 /**
  * Renderer for DomainModelReferences.
@@ -78,10 +87,46 @@
 @SuppressWarnings("restriction")
 public class DomainModelReferenceControlSWTRenderer extends SimpleControlSWTControlSWTRenderer {
 
+	private static final EMFFormsDatabinding emfFormsDatabinding;
+	private static final EMFFormsLabelProvider emfFormsLabelProvider;
+	private static final VTViewTemplateProvider vtViewTemplateProvider;
+	private static EMFFormsEditSupport emfFormsEditSupport;
+
+	static {
+		final BundleContext bundleContext = FrameworkUtil.getBundle(EReferenceLabelControlSWTRenderer.class)
+			.getBundleContext();
+		final ServiceReference<EMFFormsDatabinding> emfFormsDatabindingServiceReference = bundleContext
+			.getServiceReference(EMFFormsDatabinding.class);
+		emfFormsDatabinding = bundleContext.getService(emfFormsDatabindingServiceReference);
+		final ServiceReference<EMFFormsEditSupport> emfFormsEditSupportServiceReference = bundleContext
+			.getServiceReference(EMFFormsEditSupport.class);
+		emfFormsEditSupport = bundleContext.getService(emfFormsEditSupportServiceReference);
+		final ServiceReference<EMFFormsLabelProvider> emfFormsLabelProviderServiceReference = bundleContext
+			.getServiceReference(EMFFormsLabelProvider.class);
+		emfFormsLabelProvider = bundleContext.getService(emfFormsLabelProviderServiceReference);
+		final ServiceReference<VTViewTemplateProvider> vtViewTemplateProviderServiceReference = bundleContext
+			.getServiceReference(VTViewTemplateProvider.class);
+		vtViewTemplateProvider = bundleContext.getService(vtViewTemplateProviderServiceReference);
+	}
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService The {@link ReportService}
+	 */
+	public DomainModelReferenceControlSWTRenderer(VControl vElement, ViewModelContext viewContext,
+		ReportService reportService) {
+		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider);
+	}
+
 	private Composite mainComposite;
 	private StackLayout stackLayout;
 	private Label unsetLabel;
-	private Setting setting;
+	private EObject eObject;
+	private EStructuralFeature structuralFeature;
+	// private Setting setting;
 	private ECPModelElementChangeListener modelElementChangeListener;
 	private ComposedAdapterFactory composedAdapterFactory;
 	private AdapterFactoryItemDelegator adapterFactoryItemDelegator;
@@ -97,16 +142,21 @@
 	 *      org.eclipse.emf.ecore.EStructuralFeature.Setting)
 	 */
 	@Override
-	protected Binding[] createBindings(Control control, final Setting setting) {
+	protected Binding[] createBindings(Control control) throws DatabindingFailedException {
 
 		final Binding[] bindings = new Binding[2];
 		final IObservableValue value = SWTObservables.observeText(setLabel);
 
-		bindings[0] = getDataBindingContext().bindValue(value, getModelValue(setting), new UpdateValueStrategy() {
+		bindings[0] = getDataBindingContext().bindValue(value, getModelValue(), new UpdateValueStrategy() {
 
 			@Override
 			public Object convert(Object value) { // target to model
-				return getModelValue(setting).getValue();
+				try {
+					return getModelValue().getValue();
+				} catch (final DatabindingFailedException ex) {
+					Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+					return null;
+				}
 			}
 		}, new UpdateValueStrategy() {// model to target
 				@Override
@@ -117,7 +167,7 @@
 			});
 
 		final IObservableValue imageValue = SWTObservables.observeImage(imageLabel);
-		bindings[1] = getDataBindingContext().bindValue(imageValue, getModelValue(setting),
+		bindings[1] = getDataBindingContext().bindValue(imageValue, getModelValue(),
 			new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER)
 			, new UpdateValueStrategy() {
 				@Override
@@ -214,13 +264,15 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer#createSWTControl(org.eclipse.swt.widgets.Composite,
-	 *      org.eclipse.emf.ecore.EStructuralFeature.Setting)
+	 * @see org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer#createSWTControl(org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
-	protected Control createSWTControl(Composite parent, Setting setting) {
-
-		this.setting = setting;
+	protected Control createSWTControl(Composite parent) throws DatabindingFailedException {
+		final IObservableValue observableValue = Activator.getDefault().getEMFFormsDatabinding()
+			.getObservableValue(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
+		eObject = (EObject) ((IObserving) observableValue).getObserved();
+		structuralFeature = (EStructuralFeature) observableValue.getValueType();
+		observableValue.dispose();
 
 		final Composite containerComposite = new Composite(parent, SWT.NONE);
 		containerComposite.setBackground(parent.getBackground());
@@ -242,7 +294,7 @@
 
 		unsetLabel = new Label(mainComposite, SWT.NONE);
 		GridDataFactory.fillDefaults().grab(true, true).align(SWT.FILL, SWT.FILL).applyTo(unsetLabel);
-		unsetLabel.setText(ControlMessages.LinkControl_NotSet);
+		unsetLabel.setText(LocalizationServiceHelper.getString(getClass(), "LinkControl_NotSet")); //$NON-NLS-1$
 		unsetLabel.setBackground(mainComposite.getBackground());
 		unsetLabel.setForeground(parentComposite.getDisplay().getSystemColor(SWT.COLOR_DARK_GRAY));
 		unsetLabel.setAlignment(SWT.CENTER);
@@ -258,7 +310,7 @@
 		setLabel.setBackground(contentSetComposite.getBackground());
 		GridDataFactory.fillDefaults().grab(true, false).align(SWT.FILL, SWT.FILL).applyTo(setLabel);
 
-		if (setting.isSet()) {
+		if (eObject.eIsSet(structuralFeature)) {
 			stackLayout.topControl = contentSetComposite;
 		} else {
 			stackLayout.topControl = unsetLabel;
@@ -276,17 +328,18 @@
 
 	/**
 	 * @param parentComposite
+	 * @throws DatabindingFailedException
 	 */
-	private void createButtons(Composite composite) {
-		final Button unsetBtn = createButtonForAction(new DeleteReferenceAction(getEditingDomain(setting), setting,
-			getItemPropertyDescriptor(setting), null), composite);
+	private void createButtons(Composite composite) throws DatabindingFailedException {
+		final Button unsetBtn = createButtonForAction(new DeleteReferenceAction(getEditingDomain(eObject), eObject,
+			structuralFeature, null), composite);
 		unsetBtn.addSelectionListener(new SelectionListener() {
 
 			@Override
 			public void widgetSelected(SelectionEvent e) {
-				final Command setCommand = SetCommand.create(getEditingDomain(setting), setting.getEObject(),
-					setting.getEStructuralFeature(), SetCommand.UNSET_VALUE);
-				getEditingDomain(setting).getCommandStack().execute(setCommand);
+				final Command setCommand = SetCommand.create(getEditingDomain(eObject), eObject, structuralFeature,
+					SetCommand.UNSET_VALUE);
+				getEditingDomain(eObject).getCommandStack().execute(setCommand);
 			}
 
 			@Override
@@ -295,11 +348,11 @@
 			}
 		});
 
-		final Button setBtn = createButtonForAction(new NewReferenceAction(getEditingDomain(setting), setting,
-			getItemPropertyDescriptor(setting), null), composite); // getViewModelContext().getService(ReferenceService.class)
-		setBtn.addSelectionListener(new SelectionAdapterExtension(setLabel, getModelValue(setting),
-			getViewModelContext(),
-			getDataBindingContext(), setting.getEStructuralFeature()));
+		final Button setBtn = createButtonForAction(new NewReferenceAction(getEditingDomain(eObject), eObject,
+			structuralFeature, emfFormsEditSupport, emfFormsLabelProvider, null, getReportService(), getVElement()
+				.getDomainModelReference(), getViewModelContext().getDomainModel()), composite); // getViewModelContext().getService(ReferenceService.class)
+		setBtn.addSelectionListener(new SelectionAdapterExtension(setLabel, getModelValue(), getViewModelContext(),
+			getDataBindingContext(), structuralFeature));
 
 	}
 
@@ -325,7 +378,7 @@
 	 */
 	@Override
 	protected String getUnsetText() {
-		return ControlMessages.LinkControl_NoLinkSetClickToSetLink;
+		return LocalizationServiceHelper.getString(getClass(), "LinkControl_NoLinkSetClickToSetLink"); //$NON-NLS-1$
 	}
 
 	/** SelectionAdapter for the set button. */
@@ -339,7 +392,6 @@
 			this.eStructuralFeature = eStructuralFeature;
 		}
 
-		@SuppressWarnings("restriction")
 		@Override
 		public void widgetSelected(SelectionEvent e) {
 			final Collection<EClass> classes = ECPUtil.getSubClasses(((EReferenceImpl) eStructuralFeature)
@@ -348,14 +400,14 @@
 			final EClass eclass = Helper.getRootEClass(getViewModelContext().getDomainModel());
 
 			VDomainModelReference reference = null;
-			if (VControl.class.isInstance(setting.getEObject())) {
-				reference = VControl.class.cast(setting.getEObject()).getDomainModelReference();
-			} else if (VLabel.class.isInstance(setting.getEObject())) {
-				reference = VLabel.class.cast(setting.getEObject()).getDomainModelReference();
+			if (VControl.class.isInstance(eObject)) {
+				reference = VControl.class.cast(eObject).getDomainModelReference();
+			} else if (VLabel.class.isInstance(eObject)) {
+				reference = VLabel.class.cast(eObject).getDomainModelReference();
 			}
 
 			final CreateDomainModelReferenceWizard wizard = new CreateDomainModelReferenceWizard(
-				setting, getEditingDomain(setting), eclass,
+				eObject, structuralFeature, getEditingDomain(eObject), eclass,
 				reference == null ? "New Reference Element" : "Configure " + reference.eClass().getName(), //$NON-NLS-1$ //$NON-NLS-2$
 				Messages.NewModelElementWizard_WizardTitle_AddModelElement,
 				Messages.NewModelElementWizard_PageTitle_AddModelElement,
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/DomainModelReferenceControlSWTRendererTester.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/DomainModelReferenceControlSWTRendererTester.java
index 7451ffe..003bdee 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/DomainModelReferenceControlSWTRendererTester.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/DomainModelReferenceControlSWTRendererTester.java
@@ -11,7 +11,8 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.editor.controls;
 
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+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.label.model.VLabelPackage;
@@ -20,6 +21,8 @@
 import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
 import org.eclipse.emf.ecp.view.spi.stack.model.VStackPackage;
 import org.eclipse.emf.ecp.view.spi.table.model.VTablePackage;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 
 /**
  * @author Alexandra Buzila
@@ -39,31 +42,35 @@
 		if (!VControl.class.isInstance(vElement)) {
 			return NOT_APPLICABLE;
 		}
-		final Setting setting = VControl.class.cast(vElement).getDomainModelReference().getIterator().next();
-		return isApplicable(setting);
+		final VControl control = (VControl) vElement;
+		IValueProperty valueProperty;
+		try {
+			valueProperty = Activator.getDefault().getEMFFormsDatabinding()
+				.getValueProperty(control.getDomainModelReference(), viewModelContext.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+			return NOT_APPLICABLE;
+		}
+		return isApplicable((EStructuralFeature) valueProperty.getValueType());
 	}
 
 	/**
-	 * Test if setting contains the correct data.
+	 * Test if the structural feature contains the correct data.
 	 *
-	 * @param setting the {@link Setting} to check
+	 * @param feature the {@link EStructuralFeature} to check
 	 * @return the priority of the control
 	 */
-	protected int isApplicable(Setting setting) {
-		if (setting == null) {
-			return NOT_APPLICABLE;
-		}
-		if (VViewPackage.eINSTANCE.getControl_DomainModelReference() == setting.getEStructuralFeature()) {
+	protected int isApplicable(EStructuralFeature feature) {
+		if (VViewPackage.eINSTANCE.getControl_DomainModelReference() == feature) {
 			return 3;
 		}
-		if (VLabelPackage.eINSTANCE.getLabel_DomainModelReference() == setting.getEStructuralFeature()) {
+		if (VLabelPackage.eINSTANCE.getLabel_DomainModelReference() == feature) {
 			return 3;
 		}
-		if (VStackPackage.eINSTANCE.getStackLayout_DomainModelReference() == setting.getEStructuralFeature()) {
+		if (VStackPackage.eINSTANCE.getStackLayout_DomainModelReference() == feature) {
 			return 3;
 		}
-		if (VTablePackage.eINSTANCE.getTableDomainModelReference_DomainModelReference() == setting
-			.getEStructuralFeature()) {
+		if (VTablePackage.eINSTANCE.getTableDomainModelReference_DomainModelReference() == feature) {
 			return 3;
 		}
 		return NOT_APPLICABLE;
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/EReferenceLabelControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/EReferenceLabelControlSWTRenderer.java
index ef13c9c..d74bafa 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/EReferenceLabelControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/EReferenceLabelControlSWTRenderer.java
@@ -19,13 +19,19 @@
 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.EStructuralFeature.Setting;
-import org.eclipse.emf.ecp.edit.internal.swt.Activator;
 import org.eclipse.emf.ecp.edit.spi.util.ECPModelElementChangeListener;
+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.model.VControl;
+import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
 import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
 import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+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.DatabindingFailedReport;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
 import org.eclipse.jface.databinding.swt.SWTObservables;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.layout.GridLayoutFactory;
@@ -34,6 +40,9 @@
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Label;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
 
 /**
  * @author Alexandra Buzila
@@ -41,6 +50,36 @@
  */
 public class EReferenceLabelControlSWTRenderer extends SimpleControlSWTControlSWTRenderer {
 
+	private static final EMFFormsDatabinding emfFormsDatabinding;
+	private static final EMFFormsLabelProvider emfFormsLabelProvider;
+	private static final VTViewTemplateProvider vtViewTemplateProvider;
+
+	static {
+		final BundleContext bundleContext = FrameworkUtil.getBundle(EReferenceLabelControlSWTRenderer.class)
+			.getBundleContext();
+		final ServiceReference<EMFFormsDatabinding> emfFormsDatabindingServiceReference = bundleContext
+			.getServiceReference(EMFFormsDatabinding.class);
+		emfFormsDatabinding = bundleContext.getService(emfFormsDatabindingServiceReference);
+		final ServiceReference<EMFFormsLabelProvider> emfFormsLabelProviderServiceReference = bundleContext
+			.getServiceReference(EMFFormsLabelProvider.class);
+		emfFormsLabelProvider = bundleContext.getService(emfFormsLabelProviderServiceReference);
+		final ServiceReference<VTViewTemplateProvider> vtViewTemplateProviderServiceReference = bundleContext
+			.getServiceReference(VTViewTemplateProvider.class);
+		vtViewTemplateProvider = bundleContext.getService(vtViewTemplateProviderServiceReference);
+	}
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService The {@link ReportService}
+	 */
+	public EReferenceLabelControlSWTRenderer(VControl vElement, ViewModelContext viewContext,
+		ReportService reportService) {
+		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider);
+	}
+
 	private Composite labelComposite;
 	private Label label;
 	private ComposedAdapterFactory composedAdapterFactory;
@@ -55,16 +94,21 @@
 	 *      org.eclipse.emf.ecore.EStructuralFeature.Setting)
 	 */
 	@Override
-	protected Binding[] createBindings(Control control, final Setting setting) {
+	protected Binding[] createBindings(Control control) throws DatabindingFailedException {
 
 		final Binding[] bindings = new Binding[3];
 		final IObservableValue value = SWTObservables.observeText(label);
 
-		bindings[0] = getDataBindingContext().bindValue(value, getModelValue(setting), new UpdateValueStrategy() {
+		bindings[0] = getDataBindingContext().bindValue(value, getModelValue(), new UpdateValueStrategy() {
 
 			@Override
 			public Object convert(Object value) {
-				return getModelValue(setting).getValue();
+				try {
+					return getModelValue().getValue();
+				} catch (final DatabindingFailedException ex) {
+					Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+					return null;
+				}
 			}
 		}, new UpdateValueStrategy() {
 			@Override
@@ -74,12 +118,17 @@
 			}
 		});
 		final IObservableValue tooltipValue = SWTObservables.observeTooltipText(label);
-		bindings[1] = getDataBindingContext().bindValue(tooltipValue, getModelValue(setting),
+		bindings[1] = getDataBindingContext().bindValue(tooltipValue, getModelValue(),
 			new UpdateValueStrategy() {
 
 				@Override
 				public Object convert(Object value) {
-					return getModelValue(setting).getValue();
+					try {
+						return getModelValue().getValue();
+					} catch (final DatabindingFailedException ex) {
+						Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+						return null;
+					}
 				}
 			}, new UpdateValueStrategy() {
 				@Override
@@ -89,11 +138,16 @@
 			});
 
 		final IObservableValue imageValue = SWTObservables.observeImage(imageLabel);
-		bindings[2] = getDataBindingContext().bindValue(imageValue, getModelValue(setting), new UpdateValueStrategy() {
+		bindings[2] = getDataBindingContext().bindValue(imageValue, getModelValue(), new UpdateValueStrategy() {
 
 			@Override
 			public Object convert(Object value) {
-				return getModelValue(setting).getValue();
+				try {
+					return getModelValue().getValue();
+				} catch (final DatabindingFailedException ex) {
+					Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+					return null;
+				}
 			}
 		}, new UpdateValueStrategy() {
 			@Override
@@ -152,7 +206,7 @@
 	 *      org.eclipse.emf.ecore.EStructuralFeature.Setting)
 	 */
 	@Override
-	protected Control createSWTControl(Composite parent2, Setting setting) {
+	protected Control createSWTControl(Composite parent2) throws DatabindingFailedException {
 		final Composite composite2 = new Composite(parent2, SWT.NONE);
 		composite2.setBackground(parent2.getBackground());
 		GridLayoutFactory.fillDefaults().numColumns(1).spacing(0, 0).equalWidth(false).applyTo(composite2);
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/EditableEReferenceLabelControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/EditableEReferenceLabelControlSWTRenderer.java
index cf63864..868335b 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/EditableEReferenceLabelControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/EditableEReferenceLabelControlSWTRenderer.java
@@ -11,9 +11,25 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.editor.controls;
 
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.core.databinding.UpdateValueStrategy;
+import org.eclipse.core.databinding.observable.IObserving;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.databinding.EMFDataBindingContext;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.edit.spi.swt.util.ECPDialogExecutor;
+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.swt.reporting.RenderingFailedReport;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
+import org.eclipse.emfforms.spi.core.services.label.NoLabelFoundException;
+import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.jface.dialogs.IDialogLabelKeys;
+import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.layout.GridLayoutFactory;
+import org.eclipse.jface.resource.JFaceResources;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
@@ -28,31 +44,73 @@
  */
 public abstract class EditableEReferenceLabelControlSWTRenderer extends EReferenceLabelControlSWTRenderer {
 
+	private final EMFDataBindingContext viewModelDBC;
+
+	/**
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 */
+	public EditableEReferenceLabelControlSWTRenderer(VControl vElement, ViewModelContext viewContext,
+		ReportService reportService) {
+		super(vElement, viewContext, reportService);
+		viewModelDBC = new EMFDataBindingContext();
+	}
+
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.internal.editor.controls.ControlRootEClassControl2SWTRenderer#createSWTControl(org.eclipse.swt.widgets.Composite,
-	 *      org.eclipse.emf.ecore.EStructuralFeature.Setting)
+	 * @see org.eclipse.emf.ecp.view.internal.editor.controls.ControlRootEClassControl2SWTRenderer#createSWTControl(org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
-	protected Control createSWTControl(final Composite parent2, final Setting setting) {
-		// TODO Auto-generated method stub
-		final Composite composite = (Composite) super.createSWTControl(parent2, setting);
+	protected Control createSWTControl(final Composite parent2) throws DatabindingFailedException {
+		final Composite composite = (Composite) super.createSWTControl(parent2);
 
 		GridLayoutFactory.fillDefaults().numColumns(3).spacing(0, 0).equalWidth(false).applyTo(composite);
 
-		final IItemPropertyDescriptor itemPropertyDescriptor = getItemPropertyDescriptor(setting);
-
-		String labelText = ""; //$NON-NLS-1$
-		String tooltip = ""; //$NON-NLS-1$
-		if (itemPropertyDescriptor != null) {
-			labelText = itemPropertyDescriptor.getDisplayName(setting.getEObject());
-			tooltip = itemPropertyDescriptor.getDescription(setting.getEObject());
-		}
-
+		final EMFFormsLabelProvider labelProvider = Activator.getDefault().getEMFFormsLabelProvider();
 		final Button selectClass = new Button(composite, SWT.PUSH);
-		selectClass.setText("Link " + labelText); //$NON-NLS-1$
-		selectClass.setToolTipText("Link " + tooltip); //$NON-NLS-1$
+		try {
+			final IObservableValue labelText = labelProvider.getDisplayName(getVElement().getDomainModelReference(),
+				getViewModelContext().getDomainModel());
+			final IObservableValue tooltip = labelProvider.getDescription(getVElement().getDomainModelReference(),
+				getViewModelContext().getDomainModel());
+
+			viewModelDBC.bindValue(SWTObservables.observeText(selectClass), labelText, null, new UpdateValueStrategy() {
+
+				/**
+				 * {@inheritDoc}
+				 * 
+				 * @see org.eclipse.core.databinding.UpdateValueStrategy#convert(java.lang.Object)
+				 */
+				@Override
+				public Object convert(Object value) {
+					final String result = (String) super.convert(value);
+					return "Link " + result; //$NON-NLS-1$
+				}
+
+			});
+			viewModelDBC.bindValue(SWTObservables.observeTooltipText(selectClass), tooltip, null,
+				new UpdateValueStrategy() {
+
+					/**
+					 * {@inheritDoc}
+					 * 
+					 * @see org.eclipse.core.databinding.UpdateValueStrategy#convert(java.lang.Object)
+					 */
+					@Override
+					public Object convert(Object value) {
+						final String result = (String) super.convert(value);
+						return "Link " + result; //$NON-NLS-1$
+					}
+
+				});
+		} catch (final NoLabelFoundException e) {
+			// FIXME Expectation?
+			getReportService().getReports().add(new RenderingFailedReport(e));
+			selectClass.setText("Link "); //$NON-NLS-1$
+			selectClass.setToolTipText("Link "); //$NON-NLS-1$
+		}
 		selectClass.addSelectionListener(new SelectionAdapter() {
 
 			/**
@@ -72,6 +130,12 @@
 		final Button unset = new Button(composite, SWT.PUSH);
 		unset.setText("Unset"); //$NON-NLS-1$
 		unset.setToolTipText("Unset"); //$NON-NLS-1$
+		final IObservableValue observableValue = Activator.getDefault().getEMFFormsDatabinding()
+			.getObservableValue(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
+		final EObject eObject = (EObject) ((IObserving) observableValue).getObserved();
+		final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+		observableValue.dispose();
+
 		unset.addSelectionListener(new SelectionAdapter() {
 
 			/**
@@ -82,7 +146,7 @@
 			@Override
 			public void widgetSelected(SelectionEvent e) {
 				super.widgetSelected(e);
-				setting.unset();
+				eObject.eUnset(structuralFeature);
 				composite.layout(true, true);
 			}
 
@@ -97,4 +161,35 @@
 	 * @param shell the Shell
 	 */
 	protected abstract void linkValue(Shell shell);
+
+	/**
+	 * Shows an error message dialog indicating a failed value link due to an exception.
+	 *
+	 * @param shell The parent {@link Shell} of the message dialog
+	 * @param ex The {@link Exception} causing the failure
+	 */
+	protected void showLinkValueFailedMessageDialog(Shell shell, final Exception ex) {
+		final MessageDialog dialog = new MessageDialog(
+			shell, "Link Value Failed", null, //$NON-NLS-1$
+			"The value could not be linked due to an exception: " + ex.getMessage(), MessageDialog.ERROR, new String[] { //$NON-NLS-1$
+			JFaceResources.getString(IDialogLabelKeys.OK_LABEL_KEY) }, 0);
+
+		new ECPDialogExecutor(dialog) {
+			@Override
+			public void handleResult(int codeResult) {
+				// no op
+			}
+		}.execute();
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.internal.editor.controls.EReferenceLabelControlSWTRenderer#dispose()
+	 */
+	@Override
+	public void dispose() {
+		viewModelDBC.dispose();
+		super.dispose();
+	}
 }
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ExpectedValueControlRenderer.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ExpectedValueControlRenderer.java
index 98aaa26..7c21475da 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ExpectedValueControlRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/ExpectedValueControlRenderer.java
@@ -14,23 +14,32 @@
 
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
-import java.util.Iterator;
 
 import org.eclipse.core.databinding.Binding;
 import org.eclipse.core.databinding.DataBindingContext;
 import org.eclipse.core.databinding.UpdateValueStrategy;
+import org.eclipse.core.databinding.observable.IObserving;
 import org.eclipse.core.databinding.observable.value.IObservableValue;
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.common.util.Enumerator;
 import org.eclipse.emf.databinding.EMFUpdateValueStrategy;
 import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EEnumLiteral;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.impl.EEnumImpl;
+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.model.VControl;
 import org.eclipse.emf.ecp.view.spi.provider.ECPTooltipModifierHelper;
+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.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.label.EMFFormsLabelProvider;
 import org.eclipse.jface.databinding.swt.SWTObservables;
 import org.eclipse.jface.dialogs.InputDialog;
 import org.eclipse.jface.dialogs.MessageDialog;
@@ -47,8 +56,10 @@
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.dialogs.ListDialog;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
 
 /**
  * A control for defining an value in a leaf condition.
@@ -59,6 +70,36 @@
 // APITODO no api yet
 public abstract class ExpectedValueControlRenderer extends SimpleControlSWTControlSWTRenderer {
 
+	private static final EMFFormsDatabinding emfFormsDatabinding;
+	private static final EMFFormsLabelProvider emfFormsLabelProvider;
+	private static final VTViewTemplateProvider vtViewTemplateProvider;
+
+	static {
+		final BundleContext bundleContext = FrameworkUtil.getBundle(ExpectedValueControlRenderer.class)
+			.getBundleContext();
+		final ServiceReference<EMFFormsDatabinding> emfFormsDatabindingServiceReference = bundleContext
+			.getServiceReference(EMFFormsDatabinding.class);
+		emfFormsDatabinding = bundleContext.getService(emfFormsDatabindingServiceReference);
+		final ServiceReference<EMFFormsLabelProvider> emfFormsLabelProviderServiceReference = bundleContext
+			.getServiceReference(EMFFormsLabelProvider.class);
+		emfFormsLabelProvider = bundleContext.getService(emfFormsLabelProviderServiceReference);
+		final ServiceReference<VTViewTemplateProvider> vtViewTemplateProviderServiceReference = bundleContext
+			.getServiceReference(VTViewTemplateProvider.class);
+		vtViewTemplateProvider = bundleContext.getService(vtViewTemplateProviderServiceReference);
+	}
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService The {@link ReportService}
+	 */
+	public ExpectedValueControlRenderer(VControl vElement, ViewModelContext viewContext,
+		ReportService reportService) {
+		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider);
+	}
+
 	private Label text;
 
 	private String getTextVariantID() {
@@ -68,11 +109,10 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer#createSWTControl(org.eclipse.swt.widgets.Composite,
-	 *      org.eclipse.emf.ecore.EStructuralFeature.Setting)
+	 * @see org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer#createSWTControl(org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
-	protected Control createSWTControl(Composite parent, Setting setting) {
+	protected Control createSWTControl(Composite parent) {
 		final Composite composite = new Composite(parent, SWT.NONE);
 		GridLayoutFactory.fillDefaults().numColumns(2).applyTo(composite);
 		GridDataFactory.fillDefaults().grab(true, false).align(SWT.FILL, SWT.BEGINNING).applyTo(composite);
@@ -101,14 +141,14 @@
 	 *      org.eclipse.emf.ecore.EStructuralFeature.Setting)
 	 */
 	@Override
-	protected Binding[] createBindings(Control control, Setting setting) {
+	protected Binding[] createBindings(Control control) throws DatabindingFailedException {
 		final Label text = (Label) control;
 		final TargetToModelUpdateStrategy targetToModelUpdateStrategy = new TargetToModelUpdateStrategy();
 		final ModelToTargetUpdateStrategy modelToTargetUpdateStrategy = new ModelToTargetUpdateStrategy();
 
 		final IObservableValue value = SWTObservables.observeText(text);
 
-		final Binding binding = getDataBindingContext().bindValue(value, getModelValue(setting),
+		final Binding binding = getDataBindingContext().bindValue(value, getModelValue(),
 			targetToModelUpdateStrategy, modelToTargetUpdateStrategy);
 		return new Binding[] { binding };
 	}
@@ -220,18 +260,18 @@
 	 */
 	protected abstract void onSelectButton(Label text);
 
-	protected Setting getSetting(VControl control) {
-		final Iterator<Setting> iterator = control.getDomainModelReference().getIterator();
-		int count = 0;
-		Setting setting = null;
-		while (iterator.hasNext()) {
-			count++;
-			setting = iterator.next();
-		}
-		if (count != 1) {
-			return null;
-		}
-		return setting;
+	/**
+	 * Returns the model object representing the value for this renderer's domain model reference.
+	 *
+	 * @return the EObject
+	 * @throws DatabindingFailedException if the databinding fails
+	 */
+	protected EObject getObservedEObject() throws DatabindingFailedException {
+		final IObservableValue observableValue = Activator.getDefault().getEMFFormsDatabinding()
+			.getObservableValue(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
+		final EObject result = (EObject) ((IObserving) observableValue).getObserved();
+		observableValue.dispose();
+		return result;
 	}
 
 	/**
@@ -260,8 +300,20 @@
 		public Object convert(Object value) {
 			final Object converted = value.toString();
 			if (String.class.isInstance(converted)) {
-				return ECPTooltipModifierHelper.modifyString(String.class.cast(converted), getVElement()
-					.getDomainModelReference().getIterator().next());
+				IObservableValue observableValue;
+				try {
+					observableValue = emfFormsDatabinding
+						.getObservableValue(getVElement().getDomainModelReference(),
+							getViewModelContext().getDomainModel());
+				} catch (final DatabindingFailedException ex) {
+					getReportService().report(new DatabindingFailedReport(ex));
+					return converted;
+				}
+				final InternalEObject internalEObject = (InternalEObject) ((IObserving) observableValue).getObserved();
+				final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+				observableValue.dispose();
+				return ECPTooltipModifierHelper.modifyString(String.class.cast(converted),
+					internalEObject.eSetting(structuralFeature));
 			}
 			return converted;
 		}
@@ -278,8 +330,6 @@
 
 		/**
 		 * Constructor for indicating whether a value is unsettable.
-		 *
-		 * @param unsettable true if value is unsettable, false otherwise
 		 */
 		public TargetToModelUpdateStrategy() {
 		}
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 5fa7ec1..ca1d3ac 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
@@ -14,9 +14,6 @@
 import java.util.Collection;
 import java.util.HashSet;
 
-import java.util.Collection;
-import java.util.HashSet;
-
 import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EPackage;
@@ -27,6 +24,8 @@
 import org.eclipse.emf.ecp.spi.common.ui.CompositeFactory;
 import org.eclipse.emf.ecp.spi.common.ui.composites.SelectionComposite;
 import org.eclipse.emf.ecp.view.internal.editor.handler.CreateDomainModelReferenceWizard;
+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.VFeaturePathDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
 import org.eclipse.emf.ecp.view.spi.rule.model.LeafCondition;
@@ -35,6 +34,9 @@
 import org.eclipse.emf.edit.command.SetCommand;
 import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
 import org.eclipse.emf.edit.domain.EditingDomain;
+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.DatabindingFailedReport;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.viewers.TreeViewer;
 import org.eclipse.jface.wizard.WizardDialog;
@@ -48,19 +50,35 @@
 public class LeafConditionControlRenderer extends ExpectedValueControlRenderer {
 
 	/**
+	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 */
+	public LeafConditionControlRenderer(VControl vElement, ViewModelContext viewContext, ReportService reportService) {
+		super(vElement, viewContext, reportService);
+	}
+
+	/**
 	 * {@inheritDoc}
 	 *
 	 * @see org.eclipse.emf.ecp.view.internal.editor.controls.ExpectedValueControlRenderer#onSelectButton()
 	 */
 	@Override
 	protected void onSelectButton(Label control) {
-		final Setting setting = getSetting(getVElement());
-		final LeafCondition condition = (LeafCondition) setting.getEObject();
+		LeafCondition condition;
+		try {
+			condition = (LeafCondition) getObservedEObject();
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+			return;
+		}
 
 		if (condition.getDomainModelReference() == null) {
 			MessageDialog.openError(control.getShell(), "No Feature Path Domain Model Reference found", //$NON-NLS-1$
 				"A Feature Path Domain Model Reference needs to be added to the condition first. " //$NON-NLS-1$
-				);
+			);
 			return;
 		}
 
@@ -70,7 +88,7 @@
 		if (structuralFeature == null) {
 			MessageDialog.openError(control.getShell(), "No value selected", //$NON-NLS-1$
 				"Please set a value to the Domain Model Reference first. " //$NON-NLS-1$
-				);
+			);
 			return;
 		}
 
@@ -82,7 +100,7 @@
 			final Setting valueDMRSeting = ((LeafConditionImpl) condition).eSetting(RulePackage.eINSTANCE
 				.getLeafCondition_ValueDomainModelReference());
 			final CreateDomainModelReferenceWizard dmrWizard = new CreateDomainModelReferenceWizard(valueDMRSeting,
-				getEditingDomain(valueDMRSeting), referenceType,
+				getEditingDomain(valueDMRSeting.getEObject()), referenceType,
 				"New Domain Model Reference", "New value reference", "New value reference", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 				"Select the attribute to be tested.", null); //$NON-NLS-1$
 			final SelectionComposite<TreeViewer> compositeProvider = CompositeFactory.getSelectModelClassComposite(
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/LeafConditionControlRendererTester.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/LeafConditionControlRendererTester.java
index d159312..8d671ef 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/LeafConditionControlRendererTester.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/LeafConditionControlRendererTester.java
@@ -11,16 +11,16 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.editor.controls;
 
-import java.util.Iterator;
-
+import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
 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.model.VControl;
 import org.eclipse.emf.ecp.view.spi.model.VElement;
 import org.eclipse.emf.ecp.view.spi.rule.model.RulePackage;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 
 /**
  * @author Alexandra Buzila
@@ -40,12 +40,15 @@
 			return NOT_APPLICABLE;
 		}
 		final VControl control = (VControl) vElement;
-		final Setting setting = getSetting(control);
-		if (setting == null) {
+		IValueProperty valueProperty;
+		try {
+			valueProperty = Activator.getDefault().getEMFFormsDatabinding()
+				.getValueProperty(control.getDomainModelReference(), viewModelContext.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
 			return NOT_APPLICABLE;
 		}
-
-		final EStructuralFeature feature = setting.getEStructuralFeature();
+		final EStructuralFeature feature = (EStructuralFeature) valueProperty.getValueType();
 		if (feature.isMany()) {
 			return NOT_APPLICABLE;
 		}
@@ -60,18 +63,4 @@
 
 		return NOT_APPLICABLE;
 	}
-
-	private Setting getSetting(VControl control) {
-		final Iterator<Setting> iterator = control.getDomainModelReference().getIterator();
-		int count = 0;
-		Setting setting = null;
-		while (iterator.hasNext()) {
-			count++;
-			setting = iterator.next();
-		}
-		if (count != 1) {
-			return null;
-		}
-		return setting;
-	}
 }
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/RootEClassControlECPTester.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/RootEClassControlECPTester.java
index 5a363b1..88fa3e0 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/RootEClassControlECPTester.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/RootEClassControlECPTester.java
@@ -11,8 +11,7 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.editor.controls;
 
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
-import org.eclipse.emf.ecp.view.spi.model.VView;
+import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
 
 /**
@@ -22,14 +21,8 @@
 public class RootEClassControlECPTester extends ControlRootEClassControl2SWTRendererTester {
 
 	@Override
-	protected int isApplicable(Setting setting) {
-		if (!VView.class.isInstance(setting.getEObject())) {
-			return NOT_APPLICABLE;
-		}
-		if (VViewPackage.eINSTANCE.getView_RootEClass() != setting.getEStructuralFeature()) {
-			return NOT_APPLICABLE;
-		}
-		if (setting.get(true) != null) {
+	protected int isApplicable(EStructuralFeature feature) {
+		if (VViewPackage.eINSTANCE.getView_RootEClass() != feature) {
 			return NOT_APPLICABLE;
 		}
 		return 3;
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/RootEClassControlIDETester.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/RootEClassControlIDETester.java
deleted file mode 100644
index 898d3fd..0000000
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/RootEClassControlIDETester.java
+++ /dev/null
@@ -1,83 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eugen - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.internal.editor.controls;
-
-import java.util.Iterator;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
-import org.eclipse.emf.ecp.edit.spi.util.ECPApplicableTester;
-import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
-import org.eclipse.emf.ecp.view.spi.model.VView;
-import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-
-/**
- * @author Eugen
- *
- */
-public class RootEClassControlIDETester implements ECPApplicableTester {
-
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.edit.spi.util.ECPApplicableTester#isApplicable(org.eclipse.emf.edit.provider.IItemPropertyDescriptor,
-	 *      org.eclipse.emf.ecore.EObject)
-	 * @deprecated
-	 */
-	@Override
-	@Deprecated
-	public int isApplicable(IItemPropertyDescriptor itemPropertyDescriptor, EObject eObject) {
-		return isApplicable(eObject, (EStructuralFeature) itemPropertyDescriptor.getFeature(eObject));
-	}
-
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.edit.spi.util.ECPApplicableTester#isApplicable(org.eclipse.emf.ecore.EObject,
-	 *      org.eclipse.emf.ecore.EStructuralFeature)
-	 */
-	@Override
-	public int isApplicable(EObject eObject, EStructuralFeature feature) {
-		if (!VView.class.isInstance(eObject)) {
-			return NOT_APPLICABLE;
-		}
-		if (VViewPackage.eINSTANCE.getView_RootEClass() != feature) {
-			return NOT_APPLICABLE;
-		}
-		if (eObject.eGet(feature) == null) {
-			return NOT_APPLICABLE;
-		}
-		return 10;
-	}
-
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.edit.spi.util.ECPApplicableTester#isApplicable(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference)
-	 */
-	@Override
-	public int isApplicable(VDomainModelReference domainModelReference) {
-		final Iterator<Setting> iterator = domainModelReference.getIterator();
-		int count = 0;
-		Setting setting = null;
-		while (iterator.hasNext()) {
-			count++;
-			setting = iterator.next();
-		}
-		if (count != 1) {
-			return NOT_APPLICABLE;
-		}
-		return isApplicable(setting.getEObject(), setting.getEStructuralFeature());
-	}
-}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/RuleFeaturePathTester.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/RuleFeaturePathTester.java
index c73105f..fd71843 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/RuleFeaturePathTester.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/RuleFeaturePathTester.java
@@ -11,11 +11,8 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.editor.controls;
 
-import java.util.Iterator;
-
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
 import org.eclipse.emf.ecp.edit.spi.util.ECPApplicableTester;
 import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
@@ -77,17 +74,7 @@
 	 */
 	@Override
 	public int isApplicable(VDomainModelReference domainModelReference) {
-		final Iterator<Setting> iterator = domainModelReference.getIterator();
-		int count = 0;
-		Setting setting = null;
-		while (iterator.hasNext()) {
-			count++;
-			setting = iterator.next();
-		}
-		if (count != 1) {
-			return NOT_APPLICABLE;
-		}
-		return isApplicable(setting.getEObject(), setting.getEStructuralFeature());
+		return NOT_APPLICABLE;
 	}
 
 }
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/StackItemControlRenderer.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/StackItemControlRenderer.java
index eaa34e0..23ad6b8 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/StackItemControlRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/StackItemControlRenderer.java
@@ -14,7 +14,8 @@
 import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+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.VFeaturePathDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.stack.model.VStackItem;
 import org.eclipse.emf.ecp.view.spi.stack.model.VStackLayout;
@@ -22,6 +23,9 @@
 import org.eclipse.emf.edit.command.SetCommand;
 import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
 import org.eclipse.emf.edit.domain.EditingDomain;
+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.DatabindingFailedReport;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.swt.widgets.Label;
 
@@ -32,15 +36,30 @@
 public class StackItemControlRenderer extends ExpectedValueControlRenderer {
 
 	/**
+	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 */
+	public StackItemControlRenderer(VControl vElement, ViewModelContext viewContext, ReportService reportService) {
+		super(vElement, viewContext, reportService);
+	}
+
+	/**
 	 * {@inheritDoc}
 	 *
 	 * @see org.eclipse.emf.ecp.view.internal.editor.controls.ExpectedValueControlRenderer#onSelectButton(org.eclipse.swt.widgets.Text)
 	 */
 	@Override
 	protected void onSelectButton(Label control) {
-		final Setting setting = getSetting(getVElement());
-
-		final VStackItem stackItem = (VStackItem) setting.getEObject();
+		VStackItem stackItem;
+		try {
+			stackItem = (VStackItem) getObservedEObject();
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+			return;
+		}
 		final VStackLayout eContainer = (VStackLayout) stackItem.eContainer();
 
 		if (eContainer.getDomainModelReference() == null) {
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/StackItemControlRendererTester.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/StackItemControlRendererTester.java
index 676f73e..e9a239f 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/StackItemControlRendererTester.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/StackItemControlRendererTester.java
@@ -11,16 +11,16 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.editor.controls;
 
-import java.util.Iterator;
-
+import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
 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.model.VControl;
 import org.eclipse.emf.ecp.view.spi.model.VElement;
 import org.eclipse.emf.ecp.view.spi.stack.model.VStackPackage;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 
 /**
  * @author Alexandra Buzila
@@ -39,12 +39,15 @@
 			return NOT_APPLICABLE;
 		}
 		final VControl control = (VControl) vElement;
-		final Setting setting = getSetting(control);
-		if (setting == null) {
+		IValueProperty valueProperty;
+		try {
+			valueProperty = Activator.getDefault().getEMFFormsDatabinding()
+				.getValueProperty(control.getDomainModelReference(), viewModelContext.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
 			return NOT_APPLICABLE;
 		}
-
-		final EStructuralFeature feature = setting.getEStructuralFeature();
+		final EStructuralFeature feature = (EStructuralFeature) valueProperty.getValueType();
 		if (feature.isMany()) {
 			return NOT_APPLICABLE;
 		}
@@ -59,18 +62,4 @@
 
 		return NOT_APPLICABLE;
 	}
-
-	private Setting getSetting(VControl control) {
-		final Iterator<Setting> iterator = control.getDomainModelReference().getIterator();
-		int count = 0;
-		Setting setting = null;
-		while (iterator.hasNext()) {
-			count++;
-			setting = iterator.next();
-		}
-		if (count != 1) {
-			return null;
-		}
-		return setting;
-	}
 }
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/TableColumnDomainModelReferenceControl.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/TableColumnDomainModelReferenceControl.java
index 5d11b28..0a22702 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/TableColumnDomainModelReferenceControl.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/TableColumnDomainModelReferenceControl.java
@@ -59,7 +59,7 @@
 		final Button[] buttons = new Button[2];
 		final Setting setting = getFirstSetting();
 		buttons[0] = createButtonForAction(new DeleteReferenceAction(getEditingDomain(setting), setting,
-			getItemPropertyDescriptor(setting), getService(ReferenceService.class)), composite);
+			getService(ReferenceService.class)), composite);
 		buttons[1] = createButtonForAction(new FilteredReferenceAction(
 			getEditingDomain(setting), setting,
 			getItemPropertyDescriptor(setting), composite.getShell()), composite);
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 d7dc58f..32bcb7a 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
@@ -18,40 +18,53 @@
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.List;
 
+import org.eclipse.core.databinding.observable.IObserving;
 import org.eclipse.core.databinding.observable.Observables;
 import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.databinding.edit.EMFEditObservables;
+import org.eclipse.emf.databinding.EMFDataBindingContext;
 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.Setting;
+import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecp.core.util.ECPUtil;
 import org.eclipse.emf.ecp.internal.ui.Messages;
 import org.eclipse.emf.ecp.spi.common.ui.CompositeFactory;
 import org.eclipse.emf.ecp.spi.common.ui.composites.SelectionComposite;
 import org.eclipse.emf.ecp.view.internal.editor.handler.CreateDomainModelReferenceWizard;
 import org.eclipse.emf.ecp.view.model.common.edit.provider.CustomReflectiveItemProviderAdapterFactory;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTRenderer;
+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.VViewPackage;
+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.model.VTablePackage;
+import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
 import org.eclipse.emf.edit.command.RemoveCommand;
 import org.eclipse.emf.edit.command.SetCommand;
 import org.eclipse.emf.edit.domain.EditingDomain;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
 import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;
 import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
 import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;
 import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+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.DatabindingFailedReport;
+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.jface.databinding.swt.SWTObservables;
 import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.layout.GridLayoutFactory;
@@ -72,6 +85,10 @@
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.TableColumn;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
 
 /**
  * @author Eugen
@@ -80,11 +97,45 @@
 @SuppressWarnings("restriction")
 public class TableColumnsDMRTableControl extends SimpleControlSWTRenderer {
 
+	private static final EMFFormsDatabinding emfFormsDatabinding;
+	private static final EMFFormsLabelProvider emfFormsLabelProvider;
+	private static final VTViewTemplateProvider vtViewTemplateProvider;
+
+	static {
+		final BundleContext bundleContext = FrameworkUtil.getBundle(TableColumnsDMRTableControl.class)
+			.getBundleContext();
+		final ServiceReference<EMFFormsDatabinding> emfFormsDatabindingServiceReference = bundleContext
+			.getServiceReference(EMFFormsDatabinding.class);
+		emfFormsDatabinding = bundleContext.getService(emfFormsDatabindingServiceReference);
+		final ServiceReference<EMFFormsLabelProvider> emfFormsLabelProviderServiceReference = bundleContext
+			.getServiceReference(EMFFormsLabelProvider.class);
+		emfFormsLabelProvider = bundleContext.getService(emfFormsLabelProviderServiceReference);
+		final ServiceReference<VTViewTemplateProvider> vtViewTemplateProviderServiceReference = bundleContext
+			.getServiceReference(VTViewTemplateProvider.class);
+		vtViewTemplateProvider = bundleContext.getService(vtViewTemplateProviderServiceReference);
+	}
+
+	private final EMFDataBindingContext viewModelDBC;
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService The {@link ReportService}
+	 */
+	public TableColumnsDMRTableControl(VControl vElement, ViewModelContext viewContext,
+		ReportService reportService) {
+		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider);
+		viewModelDBC = new EMFDataBindingContext();
+	}
+
 	private ComposedAdapterFactory composedAdapterFactory;
 	private AdapterFactoryLabelProvider labelProvider;
 	private AdapterImpl adapter;
 	private VTableControl tableControl;
-	private Setting setting;
+	private EStructuralFeature structuralFeature;
+	private EObject eObject;
 
 	/**
 	 * {@inheritDoc}
@@ -92,8 +143,13 @@
 	 * @see org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTRenderer#createControl(org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
-	protected Control createControl(final Composite parent) {
-		setting = getVElement().getDomainModelReference().getIterator().next();
+	protected Control createControl(final Composite parent) throws DatabindingFailedException {
+		final IObservableValue observableValue = Activator.getDefault().getEMFFormsDatabinding()
+			.getObservableValue(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
+		structuralFeature = (EStructuralFeature) observableValue.getValueType();
+		eObject = (EObject) ((IObserving) observableValue).getObserved();
+		observableValue.dispose();
+
 		final Composite composite = new Composite(parent, SWT.NONE);
 		composite.setBackgroundMode(SWT.INHERIT_FORCE);
 		GridLayoutFactory.fillDefaults().numColumns(1).applyTo(composite);
@@ -135,17 +191,30 @@
 		viewer.getTable().setHeaderVisible(true);
 		viewer.getTable().setLinesVisible(true);
 		final TableViewerColumn column = new TableViewerColumn(viewer, SWT.NONE);
-		final IItemPropertyDescriptor propertyDescriptor = getItemPropertyDescriptor(setting);
-		column.getColumn().setText(propertyDescriptor.getDisplayName(null));
-		column.getColumn().setToolTipText(propertyDescriptor.getDescription(null));
+		final TableColumn tableColumn = column.getColumn();
+		final EMFFormsLabelProvider emfFormsLabelProvider = Activator.getDefault().getEMFFormsLabelProvider();// TODO
+		try {
+			final IObservableValue labelText = emfFormsLabelProvider.getDisplayName(
+				getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
+			final IObservableValue tooltip = emfFormsLabelProvider.getDescription(
+				getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
+			viewModelDBC.bindValue(SWTObservables.observeText(tableColumn), labelText);
+			viewModelDBC.bindValue(SWTObservables.observeTooltipText(tableColumn), tooltip);
+		} catch (final NoLabelFoundException e) {
+			// FIXME Expectations?
+			getReportService().getReports().add(new RenderingFailedReport(e));
+			tableColumn.setText(e.getMessage());
+			tableColumn.setToolTipText(e.toString());
+		}
+
 		layout.setColumnData(column.getColumn(), new ColumnWeightData(1, true));
 
 		viewer.setLabelProvider(labelProvider);
 		viewer.setContentProvider(new ObservableListContentProvider());
-		addDragAndDropSupport(viewer, getEditingDomain(setting));
+		addDragAndDropSupport(viewer, getEditingDomain(eObject));
 
-		final IObservableList list = EMFEditObservables.observeList(getEditingDomain(setting),
-			setting.getEObject(), setting.getEStructuralFeature());
+		final IObservableList list = Activator.getDefault().getEMFFormsDatabinding()
+			.getObservableList(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
 		viewer.setInput(list);
 
 		tableControl = (VTableControl) getViewModelContext().getDomainModel();
@@ -198,6 +267,7 @@
 		labelProvider.dispose();
 		composedAdapterFactory.dispose();
 		tableControl.eAdapters().remove(adapter);
+		viewModelDBC.dispose();
 		super.dispose();
 	}
 
@@ -242,7 +312,7 @@
 				parent.layout();
 			}
 			if (VTableDomainModelReference.class.isInstance(notification.getNotifier())) {
-				updateSetting();
+				updateEObjectAndStructuralFeature();
 				viewer.refresh();
 				parent.layout();
 			}
@@ -250,24 +320,31 @@
 			if (VTableControl.class.isInstance(notification.getNotifier())
 				&& (VTableDomainModelReference.class.isInstance(notification.getNewValue()) || VTableDomainModelReference.class
 					.isInstance(notification.getOldValue()))) {
-				updateSetting();
+				updateEObjectAndStructuralFeature();
 				viewer.refresh();
 				parent.layout();
 			}
 		}
 
-		private void updateSetting() {
-			final Iterator<Setting> iterator = getVElement().getDomainModelReference().getIterator();
-			if (iterator.hasNext()) {
-				setting = iterator.next();
-				final IObservableList list = EMFEditObservables.observeList(getEditingDomain(setting),
-					setting.getEObject(), setting.getEStructuralFeature());
-				viewer.setInput(list);
-			}
-			else {
+		private void updateEObjectAndStructuralFeature() {
+			IObservableValue observableValue;
+			IObservableList list;
+			try {
+				observableValue = Activator
+					.getDefault()
+					.getEMFFormsDatabinding()
+					.getObservableValue(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
+				list = Activator.getDefault().getEMFFormsDatabinding()
+					.getObservableList(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
+			} catch (final DatabindingFailedException ex) {
+				Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
 				viewer.setInput(Observables.emptyObservableList());
+				return;
 			}
-
+			structuralFeature = (EStructuralFeature) observableValue.getValueType();
+			eObject = (EObject) ((IObserving) observableValue).getObserved();
+			observableValue.dispose();
+			viewer.setInput(list);
 		}
 	}
 
@@ -295,9 +372,9 @@
 			super.widgetSelected(e);
 			final IStructuredSelection selection = IStructuredSelection.class.cast(viewer.getSelection());
 
-			final EditingDomain editingDomain = getEditingDomain(setting);
-			editingDomain.getCommandStack().execute(RemoveCommand.create(editingDomain, setting.getEObject(),
-				setting.getEStructuralFeature(), selection.toList()));
+			final EditingDomain editingDomain = getEditingDomain(eObject);
+			editingDomain.getCommandStack().execute(
+				RemoveCommand.create(editingDomain, eObject, structuralFeature, selection.toList()));
 		}
 	}
 
@@ -327,16 +404,28 @@
 		public void widgetSelected(SelectionEvent e) {
 			super.widgetSelected(e);
 			final VTableDomainModelReference tableDomainModelReference = VTableDomainModelReference.class
-				.cast(setting.getEObject());
+				.cast(eObject);
 
-			final EClass eclass = EReference.class.cast(
-				tableDomainModelReference.getEStructuralFeatureIterator().next()).getEReferenceType();
+			IValueProperty valueProperty;
+			try {
+				valueProperty = Activator
+					.getDefault()
+					.getEMFFormsDatabinding()
+					.getValueProperty(
+						tableDomainModelReference.getDomainModelReference() == null ? tableDomainModelReference
+							: tableDomainModelReference.getDomainModelReference(),
+						getViewModelContext().getDomainModel());
+			} catch (final DatabindingFailedException ex) {
+				Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+				return;
+			}
+			final EClass eclass = EReference.class.cast(valueProperty.getValueType()).getEReferenceType();
 
 			final Collection<EClass> classes = ECPUtil.getSubClasses(VViewPackage.eINSTANCE
 				.getDomainModelReference());
 
 			final CreateDomainModelReferenceWizard wizard = new CreateDomainModelReferenceWizard(
-				setting, getEditingDomain(setting), eclass, "New Reference Element", //$NON-NLS-1$
+				eObject, structuralFeature, getEditingDomain(eObject), eclass, "New Reference Element", //$NON-NLS-1$
 				Messages.NewModelElementWizard_WizardTitle_AddModelElement,
 				Messages.NewModelElementWizard_PageTitle_AddModelElement,
 				Messages.NewModelElementWizard_PageDescription_AddModelElement,
@@ -374,7 +463,7 @@
 			// EMF API
 			@SuppressWarnings("unchecked")
 			final List<VDomainModelReference> list = new ArrayList<VDomainModelReference>(
-				(List<VDomainModelReference>) setting.get(true));
+				(List<VDomainModelReference>) eObject.eGet(structuralFeature, true));
 			Collections.sort(list, new Comparator<VDomainModelReference>() {
 				@Override
 				public int compare(VDomainModelReference o1, VDomainModelReference o2) {
@@ -387,9 +476,9 @@
 					return result;
 				}
 			});
-			final EditingDomain editingDomain = getEditingDomain(setting);
+			final EditingDomain editingDomain = getEditingDomain(eObject);
 			editingDomain.getCommandStack().execute(
-				SetCommand.create(editingDomain, setting.getEObject(), setting.getEStructuralFeature(), list));
+				SetCommand.create(editingDomain, eObject, structuralFeature, list));
 		}
 	}
 
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/TableColumnsDMRTableControlTester.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/TableColumnsDMRTableControlTester.java
index 9cccc2f..0694d32 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/TableColumnsDMRTableControlTester.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/TableColumnsDMRTableControlTester.java
@@ -11,12 +11,15 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.editor.controls;
 
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+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.model.VControl;
 import org.eclipse.emf.ecp.view.spi.model.VElement;
 import org.eclipse.emf.ecp.view.spi.table.model.VTablePackage;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 
 /**
  * @author Alexandra Buzila
@@ -36,22 +39,26 @@
 		if (!VControl.class.isInstance(vElement)) {
 			return NOT_APPLICABLE;
 		}
-		final Setting setting = VControl.class.cast(vElement).getDomainModelReference().getIterator().next();
-		return isApplicable(setting);
+		final VControl control = (VControl) vElement;
+		IValueProperty valueProperty;
+		try {
+			valueProperty = Activator.getDefault().getEMFFormsDatabinding()
+				.getValueProperty(control.getDomainModelReference(), viewModelContext.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+			return NOT_APPLICABLE;
+		}
+		return isApplicable((EStructuralFeature) valueProperty.getValueType());
 	}
 
 	/**
-	 * Test if setting contains the correct data.
+	 * Test if the feature contains the correct data.
 	 *
-	 * @param setting the {@link Setting} to check
+	 * @param feature the {@link EStructuralFeature} to check
 	 * @return the priority of the control
 	 */
-	protected int isApplicable(Setting setting) {
-		if (setting == null) {
-			return NOT_APPLICABLE;
-		}
-		if (VTablePackage.eINSTANCE.getTableDomainModelReference_ColumnDomainModelReferences() != setting
-			.getEStructuralFeature()) {
+	protected int isApplicable(EStructuralFeature feature) {
+		if (VTablePackage.eINSTANCE.getTableDomainModelReference_ColumnDomainModelReferences() != feature) {
 			return NOT_APPLICABLE;
 		}
 		return 10;
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/TableDetailViewControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/TableDetailViewControlSWTRenderer.java
index d497d27..8ba9d8f 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/TableDetailViewControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/TableDetailViewControlSWTRenderer.java
@@ -12,29 +12,38 @@
 package org.eclipse.emf.ecp.view.internal.editor.controls;
 
 import java.net.URL;
-import java.util.Iterator;
 
 import org.eclipse.core.databinding.Binding;
 import org.eclipse.core.databinding.UpdateValueStrategy;
+import org.eclipse.core.databinding.observable.IObserving;
 import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.emf.common.command.Command;
 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.ecore.EStructuralFeature.Setting;
-import org.eclipse.emf.ecp.edit.internal.swt.Activator;
 import org.eclipse.emf.ecp.edit.spi.swt.reference.DeleteReferenceAction;
 import org.eclipse.emf.ecp.edit.spi.swt.reference.NewReferenceAction;
 import org.eclipse.emf.ecp.edit.spi.util.ECPModelElementChangeListener;
+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.model.VControl;
 import org.eclipse.emf.ecp.view.spi.model.VView;
 import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
 import org.eclipse.emf.ecp.view.spi.table.model.VTableControl;
 import org.eclipse.emf.ecp.view.spi.table.model.VTableDomainModelReference;
+import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
 import org.eclipse.emf.edit.command.SetCommand;
 import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
 import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+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.DatabindingFailedReport;
+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.jface.action.Action;
 import org.eclipse.jface.databinding.swt.SWTObservables;
 import org.eclipse.jface.dialogs.MessageDialog;
@@ -48,6 +57,9 @@
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Label;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
 
 /**
  * @author jfaltermeier
@@ -55,6 +67,40 @@
  */
 public class TableDetailViewControlSWTRenderer extends SimpleControlSWTControlSWTRenderer {
 
+	private static final EMFFormsDatabinding emfFormsDatabinding;
+	private static final EMFFormsEditSupport emfFormsEditSupport;
+	private static final EMFFormsLabelProvider emfFormsLabelProvider;
+	private static final VTViewTemplateProvider vtViewTemplateProvider;
+
+	static {
+		final BundleContext bundleContext = FrameworkUtil.getBundle(TableDetailViewControlSWTRenderer.class)
+			.getBundleContext();
+		final ServiceReference<EMFFormsDatabinding> emfFormsDatabindingServiceReference = bundleContext
+			.getServiceReference(EMFFormsDatabinding.class);
+		emfFormsDatabinding = bundleContext.getService(emfFormsDatabindingServiceReference);
+		final ServiceReference<EMFFormsEditSupport> emfFormsEditSupportServiceReference = bundleContext
+			.getServiceReference(EMFFormsEditSupport.class);
+		emfFormsEditSupport = bundleContext.getService(emfFormsEditSupportServiceReference);
+		final ServiceReference<EMFFormsLabelProvider> emfFormsLabelProviderServiceReference = bundleContext
+			.getServiceReference(EMFFormsLabelProvider.class);
+		emfFormsLabelProvider = bundleContext.getService(emfFormsLabelProviderServiceReference);
+		final ServiceReference<VTViewTemplateProvider> vtViewTemplateProviderServiceReference = bundleContext
+			.getServiceReference(VTViewTemplateProvider.class);
+		vtViewTemplateProvider = bundleContext.getService(vtViewTemplateProviderServiceReference);
+	}
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService The {@link ReportService}
+	 */
+	public TableDetailViewControlSWTRenderer(VControl vElement, ViewModelContext viewContext,
+		ReportService reportService) {
+		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider);
+	}
+
 	private ComposedAdapterFactory composedAdapterFactory;
 	private AdapterFactoryItemDelegator adapterFactoryItemDelegator;
 	private Label label;
@@ -69,15 +115,20 @@
 	 *      org.eclipse.emf.ecore.EStructuralFeature.Setting)
 	 */
 	@Override
-	protected Binding[] createBindings(Control control, final Setting setting) {
+	protected Binding[] createBindings(Control control) throws DatabindingFailedException {
 		final Binding[] bindings = new Binding[3];
 		final IObservableValue value = SWTObservables.observeText(label);
 
-		bindings[0] = getDataBindingContext().bindValue(value, getModelValue(setting), new UpdateValueStrategy() {
+		bindings[0] = getDataBindingContext().bindValue(value, getModelValue(), new UpdateValueStrategy() {
 
 			@Override
 			public Object convert(Object value) {
-				return getModelValue(setting).getValue();
+				try {
+					return getModelValue().getValue();
+				} catch (final DatabindingFailedException ex) {
+					Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+					return null;
+				}
 			}
 		}, new UpdateValueStrategy() {
 			@Override
@@ -87,12 +138,17 @@
 		});
 
 		final IObservableValue tooltipValue = SWTObservables.observeTooltipText(label);
-		bindings[1] = getDataBindingContext().bindValue(tooltipValue, getModelValue(setting),
+		bindings[1] = getDataBindingContext().bindValue(tooltipValue, getModelValue(),
 			new UpdateValueStrategy() {
 
 				@Override
 				public Object convert(Object value) {
-					return getModelValue(setting).getValue();
+					try {
+						return getModelValue().getValue();
+					} catch (final DatabindingFailedException ex) {
+						Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+						return null;
+					}
 				}
 			}, new UpdateValueStrategy() {
 				@Override
@@ -102,11 +158,16 @@
 			});
 
 		final IObservableValue imageValue = SWTObservables.observeImage(imageLabel);
-		bindings[2] = getDataBindingContext().bindValue(imageValue, getModelValue(setting), new UpdateValueStrategy() {
+		bindings[2] = getDataBindingContext().bindValue(imageValue, getModelValue(), new UpdateValueStrategy() {
 
 			@Override
 			public Object convert(Object value) {
-				return getModelValue(setting).getValue();
+				try {
+					return getModelValue().getValue();
+				} catch (final DatabindingFailedException ex) {
+					Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+					return null;
+				}
 			}
 		}, new UpdateValueStrategy() {
 			@Override
@@ -133,11 +194,16 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer#createSWTControl(org.eclipse.swt.widgets.Composite,
-	 *      org.eclipse.emf.ecore.EStructuralFeature.Setting)
+	 * @see org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer#createSWTControl(org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
-	protected Control createSWTControl(Composite parent, final Setting setting) {
+	protected Control createSWTControl(Composite parent) throws DatabindingFailedException {
+		final IObservableValue observableValue = Activator.getDefault().getEMFFormsDatabinding()
+			.getObservableValue(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
+		final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+		final EObject eObject = (EObject) ((IObserving) observableValue).getObserved();
+		observableValue.dispose();
+
 		/* parent composite */
 		final Composite composite = new Composite(parent, SWT.NONE);
 		composite.setBackground(parent.getBackground());
@@ -166,14 +232,14 @@
 		GridLayoutFactory.fillDefaults().numColumns(2).equalWidth(false).spacing(2, 0).applyTo(buttonComposite);
 
 		/* delete button */
-		final Button deleteButton = createButtonForAction(new DeleteReferenceAction(getEditingDomain(setting), setting,
-			getItemPropertyDescriptor(setting), null), buttonComposite);
+		final Button deleteButton = createButtonForAction(new DeleteReferenceAction(getEditingDomain(eObject), eObject,
+			structuralFeature, null), buttonComposite);
 		deleteButton.addSelectionListener(new SelectionListener() {
 			@Override
 			public void widgetSelected(SelectionEvent e) {
-				final Command setCommand = SetCommand.create(getEditingDomain(setting), setting.getEObject(),
-					setting.getEStructuralFeature(), null);
-				getEditingDomain(setting).getCommandStack().execute(setCommand);
+				final Command setCommand = SetCommand.create(getEditingDomain(eObject), eObject, structuralFeature,
+					null);
+				getEditingDomain(eObject).getCommandStack().execute(setCommand);
 			}
 
 			@Override
@@ -182,14 +248,15 @@
 		});
 
 		/* create button */
-		final Button createButton = createButtonForAction(new NewReferenceAction(getEditingDomain(setting), setting,
-			getItemPropertyDescriptor(setting), null), buttonComposite);
+		final Button createButton = createButtonForAction(new NewReferenceAction(getEditingDomain(eObject), eObject,
+			structuralFeature, emfFormsEditSupport, emfFormsLabelProvider, null, getReportService(), getVElement()
+				.getDomainModelReference(), getViewModelContext().getDomainModel()), buttonComposite);
 		createButton.addSelectionListener(new SelectionListener() {
 
 			@Override
 			public void widgetSelected(SelectionEvent e) {
 				final VView detailView = VViewFactory.eINSTANCE.createView();
-				final VTableControl tableControl = (VTableControl) setting.getEObject();
+				final VTableControl tableControl = (VTableControl) eObject;
 				if (tableControl.getDomainModelReference() == null) {
 					MessageDialog.openInformation(Display.getDefault().getActiveShell(),
 						"Set Domain Model Reference", "Please set a Domain Model Reference first."); //$NON-NLS-1$ //$NON-NLS-2$
@@ -201,13 +268,18 @@
 				if (domainModelReference.getDomainModelReference() == null) {
 					ref = (EReference) domainModelReference.getDomainModelEFeature();
 				} else {
-					final Iterator<EStructuralFeature> iterator = domainModelReference.getDomainModelReference()
-						.getEStructuralFeatureIterator();
-					if (iterator.hasNext()) {
-						final EStructuralFeature feature = iterator.next();
-						if (EReference.class.isInstance(feature)) {
-							ref = EReference.class.cast(feature);
-						}
+					IValueProperty valueProperty;
+					try {
+						valueProperty = org.eclipse.emf.ecp.view.internal.editor.controls.Activator
+							.getDefault().getEMFFormsDatabinding()
+							.getValueProperty(domainModelReference, getViewModelContext().getDomainModel());
+					} catch (final DatabindingFailedException ex) {
+						Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+						return;
+					}
+					final EStructuralFeature feature = (EStructuralFeature) valueProperty.getValueType();
+					if (EReference.class.isInstance(feature)) {
+						ref = EReference.class.cast(feature);
 					}
 				}
 
@@ -217,9 +289,9 @@
 					return;
 				}
 				detailView.setRootEClass(ref.getEReferenceType());
-				final Command setCommand = SetCommand.create(getEditingDomain(setting), setting.getEObject(),
-					setting.getEStructuralFeature(), detailView);
-				getEditingDomain(setting).getCommandStack().execute(setCommand);
+				final Command setCommand = SetCommand.create(getEditingDomain(eObject), eObject,
+					structuralFeature, detailView);
+				getEditingDomain(eObject).getCommandStack().execute(setCommand);
 			}
 
 			@Override
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/TableDetailViewControlSWTRendererTester.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/TableDetailViewControlSWTRendererTester.java
index f6ea395..33f81c5 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/TableDetailViewControlSWTRendererTester.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/TableDetailViewControlSWTRendererTester.java
@@ -11,12 +11,15 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.editor.controls;
 
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+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.model.VControl;
 import org.eclipse.emf.ecp.view.spi.model.VElement;
 import org.eclipse.emf.ecp.view.spi.table.model.VTablePackage;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 
 /**
  * @author jfaltermeier
@@ -29,11 +32,17 @@
 		if (!VControl.class.isInstance(vElement)) {
 			return NOT_APPLICABLE;
 		}
-		final Setting setting = VControl.class.cast(vElement).getDomainModelReference().getIterator().next();
-		if (setting == null) {
+		final VControl control = (VControl) vElement;
+		IValueProperty valueProperty;
+		try {
+			valueProperty = Activator.getDefault().getEMFFormsDatabinding()
+				.getValueProperty(control.getDomainModelReference(), viewModelContext.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
 			return NOT_APPLICABLE;
 		}
-		if (VTablePackage.eINSTANCE.getTableControl_DetailView() == setting.getEStructuralFeature()) {
+		final EStructuralFeature feature = (EStructuralFeature) valueProperty.getValueType();
+		if (VTablePackage.eINSTANCE.getTableControl_DetailView() == feature) {
 			return 10;
 		}
 		return NOT_APPLICABLE;
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/TableDomainModelReferenceTester.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/TableDomainModelReferenceTester.java
index b64a847..a7eeee7 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/TableDomainModelReferenceTester.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/TableDomainModelReferenceTester.java
@@ -11,11 +11,8 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.editor.controls;
 
-import java.util.Iterator;
-
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
 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.VTableDomainModelReference;
@@ -45,18 +42,7 @@
 	 */
 	@Override
 	public int isApplicable(VDomainModelReference domainModelReference) {
-		final Iterator<Setting> iterator = domainModelReference.getIterator();
-		int count = 0;
-		Setting setting = null;
-		while (iterator.hasNext()) {
-			count++;
-			setting = iterator.next();
-		}
-		if (count != 1) {
-			return NOT_APPLICABLE;
-		}
-		// setting cannot be null as count would be 0, otherwise the iterator is broken
-		return isApplicable(setting.getEObject(), setting.getEStructuralFeature());
+		return NOT_APPLICABLE;
 	}
 
 	/**
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/CreateDomainModelReferenceWizard.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/CreateDomainModelReferenceWizard.java
index 4d7d46b..6e213fd 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/CreateDomainModelReferenceWizard.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/CreateDomainModelReferenceWizard.java
@@ -18,6 +18,8 @@
 import org.eclipse.emf.common.notify.impl.AdapterImpl;
 import org.eclipse.emf.common.util.URI;
 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.resource.Resource;
 import org.eclipse.emf.ecore.resource.ResourceSet;
@@ -27,6 +29,7 @@
 import org.eclipse.emf.ecp.ui.view.ECPRendererException;
 import org.eclipse.emf.ecp.ui.view.swt.DefaultReferenceService;
 import org.eclipse.emf.ecp.ui.view.swt.ECPSWTViewRenderer;
+import org.eclipse.emf.ecp.view.internal.editor.controls.Activator;
 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.custom.model.VCustomDomainModelReference;
@@ -35,11 +38,14 @@
 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.provider.ViewProviderHelper;
+import org.eclipse.emf.ecp.view.spi.table.model.VTableDomainModelReference;
 import org.eclipse.emf.edit.command.AddCommand;
 import org.eclipse.emf.edit.command.SetCommand;
 import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
 import org.eclipse.emf.edit.domain.EditingDomain;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.layout.GridLayoutFactory;
 import org.eclipse.jface.wizard.IWizardPage;
@@ -58,7 +64,8 @@
 	private WizardPageExtension firstPage;
 	private final EClass eclass;
 	private final EditingDomain editingDomain;
-	private final Setting setting;
+	private final EObject eObject;
+	private final EStructuralFeature structuralFeature;
 	private final VDomainModelReference domainModelReference;
 
 	/**
@@ -76,8 +83,29 @@
 	public CreateDomainModelReferenceWizard(final Setting setting, final EditingDomain editingDomain,
 		final EClass eclass, final String windowTitle,
 		final String pageName, String pageTitle, String description, VDomainModelReference domainModelReference) {
+		this(setting.getEObject(), setting.getEStructuralFeature(), editingDomain, eclass, windowTitle, pageName,
+			pageTitle, description, domainModelReference);
+	}
+
+	/**
+	 * A wizard used for creating a new DomainModelReference.
+	 *
+	 * @param eObject The {@link EObject} to use
+	 * @param structuralFeature The corresponding {@link EStructuralFeature}
+	 * @param editingDomain - the setting's editing domain
+	 * @param eclass - the root EClass of the VView the setting belongs to
+	 * @param windowTitle - title for the wizard window
+	 * @param pageName - the name of the page
+	 * @param pageTitle - the title of the page
+	 * @param description - the description
+	 * @param domainModelReference - the domain model reference
+	 */
+	public CreateDomainModelReferenceWizard(final EObject eObject, final EStructuralFeature structuralFeature,
+		final EditingDomain editingDomain, final EClass eclass, final String windowTitle, final String pageName,
+		String pageTitle, String description, VDomainModelReference domainModelReference) {
 		super(windowTitle, pageName, pageTitle, description);
-		this.setting = setting;
+		this.eObject = eObject;
+		this.structuralFeature = structuralFeature;
 		this.editingDomain = editingDomain;
 		this.eclass = eclass;
 		this.domainModelReference = domainModelReference;
@@ -166,13 +194,13 @@
 			return false;
 		}
 		Command command = null;
-		if (setting.getEStructuralFeature().isMany()) {
-			command = AddCommand.create(editingDomain, setting.getEObject(),
-				setting.getEStructuralFeature(), customizeDMRPage.getvControl().getDomainModelReference());
+		if (structuralFeature.isMany()) {
+			command = AddCommand.create(editingDomain, eObject,
+				structuralFeature, customizeDMRPage.getvControl().getDomainModelReference());
 		}
 		else {
-			command = SetCommand.create(editingDomain, setting.getEObject(),
-				setting.getEStructuralFeature(), customizeDMRPage.getvControl().getDomainModelReference());
+			command = SetCommand.create(editingDomain, eObject,
+				structuralFeature, customizeDMRPage.getvControl().getDomainModelReference());
 		}
 		editingDomain.getCommandStack().execute(command);
 		return super.performFinish();
@@ -203,13 +231,22 @@
 			}
 			return false;
 		}
+		VDomainModelReference dmrToCheck = customizeDMRPage.getvControl().getDomainModelReference();
+		if (VTableDomainModelReference.class.isInstance(dmrToCheck)) {
+			final VTableDomainModelReference tableDomainModelReference = VTableDomainModelReference.class
+				.cast(dmrToCheck);
+			if (tableDomainModelReference.getDomainModelReference() != null) {
+				dmrToCheck = tableDomainModelReference.getDomainModelReference();
+			}
+		}
+		try {
+			Activator.getDefault().getEMFFormsDatabinding()
+				.getValueProperty(dmrToCheck, null);
+		} catch (final DatabindingFailedException ex) {
+			// Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+			return false;
+		}
 
-		if (customizeDMRPage.getvControl().getDomainModelReference().getEStructuralFeatureIterator() == null) {
-			return false;
-		}
-		if (!customizeDMRPage.getvControl().getDomainModelReference().getEStructuralFeatureIterator().hasNext()) {
-			return false;
-		}
 		return super.canFinish();
 	}
 
@@ -329,10 +366,23 @@
 			if (getvControl().getDomainModelReference() == null) {
 				return false;
 			}
-			if (getvControl().getDomainModelReference().getEStructuralFeatureIterator() == null) {
+			VDomainModelReference dmrToCheck = getvControl().getDomainModelReference();
+			if (VTableDomainModelReference.class.isInstance(dmrToCheck)) {
+				final VTableDomainModelReference tableDomainModelReference = VTableDomainModelReference.class
+					.cast(dmrToCheck);
+				if (tableDomainModelReference.getDomainModelReference() != null) {
+					dmrToCheck = tableDomainModelReference.getDomainModelReference();
+				}
+			}
+			try {
+				Activator.getDefault().getEMFFormsDatabinding()
+					.getValueProperty(dmrToCheck, null);
+			} catch (final DatabindingFailedException ex) {
+				Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
 				return false;
 			}
-			return getvControl().getDomainModelReference().getEStructuralFeatureIterator().hasNext();
+
+			return true;
 		}
 
 	}
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 d0fa2ff..c8e3064 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
@@ -12,12 +12,12 @@
 package org.eclipse.emf.ecp.view.internal.editor.handler;
 
 import java.util.Collection;
-import java.util.Iterator;
 import java.util.LinkedHashSet;
 import java.util.Set;
 
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.emf.common.command.Command;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.ecore.EAttribute;
@@ -26,6 +26,7 @@
 import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecp.common.spi.EMFUtils;
+import org.eclipse.emf.ecp.view.internal.editor.controls.Activator;
 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;
@@ -39,6 +40,8 @@
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
 import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
 import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.window.Window;
 import org.eclipse.swt.widgets.Display;
@@ -50,7 +53,6 @@
  * @author jfaltermeier
  *
  */
-@SuppressWarnings("restriction")
 public class GenerateTableColumnsForSubclassesHandler extends MasterDetailAction {
 
 	/**
@@ -95,11 +97,14 @@
 		}
 
 		final VTableDomainModelReference tableDMR = (VTableDomainModelReference) domainModelReference;
-		final Iterator<EStructuralFeature> structuralFeatureIterator = tableDMR.getEStructuralFeatureIterator();
-		if (structuralFeatureIterator == null || !structuralFeatureIterator.hasNext()) {
+		IValueProperty valueProperty;
+		try {
+			valueProperty = Activator.getDefault().getEMFFormsDatabinding().getValueProperty(tableDMR, null);
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
 			return;
 		}
-		final EStructuralFeature eStructuralFeature = structuralFeatureIterator.next();
+		final Object eStructuralFeature = valueProperty.getValueType();
 		if (!EReference.class.isInstance(eStructuralFeature)) {
 			return;
 		}
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 8e076f7..f6a08ba 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
@@ -11,17 +11,18 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.editor.handler;
 
-import java.util.Iterator;
 import java.util.LinkedHashSet;
 import java.util.Set;
 
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.emf.common.command.Command;
 import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.view.internal.editor.controls.Activator;
 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;
@@ -32,6 +33,8 @@
 import org.eclipse.emf.edit.command.AddCommand;
 import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
 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.jface.viewers.IStructuredSelection;
 import org.eclipse.ui.handlers.HandlerUtil;
 
@@ -82,11 +85,19 @@
 		}
 
 		final VTableDomainModelReference tableDMR = (VTableDomainModelReference) domainModelReference;
-		final Iterator<EStructuralFeature> structuralFeatureIterator = tableDMR.getEStructuralFeatureIterator();
-		if (structuralFeatureIterator == null || !structuralFeatureIterator.hasNext()) {
+		IValueProperty valueProperty;
+		try {
+			if (tableDMR.getDomainModelReference() != null) {
+				valueProperty = Activator.getDefault().getEMFFormsDatabinding()
+					.getValueProperty(tableDMR.getDomainModelReference(), null);
+			} else {
+				valueProperty = Activator.getDefault().getEMFFormsDatabinding().getValueProperty(tableDMR, null);
+			}
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
 			return;
 		}
-		final EStructuralFeature eStructuralFeature = structuralFeatureIterator.next();
+		final Object eStructuralFeature = valueProperty.getValueType();
 		if (!EReference.class.isInstance(eStructuralFeature)) {
 			return;
 		}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/MigrateHandler.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/MigrateHandler.java
index be4206c..d6ee65e 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/MigrateHandler.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/MigrateHandler.java
@@ -18,11 +18,13 @@
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.emf.common.util.TreeIterator;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+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.model.VControl;
 import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
@@ -31,6 +33,8 @@
 import org.eclipse.emf.edit.command.AddCommand;
 import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
 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.jface.viewers.IStructuredSelection;
 import org.eclipse.ui.handlers.HandlerUtil;
 
@@ -67,10 +71,17 @@
 				continue;
 			}
 			final VControl control = (VControl) eObject;
-			final Setting setting = control.getDomainModelReference().getIterator().next();
-			final List<EReference> bottomUpPath = Helper.getReferencePath(rootClass, setting.getEStructuralFeature()
-				.getEContainingClass(),
-				childParentReferenceMap);
+			IValueProperty valueProperty;
+			try {
+				valueProperty = Activator.getDefault().getEMFFormsDatabinding()
+					.getValueProperty(control.getDomainModelReference(), null);
+			} catch (final DatabindingFailedException ex) {
+				Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+				continue;
+			}
+			final EStructuralFeature structuralFeature = (EStructuralFeature) valueProperty.getValueType();
+			final List<EReference> bottomUpPath = Helper.getReferencePath(rootClass,
+				structuralFeature.getEContainingClass(), childParentReferenceMap);
 			// control.getPathToFeature().addAll(bottomUpPath);
 			((VFeaturePathDomainModelReference) control.getDomainModelReference()).getDomainModelEReferencePath()
 				.clear();
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/SelectAttributesWizardPage.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/SelectAttributesWizardPage.java
index cc3d3fc..b11a4e2 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/SelectAttributesWizardPage.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/SelectAttributesWizardPage.java
@@ -12,21 +12,24 @@
 package org.eclipse.emf.ecp.view.internal.editor.handler;
 
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Set;
 
+import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.util.TreeIterator;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.view.internal.editor.controls.Activator;
 import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.model.VView;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
 import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
 import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.layout.GridLayoutFactory;
 import org.eclipse.jface.viewers.ArrayContentProvider;
@@ -374,14 +377,19 @@
 				if (domainModelReference == null) {
 					continue;
 				}
-				final Iterator<EStructuralFeature> structuralFeatureIterator = domainModelReference
-					.getEStructuralFeatureIterator();
-				while (structuralFeatureIterator.hasNext()) {
-					final EStructuralFeature feature = structuralFeatureIterator.next();
-					if (feature != null && feature.getEContainingClass() != null
-						&& feature.getEContainingClass().equals(eClass)) {
-						result.add(feature);
-					}
+
+				IValueProperty valueProperty;
+				try {
+					valueProperty = Activator.getDefault().getEMFFormsDatabinding()
+						.getValueProperty(domainModelReference, null);
+				} catch (final DatabindingFailedException ex) {
+					Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+					continue;
+				}
+				final EStructuralFeature feature = (EStructuralFeature) valueProperty.getValueType();
+				if (feature != null && feature.getEContainingClass() != null
+					&& feature.getEContainingClass().equals(eClass)) {
+					result.add(feature);
 				}
 			}
 
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt.di/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.ui.view.swt.di/.settings/.api_filters
index b036e6b..82b84ef 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt.di/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt.di/.settings/.api_filters
@@ -22,70 +22,70 @@
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/emf/ecp/view/spi/swt/AbstractSWTRenderer.java" type="org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer">
+    <resource path="src/org/eclipse/emf/ecp/view/spi/swt/AbstractSWTRenderer.java" type="org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer">
         <filter comment="This is SPI" id="336695337">
             <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer"/>
+                <message_argument value="org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer"/>
                 <message_argument value="getGridDescription(GridDescription)"/>
             </message_arguments>
         </filter>
         <filter comment="SPI change (1.3)" id="336695337">
             <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer"/>
+                <message_argument value="org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer"/>
                 <message_argument value="getGridDescription(SWTGridDescription)"/>
             </message_arguments>
         </filter>
         <filter comment="This is SPI" id="336695337">
             <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer"/>
+                <message_argument value="org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer"/>
                 <message_argument value="renderControl(GridCell, Composite)"/>
             </message_arguments>
         </filter>
         <filter comment="SPI change (1.3)" id="336695337">
             <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer"/>
+                <message_argument value="org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer"/>
                 <message_argument value="renderControl(SWTGridCell, Composite)"/>
             </message_arguments>
         </filter>
         <filter comment="This is SPI" id="338792546">
             <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer"/>
+                <message_argument value="org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer"/>
                 <message_argument value="applyEnable(VElement, List&lt;RenderingResultRow&lt;Control&gt;&gt;)"/>
             </message_arguments>
         </filter>
         <filter comment="This is SPI" id="338792546">
             <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer"/>
+                <message_argument value="org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer"/>
                 <message_argument value="applyVisible(VElement, List&lt;RenderingResultRow&lt;Control&gt;&gt;)"/>
             </message_arguments>
         </filter>
         <filter comment="This is SPI" id="338792546">
             <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer"/>
+                <message_argument value="org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer"/>
                 <message_argument value="createResult(Control[])"/>
             </message_arguments>
         </filter>
         <filter comment="This is SPI" id="338792546">
             <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer"/>
+                <message_argument value="org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer"/>
                 <message_argument value="getLayoutHelper()"/>
             </message_arguments>
         </filter>
         <filter comment="This is SPI" id="338792546">
             <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer"/>
+                <message_argument value="org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer"/>
                 <message_argument value="render(Composite, R, ViewModelContext)"/>
             </message_arguments>
         </filter>
         <filter comment="This is SPI" id="338792546">
             <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer"/>
+                <message_argument value="org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer"/>
                 <message_argument value="renderModel(Composite, R, ViewModelContext)"/>
             </message_arguments>
         </filter>
         <filter comment="This is SPI" id="338792546">
             <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer"/>
+                <message_argument value="org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer"/>
                 <message_argument value="setLayoutDataForResultRows(List&lt;RenderingResultRow&lt;Control&gt;&gt;)"/>
             </message_arguments>
         </filter>
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 c653bff..7a31661 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Dependency Injection SWT Renderer
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.view.swt.di;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.emf.ecp.view.model.common.di;bundle-version="[1.3.0,2.0.0)",
@@ -14,9 +14,17 @@
  org.eclipse.emf.ecp.ui.view;bundle-version="[1.3.0,2.0.0)",
  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.3.0,2.0.0)",
  org.eclipse.e4.core.contexts;bundle-version="[1.3.100,2.0.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.5.0,2.0.0)"
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)"
 Export-Package: org.eclipse.emf.ecp.ui.view.swt.di.renderer;version="1
- .5.1";x-internal:=true,org.eclipse.emf.ecp.ui.view.swt.di.util;versio
- n="1.5.1";x-internal:=true
-Import-Package: org.eclipse.swt.graphics;version="0.0.0",
- org.eclipse.swt.widgets;version="0.0.0"
+ .6.0";x-internal:=true,org.eclipse.emf.ecp.ui.view.swt.di.util;versio
+ n="1.6.0";x-internal:=true
+Import-Package: org.eclipse.emfforms.spi.common.locale;version="1.6.0",
+ org.eclipse.emfforms.spi.common.report;version="1.6.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 0ad3057..9927266 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.5.1-SNAPSHOT</version>
+    <version>1.6.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt.di/src/org/eclipse/emf/ecp/ui/view/swt/di/renderer/DIContainerSWTRenderer.java b/bundles/org.eclipse.emf.ecp.ui.view.swt.di/src/org/eclipse/emf/ecp/ui/view/swt/di/renderer/DIContainerSWTRenderer.java
index 8afb1cb..d460395 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt.di/src/org/eclipse/emf/ecp/ui/view/swt/di/renderer/DIContainerSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt.di/src/org/eclipse/emf/ecp/ui/view/swt/di/renderer/DIContainerSWTRenderer.java
@@ -15,8 +15,12 @@
 import org.eclipse.emf.ecp.ui.view.swt.di.util.SWTContextUtil;
 import org.eclipse.emf.ecp.view.model.common.di.renderer.DIRendererUtil;
 import org.eclipse.emf.ecp.view.model.common.di.renderer.POJORendererFactory;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer;
 import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
 import org.eclipse.swt.widgets.Composite;
 
 /**
@@ -29,6 +33,20 @@
 public class DIContainerSWTRenderer extends ContainerSWTRenderer<VElement> {
 
 	/**
+	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 * @param factory the {@link EMFFormsRendererFactory}
+	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
+	 */
+	public DIContainerSWTRenderer(VElement vElement, ViewModelContext viewContext, ReportService reportService,
+		EMFFormsRendererFactory factory, EMFFormsDatabinding emfFormsDatabinding) {
+		super(vElement, viewContext, reportService, factory, emfFormsDatabinding);
+	}
+
+	/**
 	 * Named string for the children of a container.
 	 */
 	public static final String CHILDREN = "containerChildren"; //$NON-NLS-1$
@@ -42,8 +60,7 @@
 	@Override
 	protected Composite getComposite(Composite parent) {
 		final IEclipseContext childContext = DIRendererUtil.getContextForElement(getVElement(), getViewModelContext());
-		SWTContextUtil.setAbstractSWTRendererObjects(childContext, getVElement(), getViewModelContext(),
-			getSWTRendererFactory(), parent);
+		SWTContextUtil.setAbstractSWTRendererObjects(childContext, getVElement(), getViewModelContext(), parent);
 		childContext.set(CHILDREN, getChildren());
 		putInContext(childContext, getVElement());
 		return doGetComposite();
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt.di/src/org/eclipse/emf/ecp/ui/view/swt/di/renderer/DIControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.ui.view.swt.di/src/org/eclipse/emf/ecp/ui/view/swt/di/renderer/DIControlSWTRenderer.java
index 8ae91fc..c3854fb 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt.di/src/org/eclipse/emf/ecp/ui/view/swt/di/renderer/DIControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt.di/src/org/eclipse/emf/ecp/ui/view/swt/di/renderer/DIControlSWTRenderer.java
@@ -15,13 +15,18 @@
 import org.eclipse.emf.ecp.ui.view.swt.di.util.SWTContextUtil;
 import org.eclipse.emf.ecp.view.model.common.di.renderer.DIRendererUtil;
 import org.eclipse.emf.ecp.view.model.common.di.renderer.POJORendererFactory;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.core.swt.AbstractControlSWTRenderer;
 import org.eclipse.emf.ecp.view.spi.model.VControl;
 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.layout.GridDescriptionFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
+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;
+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.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 
@@ -32,13 +37,29 @@
 @SuppressWarnings("restriction")
 public class DIControlSWTRenderer extends AbstractControlSWTRenderer<VControl> {
 
+	/**
+	 * 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}
+	 */
+	public DIControlSWTRenderer(VControl vElement, ViewModelContext viewContext, ReportService reportService,
+		EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider,
+		VTViewTemplateProvider vtViewTemplateProvider) {
+		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider);
+	}
+
 	private SWTGridDescription rendererGridDescription;
 	private Object pojo;
 
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#getGridDescription(org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription)
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#getGridDescription(org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription)
 	 */
 	@Override
 	public SWTGridDescription getGridDescription(SWTGridDescription gridDescription) {
@@ -53,7 +74,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#renderControl(org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell,
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#renderControl(org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell,
 	 *      org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
@@ -61,8 +82,7 @@
 		NoPropertyDescriptorFoundExeption {
 		pojo = POJORendererFactory.getInstance().getRenderer(getVElement(), getViewModelContext());
 		final IEclipseContext childContext = DIRendererUtil.getContextForElement(getVElement(), getViewModelContext());
-		SWTContextUtil.setAbstractSWTRendererObjects(childContext, getVElement(), getViewModelContext(),
-			getSWTRendererFactory(), parent);
+		SWTContextUtil.setAbstractSWTRendererObjects(childContext, getVElement(), getViewModelContext(), parent);
 		childContext.set(SWTGridCell.class, cell);
 		return (Control) DIRendererUtil.render(pojo, getVElement(), getViewModelContext());
 	}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt.di/src/org/eclipse/emf/ecp/ui/view/swt/di/renderer/DIViewSWTRenderer.java b/bundles/org.eclipse.emf.ecp.ui.view.swt.di/src/org/eclipse/emf/ecp/ui/view/swt/di/renderer/DIViewSWTRenderer.java
index d566c8f..40e18d7 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt.di/src/org/eclipse/emf/ecp/ui/view/swt/di/renderer/DIViewSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt.di/src/org/eclipse/emf/ecp/ui/view/swt/di/renderer/DIViewSWTRenderer.java
@@ -16,9 +16,15 @@
 import org.eclipse.emf.ecp.view.internal.core.swt.renderer.ViewSWTRenderer;
 import org.eclipse.emf.ecp.view.model.common.di.renderer.DIRendererUtil;
 import org.eclipse.emf.ecp.view.model.common.di.renderer.POJORendererFactory;
+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.renderer.NoPropertyDescriptorFoundExeption;
 import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
+import org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleProvider;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 
@@ -29,12 +35,27 @@
 @SuppressWarnings("restriction")
 public class DIViewSWTRenderer extends ViewSWTRenderer {
 
+	/**
+	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 * @param factory the {@link EMFFormsRendererFactory}
+	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
+	 * @param localeProvider The {@link EMFFormsLocaleProvider}
+	 */
+	public DIViewSWTRenderer(VView vElement, ViewModelContext viewContext, ReportService reportService,
+		EMFFormsRendererFactory factory, EMFFormsDatabinding emfFormsDatabinding, EMFFormsLocaleProvider localeProvider) {
+		super(vElement, viewContext, reportService, factory, emfFormsDatabinding, localeProvider);
+	}
+
 	private Object pojo;
 
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#render(org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell,
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#render(org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell,
 	 *      org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
@@ -42,8 +63,7 @@
 		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
 		pojo = POJORendererFactory.getInstance().getRenderer(getVElement(), getViewModelContext());
 		final IEclipseContext childContext = DIRendererUtil.getContextForElement(getVElement(), getViewModelContext());
-		SWTContextUtil.setAbstractSWTRendererObjects(childContext, getVElement(), getViewModelContext(),
-			getSWTRendererFactory(), parent);
+		SWTContextUtil.setAbstractSWTRendererObjects(childContext, getVElement(), getViewModelContext(), parent);
 		childContext.set(SWTGridCell.class, cell);
 		DIRendererUtil.render(pojo, getVElement(), getViewModelContext());
 		return parent;
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt.di/src/org/eclipse/emf/ecp/ui/view/swt/di/renderer/DIViewSWTRendererService.java b/bundles/org.eclipse.emf.ecp.ui.view.swt.di/src/org/eclipse/emf/ecp/ui/view/swt/di/renderer/DIViewSWTRendererService.java
new file mode 100644
index 0000000..6a93143
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt.di/src/org/eclipse/emf/ecp/ui/view/swt/di/renderer/DIViewSWTRendererService.java
@@ -0,0 +1,138 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.ui.view.swt.di.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.model.VView;
+import org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleProvider;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * NumberControlSWTRendererService which provides the NumberControlSWTRenderer.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class DIViewSWTRendererService implements EMFFormsRendererService<VView> {
+
+	private EMFFormsDatabinding databindingService;
+	private EMFFormsRendererFactory rendererFactory;
+	private ReportService reportService;
+	private ServiceReference<EMFFormsRendererFactory> serviceReference;
+	private EMFFormsLocaleProvider localeProvider;
+
+	/**
+	 * Activate ViewSWTRendererService.
+	 *
+	 * @param bundleContext The {@link BundleContext}
+	 */
+	protected void activate(BundleContext bundleContext) {
+		serviceReference = bundleContext.getServiceReference(EMFFormsRendererFactory.class);
+		rendererFactory = bundleContext.getService(serviceReference);
+	}
+
+	/**
+	 * Deactivate ViewSWTRendererService.
+	 *
+	 * @param bundleContext The {@link BundleContext}
+	 */
+	protected void deactivate(BundleContext bundleContext) {
+		bundleContext.ungetService(serviceReference);
+	}
+
+	/**
+	 * Called by the initializer to set the EMFFormsDatabinding.
+	 *
+	 * @param databindingService The EMFFormsDatabinding
+	 */
+	protected void setEMFFormsDatabinding(EMFFormsDatabinding databindingService) {
+		this.databindingService = databindingService;
+	}
+
+	/**
+	 * Called by the initializer to unset the EMFFormsDatabinding.
+	 *
+	 * @param databindingService The EMFFormsDatabinding
+	 */
+	protected void unsetEMFFormsDatabinding(EMFFormsDatabinding databindingService) {
+		this.databindingService = null;
+	}
+
+	/**
+	 * Called by the initializer to set the ReportService.
+	 *
+	 * @param reportService The ReportService
+	 */
+	protected void setReportService(ReportService reportService) {
+		this.reportService = reportService;
+	}
+
+	/**
+	 * Called by the initializer to unset the ReportService.
+	 *
+	 * @param reportService The ReportService
+	 */
+	protected void unsetReportService(ReportService reportService) {
+		this.reportService = null;
+	}
+
+	/**
+	 * Called by the initializer to set the EMFFormsLocaleProvider.
+	 *
+	 * @param localeProvider The EMFFormsLocaleProvider
+	 */
+	protected void setEMFFormsLocaleProvider(EMFFormsLocaleProvider localeProvider) {
+		this.localeProvider = localeProvider;
+	}
+
+	/**
+	 * Called by the initializer to unset the EMFFormsLocaleProvider.
+	 *
+	 * @param localeProvider The EMFFormsLocaleProvider
+	 */
+	protected void unsetEMFFormsLocaleProvider(EMFFormsLocaleProvider localeProvider) {
+		this.localeProvider = null;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (!VView.class.isInstance(vElement)) {
+			return NOT_APPLICABLE;
+		}
+		return 3d;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService#getRendererInstance(org.eclipse.emf.ecp.view.spi.model.VElement,
+	 *      org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
+	 */
+	@Override
+	public AbstractSWTRenderer<VView> getRendererInstance(VView vElement, ViewModelContext viewModelContext) {
+		return new DIViewSWTRenderer(vElement, viewModelContext, reportService, rendererFactory, databindingService,
+			localeProvider);
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt.di/src/org/eclipse/emf/ecp/ui/view/swt/di/util/SWTContextUtil.java b/bundles/org.eclipse.emf.ecp.ui.view.swt.di/src/org/eclipse/emf/ecp/ui/view/swt/di/util/SWTContextUtil.java
index 3ee01d9..e0fa783 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt.di/src/org/eclipse/emf/ecp/ui/view/swt/di/util/SWTContextUtil.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt.di/src/org/eclipse/emf/ecp/ui/view/swt/di/util/SWTContextUtil.java
@@ -15,7 +15,6 @@
 import org.eclipse.emf.ecp.view.model.common.di.util.ContextUtil;
 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.swt.SWTRendererFactory;
 import org.eclipse.swt.widgets.Composite;
 
 /**
@@ -38,13 +37,11 @@
 	 * @param eclipseContext the eclipse context to add the element to
 	 * @param element the {@link VElement}
 	 * @param viewModelContext the {@link ViewModelContext}
-	 * @param factory the {@link SWTRendererFactory}
 	 * @param parent the {@link Composite} to draw onto
 	 */
 	public static void setAbstractSWTRendererObjects(IEclipseContext eclipseContext, VElement element,
-		ViewModelContext viewModelContext, SWTRendererFactory factory, Composite parent) {
+		ViewModelContext viewModelContext, Composite parent) {
 		ContextUtil.setAbstractRendererObjects(eclipseContext, element, viewModelContext);
-		eclipseContext.set(SWTRendererFactory.class, factory);
 		eclipseContext.set(Composite.class, parent);
 	}
 
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/.gitignore b/bundles/org.eclipse.emf.ecp.ui.view.swt/.gitignore
new file mode 100644
index 0000000..ff3e254
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/.gitignore
@@ -0,0 +1,2 @@
+/bin/
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.ui.view.swt/.settings/.api_filters
index 9bc99d7..cfbb4bf 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/.settings/.api_filters
@@ -19,10 +19,98 @@
                 <message_argument value="1.4.0"/>
             </message_arguments>
         </filter>
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Changes for 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model.common"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.model.common.spi.databinding.DatabindingProviderService">
+        <filter comment="SPI Changes for 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.model.common.spi.databinding.DatabindingProviderService"/>
+                <message_argument value="org.eclipse.emf.ecp.ui.view.swt_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport">
+        <filter comment="SPI Changes for 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.ui.view.swt_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Changes for 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.ui.view.swt_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Changes for 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.ui.view.swt_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.swt.AbstractAdditionalSWTRenderer">
+        <filter comment="EMFForms 1.6 SPI Change" id="305324134">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.AbstractAdditionalSWTRenderer"/>
+                <message_argument value="org.eclipse.emf.ecp.ui.view.swt_1.6.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer">
+        <filter comment="EMFForms 1.6 SPI Change" id="305324134">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer"/>
+                <message_argument value="org.eclipse.emf.ecp.ui.view.swt_1.6.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.swt.layout.GridDescriptionFactory">
+        <filter comment="EMFForms 1.6 SPI Change" id="305324134">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.layout.GridDescriptionFactory"/>
+                <message_argument value="org.eclipse.emf.ecp.ui.view.swt_1.6.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.swt.layout.LayoutProvider">
+        <filter comment="EMFForms 1.6 SPI Change" id="305324134">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.layout.LayoutProvider"/>
+                <message_argument value="org.eclipse.emf.ecp.ui.view.swt_1.6.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell">
+        <filter comment="EMFForms 1.6 SPI Change" id="305324134">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell"/>
+                <message_argument value="org.eclipse.emf.ecp.ui.view.swt_1.6.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription">
+        <filter comment="EMFForms 1.6 SPI Change" id="305324134">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription"/>
+                <message_argument value="org.eclipse.emf.ecp.ui.view.swt_1.6.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/ui/view/swt/DebugSWTReportConsumer.java" type="org.eclipse.emf.ecp.ui.view.swt.DebugSWTReportConsumer">
+        <filter comment="SPI Changes for 1.6" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.ui.view.swt.DebugSWTReportConsumer"/>
+                <message_argument value="reported(AbstractReport)"/>
             </message_arguments>
         </filter>
     </resource>
@@ -54,80 +142,76 @@
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/emf/ecp/view/spi/swt/AbstractSWTRenderer.java" type="org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer">
-        <filter comment="This is SPI" id="336695337">
+    <resource path="src/org/eclipse/emf/ecp/ui/view/swt/InvalidGridDescriptionReportConsumer.java" type="org.eclipse.emf.ecp.ui.view.swt.InvalidGridDescriptionReportConsumer">
+        <filter comment="SPI Changes for 1.6" id="338792546">
             <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer"/>
-                <message_argument value="getGridDescription(GridDescription)"/>
-            </message_arguments>
-        </filter>
-        <filter comment="SPI change (1.3)" id="336695337">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer"/>
-                <message_argument value="getGridDescription(SWTGridDescription)"/>
-            </message_arguments>
-        </filter>
-        <filter comment="This is SPI" id="336695337">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer"/>
-                <message_argument value="renderControl(GridCell, Composite)"/>
-            </message_arguments>
-        </filter>
-        <filter comment="SPI change (1.3)" id="336695337">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer"/>
-                <message_argument value="renderControl(SWTGridCell, Composite)"/>
-            </message_arguments>
-        </filter>
-        <filter comment="This is SPI" id="338792546">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer"/>
-                <message_argument value="applyEnable(VElement, List&lt;RenderingResultRow&lt;Control&gt;&gt;)"/>
-            </message_arguments>
-        </filter>
-        <filter comment="This is SPI" id="338792546">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer"/>
-                <message_argument value="applyVisible(VElement, List&lt;RenderingResultRow&lt;Control&gt;&gt;)"/>
-            </message_arguments>
-        </filter>
-        <filter comment="This is SPI" id="338792546">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer"/>
-                <message_argument value="createResult(Control[])"/>
-            </message_arguments>
-        </filter>
-        <filter comment="This is SPI" id="338792546">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer"/>
-                <message_argument value="getLayoutHelper()"/>
-            </message_arguments>
-        </filter>
-        <filter comment="This is SPI" id="338792546">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer"/>
-                <message_argument value="render(Composite, R, ViewModelContext)"/>
-            </message_arguments>
-        </filter>
-        <filter comment="This is SPI" id="338792546">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer"/>
-                <message_argument value="renderModel(Composite, R, ViewModelContext)"/>
-            </message_arguments>
-        </filter>
-        <filter comment="This is SPI" id="338792546">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer"/>
-                <message_argument value="setLayoutDataForResultRows(List&lt;RenderingResultRow&lt;Control&gt;&gt;)"/>
+                <message_argument value="org.eclipse.emf.ecp.ui.view.swt.InvalidGridDescriptionReportConsumer"/>
+                <message_argument value="reported(AbstractReport)"/>
             </message_arguments>
         </filter>
     </resource>
     <resource path="src/org/eclipse/emf/ecp/view/spi/swt/SWTRendererFactory.java" type="org.eclipse.emf.ecp.view.spi.swt.SWTRendererFactory">
-        <filter comment="This is SPI" id="337809484">
+        <filter comment="EMFForms 1.6 SPI Change" id="403804204">
             <message_arguments>
                 <message_argument value="org.eclipse.emf.ecp.view.spi.swt.SWTRendererFactory"/>
-                <message_argument value="4"/>
-                <message_argument value="8"/>
+                <message_argument value="getRenderer(VElement, ViewModelContext)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="405901410">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.SWTRendererFactory"/>
+                <message_argument value="getRenderer(VElement, ViewModelContext)"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/swt/UnknownVElementSWTRenderer.java" type="org.eclipse.emf.ecp.view.spi.swt.UnknownVElementSWTRenderer">
+        <filter comment="SPI Changes for 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.UnknownVElementSWTRenderer"/>
+                <message_argument value="UnknownVElementSWTRenderer()"/>
+            </message_arguments>
+        </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.UnknownVElementSWTRenderer"/>
+                <message_argument value="getGridDescription(SWTGridDescription)"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/swt/layout/AbstractLayoutProvider.java" type="org.eclipse.emf.ecp.view.spi.swt.layout.AbstractLayoutProvider">
+        <filter comment="EMFForms 1.6 SPI Change" id="337682486">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.layout.AbstractLayoutProvider"/>
+            </message_arguments>
+        </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.layout.AbstractLayoutProvider"/>
+                <message_argument value="isMultiLine(EStructuralFeature.Setting)"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/swt/layout/AbstractLayoutProvider.java" type="org.eclipse.emfforms.spi.swt.core.layout.AbstractLayoutProvider">
+        <filter comment="SPI Changes for 1.6" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emfforms.spi.swt.core.layout.AbstractLayoutProvider"/>
+                <message_argument value="isMultiLine(EStructuralFeature.Setting)"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/swt/layout/LayoutProviderHelper.java" type="org.eclipse.emf.ecp.view.spi.swt.layout.LayoutProviderHelper">
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.swt.layout.LayoutProviderHelper"/>
+                <message_argument value="getLayoutData(SWTGridCell, SWTGridDescription, SWTGridDescription, SWTGridDescription, VElement, Control)"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/swt/layout/LayoutProviderHelper.java" type="org.eclipse.emfforms.spi.swt.core.layout.LayoutProviderHelper">
+        <filter comment="SPI Changes for 1.6" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emfforms.spi.swt.core.layout.LayoutProviderHelper"/>
+                <message_argument value="getLayoutData(SWTGridCell, SWTGridDescription, SWTGridDescription, SWTGridDescription, VElement, Control)"/>
             </message_arguments>
         </filter>
     </resource>
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 54dfb0e..b850272 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.view.swt;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.internal.swt.Activator
 Bundle-Vendor: %Bundle-Vendor
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
@@ -12,17 +12,20 @@
  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.context;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.5.0,2.0.0)";visibility:=reexport,
- org.eclipse.emf.ecp.common.ui;bundle-version="[1.5.0,2.0.0)"
+ org.eclipse.emf.ecp.common.ui;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.6.0,2.0.0)";visibility:=reexport
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emf.ecp.ui.view.swt;version="1.5.1",org.ec
- lipse.emf.ecp.view.internal.swt;version="1.5.1";x-friends:="org.eclip
- se.emf.ecp.view.table.ui.swt.test,org.eclipse.emf.ecp.view.context.te
- st",org.eclipse.emf.ecp.view.spi.swt;version="1.5.1",org.eclipse.emf.
- ecp.view.spi.swt.layout;version="1.5.1",org.eclipse.emf.ecp.view.spi.
- swt.reporting;version="1.5.1"
+Export-Package: org.eclipse.emf.ecp.ui.view.swt;version="1.6.0",
+ org.eclipse.emf.ecp.view.internal.swt;version="1.6.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.6.0",
+ org.eclipse.emf.ecp.view.spi.swt.layout;version="1.6.0",
+ org.eclipse.emf.ecp.view.spi.swt.reporting;version="1.6.0"
 Import-Package: org.eclipse.core.commands;version="0.0.0",
- org.eclipse.emf.ecp.edit.spi.swt.util;version="1.5.1",
+ org.eclipse.emf.ecp.edit.spi.swt.util;version="1.5.0",
+ org.eclipse.emfforms.spi.common.report;version="1.6.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/pom.xml b/bundles/org.eclipse.emf.ecp.ui.view.swt/pom.xml
index 0152413..e8b54ac 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.5.1-SNAPSHOT</version>

+    <version>1.6.0-SNAPSHOT</version>

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

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/schema/additionalRenderers.exsd b/bundles/org.eclipse.emf.ecp.ui.view.swt/schema/additionalRenderers.exsd
index 7107b03..f411379 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/schema/additionalRenderers.exsd
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/schema/additionalRenderers.exsd
@@ -55,7 +55,7 @@
                   The class defining the renderer.
                </documentation>
                <appinfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.emf.ecp.view.spi.swt.AbstractAdditionalSWTRenderer:"/>
+                  <meta.attribute kind="java" basedOn="org.eclipse.emfforms.spi.swt.core.AbstractAdditionalSWTRenderer:"/>
                </appinfo>
             </annotation>
          </attribute>
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/schema/layoutProvider.exsd b/bundles/org.eclipse.emf.ecp.ui.view.swt/schema/layoutProvider.exsd
index cc06376..1652a00 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/schema/layoutProvider.exsd
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/schema/layoutProvider.exsd
@@ -55,7 +55,7 @@
                   
                </documentation>
                <appinfo>
-                  <meta.attribute kind="java" basedOn=":org.eclipse.emf.ecp.view.spi.swt.layout.LayoutProvider"/>
+                  <meta.attribute kind="java" basedOn=":org.eclipse.emfforms.spi.swt.core.layout.LayoutProvider"/>
                </appinfo>
             </annotation>
          </attribute>
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/schema/renderers.exsd b/bundles/org.eclipse.emf.ecp.ui.view.swt/schema/renderers.exsd
index 64d0375..3b0b973 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/schema/renderers.exsd
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/schema/renderers.exsd
@@ -60,7 +60,7 @@
                   The class defining the renderer.
                </documentation>
                <appinfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer:"/>
+                  <meta.attribute kind="java" basedOn="org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer:"/>
                </appinfo>
             </annotation>
          </attribute>
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/DebugSWTReportConsumer.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/DebugSWTReportConsumer.java
index 44f2e01..2bbe682 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/DebugSWTReportConsumer.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/DebugSWTReportConsumer.java
@@ -11,8 +11,8 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.ui.view.swt;
 
-import org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport;
-import org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
+import org.eclipse.emfforms.spi.common.report.ReportServiceConsumer;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.swt.widgets.Display;
 
@@ -30,7 +30,8 @@
 	 *
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer#reported(org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport)
+	 * @see org.eclipse.emfforms.spi.common.report.ReportServiceConsumer#reported(org.eclipse.emfforms.spi.common.report.AbstractReport)
+	 * @since 1.6
 	 */
 	@Override
 	public void reported(AbstractReport reportEntity) {
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 193785f..1dfaf05 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-2014 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
  *
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -124,12 +124,39 @@
 			return;
 		}
 
+		if (!eReference.isContainment()) {
+			addElementToModel(newMEInstance, eObject);
+		}
+
 		ECPControlHelper.addModelElementInReference(eObject, newMEInstance, eReference,
 			editingDomain);
 		openInNewContext(newMEInstance);
 	}
 
 	/**
+	 * Tries to add {@code newElement} recursively upwards starting from {@code eObject}. If no applicable
+	 * {@link EObject} is found, the {@code newElement} will be added to {@code eObject}'s {@link Resource}.
+	 *
+	 * @param newElement
+	 *            The {@link EObject} which is added to the model.
+	 * @param eObject
+	 *            The starting point from which the {@code newElement} is recursively tried to be added upwards.
+	 */
+	private void addElementToModel(EObject newElement, EObject eObject) {
+		for (final EReference ref : eObject.eClass().getEAllContainments()) {
+			if (ref.getEType().isInstance(newElement)) {
+				ECPControlHelper.addModelElementInReference(eObject, newElement, ref, editingDomain);
+				return;
+			}
+		}
+		if (eObject.eContainer() != null) {
+			addElementToModel(newElement, eObject.eContainer());
+		} else {
+			eObject.eResource().getContents().add(newElement);
+		}
+	}
+
+	/**
 	 * {@inheritDoc}
 	 *
 	 * @see org.eclipse.emf.ecp.edit.spi.ReferenceService#openInNewContext(org.eclipse.emf.ecore.EObject)
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/InvalidGridDescriptionReportConsumer.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/InvalidGridDescriptionReportConsumer.java
index ff042be..84dff3a 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/InvalidGridDescriptionReportConsumer.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/InvalidGridDescriptionReportConsumer.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
  *
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -11,10 +11,9 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.ui.view.swt;
 
-import org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport;
-import org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer;
-import org.eclipse.emf.ecp.view.spi.model.util.ViewModelUtil;
 import org.eclipse.emf.ecp.view.spi.swt.reporting.InvalidGridDescriptionReport;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
+import org.eclipse.emfforms.spi.common.report.ReportServiceConsumer;
 
 /**
  *
@@ -29,11 +28,12 @@
 	 *
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer#reported(org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport)
+	 * @see org.eclipse.emfforms.spi.common.report.ReportServiceConsumer#reported(org.eclipse.emfforms.spi.common.report.AbstractReport)
+	 * @since 1.6
 	 */
 	@Override
 	public void reported(AbstractReport reportEntity) {
-		if (InvalidGridDescriptionReport.class.isInstance(reportEntity) && ViewModelUtil.isDebugMode()) {
+		if (InvalidGridDescriptionReport.class.isInstance(reportEntity)) {
 			// TODO: mimics existing behavior; should we rather show a dialog?
 			throw new IllegalStateException("Invalid number of cells, expected exactly one cell!"); //$NON-NLS-1$
 		}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/messages.properties b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/messages.properties
deleted file mode 100644
index 30a8fb0..0000000
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/messages.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-ModelelementSelectionDialog_DialogMessage_SearchPattern=Enter model element name prefix or pattern (e.g. *Trun?)
-ModelelementSelectionDialog_DialogTitle=Search Model Element
-NewModelElementWizard_PageDescription_AddModelElement=Select model element type
-NewModelElementWizard_PageTitle_AddModelElement=Add new model element
-NewModelElementWizard_WizardTitle_AddModelElement=Add new model element
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/Activator.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/Activator.java
index ea6a067..236a6ab 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/Activator.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/Activator.java
@@ -16,10 +16,14 @@
 import org.eclipse.core.runtime.Status;
 import org.eclipse.emf.ecp.ui.view.swt.DebugSWTReportConsumer;
 import org.eclipse.emf.ecp.ui.view.swt.InvalidGridDescriptionReportConsumer;
-import org.eclipse.emf.ecp.view.spi.model.reporting.ReportService;
 import org.eclipse.emf.ecp.view.spi.model.util.ViewModelUtil;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.common.report.ReportServiceConsumer;
+import org.eclipse.emfforms.spi.core.services.editsupport.EMFFormsEditSupport;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
+import org.osgi.framework.ServiceRegistration;
 
 /**
  * The activator class controls the plug-in life cycle.
@@ -32,6 +36,10 @@
 	// The shared instance
 	private static Activator plugin;
 
+	private ServiceRegistration<ReportServiceConsumer> registerDebugConsumerService;
+
+	private ServiceRegistration<ReportServiceConsumer> registerInvalidGridConsumerService;
+
 	/**
 	 * The constructor.
 	 */
@@ -46,8 +54,10 @@
 	public void start(BundleContext context) throws Exception {
 		super.start(context);
 		if (ViewModelUtil.isDebugMode()) {
-			getReportService().addConsumer(new DebugSWTReportConsumer());
-			getReportService().addConsumer(new InvalidGridDescriptionReportConsumer());
+			registerDebugConsumerService = context.registerService(ReportServiceConsumer.class,
+				new DebugSWTReportConsumer(), null);
+			registerInvalidGridConsumerService = context.registerService(ReportServiceConsumer.class,
+				new InvalidGridDescriptionReportConsumer(), null);
 		}
 		plugin = this;
 	}
@@ -59,6 +69,12 @@
 	@Override
 	public void stop(BundleContext context) throws Exception {
 		plugin = null;
+		if (registerDebugConsumerService != null) {
+			registerDebugConsumerService.unregister();
+		}
+		if (registerInvalidGridConsumerService != null) {
+			registerInvalidGridConsumerService.unregister();
+		}
 		super.stop(context);
 	}
 
@@ -95,4 +111,34 @@
 		return bundleContext.getService(serviceReference);
 	}
 
+	/**
+	 * Returns the {@link EMFFormsEditSupport} service.
+	 *
+	 * @return The {@link EMFFormsEditSupport}
+	 */
+	public EMFFormsEditSupport getEMFFormsEditSupport() {
+		final ServiceReference<EMFFormsEditSupport> serviceReference = plugin.getBundle().getBundleContext()
+			.getServiceReference(EMFFormsEditSupport.class);
+
+		final EMFFormsEditSupport service = plugin.getBundle().getBundleContext().getService(serviceReference);
+		plugin.getBundle().getBundleContext().ungetService(serviceReference);
+		return service;
+	}
+
+	/**
+	 * Returns the {@link EMFFormsRendererFactory} service.
+	 *
+	 * @return The {@link EMFFormsRendererFactory}
+	 */
+	public EMFFormsRendererFactory getEMFFormsRendererFactory() {
+		final ServiceReference<EMFFormsRendererFactory> serviceReference = plugin.getBundle().getBundleContext()
+			.getServiceReference(EMFFormsRendererFactory.class);
+
+		final EMFFormsRendererFactory service = plugin.getBundle().getBundleContext()
+			.getService(serviceReference);
+		plugin.getBundle().getBundleContext().ungetService(serviceReference);
+
+		return service;
+	}
+
 }
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/ECPAdditionalRendererDescription.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/ECPAdditionalRendererDescription.java
index 508767e..f0e05a1 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/ECPAdditionalRendererDescription.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/ECPAdditionalRendererDescription.java
@@ -12,8 +12,8 @@
 package org.eclipse.emf.ecp.view.internal.swt;
 
 import org.eclipse.emf.ecp.view.spi.model.VElement;
-import org.eclipse.emf.ecp.view.spi.swt.AbstractAdditionalSWTRenderer;
 import org.eclipse.emf.ecp.view.spi.swt.ECPAdditionalRendererTester;
+import org.eclipse.emfforms.spi.swt.core.AbstractAdditionalSWTRenderer;
 
 /**
  * A class describing a rendererClass.
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/ECPRendererDescription.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/ECPRendererDescription.java
index 634c05a..143a6c3 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/ECPRendererDescription.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/ECPRendererDescription.java
@@ -15,7 +15,7 @@
 
 import org.eclipse.emf.ecp.view.model.common.ECPRendererTester;
 import org.eclipse.emf.ecp.view.spi.model.VElement;
-import org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
 
 /**
  * A class describing a rendererClass.
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/ECPSWTViewRendererImpl.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/ECPSWTViewRendererImpl.java
index db45849..652b5bb 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/ECPSWTViewRendererImpl.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/ECPSWTViewRendererImpl.java
@@ -21,16 +21,17 @@
 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.reporting.ReportService;
 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.AbstractSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.swt.SWTRendererFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.GridDescriptionFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
 import org.eclipse.emf.ecp.view.spi.swt.reporting.InvalidGridDescriptionReport;
 import org.eclipse.emf.ecp.view.spi.swt.reporting.RenderingFailedReport;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.GridDescriptionFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Composite;
@@ -41,13 +42,13 @@
  */
 public class ECPSWTViewRendererImpl implements ECPSWTViewRenderer {
 
-	private final SWTRendererFactory factory;
+	private final EMFFormsRendererFactory factory;
 
 	/**
 	 * Constructor.
 	 */
 	public ECPSWTViewRendererImpl() {
-		factory = createFactory();
+		factory = Activator.getDefault().getEMFFormsRendererFactory();
 	}
 
 	/**
@@ -82,9 +83,14 @@
 	 */
 	@Override
 	public ECPSWTView render(Composite parent, ViewModelContext viewModelContext) throws ECPRendererException {
-		final AbstractSWTRenderer<VElement> renderer = factory.getRenderer(
-			viewModelContext.getViewModel(),
-			viewModelContext);
+		AbstractSWTRenderer<VElement> renderer;
+		try {
+			renderer = factory.getRendererInstance(
+				viewModelContext.getViewModel(),
+				viewModelContext);
+		} catch (final EMFFormsNoRendererException ex) {
+			throw new ECPRendererException(ex.getMessage());
+		}
 
 		final ReportService reportService = Activator.getDefault().getReportService();
 
@@ -128,13 +134,13 @@
 		return render(parent, domainObject, view);
 	}
 
-	/**
-	 * Returns the {@link SWTRendererFactory} used to obtain any SWT renderer.
-	 * Clients may override.
-	 *
-	 * @return the {@link SWTRendererFactory}
-	 */
-	protected SWTRendererFactory createFactory() {
-		return new SWTRendererFactoryImpl();
-	}
+	// /**
+	// * Returns the {@link SWTRendererFactory} used to obtain any SWT renderer.
+	// * Clients may override.
+	// *
+	// * @return the {@link SWTRendererFactory}
+	// */
+	// protected SWTRendererFactory createFactory() {
+	// return new SWTRendererFactoryImpl();
+	// }
 }
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/EmptyVElementSWTRenderer.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/EmptyVElementSWTRenderer.java
index 4b45d70..8fc6475 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/EmptyVElementSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/EmptyVElementSWTRenderer.java
@@ -14,13 +14,15 @@
 import java.util.ArrayList;
 import java.util.List;
 
+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.renderer.NoPropertyDescriptorFoundExeption;
 import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException;
-import org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.swt.layout.GridDescriptionFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+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.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 
@@ -36,10 +38,12 @@
 	private final SWTGridDescription gridDescription;
 
 	/**
-	 * Default constructor.
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService teh {@link ReportService}
 	 */
-	public EmptyVElementSWTRenderer() {
-		super();
+	public EmptyVElementSWTRenderer(VElement vElement, ViewModelContext viewContext, ReportService reportService) {
+		super(vElement, viewContext, reportService);
 		gridDescription = GridDescriptionFactory.INSTANCE.createEmptyGridDescription();
 		final SWTGridCell gc = new SWTGridCell(0, 0, this);
 		gc.setHorizontalFill(true);
@@ -54,7 +58,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#getGridDescription(org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription)
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#getGridDescription(org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription)
 	 */
 	@Override
 	public SWTGridDescription getGridDescription(SWTGridDescription gridDescription) {
@@ -64,7 +68,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#renderControl(org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell,
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#renderControl(org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell,
 	 *      org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
@@ -77,7 +81,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#applyEnable()
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#applyEnable()
 	 */
 	@Override
 	protected void applyEnable() {
@@ -87,7 +91,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#applyReadOnly()
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#applyReadOnly()
 	 */
 	@Override
 	protected void applyReadOnly() {
@@ -97,7 +101,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#applyValidation()
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#applyValidation()
 	 */
 	@Override
 	protected void applyValidation() {
@@ -107,7 +111,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#applyVisible()
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#applyVisible()
 	 */
 	@Override
 	protected void applyVisible() {
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/Messages.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/Messages.java
deleted file mode 100644
index ae263a6..0000000
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/Messages.java
+++ /dev/null
@@ -1,37 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eugen - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.internal.swt;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * @author Eugen
- * @generated
- *
- */
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.emf.ecp.ui.view.swt.messages"; //$NON-NLS-1$
-	public static String NewModelElementWizard_WizardTitle_AddModelElement;
-	public static String NewModelElementWizard_PageTitle_AddModelElement;
-	public static String NewModelElementWizard_PageDescription_AddModelElement;
-
-	public static String ModelelementSelectionDialog_DialogMessage_SearchPattern;
-	public static String ModelelementSelectionDialog_DialogTitle;
-
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	private Messages() {
-	}
-}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/SWTRendererFactoryImpl.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/SWTRendererFactoryImpl.java
index 7f3a63e..bd9f373 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/SWTRendererFactoryImpl.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/SWTRendererFactoryImpl.java
@@ -11,6 +11,7 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.swt;
 
+import java.lang.reflect.InvocationTargetException;
 import java.util.Collection;
 import java.util.LinkedHashSet;
 import java.util.Set;
@@ -25,11 +26,7 @@
 import org.eclipse.emf.ecp.view.model.common.ECPStaticRendererTester;
 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.reporting.AbstractReport;
-import org.eclipse.emf.ecp.view.spi.model.reporting.ReportService;
 import org.eclipse.emf.ecp.view.spi.model.util.ViewModelUtil;
-import org.eclipse.emf.ecp.view.spi.swt.AbstractAdditionalSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer;
 import org.eclipse.emf.ecp.view.spi.swt.ECPAdditionalRendererTester;
 import org.eclipse.emf.ecp.view.spi.swt.SWTRendererFactory;
 import org.eclipse.emf.ecp.view.spi.swt.UnknownVElementSWTRenderer;
@@ -37,12 +34,17 @@
 import org.eclipse.emf.ecp.view.spi.swt.reporting.ECPRendererDescriptionInitFailedReport;
 import org.eclipse.emf.ecp.view.spi.swt.reporting.NoRendererFoundReport;
 import org.eclipse.emf.ecp.view.spi.swt.reporting.RendererInitFailedReport;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.swt.core.AbstractAdditionalSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
 import org.osgi.framework.Bundle;
 
 /**
  * @author Eugen
  *
  */
+@Deprecated
 public class SWTRendererFactoryImpl implements SWTRendererFactory {
 
 	private static final String TEST_DYNAMIC = "dynamicTest";//$NON-NLS-1$
@@ -59,14 +61,12 @@
 	/**
 	 * A description of all available renderers.
 	 */
-	private final Set<ECPRendererDescription> rendererDescriptors =
-		new LinkedHashSet<ECPRendererDescription>();
+	private final Set<ECPRendererDescription> rendererDescriptors = new LinkedHashSet<ECPRendererDescription>();
 
 	/**
 	 * A description of all additionally available renderers.
 	 */
-	private final Set<ECPAdditionalRendererDescription> additionalRendererDescriptors =
-		new LinkedHashSet<ECPAdditionalRendererDescription>();
+	private final Set<ECPAdditionalRendererDescription> additionalRendererDescriptors = new LinkedHashSet<ECPAdditionalRendererDescription>();
 
 	/**
 	 * Default constructor for the renderer factory.
@@ -104,14 +104,13 @@
 				try {
 					final Class<AbstractSWTRenderer<VElement>> renderer = loadClass(configurationElement
 						.getContributor().getName(), configurationElement
-						.getAttribute("renderer")); //$NON-NLS-1$
+							.getAttribute("renderer")); //$NON-NLS-1$
 
 					final Set<ECPRendererTester> tester = new LinkedHashSet<ECPRendererTester>();
 					for (final IConfigurationElement testerExtension : configurationElement.getChildren()) {
 						if (TEST_DYNAMIC.equals(testerExtension.getName())) {
 							tester.add((ECPRendererTester) testerExtension.createExecutableExtension(RENDERER_TESTER));
-						}
-						else if (TEST_STATIC.equals(testerExtension.getName())) {
+						} else if (TEST_STATIC.equals(testerExtension.getName())) {
 
 							final int priority = Integer.parseInt(testerExtension.getAttribute(TESTER_PRIORITY));
 
@@ -148,7 +147,7 @@
 				try {
 					final Class<AbstractAdditionalSWTRenderer<VElement>> renderer = loadClass(configurationElement
 						.getContributor().getName(), configurationElement
-						.getAttribute("renderer")); //$NON-NLS-1$
+							.getAttribute("renderer")); //$NON-NLS-1$
 					final ECPAdditionalRendererTester tester = (ECPAdditionalRendererTester) configurationElement
 						.createExecutableExtension("tester"); //$NON-NLS-1$
 					// final Set<ECPAdditionalRendererTester> tester = new LinkedHashSet<ECPAdditionalRendererTester>();
@@ -208,9 +207,8 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.SWTRendererFactory#getRenderer(org.eclipse.emf.ecp.view.spi.model.VElement,
-	 *      org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
-	 */
+	 * @see SWTRendererFactory#getRenderer(VElement, ViewModelContext)
+	 **/
 	@Override
 	public AbstractSWTRenderer<VElement> getRenderer(VElement vElement, ViewModelContext viewContext) {
 
@@ -240,12 +238,11 @@
 
 			if (currentPriority > highestPriority) {
 				highestPriority = currentPriority;
-				try {
-					bestCandidate = description.getRenderer().newInstance();
-				} catch (final InstantiationException ex) {
-					reportService.report(new RendererInitFailedReport(ex));
-				} catch (final IllegalAccessException ex) {
-					reportService.report(new RendererInitFailedReport(ex));
+				final AbstractSWTRenderer<VElement> renderer = createRenderer(vElement, viewContext, reportService,
+					description.getRenderer());
+				if (renderer != null) {
+					bestCandidate = renderer;
+
 				}
 			}
 		}
@@ -253,22 +250,46 @@
 		if (bestCandidate == null) {
 			reportService.report(new NoRendererFoundReport(vElement));
 			if (ViewModelUtil.isDebugMode()) {
-				bestCandidate = new UnknownVElementSWTRenderer();
+				bestCandidate = new UnknownVElementSWTRenderer(vElement, viewContext, reportService);
 			} else {
-				bestCandidate = new EmptyVElementSWTRenderer();
+				bestCandidate = new EmptyVElementSWTRenderer(vElement, viewContext, reportService);
 			}
 		}
 
-		bestCandidate.init(vElement, viewContext);
+		bestCandidate.init();
 
 		return bestCandidate;
 	}
 
+	private AbstractSWTRenderer<VElement> createRenderer(VElement vElement, ViewModelContext viewContext,
+		final ReportService reportService,
+		final Class<? extends AbstractSWTRenderer<VElement>> rendererClass) {
+		try {
+			return rendererClass
+				.getConstructor(vElement.getClass().getInterfaces()[0], ViewModelContext.class)
+				.newInstance(vElement, viewContext);
+		} catch (final InstantiationException ex) {
+			reportService.report(new RendererInitFailedReport(ex));
+		} catch (final IllegalAccessException ex) {
+			reportService.report(new RendererInitFailedReport(ex));
+		} catch (final IllegalArgumentException ex) {
+			reportService.report(new RendererInitFailedReport(ex));
+		} catch (final InvocationTargetException ex) {
+			reportService.report(new RendererInitFailedReport(ex));
+		} catch (final NoSuchMethodException ex) {
+			reportService.report(new RendererInitFailedReport(ex));
+		} catch (final SecurityException ex) {
+			reportService.report(new RendererInitFailedReport(ex));
+		}
+		// TODO: Throw Exception
+		return null;
+	}
+
 	/**
 	 *
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.SWTRendererFactory#getAdditionalRenderer(org.eclipse.emf.ecp.view.spi.model.VElement,
+	 * @see SWTRendererFactory#getAdditionalRenderer(org.eclipse.emf.ecp.view.spi.model.VElement,
 	 *      org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
 	 */
 	@Override
@@ -276,25 +297,18 @@
 		ViewModelContext viewModelContext) {
 
 		final ReportService reportService = Activator.getDefault().getReportService();
-		final Set<AbstractAdditionalSWTRenderer<VElement>> renderers =
-			new LinkedHashSet<AbstractAdditionalSWTRenderer<VElement>>();
+		final Set<AbstractAdditionalSWTRenderer<VElement>> renderers = new LinkedHashSet<AbstractAdditionalSWTRenderer<VElement>>();
 
 		for (final ECPAdditionalRendererDescription description : additionalRendererDescriptors) {
 			final ECPAdditionalRendererTester tester = description.getTester();
 			if (tester.isApplicable(vElement, viewModelContext)) {
-				try {
-					final AbstractAdditionalSWTRenderer<VElement> renderer = description.getRenderer()
-						.newInstance();
-					renderer.init(vElement, viewModelContext);
-					renderers.add(renderer);
-					continue;
-				} catch (final InstantiationException ex) {
-					reportService.report(new RendererInitFailedReport(ex));
-					continue;
-				} catch (final IllegalAccessException ex) {
-					reportService.report(new RendererInitFailedReport(ex));
+				final AbstractSWTRenderer<VElement> renderer = createRenderer(vElement, viewModelContext,
+					reportService, description.getRenderer());
+				if (renderer == null) {
 					continue;
 				}
+				renderer.init();
+				renderers.add((AbstractAdditionalSWTRenderer<VElement>) renderer);
 			}
 		}
 		return renderers;
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/AbstractAdditionalSWTRenderer.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/AbstractAdditionalSWTRenderer.java
deleted file mode 100644
index de0bb9f..0000000
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/AbstractAdditionalSWTRenderer.java
+++ /dev/null
@@ -1,25 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eugen - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.spi.swt;
-
-import org.eclipse.emf.ecp.view.spi.model.VElement;
-
-/**
- * The renderer for additional controls.
- *
- * @author Eugen Neufeld
- * @param <VELEMENT> the {@link VElement} this renderer is valid for
- * @since 1.3
- */
-public abstract class AbstractAdditionalSWTRenderer<VELEMENT extends VElement> extends AbstractSWTRenderer<VELEMENT> {
-
-}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/AbstractSWTRenderer.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/AbstractSWTRenderer.java
deleted file mode 100644
index a50e5a3..0000000
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/AbstractSWTRenderer.java
+++ /dev/null
@@ -1,376 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Edagr Mueller - initial API and implementation
- * Eugen Neufeld - Refactoring
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.spi.swt;
-
-import java.util.Collections;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-import org.eclipse.emf.ecp.view.internal.swt.SWTRendererFactoryImpl;
-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;
-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.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.layout.LayoutProviderHelper;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * Common base class for all SWT specific renderer classes. {@link #init(VElement, ViewModelContext)} is called by the
- * framework when providing the renderer. You don't need to call this.
- *
- * A renderer using other renderers to render its contents must call this methods in this order:
- *
- * <pre>
- *  {@link #getGridDescription(SWTGridDescription)}
- *  for each SWTGridCell
- *  	{@link #render(SWTGridCell, Composite)}
- * {@link #finalizeRendering(Composite)}
- * </pre>
- *
- * If you don't call {@link #finalizeRendering(Composite)} after the rendering, the automatic disposing of the renderer
- * will not work, as well as the initial validation check.
- *
- * @author Eugen Neufeld
- *
- * @param <VELEMENT> the actual type of the {@link VElement} to be drawn
- * @since 1.2
- */
-public abstract class AbstractSWTRenderer<VELEMENT extends VElement> extends AbstractRenderer<VELEMENT> {
-
-	/**
-	 * Variant constant for indicating RAP controls.
-	 */
-	protected static final String CUSTOM_VARIANT = "org.eclipse.rap.rwt.customVariant"; //$NON-NLS-1$
-	private ModelChangeListener listener;
-	private Map<SWTGridCell, Control> controls;
-	private SWTRendererFactory rendererFactory;
-	private boolean renderingFinished;
-
-	/**
-	 * Default constructor.
-	 */
-	public AbstractSWTRenderer() {
-		this(new SWTRendererFactoryImpl());
-	}
-
-	/**
-	 * Constructor for testing purpose.
-	 *
-	 * @param factory the factory to use
-	 * @since 1.3
-	 */
-	protected AbstractSWTRenderer(SWTRendererFactory factory) {
-		this.rendererFactory = factory;
-	}
-
-	/**
-	 * Returns the GridDescription for this Renderer.
-	 *
-	 * @param gridDescription the current {@link SWTGridDescription}
-	 * @return the number of controls per row
-	 * @since 1.3
-	 */
-	public abstract SWTGridDescription getGridDescription(SWTGridDescription gridDescription);
-
-	/**
-	 *
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.view.model.common.AbstractRenderer#init(org.eclipse.emf.ecp.view.spi.model.VElement,
-	 *      org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
-	 * @since 1.3
-	 */
-	@Override
-	public final void init(final VELEMENT vElement, final ViewModelContext viewContext) {
-		super.init(vElement, viewContext);
-		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;
-					}
-					if (notification.getNotifier() != getVElement()) {
-						return;
-					}
-					if (notification.getStructuralFeature() == VViewPackage.eINSTANCE.getElement_Visible()) {
-						applyVisible();
-					}
-					if (notification.getStructuralFeature() == VViewPackage.eINSTANCE.getElement_Enabled()
-						&& !vElement.isReadonly()) {
-						applyEnable();
-					}
-					if (notification.getStructuralFeature() == VViewPackage.eINSTANCE
-						.getElement_Diagnostic()) {
-						applyValidation();
-					}
-				}
-
-			};
-			getViewModelContext().registerViewChangeListener(listener);
-		}
-		getViewModelContext().addContextUser(this);
-
-		postInit();
-	}
-
-	/**
-	 * Returns a copy of the {@link GridCell} to {@link Control} map.
-	 *
-	 * @return a copy of the controls map
-	 * @since 1.3
-	 */
-	protected final Map<SWTGridCell, Control> getControls() {
-		if (controls == null) {
-			return Collections.emptyMap();
-		}
-		return new LinkedHashMap<SWTGridCell, Control>(controls);
-	}
-
-	/**
-	 * Use this method to initialize objects which are needed already before rendering.
-	 *
-	 * @since 1.3
-	 */
-	protected void preInit() {
-
-	}
-
-	/**
-	 * Use this method to initialize objects which are needed during rendering.
-	 *
-	 * @since 1.3
-	 */
-	protected void postInit() {
-
-	}
-
-	/**
-	 * Disposes all resources used by the renderer.
-	 * Don't forget to call super.dispose if overwriting this method.
-	 *
-	 * @since 1.3
-	 */
-	@Override
-	protected void dispose() {
-		if (getViewModelContext() != null) {
-			getViewModelContext().unregisterViewChangeListener(listener);
-		}
-		listener = null;
-		controls = null;
-		getViewModelContext().removeContextUser(this);
-
-		super.dispose();
-	}
-
-	/**
-	 * Renders the passed {@link VElement}.
-	 *
-	 * @param cell the {@link SWTGridCell} of the control to render
-	 * @param parent the {@link Composite} to render on
-	 * @return the rendered {@link Control}
-	 * @throws NoRendererFoundException this is thrown when a renderer cannot be found
-	 * @throws NoPropertyDescriptorFoundExeption this is thrown when no property descriptor can be found
-	 * @since 1.3
-	 */
-	public Control render(final SWTGridCell cell, Composite parent)
-		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
-
-		Control control = controls.get(cell);
-		if (control != null) {
-			return control;
-		}
-
-		control = renderControl(cell, parent);
-		if (control == null) {
-			// something went wrong, log
-			return null;
-		}
-		controls.put(cell, control);
-
-		// register dispose listener to rerender if disposed
-		control.addDisposeListener(new DisposeListener() {
-
-			@Override
-			public void widgetDisposed(DisposeEvent e) {
-				if (controls != null) {
-					controls.remove(cell);
-				}
-			}
-		});
-
-		return control;
-	}
-
-	/**
-	 * Called by the framework to initialize listener.
-	 *
-	 * @param parent the parent used during render
-	 * @since 1.3
-	 */
-	public void finalizeRendering(Composite parent) {
-		if (renderingFinished) {
-			return;
-		}
-		renderingFinished = true;
-		applyVisible();
-		applyReadOnly();
-		if (!getVElement().isReadonly()) {
-			applyEnable();
-		}
-		applyValidation();
-		parent.addDisposeListener(new DisposeListener() {
-
-			@Override
-			public void widgetDisposed(DisposeEvent event) {
-				dispose();
-			}
-		});
-	}
-
-	/**
-	 * Renders the passed {@link VElement}.
-	 *
-	 * @param cell the {@link GridCell} of the control to render
-	 * @param parent the {@link Composite} to render on
-	 * @return the rendered {@link Control}
-	 * @throws NoRendererFoundException this is thrown when a renderer cannot be found
-	 * @throws NoPropertyDescriptorFoundExeption this is thrown when no property descriptor can be found
-	 * @since 1.3
-	 */
-	protected abstract Control renderControl(final SWTGridCell cell, Composite parent) throws NoRendererFoundException,
-		NoPropertyDescriptorFoundExeption;
-
-	/**
-	 * Marks a controls as readonly.
-	 *
-	 * @since 1.3
-	 *
-	 */
-	protected void applyReadOnly() {
-		for (final SWTGridCell gridCell : controls.keySet()) {
-			setControlEnabled(gridCell, controls.get(gridCell), !getVElement().isReadonly());
-		}
-	}
-
-	/**
-	 * Allows implementers to set a control to enabled.
-	 *
-	 * @since 1.3
-	 *
-	 */
-	protected void applyEnable() {
-		for (final SWTGridCell gridCell : controls.keySet()) {
-			setControlEnabled(gridCell, controls.get(gridCell), getVElement().isEnabled());
-		}
-	}
-
-	/**
-	 * Wraps the call to enable/disable a control.
-	 *
-	 * @param gridCell the {@link SWTGridCell} to enable/disable
-	 * @param control the {@link Control} to enable/disable
-	 * @param enabled true if control should be enabled, false otherwise
-	 * @since 1.3
-	 */
-	protected void setControlEnabled(SWTGridCell gridCell, Control control, boolean enabled) {
-		control.setEnabled(enabled);
-	}
-
-	/**
-	 * Allows implementers to check and set the visibility on the whole result row.
-	 *
-	 * @since 1.3
-	 *
-	 */
-	protected void applyVisible() {
-		final boolean visible = getVElement().isVisible();
-		for (final SWTGridCell gridCell : controls.keySet()) {
-			final Object layoutData = controls.get(gridCell).getLayoutData();
-			if (GridData.class.isInstance(layoutData)) {
-				final GridData gridData = (GridData) layoutData;
-				if (gridData != null) {
-					gridData.exclude = !visible;
-				}
-			}
-			controls.get(gridCell).setVisible(visible);
-			controls.get(gridCell).getParent().layout(false);
-		}
-	}
-
-	/**
-	 * Allows implementers to display the validation state of the control.
-	 * The default implementation does nothing.
-	 *
-	 * @since 1.3
-	 */
-	protected void applyValidation() {
-
-	}
-
-	/**
-	 * Sets the LayoutData for the specified control.
-	 *
-	 * @param gridCell the {@link GridCell} used to render the control
-	 * @param gridDescription the {@link GridDescription} of the parent which rendered the control
-	 * @param currentRowGridDescription the {@link GridDescription} of the current row
-	 * @param fullGridDescription the {@link GridDescription} of the whole container
-	 * @param vElement the {@link VElement} to set the layoutData for
-	 * @param control the control to set the layout to
-	 * @since 1.3
-	 */
-	protected void setLayoutDataForControl(SWTGridCell gridCell, SWTGridDescription gridDescription,
-		SWTGridDescription currentRowGridDescription, SWTGridDescription fullGridDescription, VElement vElement,
-		Control control) {
-
-		control.setLayoutData(LayoutProviderHelper.getLayoutData(gridCell, gridDescription, currentRowGridDescription,
-			fullGridDescription,
-			vElement, control));
-
-	}
-
-	/**
-	 * @return String the default font name on the system.
-	 *
-	 * @since 1.5
-	 */
-	protected String getDefaultFontName(Control control) {
-		return control.getDisplay().getSystemFont().getFontData()[0].getName();
-	}
-
-	/**
-	 * The {@link SWTRendererFactory} to use.
-	 *
-	 * @return the {@link SWTRendererFactory}
-	 * @since 1.3
-	 */
-	protected final SWTRendererFactory getSWTRendererFactory() {
-		return rendererFactory;
-	}
-}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/SWTRendererFactory.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/SWTRendererFactory.java
index 2e0e371..787b4b4 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/SWTRendererFactory.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/SWTRendererFactory.java
@@ -16,6 +16,8 @@
 
 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.AbstractAdditionalSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
 
 /**
  * A RendererFactory for SWT controls.
@@ -24,6 +26,7 @@
  * @since 1.2
  *
  */
+@Deprecated
 public interface SWTRendererFactory {
 
 	/**
@@ -32,6 +35,7 @@
 	 * @param viewContext the {@link ViewModelContext} to use
 	 * @param vElement the {@link VElement} to render
 	 * @return the list for {@link AbstractSWTRenderer} the fitting render or null
+	 * @since 1.6
 	 */
 	AbstractSWTRenderer<VElement> getRenderer(VElement vElement, ViewModelContext viewContext);
 
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/UnknownVElementSWTRenderer.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/UnknownVElementSWTRenderer.java
index 76f9a38..dc2518e 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/UnknownVElementSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/UnknownVElementSWTRenderer.java
@@ -14,12 +14,15 @@
 import java.util.ArrayList;
 import java.util.List;
 
+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.renderer.NoPropertyDescriptorFoundExeption;
 import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException;
-import org.eclipse.emf.ecp.view.spi.swt.layout.GridDescriptionFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+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.FillLayout;
 import org.eclipse.swt.widgets.Composite;
@@ -40,9 +43,14 @@
 
 	/**
 	 * Default constructor.
+	 *
+	 * @since 1.6
+	 * @param vElement The {@link VElement}
+	 * @param viewContext The {@link ViewModelContext}
+	 * @param reportService The {@link ReportService}
 	 */
-	public UnknownVElementSWTRenderer() {
-		super();
+	public UnknownVElementSWTRenderer(VElement vElement, ViewModelContext viewContext, ReportService reportService) {
+		super(vElement, viewContext, reportService);
 		gridDescription = GridDescriptionFactory.INSTANCE.createEmptyGridDescription();
 		final SWTGridCell gc = new SWTGridCell(0, 0, this);
 		gc.setHorizontalFill(true);
@@ -57,7 +65,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#getGridDescription(org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription)
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#getGridDescription(org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription)
 	 */
 	@Override
 	public SWTGridDescription getGridDescription(SWTGridDescription gridDescription) {
@@ -67,7 +75,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#renderControl(org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell,
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#renderControl(org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell,
 	 *      org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/layout/AbstractLayoutProvider.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/layout/AbstractLayoutProvider.java
index ad31af4..e43ce42 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/layout/AbstractLayoutProvider.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/layout/AbstractLayoutProvider.java
@@ -11,12 +11,10 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.swt.layout;
 
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
-import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
-import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.internal.swt.Activator;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+import org.eclipse.emfforms.spi.swt.core.layout.LayoutProvider;
 
 /**
  * Abstract implementation of a {@link LayoutProvider} which contributes helper methods.
@@ -30,22 +28,13 @@
 	/**
 	 * Checks whether a setting is set to multiline.
 	 *
-	 * @param setting the {@link Setting} to check
+	 * @param domainModelReference the {@link VDomainModelReference} pointing to the feature to check
+	 * @param domainModel the root {@link EObject} of the domain model reference
 	 * @return true if multiline, false otherwise
+	 * @since 1.6
 	 */
-	protected static boolean isMultiLine(Setting setting) {
-		final ComposedAdapterFactory composedAdapterFactory = new ComposedAdapterFactory(new AdapterFactory[] {
-			new ReflectiveItemProviderAdapterFactory(),
-			new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE) });
-		final AdapterFactoryItemDelegator adapterFactoryItemDelegator = new AdapterFactoryItemDelegator(
-			composedAdapterFactory);
-		final IItemPropertyDescriptor descriptor = adapterFactoryItemDelegator.getPropertyDescriptor(
-			setting.getEObject(), setting.getEStructuralFeature());
-		final boolean multiline = descriptor.isMultiLine(null);
-
-		composedAdapterFactory.dispose();
-
-		return multiline;
+	protected static boolean isMultiLine(VDomainModelReference domainModelReference, EObject domainModel) {
+		return Activator.getDefault().getEMFFormsEditSupport().isMultiLine(domainModelReference, domainModel);
 	}
 
 }
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/layout/GridDescriptionFactory.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/layout/GridDescriptionFactory.java
deleted file mode 100644
index fd8d263..0000000
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/layout/GridDescriptionFactory.java
+++ /dev/null
@@ -1,64 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eugen - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.spi.swt.layout;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.emf.ecp.view.spi.model.VElement;
-import org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer;
-
-/**
- * A Factory to create {@link SWTGridDescription GridDescriptions}.
- *
- * @author Eugen Neufeld
- * @since 1.3
- *
- */
-public final class GridDescriptionFactory {
-
-	/**
-	 * The static Instance of the Factory.
-	 */
-	public static final GridDescriptionFactory INSTANCE = new GridDescriptionFactory();
-
-	private GridDescriptionFactory() {
-
-	}
-
-	/**
-	 * Creates an empty grid description.
-	 *
-	 * @return the {@link SWTGridDescription}
-	 */
-	public SWTGridDescription createEmptyGridDescription() {
-		return new SWTGridDescription();
-	}
-
-	/**
-	 * Creates a simple grid based on the number of rows and columns provided.
-	 *
-	 * @param rows the number of rows in this grid
-	 * @param columns the number of columns in this grid
-	 * @param renderer the {@link AbstractSWTRenderer}
-	 * @return the {@link SWTGridDescription}
-	 */
-	public SWTGridDescription createSimpleGrid(int rows, int columns, AbstractSWTRenderer<? extends VElement> renderer) {
-		final List<SWTGridCell> gridCells = new ArrayList<SWTGridCell>(rows * columns);
-		for (int row = 0; row < rows; row++) {
-			for (int column = 0; column < columns; column++) {
-				gridCells.add(new SWTGridCell(row, column, renderer));
-			}
-		}
-		return new SWTGridDescription(rows, columns, gridCells);
-	}
-}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/layout/LayoutProvider.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/layout/LayoutProvider.java
deleted file mode 100644
index 2f84bef..0000000
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/layout/LayoutProvider.java
+++ /dev/null
@@ -1,58 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eugen - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.spi.swt.layout;
-
-import org.eclipse.emf.ecp.view.spi.model.VElement;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Layout;
-
-/**
- * By providing an own implementation, the layout of the application can be influenced.
- *
- * @author Eugen Neufeld
- * @since 1.3
- */
-public interface LayoutProvider {
-
-	/**
-	 * The Layout for aligning controls vertically in columns.
-	 *
-	 * @param numColumns the number of columns to create
-	 * @param equalWidth whether the columns should be equal width
-	 * @return the layout to use
-	 */
-	Layout getColumnLayout(int numColumns, boolean equalWidth);
-
-	/**
-	 * The LayoutData to use.
-	 *
-	 * @param gridCell the current {@link SWTGridCell}
-	 * @param controlGridDescription the {@link SWTGridDescription} of the rendered {@link VElement}
-	 * @param currentRowGridDescription the {@link SWTGridDescription} of the current row
-	 * @param fullGridDescription the {@link SWTGridDescription} of the whole container
-	 * @param vElement the {@link VElement} which is currently rendered
-	 * @param control the rendered {@link Control}
-	 * @return the Object being the layout data to set
-	 */
-	Object getLayoutData(SWTGridCell gridCell, SWTGridDescription controlGridDescription,
-		SWTGridDescription currentRowGridDescription, SWTGridDescription fullGridDescription, VElement vElement,
-		Control control);
-
-	/**
-	 * A simple spanning Layout.
-	 *
-	 * @param spanX the horizontal span
-	 * @param spanY the vertical span
-	 * @return the created Layout Data
-	 */
-	Object getSpanningLayoutData(int spanX, int spanY);
-}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/layout/LayoutProviderHelper.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/layout/LayoutProviderHelper.java
index 7cd0857..8dae2fd 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/layout/LayoutProviderHelper.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/layout/LayoutProviderHelper.java
@@ -17,9 +17,14 @@
 import java.util.List;
 
 import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionRegistry;
 import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecp.view.internal.swt.Activator;
 import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.swt.core.layout.LayoutProvider;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Layout;
 import org.osgi.framework.Bundle;
@@ -50,9 +55,11 @@
 	}
 
 	private static void readLayoutProviders() {
-		final IConfigurationElement[] controls = Platform.getExtensionRegistry()
-			.getConfigurationElementsFor(
-				EXTENSION_POINT_ID);
+		final IExtensionRegistry extensionRegistry = Platform.getExtensionRegistry();
+		if (extensionRegistry == null) {
+			return;
+		}
+		final IConfigurationElement[] controls = extensionRegistry.getConfigurationElementsFor(EXTENSION_POINT_ID);
 		for (final IConfigurationElement e : controls) {
 			try {
 				final String clazz = e.getAttribute(CLASS);
@@ -118,16 +125,17 @@
 	 * @param currentRowGridDescription the {@link GridDescription} of the current row
 	 * @param fullGridDescription the {@link GridDescription} of the whole container
 	 * @param vElement the {@link VElement} which is currently rendered
+	 * @param domainModel The domain model object whose feature is currently rendered
 	 * @param control the rendered {@link Control}
 	 * @return the Object being the layout data to set
+	 * @since 1.6
 	 */
 	public static Object getLayoutData(SWTGridCell gridCell, SWTGridDescription controlGridDescription,
 		SWTGridDescription currentRowGridDescription, SWTGridDescription fullGridDescription, VElement vElement,
-		Control control) {
+		EObject domainModel, Control control) {
 		checkProviderLength();
 		return getLayoutProvider().get(0).getLayoutData(gridCell, controlGridDescription, currentRowGridDescription,
-			fullGridDescription,
-			vElement, control);
+			fullGridDescription, vElement, domainModel, control);
 	}
 
 	private static void checkProviderLength() {
@@ -154,4 +162,14 @@
 		checkProviderLength();
 		return getLayoutProvider().get(0).getSpanningLayoutData(spanX, spanY);
 	}
+
+	/**
+	 * Allows to add a {@link LayoutProvider} directly.
+	 *
+	 * @param layoutProvider The {@link LayoutProvider}
+	 * @since 1.6
+	 */
+	public static void addLayoutProvider(LayoutProvider layoutProvider) {
+		layoutProviders.add(layoutProvider);
+	}
 }
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/layout/SWTGridCell.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/layout/SWTGridCell.java
deleted file mode 100644
index aa2622c..0000000
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/layout/SWTGridCell.java
+++ /dev/null
@@ -1,37 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eugen - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.spi.swt.layout;
-
-import org.eclipse.emf.ecp.view.model.common.AbstractGridCell;
-import org.eclipse.emf.ecp.view.spi.model.VElement;
-import org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer;
-
-/**
- * A {@link SWTGridCell} has a row, a column and a renderer it is rendered by.
- *
- * @author Eugen Neufeld
- * @since 1.3
- *
- */
-public class SWTGridCell extends AbstractGridCell<AbstractSWTRenderer<?>> {
-
-	/**
-	 * Default constructor to create a grid cell.
-	 *
-	 * @param row the row of the cell
-	 * @param column the column of the cell
-	 * @param renderer the {@link AbstractSWTRenderer} that renderes the cell
-	 */
-	public SWTGridCell(int row, int column, AbstractSWTRenderer<? extends VElement> renderer) {
-		super(row, column, renderer);
-	}
-}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/layout/SWTGridDescription.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/layout/SWTGridDescription.java
deleted file mode 100644
index 2322be4..0000000
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/layout/SWTGridDescription.java
+++ /dev/null
@@ -1,59 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eugen - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.spi.swt.layout;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.emf.ecp.view.model.common.AbstractGridDescription;
-
-/**
- * A {@link SWTGridDescription} describes the grid of the renderer using a list of {@link SWTGridCell GridCells} and the
- * number of rows and columns it has.
- *
- * Use the {@link GridDescriptionFactory} to create {@link SWTGridDescription GridDescriptions}.
- *
- * @author Eugen Neufeld
- * @since 1.3
- *
- */
-public class SWTGridDescription extends AbstractGridDescription<SWTGridCell> {
-
-	/**
-	 * Creating an empty grid.
-	 */
-	public SWTGridDescription() {
-
-	}
-
-	/**
-	 * Creating a filled grid.
-	 *
-	 * @param rows number of rows in this description
-	 * @param columns number of columns in this description
-	 * @param grid the List of {@link SWTGridCell GridCells} describing the grid
-	 */
-	public SWTGridDescription(int rows, int columns, List<SWTGridCell> grid) {
-		super(rows, columns, grid);
-	}
-
-	/**
-	 * Creates a copy of the grid.
-	 *
-	 * @return a copy of the grid
-	 */
-	public SWTGridDescription copy() {
-		final SWTGridDescription gd = new SWTGridDescription(getRows(), getColumns(), new ArrayList<SWTGridCell>(
-			getGrid()));
-		return gd;
-	}
-}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/reporting/AmbiguousRendererPriorityReport.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/reporting/AmbiguousRendererPriorityReport.java
index 16dc18a..04efc86 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/reporting/AmbiguousRendererPriorityReport.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/reporting/AmbiguousRendererPriorityReport.java
@@ -13,7 +13,7 @@
 
 import java.text.MessageFormat;
 
-import org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
 
 /**
  * An error that indicates that two renderers with the same priority have been found.
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/reporting/CustomControlInitFailedReport.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/reporting/CustomControlInitFailedReport.java
index dbcee27..65f6be8 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/reporting/CustomControlInitFailedReport.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/reporting/CustomControlInitFailedReport.java
@@ -11,7 +11,7 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.swt.reporting;
 
-import org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
 
 /**
  * Indicates that the initialization of a custom control failed.
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/reporting/ECPRendererDescriptionInitFailedReport.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/reporting/ECPRendererDescriptionInitFailedReport.java
index 6702843..c9c831d 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/reporting/ECPRendererDescriptionInitFailedReport.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/reporting/ECPRendererDescriptionInitFailedReport.java
@@ -13,7 +13,7 @@
 
 import java.text.MessageFormat;
 
-import org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
 
 /**
  * Indicates that an {@link org.eclipse.emf.ecp.view.internal.swt.ECPRendererDescription ECPRendererDescription} could
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/reporting/InvalidGridDescriptionReport.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/reporting/InvalidGridDescriptionReport.java
index 11cd323..a29520a 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/reporting/InvalidGridDescriptionReport.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/reporting/InvalidGridDescriptionReport.java
@@ -11,7 +11,7 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.swt.reporting;
 
-import org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
 
 /**
  * Indicates that a renderer returned an invalid grid description.
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/reporting/NoRendererFoundReport.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/reporting/NoRendererFoundReport.java
index 7cf8303..dab817c 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/reporting/NoRendererFoundReport.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/reporting/NoRendererFoundReport.java
@@ -14,7 +14,7 @@
 import java.text.MessageFormat;
 
 import org.eclipse.emf.ecp.view.spi.model.VElement;
-import org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
 
 /**
  * Indicates that no renderer has been found.
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/reporting/RendererInitFailedReport.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/reporting/RendererInitFailedReport.java
index e3ea3be..2c312b1 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/reporting/RendererInitFailedReport.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/reporting/RendererInitFailedReport.java
@@ -13,7 +13,7 @@
 
 import java.text.MessageFormat;
 
-import org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
 
 /**
  * An error report that indicates that an renderer failed during its initialization.
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/reporting/RenderingFailedReport.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/reporting/RenderingFailedReport.java
index d5c4b20..db6474d 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/reporting/RenderingFailedReport.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/reporting/RenderingFailedReport.java
@@ -13,7 +13,7 @@
 
 import java.text.MessageFormat;
 
-import org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
 
 /**
  * Indicates that rendering is not possible due to an exception.
diff --git a/bundles/org.eclipse.emf.ecp.ui.view/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.ui.view/.settings/.api_filters
index d0dbd32..48d5dec 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.ui.view/.settings/.api_filters
@@ -13,10 +13,10 @@
                 <message_argument value="1.3.0"/>
             </message_arguments>
         </filter>
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Changes for 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.context"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
@@ -28,6 +28,30 @@
             </message_arguments>
         </filter>
     </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport">
+        <filter comment="SPI Changes for 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.ui.view_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Changes for 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.ui.view_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Changes for 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.ui.view_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
     <resource path="src/org/eclipse/emf/ecp/view/spi/provider/IViewProvider.java" type="org.eclipse.emf.ecp.view.spi.provider.IViewProvider">
         <filter comment="SPI Change (1.4)" id="403804204">
             <message_arguments>
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 70ffcd6..165fb20 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: MPI UI View
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.view;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.internal.ui.Activator
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.emf.ecp.view.model;bundle-version="[1.5.0,2.0.0)";visibility:=reexport,
@@ -10,11 +10,12 @@
  org.eclipse.emf.ecp.edit;bundle-version="[1.5.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.ecp.ui.view;version="1.5.1",org.eclips
- e.emf.ecp.view.internal.provider;version="1.5.1";x-friends:="org.ecli
+Export-Package: org.eclipse.emf.ecp.ui.view;version="1.6.0",org.eclips
+ e.emf.ecp.view.internal.provider;version="1.6.0";x-friends:="org.ecli
  pse.emf.ecp.view.context.test",org.eclipse.emf.ecp.view.internal.ui;v
- ersion="1.5.1";x-friends:="org.eclipse.emf.ecp.view.table.ui.swt",org
- .eclipse.emf.ecp.view.spi.provider;version="1.5.1",org.eclipse.emf.ec
- p.view.spi.provider.reporting;version="1.5.1",org.eclipse.emf.ecp.vie
- w.spi.renderer;version="1.5.1"
+ ersion="1.6.0";x-friends:="org.eclipse.emf.ecp.view.table.ui.swt",org
+ .eclipse.emf.ecp.view.spi.provider;version="1.6.0",org.eclipse.emf.ec
+ p.view.spi.provider.reporting;version="1.6.0",org.eclipse.emf.ecp.vie
+ w.spi.renderer;version="1.6.0"
 Bundle-Vendor: Eclipse Modeling Project
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.6.0,2.0.0)"
diff --git a/bundles/org.eclipse.emf.ecp.ui.view/pom.xml b/bundles/org.eclipse.emf.ecp.ui.view/pom.xml
index b9ed8d4..704f1c8 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.5.1-SNAPSHOT</version>

+    <version>1.6.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/ViewProviderImpl.java b/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/internal/provider/ViewProviderImpl.java
index edc1462..36d4632 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
@@ -24,11 +24,11 @@
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecp.view.internal.ui.Activator;
 import org.eclipse.emf.ecp.view.spi.model.VView;
-import org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport;
 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;
 import org.eclipse.emf.ecp.view.spi.provider.reporting.ViewProviderInitFailedReport;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
 import org.osgi.framework.Bundle;
 
 /**
diff --git a/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/internal/ui/Activator.java b/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/internal/ui/Activator.java
index ad627e3..b47758b 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/internal/ui/Activator.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/internal/ui/Activator.java
@@ -15,7 +15,7 @@
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Plugin;
 import org.eclipse.core.runtime.Status;
-import org.eclipse.emf.ecp.view.spi.model.reporting.ReportService;
+import org.eclipse.emfforms.spi.common.report.ReportService;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
 
diff --git a/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/spi/provider/ECPTooltipModifierHelper.java b/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/spi/provider/ECPTooltipModifierHelper.java
index f94ee36..61649e9 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/spi/provider/ECPTooltipModifierHelper.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/spi/provider/ECPTooltipModifierHelper.java
@@ -17,6 +17,7 @@
 import java.util.Set;
 
 import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionRegistry;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.emf.ecore.EStructuralFeature.Setting;
 import org.eclipse.emf.ecp.view.internal.ui.Activator;
@@ -47,9 +48,13 @@
 	}
 
 	private static void readStringModifiers() {
-		final IConfigurationElement[] controls = Platform.getExtensionRegistry()
+		final IExtensionRegistry extensionRegistry = Platform.getExtensionRegistry();
+		if (extensionRegistry == null) {
+			return;
+		}
+		final IConfigurationElement[] controls = extensionRegistry
 			.getConfigurationElementsFor(
-				EXTENSION_POINT_ID);
+			EXTENSION_POINT_ID);
 		for (final IConfigurationElement e : controls) {
 			try {
 				final String clazz = e.getAttribute(CLASS);
diff --git a/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/spi/provider/reporting/NoViewProviderFoundReport.java b/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/spi/provider/reporting/NoViewProviderFoundReport.java
index 6134add..c7b1d93 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/spi/provider/reporting/NoViewProviderFoundReport.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/spi/provider/reporting/NoViewProviderFoundReport.java
@@ -11,7 +11,7 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.provider.reporting;
 
-import org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
 
 /**
  * Indicates that no view provider could be obtained.
diff --git a/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/spi/provider/reporting/ViewModelIsNullReport.java b/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/spi/provider/reporting/ViewModelIsNullReport.java
index e6f2010..e6a9bbd 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/spi/provider/reporting/ViewModelIsNullReport.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/spi/provider/reporting/ViewModelIsNullReport.java
@@ -11,7 +11,7 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.provider.reporting;
 
-import org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
 
 /**
  * Indicates that a {@link org.eclipse.emf.ecp.view.spi.provider.IViewProvider IViewProvider} has returned {@code null}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/spi/provider/reporting/ViewProviderInitFailedReport.java b/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/spi/provider/reporting/ViewProviderInitFailedReport.java
index 9218aad..c87b215 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/spi/provider/reporting/ViewProviderInitFailedReport.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view/src/org/eclipse/emf/ecp/view/spi/provider/reporting/ViewProviderInitFailedReport.java
@@ -13,7 +13,7 @@
 
 import java.text.MessageFormat;
 
-import org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
 
 /**
  * Indicates that a ViewProvider could not be instantiated.
@@ -38,7 +38,7 @@
 	 *
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport#getMessage()
+	 * @see org.eclipse.emfforms.spi.common.report.AbstractReport#getMessage()
 	 */
 	@Override
 	public String getMessage() {
diff --git a/bundles/org.eclipse.emf.ecp.ui/.gitignore b/bundles/org.eclipse.emf.ecp.ui/.gitignore
index 934e0e0..bf56436 100644
--- a/bundles/org.eclipse.emf.ecp.ui/.gitignore
+++ b/bundles/org.eclipse.emf.ecp.ui/.gitignore
@@ -1,2 +1,3 @@
 /bin
 /target
+/bin/
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 9a4f8b9..95e59bb 100644
--- a/bundles/org.eclipse.emf.ecp.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.internal.ui.Activator
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.emf.ecp.core;bundle-version="[1.5.0,2.0.0)";visibility:=reexport,
@@ -13,33 +13,33 @@
  org.eclipse.emf.ecp.common.ui;bundle-version="[1.5.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.ecp.internal.ui;version="1.5.1";x-frie
+Export-Package: org.eclipse.emf.ecp.internal.ui;version="1.6.0";x-frie
  nds:="org.eclipse.emf.ecp.explorereditorbridge,org.eclipse.emf.ecp.ed
  it.ecore.swt,org.eclipse.emf.ecp.emfstore.ui",org.eclipse.emf.ecp.int
- ernal.ui.composites;version="1.5.1";x-internal:=true,org.eclipse.emf.
- ecp.internal.ui.dialogs;version="1.5.1";x-friends:="org.eclipse.emf.e
+ ernal.ui.composites;version="1.6.0";x-internal:=true,org.eclipse.emf.
+ ecp.internal.ui.dialogs;version="1.6.0";x-friends:="org.eclipse.emf.e
  cp.explorereditorbridge",org.eclipse.emf.ecp.internal.ui.model;versio
- n="1.5.1";x-friends:="org.eclipse.emf.ecp.ui.e4,org.eclipse.emf.ecp.u
+ n="1.6.0";x-friends:="org.eclipse.emf.ecp.ui.e4,org.eclipse.emf.ecp.u
  i.e3,org.eclipse.emf.ecp.ui.transaction",org.eclipse.emf.ecp.internal
- .ui.tester;version="1.5.1",org.eclipse.emf.ecp.internal.ui.util;versi
- on="1.5.1"; x-friends:="org.eclipse.emf.ecp.explorereditorbridge,  or
+ .ui.tester;version="1.6.0",org.eclipse.emf.ecp.internal.ui.util;versi
+ on="1.6.0"; x-friends:="org.eclipse.emf.ecp.explorereditorbridge,  or
  g.eclipse.emf.ecp.ui.e3,  org.eclipse.emf.ecp.ui.e4,  org.eclipse.emf
  .ecp.emfstore.ui.e3,  org.eclipse.emf.ecp.validationvieweditorbridge,
    org.eclipse.emf.ecp.emfstore.ui",org.eclipse.emf.ecp.internal.wizar
- ds;version="1.5.1"; x-friends:="org.eclipse.emf.ecp.edit.ecore.swt,  
+ ds;version="1.6.0"; x-friends:="org.eclipse.emf.ecp.edit.ecore.swt,  
  org.eclipse.emf.ecp.explorereditorbridge,  org.eclipse.emf.ecp.worksp
  ace.ui,  org.eclipse.emf.ecp.view.table.editor,  org.eclipse.emf.ecp.
- emfstore.ui",org.eclipse.emf.ecp.internal.wizards.page;version="1.5.1
+ emfstore.ui",org.eclipse.emf.ecp.internal.wizards.page;version="1.6.0
  ";x-friends:="org.eclipse.emf.ecp.explorereditorbridge",org.eclipse.e
- mf.ecp.spi.ui;version="1.5.1",org.eclipse.emf.ecp.spi.ui.util;version
- ="1.5.1",org.eclipse.emf.ecp.ui;version="1.5.1",org.eclipse.emf.ecp.u
- i.common;version="1.5.1"; x-friends:="org.eclipse.emf.ecp.edit.ecore.
+ mf.ecp.spi.ui;version="1.6.0",org.eclipse.emf.ecp.spi.ui.util;version
+ ="1.6.0",org.eclipse.emf.ecp.ui;version="1.6.0",org.eclipse.emf.ecp.u
+ i.common;version="1.6.0"; x-friends:="org.eclipse.emf.ecp.edit.ecore.
  swt,  org.eclipse.emf.ecp.explorereditorbridge,  org.eclipse.emf.ecp.
  ui.e3,  org.eclipse.emf.ecp.view.table.editor,  org.eclipse.emf.ecp.v
  iew.ui.editor.test,  org.eclipse.emf.ecp.workspace.ui,  org.eclipse.e
- mf.ecp.ui.e4",org.eclipse.emf.ecp.ui.common.dnd;version="1.5.1";x-fri
+ mf.ecp.ui.e4",org.eclipse.emf.ecp.ui.common.dnd;version="1.6.0";x-fri
  ends:="org.eclipse.emf.ecp.ui.view.editor.controls",org.eclipse.emf.e
- cp.ui.util;version="1.5.1"
+ cp.ui.util;version="1.6.0"
 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",
diff --git a/bundles/org.eclipse.emf.ecp.ui/pom.xml b/bundles/org.eclipse.emf.ecp.ui/pom.xml
index 7bc04ae..41e3c1c 100644
--- a/bundles/org.eclipse.emf.ecp.ui/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.ui/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/internal/ui/Messages.java b/bundles/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/internal/ui/Messages.java
index 866091c..52d3008 100644
--- a/bundles/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/internal/ui/Messages.java
+++ b/bundles/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/internal/ui/Messages.java
@@ -1,105 +1,109 @@
-/*******************************************************************************

- * 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 v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- * Eugen Neufeld - initial API and implementation

- *

- *******************************************************************************/

-

-package org.eclipse.emf.ecp.internal.ui;

-

-import org.eclipse.osgi.util.NLS;

-

-/**

- * @author Eugen Neufeld

- * @generated

- */

-public final class Messages extends NLS {

-	private static final String BUNDLE_NAME = "org.eclipse.emf.ecp.ui.messages"; //$NON-NLS-1$

-

-	public static String ActionHelper_ErrorMessage_ElementDeleted;

-	public static String ActionHelper_ErrorTitle_ElementDeleted;

-	public static String AddReferenceModelElementWizard_AddReference;

-

-	public static String AddReferenceModelElementWizard_ReferenceToSet;

-

-	public static String AddReferenceModelElementWizard_SelectEObjectToReference;

-

-	public static String AddRepositoryComposite_RepositoryDescription;

-	public static String AddRepositoryComposite_RepositoryLabel;

-	public static String AddRepositoryComposite_RepositoryName;

-	public static String AddRepositoryComposite_RepositoryProvider;

-	public static String AddRepositoryPage_PageMessage_AddRepository;

-	public static String AddRepositoryPage_PageTitle_AddRepository;

-	public static String AddRepositoryWizard_PageTitle_AddReposditory;

-	public static String AddRepositoryWizard_Title_AddRepository;

-

-	public static String CheckoutProjectComposite_ProjectName;

-	public static String CheckoutProjectWizard_PageMessage_CheckoutFrom;

-	public static String CheckoutProjectWizard_PageMessage_CheckoutProject;

-	public static String CheckoutProjectWizard_PageMessage_CheckoutRepositrory;

-	public static String CheckoutProjectWizard_PageTitle_CheckoutProject;

-	public static String CheckoutProjectWizard_Title_Checkout;

-	public static String CreateProjectWizard_PageMessage_SetProjectName;

-	public static String CreateProjectWizard_PageMessage_SelectProviderAndSetName;

-	public static String CreateProjectWizard_PageTitle_CreateProject;

-	public static String DeleteDialog_DialogTitle;

-	public static String DeleteDialog_Message_AreYouSure;

-	public static String DeleteDialog_Message_element;

-	public static String DeleteDialog_Message_element_plural;

-	public static String DeleteDialog_Title;

-	public static String FilterModelElementWizard_PageDescription_FilterProject;

-	public static String FilterModelElementWizard_PageTitle_FilterProject;

-	public static String FilterModelElementWizard_Title_FilterProject;

-	public static String ModelelementSelectionDialog_DialogMessage_SearchPattern;

-	public static String ModelelementSelectionDialog_DialogTitle;

-	public static String ModelelementSelectionDialog_ProgressMonitor_Searching;

-	public static String NewModelElementWizard_PageDescription_AddModelElement;

-	public static String NewModelElementWizard_PageTitle_AddModelElement;

-	public static String NewModelElementWizard_WizardTitle_AddModelElement;

-	public static String NewModelElementWizardHandler_Title;

-	public static String ProjectPropertiesDialog_DialogTitle_Closed;

-	public static String ProjectPropertiesDialog_DialogTitle;

-	public static String ProjectPropertiesDialog_DialogTitle_Open;

-	public static String ProjectPropertiesDialog_DialogTitle_ProjectIs;

-	public static String ProjectPropertiesDialog_ProjectProvider;

-	public static String ProjectPropertiesDialog_ProjectRepository;

-	public static String PropertiesComposite_AddProperty;

-	public static String PropertiesComposite_EditProperty;

-	public static String PropertiesComposite_RemoveProperty;

-	public static String PropertiesComposite_TableColumnName_Key;

-	public static String PropertiesComposite_TableColumnName_Value;

-	public static String PropertiesDialog_DialogTitle;

-	public static String PropertyDialog_Key;

-	public static String PropertyDialog_Message;

-	public static String PropertyDialog_Title;

-	public static String PropertyDialog_Value;

-	public static String RepositoryPropertiesDialog_DialogTitle;

-	public static String RepositoryPropertiesDialog_RepositoryProvider;

-	public static String SelectEStructuralFeaturesWizard_Title;

-	public static String SelectEStructuralFeaturesWizard_PageTitle;

-	public static String SelectEStructuralFeaturesWizard_PageDescription;

-	public static String SelectOrCreateRepositoryPage_CreateNewRepository;

-	public static String SelectOrCreateRepositoryPage_PageDescription_ExistingOrNewRepository;

-	public static String SelectOrCreateRepositoryPage_PageTitle_ExistingOrNewRepository;

-	public static String SelectOrCreateRepositoryPage_SelectExistingRepository;

-	public static String SelectRepositoryPage_PageDescription_SelectRepository;

-	public static String SelectRepositoryPage_PageTitle_SelectRepository;

-	public static String ShareWizard_Title_Share;

-	public static String TreeContentProvider_ErrorElement_Error;

-	public static String TreeContentProvider_SlowElement_Pending;

-	public static String UICreateProject_ProjectName;

-	public static String UICreateProject_ProjectProvider;

-	static {

-		// initialize resource bundle

-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);

-	}

-

-	private Messages() {

-	}

-}

+/*******************************************************************************
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ *
+ *******************************************************************************/
+
+package org.eclipse.emf.ecp.internal.ui;
+
+import org.eclipse.osgi.util.NLS;
+
+/**
+ * @author Eugen Neufeld
+ * @generated
+ */
+public final class Messages extends NLS {
+	private static final String BUNDLE_NAME = "org.eclipse.emf.ecp.ui.messages"; //$NON-NLS-1$
+
+	public static String ActionHelper_ErrorMessage_ElementDeleted;
+	public static String ActionHelper_ErrorTitle_ElementDeleted;
+	public static String AddReferenceModelElementWizard_AddReference;
+
+	public static String AddReferenceModelElementWizard_ReferenceToSet;
+
+	public static String AddReferenceModelElementWizard_SelectEObjectToReference;
+
+	public static String AddRepositoryComposite_RepositoryDescription;
+	public static String AddRepositoryComposite_RepositoryLabel;
+	public static String AddRepositoryComposite_RepositoryName;
+	public static String AddRepositoryComposite_RepositoryProvider;
+	public static String AddRepositoryPage_PageMessage_AddRepository;
+	public static String AddRepositoryPage_PageTitle_AddRepository;
+	public static String AddRepositoryWizard_PageTitle_AddReposditory;
+	public static String AddRepositoryWizard_Title_AddRepository;
+
+	public static String CheckoutProjectComposite_ProjectName;
+	public static String CheckoutProjectWizard_PageMessage_CheckoutFrom;
+	public static String CheckoutProjectWizard_PageMessage_CheckoutProject;
+	public static String CheckoutProjectWizard_PageMessage_CheckoutRepositrory;
+	public static String CheckoutProjectWizard_PageTitle_CheckoutProject;
+	public static String CheckoutProjectWizard_Title_Checkout;
+	public static String CreateProjectWizard_PageMessage_SetProjectName;
+	public static String CreateProjectWizard_PageMessage_SelectProviderAndSetName;
+	public static String CreateProjectWizard_PageTitle_CreateProject;
+	public static String DefaultUIProvider_Calculating;
+
+	public static String DefaultUIProvider_CantFindInPackageRegistry;
+
+	public static String DeleteDialog_DialogTitle;
+	public static String DeleteDialog_Message_AreYouSure;
+	public static String DeleteDialog_Message_element;
+	public static String DeleteDialog_Message_element_plural;
+	public static String DeleteDialog_Title;
+	public static String FilterModelElementWizard_PageDescription_FilterProject;
+	public static String FilterModelElementWizard_PageTitle_FilterProject;
+	public static String FilterModelElementWizard_Title_FilterProject;
+	public static String ModelelementSelectionDialog_DialogMessage_SearchPattern;
+	public static String ModelelementSelectionDialog_DialogTitle;
+	public static String ModelelementSelectionDialog_ProgressMonitor_Searching;
+	public static String NewModelElementWizard_PageDescription_AddModelElement;
+	public static String NewModelElementWizard_PageTitle_AddModelElement;
+	public static String NewModelElementWizard_WizardTitle_AddModelElement;
+	public static String NewModelElementWizardHandler_Title;
+	public static String ProjectPropertiesDialog_DialogTitle_Closed;
+	public static String ProjectPropertiesDialog_DialogTitle;
+	public static String ProjectPropertiesDialog_DialogTitle_Open;
+	public static String ProjectPropertiesDialog_DialogTitle_ProjectIs;
+	public static String ProjectPropertiesDialog_ProjectProvider;
+	public static String ProjectPropertiesDialog_ProjectRepository;
+	public static String PropertiesComposite_AddProperty;
+	public static String PropertiesComposite_EditProperty;
+	public static String PropertiesComposite_RemoveProperty;
+	public static String PropertiesComposite_TableColumnName_Key;
+	public static String PropertiesComposite_TableColumnName_Value;
+	public static String PropertiesDialog_DialogTitle;
+	public static String PropertyDialog_Key;
+	public static String PropertyDialog_Message;
+	public static String PropertyDialog_Title;
+	public static String PropertyDialog_Value;
+	public static String RepositoryPropertiesDialog_DialogTitle;
+	public static String RepositoryPropertiesDialog_RepositoryProvider;
+	public static String SelectEStructuralFeaturesWizard_Title;
+	public static String SelectEStructuralFeaturesWizard_PageTitle;
+	public static String SelectEStructuralFeaturesWizard_PageDescription;
+	public static String SelectOrCreateRepositoryPage_CreateNewRepository;
+	public static String SelectOrCreateRepositoryPage_PageDescription_ExistingOrNewRepository;
+	public static String SelectOrCreateRepositoryPage_PageTitle_ExistingOrNewRepository;
+	public static String SelectOrCreateRepositoryPage_SelectExistingRepository;
+	public static String SelectRepositoryPage_PageDescription_SelectRepository;
+	public static String SelectRepositoryPage_PageTitle_SelectRepository;
+	public static String ShareWizard_Title_Share;
+	public static String TreeContentProvider_ErrorElement_Error;
+	public static String TreeContentProvider_SlowElement_Pending;
+	public static String UICreateProject_ProjectName;
+	public static String UICreateProject_ProjectProvider;
+	static {
+		// initialize resource bundle
+		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+	}
+
+	private Messages() {
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/internal/ui/model/ProvidersLabelProvider.java b/bundles/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/internal/ui/model/ProvidersLabelProvider.java
index 3b943fb..f076494 100644
--- a/bundles/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/internal/ui/model/ProvidersLabelProvider.java
+++ b/bundles/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/internal/ui/model/ProvidersLabelProvider.java
@@ -12,6 +12,7 @@
 package org.eclipse.emf.ecp.internal.ui.model;

 

 import org.eclipse.emf.ecp.core.ECPProvider;

+import org.eclipse.emf.ecp.core.util.ECPUtil;

 import org.eclipse.emf.ecp.internal.core.ECPProviderRegistryImpl;

 import org.eclipse.emf.ecp.internal.core.util.ElementDescriptor;

 import org.eclipse.emf.ecp.internal.ui.Activator;

@@ -29,7 +30,7 @@
  * @author Eike Stepper

  */

 public class ProvidersLabelProvider extends ECPLabelProvider implements IColorProvider,

-	ResolveListener<InternalProvider> {

+ResolveListener<InternalProvider> {

 	private static final Image PROVIDER = Activator.getImage("icons/provider.gif"); //$NON-NLS-1$

 

 	private static final Image PROVIDER_DISABLED = Activator.getImage("icons/provider_disabled.gif"); //$NON-NLS-1$

@@ -38,12 +39,12 @@
 

 	public ProvidersLabelProvider() {

 		super(null);

-		ECPProviderRegistryImpl.INSTANCE.addResolveListener(this);

+		((ECPProviderRegistryImpl) ECPUtil.getECPProviderRegistry()).addResolveListener(this);

 	}

 

 	@Override

 	public void dispose() {

-		ECPProviderRegistryImpl.INSTANCE.removeResolveListener(this);

+		((ECPProviderRegistryImpl) ECPUtil.getECPProviderRegistry()).removeResolveListener(this);

 		super.dispose();

 	}

 

diff --git a/bundles/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/internal/ui/util/ECPExportHandlerHelper.java b/bundles/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/internal/ui/util/ECPExportHandlerHelper.java
index 0ec3b42..edcd342 100644
--- a/bundles/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/internal/ui/util/ECPExportHandlerHelper.java
+++ b/bundles/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/internal/ui/util/ECPExportHandlerHelper.java
@@ -14,7 +14,6 @@
 
 import java.io.File;
 import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
 import java.util.List;
 
 import org.eclipse.emf.common.notify.AdapterFactory;
@@ -32,6 +31,9 @@
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.dialogs.ProgressMonitorDialog;
 import org.eclipse.swt.widgets.Shell;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
 
 /**
  * A utility class which provides support for exporting model elements.
@@ -60,8 +62,6 @@
 
 	private static final String EXPORT_MODEL_PATH = "org.eclipse.emf.emfstore.client.ui.exportModelPath"; //$NON-NLS-1$
 
-	private static final String FILE_DIALOG_HELPER_CLASS = "org.eclipse.emf.ecp.internal.ui.util.ECPFileDialogHelperImpl"; //$NON-NLS-1$
-
 	/**
 	 * Export a list of model elements.
 	 *
@@ -142,27 +142,13 @@
 	}
 
 	private static String getFilePathByFileDialog(Shell shell, String modelElementName) {
-		try {
-			final Class<ECPFileDialogHelper> clazz = HandlerHelperUtil.loadClass(Activator.PLUGIN_ID,
-				FILE_DIALOG_HELPER_CLASS);
-			final ECPFileDialogHelper fileDialogHelper = clazz.getConstructor().newInstance();
-			return fileDialogHelper.getPathForExport(shell, modelElementName);
-		} catch (final ClassNotFoundException ex) {
-			Activator.log(ex);
-		} catch (final InstantiationException ex) {
-			Activator.log(ex);
-		} catch (final IllegalAccessException ex) {
-			Activator.log(ex);
-		} catch (final IllegalArgumentException ex) {
-			Activator.log(ex);
-		} catch (final InvocationTargetException ex) {
-			Activator.log(ex);
-		} catch (final NoSuchMethodException ex) {
-			Activator.log(ex);
-		} catch (final SecurityException ex) {
-			Activator.log(ex);
-		}
-		return null;
+		final BundleContext bundleContext = FrameworkUtil.getBundle(ECPExportHandlerHelper.class).getBundleContext();
+		final ServiceReference<ECPFileDialogHelper> serviceReference = bundleContext
+			.getServiceReference(ECPFileDialogHelper.class);
+		final ECPFileDialogHelper fileDialogHelper = bundleContext.getService(serviceReference);
+		final String result = fileDialogHelper.getPathForExport(shell, modelElementName);
+		bundleContext.ungetService(serviceReference);
+		return result;
 	}
 
 	/**
diff --git a/bundles/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/internal/ui/util/ECPImportHandlerHelper.java b/bundles/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/internal/ui/util/ECPImportHandlerHelper.java
index c91b0cf..19a34e3 100644
--- a/bundles/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/internal/ui/util/ECPImportHandlerHelper.java
+++ b/bundles/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/internal/ui/util/ECPImportHandlerHelper.java
@@ -12,8 +12,6 @@
  *******************************************************************************/
 package org.eclipse.emf.ecp.internal.ui.util;
 
-import java.lang.reflect.InvocationTargetException;
-
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EReference;
@@ -31,6 +29,9 @@
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.dialogs.ProgressMonitorDialog;
 import org.eclipse.swt.widgets.Shell;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
 
 /**
  * A utility class which provides support for importing {@link EObject}s.
@@ -53,8 +54,6 @@
 	 */
 	public static final String[] FILTER_NAMES = { "Model Files (*.xmi)" }; //$NON-NLS-1$
 
-	private static final String FILE_DIALOG_HELPER_CLASS = "org.eclipse.emf.ecp.internal.ui.util.ECPFileDialogHelperImpl"; //$NON-NLS-1$
-
 	private static boolean imported;
 
 	/**
@@ -219,26 +218,12 @@
 	// }
 
 	private static String getFileName(Shell shell) {
-		try {
-			final Class<ECPFileDialogHelper> clazz = HandlerHelperUtil.loadClass(Activator.PLUGIN_ID,
-				FILE_DIALOG_HELPER_CLASS);
-			final ECPFileDialogHelper fileDialogHelper = clazz.getConstructor().newInstance();
-			return fileDialogHelper.getPathForImport(shell);
-		} catch (final ClassNotFoundException ex) {
-			Activator.log(ex);
-		} catch (final InstantiationException ex) {
-			Activator.log(ex);
-		} catch (final IllegalAccessException ex) {
-			Activator.log(ex);
-		} catch (final IllegalArgumentException ex) {
-			Activator.log(ex);
-		} catch (final InvocationTargetException ex) {
-			Activator.log(ex);
-		} catch (final NoSuchMethodException ex) {
-			Activator.log(ex);
-		} catch (final SecurityException ex) {
-			Activator.log(ex);
-		}
-		return null;
+		final BundleContext bundleContext = FrameworkUtil.getBundle(ECPExportHandlerHelper.class).getBundleContext();
+		final ServiceReference<ECPFileDialogHelper> serviceReference = bundleContext
+			.getServiceReference(ECPFileDialogHelper.class);
+		final ECPFileDialogHelper fileDialogHelper = bundleContext.getService(serviceReference);
+		final String result = fileDialogHelper.getPathForImport(shell);
+		bundleContext.ungetService(serviceReference);
+		return result;
 	}
 }
diff --git a/bundles/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/spi/ui/DefaultUIProvider.java b/bundles/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/spi/ui/DefaultUIProvider.java
index 41564c8..2593834 100644
--- a/bundles/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/spi/ui/DefaultUIProvider.java
+++ b/bundles/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/spi/ui/DefaultUIProvider.java
@@ -41,6 +41,7 @@
 import org.eclipse.emf.ecp.internal.core.util.Disposable;
 import org.eclipse.emf.ecp.internal.core.util.Element;
 import org.eclipse.emf.ecp.internal.ui.Activator;
+import org.eclipse.emf.ecp.internal.ui.Messages;
 import org.eclipse.emf.ecp.internal.ui.composites.PropertiesComposite;
 import org.eclipse.emf.ecp.spi.core.InternalProvider;
 import org.eclipse.emf.ecp.spi.ui.util.ECPHandlerHelper;
@@ -94,7 +95,7 @@
 	public DefaultUIProvider(String name) {
 		super(name);
 		label = name;
-		description = "";
+		description = ""; //$NON-NLS-1$
 	}
 
 	/** {@inheritDoc} **/
@@ -184,6 +185,9 @@
 		disposable.removeDisposeListener(listener);
 	}
 
+	/**
+	 * Subclasses can override.
+	 */
 	protected void doDispose() {
 		// Subclasses can override.
 	}
@@ -321,13 +325,15 @@
 
 	/** {@inheritDoc} **/
 	@Override
-	public Control createCheckoutUI(Composite parent, ECPCheckoutSource checkoutSource, ECPProperties projectProperties) {
+	public Control createCheckoutUI(Composite parent, ECPCheckoutSource checkoutSource,
+		ECPProperties projectProperties) {
 		return new PropertiesComposite(parent, true, projectProperties);
 	}
 
 	/** {@inheritDoc} **/
 	@Override
-	public Control createNewProjectUI(Composite parent, CompositeStateObserver observer, ECPProperties projectProperties) {
+	public Control createNewProjectUI(Composite parent, CompositeStateObserver observer,
+		ECPProperties projectProperties) {
 		return null;
 	}
 
@@ -359,7 +365,7 @@
 		final ImageDescriptor imageDescriptor = Activator.getImageDescriptor(UNKNOWN_PACKAGE_ICON);
 		final MenuManager submenuManager = new MenuManager(nsURI, imageDescriptor, nsURI);
 		submenuManager.setRemoveAllWhenShown(true);
-		submenuManager.add(new Action("Calculating...") {
+		submenuManager.add(new Action(Messages.DefaultUIProvider_Calculating) {
 		});
 
 		submenuManager.addMenuListener(new IMenuListener() {
@@ -371,7 +377,7 @@
 				if (ePackage != null) {
 					populateSubMenu(resource, ePackage, submenuManager);
 				} else {
-					Activator.log(MessageFormat.format("Can't find {0} in package registry", nsURI));
+					Activator.log(MessageFormat.format(Messages.DefaultUIProvider_CantFindInPackageRegistry, nsURI));
 				}
 			}
 		});
diff --git a/bundles/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/spi/ui/ECPDeleteServiceImpl.java b/bundles/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/spi/ui/ECPDeleteServiceImpl.java
new file mode 100644
index 0000000..a9e1196
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/spi/ui/ECPDeleteServiceImpl.java
@@ -0,0 +1,94 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.spi.ui;
+
+import java.util.Collection;
+import java.util.Collections;
+
+import org.eclipse.emf.ecp.core.ECPProject;
+import org.eclipse.emf.ecp.core.util.ECPUtil;
+import org.eclipse.emf.ecp.edit.spi.DeleteService;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+
+/**
+ * ECP specific implementation of the {@link org.eclipse.emf.ecp.edit.spi.DeleteService DeleteService}.
+ *
+ * @author jfaltermeier
+ * @since 1.6
+ *
+ */
+public class ECPDeleteServiceImpl implements DeleteService {
+
+	private ECPProject ecpProject;
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelService#instantiate(org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
+	 */
+	@Override
+	public void instantiate(ViewModelContext context) {
+		ecpProject = ECPUtil.getECPProjectManager().getProject(context.getDomainModel());
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelService#dispose()
+	 */
+	@Override
+	public void dispose() {
+		ecpProject = null;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelService#getPriority()
+	 */
+	@Override
+	public int getPriority() {
+		return 0;
+	}
+
+	/**
+	 *
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.edit.spi.EMFDeleteServiceImpl#deleteElements(java.util.Collection)
+	 */
+	@Override
+	public void deleteElements(Collection<Object> toDelete) {
+		getECPProject().deleteElements(toDelete);
+	}
+
+	/**
+	 *
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.edit.spi.EMFDeleteServiceImpl#deleteElement(java.lang.Object)
+	 */
+	@Override
+	public void deleteElement(Object toDelete) {
+		getECPProject().deleteElements(Collections.singleton(toDelete));
+	}
+
+	/**
+	 * Returns the ECPProject.
+	 *
+	 * @return the project
+	 */
+	ECPProject getECPProject() {
+		return ecpProject;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/ui/messages.properties b/bundles/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/ui/messages.properties
index ef35b35..ca985ac 100644
--- a/bundles/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/ui/messages.properties
+++ b/bundles/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/ui/messages.properties
@@ -1,71 +1,73 @@
-

-ActionHelper_ErrorMessage_ElementDeleted=The model element you are trying to open was deleted\!

-ActionHelper_ErrorTitle_ElementDeleted=The element was deleted

-AddReferenceModelElementWizard_AddReference=Add Reference

-AddReferenceModelElementWizard_ReferenceToSet=Reference to set

-AddReferenceModelElementWizard_SelectEObjectToReference=Select the EObject to set as the reference.

-AddRepositoryComposite_RepositoryDescription=Description:

-AddRepositoryComposite_RepositoryLabel=Label:

-AddRepositoryComposite_RepositoryName=Name:

-AddRepositoryComposite_RepositoryProvider=Provider:

-AddRepositoryPage_PageMessage_AddRepository=Select a provider and configure the new repository.

-AddRepositoryPage_PageTitle_AddRepository=Add Repository

-AddRepositoryWizard_PageTitle_AddReposditory=AddRepository

-AddRepositoryWizard_Title_AddRepository=ECPRepository Wizard

-

-CheckoutProjectComposite_ProjectName=Project name:

-CheckoutProjectWizard_PageMessage_CheckoutFrom=\ from 

-CheckoutProjectWizard_PageMessage_CheckoutProject=Checkout 

-CheckoutProjectWizard_PageMessage_CheckoutRepositrory=Checkout 

-CheckoutProjectWizard_PageTitle_CheckoutProject=Checkout

-CheckoutProjectWizard_Title_Checkout=Checkout

-CreateProjectWizard_PageMessage_SetProjectName=Set the project name.

-CreateProjectWizard_PageMessage_SelectProviderAndSetName=Select a provider and set the project name.

-CreateProjectWizard_PageTitle_CreateProject=Create Project

-DeleteDialog_DialogTitle=Delete

-DeleteDialog_Message_AreYouSure=Are you sure you want to delete 

-DeleteDialog_Message_element=\ element

-DeleteDialog_Message_element_plural=s

-DeleteDialog_Title=Delete

-FilterModelElementWizard_PageDescription_FilterProject=Select the packages that should be suggested when creating new model elements.

-FilterModelElementWizard_PageTitle_FilterProject=Select EPacakges and EClasses

-FilterModelElementWizard_Title_FilterProject=Filter

-ModelelementSelectionDialog_DialogMessage_SearchPattern=Enter model element name prefix or pattern (e.g. *Trun?)

-ModelelementSelectionDialog_DialogTitle=Search Model Element

-ModelelementSelectionDialog_ProgressMonitor_Searching=Searching

-NewModelElementWizard_PageDescription_AddModelElement=Select model element type

-NewModelElementWizard_PageTitle_AddModelElement=Add new model element

-NewModelElementWizard_WizardTitle_AddModelElement=Add new model element

-NewModelElementWizardHandler_Title=Add new model element

-ProjectPropertiesDialog_DialogTitle=Project Properties

-ProjectPropertiesDialog_DialogTitle_Closed=closed

-ProjectPropertiesDialog_DialogTitle_Open=open

-ProjectPropertiesDialog_DialogTitle_ProjectIs=The project is 

-ProjectPropertiesDialog_ProjectProvider=Provider:

-ProjectPropertiesDialog_ProjectRepository=Repository:

-PropertiesComposite_AddProperty=&Add...

-PropertiesComposite_EditProperty=Edit...

-PropertiesComposite_RemoveProperty=&Remove

-PropertiesComposite_TableColumnName_Key=Key

-PropertiesComposite_TableColumnName_Value=Value

-PropertiesDialog_DialogTitle=Properties

-PropertyDialog_Key=Key:

-PropertyDialog_Message=Message

-PropertyDialog_Title=Title

-PropertyDialog_Value=Value:

-RepositoryPropertiesDialog_DialogTitle=Repository Properties

-RepositoryPropertiesDialog_RepositoryProvider=Provider:

-SelectEStructuralFeaturesWizard_Title=Filter

-SelectEStructuralFeaturesWizard_PageTitle=Select Features

-SelectEStructuralFeaturesWizard_PageDescription=Select the Features to be used.

-SelectOrCreateRepositoryPage_CreateNewRepository=Create new repository

-SelectOrCreateRepositoryPage_PageDescription_ExistingOrNewRepository=Please select whether you want to create or use an existing ECPRepository.

-SelectOrCreateRepositoryPage_PageTitle_ExistingOrNewRepository=Create or use existing ECPRepository

-SelectOrCreateRepositoryPage_SelectExistingRepository=Select existing repository

-SelectRepositoryPage_PageDescription_SelectRepository=Please select an existing ECPRepository to use.

-SelectRepositoryPage_PageTitle_SelectRepository=Select an existing ECPRepository

-ShareWizard_Title_Share=ECPRepository Wizard

-TreeContentProvider_ErrorElement_Error=Error

-TreeContentProvider_SlowElement_Pending=Pending...

-UICreateProject_ProjectName=Project Name

-UICreateProject_ProjectProvider=Provider

+
+ActionHelper_ErrorMessage_ElementDeleted=The model element you are trying to open was deleted\!
+ActionHelper_ErrorTitle_ElementDeleted=The element was deleted
+AddReferenceModelElementWizard_AddReference=Add Reference
+AddReferenceModelElementWizard_ReferenceToSet=Reference to set
+AddReferenceModelElementWizard_SelectEObjectToReference=Select the EObject to set as the reference.
+AddRepositoryComposite_RepositoryDescription=Description:
+AddRepositoryComposite_RepositoryLabel=Label:
+AddRepositoryComposite_RepositoryName=Name:
+AddRepositoryComposite_RepositoryProvider=Provider:
+AddRepositoryPage_PageMessage_AddRepository=Select a provider and configure the new repository.
+AddRepositoryPage_PageTitle_AddRepository=Add Repository
+AddRepositoryWizard_PageTitle_AddReposditory=AddRepository
+AddRepositoryWizard_Title_AddRepository=ECPRepository Wizard
+
+CheckoutProjectComposite_ProjectName=Project name:
+CheckoutProjectWizard_PageMessage_CheckoutFrom=\ from 
+CheckoutProjectWizard_PageMessage_CheckoutProject=Checkout 
+CheckoutProjectWizard_PageMessage_CheckoutRepositrory=Checkout 
+CheckoutProjectWizard_PageTitle_CheckoutProject=Checkout
+CheckoutProjectWizard_Title_Checkout=Checkout
+CreateProjectWizard_PageMessage_SetProjectName=Set the project name.
+CreateProjectWizard_PageMessage_SelectProviderAndSetName=Select a provider and set the project name.
+CreateProjectWizard_PageTitle_CreateProject=Create Project
+DefaultUIProvider_Calculating=Calculating...
+DefaultUIProvider_CantFindInPackageRegistry=Can't find {0} in package registry
+DeleteDialog_DialogTitle=Delete
+DeleteDialog_Message_AreYouSure=Are you sure you want to delete 
+DeleteDialog_Message_element=\ element
+DeleteDialog_Message_element_plural=s
+DeleteDialog_Title=Delete
+FilterModelElementWizard_PageDescription_FilterProject=Select the packages that should be suggested when creating new model elements.
+FilterModelElementWizard_PageTitle_FilterProject=Select EPacakges and EClasses
+FilterModelElementWizard_Title_FilterProject=Filter
+ModelelementSelectionDialog_DialogMessage_SearchPattern=Enter model element name prefix or pattern (e.g. *Trun?)
+ModelelementSelectionDialog_DialogTitle=Search Model Element
+ModelelementSelectionDialog_ProgressMonitor_Searching=Searching
+NewModelElementWizard_PageDescription_AddModelElement=Select model element type
+NewModelElementWizard_PageTitle_AddModelElement=Add new model element
+NewModelElementWizard_WizardTitle_AddModelElement=Add new model element
+NewModelElementWizardHandler_Title=Add new model element
+ProjectPropertiesDialog_DialogTitle=Project Properties
+ProjectPropertiesDialog_DialogTitle_Closed=closed
+ProjectPropertiesDialog_DialogTitle_Open=open
+ProjectPropertiesDialog_DialogTitle_ProjectIs=The project is 
+ProjectPropertiesDialog_ProjectProvider=Provider:
+ProjectPropertiesDialog_ProjectRepository=Repository:
+PropertiesComposite_AddProperty=&Add...
+PropertiesComposite_EditProperty=Edit...
+PropertiesComposite_RemoveProperty=&Remove
+PropertiesComposite_TableColumnName_Key=Key
+PropertiesComposite_TableColumnName_Value=Value
+PropertiesDialog_DialogTitle=Properties
+PropertyDialog_Key=Key:
+PropertyDialog_Message=Message
+PropertyDialog_Title=Title
+PropertyDialog_Value=Value:
+RepositoryPropertiesDialog_DialogTitle=Repository Properties
+RepositoryPropertiesDialog_RepositoryProvider=Provider:
+SelectEStructuralFeaturesWizard_Title=Filter
+SelectEStructuralFeaturesWizard_PageTitle=Select Features
+SelectEStructuralFeaturesWizard_PageDescription=Select the Features to be used.
+SelectOrCreateRepositoryPage_CreateNewRepository=Create new repository
+SelectOrCreateRepositoryPage_PageDescription_ExistingOrNewRepository=Please select whether you want to create or use an existing ECPRepository.
+SelectOrCreateRepositoryPage_PageTitle_ExistingOrNewRepository=Create or use existing ECPRepository
+SelectOrCreateRepositoryPage_SelectExistingRepository=Select existing repository
+SelectRepositoryPage_PageDescription_SelectRepository=Please select an existing ECPRepository to use.
+SelectRepositoryPage_PageTitle_SelectRepository=Select an existing ECPRepository
+ShareWizard_Title_Share=ECPRepository Wizard
+TreeContentProvider_ErrorElement_Error=Error
+TreeContentProvider_SlowElement_Pending=Pending...
+UICreateProject_ProjectName=Project Name
+UICreateProject_ProjectProvider=Provider
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 84a9839..b3f3993 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,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Validation Connector Plugin
 Bundle-SymbolicName: org.eclipse.emf.ecp.validation.connector;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.validation.connector.Activator
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.emf.ecp.validation;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.ui;bundle-version="[1.5.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emf.ecp.validation.connector;version="1.5.
- 1";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.validation.connector;version="1.6.
+ 0";x-internal:=true
 Import-Package: org.eclipse.jface.resource;version="0.0.0",
  org.eclipse.jface.viewers;version="0.0.0",
  org.eclipse.swt.graphics;version="0.0.0"
diff --git a/bundles/org.eclipse.emf.ecp.validation.connector/pom.xml b/bundles/org.eclipse.emf.ecp.validation.connector/pom.xml
index 9f5e366..67c87dd 100644
--- a/bundles/org.eclipse.emf.ecp.validation.connector/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.validation.connector/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
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 6b03523..ef8ddc4 100644
--- a/bundles/org.eclipse.emf.ecp.validation/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.validation/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Validation Service
 Bundle-SymbolicName: org.eclipse.emf.ecp.validation;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 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.5.0,2.0.0)",
  org.eclipse.emf.ecp.common;bundle-version="[1.5.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.ecp.internal.validation;version="1.5.1
- ";x-internal:=true,org.eclipse.emf.ecp.validation.api;version="1.5.1"
+Export-Package: org.eclipse.emf.ecp.internal.validation;version="1.6.0
+ ";x-internal:=true,org.eclipse.emf.ecp.validation.api;version="1.6.0"
  ;x-friends:="org.eclipse.emf.ecp.validation.connector"
 Service-Component: OSGI-INF/validationService.xml
 Bundle-Vendor: Eclipse Modeling Project
diff --git a/bundles/org.eclipse.emf.ecp.validation/pom.xml b/bundles/org.eclipse.emf.ecp.validation/pom.xml
index 2f3874f..e9894a6 100644
--- a/bundles/org.eclipse.emf.ecp.validation/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.validation/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.validationvieweditorbridge/.gitignore b/bundles/org.eclipse.emf.ecp.validationvieweditorbridge/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.validationvieweditorbridge/.gitignore
@@ -0,0 +1 @@
+/bin/
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 7b1c580..3bc6b35 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: Eclipse Modeling Project
 Import-Package: org.eclipse.jface.viewers;version="0.0.0"
 Export-Package: org.eclipse.emf.ecp.internal.validationvieweditorbridg
- e;version="1.5.1";x-internal:=true
+ e;version="1.6.0";x-internal:=true
 Require-Bundle: org.eclipse.emf.ecp.ui;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.ui.validation;bundle-version="[1.5.0,2.0.0)"
diff --git a/bundles/org.eclipse.emf.ecp.validationvieweditorbridge/pom.xml b/bundles/org.eclipse.emf.ecp.validationvieweditorbridge/pom.xml
index aed1e7b..fb2bd54 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/.gitignore b/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/.settings/.api_filters
index a592d22..b507373 100644
--- a/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/.settings/.api_filters
@@ -1,10 +1,34 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.emf.ecp.view.categorization.model.edit" version="2">
     <resource path="META-INF/MANIFEST.MF">
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.vertical.model"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.categorization.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.categorization.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.categorization.model.edit_1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
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 ed90360..8c73038 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,14 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.categorization.model.edit;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.spi.categorization.model.provider.CategorizationEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.ecp.view.spi.categorization.model.prov
- ider;version="1.5.1"
+Export-Package: org.eclipse.emf.ecp.view.spi.categorization.model.provider;version="1.6.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.5.0,2.0.0)";visibility:=reexport,
  org.eclipse.emf.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
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 d0c03ec..cf43dfc 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.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.0-SNAPSHOT</version>

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/src/org/eclipse/emf/ecp/view/spi/categorization/model/provider/AbstractCategorizationItemProvider.java b/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/src/org/eclipse/emf/ecp/view/spi/categorization/model/provider/AbstractCategorizationItemProvider.java
index d804266..84f6618 100644
--- a/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/src/org/eclipse/emf/ecp/view/spi/categorization/model/provider/AbstractCategorizationItemProvider.java
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/src/org/eclipse/emf/ecp/view/spi/categorization/model/provider/AbstractCategorizationItemProvider.java
@@ -20,12 +20,9 @@
 import org.eclipse.emf.ecp.view.spi.categorization.model.VAbstractCategorization;
 import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationFactory;
 import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emf.ecp.view.spi.model.VElementUtil;
 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.ViewerNotification;
 
 /**
@@ -38,12 +35,6 @@
  */
 public class AbstractCategorizationItemProvider
 	extends CategorizableElementItemProvider
-	implements
-	IEditingDomainItemProvider,
-	IStructuredItemContentProvider,
-	ITreeItemContentProvider,
-	IItemLabelProvider,
-	IItemPropertySource
 {
 	/**
 	 * This constructs an instance from a factory and a notifier.
@@ -115,12 +106,15 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 *
-	 * @generated
+	 * @generated NOT
 	 */
 	@Override
 	public String getText(Object object)
 	{
-		final String label = ((VAbstractCategorization) object).getName();
+		String label = ((VAbstractCategorization) object).getLabel();
+		if (label == null) {
+			label = VElementUtil.getCleanName(VElement.class.cast(object));
+		}
 		return label == null || label.length() == 0 ?
 			getString("_UI_AbstractCategorization_type") : //$NON-NLS-1$
 			getString("_UI_AbstractCategorization_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/src/org/eclipse/emf/ecp/view/spi/categorization/model/provider/CategorizableElementItemProvider.java b/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/src/org/eclipse/emf/ecp/view/spi/categorization/model/provider/CategorizableElementItemProvider.java
index 4aeceda..7c5fc2c 100644
--- a/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/src/org/eclipse/emf/ecp/view/spi/categorization/model/provider/CategorizableElementItemProvider.java
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/src/org/eclipse/emf/ecp/view/spi/categorization/model/provider/CategorizableElementItemProvider.java
@@ -18,14 +18,11 @@
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizableElement;
 import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emf.ecp.view.spi.model.VElementUtil;
 import org.eclipse.emf.ecp.view.spi.model.provider.ElementItemProvider;
 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.ViewerNotification;
 
 /**
@@ -38,12 +35,6 @@
  */
 public class CategorizableElementItemProvider
 	extends ElementItemProvider
-	implements
-	IEditingDomainItemProvider,
-	IStructuredItemContentProvider,
-	ITreeItemContentProvider,
-	IItemLabelProvider,
-	IItemPropertySource
 {
 	/**
 	 * This constructs an instance from a factory and a notifier.
@@ -107,12 +98,15 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 *
-	 * @generated
+	 * @generated NOT
 	 */
 	@Override
 	public String getText(Object object)
 	{
-		final String label = ((VCategorizableElement) object).getName();
+		String label = ((VCategorizableElement) object).getLabel();
+		if (label == null) {
+			label = VElementUtil.getCleanName(VElement.class.cast(object));
+		}
 		return label == null || label.length() == 0 ?
 			getString("_UI_CategorizableElement_type") : //$NON-NLS-1$
 			getString("_UI_CategorizableElement_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/src/org/eclipse/emf/ecp/view/spi/categorization/model/provider/CategorizationElementItemProvider.java b/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/src/org/eclipse/emf/ecp/view/spi/categorization/model/provider/CategorizationElementItemProvider.java
index 92418ed..0e140e5 100644
--- a/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/src/org/eclipse/emf/ecp/view/spi/categorization/model/provider/CategorizationElementItemProvider.java
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/src/org/eclipse/emf/ecp/view/spi/categorization/model/provider/CategorizationElementItemProvider.java
@@ -23,14 +23,12 @@
 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.VCategorizationPackage;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emf.ecp.view.spi.model.VElementUtil;
 import org.eclipse.emf.ecp.view.spi.model.provider.ContainedElementItemProvider;
 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.ViewerNotification;
 
@@ -44,12 +42,6 @@
  */
 public class CategorizationElementItemProvider
 	extends ContainedElementItemProvider
-	implements
-	IEditingDomainItemProvider,
-	IStructuredItemContentProvider,
-	ITreeItemContentProvider,
-	IItemLabelProvider,
-	IItemPropertySource
 {
 	/**
 	 * This constructs an instance from a factory and a notifier.
@@ -166,7 +158,10 @@
 	@Override
 	public String getText(Object object)
 	{
-		final String label = ((VCategorizationElement) object).getName();
+		String label = ((VCategorizationElement) object).getLabel();
+		if (label == null) {
+			label = VElementUtil.getCleanName(VElement.class.cast(object));
+		}
 		return label == null || label.length() == 0 ?
 			getString("_UI_CategorizationElement_type") : label; //$NON-NLS-1$
 	}
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/src/org/eclipse/emf/ecp/view/spi/categorization/model/provider/CategorizationItemProvider.java b/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/src/org/eclipse/emf/ecp/view/spi/categorization/model/provider/CategorizationItemProvider.java
index 54db9cd..039db34 100644
--- a/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/src/org/eclipse/emf/ecp/view/spi/categorization/model/provider/CategorizationItemProvider.java
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/src/org/eclipse/emf/ecp/view/spi/categorization/model/provider/CategorizationItemProvider.java
@@ -20,12 +20,10 @@
 import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorization;
 import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationFactory;
 import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emf.ecp.view.spi.model.VElementUtil;
 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.ViewerNotification;
 
 /**
@@ -38,12 +36,6 @@
  */
 public class CategorizationItemProvider
 	extends AbstractCategorizationItemProvider
-	implements
-	IEditingDomainItemProvider,
-	IStructuredItemContentProvider,
-	ITreeItemContentProvider,
-	IItemLabelProvider,
-	IItemPropertySource
 {
 	/**
 	 * This constructs an instance from a factory and a notifier.
@@ -133,7 +125,10 @@
 	@Override
 	public String getText(Object object)
 	{
-		final String label = ((VCategorization) object).getName();
+		String label = ((VCategorization) object).getLabel();
+		if (label == null) {
+			label = VElementUtil.getCleanName(VElement.class.cast(object));
+		}
 		return label == null || label.length() == 0 ?
 			getString("_UI_Categorization_type") : label; //$NON-NLS-1$
 	}
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/src/org/eclipse/emf/ecp/view/spi/categorization/model/provider/CategoryItemProvider.java b/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/src/org/eclipse/emf/ecp/view/spi/categorization/model/provider/CategoryItemProvider.java
index d2b264b..a60f464 100644
--- a/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/src/org/eclipse/emf/ecp/view/spi/categorization/model/provider/CategoryItemProvider.java
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/src/org/eclipse/emf/ecp/view/spi/categorization/model/provider/CategoryItemProvider.java
@@ -21,14 +21,11 @@
 import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage;
 import org.eclipse.emf.ecp.view.spi.categorization.model.VCategory;
 import org.eclipse.emf.ecp.view.spi.horizontal.model.VHorizontalFactory;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emf.ecp.view.spi.model.VElementUtil;
 import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
 import org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalFactory;
-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.ViewerNotification;
 
 /**
@@ -40,12 +37,6 @@
  */
 public class CategoryItemProvider
 	extends AbstractCategorizationItemProvider
-	implements
-	IEditingDomainItemProvider,
-	IStructuredItemContentProvider,
-	ITreeItemContentProvider,
-	IItemLabelProvider,
-	IItemPropertySource
 {
 	/**
 	 * This constructs an instance from a factory and a notifier.
@@ -135,7 +126,10 @@
 	@Override
 	public String getText(Object object)
 	{
-		final String label = ((VCategory) object).getName();
+		String label = ((VCategory) object).getLabel();
+		if (label == null) {
+			label = VElementUtil.getCleanName(VElement.class.cast(object));
+		}
 		return label == null || label.length() == 0 ?
 			getString("_UI_Category_type") : label; //$NON-NLS-1$
 	}
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.model/.gitignore b/bundles/org.eclipse.emf.ecp.view.categorization.model/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.model/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.model/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.categorization.model/.settings/.api_filters
index c3bcaef..e3d694d 100644
--- a/bundles/org.eclipse.emf.ecp.view.categorization.model/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.model/.settings/.api_filters
@@ -1,10 +1,333 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.emf.ecp.view.categorization.model" version="2">
     <resource path="META-INF/MANIFEST.MF">
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.categorization.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.categorization.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.categorization.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/categorization/model/VCategorizationPackage.java">
+        <filter comment="Changes due to new label field in 1.6" id="0"/>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/categorization/model/VCategorizationPackage.java" type="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage">
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="ABSTRACT_CATEGORIZATION_FEATURE_COUNT"/>
+                <message_argument value="8"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="ABSTRACT_CATEGORIZATION__ACTIONS"/>
+                <message_argument value="7"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="ABSTRACT_CATEGORIZATION__ATTACHMENTS"/>
+                <message_argument value="5"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="ABSTRACT_CATEGORIZATION__DIAGNOSTIC"/>
+                <message_argument value="4"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="ABSTRACT_CATEGORIZATION__ENABLED"/>
+                <message_argument value="2"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="ABSTRACT_CATEGORIZATION__LABEL_OBJECT"/>
+                <message_argument value="6"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="ABSTRACT_CATEGORIZATION__READONLY"/>
+                <message_argument value="3"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="ABSTRACT_CATEGORIZATION__VISIBLE"/>
+                <message_argument value="1"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORIZABLE_ELEMENT_FEATURE_COUNT"/>
+                <message_argument value="7"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORIZABLE_ELEMENT__ATTACHMENTS"/>
+                <message_argument value="5"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORIZABLE_ELEMENT__DIAGNOSTIC"/>
+                <message_argument value="4"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORIZABLE_ELEMENT__ENABLED"/>
+                <message_argument value="2"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORIZABLE_ELEMENT__LABEL_OBJECT"/>
+                <message_argument value="6"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORIZABLE_ELEMENT__READONLY"/>
+                <message_argument value="3"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORIZABLE_ELEMENT__VISIBLE"/>
+                <message_argument value="1"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORIZATION_ELEMENT_FEATURE_COUNT"/>
+                <message_argument value="9"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORIZATION_ELEMENT__ATTACHMENTS"/>
+                <message_argument value="5"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORIZATION_ELEMENT__CATEGORIZATIONS"/>
+                <message_argument value="6"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORIZATION_ELEMENT__CURRENT_SELECTION"/>
+                <message_argument value="7"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORIZATION_ELEMENT__DIAGNOSTIC"/>
+                <message_argument value="4"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORIZATION_ELEMENT__ENABLED"/>
+                <message_argument value="2"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORIZATION_ELEMENT__MAIN_CATEGORY_DEPTH"/>
+                <message_argument value="8"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORIZATION_ELEMENT__READONLY"/>
+                <message_argument value="3"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORIZATION_ELEMENT__VISIBLE"/>
+                <message_argument value="1"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORIZATION_FEATURE_COUNT"/>
+                <message_argument value="9"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORIZATION__ACTIONS"/>
+                <message_argument value="7"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORIZATION__ATTACHMENTS"/>
+                <message_argument value="5"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORIZATION__CATEGORIZATIONS"/>
+                <message_argument value="8"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORIZATION__DIAGNOSTIC"/>
+                <message_argument value="4"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORIZATION__ENABLED"/>
+                <message_argument value="2"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORIZATION__LABEL_OBJECT"/>
+                <message_argument value="6"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORIZATION__READONLY"/>
+                <message_argument value="3"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORIZATION__VISIBLE"/>
+                <message_argument value="1"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORY_FEATURE_COUNT"/>
+                <message_argument value="9"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORY__ACTIONS"/>
+                <message_argument value="7"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORY__ATTACHMENTS"/>
+                <message_argument value="5"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORY__COMPOSITE"/>
+                <message_argument value="8"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORY__DIAGNOSTIC"/>
+                <message_argument value="4"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORY__ENABLED"/>
+                <message_argument value="2"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORY__LABEL_OBJECT"/>
+                <message_argument value="6"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORY__READONLY"/>
+                <message_argument value="3"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage"/>
+                <message_argument value="CATEGORY__VISIBLE"/>
+                <message_argument value="1"/>
             </message_arguments>
         </filter>
     </resource>
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 0eef468..5eefe0c 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,15 +2,15 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: %pluginName

 Bundle-SymbolicName: org.eclipse.emf.ecp.view.categorization.model;singleton:=true

-Bundle-Version: 1.5.1.qualifier

+Bundle-Version: 1.6.0.qualifier

 Bundle-ClassPath: .

 Bundle-Vendor: %providerName

 Bundle-Localization: plugin

 Bundle-RequiredExecutionEnvironment: JavaSE-1.6

 Export-Package: org.eclipse.emf.ecp.view.spi.categorization.model;vers

- ion="1.5.1",org.eclipse.emf.ecp.view.spi.categorization.model.impl;ve

- rsion="1.5.1",org.eclipse.emf.ecp.view.spi.categorization.model.util;

- version="1.5.1"

+ ion="1.6.0",org.eclipse.emf.ecp.view.spi.categorization.model.impl;ve

+ rsion="1.6.0",org.eclipse.emf.ecp.view.spi.categorization.model.util;

+ version="1.6.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.5.0,2.0.0)";visibility:=reexport

diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.model/model/categorization.genmodel b/bundles/org.eclipse.emf.ecp.view.categorization.model/model/categorization.genmodel
index 3bc719f..2574bcd 100644
--- a/bundles/org.eclipse.emf.ecp.view.categorization.model/model/categorization.genmodel
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.model/model/categorization.genmodel
@@ -14,26 +14,28 @@
       classPackageSuffix="model.impl" utilityPackageSuffix="model.util" providerPackageSuffix="model.provider"
       presentationPackageSuffix="model.presentation" extensibleProviderFactory="true"
       childCreationExtenders="true" ecorePackage="categorization.ecore#/">
-    <genClasses image="false" ecoreClass="categorization.ecore#//AbstractCategorization">
+    <genClasses image="false" ecoreClass="categorization.ecore#//AbstractCategorization"
+        labelFeature="../../org.eclipse.emf.ecp.view.model/model/view.genmodel#//model/Element/label">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference categorization.ecore#//AbstractCategorization/actions"/>
     </genClasses>
-    <genClasses ecoreClass="categorization.ecore#//Categorization">
+    <genClasses ecoreClass="categorization.ecore#//Categorization" labelFeature="../../org.eclipse.emf.ecp.view.model/model/view.genmodel#//model/Element/label">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference categorization.ecore#//Categorization/categorizations"/>
     </genClasses>
-    <genClasses ecoreClass="categorization.ecore#//Category">
+    <genClasses ecoreClass="categorization.ecore#//Category" labelFeature="../../org.eclipse.emf.ecp.view.model/model/view.genmodel#//model/Element/label">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference categorization.ecore#//Category/composite"/>
     </genClasses>
     <genClasses ecoreClass="categorization.ecore#//Action">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute categorization.ecore#//Action/bundle"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute categorization.ecore#//Action/className"/>
     </genClasses>
-    <genClasses ecoreClass="categorization.ecore#//CategorizationElement">
+    <genClasses ecoreClass="categorization.ecore#//CategorizationElement" labelFeature="../../org.eclipse.emf.ecp.view.model/model/view.genmodel#//model/Element/label">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference categorization.ecore#//CategorizationElement/categorizations"/>
       <genFeatures property="None" notify="false" createChild="false" propertySortChoices="true"
           ecoreFeature="ecore:EReference categorization.ecore#//CategorizationElement/currentSelection"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute categorization.ecore#//CategorizationElement/mainCategoryDepth"/>
     </genClasses>
-    <genClasses image="false" ecoreClass="categorization.ecore#//CategorizableElement">
+    <genClasses image="false" ecoreClass="categorization.ecore#//CategorizableElement"
+        labelFeature="../../org.eclipse.emf.ecp.view.model/model/view.genmodel#//model/Element/label">
       <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EReference categorization.ecore#//CategorizableElement/labelObject"/>
     </genClasses>
   </genPackages>
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 ee1b391..b7bbc0a 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.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.0-SNAPSHOT</version>

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/.gitignore b/bundles/org.eclipse.emf.ecp.view.categorization.swt/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/.project b/bundles/org.eclipse.emf.ecp.view.categorization.swt/.project
index 581536c..8873f8b 100644
--- a/bundles/org.eclipse.emf.ecp.view.categorization.swt/.project
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/.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.categorization.swt/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.categorization.swt/.settings/.api_filters
new file mode 100644
index 0000000..75fed48
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/.settings/.api_filters
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<component id="org.eclipse.emf.ecp.view.categorization.swt" version="2">
+    <resource path="META-INF/MANIFEST.MF">
+        <filter comment="SPI Change in 1.6" id="923795461">
+            <message_arguments>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/categorization/swt/AbstractJFaceTreeRenderer.java" type="org.eclipse.emf.ecp.view.spi.categorization.swt.AbstractJFaceTreeRenderer">
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.swt.AbstractJFaceTreeRenderer"/>
+                <message_argument value="AbstractJFaceTreeRenderer()"/>
+            </message_arguments>
+        </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.swt.AbstractJFaceTreeRenderer"/>
+                <message_argument value="getGridDescription(SWTGridDescription)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.swt.AbstractJFaceTreeRenderer"/>
+                <message_argument value="renderControl(SWTGridCell, Composite)"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/categorization/swt/AbstractSWTTabRenderer.java" type="org.eclipse.emf.ecp.view.spi.categorization.swt.AbstractSWTTabRenderer">
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.swt.AbstractSWTTabRenderer"/>
+                <message_argument value="AbstractSWTTabRenderer()"/>
+            </message_arguments>
+        </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.swt.AbstractSWTTabRenderer"/>
+                <message_argument value="getGridDescription(SWTGridDescription)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.swt.AbstractSWTTabRenderer"/>
+                <message_argument value="renderControl(SWTGridCell, Composite)"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/categorization/swt/CategorizationElementTabbedSWTRenderer.java" type="org.eclipse.emf.ecp.view.spi.categorization.swt.CategorizationElementTabbedSWTRenderer">
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.swt.CategorizationElementTabbedSWTRenderer"/>
+                <message_argument value="CategorizationElementTabbedSWTRenderer()"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/categorization/swt/CompositeCategoryJFaceTreeRenderer.java" type="org.eclipse.emf.ecp.view.spi.categorization.swt.CompositeCategoryJFaceTreeRenderer">
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.swt.CompositeCategoryJFaceTreeRenderer"/>
+                <message_argument value="CompositeCategoryJFaceTreeRenderer()"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/categorization/swt/CompositeCategorySWTTabRenderer.java" type="org.eclipse.emf.ecp.view.spi.categorization.swt.CompositeCategorySWTTabRenderer">
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.swt.CompositeCategorySWTTabRenderer"/>
+                <message_argument value="CompositeCategorySWTTabRenderer()"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/categorization/swt/SWTCategorizationElementRenderer.java" type="org.eclipse.emf.ecp.view.spi.categorization.swt.SWTCategorizationElementRenderer">
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.swt.SWTCategorizationElementRenderer"/>
+                <message_argument value="SWTCategorizationElementRenderer()"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/categorization/swt/SWTCategorizationRenderer.java" type="org.eclipse.emf.ecp.view.spi.categorization.swt.SWTCategorizationRenderer">
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.swt.SWTCategorizationRenderer"/>
+                <message_argument value="SWTCategorizationRenderer()"/>
+            </message_arguments>
+        </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.swt.SWTCategorizationRenderer"/>
+                <message_argument value="getGridDescription(SWTGridDescription)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.swt.SWTCategorizationRenderer"/>
+                <message_argument value="renderControl(SWTGridCell, Composite)"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/categorization/swt/SWTCategoryRenderer.java" type="org.eclipse.emf.ecp.view.spi.categorization.swt.SWTCategoryRenderer">
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.categorization.swt.SWTCategoryRenderer"/>
+                <message_argument value="SWTCategoryRenderer()"/>
+            </message_arguments>
+        </filter>
+    </resource>
+</component>
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 ed34487..28d5173 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Categorization SWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.categorization.swt;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.internal.categorization.swt.Activator
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
@@ -11,10 +11,17 @@
  org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.5.0,2.0.0)"
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.databinding.edit;bundle-version="[1.2.0,2.0.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.6.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.emf.edit.ui.provider;version="0.0.0",
+ org.eclipse.emfforms.spi.common.report;version="1.6.0",
+ org.eclipse.emfforms.spi.core.services.databinding;version="1.6.0",
+ org.eclipse.jface.databinding.swt;version="0.0.0",
  org.eclipse.jface.layout;version="0.0.0",
  org.eclipse.jface.resource;version="0.0.0",
  org.eclipse.jface.viewers;version="0.0.0",
@@ -24,5 +31,7 @@
  org.eclipse.swt.graphics;version="0.0.0",
  org.eclipse.swt.widgets;version="0.0.0"
 Export-Package: org.eclipse.emf.ecp.view.internal.categorization.swt;v
- ersion="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.spi.categori
- zation.swt;version="1.5.1"
+ ersion="1.6.0";x-internal:=true,org.eclipse.emf.ecp.view.spi.categori
+ zation.swt;version="1.6.0"
+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
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/OSGI-INF/categorizationElementTabbedRendererService.xml b/bundles/org.eclipse.emf.ecp.view.categorization.swt/OSGI-INF/categorizationElementTabbedRendererService.xml
new file mode 100644
index 0000000..f79be1f
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/OSGI-INF/categorizationElementTabbedRendererService.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emf.ecp.view.categorization.swt.categorizationElementTabbed">
+   <implementation class="org.eclipse.emf.ecp.view.internal.categorization.swt.CategorizationElementTabbedRendererService"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService"/>
+   </service>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/OSGI-INF/compositeCategoryTabRendererService.xml b/bundles/org.eclipse.emf.ecp.view.categorization.swt/OSGI-INF/compositeCategoryTabRendererService.xml
new file mode 100644
index 0000000..626673f
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/OSGI-INF/compositeCategoryTabRendererService.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emf.ecp.view.categorization.swt.compositeCategoryTab">
+   <implementation class="org.eclipse.emf.ecp.view.internal.categorization.swt.CompositeCategorySWTTabRendererService"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService"/>
+   </service>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/OSGI-INF/compositeCategoryTreeRendererService.xml b/bundles/org.eclipse.emf.ecp.view.categorization.swt/OSGI-INF/compositeCategoryTreeRendererService.xml
new file mode 100644
index 0000000..306a3d6
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/OSGI-INF/compositeCategoryTreeRendererService.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emf.ecp.view.categorization.swt.compositeCategoryTree">
+   <implementation class="org.eclipse.emf.ecp.view.internal.categorization.swt.CompositeCategoryJFaceTreeRendererService"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService"/>
+   </service>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.emf.ecp.view.categorization.swt/OSGI-INF/l10n/bundle.properties
new file mode 100644
index 0000000..910390d
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/OSGI-INF/l10n/bundle.properties
@@ -0,0 +1 @@
+Categorization_Selection=Please select a category
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/OSGI-INF/swtCategorizationElementRendererService.xml b/bundles/org.eclipse.emf.ecp.view.categorization.swt/OSGI-INF/swtCategorizationElementRendererService.xml
new file mode 100644
index 0000000..88b4c80
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/OSGI-INF/swtCategorizationElementRendererService.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emf.ecp.view.categorization.swt.swtCategorizationElement">
+   <implementation class="org.eclipse.emf.ecp.view.internal.categorization.swt.SWTCategorizationElementRendererService"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService"/>
+   </service>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/OSGI-INF/swtCategorizationRendererService.xml b/bundles/org.eclipse.emf.ecp.view.categorization.swt/OSGI-INF/swtCategorizationRendererService.xml
new file mode 100644
index 0000000..d140101
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/OSGI-INF/swtCategorizationRendererService.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emf.ecp.view.categorization.swt.swtCategorization">
+   <implementation class="org.eclipse.emf.ecp.view.internal.categorization.swt.SWTCategorizationRendererService"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService"/>
+   </service>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/OSGI-INF/swtCategoryRendererService.xml b/bundles/org.eclipse.emf.ecp.view.categorization.swt/OSGI-INF/swtCategoryRendererService.xml
new file mode 100644
index 0000000..84c936a
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/OSGI-INF/swtCategoryRendererService.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emf.ecp.view.categorization.swt.swtCategory">
+   <implementation class="org.eclipse.emf.ecp.view.internal.categorization.swt.SWTCategoryRendererService"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService"/>
+   </service>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/build.properties b/bundles/org.eclipse.emf.ecp.view.categorization.swt/build.properties
index a3a0fff..54705dd 100644
--- a/bundles/org.eclipse.emf.ecp.view.categorization.swt/build.properties
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/build.properties
@@ -1,9 +1,14 @@
-source.. = src/
 output.. = bin/
 bin.includes = META-INF/,\
                .,\
-               plugin.xml,\
                icons/,\
-               src/org/eclipse/emf/ecp/view/internal/categorization/swt/messages.properties,\
-               about.html
+               about.html,\
+               OSGI-INF/,\
+               OSGI-INF/categorizationElementTabbedRendererService.xml,\
+               OSGI-INF/compositeCategoryTreeRendererService.xml,\
+               OSGI-INF/compositeCategoryTabRendererService.xml,\
+               OSGI-INF/swtCategorizationElementRendererService.xml,\
+               OSGI-INF/swtCategorizationRendererService.xml,\
+               OSGI-INF/swtCategoryRendererService.xml
 src.includes = about.html
+source.. = src/
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/plugin.xml b/bundles/org.eclipse.emf.ecp.view.categorization.swt/plugin.xml
deleted file mode 100644
index 453baf3..0000000
--- a/bundles/org.eclipse.emf.ecp.view.categorization.swt/plugin.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         point="org.eclipse.emf.ecp.ui.view.swt.renderers">
-      <renderer
-            renderer="org.eclipse.emf.ecp.view.spi.categorization.swt.SWTCategorizationElementRenderer">
-         <dynamicTest
-               testClass="org.eclipse.emf.ecp.view.internal.categorization.swt.CategorizationTreeRendererTester">
-         </dynamicTest>
-      </renderer>
-      <renderer
-            renderer="org.eclipse.emf.ecp.view.spi.categorization.swt.CategorizationElementTabbedSWTRenderer">
-         <dynamicTest
-               testClass="org.eclipse.emf.ecp.view.internal.categorization.swt.CategorizationTabRendererTester">
-         </dynamicTest>
-      </renderer>
-      <renderer
-            renderer="org.eclipse.emf.ecp.view.spi.categorization.swt.CompositeCategorySWTTabRenderer">
-         <dynamicTest
-               testClass="org.eclipse.emf.ecp.view.internal.categorization.swt.CompositeCategoryTabRendererTester">
-         </dynamicTest>
-      </renderer>
-      <renderer
-            renderer="org.eclipse.emf.ecp.view.spi.categorization.swt.CompositeCategoryJFaceTreeRenderer">
-         <dynamicTest
-               testClass="org.eclipse.emf.ecp.view.internal.categorization.swt.CompositeCategoryTreeRendererTester">
-         </dynamicTest>
-      </renderer>
-      <renderer
-            renderer="org.eclipse.emf.ecp.view.spi.categorization.swt.SWTCategorizationRenderer">
-         <dynamicTest
-               testClass="org.eclipse.emf.ecp.view.internal.categorization.swt.CompositeCategoryDefaultRendererTester">
-         </dynamicTest>
-      </renderer>
-      <renderer
-            renderer="org.eclipse.emf.ecp.view.spi.categorization.swt.SWTCategoryRenderer">
-         <staticTest
-               element="org.eclipse.emf.ecp.view.spi.categorization.model.VCategory"
-               priority="1">
-         </staticTest>
-      </renderer>
-   </extension>
-
-</plugin>
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 f245416..2da90bf 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.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.0-SNAPSHOT</version>

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/Activator.java b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/Activator.java
index 9892ba2..a8e788b 100644
--- a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/Activator.java
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/Activator.java
@@ -14,9 +14,7 @@
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Plugin;
 import org.eclipse.core.runtime.Status;
-import org.eclipse.emf.ecp.view.spi.model.reporting.ReportService;
 import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
 
 /**
  * The activator class controls the plug-in life cycle.
@@ -73,15 +71,4 @@
 		plugin.getLog().log(new Status(IStatus.ERROR, PLUGIN_ID, throwable.getMessage(), throwable));
 	}
 
-	/**
-	 * Returns the {@link ReportService}.
-	 *
-	 * @return the {@link ReportService}
-	 */
-	public ReportService getReportService() {
-		final BundleContext bundleContext = getBundle().getBundleContext();
-		final ServiceReference<ReportService> serviceReference =
-			bundleContext.getServiceReference(ReportService.class);
-		return bundleContext.getService(serviceReference);
-	}
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/CategorizationElementTabbedRendererService.java b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/CategorizationElementTabbedRendererService.java
new file mode 100644
index 0000000..b59aeba
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/CategorizationElementTabbedRendererService.java
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.categorization.swt;
+
+import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationElement;
+import org.eclipse.emf.ecp.view.spi.categorization.swt.CategorizationElementTabbedSWTRenderer;
+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.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+
+/**
+ * CategorizationElementTabbedRendererService which provides the CategorizationElementTabbedSWTRenderer.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class CategorizationElementTabbedRendererService implements EMFFormsDIRendererService<VCategorizationElement> {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (VCategorizationElement.class.isInstance(vElement)) {
+			if (VCategorizationElement.class.cast(vElement).getMainCategoryDepth() != 0) {
+				return 1d;
+			}
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#getRendererClass()
+	 */
+	@Override
+	public Class<? extends AbstractSWTRenderer<VCategorizationElement>> getRendererClass() {
+		return CategorizationElementTabbedSWTRenderer.class;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/CategorizationTabRendererTester.java b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/CategorizationTabRendererTester.java
deleted file mode 100644
index 9fdd5fa..0000000
--- a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/CategorizationTabRendererTester.java
+++ /dev/null
@@ -1,37 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eugen - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.internal.categorization.swt;
-
-import org.eclipse.emf.ecp.view.model.common.ECPRendererTester;
-import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationElement;
-import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
-import org.eclipse.emf.ecp.view.spi.model.VElement;
-
-/**
- * Categorization Renderer for Tabs.
- *
- * @author Eugen Neufeld
- *
- */
-public class CategorizationTabRendererTester implements ECPRendererTester {
-
-	@Override
-	public int isApplicable(VElement vElement, ViewModelContext viewModelContext) {
-		if (VCategorizationElement.class.isInstance(vElement)) {
-			if (VCategorizationElement.class.cast(vElement).getMainCategoryDepth() != 0) {
-				return 1;
-			}
-		}
-		return NOT_APPLICABLE;
-	}
-
-}
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/CategorizationTreeRendererTester.java b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/CategorizationTreeRendererTester.java
deleted file mode 100644
index f120887..0000000
--- a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/CategorizationTreeRendererTester.java
+++ /dev/null
@@ -1,37 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eugen - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.internal.categorization.swt;
-
-import org.eclipse.emf.ecp.view.model.common.ECPRendererTester;
-import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationElement;
-import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
-import org.eclipse.emf.ecp.view.spi.model.VElement;
-
-/**
- * Categorization Renderer for tree.
- *
- * @author Eugen Neufeld
- *
- */
-public class CategorizationTreeRendererTester implements ECPRendererTester {
-
-	@Override
-	public int isApplicable(VElement vElement, ViewModelContext viewModelContext) {
-		if (VCategorizationElement.class.isInstance(vElement)) {
-			if (VCategorizationElement.class.cast(vElement).getMainCategoryDepth() == 0) {
-				return 1;
-			}
-		}
-		return NOT_APPLICABLE;
-	}
-
-}
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/CompositeCategoryDefaultRendererTester.java b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/CompositeCategoryDefaultRendererTester.java
deleted file mode 100644
index 4e0b8e3..0000000
--- a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/CompositeCategoryDefaultRendererTester.java
+++ /dev/null
@@ -1,46 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eugen - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.internal.categorization.swt;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecp.view.model.common.ECPRendererTester;
-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.context.ViewModelContext;
-import org.eclipse.emf.ecp.view.spi.model.VElement;
-
-/**
- * Composite Category renderer tester.
- *
- * @author Eugen Neufeld
- *
- */
-public class CompositeCategoryDefaultRendererTester implements ECPRendererTester {
-
-	@Override
-	public int isApplicable(VElement vElement, ViewModelContext viewModelContext) {
-		if (VCategorization.class.isInstance(vElement)) {
-			final VCategorization categorization = VCategorization.class.cast(vElement);
-			int depth = 0;
-			EObject parent = categorization.eContainer();
-			while (!VCategorizationElement.class.isInstance(parent)) {
-				parent = parent.eContainer();
-				depth++;
-			}
-			if (VCategorizationElement.class.cast(parent).getMainCategoryDepth() < depth + 1) {
-				return 1;
-			}
-		}
-		return NOT_APPLICABLE;
-	}
-
-}
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/CompositeCategoryJFaceTreeRendererService.java b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/CompositeCategoryJFaceTreeRendererService.java
new file mode 100644
index 0000000..f41fa39
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/CompositeCategoryJFaceTreeRendererService.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.categorization.swt;
+
+import org.eclipse.emf.ecore.EObject;
+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.swt.CompositeCategoryJFaceTreeRenderer;
+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.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+
+/**
+ * CompositeCategoryJFaceTreeRendererService which provides the CompositeCategoryJFaceTreeRenderer.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class CompositeCategoryJFaceTreeRendererService implements EMFFormsDIRendererService<VCategorization> {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (VCategorization.class.isInstance(vElement)) {
+			final VCategorization categorization = VCategorization.class.cast(vElement);
+			int depth = 0;
+			EObject parent = categorization.eContainer();
+			while (!VCategorizationElement.class.isInstance(parent)) {
+				parent = parent.eContainer();
+				depth++;
+			}
+			if (VCategorizationElement.class.cast(parent).getMainCategoryDepth() == depth + 1) {
+				return 1;
+			}
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 * 
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#getRendererClass()
+	 */
+	@Override
+	public Class<? extends AbstractSWTRenderer<VCategorization>> getRendererClass() {
+		return CompositeCategoryJFaceTreeRenderer.class;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/CompositeCategorySWTTabRendererService.java b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/CompositeCategorySWTTabRendererService.java
new file mode 100644
index 0000000..8a1b175
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/CompositeCategorySWTTabRendererService.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.categorization.swt;
+
+import org.eclipse.emf.ecore.EObject;
+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.swt.CompositeCategorySWTTabRenderer;
+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.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+
+/**
+ * CompositeCategorySWTTabRendererService which provides the CompositeCategorySWTTabRenderer.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class CompositeCategorySWTTabRendererService implements EMFFormsDIRendererService<VCategorization> {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (VCategorization.class.isInstance(vElement)) {
+			final VCategorization categorization = VCategorization.class.cast(vElement);
+			int depth = 0;
+			EObject parent = categorization.eContainer();
+			while (!VCategorizationElement.class.isInstance(parent)) {
+				parent = parent.eContainer();
+				depth++;
+			}
+			if (VCategorizationElement.class.cast(parent).getMainCategoryDepth() > depth + 1) {
+				return 1;
+			}
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 * 
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#getRendererClass()
+	 */
+	@Override
+	public Class<? extends AbstractSWTRenderer<VCategorization>> getRendererClass() {
+		return CompositeCategorySWTTabRenderer.class;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/CompositeCategoryTabRendererTester.java b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/CompositeCategoryTabRendererTester.java
deleted file mode 100644
index dd897b9..0000000
--- a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/CompositeCategoryTabRendererTester.java
+++ /dev/null
@@ -1,46 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eugen - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.internal.categorization.swt;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecp.view.model.common.ECPRendererTester;
-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.context.ViewModelContext;
-import org.eclipse.emf.ecp.view.spi.model.VElement;
-
-/**
- * Renderer Tester for composite category as tabs.
- *
- * @author Eugen Neufeld
- *
- */
-public class CompositeCategoryTabRendererTester implements ECPRendererTester {
-
-	@Override
-	public int isApplicable(VElement vElement, ViewModelContext viewModelContext) {
-		if (VCategorization.class.isInstance(vElement)) {
-			final VCategorization categorization = VCategorization.class.cast(vElement);
-			int depth = 0;
-			EObject parent = categorization.eContainer();
-			while (!VCategorizationElement.class.isInstance(parent)) {
-				parent = parent.eContainer();
-				depth++;
-			}
-			if (VCategorizationElement.class.cast(parent).getMainCategoryDepth() > depth + 1) {
-				return 1;
-			}
-		}
-		return NOT_APPLICABLE;
-	}
-
-}
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/CompositeCategoryTreeRendererTester.java b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/CompositeCategoryTreeRendererTester.java
deleted file mode 100644
index cfcdcbd..0000000
--- a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/CompositeCategoryTreeRendererTester.java
+++ /dev/null
@@ -1,46 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eugen - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.internal.categorization.swt;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecp.view.model.common.ECPRendererTester;
-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.context.ViewModelContext;
-import org.eclipse.emf.ecp.view.spi.model.VElement;
-
-/**
- * Composite category tester as tree.
- *
- * @author Eugen Neufeld
- *
- */
-public class CompositeCategoryTreeRendererTester implements ECPRendererTester {
-
-	@Override
-	public int isApplicable(VElement vElement, ViewModelContext viewModelContext) {
-		if (VCategorization.class.isInstance(vElement)) {
-			final VCategorization categorization = VCategorization.class.cast(vElement);
-			int depth = 0;
-			EObject parent = categorization.eContainer();
-			while (!VCategorizationElement.class.isInstance(parent)) {
-				parent = parent.eContainer();
-				depth++;
-			}
-			if (VCategorizationElement.class.cast(parent).getMainCategoryDepth() == depth + 1) {
-				return 1;
-			}
-		}
-		return NOT_APPLICABLE;
-	}
-
-}
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/MessageKeys.java b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/MessageKeys.java
new file mode 100644
index 0000000..4341982
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/MessageKeys.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.categorization.swt;
+
+/**
+ * Keys for translated strings.
+ *
+ * @author Eugen Neufeld
+ * @generated
+ */
+public interface MessageKeys {
+	String Categorization_Selection = "Categorization_Selection"; //$NON-NLS-1$
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/Messages.java b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/Messages.java
deleted file mode 100644
index b62c430..0000000
--- a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/Messages.java
+++ /dev/null
@@ -1,33 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Edgar Mueller - initial API and implementation
- *
- *******************************************************************************/
-package org.eclipse.emf.ecp.view.internal.categorization.swt;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- *
- * @author emueller
- * @generated
- */
-public final class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.emf.ecp.view.internal.categorization.swt.messages"; //$NON-NLS-1$
-
-	public static String Categorization_Selection;
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	private Messages() {
-	}
-}
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/SWTCategorizationElementRendererService.java b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/SWTCategorizationElementRendererService.java
new file mode 100644
index 0000000..0f0403c
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/SWTCategorizationElementRendererService.java
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.categorization.swt;
+
+import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationElement;
+import org.eclipse.emf.ecp.view.spi.categorization.swt.SWTCategorizationElementRenderer;
+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.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+
+/**
+ * SWTCategorizationElementRendererService which provides the SWTCategorizationElementRenderer.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class SWTCategorizationElementRendererService implements EMFFormsDIRendererService<VCategorizationElement> {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (VCategorizationElement.class.isInstance(vElement)) {
+			if (VCategorizationElement.class.cast(vElement).getMainCategoryDepth() == 0) {
+				return 1;
+			}
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 * 
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#getRendererClass()
+	 */
+	@Override
+	public Class<? extends AbstractSWTRenderer<VCategorizationElement>> getRendererClass() {
+		return SWTCategorizationElementRenderer.class;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/SWTCategorizationRendererService.java b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/SWTCategorizationRendererService.java
new file mode 100644
index 0000000..78288b2
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/SWTCategorizationRendererService.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.categorization.swt;
+
+import org.eclipse.emf.ecore.EObject;
+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.swt.SWTCategorizationRenderer;
+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.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+
+/**
+ * SWTCategorizationRendererService which provides the SWTCategorizationRenderer.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class SWTCategorizationRendererService implements EMFFormsDIRendererService<VCategorization> {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (VCategorization.class.isInstance(vElement)) {
+			final VCategorization categorization = VCategorization.class.cast(vElement);
+			int depth = 0;
+			EObject parent = categorization.eContainer();
+			while (!VCategorizationElement.class.isInstance(parent)) {
+				parent = parent.eContainer();
+				depth++;
+			}
+			if (VCategorizationElement.class.cast(parent).getMainCategoryDepth() < depth + 1) {
+				return 1;
+			}
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 * 
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#getRendererClass()
+	 */
+	@Override
+	public Class<? extends AbstractSWTRenderer<VCategorization>> getRendererClass() {
+		return SWTCategorizationRenderer.class;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/SWTCategoryRendererService.java b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/SWTCategoryRendererService.java
new file mode 100644
index 0000000..9e598b7
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/SWTCategoryRendererService.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.categorization.swt;
+
+import org.eclipse.emf.ecp.view.spi.categorization.model.VCategory;
+import org.eclipse.emf.ecp.view.spi.categorization.swt.SWTCategoryRenderer;
+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.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+
+/**
+ * SWTCategoryRendererService which provides the SWTCategoryRenderer.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class SWTCategoryRendererService implements EMFFormsDIRendererService<VCategory> {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (VCategory.class.isInstance(vElement)) {
+			return 1;
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#getRendererClass()
+	 */
+	@Override
+	public Class<? extends AbstractSWTRenderer<VCategory>> getRendererClass() {
+		return SWTCategoryRenderer.class;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/messages.properties b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/messages.properties
deleted file mode 100644
index ddbd06c..0000000
--- a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/internal/categorization/swt/messages.properties
+++ /dev/null
@@ -1 +0,0 @@
-Categorization_Selection=Please select a category
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 dbc50e1..df836c9 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
@@ -31,18 +31,21 @@
 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.VElement;
+import org.eclipse.emf.ecp.view.spi.model.reporting.StatusReport;
 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.AbstractSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.swt.SWTRendererFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.GridDescriptionFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
 import org.eclipse.emf.ecp.view.spi.swt.reporting.RenderingFailedReport;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
 import org.eclipse.emf.edit.provider.ITableItemLabelProvider;
 import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
 import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.GridDescriptionFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.layout.GridLayoutFactory;
 import org.eclipse.jface.resource.ImageDescriptor;
@@ -78,23 +81,28 @@
  */
 public abstract class AbstractJFaceTreeRenderer<VELEMENT extends VElement> extends AbstractSWTRenderer<VELEMENT> {
 
-	private SWTGridDescription gridDescription;
+	private final EMFFormsRendererFactory emfFormsRendererFactory;
+
+	private EMFFormsRendererFactory getEMFFormsRendererFactory() {
+		return emfFormsRendererFactory;
+	}
 
 	/**
 	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 * @param emfFormsRendererFactory The {@link EMFFormsRendererFactory}
+	 * @since 1.6
 	 */
-	public AbstractJFaceTreeRenderer() {
-		super();
+	public AbstractJFaceTreeRenderer(VELEMENT vElement, ViewModelContext viewContext, ReportService reportService,
+		EMFFormsRendererFactory emfFormsRendererFactory) {
+		super(vElement, viewContext, reportService);
+		this.emfFormsRendererFactory = emfFormsRendererFactory;
 	}
 
-	/**
-	 * Test constructor.
-	 *
-	 * @param factory the {@link SWTRendererFactory} to use.
-	 */
-	AbstractJFaceTreeRenderer(SWTRendererFactory factory) {
-		super(factory);
-	}
+	private SWTGridDescription gridDescription;
 
 	@Override
 	public SWTGridDescription getGridDescription(SWTGridDescription gridDescription) {
@@ -107,7 +115,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#dispose()
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#dispose()
 	 */
 	@Override
 	protected void dispose() {
@@ -118,7 +126,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#renderControl(int, org.eclipse.swt.widgets.Composite,
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#renderControl(int, org.eclipse.swt.widgets.Composite,
 	 *      org.eclipse.emf.ecp.view.spi.model.VElement, org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
 	 */
 
@@ -130,15 +138,15 @@
 
 		if (categorizations.size() == 1 && categorizations.get(0) instanceof VCategory) {
 			final VElement child = getCategorizations().get(0);
-			final AbstractSWTRenderer<VElement> renderer = getSWTRendererFactory().getRenderer(child,
-				getViewModelContext());
-			if (renderer == null) {
-				Activator
-					.getDefault()
-					.getLog()
-					.log(
+			AbstractSWTRenderer<VElement> renderer;
+			try {
+				renderer = getEMFFormsRendererFactory().getRendererInstance(child,
+					getViewModelContext());
+			} catch (final EMFFormsNoRendererException ex) {
+				getReportService().report(
+					new StatusReport(
 						new Status(IStatus.INFO, Activator.PLUGIN_ID, String.format(
-							"No Renderer for %s found.", child.eClass().getName()))); //$NON-NLS-1$
+							"No Renderer for %s found.", child.eClass().getName(), ex)))); //$NON-NLS-1$
 				return null;
 			}
 			final Control render = renderer.render(cell, parent);
@@ -480,15 +488,15 @@
 			final VElement child = (VElement) selection;
 			try {
 
-				final AbstractSWTRenderer<VElement> renderer = getSWTRendererFactory().getRenderer(child,
-					viewModelContext);
-				if (renderer == null) {
-					Activator
-						.getDefault()
-						.getLog()
-						.log(
+				AbstractSWTRenderer<VElement> renderer;
+				try {
+					renderer = getEMFFormsRendererFactory().getRendererInstance(child,
+						viewModelContext);
+				} catch (final EMFFormsNoRendererException ex) {
+					getReportService().report(
+						new StatusReport(
 							new Status(IStatus.INFO, Activator.PLUGIN_ID, String.format(
-								"No Renderer for %s found.", child.eClass().getName()))); //$NON-NLS-1$
+								"No Renderer for %s found.", child.eClass().getName(), ex)))); //$NON-NLS-1$
 					return;
 				}
 				// we have a VCategory-> thus only one element in the grid
@@ -501,9 +509,9 @@
 					.applyTo(render);
 				vCategorizationElement.setCurrentSelection((VCategorizableElement) child);
 			} catch (final NoRendererFoundException e) {
-				Activator.getDefault().getReportService().report(new RenderingFailedReport(e));
+				getReportService().report(new RenderingFailedReport(e));
 			} catch (final NoPropertyDescriptorFoundExeption e) {
-				Activator.getDefault().getReportService().report(new RenderingFailedReport(e));
+				getReportService().report(new RenderingFailedReport(e));
 			}
 
 			childComposite.layout();
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 f196ac7..8d8fe7b 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
@@ -11,24 +11,34 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.categorization.swt;
 
-import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
 import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.databinding.EMFDataBindingContext;
+import org.eclipse.emf.databinding.edit.EMFEditObservables;
+import org.eclipse.emf.ecp.view.internal.categorization.swt.Activator;
 import org.eclipse.emf.ecp.view.spi.categorization.model.VAbstractCategorization;
+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.VViewPackage;
+import org.eclipse.emf.ecp.view.spi.model.reporting.StatusReport;
 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.AbstractSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.swt.SWTRendererFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.GridDescriptionFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
-import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.GridDescriptionFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription;
+import org.eclipse.jface.databinding.swt.SWTObservables;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.CTabFolder;
 import org.eclipse.swt.custom.CTabItem;
+import org.eclipse.swt.custom.ScrolledComposite;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 
@@ -39,21 +49,27 @@
  * @param <VELEMENT> the {@link VElement}
  */
 public abstract class AbstractSWTTabRenderer<VELEMENT extends VElement> extends AbstractSWTRenderer<VELEMENT> {
+	private final EMFFormsRendererFactory emfFormsRendererFactory;
+	private final EMFDataBindingContext dataBindingContext;
 
-	/**
-	 * Default constructor.
-	 */
-	public AbstractSWTTabRenderer() {
-		super();
+	private EMFFormsRendererFactory getEMFFormsRendererFactory() {
+		return emfFormsRendererFactory;
 	}
 
 	/**
-	 * Test constructor.
+	 * Default constructor.
 	 *
-	 * @param factory the {@link SWTRendererFactory} to use.
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 * @param emfFormsRendererFactory The {@link EMFFormsRendererFactory}
+	 * @since 1.6
 	 */
-	AbstractSWTTabRenderer(SWTRendererFactory factory) {
-		super(factory);
+	public AbstractSWTTabRenderer(VELEMENT vElement, ViewModelContext viewContext, ReportService reportService,
+		EMFFormsRendererFactory emfFormsRendererFactory) {
+		super(vElement, viewContext, reportService);
+		this.emfFormsRendererFactory = emfFormsRendererFactory;
+		dataBindingContext = new EMFDataBindingContext();
 	}
 
 	@Override
@@ -66,37 +82,43 @@
 		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
 		final CTabFolder folder = new CTabFolder(parent, SWT.BOTTOM);
 		folder.setBackground(parent.getBackground());
-		final ComposedAdapterFactory composedAdapterFactory = new ComposedAdapterFactory(new AdapterFactory[] {
-			new ReflectiveItemProviderAdapterFactory(),
-			new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE) });
 		final EList<VAbstractCategorization> categorizations = getCategorizations();
 		for (final VAbstractCategorization categorization : categorizations) {
 			final CTabItem item = new CTabItem(folder, SWT.NULL);
+			final ScrolledComposite scrolledComposite = new ScrolledComposite(folder, SWT.V_SCROLL | SWT.H_SCROLL);
 
-			final IItemLabelProvider itemLabelProvider = (IItemLabelProvider) composedAdapterFactory.adapt(
-				categorization, IItemLabelProvider.class);
+			final IObservableValue modelValue = EMFEditObservables.observeValue(
+				AdapterFactoryEditingDomain.getEditingDomainFor(categorization), categorization,
+				VViewPackage.eINSTANCE.getElement_Label());
+			final IObservableValue targetValue = SWTObservables.observeText(item);
+			dataBindingContext.bindValue(targetValue, modelValue);
 
-			String categorizationName;
-			if (itemLabelProvider == null) {
-				categorizationName = "Leaf Category"; //$NON-NLS-1$
-			} else {
-				categorizationName = itemLabelProvider.getText(categorization);
+			AbstractSWTRenderer<VElement> renderer;
+			try {
+				renderer = getEMFFormsRendererFactory().getRendererInstance(categorization,
+					getViewModelContext());
+			} catch (final EMFFormsNoRendererException ex) {
+				getReportService().report(
+					new StatusReport(
+						new Status(IStatus.INFO, Activator.PLUGIN_ID, String.format(
+							"No Renderer for %s found.", categorization.eClass().getName(), ex)))); //$NON-NLS-1$
+				return null;
 			}
-			item.setText(categorizationName);
-
-			final AbstractSWTRenderer<VElement> renderer = getSWTRendererFactory().getRenderer(categorization,
-				getViewModelContext());
 			final SWTGridDescription gridDescription = renderer.getGridDescription(GridDescriptionFactory.INSTANCE
 				.createEmptyGridDescription());
 			for (final SWTGridCell gridCell : gridDescription.getGrid()) {
-				final Control render = renderer.render(gridCell, folder);
+				final Control render = renderer.render(gridCell, scrolledComposite);
 				GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true)
 					.applyTo(render);
-				item.setControl(render);
+				scrolledComposite.setExpandHorizontal(true);
+				scrolledComposite.setExpandVertical(true);
+				scrolledComposite.setContent(render);
+				scrolledComposite.setMinSize(render.computeSize(SWT.DEFAULT, SWT.DEFAULT));
+
+				item.setControl(scrolledComposite);
 			}
 
 		}
-		composedAdapterFactory.dispose();
 		if (folder.getItemCount() > 0) {
 			folder.setSelection(0);
 		}
@@ -109,4 +131,16 @@
 	 * @return the list of {@link VAbstractCategorization}
 	 */
 	protected abstract EList<VAbstractCategorization> getCategorizations();
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#dispose()
+	 */
+	@Override
+	protected void dispose() {
+		dataBindingContext.dispose();
+		super.dispose();
+	}
+
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/CategorizationElementTabbedSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/CategorizationElementTabbedSWTRenderer.java
index 606346b..38d4ccd 100644
--- a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/CategorizationElementTabbedSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/CategorizationElementTabbedSWTRenderer.java
@@ -11,10 +11,14 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.categorization.swt;
 
+import javax.inject.Inject;
+
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecp.view.spi.categorization.model.VAbstractCategorization;
 import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationElement;
-import org.eclipse.emf.ecp.view.spi.swt.SWTRendererFactory;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
 
 /**
  * Tab renderer for VCategorizationElement.
@@ -26,18 +30,18 @@
 
 	/**
 	 * Default constructor.
-	 */
-	public CategorizationElementTabbedSWTRenderer() {
-		super();
-	}
-
-	/**
-	 * Test constructor.
 	 *
-	 * @param factory the {@link SWTRendererFactory} to use.
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 * @param emfFormsRendererFactory The {@link EMFFormsRendererFactory}
+	 * @since 1.6
 	 */
-	CategorizationElementTabbedSWTRenderer(SWTRendererFactory factory) {
-		super(factory);
+	@Inject
+	public CategorizationElementTabbedSWTRenderer(VCategorizationElement vElement, ViewModelContext viewContext,
+		ReportService reportService,
+		EMFFormsRendererFactory emfFormsRendererFactory) {
+		super(vElement, viewContext, reportService, emfFormsRendererFactory);
 	}
 
 	/**
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/CompositeCategoryJFaceTreeRenderer.java b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/CompositeCategoryJFaceTreeRenderer.java
index 37807d4..f20b03f 100644
--- a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/CompositeCategoryJFaceTreeRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/CompositeCategoryJFaceTreeRenderer.java
@@ -11,12 +11,16 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.categorization.swt;
 
+import javax.inject.Inject;
+
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecp.view.spi.categorization.model.VAbstractCategorization;
 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.swt.SWTRendererFactory;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
 
 /**
  * Tree renderer for composite category.
@@ -26,23 +30,23 @@
  */
 public class CompositeCategoryJFaceTreeRenderer extends AbstractJFaceTreeRenderer<VCategorization> {
 
-	private VCategorizationElement categorizationElement;
-
 	/**
 	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 * @param emfFormsRendererFactory The {@link EMFFormsRendererFactory}
+	 * @since 1.6
 	 */
-	public CompositeCategoryJFaceTreeRenderer() {
-		super();
+	@Inject
+	public CompositeCategoryJFaceTreeRenderer(VCategorization vElement, ViewModelContext viewContext,
+		ReportService reportService,
+		EMFFormsRendererFactory emfFormsRendererFactory) {
+		super(vElement, viewContext, reportService, emfFormsRendererFactory);
 	}
 
-	/**
-	 * Test constructor.
-	 *
-	 * @param factory the {@link SWTRendererFactory} to use.
-	 */
-	CompositeCategoryJFaceTreeRenderer(SWTRendererFactory factory) {
-		super(factory);
-	}
+	private VCategorizationElement categorizationElement;
 
 	/**
 	 * {@inheritDoc}
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/CompositeCategorySWTTabRenderer.java b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/CompositeCategorySWTTabRenderer.java
index dba9cc9..a950386 100644
--- a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/CompositeCategorySWTTabRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/CompositeCategorySWTTabRenderer.java
@@ -11,10 +11,14 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.categorization.swt;
 
+import javax.inject.Inject;
+
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecp.view.spi.categorization.model.VAbstractCategorization;
 import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorization;
-import org.eclipse.emf.ecp.view.spi.swt.SWTRendererFactory;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
 
 /**
  * Tab renderer for composite category.
@@ -26,18 +30,17 @@
 
 	/**
 	 * Default constructor.
-	 */
-	public CompositeCategorySWTTabRenderer() {
-		super();
-	}
-
-	/**
-	 * Test constructor.
 	 *
-	 * @param factory the {@link SWTRendererFactory} to use.
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 * @param emfFormsRendererFactory The {@link EMFFormsRendererFactory}
+	 * @since 1.6
 	 */
-	CompositeCategorySWTTabRenderer(SWTRendererFactory factory) {
-		super(factory);
+	@Inject
+	public CompositeCategorySWTTabRenderer(VCategorization vElement, ViewModelContext viewContext,
+		ReportService reportService, EMFFormsRendererFactory emfFormsRendererFactory) {
+		super(vElement, viewContext, reportService, emfFormsRendererFactory);
 	}
 
 	/**
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/SWTCategorizationElementRenderer.java b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/SWTCategorizationElementRenderer.java
index 79b5028..24e0ee2 100644
--- a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/SWTCategorizationElementRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/SWTCategorizationElementRenderer.java
@@ -13,10 +13,14 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.categorization.swt;
 
+import javax.inject.Inject;
+
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecp.view.spi.categorization.model.VAbstractCategorization;
 import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationElement;
-import org.eclipse.emf.ecp.view.spi.swt.SWTRendererFactory;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
 
 /**
  * The Class ViewSWTRenderer.
@@ -27,18 +31,18 @@
 
 	/**
 	 * Default constructor.
-	 */
-	public SWTCategorizationElementRenderer() {
-		super();
-	}
-
-	/**
-	 * Test constructor.
 	 *
-	 * @param factory the {@link SWTRendererFactory} to use.
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 * @param emfFormsRendererFactory The {@link EMFFormsRendererFactory}
+	 * @since 1.6
 	 */
-	SWTCategorizationElementRenderer(SWTRendererFactory factory) {
-		super(factory);
+	@Inject
+	public SWTCategorizationElementRenderer(VCategorizationElement vElement, ViewModelContext viewContext,
+		ReportService reportService,
+		EMFFormsRendererFactory emfFormsRendererFactory) {
+		super(vElement, viewContext, reportService, emfFormsRendererFactory);
 	}
 
 	/**
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/SWTCategorizationRenderer.java b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/SWTCategorizationRenderer.java
index 8b710ac..e90c23c 100644
--- a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/SWTCategorizationRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/SWTCategorizationRenderer.java
@@ -12,16 +12,26 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.categorization.swt;
 
-import org.eclipse.emf.ecp.view.internal.categorization.swt.Messages;
+import javax.inject.Inject;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.databinding.EMFDataBindingContext;
+import org.eclipse.emf.databinding.edit.EMFEditObservables;
+import org.eclipse.emf.ecp.view.internal.categorization.swt.MessageKeys;
 import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorization;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+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.AbstractSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.swt.SWTRendererFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.GridDescriptionFactory;
 import org.eclipse.emf.ecp.view.spi.swt.layout.LayoutProviderHelper;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+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.jface.databinding.swt.SWTObservables;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
@@ -35,39 +45,46 @@
  *
  */
 public class SWTCategorizationRenderer extends AbstractSWTRenderer<VCategorization> {
-	private SWTGridDescription rendererGridDescription;
+	private final EMFDataBindingContext dataBindingContext;
 
 	/**
 	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 * @since 1.6
 	 */
-	public SWTCategorizationRenderer() {
-		super();
+	@Inject
+	public SWTCategorizationRenderer(VCategorization vElement, ViewModelContext viewContext, ReportService reportService) {
+		super(vElement, viewContext, reportService);
+		dataBindingContext = new EMFDataBindingContext();
 	}
 
+	private SWTGridDescription rendererGridDescription;
+
 	/**
-	 * Test constructor.
-	 *
-	 * @param factory the {@link SWTRendererFactory} to use.
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param factory the {@link SWTRendererFactory}
 	 */
-	SWTCategorizationRenderer(SWTRendererFactory factory) {
-		super(factory);
-	}
 
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#dispose()
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#dispose()
 	 */
 	@Override
 	protected void dispose() {
 		rendererGridDescription = null;
+		dataBindingContext.dispose();
 		super.dispose();
 	}
 
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#getGridDescription(SWTGridDescription)
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#getGridDescription(SWTGridDescription)
 	 */
 	@Override
 	public SWTGridDescription getGridDescription(SWTGridDescription gridDescription) {
@@ -80,7 +97,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#renderControl(int, org.eclipse.swt.widgets.Composite,
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#renderControl(int, org.eclipse.swt.widgets.Composite,
 	 *      org.eclipse.emf.ecp.view.spi.model.VElement, org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
 	 */
 	@Override
@@ -96,9 +113,14 @@
 		headingLbl.setData(CUSTOM_VARIANT, "org_eclipse_emf_ecp_categorization_title"); //$NON-NLS-1$
 		final Label whatToDoLbl = new Label(categoryComposite, SWT.NONE);
 		whatToDoLbl.setData(CUSTOM_VARIANT, "org_eclipse_emf_ecp_categorization_message"); //$NON-NLS-1$
-		final String headingText = getVElement().getName();
-		headingLbl.setText(headingText == null ? "" : headingText); //$NON-NLS-1$
-		whatToDoLbl.setText(Messages.Categorization_Selection);
+
+		final IObservableValue modelValue = EMFEditObservables.observeValue(
+			AdapterFactoryEditingDomain.getEditingDomainFor(getVElement()), getVElement(),
+			VViewPackage.eINSTANCE.getElement_Label());
+		final IObservableValue targetValue = SWTObservables.observeText(headingLbl);
+		dataBindingContext.bindValue(targetValue, modelValue);
+
+		whatToDoLbl.setText(LocalizationServiceHelper.getString(getClass(), MessageKeys.Categorization_Selection));
 		return categoryComposite;
 	}
 
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/SWTCategoryRenderer.java b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/SWTCategoryRenderer.java
index ef1c4d6..2769e0d 100644
--- a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/SWTCategoryRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/SWTCategoryRenderer.java
@@ -15,9 +15,15 @@
 import java.util.Collection;
 import java.util.Collections;
 
+import javax.inject.Inject;
+
 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.core.swt.ContainerSWTRenderer;
 import org.eclipse.emf.ecp.view.spi.model.VContainedElement;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
 
 /**
  * Renderer for {@link VCategory VCategories}.
@@ -28,6 +34,22 @@
 public class SWTCategoryRenderer extends ContainerSWTRenderer<VCategory> {
 
 	/**
+	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 * @param factory the {@link EMFFormsRendererFactory}
+	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
+	 * @since 1.6
+	 */
+	@Inject
+	public SWTCategoryRenderer(VCategory vElement, ViewModelContext viewContext, ReportService reportService,
+		EMFFormsRendererFactory factory, EMFFormsDatabinding emfFormsDatabinding) {
+		super(vElement, viewContext, reportService, factory, emfFormsDatabinding);
+	}
+
+	/**
 	 * {@inheritDoc}
 	 *
 	 * @see org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer#getCustomVariant()
diff --git a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model.edit/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model.edit/.settings/.api_filters
index 4241363..3312c80 100644
--- a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model.edit/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model.edit/.settings/.api_filters
@@ -1,10 +1,34 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.emf.ecp.view.compoundcontrol.model.edit" version="2">
     <resource path="META-INF/MANIFEST.MF">
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model.edit"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.compoundcontrol.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.compoundcontrol.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.compoundcontrol.model.edit_1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
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 e3ce06f..80ae5ef 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,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.compoundcontrol.model.edit;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.spi.compoundcontrol.model.provider.HorizontalEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.view.spi.compoundcontrol.model.pro
- vider;version="1.5.1"
+ vider;version="1.6.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.5.0,2.0.0)";visibility:=reexport,
  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
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 93c2592..97123ce 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.5.1-SNAPSHOT</version>
+    <version>1.6.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model.edit/src/org/eclipse/emf/ecp/view/spi/compoundcontrol/model/provider/CompoundControlItemProvider.java b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model.edit/src/org/eclipse/emf/ecp/view/spi/compoundcontrol/model/provider/CompoundControlItemProvider.java
index b3cc1c3..8daeed3 100644
--- a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model.edit/src/org/eclipse/emf/ecp/view/spi/compoundcontrol/model/provider/CompoundControlItemProvider.java
+++ b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model.edit/src/org/eclipse/emf/ecp/view/spi/compoundcontrol/model/provider/CompoundControlItemProvider.java
@@ -19,6 +19,8 @@
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecp.view.spi.compoundcontrol.model.VCompoundControl;
 import org.eclipse.emf.ecp.view.spi.compoundcontrol.model.VCompoundcontrolPackage;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emf.ecp.view.spi.model.VElementUtil;
 import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
 import org.eclipse.emf.ecp.view.spi.model.provider.ContainedElementItemProvider;
 import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
@@ -107,11 +109,14 @@
 	 * <!-- begin-user-doc
 	 * --> <!-- end-user-doc -->
 	 *
-	 * @generated
+	 * @generated NOT
 	 */
 	@Override
 	public String getText(Object object) {
-		final String label = ((VCompoundControl) object).getName();
+		String label = ((VCompoundControl) object).getName();
+		if (label == null) {
+			label = VElementUtil.getCleanName(VElement.class.cast(object));
+		}
 		return label == null || label.length() == 0 ?
 			getString("_UI_CompoundControl_type") : //$NON-NLS-1$
 			getString("_UI_CompoundControl_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
diff --git a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model/.gitignore b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model/.settings/.api_filters
index f6231ad..902254d 100644
--- a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model/.settings/.api_filters
@@ -1,10 +1,85 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.emf.ecp.view.compoundcontrol.model" version="2">
     <resource path="META-INF/MANIFEST.MF">
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport">
+        <filter id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.compoundcontrol.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.compoundcontrol.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.compoundcontrol.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/compoundcontrol/model/VCompoundcontrolPackage.java" type="org.eclipse.emf.ecp.view.spi.compoundcontrol.model.VCompoundcontrolPackage">
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.compoundcontrol.model.VCompoundcontrolPackage"/>
+                <message_argument value="COMPOUND_CONTROL_FEATURE_COUNT"/>
+                <message_argument value="7"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.compoundcontrol.model.VCompoundcontrolPackage"/>
+                <message_argument value="COMPOUND_CONTROL__ATTACHMENTS"/>
+                <message_argument value="5"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.compoundcontrol.model.VCompoundcontrolPackage"/>
+                <message_argument value="COMPOUND_CONTROL__CONTROLS"/>
+                <message_argument value="6"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.compoundcontrol.model.VCompoundcontrolPackage"/>
+                <message_argument value="COMPOUND_CONTROL__DIAGNOSTIC"/>
+                <message_argument value="4"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.compoundcontrol.model.VCompoundcontrolPackage"/>
+                <message_argument value="COMPOUND_CONTROL__ENABLED"/>
+                <message_argument value="2"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.compoundcontrol.model.VCompoundcontrolPackage"/>
+                <message_argument value="COMPOUND_CONTROL__READONLY"/>
+                <message_argument value="3"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.compoundcontrol.model.VCompoundcontrolPackage"/>
+                <message_argument value="COMPOUND_CONTROL__VISIBLE"/>
+                <message_argument value="1"/>
             </message_arguments>
         </filter>
     </resource>
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 dbb2557..3036644 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,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.compoundcontrol.model;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.view.spi.compoundcontrol.model;ver
- sion="1.5.1",org.eclipse.emf.ecp.view.spi.compoundcontrol.model.impl;
- version="1.5.1",org.eclipse.emf.ecp.view.spi.compoundcontrol.model.ut
- il;version="1.5.1"
+ sion="1.6.0",org.eclipse.emf.ecp.view.spi.compoundcontrol.model.impl;
+ version="1.6.0",org.eclipse.emf.ecp.view.spi.compoundcontrol.model.ut
+ il;version="1.6.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.5.0,2.0.0)";visibility:=reexport
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 936013a..6188c1e 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.5.1-SNAPSHOT</version>
+    <version>1.6.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/.api_filters b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.swt/.settings/.api_filters
new file mode 100644
index 0000000..fd4b217
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.swt/.settings/.api_filters
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<component id="org.eclipse.emf.ecp.view.compoundcontrol.swt" version="2">
+    <resource path="META-INF/MANIFEST.MF">
+        <filter comment="SPI Change in 1.6" id="923795461">
+            <message_arguments>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/compoundcontrol/swt/CompoundControlSWTRenderer.java" type="org.eclipse.emf.ecp.view.spi.compoundcontrol.swt.CompoundControlSWTRenderer">
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.compoundcontrol.swt.CompoundControlSWTRenderer"/>
+                <message_argument value="CompoundControlSWTRenderer()"/>
+            </message_arguments>
+        </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.compoundcontrol.swt.CompoundControlSWTRenderer"/>
+                <message_argument value="getGridDescription(SWTGridDescription)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.compoundcontrol.swt.CompoundControlSWTRenderer"/>
+                <message_argument value="renderControl(SWTGridCell, Composite)"/>
+            </message_arguments>
+        </filter>
+    </resource>
+</component>
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 b7d6ee4..1cf0e77 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,15 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Compound Control SWT Renderer
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.compoundcontrol.swt;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.compoundcontrol.model;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)"
-Import-Package: org.eclipse.swt;version="0.0.0",
+ org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.6.0,2.0.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="1.6.0",
+ org.eclipse.swt;version="0.0.0",
  org.eclipse.swt.widgets;version="0.0.0"
 Export-Package: org.eclipse.emf.ecp.view.internal.compoundcontrol.swt;
- version="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.spi.compoun
- dcontrol.swt;version="1.5.1"
+ version="1.6.0";x-internal:=true,org.eclipse.emf.ecp.view.spi.compoun
+ dcontrol.swt;version="1.6.0"
 Bundle-Vendor: Eclipse Modeling Project
+Bundle-ActivationPolicy: lazy
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 deb89ea..4ea439c 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.5.1-SNAPSHOT</version>
+    <version>1.6.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.swt/src/org/eclipse/emf/ecp/view/internal/compoundcontrol/swt/Activator.java b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.swt/src/org/eclipse/emf/ecp/view/internal/compoundcontrol/swt/Activator.java
index c6bdba9..662bf55 100644
--- a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.swt/src/org/eclipse/emf/ecp/view/internal/compoundcontrol/swt/Activator.java
+++ b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.swt/src/org/eclipse/emf/ecp/view/internal/compoundcontrol/swt/Activator.java
@@ -12,7 +12,7 @@
 package org.eclipse.emf.ecp.view.internal.compoundcontrol.swt;
 
 import org.eclipse.core.runtime.Plugin;
-import org.eclipse.emf.ecp.view.spi.model.reporting.ReportService;
+import org.eclipse.emfforms.spi.common.report.ReportService;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
 
diff --git a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.swt/src/org/eclipse/emf/ecp/view/spi/compoundcontrol/swt/CompoundControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.swt/src/org/eclipse/emf/ecp/view/spi/compoundcontrol/swt/CompoundControlSWTRenderer.java
index 567d169..ff60cea 100644
--- a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.swt/src/org/eclipse/emf/ecp/view/spi/compoundcontrol/swt/CompoundControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.swt/src/org/eclipse/emf/ecp/view/spi/compoundcontrol/swt/CompoundControlSWTRenderer.java
@@ -18,6 +18,7 @@
 import org.eclipse.core.runtime.Status;
 import org.eclipse.emf.ecp.view.internal.compoundcontrol.swt.Activator;
 import org.eclipse.emf.ecp.view.spi.compoundcontrol.model.VCompoundControl;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.model.LabelAlignment;
 import org.eclipse.emf.ecp.view.spi.model.VContainedElement;
 import org.eclipse.emf.ecp.view.spi.model.VControl;
@@ -25,15 +26,21 @@
 import org.eclipse.emf.ecp.view.spi.model.reporting.StatusReport;
 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.AbstractSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.swt.layout.GridDescriptionFactory;
 import org.eclipse.emf.ecp.view.spi.swt.layout.LayoutProviderHelper;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
 import org.eclipse.emf.ecp.view.spi.swt.reporting.RenderingFailedReport;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.GridDescriptionFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
 
 /**
  * {@link AbstractSWTRenderer} for the {@link VCompoundControl} view model.
@@ -43,13 +50,24 @@
  */
 public class CompoundControlSWTRenderer extends AbstractSWTRenderer<VCompoundControl> {
 
+	/**
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 * @since 1.6
+	 */
+	public CompoundControlSWTRenderer(VCompoundControl vElement, ViewModelContext viewContext,
+		ReportService reportService) {
+		super(vElement, viewContext, reportService);
+	}
+
 	private static final String COMPOUND_CONTROL = "org_eclipse_emf_ecp_ui_compound_control"; //$NON-NLS-1$
 	private SWTGridDescription rendererGridDescription;
 
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#dispose()
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#dispose()
 	 */
 	@Override
 	protected void dispose() {
@@ -60,7 +78,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#getGridDescription(SWTGridDescription)
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#getGridDescription(SWTGridDescription)
 	 */
 	@Override
 	public SWTGridDescription getGridDescription(SWTGridDescription gridDescription) {
@@ -75,7 +93,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#renderControl(int, org.eclipse.swt.widgets.Composite,
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#renderControl(int, org.eclipse.swt.widgets.Composite,
 	 *      org.eclipse.emf.ecp.view.spi.model.VElement, org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
 	 */
 	@Override
@@ -92,12 +110,12 @@
 		for (final VControl child : getVElement().getControls()) {
 
 			child.setLabelAlignment(LabelAlignment.NONE);
-			final AbstractSWTRenderer<VElement> renderer = getSWTRendererFactory().getRenderer(child,
-				getViewModelContext());
-			if (renderer == null) {
-				Activator
-					.getDefault()
-					.getReportService()
+			AbstractSWTRenderer<VElement> renderer;
+			try {
+				renderer = getEMFFormsRendererFactory().getRendererInstance(child,
+					getViewModelContext());
+			} catch (final EMFFormsNoRendererException ex) {
+				getReportService()
 					.report(
 						new StatusReport(
 							new Status(IStatus.INFO, Activator.PLUGIN_ID, String.format(
@@ -128,9 +146,8 @@
 					}
 					// TODO who should apply the layout
 					control.setLayoutData(LayoutProviderHelper.getLayoutData(childGridCell, gridDescription,
-						gridDescription,
-						gridDescription, childGridCell.getRenderer().getVElement(),
-						control));
+						gridDescription, gridDescription, childGridCell.getRenderer().getVElement(),
+						getViewModelContext().getDomainModel(), control));
 				}
 				for (final SWTGridCell childGridCell : gridDescription.getGrid()) {
 					childGridCell.getRenderer().finalizeRendering(column);
@@ -144,4 +161,12 @@
 		return columnComposite;
 	}
 
+	private EMFFormsRendererFactory getEMFFormsRendererFactory() {
+		final BundleContext bundleContext = FrameworkUtil.getBundle(getClass()).getBundleContext();
+		final ServiceReference<EMFFormsRendererFactory> serviceReference = bundleContext
+			.getServiceReference(EMFFormsRendererFactory.class);
+		final EMFFormsRendererFactory rendererFactory = bundleContext.getService(serviceReference);
+		bundleContext.ungetService(serviceReference);
+		return rendererFactory;
+	}
 }
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 d6938db..31077e0 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-ActivationPolicy: lazy
 Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.edit;bundle-version="[1.5.0,2.0.0)"
 Export-Package: org.eclipse.emf.ecp.view.context.internal.locale;versi
- on="1.5.1";x-internal:=true
+ on="1.6.0";x-internal:=true
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 8983274..0a7cffb 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.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.0-SNAPSHOT</version>

 

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

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.context/.gitignore b/bundles/org.eclipse.emf.ecp.view.context/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.context/.gitignore
@@ -0,0 +1 @@
+/bin/
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 50bb8c7..e024fcb 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,15 +2,18 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: View Model Context

 Bundle-SymbolicName: org.eclipse.emf.ecp.view.context;singleton:=true

-Bundle-Version: 1.5.1.qualifier

+Bundle-Version: 1.6.0.qualifier

 Bundle-Activator: org.eclipse.emf.ecp.view.internal.context.Activator

 Bundle-Vendor: Eclipse Modeling Project

 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.5.0,2.0.0)",

- org.eclipse.emf.ecp.common;bundle-version="[1.5.0,2.0.0)";visibility:=reexport

+ org.eclipse.emf.ecp.common;bundle-version="[1.5.0,2.0.0)";visibility:=reexport,

+ org.eclipse.core.databinding.observable;bundle-version="[1.4.0,2.0.0)"

 Bundle-RequiredExecutionEnvironment: JavaSE-1.6

 Bundle-ActivationPolicy: lazy

-Export-Package: org.eclipse.emf.ecp.view.internal.context;version="1.5

- .1";x-internal:=true,org.eclipse.emf.ecp.view.spi.context;version="1.

- 5.1"

+Export-Package: org.eclipse.emf.ecp.view.internal.context;version="1.6

+ .0";x-internal:=true,org.eclipse.emf.ecp.view.spi.context;version="1.

+ 6.0"

+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.6.0,2.0.0)",

+ org.eclipse.emfforms.spi.core.services.databinding;version="1.6.0"

diff --git a/bundles/org.eclipse.emf.ecp.view.context/pom.xml b/bundles/org.eclipse.emf.ecp.view.context/pom.xml
index 6d71e99..2749b1a 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.5.1-SNAPSHOT</version>

+    <version>1.6.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/Activator.java b/bundles/org.eclipse.emf.ecp.view.context/src/org/eclipse/emf/ecp/view/internal/context/Activator.java
index 26573d9..52dd00f 100644
--- a/bundles/org.eclipse.emf.ecp.view.context/src/org/eclipse/emf/ecp/view/internal/context/Activator.java
+++ b/bundles/org.eclipse.emf.ecp.view.context/src/org/eclipse/emf/ecp/view/internal/context/Activator.java
@@ -14,7 +14,8 @@
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Plugin;
 import org.eclipse.core.runtime.Status;
-import org.eclipse.emf.ecp.view.spi.model.reporting.ReportService;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
 
@@ -82,9 +83,9 @@
 	}
 
 	/**
-	 * Returns the {@link ReportService}.
+	 * Returns the {@link SWTRendererFactory}.
 	 *
-	 * @return the {@link ReportService}
+	 * @return the {@link SWTRendererFactory}
 	 */
 	public ReportService getReportService() {
 		if (reportServiceReference == null) {
@@ -94,4 +95,19 @@
 		return instance.getBundle().getBundleContext().getService(reportServiceReference);
 	}
 
+	/**
+	 * Returns the {@link EMFFormsDatabinding} service.
+	 *
+	 * @return The {@link EMFFormsDatabinding}
+	 */
+	public EMFFormsDatabinding getEMFFormsDatabinding() {
+		final ServiceReference<EMFFormsDatabinding> serviceReference = instance.getBundle().getBundleContext()
+			.getServiceReference(EMFFormsDatabinding.class);
+
+		final EMFFormsDatabinding service = instance.getBundle().getBundleContext()
+			.getService(serviceReference);
+		instance.getBundle().getBundleContext().ungetService(serviceReference);
+
+		return service;
+	}
 }
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 f7099a0..8d17a3f 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
@@ -37,6 +37,7 @@
 import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
 import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.emf.ecp.common.spi.UniqueSetting;
 import org.eclipse.emf.ecp.view.spi.context.GlobalViewModelService;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
@@ -224,6 +225,7 @@
 		if (domainObject.eResource() != null) {
 			return;
 		}
+		final EObject rootObject = EcoreUtil.getRootContainer(domainObject);
 		final ResourceSet rs = new ResourceSetImpl();
 		final AdapterFactoryEditingDomain domain = new AdapterFactoryEditingDomain(
 			new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE),
@@ -231,7 +233,7 @@
 		rs.eAdapters().add(new AdapterFactoryEditingDomain.EditingDomainProvider(domain));
 		resource = rs.createResource(URI.createURI("VIRTAUAL_URI")); //$NON-NLS-1$
 		if (resource != null) {
-			resource.getContents().add(domainObject);
+			resource.getContents().add(rootObject);
 		}
 	}
 
@@ -273,7 +275,7 @@
 		for (final UniqueSetting setting : settingToControlMap.keySet()) {
 			settingToControlMap.get(setting).remove(vControl);
 		}
-		// vControl.getDomainModelReference().init(getDomainModel());
+
 		final Iterator<Setting> iterator = vControl.getDomainModelReference().getIterator();
 		while (iterator.hasNext()) {
 			final Setting setting = iterator.next();
@@ -286,12 +288,31 @@
 			}
 			settingToControlMap.get(uniqueSetting).add(vControl);
 		}
+
+		// IObservableValue observableValue;
+		// try {
+		// observableValue = Activator.getInstance().getEMFFormsDatabinding()
+		// .getObservableValue(vControl.getDomainModelReference(), getDomainModel());
+		// } catch (final DatabindingFailedException ex) {
+		// Activator.getInstance().getReportService().report(new DatabindingFailedReport(ex));
+		// return;
+		// }
+		// final IObserving observing = (IObserving) observableValue;
+		// final EObject eObject = (EObject) observing.getObserved();
+		// final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+		// observableValue.dispose();
+		// final UniqueSetting uniqueSetting = UniqueSetting.createSetting(eObject, structuralFeature);
+		// if (!settingToControlMap.containsKey(uniqueSetting)) {
+		// settingToControlMap.put(uniqueSetting, new LinkedHashSet<VControl>());
+		// }
+		// settingToControlMap.get(uniqueSetting).add(vControl);
 	}
 
 	private void vControlRemoved(VControl vControl) {
 		if (vControl.getDomainModelReference() == null) {
 			return;
 		}
+
 		final Iterator<Setting> iterator = vControl.getDomainModelReference().getIterator();
 		while (iterator.hasNext()) {
 			final Setting next = iterator.next();
@@ -304,6 +325,26 @@
 			}
 		}
 
+		// IObservableValue observableValue;
+		// try {
+		// observableValue = Activator.getInstance().getEMFFormsDatabinding()
+		// .getObservableValue(vControl.getDomainModelReference(), getDomainModel());
+		// } catch (final DatabindingFailedException ex) {
+		// Activator.getInstance().getReportService().report(new DatabindingFailedReport(ex));
+		// return;
+		// }
+		// final IObserving observing = (IObserving) observableValue;
+		// final EObject eObject = (EObject) observing.getObserved();
+		// final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+		// observableValue.dispose();
+		// final UniqueSetting uniqueSetting = UniqueSetting.createSetting(eObject, structuralFeature);
+		// if (settingToControlMap.containsKey(uniqueSetting)) {
+		// settingToControlMap.get(uniqueSetting).remove(vControl);
+		// if (settingToControlMap.get(uniqueSetting).size() == 0) {
+		// settingToControlMap.remove(uniqueSetting);
+		// }
+		// }
+
 		vControl.getDomainModelReference().getChangeListener().remove(controlChangeListener.get(vControl));
 		controlChangeListener.remove(vControl);
 		unregisterDomainChangeListener(vControl.getDomainModelReference());
@@ -313,6 +354,25 @@
 		if (vControl.getDomainModelReference() == null) {
 			return;
 		}
+
+		// IObservableValue observableValue;
+		// try {
+		// observableValue = Activator.getInstance().getEMFFormsDatabinding()
+		// .getObservableValue(vControl.getDomainModelReference(), getDomainModel());
+		// } catch (final DatabindingFailedException ex) {
+		// Activator.getInstance().getReportService().report(new DatabindingFailedReport(ex));
+		// return;
+		// }
+		// final IObserving observing = (IObserving) observableValue;
+		// final EObject eObject = (EObject) observing.getObserved();
+		// final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+		// observableValue.dispose();
+		// final UniqueSetting uniqueSetting = UniqueSetting.createSetting(eObject, structuralFeature);
+		// if (!settingToControlMap.containsKey(uniqueSetting)) {
+		// settingToControlMap.put(uniqueSetting, new LinkedHashSet<VControl>());
+		// }
+		// settingToControlMap.get(uniqueSetting).add(vControl);
+
 		final Iterator<Setting> iterator = vControl.getDomainModelReference().getIterator();
 		while (iterator.hasNext()) {
 			final Setting next = iterator.next();
@@ -325,7 +385,6 @@
 			}
 			settingToControlMap.get(uniqueSetting).add(vControl);
 		}
-
 	}
 
 	// private void eObjectRemoved(EObject eObject) {
diff --git a/bundles/org.eclipse.emf.ecp.view.context/src/org/eclipse/emf/ecp/view/spi/context/ViewModelServiceNotAvailableReport.java b/bundles/org.eclipse.emf.ecp.view.context/src/org/eclipse/emf/ecp/view/spi/context/ViewModelServiceNotAvailableReport.java
index 38eb77c..1ce01a7 100644
--- a/bundles/org.eclipse.emf.ecp.view.context/src/org/eclipse/emf/ecp/view/spi/context/ViewModelServiceNotAvailableReport.java
+++ b/bundles/org.eclipse.emf.ecp.view.context/src/org/eclipse/emf/ecp/view/spi/context/ViewModelServiceNotAvailableReport.java
@@ -12,7 +12,7 @@
 package org.eclipse.emf.ecp.view.spi.context;

 

 import org.eclipse.core.runtime.IStatus;

-import org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport;

+import org.eclipse.emfforms.spi.common.report.AbstractReport;

 

 /**

  * Indicates that {@link org.eclipse.emf.ecp.view.spi.context.ViewModelService ViewModelService} is not available.

@@ -49,7 +49,7 @@
 	 *

 	 * {@inheritDoc}

 	 *

-	 * @see org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport#getMessage()

+	 * @see org.eclipse.emfforms.spi.common.report.AbstractReport#getMessage()

 	 */

 	@Override

 	public String getMessage() {

@@ -61,7 +61,7 @@
 	 *

 	 * {@inheritDoc}

 	 *

-	 * @see org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport#getSeverity()

+	 * @see org.eclipse.emfforms.spi.common.report.AbstractReport#getSeverity()

 	 */

 	@Override

 	public int getSeverity() {

diff --git a/bundles/org.eclipse.emf.ecp.view.control.multireference/.project b/bundles/org.eclipse.emf.ecp.view.control.multireference/.project
index ec2f2fb..295c112 100644
--- a/bundles/org.eclipse.emf.ecp.view.control.multireference/.project
+++ b/bundles/org.eclipse.emf.ecp.view.control.multireference/.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.control.multireference/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.control.multireference/META-INF/MANIFEST.MF
index aeda999..f3f9364 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,20 +2,27 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Multireference
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.control.multireference;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
 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.databinding.edit;bundle-version="[1.3.0,2.0.0)",
  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.5.0,2.0.0)"
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.6.0,2.0.0)"
 Import-Package: org.eclipse.emf.edit.ui.provider;version="0.0.0",
+ org.eclipse.emfforms.spi.common.report;version="1.6.0",
+ org.eclipse.emfforms.spi.swt.core;version="1.6.0",
+ org.eclipse.jface.databinding.swt;version="0.0.0",
  org.eclipse.jface.databinding.viewers;version="0.0.0",
  org.eclipse.jface.layout;version="0.0.0",
  org.eclipse.jface.viewers;version="0.0.0",
@@ -25,7 +32,6 @@
  org.eclipse.swt.layout;version="0.0.0",
  org.eclipse.swt.widgets;version="0.0.0",
  org.osgi.framework;version="1.3.0"
-Export-Package: org.eclipse.emf.ecp.view.control.multireference;versio
- n="1.5.1",org.eclipse.emf.ecp.view.internal.control.multireference;ve
- rsion="1.5.1";x-internal:=true
-Bundle-Activator: org.eclipse.emf.ecp.view.internal.control.multireference.Activator
+Export-Package: org.eclipse.emf.ecp.view.internal.control.multireferen
+ ce;version="1.6.0";x-internal:=true
+Service-Component: OSGI-INF/multiReferenceRendererService.xml
diff --git a/bundles/org.eclipse.emf.ecp.view.control.multireference/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.emf.ecp.view.control.multireference/OSGI-INF/l10n/bundle.properties
new file mode 100644
index 0000000..7c58332
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.control.multireference/OSGI-INF/l10n/bundle.properties
@@ -0,0 +1,3 @@
+MultiReferenceSWTRenderer_addExistingTooltip=Link
+MultiReferenceSWTRenderer_addNewTooltip=Create and link
+MultiReferenceSWTRenderer_deleteTooltip=Delete
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.view.control.multireference/OSGI-INF/multiReferenceRendererService.xml b/bundles/org.eclipse.emf.ecp.view.control.multireference/OSGI-INF/multiReferenceRendererService.xml
new file mode 100644
index 0000000..31ab244
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.control.multireference/OSGI-INF/multiReferenceRendererService.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.emf.ecp.view.control.multireference.rendererService">
+   <implementation class="org.eclipse.emf.ecp.view.internal.control.multireference.MultiReferenceSWTRendererService"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService"/>
+   </service>
+   <reference bind="setEMFFormsDatabinding" cardinality="1..1" interface="org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding" name="EMFFormsDatabinding" policy="static" />
+   <reference bind="setReportService" cardinality="1..1" interface="org.eclipse.emfforms.spi.common.report.ReportService" name="ReportService" policy="static" />
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.control.multireference/build.properties b/bundles/org.eclipse.emf.ecp.view.control.multireference/build.properties
index 461e561..a2f2a9e 100644
--- a/bundles/org.eclipse.emf.ecp.view.control.multireference/build.properties
+++ b/bundles/org.eclipse.emf.ecp.view.control.multireference/build.properties
@@ -1,8 +1,8 @@
-source.. = src/
 output.. = bin/
 bin.includes = META-INF/,\
                .,\
-               plugin.xml,\
                icons/,\
-               about.html
+               about.html,\
+               OSGI-INF/
 src.includes = about.html
+source.. = src/
diff --git a/bundles/org.eclipse.emf.ecp.view.control.multireference/icons/unset_feature.png b/bundles/org.eclipse.emf.ecp.view.control.multireference/icons/unset_feature.png
new file mode 100644
index 0000000..08f2493
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.control.multireference/icons/unset_feature.png
Binary files differ
diff --git a/bundles/org.eclipse.emf.ecp.view.control.multireference/icons/unset_reference.png b/bundles/org.eclipse.emf.ecp.view.control.multireference/icons/unset_reference.png
new file mode 100644
index 0000000..f66e297
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.control.multireference/icons/unset_reference.png
Binary files differ
diff --git a/bundles/org.eclipse.emf.ecp.view.control.multireference/plugin.xml b/bundles/org.eclipse.emf.ecp.view.control.multireference/plugin.xml
deleted file mode 100644
index ea1c44c..0000000
--- a/bundles/org.eclipse.emf.ecp.view.control.multireference/plugin.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         point="org.eclipse.emf.ecp.ui.view.swt.renderers">
-      <renderer
-            renderer="org.eclipse.emf.ecp.view.internal.control.multireference.MultiReferenceSWTRenderer">
-         <dynamicTest
-               testClass="org.eclipse.emf.ecp.view.internal.control.multireference.MultiReferenceRendererTester">
-         </dynamicTest>
-      </renderer>
-   </extension>
-
-</plugin>
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 590428e..b5a16f9 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.control.multireference/src/org/eclipse/emf/ecp/view/control/multireference/messages.properties b/bundles/org.eclipse.emf.ecp.view.control.multireference/src/org/eclipse/emf/ecp/view/control/multireference/messages.properties
deleted file mode 100644
index f2b21f8..0000000
--- a/bundles/org.eclipse.emf.ecp.view.control.multireference/src/org/eclipse/emf/ecp/view/control/multireference/messages.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-MultiReferenceSWTRenderer_addExistingTooltip=Link
-MultiReferenceSWTRenderer_addNewTooltip=Create and link
-MultiReferenceSWTRenderer_deleteTooltip=Delete
diff --git a/bundles/org.eclipse.emf.ecp.view.control.multireference/src/org/eclipse/emf/ecp/view/internal/control/multireference/Activator.java b/bundles/org.eclipse.emf.ecp.view.control.multireference/src/org/eclipse/emf/ecp/view/internal/control/multireference/Activator.java
deleted file mode 100644
index dccdb4a..0000000
--- a/bundles/org.eclipse.emf.ecp.view.control.multireference/src/org/eclipse/emf/ecp/view/internal/control/multireference/Activator.java
+++ /dev/null
@@ -1,68 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eugen Neufeld - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.internal.control.multireference;
-
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.emf.ecp.view.spi.util.swt.ImageRegistryService;
-import org.eclipse.swt.graphics.Image;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-
-/**
- * Activator for this plugin.
- *
- * @author Eugen Neufeld
- *
- */
-public class Activator extends Plugin {
-
-	private static Activator instance;
-	private ServiceReference<ImageRegistryService> imageRegistryServiceReference;
-
-	// BEGIN SUPRESS CATCH EXCEPTION
-	@Override
-	public void start(BundleContext bundleContext) throws Exception {
-		instance = this;
-		super.start(bundleContext);
-	}
-
-	@Override
-	public void stop(BundleContext bundleContext) throws Exception {
-		instance = null;
-		super.stop(bundleContext);
-	}
-
-	// END SUPRESS CATCH EXCEPTION
-
-	/**
-	 * Finds and returns an image for the provided path.
-	 *
-	 * @param path the path to get the image from
-	 * @return the image or null if nothing could be found
-	 */
-	public static Image getImage(String path) {
-
-		final Image image = instance.getImageRegistryService().getImage(instance.getBundle(), path);
-
-		instance.getBundle().getBundleContext().ungetService(instance.imageRegistryServiceReference);
-
-		return image;
-	}
-
-	private ImageRegistryService getImageRegistryService() {
-		if (imageRegistryServiceReference == null) {
-			imageRegistryServiceReference = getBundle().getBundleContext()
-				.getServiceReference(ImageRegistryService.class);
-		}
-		return getBundle().getBundleContext().getService(imageRegistryServiceReference);
-	}
-}
diff --git a/bundles/org.eclipse.emf.ecp.view.control.multireference/src/org/eclipse/emf/ecp/view/internal/control/multireference/MessageKeys.java b/bundles/org.eclipse.emf.ecp.view.control.multireference/src/org/eclipse/emf/ecp/view/internal/control/multireference/MessageKeys.java
new file mode 100644
index 0000000..655df24
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.control.multireference/src/org/eclipse/emf/ecp/view/internal/control/multireference/MessageKeys.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.control.multireference;
+
+/**
+ * Keys for translated strings.
+ *
+ * @author Eugen Neufeld
+ * @generated
+ */
+public interface MessageKeys {
+	/**
+	 * Add Existing Tooltip.
+	 */
+	String MultiReferenceSWTRenderer_addExistingTooltip = "MultiReferenceSWTRenderer_addExistingTooltip"; //$NON-NLS-1$
+	/**
+	 * Add New Tooltip.
+	 */
+	String MultiReferenceSWTRenderer_addNewTooltip = "MultiReferenceSWTRenderer_addNewTooltip"; //$NON-NLS-1$
+	String MultiReferenceSWTRenderer_deleteTooltip = "MultiReferenceSWTRenderer_deleteTooltip"; //$NON-NLS-1$
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.control.multireference/src/org/eclipse/emf/ecp/view/internal/control/multireference/Messages.java b/bundles/org.eclipse.emf.ecp.view.control.multireference/src/org/eclipse/emf/ecp/view/internal/control/multireference/Messages.java
deleted file mode 100644
index b71126e..0000000
--- a/bundles/org.eclipse.emf.ecp.view.control.multireference/src/org/eclipse/emf/ecp/view/internal/control/multireference/Messages.java
+++ /dev/null
@@ -1,42 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eugen Neufeld - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.internal.control.multireference;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Messages file.
- *
- * @generated
- *
- * @author Eugen Neufeld
- *
- */
-public final class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.emf.ecp.view.control.multireference.messages"; //$NON-NLS-1$
-	/**
-	 * Add Existing Tooltip.
-	 */
-	public static String MultiReferenceSWTRenderer_addExistingTooltip;
-	/**
-	 * Add New Tooltip.
-	 */
-	public static String MultiReferenceSWTRenderer_addNewTooltip;
-	public static String MultiReferenceSWTRenderer_deleteTooltip;
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	private Messages() {
-	}
-}
diff --git a/bundles/org.eclipse.emf.ecp.view.control.multireference/src/org/eclipse/emf/ecp/view/internal/control/multireference/MultiReferenceRendererTester.java b/bundles/org.eclipse.emf.ecp.view.control.multireference/src/org/eclipse/emf/ecp/view/internal/control/multireference/MultiReferenceRendererTester.java
deleted file mode 100644
index d02059c..0000000
--- a/bundles/org.eclipse.emf.ecp.view.control.multireference/src/org/eclipse/emf/ecp/view/internal/control/multireference/MultiReferenceRendererTester.java
+++ /dev/null
@@ -1,62 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eugen Neufeld - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.internal.control.multireference;
-
-import java.util.Iterator;
-
-import org.eclipse.emf.ecore.EAttribute;
-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.model.VControl;
-import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
-import org.eclipse.emf.ecp.view.spi.model.VElement;
-
-/**
- * Tester for MultiReference Control.
- *
- * @author Eugen Neufeld
- *
- */
-public class MultiReferenceRendererTester implements ECPRendererTester {
-
-	@Override
-	public int isApplicable(VElement vElement, ViewModelContext viewModelContext) {
-		if (!VControl.class.isInstance(vElement)) {
-			return NOT_APPLICABLE;
-		}
-		final VControl vControl = (VControl) vElement;
-		final VDomainModelReference domainModelReference = vControl.getDomainModelReference();
-		if (domainModelReference == null) {
-			return NOT_APPLICABLE;
-		}
-		EStructuralFeature feature = null;
-		int count = 0;
-		final Iterator<EStructuralFeature> structuralFeatureIterator = domainModelReference
-			.getEStructuralFeatureIterator();
-		while (structuralFeatureIterator.hasNext()) {
-			feature = structuralFeatureIterator.next();
-			count++;
-		}
-		if (count != 1) {
-			return NOT_APPLICABLE;
-		}
-		if (!feature.isMany()) {
-			return NOT_APPLICABLE;
-		}
-		if (EAttribute.class.isInstance(feature)) {
-			return NOT_APPLICABLE;
-		}
-		return 5;
-	}
-
-}
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 fb0a7aa..b31faab 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
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
  *
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -8,34 +8,51 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
+ * Lucas Koehler - use data binding services
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.control.multireference;
 
-import java.util.Iterator;
+import java.util.Collection;
 import java.util.List;
 
+import javax.inject.Inject;
+
+import org.eclipse.core.databinding.observable.IObserving;
 import org.eclipse.core.databinding.observable.list.IObservableList;
+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.databinding.edit.EMFEditObservables;
+import org.eclipse.emf.databinding.EMFDataBindingContext;
 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.ecp.edit.internal.swt.controls.TableViewerColumnBuilder;
+import org.eclipse.emf.ecp.edit.spi.DeleteService;
+import org.eclipse.emf.ecp.edit.spi.EMFDeleteServiceImpl;
 import org.eclipse.emf.ecp.edit.spi.ReferenceService;
 import org.eclipse.emf.ecp.view.model.common.edit.provider.CustomReflectiveItemProviderAdapterFactory;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.core.swt.AbstractControlSWTRenderer;
 import org.eclipse.emf.ecp.view.spi.model.VControl;
 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.layout.GridDescriptionFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
+import org.eclipse.emf.ecp.view.spi.swt.reporting.RenderingFailedReport;
+import org.eclipse.emf.ecp.view.spi.util.swt.ImageRegistryService;
+import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
 import org.eclipse.emf.edit.command.RemoveCommand;
 import org.eclipse.emf.edit.domain.EditingDomain;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
 import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+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.label.EMFFormsLabelProvider;
+import org.eclipse.emfforms.spi.core.services.label.NoLabelFoundException;
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
+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.jface.databinding.swt.SWTObservables;
 import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.layout.GridLayoutFactory;
@@ -56,12 +73,14 @@
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.TableColumn;
+import org.osgi.framework.FrameworkUtil;
 
 /**
  * Renderer for MultiReferenceControl.
@@ -72,15 +91,38 @@
 @SuppressWarnings("restriction")
 public class MultiReferenceSWTRenderer extends AbstractControlSWTRenderer<VControl> {
 
+	private final ImageRegistryService imageRegistryService;
+
+	/**
+	 * 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 MultiReferenceSWTRenderer(VControl vElement, ViewModelContext viewContext, ReportService reportService,
+		EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider,
+		VTViewTemplateProvider vtViewTemplateProvider, ImageRegistryService imageRegistryService) {
+		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider);
+		this.imageRegistryService = imageRegistryService;
+		viewModelDBC = new EMFDataBindingContext();
+	}
+
 	private Label validationIcon;
 	private AdapterFactoryLabelProvider labelProvider;
 	private ComposedAdapterFactory composedAdapterFactory;
 	private TableViewer tableViewer;
+	private final EMFDataBindingContext viewModelDBC;
 
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#getGridDescription(org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription)
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#getGridDescription(org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription)
 	 */
 	@Override
 	public SWTGridDescription getGridDescription(SWTGridDescription gridDescription) {
@@ -90,7 +132,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#renderControl(org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell,
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#renderControl(org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell,
 	 *      org.eclipse.emf.ecp.view.spi.swt.Composite)
 	 */
 	@Override
@@ -104,15 +146,13 @@
 		composite.setLayout(new GridLayout(1, false));
 		composite.setBackgroundMode(SWT.INHERIT_FORCE);
 
-		final Iterator<Setting> settings = getVElement().getDomainModelReference().getIterator();
-		if (!settings.hasNext()) {
-			return null;
+		try {
+			createTitleComposite(composite);
+		} catch (final DatabindingFailedException ex) {
+			getReportService().report(new RenderingFailedReport(ex));
+			return createErrorLabel(parent, ex);
 		}
 
-		final Setting mainSetting = settings.next();
-
-		createTitleComposite(composite, mainSetting);
-
 		createLabelProvider();
 
 		final Composite controlComposite = new Composite(composite, SWT.NONE);
@@ -120,11 +160,29 @@
 			.hint(1, 300)
 			.applyTo(controlComposite);
 		GridLayoutFactory.fillDefaults().numColumns(1).applyTo(controlComposite);
-		createContent(controlComposite, mainSetting);
+		try {
+			createContent(controlComposite);
+		} catch (final DatabindingFailedException ex) {
+			getReportService().report(new RenderingFailedReport(ex));
+			return createErrorLabel(parent, ex);
+		}
 
 		return composite;
 	}
 
+	/**
+	 * Creates an error label for the given {@link Exception}.
+	 *
+	 * @param parent The parent of the {@link Label}
+	 * @param ex The {@link Exception} causing the error
+	 * @return The error {@link Label}
+	 */
+	protected Control createErrorLabel(Composite parent, final Exception ex) {
+		final Label errorLabel = new Label(parent, SWT.NONE);
+		errorLabel.setText(ex.getMessage());
+		return errorLabel;
+	}
+
 	private void createLabelProvider() {
 		composedAdapterFactory = new ComposedAdapterFactory(new AdapterFactory[] {
 			new CustomReflectiveItemProviderAdapterFactory(),
@@ -142,11 +200,12 @@
 	protected void dispose() {
 		composedAdapterFactory.dispose();
 		labelProvider.dispose();
+		viewModelDBC.dispose();
 		super.dispose();
 	}
 
-	private void createTitleComposite(Composite composite, final Setting mainSetting)
-		throws NoPropertyDescriptorFoundExeption {
+	private void createTitleComposite(Composite composite)
+		throws NoPropertyDescriptorFoundExeption, DatabindingFailedException {
 		final Composite titleComposite = new Composite(composite, SWT.NONE);
 		titleComposite.setBackgroundMode(SWT.INHERIT_FORCE);
 		GridDataFactory.fillDefaults().grab(true, false).align(SWT.FILL, SWT.BEGINNING)
@@ -166,10 +225,17 @@
 		GridDataFactory.fillDefaults().grab(true, false).align(SWT.END, SWT.FILL)
 			.applyTo(buttonComposite);
 
+		final IObservableValue observableValue = getEMFFormsDatabinding()
+			.getObservableValue(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
+		final EObject eObject = (EObject) ((IObserving) observableValue).getObserved();
+		final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+		observableValue.dispose();
+
 		final Button btnAddExisting = new Button(buttonComposite, SWT.PUSH);
 		GridDataFactory.fillDefaults().grab(true, true).align(SWT.FILL, SWT.FILL).applyTo(btnAddExisting);
-		btnAddExisting.setImage(Activator.getImage("icons/link.png")); //$NON-NLS-1$
-		btnAddExisting.setToolTipText(Messages.MultiReferenceSWTRenderer_addExistingTooltip);
+		btnAddExisting.setImage(getImage("icons/link.png")); //$NON-NLS-1$
+		btnAddExisting.setToolTipText(LocalizationServiceHelper.getString(getClass(),
+			MessageKeys.MultiReferenceSWTRenderer_addExistingTooltip));
 		btnAddExisting.addSelectionListener(new SelectionAdapter() {
 
 			/**
@@ -180,15 +246,16 @@
 			@Override
 			public void widgetSelected(SelectionEvent e) {
 				super.widgetSelected(e);
-				handleAddExisting(tableViewer, mainSetting);
+				handleAddExisting(tableViewer, eObject, structuralFeature);
 			}
 
 		});
 
 		final Button btnAddNew = new Button(buttonComposite, SWT.PUSH);
 		GridDataFactory.fillDefaults().grab(true, true).align(SWT.FILL, SWT.FILL).applyTo(btnAddNew);
-		btnAddNew.setImage(Activator.getImage("icons/link_add.png")); //$NON-NLS-1$
-		btnAddNew.setToolTipText(Messages.MultiReferenceSWTRenderer_addNewTooltip);
+		btnAddNew.setImage(getImage("icons/link_add.png")); //$NON-NLS-1$
+		btnAddNew.setToolTipText(LocalizationServiceHelper.getString(getClass(),
+			MessageKeys.MultiReferenceSWTRenderer_addNewTooltip));
 		btnAddNew.addSelectionListener(new SelectionAdapter() {
 
 			/**
@@ -199,15 +266,16 @@
 			@Override
 			public void widgetSelected(SelectionEvent e) {
 				super.widgetSelected(e);
-				handleAddNew(tableViewer, mainSetting);
+				handleAddNew(tableViewer, eObject, structuralFeature);
 			}
 
 		});
 
 		final Button btnDelete = new Button(buttonComposite, SWT.PUSH);
 		GridDataFactory.fillDefaults().grab(true, true).align(SWT.FILL, SWT.FILL).applyTo(btnDelete);
-		btnDelete.setImage(Activator.getImage("icons/delete.png")); //$NON-NLS-1$
-		btnDelete.setToolTipText(Messages.MultiReferenceSWTRenderer_deleteTooltip);
+		btnDelete.setImage(getImage("icons/unset_reference.png")); //$NON-NLS-1$
+		btnDelete.setToolTipText(LocalizationServiceHelper.getString(getClass(),
+			MessageKeys.MultiReferenceSWTRenderer_deleteTooltip));
 		btnDelete.addSelectionListener(new SelectionAdapter() {
 
 			/**
@@ -218,7 +286,7 @@
 			@Override
 			public void widgetSelected(SelectionEvent e) {
 				super.widgetSelected(e);
-				handleDelete(tableViewer, mainSetting);
+				handleDelete(tableViewer, eObject, structuralFeature);
 			}
 
 		});
@@ -230,7 +298,11 @@
 
 	}
 
-	private void createContent(Composite composite, Setting mainSetting) {
+	private Image getImage(String path) {
+		return imageRegistryService.getImage(FrameworkUtil.getBundle(getClass()), path);
+	}
+
+	private void createContent(Composite composite) throws DatabindingFailedException {
 		tableViewer = new TableViewer(composite, SWT.MULTI | SWT.V_SCROLL | SWT.FULL_SELECTION
 			| SWT.BORDER);
 		tableViewer.getTable().setData(CUSTOM_VARIANT, "org_eclipse_emf_ecp_control_multireference"); //$NON-NLS-1$
@@ -257,31 +329,37 @@
 
 		final ObservableListContentProvider cp = new ObservableListContentProvider();
 
-		final EStructuralFeature eStructuralFeature = mainSetting.getEStructuralFeature();
-		String text = eStructuralFeature.getName();
-		String tooltipText = eStructuralFeature.getName();
-		final IItemPropertyDescriptor itemPropertyDescriptor = getItemPropertyDescriptor(mainSetting);
-		if (itemPropertyDescriptor != null) {
-			text = itemPropertyDescriptor.getDisplayName(null);
-			tooltipText = itemPropertyDescriptor.getDescription(null);
-		}
+		final EMFFormsLabelProvider labelService = getEMFFormsLabelProvider();
 
 		final TableViewerColumn column = TableViewerColumnBuilder
 			.create()
-			.setText(text)
-			.setToolTipText(tooltipText)
 			.setResizable(false)
 			.setMoveable(false)
 			.setStyle(SWT.NONE)
 			.build(tableViewer);
 
+		final IObservableValue textObservableValue = SWTObservables.observeText(column.getColumn());
+		final IObservableValue tooltipObservableValue = SWTObservables.observeTooltipText(column.getColumn());
+		try {
+			viewModelDBC.bindValue(textObservableValue,
+				labelService.getDisplayName(getVElement().getDomainModelReference(), getViewModelContext()
+					.getDomainModel()));
+
+			viewModelDBC.bindValue(tooltipObservableValue,
+				labelService.getDescription(getVElement().getDomainModelReference(), getViewModelContext()
+					.getDomainModel()));
+		} catch (final NoLabelFoundException e) {
+			// FIXME Expectations?
+			getReportService().report(new RenderingFailedReport(e));
+		}
+
 		column.getColumn().addSelectionListener(
 			getSelectionAdapter(tableViewer, comparator, column.getColumn(), 0));
 
 		tableViewer.setLabelProvider(labelProvider);
 		tableViewer.setContentProvider(cp);
-		final IObservableList list = EMFEditObservables.observeList(getEditingDomain(mainSetting),
-			mainSetting.getEObject(), mainSetting.getEStructuralFeature());
+		final IObservableList list = getEMFFormsDatabinding()
+			.getObservableList(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
 		tableViewer.setInput(list);
 
 		final TableColumnLayout layout = new TableColumnLayout();
@@ -330,24 +408,24 @@
 	 * Method for adding an existing element.
 	 *
 	 * @param tableViewer the {@link TableViewer}
-	 * @param setting the {@link Setting} to add to
+	 * @param eObject The {@link EObject} to add to
+	 * @param structuralFeature The corresponding {@link EStructuralFeature}
 	 */
-	protected void handleAddExisting(TableViewer tableViewer, Setting setting) {
+	protected void handleAddExisting(TableViewer tableViewer, EObject eObject, EStructuralFeature structuralFeature) {
 		final ReferenceService referenceService = getViewModelContext().getService(ReferenceService.class);
-		referenceService.addExistingModelElements(setting.getEObject(), (EReference) setting.getEStructuralFeature());
-		referenceService.openInNewContext(setting.getEObject());
+		referenceService.addExistingModelElements(eObject, (EReference) structuralFeature);
 	}
 
 	/**
 	 * Method for adding a new element.
 	 *
 	 * @param tableViewer the {@link TableViewer}
-	 * @param setting the {@link Setting} to add to
+	 * @param eObject The {@link EObject} to add to
+	 * @param structuralFeature The corresponding {@link EStructuralFeature}
 	 */
-	protected void handleAddNew(TableViewer tableViewer, Setting setting) {
+	protected void handleAddNew(TableViewer tableViewer, EObject eObject, EStructuralFeature structuralFeature) {
 		final ReferenceService referenceService = getViewModelContext().getService(ReferenceService.class);
-		referenceService.addNewModelElements(setting.getEObject(),
-			(EReference) setting.getEStructuralFeature());
+		referenceService.addNewModelElements(eObject, (EReference) structuralFeature);
 
 	}
 
@@ -355,15 +433,43 @@
 	 * Method for deleting elements.
 	 *
 	 * @param tableViewer the {@link TableViewer}
-	 * @param mainSetting the {@link Setting} to delete from
+	 * @param eObject The {@link EObject} to delete from
+	 * @param structuralFeature The corresponding {@link EStructuralFeature}
 	 */
-	protected void handleDelete(TableViewer tableViewer, Setting mainSetting) {
-		final List<?> deletionList = IStructuredSelection.class.cast(tableViewer.getSelection()).toList();
+	protected void handleDelete(TableViewer tableViewer, EObject eObject, EStructuralFeature structuralFeature) {
 
-		final EObject modelElement = mainSetting.getEObject();
-		final EditingDomain editingDomain = getEditingDomain(mainSetting);
-		editingDomain.getCommandStack().execute(
-			RemoveCommand.create(editingDomain, modelElement, mainSetting.getEStructuralFeature(), deletionList));
+		@SuppressWarnings("unchecked")
+		final List<Object> deletionList = IStructuredSelection.class.cast(tableViewer.getSelection()).toList();
+		final EditingDomain editingDomain = getEditingDomain(eObject);
+
+		/* assured by #isApplicable */
+		final EReference reference = EReference.class.cast(structuralFeature);
+
+		if (reference.isContainment()) {
+			DeleteService deleteService = getViewModelContext().getService(DeleteService.class);
+			if (deleteService == null) {
+				/*
+				 * #getService(Class<?>) will report to the reportservice if it could not be found
+				 * Use Default
+				 */
+				deleteService = new EMFDeleteServiceImpl();
+			}
+			deleteService.deleteElements(deletionList);
+		} else {
+			removeElements(editingDomain, eObject, reference, deletionList);
+		}
+	}
+
+	private void removeElements(EditingDomain editingDomain, Object source, EStructuralFeature feature,
+		Collection<Object> toRemove) {
+		final Command removeCommand = RemoveCommand.create(editingDomain, source, feature, toRemove);
+		if (removeCommand.canExecute()) {
+			if (editingDomain.getCommandStack() == null) {
+				removeCommand.execute();
+			} else {
+				editingDomain.getCommandStack().execute(removeCommand);
+			}
+		}
 	}
 
 	/**
diff --git a/bundles/org.eclipse.emf.ecp.view.control.multireference/src/org/eclipse/emf/ecp/view/internal/control/multireference/MultiReferenceSWTRendererService.java b/bundles/org.eclipse.emf.ecp.view.control.multireference/src/org/eclipse/emf/ecp/view/internal/control/multireference/MultiReferenceSWTRendererService.java
new file mode 100644
index 0000000..898bdb4
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.control.multireference/src/org/eclipse/emf/ecp/view/internal/control/multireference/MultiReferenceSWTRendererService.java
@@ -0,0 +1,102 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.control.multireference;
+
+import org.eclipse.core.databinding.property.value.IValueProperty;
+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.model.VControl;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+
+/**
+ * MultiReferenceSWTRendererService which provides the MultiReferenceSWTRenderer.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class MultiReferenceSWTRendererService implements EMFFormsDIRendererService<VControl> {
+
+	private EMFFormsDatabinding databindingService;
+	private ReportService reportService;
+
+	/**
+	 * Called by the initializer to set the EMFFormsDatabinding.
+	 *
+	 * @param databindingService The EMFFormsDatabinding
+	 */
+	protected void setEMFFormsDatabinding(EMFFormsDatabinding databindingService) {
+		this.databindingService = databindingService;
+	}
+
+	/**
+	 * Called by the initializer to set the ReportService.
+	 *
+	 * @param reportService The ReportService
+	 */
+	protected void setReportService(ReportService reportService) {
+		this.reportService = reportService;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (!VControl.class.isInstance(vElement)) {
+			return NOT_APPLICABLE;
+		}
+		final VControl vControl = (VControl) vElement;
+		final VDomainModelReference domainModelReference = vControl.getDomainModelReference();
+		if (domainModelReference == null) {
+			return NOT_APPLICABLE;
+		}
+		final VControl control = (VControl) vElement;
+
+		IValueProperty valueProperty;
+		try {
+			valueProperty = databindingService
+				.getValueProperty(control.getDomainModelReference(), viewModelContext.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			reportService.report(new DatabindingFailedReport(ex));
+			return NOT_APPLICABLE;
+		}
+		final EStructuralFeature feature = (EStructuralFeature) valueProperty.getValueType();
+		if (!feature.isMany()) {
+			return NOT_APPLICABLE;
+		}
+		if (EAttribute.class.isInstance(feature)) {
+			return NOT_APPLICABLE;
+		}
+		return 5;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#getRendererClass()
+	 */
+	@Override
+	public Class<? extends AbstractSWTRenderer<VControl>> getRendererClass() {
+		return MultiReferenceSWTRenderer.class;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/.project b/bundles/org.eclipse.emf.ecp.view.core.swt/.project
index 22bcad8..c085f6f 100644
--- a/bundles/org.eclipse.emf.ecp.view.core.swt/.project
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/.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.core.swt/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.core.swt/.settings/.api_filters
new file mode 100644
index 0000000..64a347b
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/.settings/.api_filters
@@ -0,0 +1,203 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<component id="org.eclipse.emf.ecp.view.core.swt" version="2">
+    <resource path="META-INF/MANIFEST.MF">
+        <filter comment="SPI Change in 1.6" id="923795461">
+            <message_arguments>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/core/swt/AbstractControlSWTRenderer.java" type="org.eclipse.emf.ecp.view.spi.core.swt.AbstractControlSWTRenderer">
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.AbstractControlSWTRenderer"/>
+                <message_argument value="AbstractControlSWTRenderer()"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Change in 1.6" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.AbstractControlSWTRenderer"/>
+                <message_argument value="getEditingDomain(EStructuralFeature.Setting)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Change in 1.6" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.AbstractControlSWTRenderer"/>
+                <message_argument value="getItemPropertyDescriptor(EStructuralFeature.Setting)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Change in 1.6" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.AbstractControlSWTRenderer"/>
+                <message_argument value="getModelValue(EStructuralFeature.Setting)"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/core/swt/ContainerSWTRenderer.java" type="org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer">
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer"/>
+                <message_argument value="ContainerSWTRenderer()"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer"/>
+                <message_argument value="ContainerSWTRenderer(SWTRendererFactory)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer"/>
+                <message_argument value="getGridDescription(SWTGridDescription)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer"/>
+                <message_argument value="renderControl(SWTGridCell, Composite)"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/core/swt/SimpleControlJFaceViewerSWTRenderer.java" type="org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlJFaceViewerSWTRenderer">
+        <filter comment="SPI Change in 1.6" id="336695337">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlJFaceViewerSWTRenderer"/>
+                <message_argument value="createBindings(Viewer)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Change in 1.6" id="336695337">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlJFaceViewerSWTRenderer"/>
+                <message_argument value="createJFaceViewer(Composite)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlJFaceViewerSWTRenderer"/>
+                <message_argument value="SimpleControlJFaceViewerSWTRenderer()"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlJFaceViewerSWTRenderer"/>
+                <message_argument value="SimpleControlJFaceViewerSWTRenderer(SWTRendererFactory)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Change in 1.6" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlJFaceViewerSWTRenderer"/>
+                <message_argument value="createBindings(Viewer, EStructuralFeature.Setting)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Change in 1.6" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlJFaceViewerSWTRenderer"/>
+                <message_argument value="createJFaceViewer(Composite, EStructuralFeature.Setting)"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/core/swt/SimpleControlSWTControlSWTRenderer.java" type="org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer">
+        <filter comment="SPI Change in 1.6" id="336695337">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer"/>
+                <message_argument value="createBindings(Control)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Change in 1.6" id="336695337">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer"/>
+                <message_argument value="createSWTControl(Composite)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer"/>
+                <message_argument value="SimpleControlSWTControlSWTRenderer()"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer"/>
+                <message_argument value="SimpleControlSWTControlSWTRenderer(SWTRendererFactory)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Change in 1.6" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer"/>
+                <message_argument value="createBindings(Control, EStructuralFeature.Setting)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Change in 1.6" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer"/>
+                <message_argument value="createSWTControl(Composite, EStructuralFeature.Setting)"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/core/swt/SimpleControlSWTRenderer.java" type="org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTRenderer">
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTRenderer"/>
+                <message_argument value="SimpleControlSWTRenderer()"/>
+            </message_arguments>
+        </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTRenderer"/>
+                <message_argument value="getGridDescription(SWTGridDescription)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTRenderer"/>
+                <message_argument value="renderControl(SWTGridCell, Composite)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTRenderer"/>
+                <message_argument value="setControlEnabled(SWTGridCell, Control, boolean)"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/core/swt/renderer/TextControlSWTRenderer.java" type="org.eclipse.emf.ecp.view.spi.core.swt.renderer.TextControlSWTRenderer">
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.renderer.TextControlSWTRenderer"/>
+                <message_argument value="TextControlSWTRenderer()"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.renderer.TextControlSWTRenderer"/>
+                <message_argument value="TextControlSWTRenderer(SWTRendererFactory)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Change in 1.6" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.renderer.TextControlSWTRenderer"/>
+                <message_argument value="createBindings(Control, EStructuralFeature.Setting)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Change in 1.6" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.renderer.TextControlSWTRenderer"/>
+                <message_argument value="createSWTControl(Composite, EStructuralFeature.Setting)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Change in 1.6" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.renderer.TextControlSWTRenderer"/>
+                <message_argument value="getTextMessage(EStructuralFeature.Setting)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.renderer.TextControlSWTRenderer"/>
+                <message_argument value="setControlEnabled(SWTGridCell, Control, boolean)"/>
+            </message_arguments>
+        </filter>
+    </resource>
+</component>
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 5d0eae7..c9ed392 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Core SWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.core.swt;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.internal.core.swt.Activator
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
@@ -11,10 +11,19 @@
  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.core.databinding.property;bundle-version="1.4.200",
- org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.5.0,2.0.0)"
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.5.0,2.0.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.6.0,2.0.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.6.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.jface.databinding.swt;version="0.0.0",
+Import-Package: org.eclipse.emfforms.spi.common.locale;version="1.6.0",
+ org.eclipse.emfforms.spi.common.report;version="1.6.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",
@@ -27,10 +36,12 @@
  org.eclipse.swt.layout;version="0.0.0",
  org.eclipse.swt.widgets;version="0.0.0"
 Export-Package: org.eclipse.emf.ecp.view.internal.core.swt;version="1.
- 5.1";x-internal:=true,org.eclipse.emf.ecp.view.internal.core.swt.rend
- erer;version="1.5.1";x-friends:="org.eclipse.emf.ecp.ui.view.editor.c
+ 6.0";x-internal:=true,org.eclipse.emf.ecp.view.internal.core.swt.rend
+ erer;version="1.6.0";x-friends:="org.eclipse.emf.ecp.ui.view.editor.c
  ontrols,org.eclipse.emf.ecp.view.context.test",org.eclipse.emf.ecp.vi
- ew.spi.core.swt;version="1.5.1"; uses:="org.eclipse.emf.ecp.ui.view.s
+ ew.spi.core.swt;version="1.6.0"; uses:="org.eclipse.emf.ecp.ui.view.s
  wt.internal,  org.eclipse.emf.ecp.view.spi.model,  org.eclipse.swt.wi
  dgets,  org.eclipse.emf.ecp.view.spi.context",org.eclipse.emf.ecp.vie
- w.spi.core.swt.renderer;version="1.5.1"
+ w.spi.core.swt.renderer;version="1.6.0"
+Service-Component: OSGI-INF/booleanControlService.xml,OSGI-INF/dateTimeControlService.xml,OSGI-INF/enumControlService.xml,OSGI-INF/numberControlService.xml,OSGI-INF/textControlService.xml,OSGI-INF/xmlDateControlService.xml,
+ OSGI-INF/viewRendererService.xml
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/OSGI-INF/booleanControlService.xml b/bundles/org.eclipse.emf.ecp.view.core.swt/OSGI-INF/booleanControlService.xml
new file mode 100644
index 0000000..c320c0e
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/OSGI-INF/booleanControlService.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.emf.ecp.view.core.swt.boolean">
+   <implementation class="org.eclipse.emf.ecp.view.internal.core.swt.renderer.BooleanControlSWTRendererService"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService"/>
+   </service>
+   <reference bind="setEMFFormsDatabinding" cardinality="1..1" interface="org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding" name="EMFFormsDatabinding" policy="static"/>
+   <reference bind="setReportService" cardinality="1..1" interface="org.eclipse.emfforms.spi.common.report.ReportService" name="ReportService" policy="static"/>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/OSGI-INF/dateTimeControlService.xml b/bundles/org.eclipse.emf.ecp.view.core.swt/OSGI-INF/dateTimeControlService.xml
new file mode 100644
index 0000000..64ba023
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/OSGI-INF/dateTimeControlService.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.emf.ecp.view.core.swt.datetime">
+   <implementation class="org.eclipse.emf.ecp.view.internal.core.swt.renderer.DateTimeControlSWTRendererService"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService"/>
+   </service>
+   <reference bind="setEMFFormsDatabinding" cardinality="1..1" interface="org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding" name="EMFFormsDatabinding" policy="static"/>
+   <reference bind="setReportService" cardinality="1..1" interface="org.eclipse.emfforms.spi.common.report.ReportService" name="ReportService" policy="static"/>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/OSGI-INF/enumControlService.xml b/bundles/org.eclipse.emf.ecp.view.core.swt/OSGI-INF/enumControlService.xml
new file mode 100644
index 0000000..24103ff
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/OSGI-INF/enumControlService.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.emf.ecp.view.core.swt.enum">
+   <implementation class="org.eclipse.emf.ecp.view.internal.core.swt.renderer.EnumComboViewerSWTRendererService"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService"/>
+   </service>
+   <reference bind="setEMFFormsDatabinding" cardinality="1..1" interface="org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding" name="EMFFormsDatabinding" policy="static" />
+   <reference bind="setReportService" cardinality="1..1" interface="org.eclipse.emfforms.spi.common.report.ReportService" name="ReportService" policy="static" />
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.emf.ecp.view.core.swt/OSGI-INF/l10n/bundle.properties
new file mode 100644
index 0000000..b50df7b
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/OSGI-INF/l10n/bundle.properties
@@ -0,0 +1,60 @@
+###############################################################################
+# Copyright (c) 2013-2015 EclipseSource.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#    EclipseSource - initial API and implementation
+################################################################################
+
+AbstractTextControl_InvalidInput=Invalid input
+AbstractTextControl_InvalidInputSpace=Invalid input 
+AbstractTextControl_Unset=<unset>
+
+AttributeMultiControl_NotSetClickToSet=Not set. Click to set\!
+AttributeMultiControl_Unset=Unset
+
+BooleanControl_NoBooleanSetClickToSetBoolean=No boolean set\! Click to set boolean.
+BooleanControl_UnsetBoolean=Unset boolean
+
+DateTimeControl_NoDateSetClickToSetDate=No date set\! Click to set date.
+DateTimeControl_UnsetDate=Unset Date
+DateTimeControlSWTRenderer_CleanDate=Clean Date
+DateTimeControlSWTRenderer_SelectData=Select Date
+
+EEnumControl_NoValueSetClickToSetValue=No value set\! Click to set value.
+EEnumControl_UnsetValue=Unset value
+
+LinkControl_NoLinkSetClickToSetLink=No link set\! Click to set link.
+LinkControl_NotSet=(Not Set)
+LinkControl_UnsetLink=Unset Link
+
+NumericalControl_FormatNumerical=The format is '\#'.
+NumericalControl_FormatNumericalDecimal=The format is '\#.\#'.
+NumericalControl_InvalidNumber=Invalid Number
+NumericalControl_InvalidNumberWillBeUnset=The Number you have entered is invalid. The value will be unset.
+NumericalControl_NoNumberClickToSetNumber=No number set\! Click to set number.
+NumericalControl_UnsetNumber=Unset number
+
+ReferenceMultiControl_NotSetClickToSet=Not set. Click to set\!
+ReferenceMultiControl_Unset=Unset
+
+SimpleControlSWTRenderer_Set=Set
+SimpleControlSWTRenderer_Unset=Unset
+StringControl_NoTextSetClickToSetText=No text set\! Click to set text.
+StringControl_UnsetText=Unset text
+
+TableControl_AddInstanceOf=Add an instance of 
+TableControl_Delete=Delete?
+TableControl_DeleteAreYouSure=Are you sure you want to delete the selected Elements?
+TableControl_NotSetClickToSet=Not set. Click to set\!
+TableControl_RemoveSelected=Remove the selected 
+TableControl_Unset=Unset
+TableControl_ValidationStatusColumn=Validation Status
+
+XmlDateControlText_InvalidNumber=Invalid Number
+XmlDateControlText_NoDateSetClickToSetDate=No date set\! Click to set date.
+XmlDateControlText_NumberInvalidValueWillBeUnset=The Number you have entered is invalid. The value will be unset.
+XmlDateControlText_UnsetDate=Unset date
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/OSGI-INF/numberControlService.xml b/bundles/org.eclipse.emf.ecp.view.core.swt/OSGI-INF/numberControlService.xml
new file mode 100644
index 0000000..e566f15
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/OSGI-INF/numberControlService.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.emf.ecp.view.core.swt.number">
+   <implementation class="org.eclipse.emf.ecp.view.internal.core.swt.renderer.NumberControlSWTRendererService"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService"/>
+   </service>
+   <reference bind="setEMFFormsDatabinding" cardinality="1..1" interface="org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding" name="EMFFormsDatabinding" policy="static" />
+   <reference bind="setReportService" cardinality="1..1" interface="org.eclipse.emfforms.spi.common.report.ReportService" name="ReportService" policy="static" />
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/OSGI-INF/textControlService.xml b/bundles/org.eclipse.emf.ecp.view.core.swt/OSGI-INF/textControlService.xml
new file mode 100644
index 0000000..58bd88b
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/OSGI-INF/textControlService.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.emf.ecp.view.core.swt.text">
+   <implementation class="org.eclipse.emf.ecp.view.internal.core.swt.renderer.TextControlSWTRendererService"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService"/>
+   </service>
+   <reference bind="setEMFFormsDatabinding" cardinality="1..1" interface="org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding" name="EMFFormsDatabinding" policy="static" />
+   <reference bind="setReportService" cardinality="1..1" interface="org.eclipse.emfforms.spi.common.report.ReportService" name="ReportService" policy="static" />
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/OSGI-INF/viewRendererService.xml b/bundles/org.eclipse.emf.ecp.view.core.swt/OSGI-INF/viewRendererService.xml
new file mode 100644
index 0000000..dc69e68
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/OSGI-INF/viewRendererService.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emf.ecp.view.core.swt.view">
+   <implementation class="org.eclipse.emf.ecp.view.internal.core.swt.renderer.ViewSWTRendererService"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService"/>
+   </service>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/OSGI-INF/xmlDateControlService.xml b/bundles/org.eclipse.emf.ecp.view.core.swt/OSGI-INF/xmlDateControlService.xml
new file mode 100644
index 0000000..fe7d776
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/OSGI-INF/xmlDateControlService.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.emf.ecp.view.core.swt.xmldate">
+   <implementation class="org.eclipse.emf.ecp.view.internal.core.swt.renderer.XMLDateControlSWTRendererService"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService"/>
+   </service>
+   <reference bind="setEMFFormsDatabinding" cardinality="1..1" interface="org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding" name="EMFFormsDatabinding" policy="static" />
+   <reference bind="setReportService" cardinality="1..1" interface="org.eclipse.emfforms.spi.common.report.ReportService" name="ReportService" policy="static" />
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/build.properties b/bundles/org.eclipse.emf.ecp.view.core.swt/build.properties
index 461e561..d26097c 100644
--- a/bundles/org.eclipse.emf.ecp.view.core.swt/build.properties
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/build.properties
@@ -1,8 +1,16 @@
-source.. = src/
 output.. = bin/
 bin.includes = META-INF/,\
                .,\
                plugin.xml,\
                icons/,\
-               about.html
+               about.html,\
+               OSGI-INF/,\
+               OSGI-INF/booleanControlService.xml,\
+               OSGI-INF/dateTimeControlService.xml,\
+               OSGI-INF/enumControlService.xml,\
+               OSGI-INF/numberControlService.xml,\
+               OSGI-INF/textControlService.xml,\
+               OSGI-INF/xmlDateControlService.xml,\
+               OSGI-INF/viewRendererService.xml
 src.includes = about.html
+source.. = src/
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/icons/set_feature.png b/bundles/org.eclipse.emf.ecp.view.core.swt/icons/set_feature.png
new file mode 100644
index 0000000..6332fef
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/icons/set_feature.png
Binary files differ
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/icons/set_reference.png b/bundles/org.eclipse.emf.ecp.view.core.swt/icons/set_reference.png
new file mode 100644
index 0000000..00be352
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/icons/set_reference.png
Binary files differ
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/icons/unset_feature.png b/bundles/org.eclipse.emf.ecp.view.core.swt/icons/unset_feature.png
new file mode 100644
index 0000000..08f2493
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/icons/unset_feature.png
Binary files differ
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/icons/unset_reference.png b/bundles/org.eclipse.emf.ecp.view.core.swt/icons/unset_reference.png
new file mode 100644
index 0000000..f66e297
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/icons/unset_reference.png
Binary files differ
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/plugin.xml b/bundles/org.eclipse.emf.ecp.view.core.swt/plugin.xml
index 74ae7bf..acce579 100644
--- a/bundles/org.eclipse.emf.ecp.view.core.swt/plugin.xml
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/plugin.xml
@@ -5,55 +5,12 @@
    <extension
          point="org.eclipse.emf.ecp.ui.view.swt.renderers">
       <renderer
-            renderer="org.eclipse.emf.ecp.view.internal.core.swt.renderer.ViewSWTRenderer">
-         <staticTest
-               element="org.eclipse.emf.ecp.view.spi.model.VView"
-               priority="1">
-         </staticTest>
-      </renderer>
-      <renderer
             renderer="org.eclipse.emf.ecp.view.internal.core.swt.renderer.ECPLegacyControlSWTRenderer">
          <staticTest
                element="org.eclipse.emf.ecp.view.spi.model.VControl"
                priority="1">
          </staticTest>
       </renderer>
-      <renderer
-            renderer="org.eclipse.emf.ecp.view.spi.core.swt.renderer.TextControlSWTRenderer">
-         <dynamicTest
-               testClass="org.eclipse.emf.ecp.view.model.common.TextControlRendererTester">
-         </dynamicTest>
-      </renderer>
-      <renderer
-            renderer="org.eclipse.emf.ecp.view.internal.core.swt.renderer.BooleanControlSWTRenderer">
-         <dynamicTest
-               testClass="org.eclipse.emf.ecp.view.model.common.BooleanControlRendererTester">
-         </dynamicTest>
-      </renderer>
-      <renderer
-            renderer="org.eclipse.emf.ecp.view.internal.core.swt.renderer.EnumComboViewerSWTRenderer">
-         <dynamicTest
-               testClass="org.eclipse.emf.ecp.view.model.common.EnumComboViewerRendererTester">
-         </dynamicTest>
-      </renderer>
-      <renderer
-            renderer="org.eclipse.emf.ecp.view.internal.core.swt.renderer.NumberControlSWTRenderer">
-         <dynamicTest
-               testClass="org.eclipse.emf.ecp.view.model.common.NumberControlRendererTester">
-         </dynamicTest>
-      </renderer>
-      <renderer
-            renderer="org.eclipse.emf.ecp.view.internal.core.swt.renderer.DateTimeControlSWTRenderer">
-         <dynamicTest
-               testClass="org.eclipse.emf.ecp.view.model.common.DateTimeControlRendererTester">
-         </dynamicTest>
-      </renderer>
-      <renderer
-            renderer="org.eclipse.emf.ecp.view.internal.core.swt.renderer.XMLDateControlSWTRenderer">
-         <dynamicTest
-               testClass="org.eclipse.emf.ecp.view.model.common.XMLDateControlRendererTester">
-         </dynamicTest>
-      </renderer>
    </extension>
    
 </plugin>
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 d66e720..0f8848a 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.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.0-SNAPSHOT</version>

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/Activator.java b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/Activator.java
index 7d714d2..89d6f06 100644
--- a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/Activator.java
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/Activator.java
@@ -15,9 +15,7 @@
 import org.eclipse.core.runtime.Plugin;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.emf.ecp.edit.spi.ECPControlFactory;
-import org.eclipse.emf.ecp.view.spi.model.reporting.ReportService;
 import org.eclipse.emf.ecp.view.spi.util.swt.ImageRegistryService;
-import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
 import org.eclipse.swt.graphics.Image;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
@@ -30,8 +28,6 @@
 	/** The plug-in ID. */
 	public static final String PLUGIN_ID = "org.eclipse.emf.ecp.view.core.swt"; //$NON-NLS-1$
 
-	private ServiceReference<ReportService> reportServiceReference;
-
 	// The shared instance
 	private static Activator plugin;
 
@@ -133,35 +129,83 @@
 		return getBundle().getBundleContext().getService(imageRegistryServiceReference);
 	}
 
-	private VTViewTemplateProvider viewTemplate;
+	// private VTViewTemplateProvider viewTemplate;
+	//
+	// /**
+	// * Returns the currentInstance of the {@link VTViewTemplateProvider}.
+	// *
+	// * @return the {@link ECPControlFactory}
+	// */
+	// public VTViewTemplateProvider getVTViewTemplateProvider() {
+	// if (viewTemplate == null) {
+	// final ServiceReference<VTViewTemplateProvider> viewTemplateReference = plugin.getBundle()
+	// .getBundleContext()
+	// .getServiceReference(VTViewTemplateProvider.class);
+	// if (viewTemplateReference != null) {
+	// viewTemplate = plugin.getBundle().getBundleContext().getService(viewTemplateReference);
+	// }
+	// }
+	// return viewTemplate;
+	// }
+	//
+	// /**
+	// * Returns the {@link ReportService}.
+	// *
+	// * @return the {@link ReportService}
+	// */
+	// public ReportService getReportService() {
+	// if (reportServiceReference == null) {
+	// reportServiceReference = plugin.getBundle().getBundleContext()
+	// .getServiceReference(ReportService.class);
+	// }
+	// return plugin.getBundle().getBundleContext().getService(reportServiceReference);
+	// }
 
-	/**
-	 * Returns the currentInstance of the {@link VTViewTemplateProvider}.
-	 *
-	 * @return the {@link ECPControlFactory}
-	 */
-	public VTViewTemplateProvider getVTViewTemplateProvider() {
-		if (viewTemplate == null) {
-			final ServiceReference<VTViewTemplateProvider> viewTemplateReference = plugin.getBundle()
-				.getBundleContext()
-				.getServiceReference(VTViewTemplateProvider.class);
-			if (viewTemplateReference != null) {
-				viewTemplate = plugin.getBundle().getBundleContext().getService(viewTemplateReference);
-			}
-		}
-		return viewTemplate;
-	}
-
-	/**
-	 * Returns the {@link ReportService}.
-	 *
-	 * @return the {@link ReportService}
-	 */
-	public ReportService getReportService() {
-		if (reportServiceReference == null) {
-			reportServiceReference = plugin.getBundle().getBundleContext()
-				.getServiceReference(ReportService.class);
-		}
-		return plugin.getBundle().getBundleContext().getService(reportServiceReference);
-	}
+	// /**
+	// * Returns the {@link EMFFormsDatabinding} service.
+	// *
+	// * @return The {@link EMFFormsDatabinding}
+	// */
+	// public EMFFormsDatabinding getEMFFormsDatabinding() {
+	// final ServiceReference<EMFFormsDatabinding> serviceReference = plugin.getBundle().getBundleContext()
+	// .getServiceReference(EMFFormsDatabinding.class);
+	//
+	// final EMFFormsDatabinding service = plugin.getBundle().getBundleContext()
+	// .getService(serviceReference);
+	// plugin.getBundle().getBundleContext().ungetService(serviceReference);
+	//
+	// return service;
+	// }
+	//
+	// /**
+	// * Returns the {@link EMFFormsLabelProvider} service.
+	// *
+	// * @return The {@link EMFFormsLabelProvider}
+	// */
+	// public EMFFormsLabelProvider getEMFFormsLabelProvider() {
+	// final ServiceReference<EMFFormsLabelProvider> serviceReference = plugin.getBundle().getBundleContext()
+	// .getServiceReference(EMFFormsLabelProvider.class);
+	//
+	// final EMFFormsLabelProvider service = plugin.getBundle().getBundleContext()
+	// .getService(serviceReference);
+	// plugin.getBundle().getBundleContext().ungetService(serviceReference);
+	//
+	// return service;
+	// }
+	//
+	// /**
+	// * Returns the {@link EMFFormsEditSupport} service.
+	// *
+	// * @return The {@link EMFFormsEditSupport}
+	// */
+	// public EMFFormsEditSupport getEMFFormsEditSupport() {
+	// final ServiceReference<EMFFormsEditSupport> serviceReference = plugin.getBundle().getBundleContext()
+	// .getServiceReference(EMFFormsEditSupport.class);
+	//
+	// final EMFFormsEditSupport service = plugin.getBundle().getBundleContext()
+	// .getService(serviceReference);
+	// plugin.getBundle().getBundleContext().ungetService(serviceReference);
+	//
+	// return service;
+	// }
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/MessageKeys.java b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/MessageKeys.java
new file mode 100644
index 0000000..555aa2d
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/MessageKeys.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.core.swt;
+
+/**
+ * Keys for translated strings.
+ *
+ * @author Eugen Neufeld
+ * @generated
+ */
+public interface MessageKeys {
+	String XmlDateControlText_InvalidNumber = "XmlDateControlText_InvalidNumber"; //$NON-NLS-1$
+	String XmlDateControlText_NumberInvalidValueWillBeUnset = "XmlDateControlText_NumberInvalidValueWillBeUnset"; //$NON-NLS-1$
+
+	String NumericalControl_InvalidNumber = "NumericalControl_InvalidNumber"; //$NON-NLS-1$
+	String NumericalControl_InvalidNumberWillBeUnset = "NumericalControl_InvalidNumberWillBeUnset"; //$NON-NLS-1$
+	String NumericalControl_NoNumberClickToSetNumber = "NumericalControl_NoNumberClickToSetNumber"; //$NON-NLS-1$
+	String NumericalControl_FormatNumerical = "NumericalControl_FormatNumerical"; //$NON-NLS-1$
+	String NumericalControl_FormatNumericalDecimal = "NumericalControl_FormatNumericalDecimal"; //$NON-NLS-1$
+
+	String BooleanControl_NoBooleanSetClickToSetBoolean = "BooleanControl_NoBooleanSetClickToSetBoolean"; //$NON-NLS-1$
+
+	String DateTimeControlSWTRenderer_CleanDate = "DateTimeControlSWTRenderer_CleanDate"; //$NON-NLS-1$
+	String DateTimeControlSWTRenderer_SelectData = "DateTimeControlSWTRenderer_SelectData"; //$NON-NLS-1$
+	String DateTimeControl_NoDateSetClickToSetDate = "DateTimeControl_NoDateSetClickToSetDate"; //$NON-NLS-1$
+
+	String EEnumControl_NoValueSetClickToSetValue = "EEnumControl_NoValueSetClickToSetValue"; //$NON-NLS-1$
+
+	String XmlDateControlText_NoDateSetClickToSetDate = "XmlDateControlText_NoDateSetClickToSetDate"; //$NON-NLS-1$
+
+	String SimpleControlSWTRenderer_Set = "SimpleControlSWTRenderer_Set"; //$NON-NLS-1$
+	String SimpleControlSWTRenderer_Unset = "SimpleControlSWTRenderer_Unset"; //$NON-NLS-1$
+
+	String StringControl_NoTextSetClickToSetText = "StringControl_NoTextSetClickToSetText"; //$NON-NLS-1$
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/BooleanControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/BooleanControlSWTRenderer.java
index 6e717b3..a213486 100644
--- a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/BooleanControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/BooleanControlSWTRenderer.java
@@ -11,10 +11,19 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.core.swt.renderer;
 
+import javax.inject.Inject;
+
 import org.eclipse.core.databinding.Binding;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.emf.ecp.view.internal.core.swt.MessageKeys;
+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.swt.SWTRendererFactory;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+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.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
 import org.eclipse.jface.databinding.swt.SWTObservables;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Button;
@@ -26,31 +35,34 @@
  *
  */
 public class BooleanControlSWTRenderer extends SimpleControlSWTControlSWTRenderer {
-	/**
-	 * Default constructor.
-	 */
-	public BooleanControlSWTRenderer() {
-		super();
-	}
 
 	/**
-	 * Test constructor.
+	 * Default constructor.
 	 *
-	 * @param factory the {@link SWTRendererFactory} to use.
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService The {@link ReportService}
+	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
+	 * @param emfFormsLabelProvider The {@link EMFFormsLabelProvider}
+	 * @param vtViewTemplateProvider The {@link VTViewTemplateProvider}
 	 */
-	BooleanControlSWTRenderer(SWTRendererFactory factory) {
-		super(factory);
+	@Inject
+	public BooleanControlSWTRenderer(VControl vElement, ViewModelContext viewContext,
+		ReportService reportService,
+		EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider,
+		VTViewTemplateProvider vtViewTemplateProvider) {
+		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider);
 	}
 
 	@Override
-	protected Binding[] createBindings(Control control, Setting setting) {
+	protected Binding[] createBindings(Control control) throws DatabindingFailedException {
 		final Binding binding = getDataBindingContext().bindValue(SWTObservables.observeSelection(control),
-			getModelValue(setting));
+			getModelValue());
 		return new Binding[] { binding };
 	}
 
 	@Override
-	protected Control createSWTControl(final Composite parent, Setting setting) {
+	protected Control createSWTControl(final Composite parent) {
 		final Button check = new Button(parent, SWT.CHECK);
 		check.setBackground(parent.getBackground());
 		check.setData(CUSTOM_VARIANT, "org_eclipse_emf_ecp_control_boolean"); //$NON-NLS-1$
@@ -65,7 +77,8 @@
 	 */
 	@Override
 	protected String getUnsetText() {
-		return RendererMessages.BooleanControl_NoBooleanSetClickToSetBoolean;
+		return LocalizationServiceHelper
+			.getString(getClass(), MessageKeys.BooleanControl_NoBooleanSetClickToSetBoolean);
 	}
 
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/BooleanControlSWTRendererService.java b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/BooleanControlSWTRendererService.java
new file mode 100644
index 0000000..90a7ba1
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/BooleanControlSWTRendererService.java
@@ -0,0 +1,111 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.core.swt.renderer;
+
+import org.eclipse.core.databinding.property.value.IValueProperty;
+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.model.VControl;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+
+/**
+ * BooleanControlSWTRendererService which provides the BooleanControlSWTRenderer.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class BooleanControlSWTRendererService implements EMFFormsDIRendererService<VControl> {
+
+	private EMFFormsDatabinding databindingService;
+	private ReportService reportService;
+
+	/**
+	 * Called by the initializer to set the EMFFormsDatabinding.
+	 *
+	 * @param databindingService The EMFFormsDatabinding
+	 */
+	protected void setEMFFormsDatabinding(EMFFormsDatabinding databindingService) {
+		this.databindingService = databindingService;
+	}
+
+	/**
+	 * Called by the initializer to set the ReportService.
+	 *
+	 * @param reportService The ReportService
+	 */
+	protected void setReportService(ReportService reportService) {
+		this.reportService = reportService;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (!VControl.class.isInstance(vElement)) {
+			return NOT_APPLICABLE;
+		}
+		final VControl control = (VControl) vElement;
+		IValueProperty valueProperty;
+		try {
+			valueProperty = databindingService.getValueProperty(control.getDomainModelReference(),
+				viewModelContext.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			reportService.report(new DatabindingFailedReport(ex));
+			return NOT_APPLICABLE;
+		}
+		final EStructuralFeature eStructuralFeature = EStructuralFeature.class.cast(valueProperty.getValueType());
+		if (eStructuralFeature.isMany()) {
+			return NOT_APPLICABLE;
+		}
+		if (!EAttribute.class.isInstance(eStructuralFeature)) {
+			return NOT_APPLICABLE;
+		}
+		final EAttribute eAttribute = EAttribute.class.cast(eStructuralFeature);
+
+		final Class<?> instanceClass = eAttribute.getEAttributeType().getInstanceClass();
+		if (instanceClass == null) {
+			return NOT_APPLICABLE;
+		}
+		// if the attribute class is an primitive test the primitive types
+		if (instanceClass.isPrimitive()) {
+			if (!boolean.class.equals(instanceClass)) {
+				return NOT_APPLICABLE;
+			}
+		}
+		// otherwise test the classes itself
+		else if (!Boolean.class.isAssignableFrom(instanceClass)) {
+			return NOT_APPLICABLE;
+		}
+		return 3d;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#getRendererClass()
+	 */
+	@Override
+	public Class<? extends AbstractSWTRenderer<VControl>> getRendererClass() {
+		return BooleanControlSWTRenderer.class;
+	}
+
+}
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 0cb723c..7e1ea28 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
@@ -14,20 +14,32 @@
 import java.util.Calendar;
 import java.util.Locale;
 
+import javax.inject.Inject;
+
 import org.eclipse.core.databinding.Binding;
 import org.eclipse.core.databinding.UpdateValueStrategy;
+import org.eclipse.core.databinding.observable.IObserving;
 import org.eclipse.core.databinding.observable.value.DateAndTimeObservableValue;
 import org.eclipse.core.databinding.observable.value.IObservableValue;
 import org.eclipse.emf.common.command.Command;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecp.edit.spi.ViewLocaleService;
-import org.eclipse.emf.ecp.view.internal.core.swt.Activator;
+import org.eclipse.emf.ecp.view.internal.core.swt.MessageKeys;
 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.model.ModelChangeListener;
 import org.eclipse.emf.ecp.view.spi.model.ModelChangeNotification;
-import org.eclipse.emf.ecp.view.spi.swt.SWTRendererFactory;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+import org.eclipse.emf.ecp.view.spi.util.swt.ImageRegistryService;
+import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
 import org.eclipse.emf.edit.command.SetCommand;
+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.DatabindingFailedReport;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
+import org.eclipse.emfforms.spi.localization.EMFFormsLocalizationService;
 import org.eclipse.jface.databinding.swt.SWTObservables;
 import org.eclipse.jface.dialogs.IDialogLabelKeys;
 import org.eclipse.jface.layout.GridDataFactory;
@@ -46,6 +58,7 @@
 import org.eclipse.swt.widgets.DateTime;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Shell;
+import org.osgi.framework.FrameworkUtil;
 
 /**
  * A control which can handle {@link java.util.Date Date}.
@@ -55,6 +68,33 @@
  */
 public class DateTimeControlSWTRenderer extends SimpleControlSWTControlSWTRenderer {
 
+	private final EMFFormsLocalizationService localizationService;
+
+	private final ImageRegistryService imageRegistryService;
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService The {@link ReportService}
+	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
+	 * @param emfFormsLabelProvider The {@link EMFFormsLabelProvider}
+	 * @param vtViewTemplateProvider The {@link VTViewTemplateProvider}
+	 * @param localizationService The {@link EMFFormsLocalizationService}
+	 * @param imageRegistryService The {@link ImageRegistryService}
+	 */
+	@Inject
+	public DateTimeControlSWTRenderer(VControl vElement, ViewModelContext viewContext,
+		ReportService reportService,
+		EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider,
+		VTViewTemplateProvider vtViewTemplateProvider, EMFFormsLocalizationService localizationService,
+		ImageRegistryService imageRegistryService) {
+		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider);
+		this.localizationService = localizationService;
+		this.imageRegistryService = imageRegistryService;
+	}
+
 	private Label unsetLabel;
 
 	private StackLayout stackLayout;
@@ -65,29 +105,12 @@
 
 	private Shell dialog;
 
-	private Setting setting;
+	// private Setting setting;
 
 	private ModelChangeListener domainModelChangeListener;
 
-	/**
-	 * Default constructor.
-	 */
-	public DateTimeControlSWTRenderer() {
-		super();
-	}
-
-	/**
-	 * Test constructor.
-	 *
-	 * @param factory the {@link SWTRendererFactory} to use.
-	 */
-	DateTimeControlSWTRenderer(SWTRendererFactory factory) {
-		super(factory);
-	}
-
 	@Override
-	protected Binding[] createBindings(Control control, final Setting setting) {
-		this.setting = setting;
+	protected Binding[] createBindings(Control control) throws DatabindingFailedException {
 
 		final DateTime date = (DateTime) ((Composite) ((Composite) ((Composite) control).getChildren()[0])
 			.getChildren()[0]).getChildren()[0];
@@ -101,9 +124,9 @@
 		final IObservableValue dateObserver = SWTObservables.observeSelection(date);
 		final IObservableValue timeObserver = SWTObservables.observeSelection(time);
 		final IObservableValue target = new DateAndTimeObservableValue(dateObserver, timeObserver);
-		final Binding binding = getDataBindingContext().bindValue(target, getModelValue(setting));
+		final Binding binding = getDataBindingContext().bindValue(target, getModelValue());
 
-		setBtn.addSelectionListener(new SetBtnSelectionAdapterExtension(setBtn, getModelValue(setting),
+		setBtn.addSelectionListener(new SetBtnSelectionAdapterExtension(setBtn, getModelValue(),
 			getViewModelContext()));
 
 		unsetBtn.addSelectionListener(new UnsetBtnSelectionAdapterExtension());
@@ -112,9 +135,15 @@
 
 			@Override
 			public void notifyChange(ModelChangeNotification notification) {
-				if (setting.getEStructuralFeature().equals(notification.getStructuralFeature())) {
+				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());
-
 				}
 			}
 		};
@@ -137,7 +166,7 @@
 	}
 
 	@Override
-	protected Control createSWTControl(Composite parent, Setting setting) {
+	protected Control createSWTControl(Composite parent) throws DatabindingFailedException {
 		composite = new Composite(parent, SWT.NONE);
 		composite.setBackground(parent.getBackground());
 		GridLayoutFactory.fillDefaults().numColumns(2).spacing(2, 0).equalWidth(false)
@@ -175,17 +204,23 @@
 
 		final Button bUnset = new Button(dateTimeComposite, SWT.PUSH);
 		GridDataFactory.fillDefaults().grab(false, false).align(SWT.CENTER, SWT.CENTER).applyTo(bUnset);
-		bUnset.setImage(Activator.getImage("icons/delete.png")); //$NON-NLS-1$
+		bUnset
+			.setImage(imageRegistryService.getImage(FrameworkUtil.getBundle(getClass()), "icons/unset_feature.png")); //$NON-NLS-1$
 		bUnset.setData(CUSTOM_VARIANT, "org_eclipse_emf_ecp_control_dateTime_buttonUnset"); //$NON-NLS-1$
-		bUnset.setToolTipText(RendererMessages.DateTimeControlSWTRenderer_CleanDate);
+		bUnset.setToolTipText(getLocalizedString(MessageKeys.DateTimeControlSWTRenderer_CleanDate));
 
 		final Button bDate = new Button(composite, SWT.PUSH);
 		GridDataFactory.fillDefaults().grab(false, false).align(SWT.CENTER, SWT.CENTER).applyTo(bDate);
-		bDate.setImage(Activator.getImage("icons/date.png")); //$NON-NLS-1$
+		bDate.setImage(imageRegistryService.getImage(FrameworkUtil.getBundle(getClass()), "icons/date.png")); //$NON-NLS-1$
 		bDate.setData(CUSTOM_VARIANT, "org_eclipse_emf_ecp_control_dateTime_buttonSet"); //$NON-NLS-1$
-		bDate.setToolTipText(RendererMessages.DateTimeControlSWTRenderer_SelectData);
+		bDate.setToolTipText(getLocalizedString(MessageKeys.DateTimeControlSWTRenderer_SelectData));
 
-		if (setting.isSet()) {
+		final IObservableValue observableValue = getEMFFormsDatabinding()
+			.getObservableValue(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
+		final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+		final EObject eObject = (EObject) ((IObserving) observableValue).getObserved();
+		observableValue.dispose();
+		if (eObject.eIsSet(structuralFeature)) {
 			stackLayout.topControl = dateTimeComposite;
 		} else {
 			stackLayout.topControl = unsetLabel;
@@ -212,7 +247,11 @@
 	 */
 	@Override
 	protected String getUnsetText() {
-		return RendererMessages.DateTimeControl_NoDateSetClickToSetDate;
+		return getLocalizedString(MessageKeys.DateTimeControl_NoDateSetClickToSetDate);
+	}
+
+	private String getLocalizedString(String key) {
+		return localizationService.getString(getClass(), key);
 	}
 
 	/**
@@ -296,10 +335,18 @@
 
 		@Override
 		public void widgetSelected(SelectionEvent e) {
-			final Command removeCommand = SetCommand.create(getEditingDomain(setting), setting.getEObject(),
-				setting.getEStructuralFeature(), null);
-			getEditingDomain(setting).getCommandStack().execute(removeCommand);
-			updateChangeListener(getModelValue(setting).getValue());
+			try {
+				final EStructuralFeature structuralFeature = (EStructuralFeature) getModelValue().getValueType();
+				final EObject eObject = (EObject) ((IObserving) getModelValue()).getObserved();
+				final Command removeCommand = SetCommand.create(getEditingDomain(eObject), eObject, structuralFeature,
+					null);
+				getEditingDomain(eObject).getCommandStack().execute(removeCommand);
+				updateChangeListener(getModelValue().getValue());
+			} catch (final DatabindingFailedException ex) {
+				getReportService().report(new DatabindingFailedReport(ex));
+				// Do nothing. This should not happen because if getModelValue() fails, the control will never be
+				// rendered and consequently this code will never be executed.
+			}
 		}
 
 	}
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/DateTimeControlSWTRendererService.java b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/DateTimeControlSWTRendererService.java
new file mode 100644
index 0000000..afa8fad
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/DateTimeControlSWTRendererService.java
@@ -0,0 +1,106 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.core.swt.renderer;
+
+import java.util.Date;
+
+import org.eclipse.core.databinding.property.value.IValueProperty;
+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.model.VControl;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+
+/**
+ * DateTimeControlSWTRendererService which provides the {@link DateTimeControlSWTRenderer}.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class DateTimeControlSWTRendererService implements EMFFormsDIRendererService<VControl> {
+
+	private EMFFormsDatabinding databindingService;
+	private ReportService reportService;
+
+	/**
+	 * Called by the initializer to set the EMFFormsDatabinding.
+	 *
+	 * @param databindingService The EMFFormsDatabinding
+	 */
+	protected void setEMFFormsDatabinding(EMFFormsDatabinding databindingService) {
+		this.databindingService = databindingService;
+	}
+
+	/**
+	 * Called by the initializer to set the ReportService.
+	 *
+	 * @param reportService The ReportService
+	 */
+	protected void setReportService(ReportService reportService) {
+		this.reportService = reportService;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (!VControl.class.isInstance(vElement)) {
+			return NOT_APPLICABLE;
+		}
+		final VControl control = (VControl) vElement;
+		IValueProperty valueProperty;
+		try {
+			valueProperty = databindingService.getValueProperty(control.getDomainModelReference(),
+				viewModelContext.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			reportService.report(new DatabindingFailedReport(ex));
+			return NOT_APPLICABLE;
+		}
+		final EStructuralFeature eStructuralFeature = EStructuralFeature.class.cast(valueProperty.getValueType());
+		if (eStructuralFeature.isMany()) {
+			return NOT_APPLICABLE;
+		}
+		if (!EAttribute.class.isInstance(eStructuralFeature)) {
+			return NOT_APPLICABLE;
+		}
+		final EAttribute eAttribute = EAttribute.class.cast(eStructuralFeature);
+
+		final Class<?> instanceClass = eAttribute.getEAttributeType().getInstanceClass();
+		if (instanceClass == null) {
+			return NOT_APPLICABLE;
+		}
+		if (!Date.class.isAssignableFrom(instanceClass)) {
+			return NOT_APPLICABLE;
+		}
+		return 3d;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#getRendererClass()
+	 */
+	@Override
+	public Class<? extends AbstractSWTRenderer<VControl>> getRendererClass() {
+		return DateTimeControlSWTRenderer.class;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/ECPLegacyControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/ECPLegacyControlSWTRenderer.java
index bee492c..6d3ac00 100644
--- a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/ECPLegacyControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/ECPLegacyControlSWTRenderer.java
@@ -13,13 +13,21 @@
 package org.eclipse.emf.ecp.view.internal.core.swt.renderer;
 
 import org.eclipse.core.databinding.Binding;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
 import org.eclipse.emf.ecp.edit.internal.swt.util.SWTControl;
 import org.eclipse.emf.ecp.edit.spi.ECPControlFactory;
 import org.eclipse.emf.ecp.view.internal.core.swt.Activator;
+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.model.VControl;
+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;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
 
 /**
  * Renderer for {@link org.eclipse.swt.widgets.Control Controls}.
@@ -32,10 +40,40 @@
 @Deprecated
 public class ECPLegacyControlSWTRenderer extends SimpleControlSWTControlSWTRenderer {
 
+	private static final EMFFormsDatabinding emfFormsDatabinding;
+	private static final EMFFormsLabelProvider emfFormsLabelProvider;
+	private static final VTViewTemplateProvider vtViewTemplateProvider;
+
+	static {
+		final BundleContext bundleContext = FrameworkUtil.getBundle(ECPLegacyControlSWTRenderer.class)
+			.getBundleContext();
+		final ServiceReference<EMFFormsDatabinding> emfFormsDatabindingServiceReference = bundleContext
+			.getServiceReference(EMFFormsDatabinding.class);
+		emfFormsDatabinding = bundleContext.getService(emfFormsDatabindingServiceReference);
+		final ServiceReference<EMFFormsLabelProvider> emfFormsLabelProviderServiceReference = bundleContext
+			.getServiceReference(EMFFormsLabelProvider.class);
+		emfFormsLabelProvider = bundleContext.getService(emfFormsLabelProviderServiceReference);
+		final ServiceReference<VTViewTemplateProvider> vtViewTemplateProviderServiceReference = bundleContext
+			.getServiceReference(VTViewTemplateProvider.class);
+		vtViewTemplateProvider = bundleContext.getService(vtViewTemplateProviderServiceReference);
+	}
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService The {@link ReportService}
+	 */
+	public ECPLegacyControlSWTRenderer(VControl vElement, ViewModelContext viewContext,
+		ReportService reportService) {
+		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider);
+	}
+
 	private SWTControl control;
 
 	@Override
-	protected Control createSWTControl(Composite parent, Setting setting) {
+	protected Control createSWTControl(Composite parent) {
 		final ECPControlFactory controlFactory = Activator.getDefault().getECPControlFactory();
 
 		if (controlFactory == null) {
@@ -43,8 +81,8 @@
 			return null;
 		}
 
-		control = controlFactory.createControl(SWTControl.class,
-			getVElement().getDomainModelReference());
+		control = controlFactory.createControl(SWTControl.class, getViewModelContext().getDomainModel(), getVElement()
+			.getDomainModelReference());
 
 		Activator.getDefault().ungetECPControlFactory();
 		if (control == null) {
@@ -69,7 +107,7 @@
 	}
 
 	@Override
-	protected Binding[] createBindings(Control control, Setting setting) {
+	protected Binding[] createBindings(Control control) {
 		// TODO Auto-generated method stub
 		return null;
 	}
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 a0b6b4a..38b8dbc 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
@@ -14,13 +14,24 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import javax.inject.Inject;
+
 import org.eclipse.core.databinding.Binding;
+import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.emf.ecore.EEnum;
 import org.eclipse.emf.ecore.EEnumLiteral;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.view.internal.core.swt.MessageKeys;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlJFaceViewerSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.swt.SWTRendererFactory;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+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.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.localization.LocalizationServiceHelper;
 import org.eclipse.jface.databinding.swt.SWTObservables;
 import org.eclipse.jface.databinding.viewers.ViewersObservables;
 import org.eclipse.jface.viewers.ArrayContentProvider;
@@ -36,53 +47,62 @@
  *
  */
 public class EnumComboViewerSWTRenderer extends SimpleControlJFaceViewerSWTRenderer {
-	/**
-	 * Default constructor.
-	 */
-	public EnumComboViewerSWTRenderer() {
-		super();
-	}
+
+	private final EMFFormsEditSupport emfFormsEditSupport;
 
 	/**
-	 * Test constructor.
+	 * Default constructor.
 	 *
-	 * @param factory the {@link SWTRendererFactory} to use.
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService The {@link ReportService}
+	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
+	 * @param emfFormsLabelProvider The {@link EMFFormsLabelProvider}
+	 * @param vtViewTemplateProvider The {@link VTViewTemplateProvider}
+	 * @param emfFormsEditSupport The {@link EMFFormsEditSupport}
 	 */
-	EnumComboViewerSWTRenderer(SWTRendererFactory factory) {
-		super(factory);
+	@Inject
+	public EnumComboViewerSWTRenderer(VControl vElement, ViewModelContext viewContext,
+		ReportService reportService,
+		EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider,
+		VTViewTemplateProvider vtViewTemplateProvider, EMFFormsEditSupport emfFormsEditSupport) {
+		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider);
+		this.emfFormsEditSupport = emfFormsEditSupport;
 	}
 
 	@Override
-	protected Binding[] createBindings(Viewer viewer, Setting setting) {
+	protected Binding[] createBindings(Viewer viewer) throws DatabindingFailedException {
 		final Binding binding = getDataBindingContext().bindValue(ViewersObservables.observeSingleSelection(viewer),
-			getModelValue(setting));
+			getModelValue());
 		final Binding tooltipBinding = getDataBindingContext().bindValue(
 			SWTObservables.observeTooltipText(viewer.getControl()),
-			getModelValue(setting));
+			getModelValue());
 		return new Binding[] { binding, tooltipBinding };
 	}
 
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlJFaceViewerSWTRenderer#createJFaceViewer(org.eclipse.swt.widgets.Composite,
-	 *      org.eclipse.emf.ecore.EStructuralFeature.Setting)
+	 * @see org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlJFaceViewerSWTRenderer#createJFaceViewer(org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
-	protected Viewer createJFaceViewer(Composite parent, Setting setting) {
+	protected Viewer createJFaceViewer(Composite parent) throws DatabindingFailedException {
+		final IValueProperty valueProperty = getEMFFormsDatabinding()
+			.getValueProperty(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
+		final EStructuralFeature structuralFeature = (EStructuralFeature) valueProperty.getValueType();
 		final ComboViewer combo = new ComboViewer(parent);
-		final IItemLabelProvider labelProvider = getItemPropertyDescriptor(setting).getLabelProvider(null);
 		combo.setContentProvider(new ArrayContentProvider());
 		combo.setLabelProvider(new LabelProvider() {
 
 			@Override
 			public String getText(Object element) {
-				return labelProvider.getText(element);
+				return getEMFFormsEditSupport()
+					.getText(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel(), element);
 			}
 
 		});
 		final List<Object> inputValues = new ArrayList<Object>();
-		for (final EEnumLiteral literal : EEnum.class.cast(setting.getEStructuralFeature().getEType()).getELiterals()) {
+		for (final EEnumLiteral literal : EEnum.class.cast(structuralFeature.getEType()).getELiterals()) {
 			inputValues.add(literal.getInstance());
 		}
 		combo.setInput(inputValues);
@@ -97,7 +117,12 @@
 	 */
 	@Override
 	protected String getUnsetText() {
-		return RendererMessages.EEnumControl_NoValueSetClickToSetValue;
+		return LocalizationServiceHelper
+			.getString(getClass(), MessageKeys.EEnumControl_NoValueSetClickToSetValue);
+	}
+
+	private EMFFormsEditSupport getEMFFormsEditSupport() {
+		return emfFormsEditSupport;
 	}
 
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/EnumComboViewerSWTRendererService.java b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/EnumComboViewerSWTRendererService.java
new file mode 100644
index 0000000..00b81a6
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/EnumComboViewerSWTRendererService.java
@@ -0,0 +1,101 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.core.swt.renderer;
+
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.emf.ecore.EAttribute;
+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.model.VControl;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+
+/**
+ * EnumComboSWTRendererService which provides the EnumComboSWTRenderer.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class EnumComboViewerSWTRendererService implements EMFFormsDIRendererService<VControl> {
+
+	private EMFFormsDatabinding databindingService;
+	private ReportService reportService;
+
+	/**
+	 * Called by the initializer to set the EMFFormsDatabinding.
+	 *
+	 * @param databindingService The EMFFormsDatabinding
+	 */
+	protected void setEMFFormsDatabinding(EMFFormsDatabinding databindingService) {
+		this.databindingService = databindingService;
+	}
+
+	/**
+	 * Called by the initializer to set the ReportService.
+	 *
+	 * @param reportService The ReportService
+	 */
+	protected void setReportService(ReportService reportService) {
+		this.reportService = reportService;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (!VControl.class.isInstance(vElement)) {
+			return NOT_APPLICABLE;
+		}
+		final VControl control = (VControl) vElement;
+		IValueProperty valueProperty;
+		try {
+			valueProperty = databindingService.getValueProperty(control.getDomainModelReference(),
+				viewModelContext.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			reportService.report(new DatabindingFailedReport(ex));
+			return NOT_APPLICABLE;
+		}
+		final EStructuralFeature eStructuralFeature = EStructuralFeature.class.cast(valueProperty.getValueType());
+		if (eStructuralFeature.isMany()) {
+			return NOT_APPLICABLE;
+		}
+		if (!EAttribute.class.isInstance(eStructuralFeature)) {
+			return NOT_APPLICABLE;
+		}
+		final EAttribute eAttribute = EAttribute.class.cast(eStructuralFeature);
+
+		if (!EcorePackage.eINSTANCE.getEEnum().isInstance(eAttribute.getEType())) {
+			return NOT_APPLICABLE;
+		}
+		return 3d;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#getRendererClass()
+	 */
+	@Override
+	public Class<? extends AbstractSWTRenderer<VControl>> getRendererClass() {
+		return EnumComboViewerSWTRenderer.class;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/NumberControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/NumberControlSWTRenderer.java
index ea8118a..5dd4b21 100644
--- a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/NumberControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/NumberControlSWTRenderer.java
@@ -14,22 +14,32 @@
 import java.text.DecimalFormat;
 import java.text.ParseException;
 import java.text.ParsePosition;
-import java.util.Locale;
+
+import javax.inject.Inject;
 
 import org.eclipse.core.databinding.Binding;
 import org.eclipse.core.databinding.DataBindingContext;
 import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
-import org.eclipse.emf.ecp.edit.internal.swt.controls.ControlMessages;
 import org.eclipse.emf.ecp.edit.internal.swt.controls.NumericalHelper;
-import org.eclipse.emf.ecp.edit.spi.ViewLocaleService;
 import org.eclipse.emf.ecp.edit.spi.swt.util.ECPDialogExecutor;
 import org.eclipse.emf.ecp.view.internal.core.swt.Activator;
+import org.eclipse.emf.ecp.view.internal.core.swt.MessageKeys;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.core.swt.renderer.TextControlSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.swt.SWTRendererFactory;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
 import org.eclipse.emf.edit.command.SetCommand;
+import org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleChangeListener;
+import org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleProvider;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.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.editsupport.EMFFormsEditSupport;
+import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
+import org.eclipse.emfforms.spi.localization.EMFFormsLocalizationService;
 import org.eclipse.jface.dialogs.IDialogLabelKeys;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.resource.JFaceResources;
@@ -44,20 +54,34 @@
  *
  */
 public class NumberControlSWTRenderer extends TextControlSWTRenderer {
-	/**
-	 * Default constructor.
-	 */
-	public NumberControlSWTRenderer() {
-		super();
-	}
+
+	private final EMFFormsLocalizationService localizationService;
+	private final EMFFormsLocaleProvider localeProvider;
+	private EMFFormsLocaleChangeListener emfFormsLocaleChangeListener;
 
 	/**
-	 * Test constructor.
+	 * Default constructor.
 	 *
-	 * @param factory the {@link SWTRendererFactory} to use.
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService The {@link ReportService}
+	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
+	 * @param emfFormsLabelProvider The {@link EMFFormsLabelProvider}
+	 * @param vtViewTemplateProvider The {@link VTViewTemplateProvider}
+	 * @param emfFormsEditSupport The {@link EMFFormsEditSupport}
+	 * @param localizationService The {@link EMFFormsLocalizationService}
+	 * @param localeProvider The {@link EMFFormsLocaleProvider}
 	 */
-	NumberControlSWTRenderer(SWTRendererFactory factory) {
-		super(factory);
+	@Inject
+	public NumberControlSWTRenderer(VControl vElement, ViewModelContext viewContext,
+		ReportService reportService,
+		EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider,
+		VTViewTemplateProvider vtViewTemplateProvider, EMFFormsEditSupport emfFormsEditSupport,
+		EMFFormsLocalizationService localizationService, EMFFormsLocaleProvider localeProvider) {
+		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider,
+			emfFormsEditSupport);
+		this.localizationService = localizationService;
+		this.localeProvider = localeProvider;
 	}
 
 	@Override
@@ -75,30 +99,57 @@
 	}
 
 	@Override
-	protected String getTextMessage(Setting setting) {
-		if (NumericalHelper.isInteger(getInstanceClass(setting.getEStructuralFeature()))) {
-			return ControlMessages.NumericalControl_FormatNumerical;
-		} else if (NumericalHelper.isDouble(getInstanceClass(setting.getEStructuralFeature()))) {
-			return ControlMessages.NumericalControl_FormatNumericalDecimal;
+	protected String getTextMessage() {
+		try {
+			final IValueProperty valueProperty = getEMFFormsDatabinding()
+				.getValueProperty(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
+			final EStructuralFeature structuralFeature = (EStructuralFeature) valueProperty.getValueType();
+			// if (NumericalHelper.isInteger(getInstanceClass(structuralFeature))) {
+			// return localizationService.getString(getClass(), MessageKeys.NumericalControl_FormatNumerical);
+			// } else if (NumericalHelper.isDouble(getInstanceClass(structuralFeature))) {
+			// return localizationService.getString(getClass(),
+			// MessageKeys.NumericalControl_FormatNumericalDecimal);
+			// }
+			return NumericalHelper.setupFormat(localeProvider.getLocale(),
+				getInstanceClass(structuralFeature)).toPattern();
+		} catch (final DatabindingFailedException ex) {
+			getReportService().report(new DatabindingFailedReport(ex));
 		}
-
 		return ""; //$NON-NLS-1$
 	}
 
 	@Override
-	protected Binding[] createBindings(Control control, Setting setting) {
+	protected Binding[] createBindings(final Control control) throws DatabindingFailedException {
+		final EStructuralFeature structuralFeature = (EStructuralFeature) getModelValue().getValueType();
+
 		final NumericalTargetToModelUpdateStrategy targetToModelStrategy = new NumericalTargetToModelUpdateStrategy(
-			setting.getEStructuralFeature(), getViewModelContext(), getModelValue(setting), getDataBindingContext(),
+			structuralFeature, getViewModelContext(), getModelValue(), getDataBindingContext(),
 			(Text) control);
 		final NumericalModelToTargetUpdateStrategy modelToTargetStrategy = new NumericalModelToTargetUpdateStrategy(
-			getInstanceClass(setting.getEStructuralFeature()), getViewModelContext(), false);
-		final Binding binding = bindValue(control, getModelValue(setting), getDataBindingContext(),
+			getInstanceClass(structuralFeature), getViewModelContext(), false);
+		final Binding binding = bindValue(control, getModelValue(), getDataBindingContext(),
 			targetToModelStrategy,
 			modelToTargetStrategy);
-		final Binding tooltipBinding = createTooltipBinding(control, getModelValue(setting), getDataBindingContext(),
+		final Binding tooltipBinding = createTooltipBinding(control, getModelValue(), getDataBindingContext(),
 			targetToModelStrategy,
 			new NumericalModelToTargetUpdateStrategy(
-				getInstanceClass(setting.getEStructuralFeature()), getViewModelContext(), true));
+				getInstanceClass(structuralFeature), getViewModelContext(), true));
+
+		emfFormsLocaleChangeListener = new EMFFormsLocaleChangeListener() {
+
+			/**
+			 * {@inheritDoc}
+			 *
+			 * @see org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleChangeListener#notifyLocaleChange()
+			 */
+			@Override
+			public void notifyLocaleChange() {
+				((Text) control).setMessage(getTextMessage());
+				binding.updateModelToTarget();
+			}
+		};
+		localeProvider.addEMFFormsLocaleChangeListener(emfFormsLocaleChangeListener);
+
 		return new Binding[] { binding, tooltipBinding };
 	}
 
@@ -128,7 +179,7 @@
 			if (value == null) {
 				return "";
 			}
-			final DecimalFormat format = NumericalHelper.setupFormat(getLocale(viewModelContext),
+			final DecimalFormat format = NumericalHelper.setupFormat(localeProvider.getLocale(),
 				instanceClass);
 			return format.format(value);
 		}
@@ -161,7 +212,7 @@
 		}
 
 		private DecimalFormat getFormat() {
-			return NumericalHelper.setupFormat(getLocale(viewModelContext),
+			return NumericalHelper.setupFormat(localeProvider.getLocale(),
 				getInstanceClass(eStructuralFeature));
 		}
 
@@ -252,8 +303,9 @@
 			final Object result = modelValue.getValue();
 
 			final MessageDialog messageDialog = new MessageDialog(text.getShell(),
-				ControlMessages.NumericalControl_InvalidNumber, null,
-				ControlMessages.NumericalControl_InvalidNumberWillBeUnset, MessageDialog.ERROR,
+				localizationService.getString(getClass(), MessageKeys.NumericalControl_InvalidNumber), null,
+				localizationService.getString(getClass(), MessageKeys.NumericalControl_InvalidNumberWillBeUnset),
+				MessageDialog.ERROR,
 				new String[] { JFaceResources.getString(IDialogLabelKeys.OK_LABEL_KEY) }, 0);
 
 			new ECPDialogExecutor(messageDialog) {
@@ -277,14 +329,6 @@
 		}
 	}
 
-	private Locale getLocale(ViewModelContext viewModelContext) {
-		final ViewLocaleService service = viewModelContext.getService(ViewLocaleService.class);
-		if (service == null) {
-			return Locale.getDefault();
-		}
-		return service.getLocale();
-	}
-
 	/**
 	 * {@inheritDoc}
 	 *
@@ -292,7 +336,18 @@
 	 */
 	@Override
 	protected String getUnsetText() {
-		return ControlMessages.NumericalControl_NoNumberClickToSetNumber;
+		return localizationService.getString(getClass(), MessageKeys.NumericalControl_NoNumberClickToSetNumber);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTRenderer#dispose()
+	 */
+	@Override
+	protected void dispose() {
+		super.dispose();
+		localeProvider.removeEMFFormsLocaleChangeListener(emfFormsLocaleChangeListener);
 	}
 
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/NumberControlSWTRendererService.java b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/NumberControlSWTRendererService.java
new file mode 100644
index 0000000..3b318e1
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/NumberControlSWTRendererService.java
@@ -0,0 +1,124 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.core.swt.renderer;
+
+import org.eclipse.core.databinding.property.value.IValueProperty;
+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.model.VControl;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+
+/**
+ * NumberControlSWTRendererService which provides the NumberControlSWTRenderer.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class NumberControlSWTRendererService implements EMFFormsDIRendererService<VControl> {
+
+	private static final double CONSTANT_PRIORITY = 2d;
+	private EMFFormsDatabinding databindingService;
+	private ReportService reportService;
+
+	/**
+	 * Called by the initializer to set the EMFFormsDatabinding.
+	 *
+	 * @param databindingService The EMFFormsDatabinding
+	 */
+	protected void setEMFFormsDatabinding(EMFFormsDatabinding databindingService) {
+		this.databindingService = databindingService;
+	}
+
+	/**
+	 * Called by the initializer to set the ReportService.
+	 *
+	 * @param reportService The ReportService
+	 */
+	protected void setReportService(ReportService reportService) {
+		this.reportService = reportService;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (!VControl.class.isInstance(vElement)) {
+			return NOT_APPLICABLE;
+		}
+		final VControl control = (VControl) vElement;
+		IValueProperty valueProperty;
+		try {
+			valueProperty = databindingService.getValueProperty(control.getDomainModelReference(),
+				viewModelContext.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			reportService.report(new DatabindingFailedReport(ex));
+			return NOT_APPLICABLE;
+		}
+		final EStructuralFeature eStructuralFeature = EStructuralFeature.class.cast(valueProperty.getValueType());
+		if (eStructuralFeature.isMany()) {
+			return NOT_APPLICABLE;
+		}
+		if (!EAttribute.class.isInstance(eStructuralFeature)) {
+			return NOT_APPLICABLE;
+		}
+		final EAttribute eAttribute = EAttribute.class.cast(eStructuralFeature);
+
+		final Class<?> instanceClass = eAttribute.getEAttributeType().getInstanceClass();
+		if (instanceClass == null) {
+			return NOT_APPLICABLE;
+		}
+		// if the attribute class is an primitive test the primitive types
+		if (instanceClass.isPrimitive()) {
+			if (int.class.equals(instanceClass)) {
+				return CONSTANT_PRIORITY;
+			}
+			else if (float.class.equals(instanceClass)) {
+				return CONSTANT_PRIORITY;
+			}
+			else if (long.class.equals(instanceClass)) {
+				return CONSTANT_PRIORITY;
+			}
+			else if (double.class.equals(instanceClass)) {
+				return CONSTANT_PRIORITY;
+			}
+			else if (short.class.equals(instanceClass)) {
+				return CONSTANT_PRIORITY;
+			}
+		}
+		// otherwise test the classes itself
+		else if (Number.class.isAssignableFrom(instanceClass)) {
+			return CONSTANT_PRIORITY;
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#getRendererClass()
+	 */
+	@Override
+	public Class<? extends AbstractSWTRenderer<VControl>> getRendererClass() {
+		return NumberControlSWTRenderer.class;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/RendererMessages.java b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/RendererMessages.java
deleted file mode 100644
index 0c84aff..0000000
--- a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/RendererMessages.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 EclipseSource.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource - initial API and implementation
- *******************************************************************************/
-package org.eclipse.emf.ecp.view.internal.core.swt.renderer;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * @generated
- * @author Jonas
- *
- */
-
-public final class RendererMessages extends NLS {
-
-	private static final String BUNDLE_NAME = "org.eclipse.emf.ecp.view.internal.core.swt.renderer.messages"; //$NON-NLS-1$
-
-	public static String AbstractTextControl_InvalidInput;
-	public static String AbstractTextControl_InvalidInputSpace;
-	public static String AbstractTextControl_Unset;
-
-	public static String AttributeMultiControl_NotSetClickToSet;
-	public static String AttributeMultiControl_Unset;
-
-	public static String BooleanControl_NoBooleanSetClickToSetBoolean;
-	public static String BooleanControl_UnsetBoolean;
-
-	public static String DateTimeControl_NoDateSetClickToSetDate;
-	public static String DateTimeControl_UnsetDate;
-
-	public static String DateTimeControlSWTRenderer_CleanDate;
-
-	public static String DateTimeControlSWTRenderer_SelectData;
-
-	public static String EEnumControl_NoValueSetClickToSetValue;
-	public static String EEnumControl_UnsetValue;
-
-	public static String LinkControl_NoLinkSetClickToSetLink;
-	public static String LinkControl_NotSet;
-	public static String LinkControl_UnsetLink;
-
-	public static String NumericalControl_FormatNumerical;
-	public static String NumericalControl_FormatNumericalDecimal;
-	public static String NumericalControl_InvalidNumber;
-	public static String NumericalControl_InvalidNumberWillBeUnset;
-	public static String NumericalControl_NoNumberClickToSetNumber;
-	public static String NumericalControl_UnsetNumber;
-
-	public static String ReferenceMultiControl_NotSetClickToSet;
-	public static String ReferenceMultiControl_Unset;
-
-	public static String SimpleControlSWTRenderer_Set;
-
-	public static String SimpleControlSWTRenderer_Unset;
-
-	public static String StringControl_NoTextSetClickToSetText;
-	public static String StringControl_UnsetText;
-
-	public static String TableControl_AddInstanceOf;
-	public static String TableControl_Delete;
-	public static String TableControl_DeleteAreYouSure;
-	public static String TableControl_NotSetClickToSet;
-	public static String TableControl_RemoveSelected;
-	public static String TableControl_Unset;
-	public static String TableControl_ValidationStatusColumn;
-
-	public static String XmlDateControlText_InvalidNumber;
-	public static String XmlDateControlText_NoDateSetClickToSetDate;
-	public static String XmlDateControlText_NumberInvalidValueWillBeUnset;
-	public static String XmlDateControlText_UnsetDate;
-
-	private RendererMessages() {
-	}
-
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, RendererMessages.class);
-	}
-
-}
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/TextControlSWTRendererService.java b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/TextControlSWTRendererService.java
new file mode 100644
index 0000000..a3b4979
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/TextControlSWTRendererService.java
@@ -0,0 +1,105 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.core.swt.renderer;
+
+import org.eclipse.core.databinding.property.value.IValueProperty;
+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.core.swt.renderer.TextControlSWTRenderer;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+
+/**
+ * TextControlSWTRendererService which provides the TextControlSWTRenderer.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class TextControlSWTRendererService implements EMFFormsDIRendererService<VControl> {
+
+	private EMFFormsDatabinding databindingService;
+	private ReportService reportService;
+
+	/**
+	 * Called by the initializer to set the EMFFormsDatabinding.
+	 *
+	 * @param databindingService The EMFFormsDatabinding
+	 */
+	protected void setEMFFormsDatabinding(EMFFormsDatabinding databindingService) {
+		this.databindingService = databindingService;
+	}
+
+	/**
+	 * Called by the initializer to set the ReportService.
+	 *
+	 * @param reportService The ReportService
+	 */
+	protected void setReportService(ReportService reportService) {
+		this.reportService = reportService;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (!VControl.class.isInstance(vElement)) {
+			return NOT_APPLICABLE;
+		}
+		final VControl control = (VControl) vElement;
+		IValueProperty valueProperty;
+		try {
+			valueProperty = databindingService.getValueProperty(control.getDomainModelReference(),
+				viewModelContext.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			reportService.report(new DatabindingFailedReport(ex));
+			return NOT_APPLICABLE;
+		}
+		final EStructuralFeature eStructuralFeature = EStructuralFeature.class.cast(valueProperty.getValueType());
+		if (eStructuralFeature.isMany()) {
+			return NOT_APPLICABLE;
+		}
+		if (!EAttribute.class.isInstance(eStructuralFeature)) {
+			return NOT_APPLICABLE;
+		}
+		final EAttribute eAttribute = EAttribute.class.cast(eStructuralFeature);
+
+		final Class<?> instanceClass = eAttribute.getEAttributeType().getInstanceClass();
+		if (instanceClass == null) {
+			return NOT_APPLICABLE;
+		}
+		if (String.class.isAssignableFrom(instanceClass)) {
+			return 1.1d;
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#getRendererClass()
+	 */
+	@Override
+	public Class<? extends AbstractSWTRenderer<VControl>> getRendererClass() {
+		return TextControlSWTRenderer.class;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/ViewSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/ViewSWTRenderer.java
index 989aa6e..ce789e2 100644
--- a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/ViewSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/ViewSWTRenderer.java
@@ -15,88 +15,47 @@
 
 import java.util.Collection;
 
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import javax.inject.Inject;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer;
-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.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.swt.SWTRendererFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
-import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
-import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.swt.SWT;
+import org.eclipse.emf.ecp.view.spi.renderer.NoPropertyDescriptorFoundExeption;
+import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException;
+import org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleChangeListener;
+import org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleProvider;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
+import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Text;
 
 /**
  * The Class ViewSWTRenderer.
  */
-public class ViewSWTRenderer extends ContainerSWTRenderer<VView> {
+public class ViewSWTRenderer extends ContainerSWTRenderer<VView> implements EMFFormsLocaleChangeListener {
+
+	private Composite renderControl;
+	private final EMFFormsLocaleProvider localeProvider;
+
 	/**
 	 * Default constructor.
-	 */
-	public ViewSWTRenderer() {
-		super();
-	}
-
-	/**
-	 * Test constructor.
 	 *
-	 * @param factory the {@link SWTRendererFactory} to use.
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 * @param factory the {@link EMFFormsRendererFactory}
+	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
+	 * @param localeProvider The {@link EMFFormsLocaleProvider}
 	 */
-	ViewSWTRenderer(SWTRendererFactory factory) {
-		super(factory);
-	}
-
-	@Override
-	protected final void setLayoutDataForControl(SWTGridCell gridCell,
-		SWTGridDescription controlGridDescription,
-		SWTGridDescription currentRowGridDescription, SWTGridDescription fullGridDescription, VElement vElement,
-		Control control) {
-		if (VControl.class.isInstance(vElement)) {
-			// last column of control
-			if (gridCell.getColumn() + gridCell.getHorizontalSpan() == controlGridDescription.getColumns()) {
-				getControlGridData(gridCell.getHorizontalSpan() + fullGridDescription.getColumns()
-					- currentRowGridDescription.getColumns(), VControl.class.cast(vElement), control).applyTo(control);
-			} else if (controlGridDescription.getColumns() == 3 && gridCell.getColumn() == 0) {
-				GridDataFactory.fillDefaults().grab(false, false)
-					.align(SWT.BEGINNING, SWT.CENTER).applyTo(control);
-			} else if (controlGridDescription.getColumns() == 3 && gridCell.getColumn() == 1) {
-				GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.CENTER)
-					.hint(16, 17).grab(false, false).applyTo(control);
-			} else if (controlGridDescription.getColumns() == 2 && gridCell.getColumn() == 0) {
-				GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.CENTER)
-					.hint(16, 17).grab(false, false).applyTo(control);
-			}
-		} else if (VContainedContainer.class.isInstance(vElement)) {
-			GridDataFactory
-				.fillDefaults()
-				.align(gridCell.isHorizontalFill() ? SWT.FILL : SWT.BEGINNING,
-					gridCell.isVerticalFill() ? SWT.FILL : SWT.CENTER)
-				.grab(gridCell.isHorizontalGrab(), false)
-				.span(gridCell.getHorizontalSpan() + fullGridDescription.getColumns()
-					- currentRowGridDescription.getColumns(), 1).applyTo(control);
-		}
-		else {
-			// we have some kind of container -> render with necessary span
-			GridDataFactory
-				.fillDefaults()
-				.align(gridCell.isHorizontalFill() ? SWT.FILL : SWT.BEGINNING,
-					gridCell.isVerticalFill() ? SWT.FILL : SWT.CENTER)
-				.grab(gridCell.isHorizontalGrab(), gridCell.isVerticalGrab())
-				.span(gridCell.getHorizontalSpan() + fullGridDescription.getColumns()
-					- currentRowGridDescription.getColumns(), 1).applyTo(control);
-		}
-
+	@Inject
+	public ViewSWTRenderer(VView vElement, ViewModelContext viewContext, ReportService reportService,
+		EMFFormsRendererFactory factory, EMFFormsDatabinding emfFormsDatabinding, EMFFormsLocaleProvider localeProvider) {
+		super(vElement, viewContext, reportService, factory, emfFormsDatabinding);
+		this.localeProvider = localeProvider;
+		localeProvider.addEMFFormsLocaleChangeListener(this);
 	}
 
 	/**
@@ -109,11 +68,6 @@
 		return getVElement().getChildren();
 	}
 
-	@Override
-	protected Layout getLayout(int numControls, boolean equalWidth) {
-		return GridLayoutFactory.fillDefaults().numColumns(numControls).equalWidth(equalWidth).create();
-	}
-
 	/**
 	 * {@inheritDoc}
 	 *
@@ -124,35 +78,38 @@
 		return "org_eclipse_emf_ecp_ui_layout_view"; //$NON-NLS-1$
 	}
 
-	private GridDataFactory getControlGridData(int xSpan, VControl vControl, Control control) {
-		GridDataFactory gdf =
-			GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER)
-				.grab(true, false).span(xSpan, 1);
-
-		if (Text.class.isInstance(control) && vControl.getDomainModelReference() != null) {
-			final Setting setting = vControl.getDomainModelReference().getIterator().next();
-
-			if (isMultiLine(setting)) {
-				gdf = gdf.hint(50, 200); // set x hint to enable wrapping
-			}
-		}
-
-		return gdf;
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see EMFFormsLocaleChangeListener#notifyLocaleChange()
+	 */
+	@Override
+	public void notifyLocaleChange() {
+		renderControl.layout(true, true);
 	}
 
-	private boolean isMultiLine(Setting setting) {
-		final ComposedAdapterFactory composedAdapterFactory = new ComposedAdapterFactory(new AdapterFactory[] {
-			new ReflectiveItemProviderAdapterFactory(),
-			new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE) });
-		final AdapterFactoryItemDelegator adapterFactoryItemDelegator = new AdapterFactoryItemDelegator(
-			composedAdapterFactory);
-		final IItemPropertyDescriptor descriptor = adapterFactoryItemDelegator.getPropertyDescriptor(
-			setting.getEObject(), setting.getEStructuralFeature());
-		final boolean multiline = descriptor.isMultiLine(null);
-
-		composedAdapterFactory.dispose();
-
-		return multiline;
-
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer#renderControl(org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell,
+	 *      org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	protected Control renderControl(SWTGridCell gridCell, Composite parent) throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption {
+		renderControl = (Composite) super.renderControl(gridCell, parent);
+		return renderControl;
 	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer#dispose()
+	 */
+	@Override
+	protected void dispose() {
+		localeProvider.removeEMFFormsLocaleChangeListener(this);
+		super.dispose();
+	}
+
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/ViewSWTRendererService.java b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/ViewSWTRendererService.java
new file mode 100644
index 0000000..594d138
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/ViewSWTRendererService.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.core.swt.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.model.VView;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+
+/**
+ * ViewSWTRendererService which provides the ViewSWTRenderer.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class ViewSWTRendererService implements EMFFormsDIRendererService<VView> {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (!VView.class.isInstance(vElement)) {
+			return NOT_APPLICABLE;
+		}
+		return 3d;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#getRendererClass()
+	 */
+	@Override
+	public Class<? extends AbstractSWTRenderer<VView>> getRendererClass() {
+		return ViewSWTRenderer.class;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/XMLDateControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/XMLDateControlSWTRenderer.java
index 06f1b26..3ded12e 100644
--- a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/XMLDateControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/XMLDateControlSWTRenderer.java
@@ -19,24 +19,33 @@
 import java.util.Locale;
 import java.util.regex.Pattern;
 
+import javax.inject.Inject;
 import javax.xml.datatype.XMLGregorianCalendar;
 
 import org.eclipse.core.databinding.Binding;
 import org.eclipse.core.databinding.DataBindingContext;
 import org.eclipse.core.databinding.observable.value.IObservableValue;
 import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
-import org.eclipse.emf.ecp.edit.internal.swt.controls.ControlMessages;
 import org.eclipse.emf.ecp.edit.internal.swt.util.DateUtil;
-import org.eclipse.emf.ecp.edit.spi.ViewLocaleService;
 import org.eclipse.emf.ecp.edit.spi.swt.util.ECPDialogExecutor;
-import org.eclipse.emf.ecp.view.internal.core.swt.Activator;
+import org.eclipse.emf.ecp.view.internal.core.swt.MessageKeys;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.core.swt.renderer.TextControlSWTRenderer;
 import org.eclipse.emf.ecp.view.spi.model.LabelAlignment;
-import org.eclipse.emf.ecp.view.spi.swt.SWTRendererFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+import org.eclipse.emf.ecp.view.spi.util.swt.ImageRegistryService;
+import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
 import org.eclipse.emf.edit.command.SetCommand;
+import org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleChangeListener;
+import org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleProvider;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.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.localization.EMFFormsLocalizationService;
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
 import org.eclipse.jface.databinding.swt.SWTObservables;
 import org.eclipse.jface.dialogs.IDialogLabelKeys;
 import org.eclipse.jface.dialogs.MessageDialog;
@@ -56,6 +65,7 @@
 import org.eclipse.swt.widgets.DateTime;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.swt.widgets.Text;
+import org.osgi.framework.FrameworkUtil;
 
 /**
  * @author Eugen
@@ -64,6 +74,38 @@
 @SuppressWarnings("restriction")
 public class XMLDateControlSWTRenderer extends TextControlSWTRenderer {
 
+	private final EMFFormsLocaleProvider localeProvider;
+	private final EMFFormsLocalizationService localizationService;
+	private final ImageRegistryService imageRegistryService;
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService The {@link ReportService}
+	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
+	 * @param emfFormsLabelProvider The {@link EMFFormsLabelProvider}
+	 * @param vtViewTemplateProvider The {@link VTViewTemplateProvider}
+	 * @param emfFormsEditSupport The {@link EMFFormsEditSupport}
+	 * @param localizationService The {@link EMFFormsLocalizationService}
+	 * @param localeProvider The {@link EMFFormsLocaleProvider}
+	 * @param imageRegistryService The {@link ImageRegistryService}
+	 */
+	@Inject
+	public XMLDateControlSWTRenderer(VControl vElement, ViewModelContext viewContext,
+		ReportService reportService,
+		EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider,
+		VTViewTemplateProvider vtViewTemplateProvider, EMFFormsEditSupport emfFormsEditSupport,
+		EMFFormsLocalizationService localizationService, EMFFormsLocaleProvider localeProvider,
+		ImageRegistryService imageRegistryService) {
+		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider,
+			emfFormsEditSupport);
+		this.localizationService = localizationService;
+		this.localeProvider = localeProvider;
+		this.imageRegistryService = imageRegistryService;
+	}
+
 	private static final DateFormat CHECK_FORMAT = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH); //$NON-NLS-1$
 	private static final Pattern CHECK_PATTERN = Pattern.compile("^\\d{4}-\\d{2}-\\d{2}$"); //$NON-NLS-1$
 
@@ -101,7 +143,7 @@
 
 			final DateTime calendar = new DateTime(dialog, SWT.CALENDAR | SWT.BORDER);
 			final XMLGregorianCalendar gregorianCalendar = (XMLGregorianCalendar) modelValue.getValue();
-			final Calendar cal = Calendar.getInstance(getLocale(viewModelContext));
+			final Calendar cal = Calendar.getInstance(localeProvider.getLocale());
 			if (gregorianCalendar != null) {
 				cal.setTime(gregorianCalendar.toGregorianCalendar().getTime());
 			}
@@ -230,8 +272,9 @@
 			final Object result = modelValue.getValue();
 
 			final MessageDialog messageDialog = new MessageDialog(text.getShell(),
-				ControlMessages.XmlDateControlText_InvalidNumber, null,
-				ControlMessages.XmlDateControlText_NumberInvalidValueWillBeUnset, MessageDialog.ERROR,
+				LocalizationServiceHelper.getString(getClass(), MessageKeys.XmlDateControlText_InvalidNumber), null,
+				LocalizationServiceHelper.getString(getClass(),
+					MessageKeys.XmlDateControlText_NumberInvalidValueWillBeUnset), MessageDialog.ERROR,
 				new String[] { JFaceResources.getString(IDialogLabelKeys.OK_LABEL_KEY) }, 0);
 
 			new ECPDialogExecutor(messageDialog) {
@@ -251,41 +294,26 @@
 	}
 
 	private Shell dialog;
-
-	/**
-	 * Default constructor.
-	 */
-	public XMLDateControlSWTRenderer() {
-		super();
-	}
-
-	/**
-	 * Test constructor.
-	 *
-	 * @param factory the renderer factory
-	 */
-	/* package */XMLDateControlSWTRenderer(SWTRendererFactory factory) {
-		super(factory);
-	}
+	private EMFFormsLocaleChangeListener emfFormsLocaleChangeListener;
 
 	@Override
-	protected Control createSWTControl(Composite parent, Setting setting) {
+	protected Control createSWTControl(Composite parent) {
 		final Composite main = new Composite(parent, SWT.NONE);
 		main.setBackground(parent.getBackground());
 		GridLayoutFactory.fillDefaults().numColumns(2).applyTo(main);
 		GridDataFactory.fillDefaults().grab(true, false).align(SWT.FILL, SWT.BEGINNING).applyTo(main);
-		final Control text = super.createSWTControl(main, setting);
+		final Text text = (Text) super.createSWTControl(main);
 		GridDataFactory.fillDefaults().grab(true, false).align(SWT.FILL, SWT.CENTER).applyTo(text);
 		final Button bDate = new Button(main, SWT.PUSH);
 		GridDataFactory.fillDefaults().grab(false, false).align(SWT.CENTER, SWT.CENTER).applyTo(bDate);
-		bDate.setImage(Activator.getImage("icons/date.png")); //$NON-NLS-1$
+		bDate.setImage(imageRegistryService.getImage(FrameworkUtil.getBundle(getClass()), "icons/date.png")); //$NON-NLS-1$
 		bDate.setData(CUSTOM_VARIANT, "org_eclipse_emf_ecp_control_xmldate"); //$NON-NLS-1$
 
 		return main;
 	}
 
 	@Override
-	protected String getTextMessage(Setting setting) {
+	protected String getTextMessage() {
 		return ((SimpleDateFormat) setupFormat()).toPattern();
 	}
 
@@ -295,26 +323,43 @@
 	}
 
 	@Override
-	protected Binding[] createBindings(Control control, Setting setting) {
+	protected Binding[] createBindings(Control control) throws DatabindingFailedException {
+		final EStructuralFeature structuralFeature = (EStructuralFeature) getModelValue().getValueType();
 		final Text text = (Text) ((Composite) control).getChildren()[0];
 		final Button button = (Button) ((Composite) control).getChildren()[1];
-		button.addSelectionListener(new SelectionAdapterExtension(text, button, getModelValue(setting),
+		button.addSelectionListener(new SelectionAdapterExtension(text, button, getModelValue(),
 			getViewModelContext(),
-			getDataBindingContext(), setting.getEStructuralFeature()));
+			getDataBindingContext(), structuralFeature));
 
 		final IObservableValue value = SWTObservables.observeText(text, SWT.FocusOut);
 
 		final DateTargetToModelUpdateStrategy targetToModelUpdateStrategy = new DateTargetToModelUpdateStrategy(
-			setting.getEStructuralFeature(), getModelValue(setting), getDataBindingContext(),
+			structuralFeature, getModelValue(), getDataBindingContext(),
 			text);
 
 		final DateModelToTargetUpdateStrategy modelToTargetUpdateStrategy = new DateModelToTargetUpdateStrategy(false);
 
-		final Binding binding = getDataBindingContext().bindValue(value, getModelValue(setting),
+		final Binding binding = getDataBindingContext().bindValue(value, getModelValue(),
 			targetToModelUpdateStrategy, modelToTargetUpdateStrategy);
 
-		final Binding tooltipBinding = createTooltipBinding(control, getModelValue(setting), getDataBindingContext(),
+		final Binding tooltipBinding = createTooltipBinding(control, getModelValue(), getDataBindingContext(),
 			targetToModelUpdateStrategy, new DateModelToTargetUpdateStrategy(true));
+
+		emfFormsLocaleChangeListener = new EMFFormsLocaleChangeListener() {
+
+			/**
+			 * {@inheritDoc}
+			 *
+			 * @see org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleChangeListener#notifyLocaleChange()
+			 */
+			@Override
+			public void notifyLocaleChange() {
+				text.setMessage(getTextMessage());
+				binding.updateModelToTarget();
+			}
+		};
+		localeProvider.addEMFFormsLocaleChangeListener(emfFormsLocaleChangeListener);
+
 		return new Binding[] { binding, tooltipBinding };
 	}
 
@@ -324,19 +369,11 @@
 	 * @return the {@link DateFormat}
 	 */
 	protected DateFormat setupFormat() {
-		final DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM, getLocale(getViewModelContext()));
+		final DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM, localeProvider.getLocale());
 		df.setLenient(false);
 		return df;
 	}
 
-	private Locale getLocale(ViewModelContext viewModelContext) {
-		final ViewLocaleService service = viewModelContext.getService(ViewLocaleService.class);
-		if (service == null) {
-			return Locale.getDefault();
-		}
-		return service.getLocale();
-	}
-
 	/**
 	 * {@inheritDoc}
 	 *
@@ -366,7 +403,8 @@
 	 */
 	@Override
 	protected String getUnsetText() {
-		return RendererMessages.XmlDateControlText_NoDateSetClickToSetDate;
+		return localizationService
+			.getString(getClass(), MessageKeys.XmlDateControlText_NoDateSetClickToSetDate);
 	}
 
 	/**
@@ -379,6 +417,7 @@
 		if (dialog != null && !dialog.isDisposed()) {
 			dialog.dispose();
 		}
+		localeProvider.removeEMFFormsLocaleChangeListener(emfFormsLocaleChangeListener);
 		super.dispose();
 	}
 
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/XMLDateControlSWTRendererService.java b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/XMLDateControlSWTRendererService.java
new file mode 100644
index 0000000..cc48e31
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/XMLDateControlSWTRendererService.java
@@ -0,0 +1,106 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.core.swt.renderer;
+
+import javax.xml.datatype.XMLGregorianCalendar;
+
+import org.eclipse.core.databinding.property.value.IValueProperty;
+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.model.VControl;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+
+/**
+ * XMLDateControlSWTRendererService which provides the {@link XMLDateControlSWTRenderer}.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class XMLDateControlSWTRendererService implements EMFFormsDIRendererService<VControl> {
+
+	private EMFFormsDatabinding databindingService;
+	private ReportService reportService;
+
+	/**
+	 * Called by the initializer to set the EMFFormsDatabinding.
+	 *
+	 * @param databindingService The EMFFormsDatabinding
+	 */
+	protected void setEMFFormsDatabinding(EMFFormsDatabinding databindingService) {
+		this.databindingService = databindingService;
+	}
+
+	/**
+	 * Called by the initializer to set the ReportService.
+	 *
+	 * @param reportService The ReportService
+	 */
+	protected void setReportService(ReportService reportService) {
+		this.reportService = reportService;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (!VControl.class.isInstance(vElement)) {
+			return NOT_APPLICABLE;
+		}
+		final VControl control = (VControl) vElement;
+		IValueProperty valueProperty;
+		try {
+			valueProperty = databindingService.getValueProperty(control.getDomainModelReference(),
+				viewModelContext.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			reportService.report(new DatabindingFailedReport(ex));
+			return NOT_APPLICABLE;
+		}
+		final EStructuralFeature eStructuralFeature = EStructuralFeature.class.cast(valueProperty.getValueType());
+		if (eStructuralFeature.isMany()) {
+			return NOT_APPLICABLE;
+		}
+		if (!EAttribute.class.isInstance(eStructuralFeature)) {
+			return NOT_APPLICABLE;
+		}
+		final EAttribute eAttribute = EAttribute.class.cast(eStructuralFeature);
+
+		final Class<?> instanceClass = eAttribute.getEAttributeType().getInstanceClass();
+		if (instanceClass == null) {
+			return NOT_APPLICABLE;
+		}
+		if (!XMLGregorianCalendar.class.isAssignableFrom(instanceClass)) {
+			return NOT_APPLICABLE;
+		}
+		return 3d;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#getRendererClass()
+	 */
+	@Override
+	public Class<? extends AbstractSWTRenderer<VControl>> getRendererClass() {
+		return XMLDateControlSWTRenderer.class;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/messages.properties b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/messages.properties
deleted file mode 100644
index 866b1ac..0000000
--- a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/messages.properties
+++ /dev/null
@@ -1,60 +0,0 @@
-###############################################################################
-# Copyright (c) 2013 EclipseSource.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#    EclipseSource - initial API and implementation
-################################################################################
-
-AbstractTextControl_InvalidInput=Invalid input
-AbstractTextControl_InvalidInputSpace=Invalid input 
-AbstractTextControl_Unset=<unset>
-
-AttributeMultiControl_NotSetClickToSet=Not set. Click to set\!
-AttributeMultiControl_Unset=Unset
-
-BooleanControl_NoBooleanSetClickToSetBoolean=No boolean set\! Click to set boolean.
-BooleanControl_UnsetBoolean=Unset boolean
-
-DateTimeControl_NoDateSetClickToSetDate=No date set\! Click to set date.
-DateTimeControl_UnsetDate=Unset Date
-DateTimeControlSWTRenderer_CleanDate=Clean Date
-DateTimeControlSWTRenderer_SelectData=Select Date
-
-EEnumControl_NoValueSetClickToSetValue=No value set\! Click to set value.
-EEnumControl_UnsetValue=Unset value
-
-LinkControl_NoLinkSetClickToSetLink=No link set\! Click to set link.
-LinkControl_NotSet=(Not Set)
-LinkControl_UnsetLink=Unset Link
-
-NumericalControl_FormatNumerical=The format is '\#'.
-NumericalControl_FormatNumericalDecimal=The format is '\#.\#'.
-NumericalControl_InvalidNumber=Invalid Number
-NumericalControl_InvalidNumberWillBeUnset=The Number you have entered is invalid. The value will be unset.
-NumericalControl_NoNumberClickToSetNumber=No number set\! Click to set number.
-NumericalControl_UnsetNumber=Unset number
-
-ReferenceMultiControl_NotSetClickToSet=Not set. Click to set\!
-ReferenceMultiControl_Unset=Unset
-
-SimpleControlSWTRenderer_Set=Set
-SimpleControlSWTRenderer_Unset=Unset
-StringControl_NoTextSetClickToSetText=No text set\! Click to set text.
-StringControl_UnsetText=Unset text
-
-TableControl_AddInstanceOf=Add an instance of 
-TableControl_Delete=Delete?
-TableControl_DeleteAreYouSure=Are you sure you want to delete the selected Elements?
-TableControl_NotSetClickToSet=Not set. Click to set\!
-TableControl_RemoveSelected=Remove the selected 
-TableControl_Unset=Unset
-TableControl_ValidationStatusColumn=Validation Status
-
-XmlDateControlText_InvalidNumber=Invalid Number
-XmlDateControlText_NoDateSetClickToSetDate=No date set\! Click to set date.
-XmlDateControlText_NumberInvalidValueWillBeUnset=The Number you have entered is invalid. The value will be unset.
-XmlDateControlText_UnsetDate=Unset date
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/AbstractControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/AbstractControlSWTRenderer.java
index f68354f..7a845d5 100644
--- a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/AbstractControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/AbstractControlSWTRenderer.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
  *
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -11,36 +11,38 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.core.swt;
 
-import java.util.Iterator;
-import java.util.Map.Entry;
 import java.util.Set;
 
 import org.eclipse.core.databinding.DataBindingContext;
+import org.eclipse.core.databinding.UpdateValueStrategy;
+import org.eclipse.core.databinding.observable.IObserving;
 import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.emf.databinding.EMFDataBindingContext;
-import org.eclipse.emf.databinding.edit.EMFEditProperties;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecp.edit.spi.swt.util.SWTValidationHelper;
-import org.eclipse.emf.ecp.view.internal.core.swt.Activator;
-import org.eclipse.emf.ecp.view.model.common.edit.provider.CustomReflectiveItemProviderAdapterFactory;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.model.DomainModelReferenceChangeListener;
 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.renderer.NoPropertyDescriptorFoundExeption;
-import org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.swt.SWTRendererFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.swt.reporting.RenderingFailedReport;
 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.mandatory.model.VTMandatoryFactory;
 import org.eclipse.emf.ecp.view.template.style.mandatory.model.VTMandatoryStyleProperty;
 import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
 import org.eclipse.emf.edit.domain.EditingDomain;
-import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
-import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+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.label.EMFFormsLabelProvider;
+import org.eclipse.emfforms.spi.core.services.label.NoLabelFoundException;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
+import org.eclipse.jface.databinding.swt.SWTObservables;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.graphics.Image;
@@ -58,37 +60,72 @@
  */
 public abstract class AbstractControlSWTRenderer<VCONTROL extends VControl> extends AbstractSWTRenderer<VCONTROL> {
 
-	private AdapterFactoryItemDelegator adapterFactoryItemDelegator;
-	private ComposedAdapterFactory composedAdapterFactory;
-	private DataBindingContext dataBindingContext;
+	private final EMFFormsDatabinding emfFormsDatabinding;
+	private final EMFFormsLabelProvider emfFormsLabelProvider;
+	private final VTViewTemplateProvider vtViewTemplateProvider;
+	private boolean isDisposed;
 	private IObservableValue modelValue;
-	private final WritableValue value = new WritableValue();
-	private DomainModelReferenceChangeListener domainModelReferenceChangeListener;
 
 	/**
 	 * 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}
+	 * @since 1.6
 	 */
-	public AbstractControlSWTRenderer() {
-		super();
+	public AbstractControlSWTRenderer(VCONTROL vElement, ViewModelContext viewContext, ReportService reportService,
+		EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider,
+		VTViewTemplateProvider vtViewTemplateProvider) {
+		super(vElement, viewContext, reportService);
+		this.emfFormsDatabinding = emfFormsDatabinding;
+		this.emfFormsLabelProvider = emfFormsLabelProvider;
+		this.vtViewTemplateProvider = vtViewTemplateProvider;
+		viewModelDBC = new EMFDataBindingContext();
+		isDisposed = false;
 	}
 
 	/**
-	 * Test constructor.
+	 * The {@link EMFFormsDatabinding} to use.
 	 *
-	 * @param factory the {@link SWTRendererFactory} to use.
+	 * @return The EMFFormsDatabinding
+	 * @since 1.6
 	 */
-	AbstractControlSWTRenderer(SWTRendererFactory factory) {
-		super(factory);
+	protected EMFFormsDatabinding getEMFFormsDatabinding() {
+		return emfFormsDatabinding;
 	}
 
+	/**
+	 * The {@link EMFFormsLabelProvider} to use.
+	 *
+	 * @return The EMFFormsLabelProvider
+	 * @since 1.6
+	 */
+	protected EMFFormsLabelProvider getEMFFormsLabelProvider() {
+		return emfFormsLabelProvider;
+	}
+
+	/**
+	 * The {@link VTViewTemplateProvider} to use.
+	 *
+	 * @return The VTViewTemplateProvider
+	 * @since 1.6
+	 */
+	protected VTViewTemplateProvider getVTViewTemplateProvider() {
+		return vtViewTemplateProvider;
+	}
+
+	private DataBindingContext dataBindingContext;
+	private DomainModelReferenceChangeListener domainModelReferenceChangeListener;
+	private final EMFDataBindingContext viewModelDBC;
+
+	// TODO is this needed?
 	@Override
 	protected void postInit() {
 		super.postInit();
-		composedAdapterFactory = new ComposedAdapterFactory(new AdapterFactory[] {
-			new CustomReflectiveItemProviderAdapterFactory(),
-			new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE) });
-		adapterFactoryItemDelegator = new AdapterFactoryItemDelegator(
-			composedAdapterFactory);
 		domainModelReferenceChangeListener = new DomainModelReferenceChangeListener() {
 
 			@Override
@@ -97,39 +134,31 @@
 
 					@Override
 					public void run() {
-						if (!value.isDisposed()) {
-							updateControl();
-						}
+						applyEnable();
 					}
 				});
 			}
 		};
 		getVElement().getDomainModelReference().getChangeListener().add(domainModelReferenceChangeListener);
-		updateControl();
+		applyEnable();
 	}
 
 	@Override
 	protected void dispose() {
+		isDisposed = true;
 		if (getVElement().getDomainModelReference() != null) {
 			getVElement().getDomainModelReference().getChangeListener().remove(domainModelReferenceChangeListener);
 		}
 
 		domainModelReferenceChangeListener = null;
-		if (value != null) {
-			value.dispose();
-		}
 
-		if (composedAdapterFactory != null) {
-			composedAdapterFactory.dispose();
-			composedAdapterFactory = null;
-		}
 		if (dataBindingContext != null) {
 			dataBindingContext.dispose();
 			dataBindingContext = null;
 		}
+		viewModelDBC.dispose();
 		if (modelValue != null) {
 			modelValue.dispose();
-			modelValue = null;
 		}
 		super.dispose();
 	}
@@ -151,24 +180,11 @@
 	 * @return the color to be used as a background color
 	 */
 	protected final Color getValidationBackgroundColor(int severity) {
-		return SWTValidationHelper.INSTANCE
-			.getValidationBackgroundColor(severity, getVElement(), getViewModelContext());
-	}
-
-	/**
-	 * Return the {@link IItemPropertyDescriptor} describing this {@link Setting}.
-	 *
-	 * @param setting the {@link Setting} to use for identifying the {@link IItemPropertyDescriptor}.
-	 * @return the {@link IItemPropertyDescriptor}
-	 */
-	protected final IItemPropertyDescriptor getItemPropertyDescriptor(Setting setting) {
-		if (setting == null) {
+		if (isDisposed) {
 			return null;
 		}
-		final IItemPropertyDescriptor descriptor = adapterFactoryItemDelegator.getPropertyDescriptor(
-			setting.getEObject(),
-			setting.getEStructuralFeature());
-		return descriptor;
+		return SWTValidationHelper.INSTANCE
+			.getValidationBackgroundColor(severity, getVElement(), getViewModelContext());
 	}
 
 	/**
@@ -184,31 +200,32 @@
 	}
 
 	/**
-	 * Returns an {@link IObservableValue} based on the provided {@link Setting}.
+	 * Returns an {@link IObservableValue} based on the control's domain model reference and domain model.
 	 *
-	 * @param setting the {@link Setting} to get the {@link IObservableValue} for
 	 * @return the {@link IObservableValue}
+	 * @throws DatabindingFailedException if the databinding of the domain model object fails.
+	 * @since 1.6
 	 */
-	protected final IObservableValue getModelValue(final Setting setting) {
+	protected final IObservableValue getModelValue() throws DatabindingFailedException {
 		if (modelValue == null) {
+			final VDomainModelReference ref = getVElement().getDomainModelReference();
+			final EObject eObject = getViewModelContext().getDomainModel();
 
-			modelValue = EMFEditProperties.value(getEditingDomain(setting), setting.getEStructuralFeature())
-				.observeDetail(
-					value);
-			// modelValue = EMFEditObservables.observeValue(getEditingDomain(setting),
-			// setting.getEObject(), setting.getEStructuralFeature());
+			final EMFFormsDatabinding databindingService = getEMFFormsDatabinding();
+			modelValue = databindingService.getObservableValue(ref, eObject);
 		}
 		return modelValue;
 	}
 
 	/**
-	 * Returns the {@link EditingDomain} for the provided {@link Setting}.
+	 * Returns the {@link EditingDomain} for the provided {@link EObject domain model}.
 	 *
-	 * @param setting the provided {@link Setting}
-	 * @return the {@link EditingDomain} of this {@link Setting}
+	 * @param domainModel The provided {@link EObject domain model}
+	 * @return The {@link EditingDomain} of this {@link EObject domain model}
+	 * @since 1.6
 	 */
-	protected final EditingDomain getEditingDomain(Setting setting) {
-		return AdapterFactoryEditingDomain.getEditingDomainFor(setting.getEObject());
+	protected final EditingDomain getEditingDomain(EObject domainModel) {
+		return AdapterFactoryEditingDomain.getEditingDomainFor(domainModel);
 	}
 
 	/**
@@ -216,38 +233,57 @@
 	 *
 	 * @param parent the {@link Composite} to render onto
 	 * @return the created {@link Control} or null
-	 * @throws NoPropertyDescriptorFoundExeption thrown if the {@link org.eclipse.emf.ecore.EStructuralFeature
-	 *             EStructuralFeature} of the {@link VControl} doesn't have a registered {@link IItemPropertyDescriptor}
 	 */
-	protected final Control createLabel(final Composite parent)
-		throws NoPropertyDescriptorFoundExeption {
+	protected final Control createLabel(final Composite parent) {
 		Label label = null;
 		labelRender: if (getVElement().getLabelAlignment() == LabelAlignment.LEFT) {
-			if (!getVElement().getDomainModelReference().getIterator().hasNext()) {
+			final VDomainModelReference domainModelReference = getVElement().getDomainModelReference();
+			final IValueProperty valueProperty;
+			try {
+				valueProperty = getEMFFormsDatabinding().getValueProperty(domainModelReference,
+					getViewModelContext().getDomainModel());
+			} catch (final DatabindingFailedException ex) {
+				getReportService().report(new RenderingFailedReport(ex));
 				break labelRender;
 			}
-			final Setting setting = getVElement().getDomainModelReference().getIterator().next();
-			if (setting == null) {
-				break labelRender;
-			}
-			final IItemPropertyDescriptor itemPropertyDescriptor = getItemPropertyDescriptor(setting);
 
-			if (itemPropertyDescriptor == null) {
-				throw new NoPropertyDescriptorFoundExeption(setting.getEObject(), setting.getEStructuralFeature());
-			}
-
+			final EMFFormsLabelProvider labelProvider = getEMFFormsLabelProvider();
 			label = new Label(parent, SWT.NONE);
 			label.setData(CUSTOM_VARIANT, "org_eclipse_emf_ecp_control_label"); //$NON-NLS-1$
 			label.setBackground(parent.getBackground());
-			String extra = ""; //$NON-NLS-1$
-			final VTMandatoryStyleProperty mandatoryStyle = getMandatoryStyle();
-			if (mandatoryStyle.isHighliteMandatoryFields() && setting.getEStructuralFeature().getLowerBound() > 0) {
-				extra = mandatoryStyle.getMandatoryMarker();
-			}
-			final String labelText = itemPropertyDescriptor.getDisplayName(setting.getEObject());
-			if (labelText != null && labelText.trim().length() != 0) {
-				label.setText(labelText + extra);
-				label.setToolTipText(itemPropertyDescriptor.getDescription(setting.getEObject()));
+
+			final EObject rootObject = getViewModelContext().getDomainModel();
+			try {
+				final IObservableValue textObservable = SWTObservables.observeText(label);
+				final IObservableValue displayNameObservable = labelProvider.getDisplayName(domainModelReference,
+					rootObject);
+				viewModelDBC.bindValue(textObservable, displayNameObservable, null, new UpdateValueStrategy() {
+
+					/**
+					 * {@inheritDoc}
+					 *
+					 * @see org.eclipse.core.databinding.UpdateValueStrategy#convert(java.lang.Object)
+					 */
+					@Override
+					public Object convert(Object value) {
+						String extra = ""; //$NON-NLS-1$
+						final VTMandatoryStyleProperty mandatoryStyle = getMandatoryStyle();
+						final EStructuralFeature structuralFeature = (EStructuralFeature) valueProperty.getValueType();
+						if (mandatoryStyle.isHighliteMandatoryFields() && structuralFeature.getLowerBound() > 0) {
+							extra = mandatoryStyle.getMandatoryMarker();
+						}
+						final String result = (String) super.convert(value);
+						return result + extra;
+					}
+
+				});
+				final IObservableValue tooltipObservable = SWTObservables.observeTooltipText(label);
+				final IObservableValue descriptionObservable = labelProvider.getDescription(domainModelReference,
+					rootObject);
+				viewModelDBC.bindValue(tooltipObservable, descriptionObservable);
+			} catch (final NoLabelFoundException e) {
+				// FIXME Expectations?
+				getReportService().report(new RenderingFailedReport(e));
 			}
 
 		}
@@ -255,7 +291,6 @@
 	}
 
 	private VTMandatoryStyleProperty getMandatoryStyle() {
-		final VTViewTemplateProvider vtViewTemplateProvider = Activator.getDefault().getVTViewTemplateProvider();
 		if (vtViewTemplateProvider == null) {
 			return getDefaultStyle();
 		}
@@ -285,16 +320,22 @@
 		return validationLabel;
 	}
 
-	private void updateControl() {
-		final Iterator<Setting> settings = getVElement().getDomainModelReference().getIterator();
-		if (settings.hasNext()) {
-			value.setValue(settings.next().getEObject());
-			applyEnable();
-		} else {
-			value.setValue(null);
-			for (final Entry<SWTGridCell, Control> entry : getControls().entrySet()) {
-				setControlEnabled(entry.getKey(), entry.getValue(), false);
-
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#applyEnable()
+	 * @since 1.6
+	 */
+	@Override
+	protected void applyEnable() {
+		for (final SWTGridCell gridCell : getControls().keySet()) {
+			try {
+				final boolean observedNotNull = ((IObserving) getModelValue()).getObserved() != null;
+				final boolean enabled = observedNotNull && getVElement().isEnabled();
+				setControlEnabled(gridCell, getControls().get(gridCell), enabled);
+			} catch (final DatabindingFailedException ex) {
+				getReportService().report(new DatabindingFailedReport(ex));
+				setControlEnabled(gridCell, getControls().get(gridCell), false);
 			}
 		}
 	}
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/ContainerSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/ContainerSWTRenderer.java
index 9328064..fd41612 100644
--- a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/ContainerSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/ContainerSWTRenderer.java
@@ -21,24 +21,27 @@
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.emf.ecp.view.internal.core.swt.Activator;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 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.VControl;
 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.model.reporting.ReportService;
 import org.eclipse.emf.ecp.view.spi.model.reporting.StatusReport;
 import org.eclipse.emf.ecp.view.spi.model.util.ViewModelUtil;
 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.AbstractAdditionalSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.swt.SWTRendererFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.GridDescriptionFactory;
 import org.eclipse.emf.ecp.view.spi.swt.layout.LayoutProviderHelper;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
 import org.eclipse.emf.ecp.view.spi.swt.reporting.RenderingFailedReport;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.swt.core.AbstractAdditionalSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.GridDescriptionFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.widgets.Composite;
@@ -55,28 +58,42 @@
  *
  */
 public abstract class ContainerSWTRenderer<VELEMENT extends VElement> extends AbstractSWTRenderer<VELEMENT> {
-	private SWTGridDescription rendererGridDescription;
+	private final EMFFormsRendererFactory factory;
+	private final EMFFormsDatabinding emfFormsDatabinding;
+
+	/**
+	 * The {@link EMFFormsRendererFactory} to use.
+	 *
+	 * @return the {@link EMFFormsRendererFactory}
+	 * @since 1.6
+	 */
+	protected final EMFFormsRendererFactory getEMFFormsRendererFactory() {
+		return factory;
+	}
 
 	/**
 	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 * @param factory the {@link EMFFormsRendererFactory}
+	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
+	 * @since 1.6
 	 */
-	public ContainerSWTRenderer() {
-		super();
+	public ContainerSWTRenderer(VELEMENT vElement, ViewModelContext viewContext, ReportService reportService,
+		EMFFormsRendererFactory factory, EMFFormsDatabinding emfFormsDatabinding) {
+		super(vElement, viewContext, reportService);
+		this.factory = factory;
+		this.emfFormsDatabinding = emfFormsDatabinding;
 	}
 
-	/**
-	 * Test constructor.
-	 *
-	 * @param factory the {@link SWTRendererFactory} to use.
-	 */
-	protected ContainerSWTRenderer(SWTRendererFactory factory) {
-		super(factory);
-	}
+	private SWTGridDescription rendererGridDescription;
 
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#getGridDescription(SWTGridDescription)
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#getGridDescription(SWTGridDescription)
 	 */
 	@Override
 	public SWTGridDescription getGridDescription(SWTGridDescription gridDescription) {
@@ -89,7 +106,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#renderControl(int, org.eclipse.swt.widgets.Composite,
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#renderControl(int, org.eclipse.swt.widgets.Composite,
 	 *      org.eclipse.emf.ecp.view.spi.model.VElement, org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
 	 */
 	@Override
@@ -100,7 +117,6 @@
 			return null;
 		}
 
-		final ReportService reportService = Activator.getDefault().getReportService();
 		final Composite columnComposite = getComposite(parent);
 		columnComposite.setData(CUSTOM_VARIANT, getCustomVariant());
 		columnComposite.setBackground(parent.getBackground());
@@ -112,23 +128,24 @@
 
 		for (final VContainedElement child : getChildren()) {
 
-			if (VControl.class.isInstance(child) && (VControl.class.cast(child).getDomainModelReference() == null
-				|| !VControl.class.cast(child).getDomainModelReference().getIterator().hasNext())) {
+			if (!isValidElement(child)) {
 				continue;
 			}
 
-			final AbstractSWTRenderer<VElement> renderer = getSWTRendererFactory().getRenderer(child,
-				getViewModelContext());
-
-			if (renderer == null) {
-				reportService.report(new StatusReport(
-					new Status(IStatus.INFO, Activator.PLUGIN_ID, String.format(
-						"No Renderer for %s found.", child.eClass().getName())))); //$NON-NLS-1$
+			AbstractSWTRenderer<VElement> renderer;
+			try {
+				renderer = getEMFFormsRendererFactory().getRendererInstance(child,
+					getViewModelContext());
+			} catch (final EMFFormsNoRendererException ex) {
+				getReportService().report(
+					new StatusReport(
+						new Status(IStatus.INFO, Activator.PLUGIN_ID, String.format(
+							"No Renderer for %s found.", child.eClass().getName()), ex))); //$NON-NLS-1$
 				continue;
 			}
 
-			final Collection<AbstractAdditionalSWTRenderer<VElement>> additionalRenderers = getSWTRendererFactory()
-				.getAdditionalRenderer(child,
+			final Collection<AbstractAdditionalSWTRenderer<VElement>> additionalRenderers = getEMFFormsRendererFactory()
+				.getAdditionalRendererInstances(child,
 					getViewModelContext());
 			SWTGridDescription gridDescription = renderer.getGridDescription(GridDescriptionFactory.INSTANCE
 				.createEmptyGridDescription());
@@ -153,8 +170,7 @@
 		}
 		columnComposite.setLayout(getLayout(maximalGridDescription.getColumns(), false));
 		for (final VContainedElement child : getChildren()) {
-			if (VControl.class.isInstance(child) && (VControl.class.cast(child).getDomainModelReference() == null
-				|| !VControl.class.cast(child).getDomainModelReference().getIterator().hasNext())) {
+			if (!isValidElement(child)) {
 				continue;
 			}
 			final SWTGridDescription gridDescription = rowGridDescription.get(child);
@@ -168,13 +184,13 @@
 					control = childGridCell.getRenderer().render(childGridCell,
 						columnComposite);
 				} catch (final NoRendererFoundException ex) {
-					reportService.report(new RenderingFailedReport(ex));
+					getReportService().report(new RenderingFailedReport(ex));
 					if (ViewModelUtil.isDebugMode()) {
 						control = renderDiagnoseControl(columnComposite, child);
 					}
 
 				} catch (final NoPropertyDescriptorFoundExeption ex) {
-					reportService.report(new RenderingFailedReport(ex));
+					getReportService().report(new RenderingFailedReport(ex));
 					if (ViewModelUtil.isDebugMode()) {
 						control = renderDiagnoseControl(columnComposite, child);
 					}
@@ -199,6 +215,33 @@
 		return columnComposite;
 	}
 
+	private boolean isValidElement(VContainedElement child) {
+		if (VControl.class.isInstance(child)) {
+			if (VControl.class.cast(child).getDomainModelReference() == null) {
+				return false;
+			}
+			// TODO: define behaviour that defines when a control is valid
+			// try {
+			// getEMFFormsDatabinding()
+			// .getValueProperty(VControl.class.cast(child).getDomainModelReference());
+			// } catch (final DatabindingFailedException ex) {
+			// getReportService().report(new RenderingFailedReport(ex));
+			// return false;
+			// }
+		}
+		return true;
+	}
+
+	/**
+	 * Package visible method, to allow an easy replacement.
+	 *
+	 * @return The EMFFormsDatabinding
+	 */
+	private EMFFormsDatabinding getEMFFormsDatabinding() {
+		// Method is eventually needed to check the validity of controls that are to be rendered.
+		return emfFormsDatabinding;
+	}
+
 	// TODO: possible duplicate code
 	private Control renderDiagnoseControl(Composite parent, VContainedElement child) throws NoRendererFoundException,
 		NoPropertyDescriptorFoundExeption {
@@ -254,9 +297,29 @@
 	}
 
 	/**
+	 * Sets the LayoutData for the specified control.
+	 *
+	 * @param gridCell the {@link GridCell} used to render the control
+	 * @param gridDescription the {@link GridDescription} of the parent which rendered the control
+	 * @param currentRowGridDescription the {@link GridDescription} of the current row
+	 * @param fullGridDescription the {@link GridDescription} of the whole container
+	 * @param vElement the {@link VElement} to set the layoutData for
+	 * @param control the control to set the layout to
+	 * @since 1.6
+	 */
+	protected void setLayoutDataForControl(SWTGridCell gridCell, SWTGridDescription gridDescription,
+		SWTGridDescription currentRowGridDescription, SWTGridDescription fullGridDescription, VElement vElement,
+		Control control) {
+
+		control.setLayoutData(LayoutProviderHelper.getLayoutData(gridCell, gridDescription, currentRowGridDescription,
+			fullGridDescription, vElement, getViewModelContext().getDomainModel(), control));
+
+	}
+
+	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#dispose()
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#dispose()
 	 */
 	@Override
 	protected void dispose() {
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/SimpleControlJFaceViewerSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/SimpleControlJFaceViewerSWTRenderer.java
index dfa9a09..88a06c2 100644
--- a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/SimpleControlJFaceViewerSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/SimpleControlJFaceViewerSWTRenderer.java
@@ -13,8 +13,13 @@
 package org.eclipse.emf.ecp.view.spi.core.swt;
 
 import org.eclipse.core.databinding.Binding;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
-import org.eclipse.emf.ecp.view.spi.swt.SWTRendererFactory;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+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.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.swt.events.DisposeEvent;
 import org.eclipse.swt.events.DisposeListener;
@@ -31,18 +36,20 @@
 
 	/**
 	 * Default constructor.
-	 */
-	public SimpleControlJFaceViewerSWTRenderer() {
-		super();
-	}
-
-	/**
-	 * Test constructor.
 	 *
-	 * @param factory the {@link SWTRendererFactory} to use.
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService The {@link ReportService}
+	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
+	 * @param emfFormsLabelProvider The {@link EMFFormsLabelProvider}
+	 * @param vtViewTemplateProvider The {@link VTViewTemplateProvider}
+	 * @since 1.6
 	 */
-	protected SimpleControlJFaceViewerSWTRenderer(SWTRendererFactory factory) {
-		super(factory);
+	public SimpleControlJFaceViewerSWTRenderer(VControl vElement, ViewModelContext viewContext,
+		ReportService reportService,
+		EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider,
+		VTViewTemplateProvider vtViewTemplateProvider) {
+		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider);
 	}
 
 	/**
@@ -50,13 +57,12 @@
 	 *
 	 * @param parent the {@link Composite} to render onto
 	 * @return the rendered control
+	 * @throws DatabindingFailedException if the creation of the control fails due to failed databinding
 	 */
 	@Override
-	protected final Control createControl(Composite parent) {
-		final Setting setting = getVElement().getDomainModelReference().getIterator().next();
-
-		final Viewer viewer = createJFaceViewer(parent, setting);
-		final Binding[] bindings = createBindings(viewer, setting);
+	protected final Control createControl(Composite parent) throws DatabindingFailedException {
+		final Viewer viewer = createJFaceViewer(parent);
+		final Binding[] bindings = createBindings(viewer);
 
 		viewer.getControl().addDisposeListener(new DisposeListener() {
 
@@ -77,19 +83,20 @@
 	 * Create the {@link Binding Bindings} for this controls.
 	 *
 	 * @param viewer the {@link Viewer} to create the binding for
-	 * @param setting the current {@link Setting}
 	 * @return all the bindings created by this renderer
+	 * @throws DatabindingFailedException if the creation of the bindings failed
+	 * @since 1.6
 	 */
-	protected abstract Binding[] createBindings(Viewer viewer,
-		Setting setting);
+	protected abstract Binding[] createBindings(Viewer viewer) throws DatabindingFailedException;
 
 	/**
 	 * Creates the {@link Viewer}.
 	 *
 	 * @param parent the {@link Composite} to use as a parent
-	 * @param setting the {@link Setting}
 	 * @return the created {@link Viewer}
+	 * @throws DatabindingFailedException if the databinding fails
+	 * @since 1.6
 	 */
-	protected abstract Viewer createJFaceViewer(Composite parent, Setting setting);
+	protected abstract Viewer createJFaceViewer(Composite parent) throws DatabindingFailedException;
 
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/SimpleControlSWTControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/SimpleControlSWTControlSWTRenderer.java
index d3727e6..0cf6ba4 100644
--- a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/SimpleControlSWTControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/SimpleControlSWTControlSWTRenderer.java
@@ -13,8 +13,13 @@
 package org.eclipse.emf.ecp.view.spi.core.swt;
 
 import org.eclipse.core.databinding.Binding;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
-import org.eclipse.emf.ecp.view.spi.swt.SWTRendererFactory;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+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.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
 import org.eclipse.swt.events.DisposeEvent;
 import org.eclipse.swt.events.DisposeListener;
 import org.eclipse.swt.widgets.Composite;
@@ -27,20 +32,23 @@
  *
  */
 public abstract class SimpleControlSWTControlSWTRenderer extends SimpleControlSWTRenderer {
-	/**
-	 * Default constructor.
-	 */
-	public SimpleControlSWTControlSWTRenderer() {
-		super();
-	}
 
 	/**
-	 * Test constructor.
+	 * Default constructor.
 	 *
-	 * @param factory the {@link SWTRendererFactory} to use.
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService The {@link ReportService}
+	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
+	 * @param emfFormsLabelProvider The {@link EMFFormsLabelProvider}
+	 * @param vtViewTemplateProvider The {@link VTViewTemplateProvider}
+	 * @since 1.6
 	 */
-	protected SimpleControlSWTControlSWTRenderer(SWTRendererFactory factory) {
-		super(factory);
+	public SimpleControlSWTControlSWTRenderer(VControl vElement, ViewModelContext viewContext,
+		ReportService reportService,
+		EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider,
+		VTViewTemplateProvider vtViewTemplateProvider) {
+		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider);
 	}
 
 	/**
@@ -48,19 +56,15 @@
 	 *
 	 * @param parent the {@link Composite} to render onto
 	 * @return the rendered control
+	 * @throws DatabindingFailedException if the databinding of the control fails
 	 */
 	@Override
-	protected final Control createControl(Composite parent) {
-		if (!getVElement().getDomainModelReference().getIterator().hasNext()) {
-			return null;
-		}
-		final Setting setting = getVElement().getDomainModelReference().getIterator().next();
-
-		final Control control = createSWTControl(parent, setting);
+	protected final Control createControl(Composite parent) throws DatabindingFailedException {
+		final Control control = createSWTControl(parent);
 		if (control == null) {
 			return null;
 		}
-		final Binding[] bindings = createBindings(control, setting);
+		final Binding[] bindings = createBindings(control);
 
 		control.addDisposeListener(new DisposeListener() {
 			@Override
@@ -81,18 +85,20 @@
 	 * Create the {@link Binding Bindings} for this controls.
 	 *
 	 * @param control the {@link Control} to create the binding for
-	 * @param setting the current {@link Setting}
 	 * @return all the bindings created by this renderer
+	 * @throws DatabindingFailedException if the creation of the bindings fails.
+	 * @since 1.6
 	 */
-	protected abstract Binding[] createBindings(Control control, Setting setting);
+	protected abstract Binding[] createBindings(Control control) throws DatabindingFailedException;
 
 	/**
 	 * Creates the Control.
 	 *
 	 * @param parent the {@link Composite} to use as a parent
-	 * @param setting the {@link Setting}
 	 * @return the created control
+	 * @throws DatabindingFailedException if the creation of the control fails due to databinding problems
+	 * @since 1.6
 	 */
-	protected abstract Control createSWTControl(Composite parent, Setting setting);
+	protected abstract Control createSWTControl(Composite parent) throws DatabindingFailedException;
 
 }
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 1a7aab1..b2a242b 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
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
  *
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -11,24 +11,32 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.core.swt;
 
+import org.eclipse.core.databinding.observable.IObserving;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.emf.common.util.Diagnostic;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecp.view.internal.core.swt.Activator;
-import org.eclipse.emf.ecp.view.internal.core.swt.renderer.RendererMessages;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.model.LabelAlignment;
 import org.eclipse.emf.ecp.view.spi.model.VControl;
-import org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport;
-import org.eclipse.emf.ecp.view.spi.model.reporting.ReportService;
-import org.eclipse.emf.ecp.view.spi.model.util.ViewModelUtil;
 import org.eclipse.emf.ecp.view.spi.provider.ECPTooltipModifierHelper;
 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.SWTRendererFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.GridDescriptionFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
+import org.eclipse.emf.ecp.view.spi.swt.reporting.RenderingFailedReport;
+import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
 import org.eclipse.emf.edit.command.SetCommand;
 import org.eclipse.emf.edit.domain.EditingDomain;
+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.DatabindingFailedReport;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
+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.jface.layout.GridDataFactory;
 import org.eclipse.jface.layout.GridLayoutFactory;
 import org.eclipse.swt.SWT;
@@ -47,28 +55,35 @@
  *
  */
 public abstract class SimpleControlSWTRenderer extends AbstractControlSWTRenderer<VControl> {
-	private SWTGridDescription rendererGridDescription;
+
+	private static final String ICONS_UNSET_REFERENCE = "icons/unset_reference.png"; //$NON-NLS-1$
+	private static final String ICONS_UNSET_FEATURE = "icons/unset_feature.png"; //$NON-NLS-1$
+	private static final String ICONS_SET_REFERENCE = "icons/set_reference.png"; //$NON-NLS-1$
+	private static final String ICONS_SET_FEATURE = "icons/set_feature.png"; //$NON-NLS-1$
 
 	/**
 	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService The {@link ReportService}
+	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
+	 * @param emfFormsLabelProvider The {@link EMFFormsLabelProvider}
+	 * @param vtViewTemplateProvider The {@link VTViewTemplateProvider}
+	 * @since 1.6
 	 */
-	public SimpleControlSWTRenderer() {
-		super();
+	public SimpleControlSWTRenderer(VControl vElement, ViewModelContext viewContext, ReportService reportService,
+		EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider,
+		VTViewTemplateProvider vtViewTemplateProvider) {
+		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider);
 	}
 
-	/**
-	 * Test constructor.
-	 *
-	 * @param factory the {@link SWTRendererFactory} to use.
-	 */
-	SimpleControlSWTRenderer(SWTRendererFactory factory) {
-		super(factory);
-	}
+	private SWTGridDescription rendererGridDescription;
 
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#getGridDescription(SWTGridDescription)
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#getGridDescription(SWTGridDescription)
 	 */
 	@Override
 	public final SWTGridDescription getGridDescription(SWTGridDescription gridDescription) {
@@ -82,7 +97,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#renderControl(int, org.eclipse.swt.widgets.Composite,
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#renderControl(int, org.eclipse.swt.widgets.Composite,
 	 *      org.eclipse.emf.ecp.view.spi.model.VElement, org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
 	 */
 	@Override
@@ -98,15 +113,23 @@
 		case 1:
 			return createValidationIcon(parent);
 		case 2:
-			if (isUnsettable()) {
-				return createUnsettableControl(parent);
+			try {
+				if (isUnsettable()) {
+					return createUnsettableControl(parent);
+				}
+				return createControl(parent);
+			} catch (final DatabindingFailedException ex) {
+				getReportService().report(new RenderingFailedReport(ex));
+				final Label errorLabel = new Label(parent, SWT.NONE);
+				errorLabel.setText(ex.getMessage());
+				return errorLabel;
 			}
-			return createControl(parent);
 		default:
 			throw new IllegalArgumentException(
 				String
 					.format(
-						"The provided SWTGridCell (%1$s) cannot be used by this (%2$s) renderer.", gridCell.toString(), toString())); //$NON-NLS-1$
+						"The provided SWTGridCell (%1$s) cannot be used by this (%2$s) renderer.", gridCell.toString(), //$NON-NLS-1$
+						toString()));
 		}
 	}
 
@@ -114,12 +137,16 @@
 	 * Returns true if the control is unsettable.
 	 *
 	 * @return true if unsettable, false otherwise
+	 * @throws DatabindingFailedException if the databinding fails
 	 */
-	protected boolean isUnsettable() {
-		return getVElement().getDomainModelReference().getEStructuralFeatureIterator().next().isUnsettable();
+	protected boolean isUnsettable() throws DatabindingFailedException {
+		final IValueProperty valueProperty = getEMFFormsDatabinding()
+			.getValueProperty(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
+		final EStructuralFeature feature = (EStructuralFeature) valueProperty.getValueType();
+		return feature.isUnsettable();
 	}
 
-	private Control createUnsettableControl(Composite parent) {
+	private Control createUnsettableControl(Composite parent) throws DatabindingFailedException {
 		final Composite composite = new Composite(parent, SWT.NONE);
 		composite.setBackground(parent.getBackground());
 		GridLayoutFactory.fillDefaults().numColumns(2).equalWidth(false).applyTo(composite);
@@ -133,7 +160,6 @@
 		final Button unsetButton = new Button(composite, SWT.PUSH);
 		GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.CENTER).grab(false, false).applyTo(unsetButton);
 		unsetButton.addSelectionListener(new SelectionAdapter() {
-
 			/**
 			 * {@inheritDoc}
 			 *
@@ -142,33 +168,43 @@
 			@Override
 			public void widgetSelected(SelectionEvent e) {
 				super.widgetSelected(e);
-				final Setting setting = getVElement().getDomainModelReference().getIterator().next();
-				Object value = null;
-				if (!setting.isSet()) {
-					sl.topControl = baseControl;
-					unsetButton.setText(RendererMessages.SimpleControlSWTRenderer_Unset);
-					value = setting
-						.getEStructuralFeature().getDefaultValue();
+				IObservableValue observableValue;
+				try {
+					observableValue = getEMFFormsDatabinding()
+						.getObservableValue(getVElement().getDomainModelReference(),
+							getViewModelContext().getDomainModel());
+				} catch (final DatabindingFailedException ex) {
+					getReportService().report(new DatabindingFailedReport(ex));
+					return;
 				}
-				else {
+				final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+				final EObject eObject = (EObject) ((IObserving) observableValue).getObserved();
+				observableValue.dispose();
+				Object value = null;
+				if (!eObject.eIsSet(structuralFeature)) {
+					sl.topControl = baseControl;
+					unsetButton.setImage(Activator.getImage(ICONS_UNSET_FEATURE));
+					value = structuralFeature.getDefaultValue();
+				} else {
 					sl.topControl = createUnsetLabel;
-					unsetButton.setText(RendererMessages.SimpleControlSWTRenderer_Set);
+					unsetButton.setImage(Activator.getImage(ICONS_SET_FEATURE));
 					value = SetCommand.UNSET_VALUE;
 				}
-				final EditingDomain editingDomain = getEditingDomain(setting);
+				final EditingDomain editingDomain = getEditingDomain(eObject);
 				editingDomain.getCommandStack().execute(
-					SetCommand.create(editingDomain, setting.getEObject(), setting.getEStructuralFeature(), value));
-				composite.layout();
+					SetCommand.create(editingDomain, eObject, structuralFeature, value));
+				controlComposite.layout();
 			}
 		});
 
-		if (getVElement().getDomainModelReference().getIterator().next().isSet()) {
+		final EStructuralFeature structuralFeature = (EStructuralFeature) getModelValue().getValueType();
+		final EObject eObject = (EObject) ((IObserving) getModelValue()).getObserved();
+		if (eObject.eIsSet(structuralFeature)) {
 			sl.topControl = baseControl;
-			unsetButton.setText(RendererMessages.SimpleControlSWTRenderer_Unset);
-		}
-		else {
+			unsetButton.setImage(Activator.getImage(ICONS_UNSET_FEATURE));
+		} else {
 			sl.topControl = createUnsetLabel;
-			unsetButton.setText(RendererMessages.SimpleControlSWTRenderer_Set);
+			unsetButton.setImage(Activator.getImage(ICONS_SET_FEATURE));
 		}
 
 		return composite;
@@ -242,10 +278,7 @@
 			editControl = getControls().get(new SWTGridCell(0, 2, SimpleControlSWTRenderer.this));
 			break;
 		default:
-			if (ViewModelUtil.isDebugMode()) {
-				final ReportService reportService = Activator.getDefault().getReportService();
-				reportService.report(new AbstractReport("Wrong number of controls!")); //$NON-NLS-1$
-			}
+			getReportService().report(new AbstractReport("Wrong number of controls!")); //$NON-NLS-1$
 			return;
 		}
 		// triggered due to another validation rule before this control is rendered
@@ -278,13 +311,14 @@
 	 *
 	 * @param parent the {@link Composite} to render onto
 	 * @return the rendered control
+	 * @throws DatabindingFailedException if the databinding of the control fails
 	 */
-	protected abstract Control createControl(Composite parent);
+	protected abstract Control createControl(Composite parent) throws DatabindingFailedException;
 
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#dispose()
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#dispose()
 	 */
 	@Override
 	protected void dispose() {
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/renderer/TextControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/renderer/TextControlSWTRenderer.java
index 74a0372..7ec9cf0 100644
--- a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/renderer/TextControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/renderer/TextControlSWTRenderer.java
@@ -13,28 +13,43 @@
 
 import java.util.Set;
 
+import javax.inject.Inject;
+
 import org.eclipse.core.databinding.Binding;
 import org.eclipse.core.databinding.DataBindingContext;
 import org.eclipse.core.databinding.UpdateValueStrategy;
+import org.eclipse.core.databinding.observable.IObserving;
 import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.emf.databinding.EMFUpdateValueStrategy;
 import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
-import org.eclipse.emf.ecp.view.internal.core.swt.Activator;
-import org.eclipse.emf.ecp.view.internal.core.swt.renderer.RendererMessages;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecp.view.internal.core.swt.MessageKeys;
+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.model.LabelAlignment;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
 import org.eclipse.emf.ecp.view.spi.provider.ECPTooltipModifierHelper;
-import org.eclipse.emf.ecp.view.spi.swt.SWTRendererFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
+import org.eclipse.emf.ecp.view.spi.swt.reporting.RenderingFailedReport;
 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.alignment.model.AlignmentType;
 import org.eclipse.emf.ecp.view.template.style.alignment.model.VTAlignmentStyleProperty;
 import org.eclipse.emf.ecp.view.template.style.textControlEnablement.model.VTTextControlEnablementStyleProperty;
 import org.eclipse.emf.edit.command.SetCommand;
+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.DatabindingFailedReport;
+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.LocalizationServiceHelper;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
 import org.eclipse.jface.databinding.swt.SWTObservables;
 import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.FocusEvent;
+import org.eclipse.swt.events.FocusListener;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Text;
@@ -47,52 +62,79 @@
  *
  */
 public class TextControlSWTRenderer extends SimpleControlSWTControlSWTRenderer {
-	/**
-	 * Default constructor.
-	 */
-	public TextControlSWTRenderer() {
-		super();
-	}
+
+	private final EMFFormsEditSupport emfFormsEditSupport;
 
 	/**
-	 * Test constructor.
+	 * Default constructor.
 	 *
-	 * @param factory the {@link SWTRendererFactory} to use.
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService The {@link ReportService}
+	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
+	 * @param emfFormsLabelProvider The {@link EMFFormsLabelProvider}
+	 * @param vtViewTemplateProvider The {@link VTViewTemplateProvider}
+	 * @param emfFormsEditSupport The {@link EMFFormsEditSupport}
+	 * @since 1.6
 	 */
-	protected TextControlSWTRenderer(SWTRendererFactory factory) {
-		super(factory);
+	@Inject
+	public TextControlSWTRenderer(VControl vElement, ViewModelContext viewContext,
+		ReportService reportService,
+		EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider,
+		VTViewTemplateProvider vtViewTemplateProvider, EMFFormsEditSupport emfFormsEditSupport) {
+		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider);
+		this.emfFormsEditSupport = emfFormsEditSupport;
 	}
 
 	@Override
-	protected Binding[] createBindings(Control control, Setting setting) {
+	protected Binding[] createBindings(Control control) throws DatabindingFailedException {
+		final EStructuralFeature structuralFeature = (EStructuralFeature) getModelValue().getValueType();
 		final TargetToModelUpdateStrategy targetToModelUpdateStrategy = new TargetToModelUpdateStrategy(
-			setting.getEStructuralFeature().isUnsettable());
+			structuralFeature.isUnsettable());
 		final ModelToTargetUpdateStrategy modelToTargetUpdateStrategy = new ModelToTargetUpdateStrategy(false);
-		final Binding binding = bindValue(control, getModelValue(setting), getDataBindingContext(),
+		final Binding binding = bindValue(control, getModelValue(), getDataBindingContext(),
 			targetToModelUpdateStrategy,
 			modelToTargetUpdateStrategy);
-		final Binding tooltipBinding = createTooltipBinding(control, getModelValue(setting), getDataBindingContext(),
+		final Binding tooltipBinding = createTooltipBinding(control, getModelValue(), getDataBindingContext(),
 			targetToModelUpdateStrategy,
 			new ModelToTargetUpdateStrategy(true));
 		return new Binding[] { binding, tooltipBinding };
 	}
 
 	@Override
-	protected Control createSWTControl(Composite parent, Setting setting) {
+	protected Control createSWTControl(Composite parent) {
 		final Text text = new Text(parent, getTextWidgetStyle());
 		text.setData(CUSTOM_VARIANT, getTextVariantID());
-		text.setMessage(getTextMessage(setting));
+		text.setMessage(getTextMessage());
+		text.addFocusListener(new FocusListener() {
+			@Override
+			public void focusLost(FocusEvent e) {
+			}
+
+			@Override
+			public void focusGained(FocusEvent e) {
+				text.selectAll();
+			}
+		});
 		return text;
 	}
 
 	/**
 	 * Returns the text which should be set as the message text on the Text field.
 	 *
-	 * @param setting the setting being shown in the text field
 	 * @return the string to show as the message
+	 * @since 1.6
 	 */
-	protected String getTextMessage(Setting setting) {
-		return getItemPropertyDescriptor(setting).getDisplayName(null);
+	protected String getTextMessage() {
+		try {
+			return (String) getEMFFormsLabelProvider()
+				.getDisplayName(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel())
+				.getValue();
+		} catch (final NoLabelFoundException ex) {
+			// FIXME Expectations?
+			getReportService().report(new RenderingFailedReport(ex));
+		}
+		return ""; //$NON-NLS-1$
 	}
 
 	/**
@@ -135,19 +177,23 @@
 	 */
 	protected int getTextWidgetStyle() {
 		int textStyle = SWT.SINGLE | SWT.BORDER;
-		if (getItemPropertyDescriptor(getVElement().getDomainModelReference().getIterator().next()).isMultiLine(null)) {
+		final EMFFormsEditSupport editSupport = getEMFFormsEditSupport();
+		if (editSupport.isMultiLine(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel())) {
 			textStyle = SWT.MULTI | SWT.WRAP | SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER;
 		}
 		textStyle |= getAlignment();
 		return textStyle;
 	}
 
+	private EMFFormsEditSupport getEMFFormsEditSupport() {
+		return emfFormsEditSupport;
+	}
+
 	private int getAlignment() {
-		final VTViewTemplateProvider vtViewTemplateProvider = Activator.getDefault().getVTViewTemplateProvider();
-		if (vtViewTemplateProvider == null) {
+		if (getVTViewTemplateProvider() == null) {
 			return getDefaultAlignment();
 		}
-		final Set<VTStyleProperty> styleProperties = vtViewTemplateProvider
+		final Set<VTStyleProperty> styleProperties = getVTViewTemplateProvider()
 			.getStyleProperties(getVElement(), getViewModelContext());
 		for (final VTStyleProperty styleProperty : styleProperties) {
 			if (VTAlignmentStyleProperty.class.isInstance(styleProperty)) {
@@ -185,10 +231,8 @@
 		if (isDisableRenderedAsEditable()
 			&& (getVElement().getLabelAlignment() == LabelAlignment.NONE && gridCell.getColumn() == 1
 			|| getVElement().getLabelAlignment() == LabelAlignment.LEFT && gridCell.getColumn() == 2)) {
-			final EStructuralFeature feature = getVElement().getDomainModelReference().getEStructuralFeatureIterator()
-				.next();
 			Control controlToUnset = control;
-			if (feature.isUnsettable()) {
+			if (isControlUnsettable()) {
 				// if (!setting.isSet()) {
 				// return;
 				// }
@@ -200,8 +244,22 @@
 		}
 	}
 
+	private boolean isControlUnsettable() {
+		IValueProperty valueProperty;
+		try {
+			valueProperty = getEMFFormsDatabinding()
+				.getValueProperty(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			getReportService().report(new RenderingFailedReport(ex));
+			return false;
+		}
+		final EStructuralFeature feature = (EStructuralFeature) valueProperty;
+		final boolean unsettable = feature.isUnsettable();
+		return unsettable;
+	}
+
 	private boolean isDisableRenderedAsEditable() {
-		final VTViewTemplateProvider vtViewTemplateProvider = Activator.getDefault().getVTViewTemplateProvider();
+		final VTViewTemplateProvider vtViewTemplateProvider = getVTViewTemplateProvider();
 		if (vtViewTemplateProvider == null) {
 			return false;
 		}
@@ -279,8 +337,17 @@
 		public Object convert(Object value) {
 			final Object converted = convertValue(value);
 			if (tooltip && String.class.isInstance(converted)) {
-				return ECPTooltipModifierHelper.modifyString(String.class.cast(converted), getVElement()
-					.getDomainModelReference().getIterator().next());
+				IObservableValue observableValue;
+				try {
+					observableValue = getModelValue();
+				} catch (final DatabindingFailedException ex) {
+					getReportService().report(new DatabindingFailedReport(ex));
+					return converted;
+				}
+				final InternalEObject internalEObject = (InternalEObject) ((IObserving) observableValue).getObserved();
+				final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+				return ECPTooltipModifierHelper.modifyString(String.class.cast(converted),
+					internalEObject.eSetting(structuralFeature));
 			}
 			return converted;
 		}
@@ -335,7 +402,8 @@
 	 */
 	@Override
 	protected String getUnsetText() {
-		return RendererMessages.StringControl_NoTextSetClickToSetText;
+		return LocalizationServiceHelper
+			.getString(getClass(), MessageKeys.StringControl_NoTextSetClickToSetText);
 	}
 
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.custom.model.edit/.gitignore b/bundles/org.eclipse.emf.ecp.view.custom.model.edit/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.custom.model.edit/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.view.custom.model.edit/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.custom.model.edit/.settings/.api_filters
index fdc8a5b..ef3cd97 100644
--- a/bundles/org.eclipse.emf.ecp.view.custom.model.edit/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.custom.model.edit/.settings/.api_filters
@@ -7,10 +7,10 @@
                 <message_argument value="1.2.1"/>
             </message_arguments>
         </filter>
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
@@ -46,6 +46,30 @@
             </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.custom.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.custom.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.custom.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
     <resource path="src/org/eclipse/emf/ecp/view/spi/custom/model/provider/CustomItemProviderAdapterFactory.java" type="org.eclipse.emf.ecp.view.spi.custom.model.provider.CustomItemProviderAdapterFactory">
         <filter comment="This is SPI" id="338755678">
             <message_arguments>
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 e47d88a..61cbdd5 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,14 +2,14 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: %pluginName

 Bundle-SymbolicName: org.eclipse.emf.ecp.view.custom.model.edit;singleton:=true

-Bundle-Version: 1.5.1.qualifier

+Bundle-Version: 1.6.0.qualifier

 Bundle-ClassPath: .

 Bundle-Activator: org.eclipse.emf.ecp.view.spi.custom.model.provider.CustomEditPlugin$Implementation

 Bundle-Vendor: %providerName

 Bundle-Localization: plugin

 Bundle-RequiredExecutionEnvironment: JavaSE-1.6

 Export-Package: org.eclipse.emf.ecp.view.spi.custom.model.provider;ver

- sion="1.5.1"

+ sion="1.6.0"

 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",

  org.eclipse.emf.ecp.view.custom.model;visibility:=reexport;bundle-version="[1.5.0,2.0.0)",

  org.eclipse.emf.edit;visibility:=reexport;bundle-version="[2.7.0,3.0.0)",

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 6bdf4ac..cbc176a 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.5.1-SNAPSHOT</version>

+    <version>1.6.0-SNAPSHOT</version>

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

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.view.custom.model/.gitignore b/bundles/org.eclipse.emf.ecp.view.custom.model/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.custom.model/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.view.custom.model/.project b/bundles/org.eclipse.emf.ecp.view.custom.model/.project
index 3938747..0bb251f 100644
--- a/bundles/org.eclipse.emf.ecp.view.custom.model/.project
+++ b/bundles/org.eclipse.emf.ecp.view.custom.model/.project
@@ -6,6 +6,11 @@
 	</projects>

 	<buildSpec>

 		<buildCommand>

+			<name>com.wuetherich.osgi.ds.annotations.dsAnnotationBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+		<buildCommand>

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

 			<arguments>

 			</arguments>

@@ -36,5 +41,6 @@
 		<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.custom.model/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.custom.model/.settings/.api_filters
index f99a690..5c71d20 100644
--- a/bundles/org.eclipse.emf.ecp.view.custom.model/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.custom.model/.settings/.api_filters
@@ -7,10 +7,10 @@
                 <message_argument value="1.2.1"/>
             </message_arguments>
         </filter>
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
@@ -38,6 +38,30 @@
             </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.custom.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.custom.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.custom.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
     <resource path="src/org/eclipse/emf/ecp/view/spi/custom/model/VCustomFactory.java" type="org.eclipse.emf.ecp.view.spi.custom.model.VCustomFactory">
         <filter comment="This is SPI" id="403804204">
             <message_arguments>
@@ -59,6 +83,76 @@
         </filter>
     </resource>
     <resource path="src/org/eclipse/emf/ecp/view/spi/custom/model/VCustomPackage.java" type="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage">
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage"/>
+                <message_argument value="CUSTOM_CONTROL_FEATURE_COUNT"/>
+                <message_argument value="10"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage"/>
+                <message_argument value="CUSTOM_CONTROL__ATTACHMENTS"/>
+                <message_argument value="5"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage"/>
+                <message_argument value="CUSTOM_CONTROL__BUNDLE_NAME"/>
+                <message_argument value="8"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage"/>
+                <message_argument value="CUSTOM_CONTROL__CLASS_NAME"/>
+                <message_argument value="9"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage"/>
+                <message_argument value="CUSTOM_CONTROL__DIAGNOSTIC"/>
+                <message_argument value="4"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage"/>
+                <message_argument value="CUSTOM_CONTROL__DOMAIN_MODEL_REFERENCE"/>
+                <message_argument value="7"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage"/>
+                <message_argument value="CUSTOM_CONTROL__ENABLED"/>
+                <message_argument value="2"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage"/>
+                <message_argument value="CUSTOM_CONTROL__LABEL_ALIGNMENT"/>
+                <message_argument value="6"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage"/>
+                <message_argument value="CUSTOM_CONTROL__READONLY"/>
+                <message_argument value="3"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage"/>
+                <message_argument value="CUSTOM_CONTROL__VISIBLE"/>
+                <message_argument value="1"/>
+            </message_arguments>
+        </filter>
         <filter comment="This is SPI" id="405864542">
             <message_arguments>
                 <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage"/>
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 9c6641b..5b8c704 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
@@ -1,18 +1,24 @@
-Manifest-Version: 1.0

-Bundle-ManifestVersion: 2

-Bundle-Name: %pluginName

-Bundle-SymbolicName: org.eclipse.emf.ecp.view.custom.model;singleton:=true

-Bundle-Version: 1.5.1.qualifier

-Bundle-ClassPath: .

-Bundle-Vendor: %providerName

-Bundle-Localization: plugin

-Bundle-RequiredExecutionEnvironment: JavaSE-1.6

-Export-Package: org.eclipse.emf.ecp.view.spi.custom.model;version="1.5

- .1",org.eclipse.emf.ecp.view.spi.custom.model.impl;version="1.5.1",or

- g.eclipse.emf.ecp.view.spi.custom.model.util;version="1.5.1"

-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",

- org.eclipse.emf.ecore;visibility:=reexport;bundle-version="[2.7.0,3.0.0)",

- org.eclipse.emf.ecp.view.model;visibility:=reexport;bundle-version="[1.5.0,2.0.0)",

- org.eclipse.emf.ecp.edit;bundle-version="[1.5.0,2.0.0)"

-Bundle-ActivationPolicy: lazy

-Bundle-Activator: org.eclipse.emf.ecp.view.spi.custom.model.impl.Activator

+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.emf.ecp.view.custom.model;singleton:=true
+Bundle-Version: 1.6.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.6.0",
+ org.eclipse.emf.ecp.view.spi.custom.model.impl;version="1.6.0",
+ org.eclipse.emf.ecp.view.spi.custom.model.util;version="1.6.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.5.0,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.edit;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.6.0,2.0.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-ActivationPolicy: lazy
+Service-Component: OSGI-INF/org.eclipse.emf.ecp.view.spi.custom.model.impl.CustomDMRConverter.xml
+Import-Package: org.eclipse.core.databinding.property.list;version="0.0.0",
+ org.eclipse.core.databinding.property.value;version="0.0.0",
+ org.eclipse.emfforms.spi.core.services.databinding;version="1.6.0",
+ org.osgi.service.component.annotations;version="1.2.0"
diff --git a/bundles/org.eclipse.emf.ecp.view.custom.model/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.emf.ecp.view.custom.model/OSGI-INF/l10n/bundle.properties
new file mode 100644
index 0000000..004b399
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.custom.model/OSGI-INF/l10n/bundle.properties
@@ -0,0 +1 @@
+BundleNotFound_ExceptionMessage=%1$s cannot be loaded because bundle %2$s cannot be resolved!
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.view.custom.model/OSGI-INF/org.eclipse.emf.ecp.view.spi.custom.model.impl.CustomDMRConverter.xml b/bundles/org.eclipse.emf.ecp.view.custom.model/OSGI-INF/org.eclipse.emf.ecp.view.spi.custom.model.impl.CustomDMRConverter.xml
new file mode 100644
index 0000000..e6bac81
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.custom.model/OSGI-INF/org.eclipse.emf.ecp.view.spi.custom.model.impl.CustomDMRConverter.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--Generated by DS Annotation Builder [src/org/eclipse/emf/ecp/view/spi/custom/model/impl/CustomDMRConverter.java]-->
+<scr:component name="org.eclipse.emf.ecp.view.spi.custom.model.impl.CustomDMRConverter" activate="activate" deactivate="deactivate" xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0">
+    <service>
+        <provide interface="org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter"/>
+    </service>
+    <implementation class="org.eclipse.emf.ecp.view.spi.custom.model.impl.CustomDMRConverter"/>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.custom.model/build.properties b/bundles/org.eclipse.emf.ecp.view.custom.model/build.properties
index b7579f1..e54b32b 100644
--- a/bundles/org.eclipse.emf.ecp.view.custom.model/build.properties
+++ b/bundles/org.eclipse.emf.ecp.view.custom.model/build.properties
@@ -9,7 +9,8 @@
                about.ini,\

                about.mappings,\

                about.properties,\

-               modeling32.png

+               modeling32.png,\

+               OSGI-INF/

 jars.compile.order = .

 source.. = src/

 output.. = bin/

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 ac6f1b5..fb85315 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.5.1-SNAPSHOT</version>

+    <version>1.6.0-SNAPSHOT</version>

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

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.view.custom.model/src/org/eclipse/emf/ecp/view/spi/custom/model/impl/CustomDMRConverter.java b/bundles/org.eclipse.emf.ecp.view.custom.model/src/org/eclipse/emf/ecp/view/spi/custom/model/impl/CustomDMRConverter.java
new file mode 100644
index 0000000..85dc69d
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.custom.model/src/org/eclipse/emf/ecp/view/spi/custom/model/impl/CustomDMRConverter.java
@@ -0,0 +1,181 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.custom.model.impl;
+
+import java.util.Set;
+
+import org.eclipse.core.databinding.property.list.IListProperty;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.spi.custom.model.ECPHardcodedReferences;
+import org.eclipse.emf.ecp.view.spi.custom.model.VCustomDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+
+/**
+ * DomainModelReferenceConverter for CustomDomainModelReferences.
+ * 
+ * @author Eugen Neufeld
+ * @since 1.6
+ *
+ */
+@Component
+public class CustomDMRConverter implements DomainModelReferenceConverter {
+	private EMFFormsDatabinding emfFormsDatabinding;
+	private ServiceReference<EMFFormsDatabinding> databindingServiceReference;
+
+	/**
+	 * This method is called by the OSGI framework when this {@link DomainModelReferenceConverter} is activated. It
+	 * retrieves the {@link EMFFormsDatabinding EMF Forms databinding service}.
+	 *
+	 * @param bundleContext The {@link BundleContext} of this classes bundle.
+	 */
+	@Activate
+	protected final void activate(BundleContext bundleContext) {
+		databindingServiceReference = bundleContext.getServiceReference(EMFFormsDatabinding.class);
+		emfFormsDatabinding = bundleContext.getService(databindingServiceReference);
+
+	}
+
+	/**
+	 * This method is called by the OSGI framework when this {@link DomainModelReferenceConverter} is deactivated.
+	 * It frees the {@link EMFFormsDatabinding EMF Forms databinding service}.
+	 *
+	 * @param bundleContext The {@link BundleContext} of this classes bundle.
+	 */
+	@Deactivate
+	protected final void deactivate(BundleContext bundleContext) {
+		bundleContext.ungetService(databindingServiceReference);
+		emfFormsDatabinding = null;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter#isApplicable(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference)
+	 */
+	@Override
+	public double isApplicable(VDomainModelReference domainModelReference) {
+		if (VCustomDomainModelReference.class.isInstance(domainModelReference)) {
+			return 5;
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter#convertToValueProperty(VDomainModelReference,EObject)
+	 */
+	@Override
+	public IValueProperty convertToValueProperty(VDomainModelReference domainModelReference, EObject object)
+		throws DatabindingFailedException {
+		if (domainModelReference == null) {
+			throw new IllegalArgumentException("The given VDomainModelReference must not be null."); //$NON-NLS-1$
+		}
+		if (!VCustomDomainModelReference.class.isInstance(domainModelReference)) {
+			throw new IllegalArgumentException(
+				"DomainModelReference must be an instance of VTableDomainModelReference."); //$NON-NLS-1$
+		}
+
+		final VCustomDomainModelReference tableDomainModelReference = VCustomDomainModelReference.class
+			.cast(domainModelReference);
+		final ECPHardcodedReferences customControl = loadObject(tableDomainModelReference.getBundleName(),
+			tableDomainModelReference.getClassName());
+		if (customControl == null) {
+			throw new DatabindingFailedException(
+				String
+					.format(
+						"The provided ECPHardcodedReferences from Bundle %1$s Class %2$s cannot be resolved.", tableDomainModelReference.getBundleName(), tableDomainModelReference.getClassName())); //$NON-NLS-1$
+		}
+		final Set<VDomainModelReference> neededDomainModelReferences = customControl.getNeededDomainModelReferences();
+		if (neededDomainModelReferences.isEmpty())
+		{
+			throw new DatabindingFailedException(
+				String
+					.format(
+						"The provided ECPHardcodedReferences from Bundle %1$s Class %2$s doesn't define any DomainModelReferences.", tableDomainModelReference.getBundleName(), tableDomainModelReference.getClassName())); //$NON-NLS-1$
+		}
+		return emfFormsDatabinding.getValueProperty(neededDomainModelReferences.iterator().next(), object);
+	}
+
+	private static ECPHardcodedReferences loadObject(String bundleName, String clazz) throws DatabindingFailedException {
+		final Bundle bundle = Platform.getBundle(bundleName);
+		if (bundle == null) {
+			new ClassNotFoundException(String.format(LocalizationServiceHelper.getString(
+				VCustomDomainModelReferenceImpl.class, "BundleNotFound_ExceptionMessage"), clazz, bundleName)); //$NON-NLS-1$
+			return null;
+		}
+		try {
+			final Class<?> loadClass = bundle.loadClass(clazz);
+			if (!ECPHardcodedReferences.class.isAssignableFrom(loadClass)) {
+				return null;
+			}
+			return ECPHardcodedReferences.class.cast(loadClass.newInstance());
+		} catch (final ClassNotFoundException ex) {
+			throw new DatabindingFailedException(ex.getMessage());
+		} catch (final InstantiationException ex) {
+			throw new DatabindingFailedException(ex.getMessage());
+		} catch (final IllegalAccessException ex) {
+			throw new DatabindingFailedException(ex.getMessage());
+		}
+
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter#convertToListProperty(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference,EObject)
+	 */
+	@Override
+	public IListProperty convertToListProperty(VDomainModelReference domainModelReference, EObject object)
+		throws DatabindingFailedException {
+		if (domainModelReference == null) {
+			throw new IllegalArgumentException("The given VDomainModelReference must not be null."); //$NON-NLS-1$
+		}
+		if (!VCustomDomainModelReference.class.isInstance(domainModelReference)) {
+			throw new IllegalArgumentException(
+				"DomainModelReference must be an instance of VTableDomainModelReference."); //$NON-NLS-1$
+		}
+
+		final VCustomDomainModelReference tableDomainModelReference = VCustomDomainModelReference.class
+			.cast(domainModelReference);
+		final ECPHardcodedReferences customControl = loadObject(tableDomainModelReference.getBundleName(),
+			tableDomainModelReference.getClassName());
+		if (customControl == null) {
+			throw new DatabindingFailedException(
+				String
+					.format(
+						"The provided ECPHardcodedReferences from Bundle %1$s Class %2$s cannot be resolved.", tableDomainModelReference.getBundleName(), tableDomainModelReference.getClassName())); //$NON-NLS-1$
+		}
+		final Set<VDomainModelReference> neededDomainModelReferences = customControl.getNeededDomainModelReferences();
+		if (neededDomainModelReferences.isEmpty())
+		{
+			throw new DatabindingFailedException(
+				String
+					.format(
+						"The provided ECPHardcodedReferences from Bundle %1$s Class %2$s doesn't define any DomainModelReferences.", tableDomainModelReference.getBundleName(), tableDomainModelReference.getClassName())); //$NON-NLS-1$
+		}
+		return emfFormsDatabinding.getListProperty(neededDomainModelReferences.iterator().next(), object);
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.custom.model/src/org/eclipse/emf/ecp/view/spi/custom/model/impl/VCustomDomainModelReferenceImpl.java b/bundles/org.eclipse.emf.ecp.view.custom.model/src/org/eclipse/emf/ecp/view/spi/custom/model/impl/VCustomDomainModelReferenceImpl.java
index f3008dc..27ce5bc 100644
--- a/bundles/org.eclipse.emf.ecp.view.custom.model/src/org/eclipse/emf/ecp/view/spi/custom/model/impl/VCustomDomainModelReferenceImpl.java
+++ b/bundles/org.eclipse.emf.ecp.view.custom.model/src/org/eclipse/emf/ecp/view/spi/custom/model/impl/VCustomDomainModelReferenceImpl.java
@@ -15,6 +15,7 @@
 import java.util.Iterator;
 import java.util.LinkedHashSet;
 import java.util.Set;
+import java.util.Stack;
 
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.emf.common.notify.Notification;
@@ -30,7 +31,6 @@
 import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
 import org.eclipse.emf.ecore.util.EObjectContainmentEList;
 import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.emf.ecp.internal.edit.EditMessages;
 import org.eclipse.emf.ecp.view.spi.custom.model.ECPHardcodedReferences;
 import org.eclipse.emf.ecp.view.spi.custom.model.VCustomDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage;
@@ -38,6 +38,7 @@
 import org.eclipse.emf.ecp.view.spi.model.ModelChangeNotification;
 import org.eclipse.emf.ecp.view.spi.model.SettingPath;
 import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
 import org.osgi.framework.Bundle;
 
 /**
@@ -490,9 +491,8 @@
 	private static ECPHardcodedReferences loadObject(String bundleName, String clazz) {
 		final Bundle bundle = Platform.getBundle(bundleName);
 		if (bundle == null) {
-			new ClassNotFoundException(clazz + EditMessages.CONTROLFACTROY_CANNOT_BE_LOADED
-				+ bundleName
-				+ EditMessages.CONTROLFACTORY_CANNOT_BE_RESOLVED);
+			new ClassNotFoundException(String.format(LocalizationServiceHelper.getString(
+				VCustomDomainModelReferenceImpl.class, "BundleNotFound_ExceptionMessage"), clazz, bundleName)); //$NON-NLS-1$
 			return null;
 		}
 		try {
@@ -547,28 +547,37 @@
 	 * Private helper class to iterate over sub iterators.
 	 *
 	 * @author Eugen Neufeld
+	 * @author jfaltermeier
 	 *
 	 * @param <T> the type to iterate over
 	 */
 	private abstract class ExistingIteratorIterator<T> implements Iterator<T> {
-		private Iterator<T> currentSubIterator;
-		private final Iterator<VDomainModelReference> referencesIterator = getDomainModelReferences().iterator();
+
+		private final Stack<Iterator<T>> subIterators = new Stack<Iterator<T>>();
+
+		public ExistingIteratorIterator() {
+			for (int i = getDomainModelReferences().size() - 1; i >= 0; i--) {
+				final VDomainModelReference vDomainModelReference = getDomainModelReferences().get(i);
+				final Iterator<T> subIterator = getSubIterator(vDomainModelReference);
+				if (subIterator.hasNext()) {
+					subIterators.push(subIterator);
+				}
+			}
+
+		}
 
 		@Override
 		public boolean hasNext() {
-			return referencesIterator.hasNext() || currentSubIterator != null && currentSubIterator.hasNext();
+			return !subIterators.isEmpty() && subIterators.peek().hasNext();
 		}
 
 		@Override
 		public T next() {
-			if (currentSubIterator == null) {
-				currentSubIterator = getSubIterator(referencesIterator.next());
+			final T next = subIterators.peek().next();
+			if (!subIterators.peek().hasNext()) {
+				subIterators.pop();
 			}
-			final T result = currentSubIterator.next();
-			if (!currentSubIterator.hasNext()) {
-				currentSubIterator = null;
-			}
-			return result;
+			return next;
 		}
 
 		@Override
diff --git a/bundles/org.eclipse.emf.ecp.view.custom.ui.swt.di/.gitignore b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt.di/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt.di/.gitignore
@@ -0,0 +1 @@
+/bin/
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 3d7eba8..02f6995 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,7 +2,7 @@
 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.5.0,2.0.0)",
@@ -14,6 +14,7 @@
  org.eclipse.emf.ecp.ui.view.swt.di;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.osgi;bundle-version="[3.10.0,4.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)"
-Import-Package: org.eclipse.swt.widgets;version="0.0.0"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="1.6.0",
+ org.eclipse.swt.widgets;version="0.0.0"
 Export-Package: org.eclipse.emf.ecp.view.custom.ui.swt.di.renderer;ver
- sion="1.5.1";x-internal:=true
+ sion="1.6.0";x-internal:=true
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 8308870..1d040d7 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.5.1-SNAPSHOT</version>
+    <version>1.6.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/src/org/eclipse/emf/ecp/view/custom/ui/swt/di/renderer/DICustomControlSWT.java b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt.di/src/org/eclipse/emf/ecp/view/custom/ui/swt/di/renderer/DICustomControlSWT.java
index 967903d..1ee9b1f 100644
--- a/bundles/org.eclipse.emf.ecp.view.custom.ui.swt.di/src/org/eclipse/emf/ecp/view/custom/ui/swt/di/renderer/DICustomControlSWT.java
+++ b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt.di/src/org/eclipse/emf/ecp/view/custom/ui/swt/di/renderer/DICustomControlSWT.java
@@ -18,9 +18,9 @@
 import org.eclipse.emf.ecp.view.spi.custom.swt.ECPAbstractCustomControlSWT;
 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.layout.GridDescriptionFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
+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.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 
@@ -93,7 +93,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.custom.swt.ECPAbstractCustomControlSWT#renderControl(org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell,
+	 * @see org.eclipse.emf.ecp.view.spi.custom.swt.ECPAbstractCustomControlSWT#renderControl(org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell,
 	 *      org.eclipse.swt.widgets.Composite)
 	 */
 	@SuppressWarnings("restriction")
diff --git a/bundles/org.eclipse.emf.ecp.view.custom.ui.swt.di/src/org/eclipse/emf/ecp/view/custom/ui/swt/di/renderer/DICustomControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt.di/src/org/eclipse/emf/ecp/view/custom/ui/swt/di/renderer/DICustomControlSWTRenderer.java
index 5a4c645..75396af 100644
--- a/bundles/org.eclipse.emf.ecp.view.custom.ui.swt.di/src/org/eclipse/emf/ecp/view/custom/ui/swt/di/renderer/DICustomControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt.di/src/org/eclipse/emf/ecp/view/custom/ui/swt/di/renderer/DICustomControlSWTRenderer.java
@@ -13,12 +13,14 @@
 
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.custom.model.VCustomControl;
 import org.eclipse.emf.ecp.view.spi.custom.swt.CustomControlSWTRenderer;
 import org.eclipse.emf.ecp.view.spi.custom.swt.ECPAbstractCustomControlSWT;
 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.layout.SWTGridCell;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.osgi.framework.Bundle;
@@ -31,6 +33,15 @@
  */
 public class DICustomControlSWTRenderer extends CustomControlSWTRenderer {
 
+	/**
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param factory the {@link ReportService}
+	 */
+	public DICustomControlSWTRenderer(VCustomControl vElement, ViewModelContext viewContext, ReportService factory) {
+		super(vElement, viewContext, factory);
+	}
+
 	private IEclipseContext eclipseContext;
 
 	/**
@@ -78,7 +89,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.custom.swt.CustomControlSWTRenderer#renderControl(org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell,
+	 * @see org.eclipse.emf.ecp.view.spi.custom.swt.CustomControlSWTRenderer#renderControl(org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell,
 	 *      org.eclipse.swt.widgets.Composite)
 	 */
 	@SuppressWarnings("restriction")
@@ -86,7 +97,7 @@
 	protected Control renderControl(SWTGridCell cell, Composite parent) throws NoRendererFoundException,
 		NoPropertyDescriptorFoundExeption {
 		org.eclipse.emf.ecp.ui.view.swt.di.util.SWTContextUtil.setAbstractSWTRendererObjects(eclipseContext,
-			getVElement(), getViewModelContext(), getSWTRendererFactory(), parent);
+			getVElement(), getViewModelContext(), parent);
 		eclipseContext.set(SWTGridCell.class, cell);
 		return super.renderControl(cell, parent);
 	}
diff --git a/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/.gitignore b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/.settings/.api_filters
index 6d10dd1..9adb169 100644
--- a/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/.settings/.api_filters
@@ -7,10 +7,10 @@
                 <message_argument value="1.2.1"/>
             </message_arguments>
         </filter>
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.edit.swt"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
@@ -22,6 +22,26 @@
             </message_arguments>
         </filter>
     </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/custom/swt/CustomControlSWTRenderer.java" type="org.eclipse.emf.ecp.view.spi.custom.swt.CustomControlSWTRenderer">
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.swt.CustomControlSWTRenderer"/>
+                <message_argument value="CustomControlSWTRenderer()"/>
+            </message_arguments>
+        </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.swt.CustomControlSWTRenderer"/>
+                <message_argument value="getGridDescription(SWTGridDescription)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.swt.CustomControlSWTRenderer"/>
+                <message_argument value="renderControl(SWTGridCell, Composite)"/>
+            </message_arguments>
+        </filter>
+    </resource>
     <resource path="src/org/eclipse/emf/ecp/view/spi/custom/swt/ECPAbstractCustomControlSWT.java" type="org.eclipse.emf.ecp.view.spi.custom.swt.ECPAbstractCustomControlSWT">
         <filter comment="This is SPI" id="336695337">
             <message_arguments>
@@ -71,12 +91,24 @@
                 <message_argument value="createControls(Composite)"/>
             </message_arguments>
         </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.swt.ECPAbstractCustomControlSWT"/>
+                <message_argument value="createSimpleGrid(int, int)"/>
+            </message_arguments>
+        </filter>
         <filter comment="This is SPI" id="338792546">
             <message_arguments>
                 <message_argument value="org.eclipse.emf.ecp.view.spi.custom.swt.ECPAbstractCustomControlSWT"/>
                 <message_argument value="createValidationLabel(Composite)"/>
             </message_arguments>
         </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.swt.ECPAbstractCustomControlSWT"/>
+                <message_argument value="getGridDescription()"/>
+            </message_arguments>
+        </filter>
         <filter comment="This is SPI" id="338792546">
             <message_arguments>
                 <message_argument value="org.eclipse.emf.ecp.view.spi.custom.swt.ECPAbstractCustomControlSWT"/>
@@ -107,6 +139,12 @@
                 <message_argument value="handleValidation(Diagnostic)"/>
             </message_arguments>
         </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.swt.ECPAbstractCustomControlSWT"/>
+                <message_argument value="renderControl(SWTGridCell, Composite)"/>
+            </message_arguments>
+        </filter>
         <filter comment="This is SPI" id="338792546">
             <message_arguments>
                 <message_argument value="org.eclipse.emf.ecp.view.spi.custom.swt.ECPAbstractCustomControlSWT"/>
@@ -119,6 +157,12 @@
                 <message_argument value="resetValidation()"/>
             </message_arguments>
         </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.swt.ECPAbstractCustomControlSWT"/>
+                <message_argument value="setControlEnabled(SWTGridCell, Control, boolean)"/>
+            </message_arguments>
+        </filter>
         <filter comment="This is SPI" id="338792546">
             <message_arguments>
                 <message_argument value="org.eclipse.emf.ecp.view.spi.custom.swt.ECPAbstractCustomControlSWT"/>
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 fb46541..b405152 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Custom View SWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.custom.ui.swt;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.internal.custom.swt.Activator
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.emf.ecp.ui.view;bundle-version="[1.5.0,2.0.0)",
@@ -10,10 +10,17 @@
  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.5.0,2.0.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.5.0,2.0.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)"
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.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.6.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Import-Package: org.eclipse.jface.databinding.viewers;version="0.0.0",
+Import-Package: org.eclipse.emfforms.spi.common.report;version="1.6.0",
+ org.eclipse.emfforms.spi.swt.core;version="1.6.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",
@@ -24,6 +31,6 @@
  org.eclipse.swt.layout;version="0.0.0",
  org.eclipse.swt.widgets;version="0.0.0"
 Export-Package: org.eclipse.emf.ecp.view.internal.custom.swt;version="
- 1.5.1";x-friends:="org.eclipse.emf.ecp.view.custom.ui.swt.test",org.e
- clipse.emf.ecp.view.spi.custom.swt;version="1.5.1"
+ 1.6.0";x-friends:="org.eclipse.emf.ecp.view.custom.ui.swt.test",org.e
+ clipse.emf.ecp.view.spi.custom.swt;version="1.6.0"
 Bundle-Vendor: Eclipse Modeling Project
diff --git a/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/OSGI-INF/l10n/bundle.properties
new file mode 100644
index 0000000..004b399
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/OSGI-INF/l10n/bundle.properties
@@ -0,0 +1 @@
+BundleNotFound_ExceptionMessage=%1$s cannot be loaded because bundle %2$s cannot be resolved!
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/build.properties b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/build.properties
index e0e105b..4b106d9 100644
--- a/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/build.properties
+++ b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/build.properties
@@ -3,5 +3,6 @@
 bin.includes = META-INF/,\

                .,\

                plugin.xml,\

-               about.html

+               about.html,\

+               OSGI-INF/

 src.includes = about.html

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 c486160..8de7a85 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.5.1-SNAPSHOT</version>

+    <version>1.6.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/src/org/eclipse/emf/ecp/view/internal/custom/swt/Activator.java b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/src/org/eclipse/emf/ecp/view/internal/custom/swt/Activator.java
index 41b3999..c95de3d 100644
--- a/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/src/org/eclipse/emf/ecp/view/internal/custom/swt/Activator.java
+++ b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/src/org/eclipse/emf/ecp/view/internal/custom/swt/Activator.java
@@ -1,5 +1,5 @@
 /*******************************************************************************

- * Copyright (c) 2011-2013 EclipseSource Muenchen GmbH and others.

+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.

  *

  * All rights reserved. This program and the accompanying materials

  * are made available under the terms of the Eclipse Public License v1.0

@@ -15,6 +15,9 @@
 import org.eclipse.core.runtime.Plugin;

 import org.eclipse.core.runtime.Status;

 import org.eclipse.emf.ecp.edit.spi.ECPControlFactory;

+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;

 import org.eclipse.swt.graphics.Image;

 import org.osgi.framework.BundleContext;

 import org.osgi.framework.ServiceReference;

@@ -91,6 +94,8 @@
 

 	private ServiceReference<ECPControlFactory> controlFactoryReference;

 

+	private ServiceReference<ReportService> reportServiceReference;

+

 	/**

 	 * Returns the {@link ECPControlFactory}.

 	 *

@@ -114,4 +119,49 @@
 		plugin.getBundle().getBundleContext().ungetService(controlFactoryReference);

 		controlFactoryReference = null;

 	}

+

+	/**

+	 * Returns the {@link ReportService}.

+	 *

+	 * @return the {@link ReportService}

+	 */

+	public ReportService getReportService() {

+		if (reportServiceReference == null) {

+			reportServiceReference = plugin.getBundle().getBundleContext()

+				.getServiceReference(ReportService.class);

+		}

+		return plugin.getBundle().getBundleContext().getService(reportServiceReference);

+	}

+

+	/**

+	 * Returns the {@link EMFFormsDatabinding} service.

+	 *

+	 * @return The {@link EMFFormsDatabinding}

+	 */

+	public EMFFormsDatabinding getEMFFormsDatabinding() {

+		final ServiceReference<EMFFormsDatabinding> serviceReference = plugin.getBundle().getBundleContext()

+			.getServiceReference(EMFFormsDatabinding.class);

+

+		final EMFFormsDatabinding service = plugin.getBundle().getBundleContext()

+			.getService(serviceReference);

+		plugin.getBundle().getBundleContext().ungetService(serviceReference);

+

+		return service;

+	}

+

+	/**

+	 * Returns the {@link EMFFormsLabelProvider} service.

+	 *

+	 * @return The {@link EMFFormsLabelProvider}

+	 */

+	public EMFFormsLabelProvider getEMFFormsLabelProvider() {

+		final ServiceReference<EMFFormsLabelProvider> serviceReference = plugin.getBundle().getBundleContext()

+			.getServiceReference(EMFFormsLabelProvider.class);

+

+		final EMFFormsLabelProvider service = plugin.getBundle().getBundleContext()

+			.getService(serviceReference);

+		plugin.getBundle().getBundleContext().ungetService(serviceReference);

+

+		return service;

+	}

 }

diff --git a/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/src/org/eclipse/emf/ecp/view/spi/custom/swt/CustomControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/src/org/eclipse/emf/ecp/view/spi/custom/swt/CustomControlSWTRenderer.java
index 02b73a6..b1f0ac8 100644
--- a/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/src/org/eclipse/emf/ecp/view/spi/custom/swt/CustomControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/src/org/eclipse/emf/ecp/view/spi/custom/swt/CustomControlSWTRenderer.java
@@ -13,13 +13,15 @@
 
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.emf.ecp.edit.spi.swt.util.SWTValidationHelper;
-import org.eclipse.emf.ecp.internal.edit.EditMessages;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.custom.model.VCustomControl;
 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.AbstractSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
+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.graphics.Image;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Composite;
@@ -34,15 +36,27 @@
  * @author Eugen Neufeld
  * @since 1.3
  */
-@SuppressWarnings("restriction")
 public class CustomControlSWTRenderer extends AbstractSWTRenderer<VCustomControl> {
 
+	/**
+	 * Default Constructor.
+	 *
+	 * @param vElement the view element to be rendered
+	 * @param viewContext The view model context
+	 * @param reportService the ReportService to use
+	 * @since 1.6
+	 */
+	public CustomControlSWTRenderer(final VCustomControl vElement, final ViewModelContext viewContext,
+		ReportService reportService) {
+		super(vElement, viewContext, reportService);
+	}
+
 	private ECPAbstractCustomControlSWT swtCustomControl;
 
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#preInit()
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#preInit()
 	 */
 	@Override
 	protected void preInit() {
@@ -82,9 +96,10 @@
 	private static ECPAbstractCustomControlSWT loadObject(String bundleName, String clazz) {
 		final Bundle bundle = Platform.getBundle(bundleName);
 		if (bundle == null) {
-			new ClassNotFoundException(clazz + EditMessages.CONTROLFACTROY_CANNOT_BE_LOADED
-				+ bundleName
-				+ EditMessages.CONTROLFACTORY_CANNOT_BE_RESOLVED);
+			// why do we create a class not found exception without doing anything with it
+			new ClassNotFoundException(
+				String.format(LocalizationServiceHelper.getString(CustomControlSWTRenderer.class,
+					"BundleNotFound_ExceptionMessage"), clazz, bundleName)); //$NON-NLS-1$
 			return null;
 		}
 		try {
@@ -106,7 +121,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#dispose()
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#dispose()
 	 */
 	@Override
 	protected void dispose() {
@@ -117,7 +132,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#getGridDescription(SWTGridDescription)
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#getGridDescription(SWTGridDescription)
 	 */
 	@Override
 	public SWTGridDescription getGridDescription(SWTGridDescription gridDescription) {
@@ -132,7 +147,7 @@
 	 *
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#renderControl(org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell,
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#renderControl(org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell,
 	 *      org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
diff --git a/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/src/org/eclipse/emf/ecp/view/spi/custom/swt/ECPAbstractCustomControlSWT.java b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/src/org/eclipse/emf/ecp/view/spi/custom/swt/ECPAbstractCustomControlSWT.java
index d64ed66..af2de70 100644
--- a/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/src/org/eclipse/emf/ecp/view/spi/custom/swt/ECPAbstractCustomControlSWT.java
+++ b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/src/org/eclipse/emf/ecp/view/spi/custom/swt/ECPAbstractCustomControlSWT.java
@@ -12,17 +12,20 @@
 package org.eclipse.emf.ecp.view.spi.custom.swt;
 
 import java.util.Collections;
-import java.util.Iterator;
 import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import org.eclipse.core.databinding.Binding;
 import org.eclipse.core.databinding.DataBindingContext;
 import org.eclipse.core.databinding.UpdateValueStrategy;
+import org.eclipse.core.databinding.observable.IObserving;
 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.core.runtime.Platform;
 import org.eclipse.emf.common.notify.Adapter;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
@@ -32,14 +35,17 @@
 import org.eclipse.emf.databinding.edit.EMFEditObservables;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.emf.ecp.edit.spi.ECPAbstractControl;
 import org.eclipse.emf.ecp.edit.spi.ECPControlFactory;
 import org.eclipse.emf.ecp.view.internal.custom.swt.Activator;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.custom.model.ECPCustomControlChangeListener;
+import org.eclipse.emf.ecp.view.spi.custom.model.ECPHardcodedReferences;
 import org.eclipse.emf.ecp.view.spi.custom.model.VCustomControl;
 import org.eclipse.emf.ecp.view.spi.custom.model.VCustomDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.custom.model.impl.VCustomDomainModelReferenceImpl;
 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;
@@ -47,15 +53,21 @@
 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.layout.GridDescriptionFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
+import org.eclipse.emf.ecp.view.spi.swt.reporting.RenderingFailedReport;
 import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
 import org.eclipse.emf.edit.domain.EditingDomain;
 import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
 import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
 import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+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.label.NoLabelFoundException;
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
+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.jface.databinding.swt.SWTObservables;
 import org.eclipse.jface.databinding.viewers.ViewerSupport;
 import org.eclipse.jface.viewers.StructuredViewer;
 import org.eclipse.swt.SWT;
@@ -63,6 +75,7 @@
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Label;
+import org.osgi.framework.Bundle;
 
 /**
  * Extend this class in order to provide an own implementation of an {@link ECPAbstractCustomControlSWT}.
@@ -72,8 +85,7 @@
  *
  */
 @SuppressWarnings("deprecation")
-public abstract class ECPAbstractCustomControlSWT
-{
+public abstract class ECPAbstractCustomControlSWT {
 	/**
 	 * Variant constant for indicating RAP controls.
 	 *
@@ -106,6 +118,7 @@
 	private AdapterFactoryItemDelegator adapterFactoryItemDelegator;
 	private VCustomControl customControl;
 	private DataBindingContext dataBindingContext;
+	private final EMFDataBindingContext viewModelDBC = new EMFDataBindingContext();
 
 	/**
 	 * Called by the framework to trigger an initialization.
@@ -133,6 +146,45 @@
 	 * @since 1.3
 	 */
 	protected void postInit() {
+		if (!VCustomDomainModelReference.class.isInstance(customControl.getDomainModelReference())) {
+			return;
+		}
+		final VCustomDomainModelReference customDomainModelReference = VCustomDomainModelReference.class
+			.cast(customControl.getDomainModelReference());
+
+		final ECPHardcodedReferences hardcodedReferences = loadObject(customDomainModelReference.getBundleName(),
+			customDomainModelReference.getClassName());
+		if (!customDomainModelReference.isControlChecked()) {
+			// read stuff from control
+			final Set<VDomainModelReference> controlReferences = new LinkedHashSet<VDomainModelReference>();
+			controlReferences.addAll(hardcodedReferences.getNeededDomainModelReferences());
+			controlReferences.addAll(customDomainModelReference.getDomainModelReferences());
+			customDomainModelReference.getDomainModelReferences().clear();
+			customDomainModelReference.getDomainModelReferences().addAll(controlReferences);
+			customDomainModelReference.setControlChecked(true);
+		}
+	}
+
+	private static ECPHardcodedReferences loadObject(String bundleName, String clazz) {
+		final Bundle bundle = Platform.getBundle(bundleName);
+		if (bundle == null) {
+			new ClassNotFoundException(String.format(LocalizationServiceHelper.getString(
+				VCustomDomainModelReferenceImpl.class, "BundleNotFound_ExceptionMessage"), clazz, bundleName)); //$NON-NLS-1$
+			return null;
+		}
+		try {
+			final Class<?> loadClass = bundle.loadClass(clazz);
+			if (!ECPHardcodedReferences.class.isAssignableFrom(loadClass)) {
+				return null;
+			}
+			return ECPHardcodedReferences.class.cast(loadClass.newInstance());
+		} catch (final ClassNotFoundException ex) {
+			return null;
+		} catch (final InstantiationException ex) {
+			return null;
+		} catch (final IllegalAccessException ex) {
+			return null;
+		}
 
 	}
 
@@ -140,13 +192,13 @@
 	 * Is called by the framework to trigger a dispose of the control.
 	 */
 	public final void dispose() {
-		viewModelContext = null;
 		if (composedAdapterFactory != null) {
 			composedAdapterFactory.dispose();
 		}
 		if (dataBindingContext != null) {
 			dataBindingContext.dispose();
 		}
+		viewModelDBC.dispose();
 		customControl = null;
 		if (adapterMap != null) {
 			for (final VDomainModelReference domainModelReference : adapterMap.keySet()) {
@@ -162,6 +214,7 @@
 			}
 			controlMap.clear();
 		}
+		viewModelContext = null;
 
 		Activator.getDefault().ungetECPControlFactory();
 		controlFactory = null;
@@ -254,7 +307,7 @@
 		case ADD_IMAGE:
 			return Activator.getImage("icons/add.png"); //$NON-NLS-1$
 		case DELETE_IMAGE:
-			return Activator.getImage("icons/delete.png"); //$NON-NLS-1$
+			return Activator.getImage("icons/unset_reference.png"); //$NON-NLS-1$
 		default:
 			return null;
 		}
@@ -273,27 +326,60 @@
 		throws NoPropertyDescriptorFoundExeption {
 		Label label = null;
 		labelRender: if (getCustomControl().getLabelAlignment() == LabelAlignment.LEFT) {
-			final Setting setting = getCustomControl().getDomainModelReference().getIterator().next();
-			if (setting == null) {
+			IValueProperty valueProperty;
+			try {
+				valueProperty = Activator
+					.getDefault()
+					.getEMFFormsDatabinding()
+					.getValueProperty(getCustomControl().getDomainModelReference(),
+						getViewModelContext().getDomainModel());
+			} catch (final DatabindingFailedException ex) {
+				Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
 				break labelRender;
 			}
-			final IItemPropertyDescriptor itemPropertyDescriptor = getItemPropertyDescriptor(setting);
-
-			if (itemPropertyDescriptor == null) {
-				throw new NoPropertyDescriptorFoundExeption(setting.getEObject(), setting.getEStructuralFeature());
-			}
+			final EStructuralFeature structuralFeature = (EStructuralFeature) valueProperty.getValueType();
 
 			label = new Label(parent, SWT.NONE);
 			label.setData(CUSTOM_VARIANT, "org_eclipse_emf_ecp_control_label"); //$NON-NLS-1$
 			label.setBackground(parent.getBackground());
-			String extra = ""; //$NON-NLS-1$
-			if (setting.getEStructuralFeature().getLowerBound() > 0) {
-				extra = "*"; //$NON-NLS-1$
-			}
-			final String labelText = itemPropertyDescriptor.getDisplayName(setting.getEObject());
-			if (labelText != null && labelText.trim().length() != 0) {
-				label.setText(labelText + extra);
-				label.setToolTipText(itemPropertyDescriptor.getDescription(setting.getEObject()));
+
+			try {
+				viewModelDBC.bindValue(
+					SWTObservables.observeText(label),
+					Activator
+						.getDefault()
+						.getEMFFormsLabelProvider()
+						.getDisplayName(getCustomControl().getDomainModelReference(),
+							getViewModelContext().getDomainModel()),
+					null, new UpdateValueStrategy() {
+
+						/**
+						 * {@inheritDoc}
+						 *
+						 * @see org.eclipse.core.databinding.UpdateValueStrategy#convert(java.lang.Object)
+						 */
+						@Override
+						public Object convert(Object value) {
+							final String labelText = (String) super.convert(value);
+							String extra = ""; //$NON-NLS-1$
+							if (structuralFeature.getLowerBound() > 0) {
+								extra = "*"; //$NON-NLS-1$
+							}
+							return labelText + extra;
+						}
+
+					});
+				viewModelDBC.bindValue(
+					SWTObservables.observeTooltipText(label),
+					Activator
+						.getDefault()
+						.getEMFFormsLabelProvider()
+						.getDescription(getCustomControl().getDomainModelReference(),
+							getViewModelContext().getDomainModel()));
+			} catch (final NoLabelFoundException e) {
+				Activator.getDefault().getReportService().report(new RenderingFailedReport(e));
+				label.setText(e.getMessage());
+				label.setToolTipText(e.toString());
 			}
 
 		}
@@ -323,9 +409,13 @@
 	 */
 	protected final void createViewerBinding(VDomainModelReference customControlFeature, StructuredViewer viewer,
 		IValueProperty[] labelProperties) {
-
-		final IObservableList list = getObservableList(customControlFeature);
-		ViewerSupport.bind(viewer, list, labelProperties);
+		try {
+			final IObservableList list = Activator.getDefault().getEMFFormsDatabinding()
+				.getObservableList(customControlFeature, getViewModelContext().getDomainModel());
+			ViewerSupport.bind(viewer, list, labelProperties);
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+		}
 	}
 
 	/**
@@ -334,12 +424,14 @@
 	 * @param domainModelReference the {@link VDomainModelReference} to use
 	 * @return the {@link IObservableList}
 	 * @since 1.3
+	 * @deprecated This method is deprecated and must not be used anymore. Use the
+	 *             {@link org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding
+	 *             databinding service} instead.
 	 */
+	@Deprecated
 	protected final IObservableList getObservableList(VDomainModelReference domainModelReference) {
-		final Setting setting = domainModelReference.getIterator().next();
-		return EMFEditObservables.observeList(
-			getEditingDomain(setting),
-			setting.getEObject(), setting.getEStructuralFeature());
+		throw new UnsupportedOperationException(
+			"This method is deprecated and must not be used anymore. Use the databinding service instead."); //$NON-NLS-1$
 	}
 
 	/**
@@ -358,24 +450,20 @@
 	 * @return the setting or throws an {@link IllegalStateException} if too many or too few elements are found.
 	 */
 	private Setting getFirstSetting(VDomainModelReference modelFeature) {
-		final Iterator<Setting> iterator = modelFeature.getIterator();
-		int numElments = 0;
-		Setting setting = null;
-		while (iterator.hasNext()) {
-			setting = iterator.next();
-			numElments++;
+		IObservableValue observableValue;
+		try {
+			observableValue = Activator.getDefault().getEMFFormsDatabinding()
+				.getObservableValue(modelFeature, getViewModelContext().getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+			throw new IllegalStateException("The databinding failed due to an incorrect VDomainModelReference: " //$NON-NLS-1$
+				+ ex.getMessage());
 		}
-		if (numElments == 0) {
-			throw new IllegalStateException("The VDomainModelReference was not initialised."); //$NON-NLS-1$
-		}
-		else if (numElments > 1) {
-			throw new IllegalStateException(
-				"The VDomainModelReference is ambigous, please use VDomainModelReference which resolve to exactly one setting."); //$NON-NLS-1$
-		}
-		// if (!isEditable()) {
-		// throw new IllegalArgumentException("Feature is not registered as editable");
-		// }
-		return setting;
+		final InternalEObject internalEObject = (InternalEObject) ((IObserving) observableValue).getObserved();
+		final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+		observableValue.dispose();
+
+		return internalEObject.eSetting(structuralFeature);
 	}
 
 	/**
@@ -390,20 +478,26 @@
 	 */
 	protected final <T extends ECPAbstractControl> T getControl(Class<T> clazz,
 		VDomainModelReference domainModelReference) {
-		final T createControl = controlFactory.createControl(clazz, domainModelReference);
+		final T createControl = controlFactory.createControl(clazz, getViewModelContext().getDomainModel(),
+			domainModelReference);
 		final VControl vControl = VViewFactory.eINSTANCE.createControl();
 		final VDomainModelReference modelReference = EcoreUtil.copy(domainModelReference);
 		modelReference.init(getViewModelContext().getDomainModel());
 		vControl.setDomainModelReference(modelReference);
 		vControl.setDiagnostic(VViewFactory.eINSTANCE.createDiagnostic());
 		createControl.init(getViewModelContext(), vControl);
-		final Iterator<Setting> iterator = domainModelReference.getIterator();
-		final boolean hasNext = iterator.hasNext();
-		if (hasNext) {
-			controlMap.put(iterator.next().getEStructuralFeature(), createControl);
-			return createControl;
+
+		IValueProperty valueProperty;
+		try {
+			valueProperty = Activator.getDefault().getEMFFormsDatabinding()
+				.getValueProperty(domainModelReference, getViewModelContext().getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+			return null;
 		}
-		return null;
+		final EStructuralFeature structuralFeature = (EStructuralFeature) valueProperty.getValueType();
+		controlMap.put(structuralFeature, createControl);
+		return createControl;
 	}
 
 	/**
@@ -501,7 +595,7 @@
 	 * @since 1.3
 	 */
 	protected final EditingDomain getEditingDomain() {
-		return getEditingDomain(getCustomControl().getDomainModelReference().getIterator().next());
+		return getEditingDomain(getFirstSetting(getCustomControl().getDomainModelReference()));
 	}
 
 	/**
@@ -619,7 +713,7 @@
 	 * Returns the GridDescription for this Renderer.
 	 *
 	 * @return the GridDescription
-	 * @since 1.3
+	 * @since 1.6
 	 */
 	public abstract SWTGridDescription getGridDescription();
 
@@ -631,7 +725,7 @@
 	 * @return the rendered {@link Control}
 	 * @throws NoRendererFoundException this is thrown when a renderer cannot be found
 	 * @throws NoPropertyDescriptorFoundExeption this is thrown when no property descriptor can be found
-	 * @since 1.3
+	 * @since 1.6
 	 */
 	public abstract Control renderControl(SWTGridCell cell, Composite parent) throws NoRendererFoundException,
 		NoPropertyDescriptorFoundExeption;
@@ -672,7 +766,7 @@
 	 * @param gridCell the {@link SWTGridCell} to enable/disable
 	 * @param control the {@link Control} to enable/disable
 	 * @param enabled true if the control should be enabled false otherwise
-	 * @since 1.3
+	 * @since 1.6
 	 */
 	protected void setControlEnabled(SWTGridCell gridCell, Control control, boolean enabled) {
 		// ignore labels as they are readonly per definition
@@ -714,7 +808,7 @@
 	 * @param rows the number of rows
 	 * @param columns the number of columns
 	 * @return the {@link GridDescription}
-	 * @since 1.3
+	 * @since 1.6
 	 */
 	protected final SWTGridDescription createSimpleGrid(int rows, int columns) {
 		return GridDescriptionFactory.INSTANCE.createSimpleGrid(rows, columns, null);
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 fc95ab5..82d6171 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,10 +2,10 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Edapt
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.edapt;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.emf.ecp.view.migrator;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.edapt.history;bundle-version="[1.0.0,2.0.0)"
-Export-Package: org.eclipse.emf.ecp.view.edapt;version="1.5.1"
+Export-Package: org.eclipse.emf.ecp.view.edapt;version="1.6.0"
 Bundle-Activator: org.eclipse.emf.ecp.view.edapt.Activator
diff --git a/bundles/org.eclipse.emf.ecp.view.edapt/pom.xml b/bundles/org.eclipse.emf.ecp.view.edapt/pom.xml
index 15f3a21..f7666dd 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.edapt/src/org/eclipse/emf/ecp/view/edapt/CustomMigrationClassLoader.java b/bundles/org.eclipse.emf.ecp.view.edapt/src/org/eclipse/emf/ecp/view/edapt/CustomMigrationClassLoader.java
index 00c6b46..722ae4a 100644
--- a/bundles/org.eclipse.emf.ecp.view.edapt/src/org/eclipse/emf/ecp/view/edapt/CustomMigrationClassLoader.java
+++ b/bundles/org.eclipse.emf.ecp.view.edapt/src/org/eclipse/emf/ecp/view/edapt/CustomMigrationClassLoader.java
@@ -19,7 +19,6 @@
  * @author jfaltermeier
  *
  */
-@SuppressWarnings("restriction")
 public class CustomMigrationClassLoader implements IClassLoader {
 
 	@SuppressWarnings("unchecked")
diff --git a/bundles/org.eclipse.emf.ecp.view.edapt/src/org/eclipse/emf/ecp/view/edapt/EdaptViewModelMigrator.java b/bundles/org.eclipse.emf.ecp.view.edapt/src/org/eclipse/emf/ecp/view/edapt/EdaptViewModelMigrator.java
index 0317e13..6569c10 100644
--- a/bundles/org.eclipse.emf.ecp.view.edapt/src/org/eclipse/emf/ecp/view/edapt/EdaptViewModelMigrator.java
+++ b/bundles/org.eclipse.emf.ecp.view.edapt/src/org/eclipse/emf/ecp/view/edapt/EdaptViewModelMigrator.java
@@ -367,7 +367,7 @@
 	 */
 	private List<String> getNamespaceURIs(URI resourceURI) {
 		@SuppressWarnings("restriction")
-		final File file = org.eclipse.emf.edapt.common.URIUtils.getJavaFile(resourceURI);
+		final File file = org.eclipse.emf.edapt.internal.common.URIUtils.getJavaFile(resourceURI);
 		// read all namespaces from root element with SAX
 		final NameSpaceHandler handler = new NameSpaceHandler();
 		executeContentHandler(file, handler);
@@ -380,7 +380,7 @@
 	 */
 	private String getRootPackageURI(URI resourceURI) {
 		@SuppressWarnings("restriction")
-		final File file = org.eclipse.emf.edapt.common.URIUtils.getJavaFile(resourceURI);
+		final File file = org.eclipse.emf.edapt.internal.common.URIUtils.getJavaFile(resourceURI);
 		// read root package namespace uri with SAX
 		final RootPackageHandler handler = new RootPackageHandler();
 		executeContentHandler(file, handler);
@@ -441,9 +441,9 @@
 			+ migrationPath, true);
 		try {
 			MigratorRegistry.getInstance().registerMigrator(migratorURI,
-				new org.eclipse.emf.edapt.internal.migration.execution.BundleClassLoader(bundle));
+				new org.eclipse.emf.edapt.internal.migration.execution.internal.BundleClassLoader(bundle));
 		} catch (final MigrationException e) {
-			org.eclipse.emf.edapt.common.LoggingUtils.logError(MigrationPlugin.getPlugin(), e);
+			org.eclipse.emf.edapt.internal.common.LoggingUtils.logError(MigrationPlugin.getPlugin(), e);
 		}
 	}
 
diff --git a/bundles/org.eclipse.emf.ecp.view.group.model.edit/.gitignore b/bundles/org.eclipse.emf.ecp.view.group.model.edit/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.group.model.edit/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.view.group.model.edit/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.group.model.edit/.settings/.api_filters
index 209e672..02fadb3 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.model.edit/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.group.model.edit/.settings/.api_filters
@@ -1,10 +1,34 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.emf.ecp.view.group.model.edit" version="2">
     <resource path="META-INF/MANIFEST.MF">
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model.edit"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.group.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.group.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.group.model.edit_1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
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 d2a202d..81f535f 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,14 +2,14 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: %pluginName

 Bundle-SymbolicName: org.eclipse.emf.ecp.view.group.model.edit;singleton:=true

-Bundle-Version: 1.5.1.qualifier

+Bundle-Version: 1.6.0.qualifier

 Bundle-ClassPath: .

 Bundle-Activator: org.eclipse.emf.ecp.view.spi.group.model.provider.GroupEditPlugin$Implementation

 Bundle-Vendor: %providerName

 Bundle-Localization: plugin

 Bundle-RequiredExecutionEnvironment: JavaSE-1.6

 Export-Package: org.eclipse.emf.ecp.view.spi.group.model.provider;vers

- ion="1.5.1"

+ ion="1.6.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.5.0,2.0.0)";visibility:=reexport,

  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,

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 8340216..41298b7 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.5.1-SNAPSHOT</version>

+    <version>1.6.0-SNAPSHOT</version>

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

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.view.group.model.edit/src/org/eclipse/emf/ecp/view/spi/group/model/provider/GroupItemProvider.java b/bundles/org.eclipse.emf.ecp.view.group.model.edit/src/org/eclipse/emf/ecp/view/spi/group/model/provider/GroupItemProvider.java
index 8a416ed..6c7b62a 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.model.edit/src/org/eclipse/emf/ecp/view/spi/group/model/provider/GroupItemProvider.java
+++ b/bundles/org.eclipse.emf.ecp.view.group.model.edit/src/org/eclipse/emf/ecp/view/spi/group/model/provider/GroupItemProvider.java
@@ -19,6 +19,8 @@
 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.group.model.VGroupPackage;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emf.ecp.view.spi.model.VElementUtil;
 import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
 import org.eclipse.emf.ecp.view.spi.model.provider.ContainedContainerItemProvider;
 import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
@@ -165,12 +167,15 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 *
-	 * @generated
+	 * @generated NOT
 	 */
 	@Override
 	public String getText(Object object)
 	{
-		final String label = ((VGroup) object).getName();
+		String label = ((VGroup) object).getLabel();
+		if (label == null) {
+			label = VElementUtil.getCleanName(VElement.class.cast(object));
+		}
 		return label == null || label.length() == 0 ?
 			getString("_UI_Group_type") : //$NON-NLS-1$
 			getString("_UI_Group_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
diff --git a/bundles/org.eclipse.emf.ecp.view.group.model/.gitignore b/bundles/org.eclipse.emf.ecp.view.group.model/.gitignore
index ae3c172..ff3e254 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.model/.gitignore
+++ b/bundles/org.eclipse.emf.ecp.view.group.model/.gitignore
@@ -1 +1,2 @@
 /bin/
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.view.group.model/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.group.model/.settings/.api_filters
index 147d821..7756a03 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.model/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.group.model/.settings/.api_filters
@@ -13,10 +13,34 @@
                 <message_argument value="1.3.0"/>
             </message_arguments>
         </filter>
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.group.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.group.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.group.model_1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
@@ -82,7 +106,17 @@
             </message_arguments>
         </filter>
     </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/group/model/VGroupPackage.java">
+        <filter comment="Changes due to new label field in 1.6" id="0"/>
+    </resource>
     <resource path="src/org/eclipse/emf/ecp/view/spi/group/model/VGroupPackage.java" type="org.eclipse.emf.ecp.view.spi.group.model.VGroupPackage">
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.group.model.VGroupPackage"/>
+                <message_argument value="GROUP_FEATURE_COUNT"/>
+                <message_argument value="10"/>
+            </message_arguments>
+        </filter>
         <filter comment="This is SPI" id="388194388">
             <message_arguments>
                 <message_argument value="org.eclipse.emf.ecp.view.spi.group.model.VGroupPackage"/>
@@ -104,6 +138,69 @@
                 <message_argument value="1"/>
             </message_arguments>
         </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.group.model.VGroupPackage"/>
+                <message_argument value="GROUP__ATTACHMENTS"/>
+                <message_argument value="5"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.group.model.VGroupPackage"/>
+                <message_argument value="GROUP__CHILDREN"/>
+                <message_argument value="6"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.group.model.VGroupPackage"/>
+                <message_argument value="GROUP__COLLAPSED"/>
+                <message_argument value="9"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.group.model.VGroupPackage"/>
+                <message_argument value="GROUP__DIAGNOSTIC"/>
+                <message_argument value="4"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.group.model.VGroupPackage"/>
+                <message_argument value="GROUP__ENABLED"/>
+                <message_argument value="2"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.group.model.VGroupPackage"/>
+                <message_argument value="GROUP__GROUP_TYPE"/>
+                <message_argument value="7"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.group.model.VGroupPackage"/>
+                <message_argument value="GROUP__LABEL_ALIGNMENT"/>
+                <message_argument value="8"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.group.model.VGroupPackage"/>
+                <message_argument value="GROUP__READONLY"/>
+                <message_argument value="3"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.group.model.VGroupPackage"/>
+                <message_argument value="GROUP__VISIBLE"/>
+                <message_argument value="1"/>
+            </message_arguments>
+        </filter>
         <filter id="405864542">
             <message_arguments>
                 <message_argument value="org.eclipse.emf.ecp.view.spi.group.model.VGroupPackage"/>
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 a17fb6e..dbc356d 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,14 +2,14 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: %pluginName

 Bundle-SymbolicName: org.eclipse.emf.ecp.view.group.model;singleton:=true

-Bundle-Version: 1.5.1.qualifier

+Bundle-Version: 1.6.0.qualifier

 Bundle-ClassPath: .

 Bundle-Vendor: %providerName

 Bundle-Localization: plugin

 Bundle-RequiredExecutionEnvironment: JavaSE-1.6

-Export-Package: org.eclipse.emf.ecp.view.spi.group.model;version="1.5.

- 1",org.eclipse.emf.ecp.view.spi.group.model.impl;version="1.5.1",org.

- eclipse.emf.ecp.view.spi.group.model.util;version="1.5.1"

+Export-Package: org.eclipse.emf.ecp.view.spi.group.model;version="1.6.

+ 0",org.eclipse.emf.ecp.view.spi.group.model.impl;version="1.6.0",org.

+ eclipse.emf.ecp.view.spi.group.model.util;version="1.6.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.5.0,2.0.0)";visibility:=reexport

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 ce8aa24..1e1b829 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.5.1-SNAPSHOT</version>

+    <version>1.6.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/.gitignore b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/.project b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/.project
index fdcd0cc..c0dbf10 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/.project
+++ b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/.project
@@ -25,6 +25,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.group.swt.collapsable/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/META-INF/MANIFEST.MF
index 146a5a3..68e0cd1 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
@@ -1,8 +1,8 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: Collapsable Group
-Bundle-SymbolicName: org.eclipse.emf.ecp.view.group.swt.collapsable;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-SymbolicName: org.eclipse.emf.ecp.view.group.swt.collapsable
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.eclipse.emf.ecp.view.model.common;bundle-version="[1.5.0,2.0.0)",
@@ -10,11 +10,19 @@
  org.eclipse.emf.ecp.view.context;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.group.model;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)"
-Import-Package: org.eclipse.swt;version="0.0.0",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.6.0,2.0.0)"
+Import-Package: javax.inject;version="0.0.0",
+ org.eclipse.emfforms.spi.common.report;version="1.6.0",
+ org.eclipse.emfforms.spi.core.services.databinding;version="1.6.0",
+ org.eclipse.swt;version="0.0.0",
  org.eclipse.swt.events;version="0.0.0",
  org.eclipse.swt.graphics;version="0.0.0",
  org.eclipse.swt.layout;version="0.0.0",
- org.eclipse.swt.widgets;version="0.0.0"
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.framework;version="1.6.0"
 Export-Package: org.eclipse.emf.ecp.view.group.swt.internal.collapsabl
- e;version="1.5.1";x-internal:=true
+ e;version="1.6.0";x-internal:=true
+Bundle-ActivationPolicy: lazy
+Service-Component: OSGI-INF/collapsableGroupRendererService.xml
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/OSGI-INF/collapsableGroupRendererService.xml b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/OSGI-INF/collapsableGroupRendererService.xml
new file mode 100644
index 0000000..bd44fa9
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/OSGI-INF/collapsableGroupRendererService.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emf.ecp.view.group.swt.collapsable.rendererService">
+   <implementation class="org.eclipse.emf.ecp.view.group.swt.internal.collapsable.CollapsableGroupSWTRendererService"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService"/>
+   </service>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/build.properties b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/build.properties
index e5a949c..0565497 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/build.properties
+++ b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/build.properties
@@ -2,6 +2,6 @@
 output.. = bin/
 bin.includes = META-INF/,\
                .,\
-               plugin.xml,\
-               about.html
+               about.html,\
+               OSGI-INF/
 src.includes = about.html
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/plugin.xml b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/plugin.xml
deleted file mode 100644
index f9f72e4..0000000
--- a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/plugin.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         point="org.eclipse.emf.ecp.ui.view.swt.renderers">
-      <renderer
-            renderer="org.eclipse.emf.ecp.view.group.swt.internal.collapsable.CollapsableGroupSWTRenderer">
-         <dynamicTest
-               testClass="org.eclipse.emf.ecp.view.group.swt.internal.collapsable.CollapsableGroupTester">
-         </dynamicTest>
-      </renderer>
-   </extension>
-
-</plugin>
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 9f5a406..11050e9 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.5.1-SNAPSHOT</version>
+    <version>1.6.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/src/org/eclipse/emf/ecp/view/group/swt/internal/collapsable/CollapsableGroupSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/src/org/eclipse/emf/ecp/view/group/swt/internal/collapsable/CollapsableGroupSWTRenderer.java
index e6ae989..6a07dec 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/src/org/eclipse/emf/ecp/view/group/swt/internal/collapsable/CollapsableGroupSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/src/org/eclipse/emf/ecp/view/group/swt/internal/collapsable/CollapsableGroupSWTRenderer.java
@@ -11,11 +11,17 @@
  */
 package org.eclipse.emf.ecp.view.group.swt.internal.collapsable;
 
+import javax.inject.Inject;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer;
 import org.eclipse.emf.ecp.view.spi.group.model.VGroup;
 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.layout.SWTGridCell;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ExpandEvent;
 import org.eclipse.swt.events.ExpandListener;
@@ -35,18 +41,33 @@
  */
 public class CollapsableGroupSWTRenderer extends ContainerSWTRenderer<VGroup> {
 
+	/**
+	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 * @param factory the {@link EMFFormsRendererFactory}
+	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
+	 */
+	@Inject
+	public CollapsableGroupSWTRenderer(VGroup vElement, ViewModelContext viewContext, ReportService reportService,
+		EMFFormsRendererFactory factory, EMFFormsDatabinding emfFormsDatabinding) {
+		super(vElement, viewContext, reportService, factory, emfFormsDatabinding);
+	}
+
 	private static final int MARGIN = 5;
 
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer#renderControl(org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell,
+	 * @see org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer#renderControl(org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell,
 	 *      org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
 	protected Control renderControl(SWTGridCell gridCell, final Composite parent) throws NoRendererFoundException,
 		NoPropertyDescriptorFoundExeption {
-		final ExpandBar bar = new ExpandBar(parent, SWT.V_SCROLL);
+		final ExpandBar bar = new ExpandBar(parent, SWT.NONE);
 		bar.setBackground(parent.getBackground());
 
 		// First item
@@ -74,6 +95,7 @@
 				updateLayoutData(layoutData, item0.getHeaderHeight() + 2 * MARGIN);
 				parent.layout(true, true);
 				getVElement().setCollapsed(true);
+				postCollapsed();
 			}
 
 			@Override
@@ -84,6 +106,7 @@
 					+ 2 * MARGIN);
 				parent.layout(true, true);
 				getVElement().setCollapsed(false);
+				postExpanded();
 			}
 
 			// XXX relayout upon expand/collapse will only work properly when the grid data is adjusted
@@ -100,6 +123,20 @@
 		return bar;
 	}
 
+	/**
+	 * This method gets called after the group has been expanded. Default implementation does nothing.
+	 */
+	protected void postExpanded() {
+		// no op
+	}
+
+	/**
+	 * This method gets called after the group has been collapsed. Default implementation does nothing.
+	 */
+	protected void postCollapsed() {
+		// no op
+	}
+
 	private int computeHeight(Composite composite) {
 		// XXX +1 because last pixel gets cut off on windows 7 64
 		return composite.computeSize(SWT.DEFAULT, SWT.DEFAULT).y + 1;
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/src/org/eclipse/emf/ecp/view/group/swt/internal/collapsable/CollapsableGroupSWTRendererService.java b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/src/org/eclipse/emf/ecp/view/group/swt/internal/collapsable/CollapsableGroupSWTRendererService.java
new file mode 100644
index 0000000..4020a97
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/src/org/eclipse/emf/ecp/view/group/swt/internal/collapsable/CollapsableGroupSWTRendererService.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.group.swt.internal.collapsable;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.group.model.GroupType;
+import org.eclipse.emf.ecp.view.spi.group.model.VGroup;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+
+/**
+ * CollapsableGroupSWTRendererService which provides the CollapsableGroupSWTRenderer.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class CollapsableGroupSWTRendererService implements EMFFormsDIRendererService<VGroup> {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (!VGroup.class.isInstance(vElement)) {
+			return NOT_APPLICABLE;
+		}
+		if (VGroup.class.cast(vElement).getGroupType() == GroupType.COLLAPSIBLE) {
+			return 5;
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 * 
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#getRendererClass()
+	 */
+	@Override
+	public Class<? extends AbstractSWTRenderer<VGroup>> getRendererClass() {
+		return CollapsableGroupSWTRenderer.class;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/src/org/eclipse/emf/ecp/view/group/swt/internal/collapsable/CollapsableGroupTester.java b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/src/org/eclipse/emf/ecp/view/group/swt/internal/collapsable/CollapsableGroupTester.java
deleted file mode 100644
index 71dc534..0000000
--- a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/src/org/eclipse/emf/ecp/view/group/swt/internal/collapsable/CollapsableGroupTester.java
+++ /dev/null
@@ -1,38 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eugen - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.group.swt.internal.collapsable;
-
-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.group.model.GroupType;
-import org.eclipse.emf.ecp.view.spi.group.model.VGroup;
-import org.eclipse.emf.ecp.view.spi.model.VElement;
-
-/**
- * Tester for an embedded group renderer.
- *
- * @author Eugen
- *
- */
-public class CollapsableGroupTester implements ECPRendererTester {
-
-	@Override
-	public int isApplicable(VElement vElement, ViewModelContext viewModelContext) {
-		if (!VGroup.class.isInstance(vElement)) {
-			return NOT_APPLICABLE;
-		}
-		if (VGroup.class.cast(vElement).getGroupType() == GroupType.COLLAPSIBLE) {
-			return 5;
-		}
-		return NOT_APPLICABLE;
-	}
-}
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/.gitignore b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/.project b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/.project
index 5ff4d5b..a024dc6 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/.project
+++ b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/.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.group.swt.collapsible.pgroup/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/META-INF/MANIFEST.MF
index e3f0f46..4e1fc2f 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,15 +2,22 @@
 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.group.model;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)"
-Import-Package: org.eclipse.nebula.widgets.pgroup;version="0.0.0",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.6.0,2.0.0)"
+Import-Package: javax.inject;version="0.0.0",
+ org.eclipse.emfforms.spi.common.report;version="1.6.0",
+ org.eclipse.nebula.widgets.pgroup;version="0.0.0",
  org.eclipse.swt;version="0.0.0",
  org.eclipse.swt.events;version="0.0.0",
- org.eclipse.swt.widgets;version="0.0.0"
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.framework;version="1.6.0"
 Export-Package: org.eclipse.emf.ecp.view.group.swt.internal.collapsibl
- e.pgroup;version="1.5.1";x-internal:=true
+ e.pgroup;version="1.6.0";x-internal:=true
+Service-Component: OSGI-INF/pGroupRendererService.xml
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/OSGI-INF/pGroupRendererService.xml b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/OSGI-INF/pGroupRendererService.xml
new file mode 100644
index 0000000..8e34753
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/OSGI-INF/pGroupRendererService.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup.rendererService">
+   <implementation class="org.eclipse.emf.ecp.view.group.swt.internal.collapsible.pgroup.PGroupRendererService"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService"/>
+   </service>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/about.ini b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/about.ini
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.template.controls.swt/about.ini
rename to bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/about.ini
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/about.mappings b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/about.mappings
new file mode 100644
index 0000000..f2954d5
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=${BUILD_ID}
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/about.properties b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/about.properties
new file mode 100644
index 0000000..83be450
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/about.properties
@@ -0,0 +1,31 @@
+# Copyright (c) 2011, 2015 Eclipsesource Munich GmbH and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+#    Johannes Faltermeier - initial API and implementation
+   
+# NLS_MESSAGEFORMAT_VAR
+
+# ==============================================================================
+# Do not change the properties between this line and the last line containing:
+# %%% END OF TRANSLATED PROPERTIES %%%
+# Instead, either redefine an existing property, or create a new property,
+# append it to the end of the file, and change the code to use the new name.
+# ==============================================================================
+
+featureName = ECP EMF Client Platform
+featureText = ECP EMF Client Platform\n\
+Version: {featureVersion}\n\
+Build id: {0}\n\
+\n\
+Copyright (c) 2011, 2015 Eclipsesource Munich GmbH and others. All rights reserved.\n\
+\n\
+Visit http://www.eclipse.org/ecp
+
+# ==============================================================================
+# %%% END OF TRANSLATED PROPERTIES %%%
+# The above properties have been shipped for translation.
+# ==============================================================================
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/build.properties b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/build.properties
index 101ae79..bdb0500 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/build.properties
+++ b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/build.properties
@@ -1,7 +1,11 @@
-source.. = src/
 output.. = bin/
 bin.includes = META-INF/,\
                .,\
                about.html,\
-               plugin.xml
+               OSGI-INF/,\
+               about.ini,\
+               about.mappings,\
+               about.properties,\
+               modeling32.png
 src.includes = about.html
+source.. = src/
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/modeling32.png b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/modeling32.png
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.template.controls.swt/modeling32.png
rename to bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/modeling32.png
Binary files differ
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/plugin.xml b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/plugin.xml
deleted file mode 100644
index 941fedc..0000000
--- a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/plugin.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         point="org.eclipse.emf.ecp.ui.view.swt.renderers">
-      <renderer
-            renderer="org.eclipse.emf.ecp.view.group.swt.internal.collapsible.pgroup.PGroupRenderer">
-         <dynamicTest
-               testClass="org.eclipse.emf.ecp.view.group.swt.internal.collapsible.pgroup.PGroupRendererTester">
-         </dynamicTest>
-      </renderer>
-   </extension>
-
-</plugin>
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 17c7717..8ab251d 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.5.1-SNAPSHOT</version>
+    <version>1.6.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/src/org/eclipse/emf/ecp/view/group/swt/internal/collapsible/pgroup/PGroupRenderer.java b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/src/org/eclipse/emf/ecp/view/group/swt/internal/collapsible/pgroup/PGroupRenderer.java
index 9875662..2793307 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/src/org/eclipse/emf/ecp/view/group/swt/internal/collapsible/pgroup/PGroupRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/src/org/eclipse/emf/ecp/view/group/swt/internal/collapsible/pgroup/PGroupRenderer.java
@@ -15,9 +15,15 @@
 
 import java.util.Collection;
 
+import javax.inject.Inject;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer;
 import org.eclipse.emf.ecp.view.spi.group.model.VGroup;
 import org.eclipse.emf.ecp.view.spi.model.VContainedElement;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
 import org.eclipse.nebula.widgets.pgroup.PGroup;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ExpandEvent;
@@ -32,6 +38,21 @@
  */
 public class PGroupRenderer extends ContainerSWTRenderer<VGroup> {
 
+	/**
+	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 * @param factory the {@link EMFFormsRendererFactory}
+	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
+	 */
+	@Inject
+	public PGroupRenderer(VGroup vElement, ViewModelContext viewContext, ReportService reportService,
+		EMFFormsRendererFactory factory, EMFFormsDatabinding emfFormsDatabinding) {
+		super(vElement, viewContext, reportService, factory, emfFormsDatabinding);
+	}
+
 	@Override
 	protected Collection<VContainedElement> getChildren() {
 		return getVElement().getChildren();
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/src/org/eclipse/emf/ecp/view/group/swt/internal/collapsible/pgroup/PGroupRendererService.java b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/src/org/eclipse/emf/ecp/view/group/swt/internal/collapsible/pgroup/PGroupRendererService.java
new file mode 100644
index 0000000..6e966f6
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/src/org/eclipse/emf/ecp/view/group/swt/internal/collapsible/pgroup/PGroupRendererService.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.group.swt.internal.collapsible.pgroup;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.group.model.GroupType;
+import org.eclipse.emf.ecp.view.spi.group.model.VGroup;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+
+/**
+ * GroupSWTRendererService which provides the GroupSWTRenderer.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class PGroupRendererService implements EMFFormsDIRendererService<VGroup> {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (!VGroup.class.isInstance(vElement)) {
+			return NOT_APPLICABLE;
+		}
+		if (VGroup.class.cast(vElement).getGroupType() == GroupType.COLLAPSIBLE) {
+			return 5;
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 * 
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#getRendererClass()
+	 */
+	@Override
+	public Class<? extends AbstractSWTRenderer<VGroup>> getRendererClass() {
+		return PGroupRenderer.class;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/src/org/eclipse/emf/ecp/view/group/swt/internal/collapsible/pgroup/PGroupRendererTester.java b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/src/org/eclipse/emf/ecp/view/group/swt/internal/collapsible/pgroup/PGroupRendererTester.java
deleted file mode 100644
index 6bbcbff..0000000
--- a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/src/org/eclipse/emf/ecp/view/group/swt/internal/collapsible/pgroup/PGroupRendererTester.java
+++ /dev/null
@@ -1,39 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Johannes Faltermeier - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.group.swt.internal.collapsible.pgroup;
-
-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.group.model.GroupType;
-import org.eclipse.emf.ecp.view.spi.group.model.VGroup;
-import org.eclipse.emf.ecp.view.spi.model.VElement;
-
-/**
- * {@link ECPRendererTester} for the {@link PGroupRenderer}.
- *
- * @author jfaltermeier
- *
- */
-public class PGroupRendererTester implements ECPRendererTester {
-
-	@Override
-	public int isApplicable(VElement vElement, ViewModelContext viewModelContext) {
-		if (!VGroup.class.isInstance(vElement)) {
-			return NOT_APPLICABLE;
-		}
-		if (VGroup.class.cast(vElement).getGroupType() == GroupType.COLLAPSIBLE) {
-			return 5;
-		}
-		return NOT_APPLICABLE;
-	}
-
-}
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/.gitignore b/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/.project b/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/.project
index 32e568e..ed01c61 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/.project
+++ b/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/.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.group.swt.embedded/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/META-INF/MANIFEST.MF
index 9b0a572..7e02f96 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,14 +2,21 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: AlignmentGroup SWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.group.swt.embedded;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.group.model;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.5.0,2.0.0)"
-Import-Package: org.eclipse.swt;version="0.0.0",
- org.eclipse.swt.widgets;version="0.0.0"
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.6.0,2.0.0)"
+Import-Package: javax.inject;version="0.0.0",
+ org.eclipse.core.runtime;version="3.4.0",
+ org.eclipse.emfforms.spi.common.report;version="1.6.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.framework;version="1.6.0"
 Export-Package: org.eclipse.emf.ecp.view.alignmentgroup.internal.swt;v
- ersion="1.5.1";x-internal:=true
+ ersion="1.6.0";x-internal:=true
 Bundle-Vendor: Eclipse Modeling Project
+Service-Component: OSGI-INF/embeddedGroupRendererService.xml
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/OSGI-INF/embeddedGroupRendererService.xml b/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/OSGI-INF/embeddedGroupRendererService.xml
new file mode 100644
index 0000000..aec527e
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/OSGI-INF/embeddedGroupRendererService.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emf.ecp.view.group.swt.embedded.rendererService">
+   <implementation class="org.eclipse.emf.ecp.view.alignmentgroup.internal.swt.EmbeddedGroupSWTRendererService"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService"/>
+   </service>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/build.properties b/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/build.properties
index e5a949c..5689bc7 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/build.properties
+++ b/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/build.properties
@@ -1,7 +1,7 @@
-source.. = src/
 output.. = bin/
 bin.includes = META-INF/,\
                .,\
-               plugin.xml,\
-               about.html
+               about.html,\
+               OSGI-INF/
 src.includes = about.html
+source.. = src/
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/plugin.xml b/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/plugin.xml
deleted file mode 100644
index b62d917..0000000
--- a/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/plugin.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         point="org.eclipse.emf.ecp.ui.view.swt.renderers">
-      <renderer
-            renderer="org.eclipse.emf.ecp.view.alignmentgroup.internal.swt.EmbeddedGroupSWTRenderer">
-         <dynamicTest
-               testClass="org.eclipse.emf.ecp.view.alignmentgroup.internal.swt.EmbeddedGroupTester">
-         </dynamicTest>
-      </renderer>
-   </extension>
-
-</plugin>
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 c1dc5c7..0e04390 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.5.1-SNAPSHOT</version>

+    <version>1.6.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/src/org/eclipse/emf/ecp/view/alignmentgroup/internal/swt/EmbeddedGroupSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/src/org/eclipse/emf/ecp/view/alignmentgroup/internal/swt/EmbeddedGroupSWTRenderer.java
index 012d965..8239770 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/src/org/eclipse/emf/ecp/view/alignmentgroup/internal/swt/EmbeddedGroupSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/src/org/eclipse/emf/ecp/view/alignmentgroup/internal/swt/EmbeddedGroupSWTRenderer.java
@@ -17,16 +17,25 @@
 import java.util.List;
 import java.util.Map;
 
+import javax.inject.Inject;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.group.model.VGroup;
 import org.eclipse.emf.ecp.view.spi.model.VContainedElement;
 import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emf.ecp.view.spi.model.reporting.StatusReport;
 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.AbstractAdditionalSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.swt.layout.GridDescriptionFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.swt.core.AbstractAdditionalSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.GridDescriptionFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
@@ -40,6 +49,23 @@
  */
 public class EmbeddedGroupSWTRenderer extends AbstractSWTRenderer<VGroup> {
 
+	private final EMFFormsRendererFactory rendererFactory;
+
+	/**
+	 * Default Constructor.
+	 *
+	 * @param vElement the view element to be rendered
+	 * @param viewContext The view model context
+	 * @param reportService the ReportService to use
+	 * @param rendererFactory the EMFFormsRendererFactory to use
+	 */
+	@Inject
+	public EmbeddedGroupSWTRenderer(final VGroup vElement, final ViewModelContext viewContext,
+		ReportService reportService, EMFFormsRendererFactory rendererFactory) {
+		super(vElement, viewContext, reportService);
+		this.rendererFactory = rendererFactory;
+	}
+
 	private SWTGridDescription currentGridDescription;
 
 	@Override
@@ -53,10 +79,19 @@
 		final Map<Integer, List<SWTGridCell>> gridCellsPerRow = new LinkedHashMap<Integer, List<SWTGridCell>>();
 		for (final VContainedElement containedElement : getVElement().getChildren()) {
 			gridCellsPerRow.put(row, new ArrayList<SWTGridCell>());
-			final AbstractSWTRenderer<VElement> renderer = getSWTRendererFactory().getRenderer(containedElement,
-				getViewModelContext());
-			final Collection<AbstractAdditionalSWTRenderer<VElement>> additionalRenderers = getSWTRendererFactory()
-				.getAdditionalRenderer(containedElement, getViewModelContext());
+			AbstractSWTRenderer<VElement> renderer;
+			try {
+				renderer = rendererFactory.getRendererInstance(containedElement,
+					getViewModelContext());
+			} catch (final EMFFormsNoRendererException ex) {
+				getReportService().report(
+					new StatusReport(
+						new Status(IStatus.INFO, "org.eclipse.emf.ecp.view.group.swt.embedded", String.format( //$NON-NLS-1$
+							"No Renderer for %s found.", containedElement.eClass().getName()), ex))); //$NON-NLS-1$
+				continue;
+			}
+			final Collection<AbstractAdditionalSWTRenderer<VElement>> additionalRenderers = rendererFactory
+				.getAdditionalRendererInstances(containedElement, getViewModelContext());
 			SWTGridDescription rendererGridDescription = renderer.getGridDescription(GridDescriptionFactory.INSTANCE
 				.createEmptyGridDescription());
 			for (final AbstractAdditionalSWTRenderer<VElement> additionalRenderer : additionalRenderers) {
@@ -96,7 +131,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#renderControl(org.eclipse.emf.ecp.view.spi.swt.layout.GridCell,
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#renderControl(org.eclipse.emfforms.spi.swt.core.layout.GridCell,
 	 *      org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/src/org/eclipse/emf/ecp/view/alignmentgroup/internal/swt/EmbeddedGroupSWTRendererService.java b/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/src/org/eclipse/emf/ecp/view/alignmentgroup/internal/swt/EmbeddedGroupSWTRendererService.java
new file mode 100644
index 0000000..6edfd6a
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/src/org/eclipse/emf/ecp/view/alignmentgroup/internal/swt/EmbeddedGroupSWTRendererService.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.alignmentgroup.internal.swt;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.group.model.GroupType;
+import org.eclipse.emf.ecp.view.spi.group.model.VGroup;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+
+/**
+ * EmbeddedGroupSWTRendererService which provides the EmbeddedGroupSWTRenderer.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class EmbeddedGroupSWTRendererService implements EMFFormsDIRendererService<VGroup> {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (!VGroup.class.isInstance(vElement)) {
+			return NOT_APPLICABLE;
+		}
+		if (VGroup.class.cast(vElement).getGroupType() == GroupType.EMBEDDED) {
+			return 5;
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 * 
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#getRendererClass()
+	 */
+	@Override
+	public Class<? extends AbstractSWTRenderer<VGroup>> getRendererClass() {
+		return EmbeddedGroupSWTRenderer.class;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/src/org/eclipse/emf/ecp/view/alignmentgroup/internal/swt/EmbeddedGroupTester.java b/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/src/org/eclipse/emf/ecp/view/alignmentgroup/internal/swt/EmbeddedGroupTester.java
deleted file mode 100644
index 13369ab..0000000
--- a/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/src/org/eclipse/emf/ecp/view/alignmentgroup/internal/swt/EmbeddedGroupTester.java
+++ /dev/null
@@ -1,38 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eugen - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.alignmentgroup.internal.swt;
-
-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.group.model.GroupType;
-import org.eclipse.emf.ecp.view.spi.group.model.VGroup;
-import org.eclipse.emf.ecp.view.spi.model.VElement;
-
-/**
- * Tester for an embedded group renderer.
- *
- * @author Eugen
- *
- */
-public class EmbeddedGroupTester implements ECPRendererTester {
-
-	@Override
-	public int isApplicable(VElement vElement, ViewModelContext viewModelContext) {
-		if (!VGroup.class.isInstance(vElement)) {
-			return NOT_APPLICABLE;
-		}
-		if (VGroup.class.cast(vElement).getGroupType() == GroupType.EMBEDDED) {
-			return 5;
-		}
-		return NOT_APPLICABLE;
-	}
-}
diff --git a/bundles/org.eclipse.emf.ecp.view.group.ui.swt/.gitignore b/bundles/org.eclipse.emf.ecp.view.group.ui.swt/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.group.ui.swt/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.view.group.ui.swt/.project b/bundles/org.eclipse.emf.ecp.view.group.ui.swt/.project
index f5afc12..30935ab 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.ui.swt/.project
+++ b/bundles/org.eclipse.emf.ecp.view.group.ui.swt/.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.group.ui.swt/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.group.ui.swt/.settings/.api_filters
index fd9eae0..e19e9e4 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.ui.swt/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.group.ui.swt/.settings/.api_filters
@@ -7,10 +7,10 @@
                 <message_argument value="1.2.1"/>
             </message_arguments>
         </filter>
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.core.swt"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
@@ -22,4 +22,18 @@
             </message_arguments>
         </filter>
     </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/group/swt/GroupSWTRenderer.java" type="org.eclipse.emf.ecp.view.spi.group.swt.GroupSWTRenderer">
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.group.swt.GroupSWTRenderer"/>
+                <message_argument value="GroupSWTRenderer()"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.group.swt.GroupSWTRenderer"/>
+                <message_argument value="GroupSWTRenderer(SWTRendererFactory)"/>
+            </message_arguments>
+        </filter>
+    </resource>
 </component>
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 458e1b0..10c2700 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,18 +2,28 @@
 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.5.1.qualifier

+Bundle-Version: 1.6.0.qualifier

 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",

  org.eclipse.emf.ecp.view.group.model;bundle-version="[1.5.0,2.0.0)",

  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)",

  org.eclipse.emf.ecp.ui.view;bundle-version="[1.5.0,2.0.0)",

  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",

  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.5.0,2.0.0)",

- org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.5.0,2.0.0)";visibility:=reexport

+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.5.0,2.0.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.6.0,2.0.0)",

+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.6.0,2.0.0)"

 Bundle-ActivationPolicy: lazy

 Bundle-RequiredExecutionEnvironment: JavaSE-1.6

-Import-Package: org.eclipse.jface.layout;version="0.0.0",

+Import-Package: org.eclipse.emfforms.spi.common.report;version="1.6.0",

+ org.eclipse.emfforms.spi.core.services.databinding;version="1.6.0",

+ org.eclipse.jface.databinding.swt;version="0.0.0",

+ org.eclipse.jface.layout;version="0.0.0",

  org.eclipse.swt;version="0.0.0",

  org.eclipse.swt.widgets;version="0.0.0"

-Export-Package: org.eclipse.emf.ecp.view.spi.group.swt;version="1.5.1"

+Export-Package: org.eclipse.emf.ecp.view.spi.group.swt;version="1.6.0"

+ ,org.eclipse.emfforms.internal.group.swt;version="1.6.0";x-internal:=

+ true

 Bundle-Vendor: Eclipse Modeling Project

+Service-Component: OSGI-INF/groupRendererService.xml

diff --git a/bundles/org.eclipse.emf.ecp.view.group.ui.swt/OSGI-INF/groupRendererService.xml b/bundles/org.eclipse.emf.ecp.view.group.ui.swt/OSGI-INF/groupRendererService.xml
new file mode 100644
index 0000000..cfeb7f0
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.group.ui.swt/OSGI-INF/groupRendererService.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emf.ecp.view.group.ui.swt.rendererService">
+   <implementation class="org.eclipse.emfforms.internal.group.swt.GroupSWTRendererService"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService"/>
+   </service>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.group.ui.swt/build.properties b/bundles/org.eclipse.emf.ecp.view.group.ui.swt/build.properties
index e0e105b..5689bc7 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.ui.swt/build.properties
+++ b/bundles/org.eclipse.emf.ecp.view.group.ui.swt/build.properties
@@ -1,7 +1,7 @@
-source.. = src/

-output.. = bin/

-bin.includes = META-INF/,\

-               .,\

-               plugin.xml,\

-               about.html

-src.includes = about.html

+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               about.html,\
+               OSGI-INF/
+src.includes = about.html
+source.. = src/
diff --git a/bundles/org.eclipse.emf.ecp.view.group.ui.swt/plugin.xml b/bundles/org.eclipse.emf.ecp.view.group.ui.swt/plugin.xml
deleted file mode 100644
index aa98323..0000000
--- a/bundles/org.eclipse.emf.ecp.view.group.ui.swt/plugin.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<?eclipse version="3.4"?>

-<plugin>

-   <extension

-         point="org.eclipse.emf.ecp.ui.view.swt.renderers">

-      <renderer

-            renderer="org.eclipse.emf.ecp.view.spi.group.swt.GroupSWTRenderer">

-         <staticTest

-               element="org.eclipse.emf.ecp.view.spi.group.model.VGroup"

-               priority="1">

-         </staticTest>

-      </renderer>

-   </extension>

-

-</plugin>

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 75b7420..f0a8e61 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.5.1-SNAPSHOT</version>

+    <version>1.6.0-SNAPSHOT</version>

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

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.view.group.ui.swt/src/org/eclipse/emf/ecp/view/spi/group/swt/GroupSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.group.ui.swt/src/org/eclipse/emf/ecp/view/spi/group/swt/GroupSWTRenderer.java
index f2e93bb..451b0d8 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.ui.swt/src/org/eclipse/emf/ecp/view/spi/group/swt/GroupSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.group.ui.swt/src/org/eclipse/emf/ecp/view/spi/group/swt/GroupSWTRenderer.java
@@ -13,10 +13,21 @@
 
 import java.util.Collection;
 
+import javax.inject.Inject;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.databinding.EMFDataBindingContext;
+import org.eclipse.emf.databinding.edit.EMFEditObservables;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer;
 import org.eclipse.emf.ecp.view.spi.group.model.VGroup;
 import org.eclipse.emf.ecp.view.spi.model.VContainedElement;
-import org.eclipse.emf.ecp.view.spi.swt.SWTRendererFactory;
+import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emfforms.internal.group.swt.GroupTextProperty;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Group;
@@ -28,23 +39,26 @@
  *
  */
 public class GroupSWTRenderer extends ContainerSWTRenderer<VGroup> {
-	private static final String CONTROL_GROUP = "org_eclipse_emf_ecp_ui_control_group"; //$NON-NLS-1$
 
 	/**
 	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 * @param factory the {@link EMFFormsRendererFactory}
+	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
+	 * @since 1.6
 	 */
-	public GroupSWTRenderer() {
-		super();
+	@Inject
+	public GroupSWTRenderer(VGroup vElement, ViewModelContext viewContext, ReportService reportService,
+		EMFFormsRendererFactory factory, EMFFormsDatabinding emfFormsDatabinding) {
+		super(vElement, viewContext, reportService, factory, emfFormsDatabinding);
+		dbc = new EMFDataBindingContext();
 	}
 
-	/**
-	 * Test constructor.
-	 *
-	 * @param factory the {@link SWTRendererFactory} to use.
-	 */
-	protected GroupSWTRenderer(SWTRendererFactory factory) {
-		super(factory);
-	}
+	private static final String CONTROL_GROUP = "org_eclipse_emf_ecp_ui_control_group"; //$NON-NLS-1$
+	private final EMFDataBindingContext dbc;
 
 	/**
 	 * {@inheritDoc}
@@ -75,10 +89,27 @@
 	@Override
 	protected Composite getComposite(Composite parent) {
 		final Group group = new Group(parent, SWT.TITLE);
-		if (getVElement().getName() != null) {
-			group.setText(getVElement().getName());
-		}
+		final IObservableValue modelValue = EMFEditObservables.observeValue(
+			AdapterFactoryEditingDomain.getEditingDomainFor(getVElement()), getVElement(),
+			VViewPackage.eINSTANCE.getElement_Label());
+		final IObservableValue targetValue = new GroupTextProperty().observe(group);
+		// FIXME fixed with JFace-Databinding 4.5
+		// final IObservableValue targetValue = SWTObservables.observeText(group);
+
+		dbc.bindValue(targetValue, modelValue);
+
 		return group;
 	}
 
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer#dispose()
+	 */
+	@Override
+	protected void dispose() {
+		dbc.dispose();
+		super.dispose();
+	}
+
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.group.ui.swt/src/org/eclipse/emfforms/internal/group/swt/GroupSWTRendererService.java b/bundles/org.eclipse.emf.ecp.view.group.ui.swt/src/org/eclipse/emfforms/internal/group/swt/GroupSWTRendererService.java
new file mode 100644
index 0000000..503b264
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.group.ui.swt/src/org/eclipse/emfforms/internal/group/swt/GroupSWTRendererService.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.group.swt;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.group.model.VGroup;
+import org.eclipse.emf.ecp.view.spi.group.swt.GroupSWTRenderer;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+
+/**
+ * GroupSWTRendererService which provides the GroupSWTRenderer.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class GroupSWTRendererService implements EMFFormsDIRendererService<VGroup> {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (!VGroup.class.isInstance(vElement)) {
+			return NOT_APPLICABLE;
+		}
+		return 1d;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 * 
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#getRendererClass()
+	 */
+	@Override
+	public Class<? extends AbstractSWTRenderer<VGroup>> getRendererClass() {
+		return GroupSWTRenderer.class;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.group.ui.swt/src/org/eclipse/emfforms/internal/group/swt/GroupTextProperty.java b/bundles/org.eclipse.emf.ecp.view.group.ui.swt/src/org/eclipse/emfforms/internal/group/swt/GroupTextProperty.java
new file mode 100644
index 0000000..2d7c235
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.group.ui.swt/src/org/eclipse/emfforms/internal/group/swt/GroupTextProperty.java
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.group.swt;
+
+import org.eclipse.jface.databinding.swt.WidgetValueProperty;
+import org.eclipse.swt.widgets.Group;
+
+/**
+ * Databinding Property for SWT Groups.
+ *
+ * @author Eugen Neufeld
+ * @generated
+ */
+public class GroupTextProperty extends WidgetValueProperty {
+	// better use WidgetStringValueProperty
+	public GroupTextProperty() {
+		super();
+	}
+
+	GroupTextProperty(int event) {
+		super(event);
+	}
+
+	GroupTextProperty(int[] events) {
+		super(events);
+	}
+
+	GroupTextProperty(int[] events, int[] staleEvents) {
+		super(events, staleEvents);
+	}
+
+	@Override
+	public Object getValueType() {
+		return String.class;
+	}
+
+	@Override
+	protected Object doGetValue(Object source) {
+		return doGetStringValue(source);
+	}
+
+	@Override
+	protected void doSetValue(Object source, Object value) {
+		doSetStringValue(source, (String) value);
+	}
+
+	// end of copied code
+
+	String doGetStringValue(Object source) {
+		return ((Group) source).getText();
+	}
+
+	void doSetStringValue(Object source, String value) {
+		((Group) source).setText(value == null ? "" : value); //$NON-NLS-1$
+	}
+
+	@Override
+	public String toString() {
+		return "Group.text <String>"; //$NON-NLS-1$
+	}
+}
\ No newline at end of file
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 303742e..da377de 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,14 +2,14 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: %pluginName

 Bundle-SymbolicName: org.eclipse.emf.ecp.view.groupedgrid.model.edit;singleton:=true

-Bundle-Version: 1.5.1.qualifier

+Bundle-Version: 1.6.0.qualifier

 Bundle-ClassPath: .

 Bundle-Activator: org.eclipse.emf.ecp.view.spi.groupedgrid.model.provider.GroupedGridEditPlugin$Implementation

 Bundle-Vendor: %providerName

 Bundle-Localization: plugin

 Bundle-RequiredExecutionEnvironment: JavaSE-1.6

 Export-Package: org.eclipse.emf.ecp.view.spi.groupedgrid.model.provide

- r;version="1.5.1"

+ r;version="1.6.0"

 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",

  org.eclipse.emf.edit;visibility:=reexport;bundle-version="[2.7.0,3.0.0)",

  org.eclipse.emf.ecore;visibility:=reexport;bundle-version="[2.7.0,3.0.0)",

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 43b5460..aab48ee 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.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.0-SNAPSHOT</version>

 

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

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.groupedgrid.model.edit/src/org/eclipse/emf/ecp/view/spi/groupedgrid/model/provider/GroupedGridItemProvider.java b/bundles/org.eclipse.emf.ecp.view.groupedgrid.model.edit/src/org/eclipse/emf/ecp/view/spi/groupedgrid/model/provider/GroupedGridItemProvider.java
index c65dc38..f29fd02 100644
--- a/bundles/org.eclipse.emf.ecp.view.groupedgrid.model.edit/src/org/eclipse/emf/ecp/view/spi/groupedgrid/model/provider/GroupedGridItemProvider.java
+++ b/bundles/org.eclipse.emf.ecp.view.groupedgrid.model.edit/src/org/eclipse/emf/ecp/view/spi/groupedgrid/model/provider/GroupedGridItemProvider.java
@@ -20,6 +20,8 @@
 import org.eclipse.emf.ecp.view.spi.groupedgrid.model.VGroupedGrid;
 import org.eclipse.emf.ecp.view.spi.groupedgrid.model.VGroupedGridFactory;
 import org.eclipse.emf.ecp.view.spi.groupedgrid.model.VGroupedGridPackage;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emf.ecp.view.spi.model.VElementUtil;
 import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
 import org.eclipse.emf.ecp.view.spi.model.provider.ContainedElementItemProvider;
 import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
@@ -125,12 +127,15 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 *
-	 * @generated
+	 * @generated NOT
 	 */
 	@Override
 	public String getText(Object object)
 	{
-		final String label = ((VGroupedGrid) object).getName();
+		String label = ((VGroupedGrid) object).getLabel();
+		if (label == null) {
+			label = VElementUtil.getCleanName(VElement.class.cast(object));
+		}
 		return label == null || label.length() == 0 ?
 			getString("_UI_GroupedGrid_type") : //$NON-NLS-1$
 			getString("_UI_GroupedGrid_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
diff --git a/bundles/org.eclipse.emf.ecp.view.groupedgrid.model/.gitignore b/bundles/org.eclipse.emf.ecp.view.groupedgrid.model/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.groupedgrid.model/.gitignore
@@ -0,0 +1 @@
+/bin/
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 6ccf341..fb7f832 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,15 +2,15 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: %pluginName

 Bundle-SymbolicName: org.eclipse.emf.ecp.view.groupedgrid.model;singleton:=true

-Bundle-Version: 1.5.1.qualifier

+Bundle-Version: 1.6.0.qualifier

 Bundle-ClassPath: .

 Bundle-Vendor: %providerName

 Bundle-Localization: plugin

 Bundle-RequiredExecutionEnvironment: JavaSE-1.6

 Export-Package: org.eclipse.emf.ecp.view.spi.groupedgrid.model;version

- ="1.5.1",org.eclipse.emf.ecp.view.spi.groupedgrid.model.impl;version=

- "1.5.1",org.eclipse.emf.ecp.view.spi.groupedgrid.model.util;version="

- 1.5.1"

+ ="1.6.0",org.eclipse.emf.ecp.view.spi.groupedgrid.model.impl;version=

+ "1.6.0",org.eclipse.emf.ecp.view.spi.groupedgrid.model.util;version="

+ 1.6.0"

 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",

  org.eclipse.emf.ecore;visibility:=reexport;bundle-version="[2.7.0,3.0.0)",

  org.eclipse.emf.ecp.view.model;visibility:=reexport;bundle-version="[1.5.0,2.0.0)"

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 be8f426..37f849f 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.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.0-SNAPSHOT</version>

 

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

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.groupedgrid.ui.swt/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.groupedgrid.ui.swt/META-INF/MANIFEST.MF
index f045e86..e2a2198 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,17 +2,19 @@
 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.groupedgrid.model;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.edit.swt;bundle-version="[1.5.0,2.0.0)"
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.6.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.emf.ecp.view.spi.groupedgrid.swt;version="
- 1.5.1"
-Import-Package: org.eclipse.jface.layout;version="0.0.0",
+ 1.6.0"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="1.6.0",
+ org.eclipse.jface.layout;version="0.0.0",
  org.eclipse.swt;version="0.0.0",
  org.eclipse.swt.layout;version="0.0.0",
  org.eclipse.swt.widgets;version="0.0.0"
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 f318ba8..aaff315 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.5.1-SNAPSHOT</version>

+    <version>1.6.0-SNAPSHOT</version>

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

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.view.groupedgrid.ui.swt/src/org/eclipse/emf/ecp/view/spi/groupedgrid/swt/GroupedGridSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.groupedgrid.ui.swt/src/org/eclipse/emf/ecp/view/spi/groupedgrid/swt/GroupedGridSWTRenderer.java
index c6b6f10..bbc1e16 100644
--- a/bundles/org.eclipse.emf.ecp.view.groupedgrid.ui.swt/src/org/eclipse/emf/ecp/view/spi/groupedgrid/swt/GroupedGridSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.groupedgrid.ui.swt/src/org/eclipse/emf/ecp/view/spi/groupedgrid/swt/GroupedGridSWTRenderer.java
@@ -11,6 +11,7 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.groupedgrid.swt;
 
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.groupedgrid.model.VGroup;
 import org.eclipse.emf.ecp.view.spi.groupedgrid.model.VGroupedGrid;
 import org.eclipse.emf.ecp.view.spi.groupedgrid.model.VRow;
@@ -20,10 +21,14 @@
 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.emf.ecp.view.spi.swt.AbstractSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.swt.layout.GridDescriptionFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
+import org.eclipse.emf.ecp.view.spi.swt.reporting.RenderingFailedReport;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.GridDescriptionFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.layout.GridLayoutFactory;
 import org.eclipse.swt.SWT;
@@ -31,6 +36,9 @@
 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.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
 
 /**
  * @author Eugen Neufeld
@@ -38,12 +46,24 @@
  *
  */
 public class GroupedGridSWTRenderer extends AbstractSWTRenderer<VGroupedGrid> {
+	/**
+	 * Default Constructor.
+	 *
+	 * @param vElement the view element to be rendered
+	 * @param viewContext The view model context
+	 * @param reportService the ReportService to use
+	 */
+	public GroupedGridSWTRenderer(final VGroupedGrid vElement, final ViewModelContext viewContext,
+		ReportService reportService) {
+		super(vElement, viewContext, reportService);
+	}
+
 	private SWTGridDescription rendererGridDescription;
 
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#getGridDescription(SWTGridDescription)
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#getGridDescription(SWTGridDescription)
 	 */
 	@Override
 	public SWTGridDescription getGridDescription(SWTGridDescription gridDescription) {
@@ -56,7 +76,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#dispose()
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#dispose()
 	 */
 	@Override
 	protected void dispose() {
@@ -67,7 +87,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#renderControl(org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell,
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#renderControl(org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell,
 	 *      org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
@@ -102,15 +122,17 @@
 				for (final org.eclipse.emf.ecp.view.spi.model.VContainedElement child : row.getChildren()) {
 
 					final int hSpan = getHSpanOfComposite(child);
-					final AbstractSWTRenderer<VElement> renderer = getSWTRendererFactory().getRenderer(child,
-						getViewModelContext());
+					AbstractSWTRenderer<VElement> renderer;
+					try {
+						renderer = getEMFFormsRendererFactory().getRendererInstance(child,
+							getViewModelContext());
+					} catch (final EMFFormsNoRendererException ex) {
+						getReportService().report(new RenderingFailedReport(ex));
+						continue;
+					}
 					final Control childRender = renderer.render(new SWTGridCell(0, 0, this),
 						columnComposite);
 
-					// TOOD; when does this case apply?
-					if (childRender == null) {
-						continue;
-					}
 					childRender.setBackground(parent.getBackground());
 					GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).indent(0, 0)
 						.span(hSpan, 1).applyTo(childRender);
@@ -180,4 +202,12 @@
 
 	}
 
+	private EMFFormsRendererFactory getEMFFormsRendererFactory() {
+		final BundleContext bundleContext = FrameworkUtil.getBundle(getClass()).getBundleContext();
+		final ServiceReference<EMFFormsRendererFactory> serviceReference = bundleContext
+			.getServiceReference(EMFFormsRendererFactory.class);
+		final EMFFormsRendererFactory rendererFactory = bundleContext.getService(serviceReference);
+		bundleContext.ungetService(serviceReference);
+		return rendererFactory;
+	}
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.horizontal.model.edit/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.horizontal.model.edit/.settings/.api_filters
index ea69282..ab4f891 100644
--- a/bundles/org.eclipse.emf.ecp.view.horizontal.model.edit/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.horizontal.model.edit/.settings/.api_filters
@@ -1,6 +1,12 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.emf.ecp.view.horizontal.model.edit" version="2">
     <resource path="META-INF/MANIFEST.MF">
+        <filter comment="SPI Change in 1.6" id="923795461">
+            <message_arguments>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </message_arguments>
+        </filter>
         <filter comment="Fixed versions" id="927989779">
             <message_arguments>
                 <message_argument value="1.4.0"/>
@@ -14,4 +20,28 @@
             </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.horizontal.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.horizontal.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.horizontal.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
 </component>
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 0bd99d8..fbc1732 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,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.horizontal.model.edit;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.spi.horizontal.model.provider.HorizontalEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.view.spi.horizontal.model.provider
- ;version="1.5.1"
+ ;version="1.6.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.5.0,2.0.0)";visibility:=reexport,
  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
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 e359c85..7de171c 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <groupId>org.eclipse.emf.ecp</groupId>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.horizontal.model.edit/src/org/eclipse/emf/ecp/view/spi/horizontal/model/provider/HorizontalLayoutItemProvider.java b/bundles/org.eclipse.emf.ecp.view.horizontal.model.edit/src/org/eclipse/emf/ecp/view/spi/horizontal/model/provider/HorizontalLayoutItemProvider.java
index c56b405..c13ff43 100644
--- a/bundles/org.eclipse.emf.ecp.view.horizontal.model.edit/src/org/eclipse/emf/ecp/view/spi/horizontal/model/provider/HorizontalLayoutItemProvider.java
+++ b/bundles/org.eclipse.emf.ecp.view.horizontal.model.edit/src/org/eclipse/emf/ecp/view/spi/horizontal/model/provider/HorizontalLayoutItemProvider.java
@@ -18,6 +18,8 @@
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.ecp.view.spi.horizontal.model.VHorizontalFactory;
 import org.eclipse.emf.ecp.view.spi.horizontal.model.VHorizontalLayout;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emf.ecp.view.spi.model.VElementUtil;
 import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
 import org.eclipse.emf.ecp.view.spi.model.provider.ContainedContainerItemProvider;
 import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
@@ -84,12 +86,15 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 *
-	 * @generated
+	 * @generated NOT
 	 */
 	@Override
 	public String getText(Object object)
 	{
-		final String label = ((VHorizontalLayout) object).getName();
+		String label = ((VHorizontalLayout) object).getName();
+		if (label == null) {
+			label = VElementUtil.getCleanName(VElement.class.cast(object));
+		}
 		return label == null || label.length() == 0 ?
 			getString("_UI_HorizontalLayout_type") : //$NON-NLS-1$
 			getString("_UI_HorizontalLayout_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
diff --git a/bundles/org.eclipse.emf.ecp.view.horizontal.model/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.horizontal.model/.settings/.api_filters
index f51930a..99aca4f 100644
--- a/bundles/org.eclipse.emf.ecp.view.horizontal.model/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.horizontal.model/.settings/.api_filters
@@ -1,10 +1,85 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.emf.ecp.view.horizontal.model" version="2">
     <resource path="META-INF/MANIFEST.MF">
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.horizontal.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.horizontal.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.horizontal.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/horizontal/model/VHorizontalPackage.java" type="org.eclipse.emf.ecp.view.spi.horizontal.model.VHorizontalPackage">
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.horizontal.model.VHorizontalPackage"/>
+                <message_argument value="HORIZONTAL_LAYOUT_FEATURE_COUNT"/>
+                <message_argument value="7"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.horizontal.model.VHorizontalPackage"/>
+                <message_argument value="HORIZONTAL_LAYOUT__ATTACHMENTS"/>
+                <message_argument value="5"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.horizontal.model.VHorizontalPackage"/>
+                <message_argument value="HORIZONTAL_LAYOUT__CHILDREN"/>
+                <message_argument value="6"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.horizontal.model.VHorizontalPackage"/>
+                <message_argument value="HORIZONTAL_LAYOUT__DIAGNOSTIC"/>
+                <message_argument value="4"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.horizontal.model.VHorizontalPackage"/>
+                <message_argument value="HORIZONTAL_LAYOUT__ENABLED"/>
+                <message_argument value="2"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.horizontal.model.VHorizontalPackage"/>
+                <message_argument value="HORIZONTAL_LAYOUT__READONLY"/>
+                <message_argument value="3"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.horizontal.model.VHorizontalPackage"/>
+                <message_argument value="HORIZONTAL_LAYOUT__VISIBLE"/>
+                <message_argument value="1"/>
             </message_arguments>
         </filter>
     </resource>
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 ad523a2..e4ee095 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,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Horizontal View Model
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.horizontal.model;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.view.spi.horizontal.model;version=
- "1.5.1",org.eclipse.emf.ecp.view.spi.horizontal.model.impl;version="1
- .5.1",org.eclipse.emf.ecp.view.spi.horizontal.model.util;version="1.5
- .1"
+ "1.6.0",org.eclipse.emf.ecp.view.spi.horizontal.model.impl;version="1
+ .6.0",org.eclipse.emf.ecp.view.spi.horizontal.model.util;version="1.6
+ .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.5.0,2.0.0)";visibility:=reexport
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 a058639..33da40d 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <groupId>org.eclipse.emf.ecp</groupId>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/.project b/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/.project
index a068caa..d183602 100644
--- a/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/.project
+++ b/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/.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.horizontal.ui.swt/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/.settings/.api_filters
index d975a10..50aa4d7 100644
--- a/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/.settings/.api_filters
@@ -7,8 +7,32 @@
                 <message_argument value="1.2.1"/>
             </message_arguments>
         </filter>
+        <filter comment="SPI Change in 1.6" id="923795461">
+            <message_arguments>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/emf/ecp/view/spi/horizontal/swt/HorizontalLayoutSWTRenderer.java" type="org.eclipse.emf.ecp.view.spi.horizontal.swt.HorizontalLayoutSWTRenderer">
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.horizontal.swt.HorizontalLayoutSWTRenderer"/>
+                <message_argument value="HorizontalLayoutSWTRenderer()"/>
+            </message_arguments>
+        </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.horizontal.swt.HorizontalLayoutSWTRenderer"/>
+                <message_argument value="getGridDescription(SWTGridDescription)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.horizontal.swt.HorizontalLayoutSWTRenderer"/>
+                <message_argument value="renderControl(SWTGridCell, Composite)"/>
+            </message_arguments>
+        </filter>
         <filter comment="This is SPI" id="338792546">
             <message_arguments>
                 <message_argument value="org.eclipse.emf.ecp.view.spi.horizontal.swt.HorizontalLayoutSWTRenderer"/>
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 300f979..c67b5eb 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
@@ -1,21 +1,24 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Horizontal UI SWT
-Bundle-SymbolicName: org.eclipse.emf.ecp.view.horizontal.ui.swt;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-SymbolicName: org.eclipse.emf.ecp.view.horizontal.ui.swt
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.5.0,2.0.0)"
+ org.eclipse.emf.ecp.edit;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.6.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.emf.ecp.view.internal.horizontal.swt;versi
- on="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.spi.horizontal.s
- wt;version="1.5.1"
+ on="1.6.0";x-internal:=true,org.eclipse.emf.ecp.view.spi.horizontal.s
+ wt;version="1.6.0"
 Import-Package: org.eclipse.emf.ecp.view.internal.core.swt;version="1.1.1",
+ org.eclipse.emfforms.spi.common.report;version="1.6.0",
  org.eclipse.jface.layout;version="0.0.0",
  org.eclipse.swt;version="0.0.0",
  org.eclipse.swt.widgets;version="0.0.0"
-Bundle-Activator: org.eclipse.emf.ecp.view.internal.horizontal.swt.Activator
+Service-Component: OSGI-INF/horizontalLayoutRendererService.xml
diff --git a/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/OSGI-INF/horizontalLayoutRendererService.xml b/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/OSGI-INF/horizontalLayoutRendererService.xml
new file mode 100644
index 0000000..a60c20a
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/OSGI-INF/horizontalLayoutRendererService.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emf.ecp.view.horizontal.swt.rendererService">
+   <implementation class="org.eclipse.emf.ecp.view.internal.horizontal.swt.HorizontalLayoutSWTRendererService"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService"/>
+   </service>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/build.properties b/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/build.properties
index e5a949c..0565497 100644
--- a/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/build.properties
+++ b/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/build.properties
@@ -2,6 +2,6 @@
 output.. = bin/
 bin.includes = META-INF/,\
                .,\
-               plugin.xml,\
-               about.html
+               about.html,\
+               OSGI-INF/
 src.includes = about.html
diff --git a/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/plugin.xml b/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/plugin.xml
deleted file mode 100644
index f9b412e..0000000
--- a/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/plugin.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         point="org.eclipse.emf.ecp.ui.view.swt.renderers">
-      <renderer
-            renderer="org.eclipse.emf.ecp.view.spi.horizontal.swt.HorizontalLayoutSWTRenderer">
-         <staticTest
-               element="org.eclipse.emf.ecp.view.spi.horizontal.model.VHorizontalLayout"
-               priority="1">
-         </staticTest>
-      </renderer>
-   </extension>
-
-</plugin>
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 ebfbfc3..af984b5 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.5.1-SNAPSHOT</version>
+    <version>1.6.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/src/org/eclipse/emf/ecp/view/internal/horizontal/swt/Activator.java b/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/src/org/eclipse/emf/ecp/view/internal/horizontal/swt/Activator.java
deleted file mode 100644
index 1108270..0000000
--- a/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/src/org/eclipse/emf/ecp/view/internal/horizontal/swt/Activator.java
+++ /dev/null
@@ -1,76 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.internal.horizontal.swt;
-
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.emf.ecp.view.spi.model.reporting.ReportService;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-
-/**
- * The activator class controls the plug-in life cycle.
- */
-public class Activator extends Plugin {
-
-	/** The plug-in ID. */
-	public static final String PLUGIN_ID = "org.eclipse.emf.ecp.view.horizontal.swt"; //$NON-NLS-1$
-
-	// The shared instance
-	private static Activator plugin;
-
-	/**
-	 * The constructor.
-	 */
-	public Activator() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-	 */
-	@Override
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		plugin = this;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
-	 */
-	@Override
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		super.stop(context);
-	}
-
-	/**
-	 * 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() {
-		final BundleContext bundleContext = getBundle().getBundleContext();
-		final ServiceReference<ReportService> serviceReference =
-			bundleContext.getServiceReference(ReportService.class);
-		return bundleContext.getService(serviceReference);
-	}
-}
diff --git a/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/src/org/eclipse/emf/ecp/view/internal/horizontal/swt/HorizontalLayoutSWTRendererService.java b/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/src/org/eclipse/emf/ecp/view/internal/horizontal/swt/HorizontalLayoutSWTRendererService.java
new file mode 100644
index 0000000..83516a7
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/src/org/eclipse/emf/ecp/view/internal/horizontal/swt/HorizontalLayoutSWTRendererService.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.horizontal.swt;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.horizontal.model.VHorizontalLayout;
+import org.eclipse.emf.ecp.view.spi.horizontal.swt.HorizontalLayoutSWTRenderer;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+
+/**
+ * EmbeddedGroupSWTRendererService which provides the EmbeddedGroupSWTRenderer.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class HorizontalLayoutSWTRendererService implements EMFFormsDIRendererService<VHorizontalLayout> {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (VHorizontalLayout.class.isInstance(vElement)) {
+			return 1;
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 * 
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#getRendererClass()
+	 */
+	@Override
+	public Class<? extends AbstractSWTRenderer<VHorizontalLayout>> getRendererClass() {
+		return HorizontalLayoutSWTRenderer.class;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/src/org/eclipse/emf/ecp/view/spi/horizontal/swt/HorizontalLayoutSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/src/org/eclipse/emf/ecp/view/spi/horizontal/swt/HorizontalLayoutSWTRenderer.java
index 6381bf7..6ac5ba1 100644
--- a/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/src/org/eclipse/emf/ecp/view/spi/horizontal/swt/HorizontalLayoutSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/src/org/eclipse/emf/ecp/view/spi/horizontal/swt/HorizontalLayoutSWTRenderer.java
@@ -15,20 +15,26 @@
 import java.util.LinkedHashMap;
 import java.util.Map;
 
+import javax.inject.Inject;
+
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
-import org.eclipse.emf.ecp.view.internal.horizontal.swt.Activator;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.horizontal.model.VHorizontalLayout;
 import org.eclipse.emf.ecp.view.spi.model.VContainedElement;
 import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emf.ecp.view.spi.model.reporting.StatusReport;
 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.AbstractSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.swt.layout.GridDescriptionFactory;
 import org.eclipse.emf.ecp.view.spi.swt.layout.LayoutProviderHelper;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
 import org.eclipse.emf.ecp.view.spi.swt.reporting.RenderingFailedReport;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.GridDescriptionFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
@@ -42,13 +48,31 @@
  */
 public class HorizontalLayoutSWTRenderer extends AbstractSWTRenderer<VHorizontalLayout> {
 
+	private final EMFFormsRendererFactory rendererFactory;
+
+	/**
+	 * Default Constructor.
+	 *
+	 * @param vElement the view element to be rendered
+	 * @param viewContext The view model context
+	 * @param reportService the ReportService to use
+	 * @param rendererFactory the EMFFormsRendererFactory to use
+	 * @since 1.6
+	 */
+	@Inject
+	public HorizontalLayoutSWTRenderer(final VHorizontalLayout vElement, final ViewModelContext viewContext,
+		ReportService reportService, EMFFormsRendererFactory rendererFactory) {
+		super(vElement, viewContext, reportService);
+		this.rendererFactory = rendererFactory;
+	}
+
 	private static final String CONTROL_COLUMN_COMPOSITE = "org_eclipse_emf_ecp_ui_layout_horizontal"; //$NON-NLS-1$
 	private SWTGridDescription rendererGridDescription;
 
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#dispose()
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#dispose()
 	 */
 	@Override
 	protected void dispose() {
@@ -59,12 +83,13 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#getGridDescription(SWTGridDescription)
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#getGridDescription(SWTGridDescription)
 	 */
 	@Override
 	public SWTGridDescription getGridDescription(SWTGridDescription gridDescription) {
 		if (rendererGridDescription == null) {
 			rendererGridDescription = GridDescriptionFactory.INSTANCE.createSimpleGrid(1, 1, this);
+			rendererGridDescription.getGrid().get(0).setVerticalGrab(false);
 		}
 		return rendererGridDescription;
 	}
@@ -72,7 +97,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#renderControl(int, org.eclipse.swt.widgets.Composite,
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#renderControl(int, org.eclipse.swt.widgets.Composite,
 	 *      org.eclipse.emf.ecp.view.spi.model.VElement, org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
 	 */
 	@Override
@@ -88,15 +113,14 @@
 		final Map<VContainedElement, AbstractSWTRenderer<VElement>> elementRendererMap = new LinkedHashMap<VContainedElement, AbstractSWTRenderer<VElement>>();
 		for (final VContainedElement child : getVElement().getChildren()) {
 
-			final AbstractSWTRenderer<VElement> renderer = getSWTRendererFactory().getRenderer(child,
-				getViewModelContext());
-			if (renderer == null) {
-				Activator
-					.getDefault()
-					.getLog()
-					.log(
-						new Status(IStatus.INFO, Activator.PLUGIN_ID, String.format(
-							"No Renderer for %s found.", child.eClass().getName()))); //$NON-NLS-1$
+			AbstractSWTRenderer<VElement> renderer;
+			try {
+				renderer = rendererFactory.getRendererInstance(child,
+					getViewModelContext());
+			} catch (final EMFFormsNoRendererException ex) {
+				getReportService().report(new StatusReport(
+					new Status(IStatus.INFO, "org.eclipse.emf.ecp.view.horizontal.ui.swt",//$NON-NLS-1$
+						String.format("No Renderer for %s found.", child.eClass().getName())))); //$NON-NLS-1$
 				continue;
 			}
 			elementRendererMap.put(child, renderer);
@@ -123,15 +147,14 @@
 					}
 					// TODO who should apply the layout
 					control.setLayoutData(LayoutProviderHelper.getLayoutData(childGridCell, gridDescription,
-						gridDescription,
-						gridDescription, childGridCell.getRenderer().getVElement(),
-						control));
+						gridDescription, gridDescription, childGridCell.getRenderer().getVElement(),
+						getViewModelContext().getDomainModel(), control));
 				}
 				for (final SWTGridCell childGridCell : gridDescription.getGrid()) {
 					childGridCell.getRenderer().finalizeRendering(column);
 				}
 			} catch (final NoPropertyDescriptorFoundExeption e) {
-				Activator.getDefault().getReportService().report(new RenderingFailedReport(e));
+				getReportService().report(new RenderingFailedReport(e));
 				continue;
 			}
 		}
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.project b/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.project
deleted file mode 100644
index 292e235..0000000
--- a/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.project
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.emf.ecp.view.indexdmr.databinding</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>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>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/META-INF/MANIFEST.MF
deleted file mode 100644
index 8b71fc0..0000000
--- a/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,15 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: EMF Forms Index DMR Databinding
-Bundle-SymbolicName: org.eclipse.emf.ecp.view.indexdmr.databinding
-Bundle-Version: 1.5.1.qualifier
-Bundle-Vendor: Eclipse Modeling Project
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Require-Bundle: org.eclipse.emf.databinding,
- org.eclipse.core.databinding.property;bundle-version="1.4.200",
- org.eclipse.emf.ecp.view.model.common,
- org.eclipse.emf.ecp.view.model,
- org.eclipse.emf.ecp.view.indexdmr.model
-Import-Package: org.osgi.framework
-Service-Component: OSGI-INF/indexDatabindingProvider.xml
-Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/OSGI-INF/indexDatabindingProvider.xml b/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/OSGI-INF/indexDatabindingProvider.xml
deleted file mode 100644
index 7c2666c..0000000
--- a/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/OSGI-INF/indexDatabindingProvider.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emf.ecp.view.indexdmr.databinding">
-   <implementation class="org.eclipse.emf.ecp.view.indexdmr.databinding.IndexDatabindingProviderService"/>
-   <service>
-      <provide interface="org.eclipse.emf.ecp.view.model.common.spi.databinding.DatabindingProviderService"/>
-   </service>
-   <property name="domainModelReference" type="String" value="org.eclipse.emf.ecp.view.spi.indexdmr.model.impl.VIndexDomainModelReferenceImpl"/>
-</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/pom.xml b/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/pom.xml
deleted file mode 100644
index 7e0dec8..0000000
--- a/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/pom.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?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.5.1-SNAPSHOT</version>
-    <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
-  </parent>
-
-  <artifactId>org.eclipse.emf.ecp.view.indexdmr.databinding</artifactId>
-  <packaging>eclipse-plugin</packaging>
-
-</project>
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/src/org/eclipse/emf/ecp/view/indexdmr/databinding/EMFIndexedValueProperty.java b/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/src/org/eclipse/emf/ecp/view/indexdmr/databinding/EMFIndexedValueProperty.java
deleted file mode 100644
index 5e72a92..0000000
--- a/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/src/org/eclipse/emf/ecp/view/indexdmr/databinding/EMFIndexedValueProperty.java
+++ /dev/null
@@ -1,65 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- * Eugen Neufeld - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.indexdmr.databinding;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.databinding.internal.EMFValueProperty;
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-/**
- * This class provides a ValueProperty for EClass Mappings.
- * 
- * @author Eugen Neufeld
- * 
- */
-@SuppressWarnings("restriction")
-public class EMFIndexedValueProperty extends EMFValueProperty {
-
-	private final int index;
-
-	/**
-	 * Constructor for a EClassMapping ValueProperty.
-	 * 
-	 * @param mappedEClass
-	 *            the EClass being mapped
-	 * @param eStructuralFeature
-	 *            the {@link EStructuralFeature} of the map
-	 */
-	public EMFIndexedValueProperty(int index,
-			EStructuralFeature eStructuralFeature) {
-		super(eStructuralFeature);
-		this.index = index;
-	}
-
-	@SuppressWarnings("unchecked")
-	@Override
-	protected Object doGetValue(Object source) {
-		final Object result = super.doGetValue(source);
-		final EList<Object> list = (EList<Object>) result;
-		return list.get(index);
-	}
-
-	@SuppressWarnings("unchecked")
-	@Override
-	protected void doSetValue(Object source, Object value) {
-		final Object result = super.doGetValue(source);
-		final EList<Object> list = (EList<Object>) result;
-		list.add(index, value);
-	}
-
-	@Override
-	public String toString() {
-		String s = super.toString();
-		s += " index " + index; //$NON-NLS-1$
-		return s;
-	}
-}
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/src/org/eclipse/emf/ecp/view/indexdmr/databinding/IndexDatabindingProviderService.java b/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/src/org/eclipse/emf/ecp/view/indexdmr/databinding/IndexDatabindingProviderService.java
deleted file mode 100644
index a7a7145..0000000
--- a/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/src/org/eclipse/emf/ecp/view/indexdmr/databinding/IndexDatabindingProviderService.java
+++ /dev/null
@@ -1,112 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- * Eugen Neufeld - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.indexdmr.databinding;
-
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.property.IProperty;
-import org.eclipse.core.databinding.property.value.IValueProperty;
-import org.eclipse.emf.ecp.view.model.common.internal.databinding.FeaturePathDatabindingProviderService;
-import org.eclipse.emf.ecp.view.model.common.spi.databinding.DatabindingProviderService;
-import org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexDomainModelReference;
-import org.eclipse.emf.ecp.view.spi.model.ModelReferenceHelper;
-import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
-import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.FrameworkUtil;
-import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.framework.ServiceReference;
-
-/**
- * The {@link DatabindingProviderService} for a
- * {@link VIndexDomainModelReference}.
- * 
- * @author Eugen Neufeld
- * 
- */
-@SuppressWarnings("restriction")
-public class IndexDatabindingProviderService extends
-		FeaturePathDatabindingProviderService {
-
-	@SuppressWarnings("unchecked")
-	@Override
-	public <O extends IObservable> O getObservable(
-			VFeaturePathDomainModelReference domainModelReference,
-			Class<O> observableClass) {
-		final IObservableValue value = (IObservableValue) super.getObservable(
-				domainModelReference, observableClass);
-
-		return (O) value;
-	}
-
-	@SuppressWarnings("unchecked")
-	@Override
-	public <P extends IProperty> P getProperty(
-			VFeaturePathDomainModelReference domainModelReference,
-			Class<P> propertyClass) {
-		final VIndexDomainModelReference indexDomainModelReference = (VIndexDomainModelReference) domainModelReference;
-
-		final EMFIndexedValueProperty valueProperty = new EMFIndexedValueProperty(
-				indexDomainModelReference.getIndex(),
-				domainModelReference.getDomainModelEFeature());
-		final IValueProperty value = valueProperty
-				.value(getPropertyOfChild(indexDomainModelReference
-						.getTargetDMR()));
-
-		if(domainModelReference.getDomainModelEReferencePath().isEmpty())
-			return (P) value;
-		
-		VFeaturePathDomainModelReference subDMR = (VFeaturePathDomainModelReference)ModelReferenceHelper.createDomainModelReference(domainModelReference.getDomainModelEReferencePath().get(domainModelReference.getDomainModelEReferencePath().size()-1), domainModelReference.getDomainModelEReferencePath().subList(0, domainModelReference.getDomainModelEReferencePath().size()-1));
-		IValueProperty property=(IValueProperty) super.getProperty(subDMR, propertyClass);
-		// property.value(valueProperty);
-		return (P) property.value(value);
-	}
-
-	@SuppressWarnings({ "rawtypes", "unchecked" })
-	private IValueProperty getPropertyOfChild(
-			VDomainModelReference domainModelReference) {
-		final BundleContext bundleContext = FrameworkUtil.getBundle(getClass())
-				.getBundleContext();
-		ServiceReference<DatabindingProviderService> databindingProviderServiceReference = null;
-		try {
-			final Collection<ServiceReference<DatabindingProviderService>> serviceReferences = bundleContext
-					.getServiceReferences(
-							DatabindingProviderService.class,
-							String.format(
-									"(domainModelReference=%s)", domainModelReference.getClass().getName())); //$NON-NLS-1$
-			final Iterator<ServiceReference<DatabindingProviderService>> iterator = serviceReferences
-					.iterator();
-			if (iterator.hasNext()) {
-				databindingProviderServiceReference = iterator.next();
-			}
-			if (databindingProviderServiceReference == null) {
-				throw new IllegalStateException(
-						"No DatabindingProviderService available."); //$NON-NLS-1$
-			}
-		} catch (final InvalidSyntaxException e) {
-			throw new IllegalStateException(e);
-		}
-		final DatabindingProviderService<VDomainModelReference> service = bundleContext
-				.getService(databindingProviderServiceReference);
-
-		final IValueProperty property = service.getProperty(
-				domainModelReference, IValueProperty.class);
-
-		bundleContext.ungetService(databindingProviderServiceReference);
-
-		return property;
-	}
-
-}
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.model.edit/.gitignore b/bundles/org.eclipse.emf.ecp.view.indexdmr.model.edit/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.indexdmr.model.edit/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.model.edit/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.indexdmr.model.edit/.settings/.api_filters
new file mode 100644
index 0000000..2bf1fa1
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.indexdmr.model.edit/.settings/.api_filters
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<component id="org.eclipse.emf.ecp.view.indexdmr.model.edit" version="2">
+    <resource path="META-INF/MANIFEST.MF">
+        <filter comment="SPI Change in 1.6" id="923795461">
+            <message_arguments>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.indexdmr.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.indexdmr.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.indexdmr.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+</component>
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 3d972e5..db35e7b 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,14 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.indexdmr.model.edit;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.spi.indexdmr.model.provider.IndexdmrEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.ecp.view.spi.indexdmr.model.provider;v
- ersion="1.5.1";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.spi.indexdmr.model.provider;version="1.6.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.5.0,2.0.0)";visibility:=reexport,
  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.model.edit/icons/full/ctool16/CreateIndexDomainModelReference_prefixDMR_FeaturePathDomainModelReference.gif b/bundles/org.eclipse.emf.ecp.view.indexdmr.model.edit/icons/full/ctool16/CreateIndexDomainModelReference_prefixDMR_FeaturePathDomainModelReference.gif
new file mode 100644
index 0000000..a9c3b04
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.indexdmr.model.edit/icons/full/ctool16/CreateIndexDomainModelReference_prefixDMR_FeaturePathDomainModelReference.gif
Binary files differ
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.model.edit/icons/full/ctool16/CreateIndexDomainModelReference_prefixDMR_IndexDomainModelReference.gif b/bundles/org.eclipse.emf.ecp.view.indexdmr.model.edit/icons/full/ctool16/CreateIndexDomainModelReference_prefixDMR_IndexDomainModelReference.gif
new file mode 100644
index 0000000..fad8ece
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.indexdmr.model.edit/icons/full/ctool16/CreateIndexDomainModelReference_prefixDMR_IndexDomainModelReference.gif
Binary files differ
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.model.edit/plugin.properties b/bundles/org.eclipse.emf.ecp.view.indexdmr.model.edit/plugin.properties
index 9bc858d..1bedd87 100644
--- a/bundles/org.eclipse.emf.ecp.view.indexdmr.model.edit/plugin.properties
+++ b/bundles/org.eclipse.emf.ecp.view.indexdmr.model.edit/plugin.properties
@@ -9,7 +9,7 @@
 # Eugen Neufeld - initial API and implementation
 
 pluginName = Indexdmr Edit Support
-providerName = www.example.org
+providerName = Eclipse Modeling Project
 
 _UI_CreateChild_text = {0}
 _UI_CreateChild_text2 = {1} {0}
@@ -29,3 +29,4 @@
 _UI_IndexDomainModelReference_index_feature = Index
 _UI_Unknown_feature = Unspecified
 
+_UI_IndexDomainModelReference_prefixDMR_feature = Prefix DMR
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 31fa28a..4a45950 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.5.1-SNAPSHOT</version>
+    <version>1.6.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/src/org/eclipse/emf/ecp/view/spi/indexdmr/model/provider/IndexDomainModelReferenceItemProvider.java b/bundles/org.eclipse.emf.ecp.view.indexdmr.model.edit/src/org/eclipse/emf/ecp/view/spi/indexdmr/model/provider/IndexDomainModelReferenceItemProvider.java
index 074c69d..30e70e5 100644
--- a/bundles/org.eclipse.emf.ecp.view.indexdmr.model.edit/src/org/eclipse/emf/ecp/view/spi/indexdmr/model/provider/IndexDomainModelReferenceItemProvider.java
+++ b/bundles/org.eclipse.emf.ecp.view.indexdmr.model.edit/src/org/eclipse/emf/ecp/view/spi/indexdmr/model/provider/IndexDomainModelReferenceItemProvider.java
@@ -59,13 +59,40 @@
 		{
 			super.getPropertyDescriptors(object);
 
-			addTargetDMRPropertyDescriptor(object);
+			addPrefixDMRPropertyDescriptor(object);
 			addIndexPropertyDescriptor(object);
+			addTargetDMRPropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
 
 	/**
+	 * This adds a property descriptor for the Prefix DMR feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected void addPrefixDMRPropertyDescriptor(Object object)
+	{
+		itemPropertyDescriptors
+			.add
+			(createItemPropertyDescriptor
+			(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+				getResourceLocator(),
+				getString("_UI_IndexDomainModelReference_prefixDMR_feature"), //$NON-NLS-1$
+				getString(
+					"_UI_PropertyDescriptor_description", "_UI_IndexDomainModelReference_prefixDMR_feature", "_UI_IndexDomainModelReference_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				VIndexdmrPackage.Literals.INDEX_DOMAIN_MODEL_REFERENCE__PREFIX_DMR,
+				true,
+				false,
+				false,
+				null,
+				null,
+				null));
+	}
+
+	/**
 	 * This adds a property descriptor for the Target DMR feature.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -129,6 +156,7 @@
 		if (childrenFeatures == null)
 		{
 			super.getChildrenFeatures(object);
+			childrenFeatures.add(VIndexdmrPackage.Literals.INDEX_DOMAIN_MODEL_REFERENCE__PREFIX_DMR);
 			childrenFeatures.add(VIndexdmrPackage.Literals.INDEX_DOMAIN_MODEL_REFERENCE__TARGET_DMR);
 		}
 		return childrenFeatures;
@@ -189,6 +217,7 @@
 		case VIndexdmrPackage.INDEX_DOMAIN_MODEL_REFERENCE__INDEX:
 			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
 			return;
+		case VIndexdmrPackage.INDEX_DOMAIN_MODEL_REFERENCE__PREFIX_DMR:
 		case VIndexdmrPackage.INDEX_DOMAIN_MODEL_REFERENCE__TARGET_DMR:
 			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
 			return;
@@ -210,6 +239,16 @@
 
 		newChildDescriptors.add
 			(createChildParameter
+			(VIndexdmrPackage.Literals.INDEX_DOMAIN_MODEL_REFERENCE__PREFIX_DMR,
+				VIndexdmrFactory.eINSTANCE.createIndexDomainModelReference()));
+
+		newChildDescriptors.add
+			(createChildParameter
+			(VIndexdmrPackage.Literals.INDEX_DOMAIN_MODEL_REFERENCE__PREFIX_DMR,
+				VViewFactory.eINSTANCE.createFeaturePathDomainModelReference()));
+
+		newChildDescriptors.add
+			(createChildParameter
 			(VIndexdmrPackage.Literals.INDEX_DOMAIN_MODEL_REFERENCE__TARGET_DMR,
 				VIndexdmrFactory.eINSTANCE.createIndexDomainModelReference()));
 
@@ -219,4 +258,29 @@
 				VViewFactory.eINSTANCE.createFeaturePathDomainModelReference()));
 	}
 
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection)
+	{
+		final Object childFeature = feature;
+		final Object childObject = child;
+
+		final boolean qualify =
+			childFeature == VIndexdmrPackage.Literals.INDEX_DOMAIN_MODEL_REFERENCE__PREFIX_DMR ||
+				childFeature == VIndexdmrPackage.Literals.INDEX_DOMAIN_MODEL_REFERENCE__TARGET_DMR;
+
+		if (qualify)
+		{
+			return getString("_UI_CreateChild_text2", //$NON-NLS-1$
+				new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.model/.gitignore b/bundles/org.eclipse.emf.ecp.view.indexdmr.model/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.indexdmr.model/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.model/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.indexdmr.model/.settings/.api_filters
new file mode 100644
index 0000000..e7e4269
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.indexdmr.model/.settings/.api_filters
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<component id="org.eclipse.emf.ecp.view.indexdmr.model" version="2">
+    <resource path="META-INF/MANIFEST.MF">
+        <filter comment="SPI Change in 1.6" id="923795461">
+            <message_arguments>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.indexdmr.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.indexdmr.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.indexdmr.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/indexdmr/model/VIndexDomainModelReference.java" type="org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexDomainModelReference">
+        <filter comment="SPI Changes for 1.6" id="403804204">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexDomainModelReference"/>
+                <message_argument value="getPrefixDMR()"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Changes for 1.6" id="403804204">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexDomainModelReference"/>
+                <message_argument value="setPrefixDMR(VDomainModelReference)"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/indexdmr/model/VIndexdmrPackage.java" type="org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexdmrPackage">
+        <filter comment="SPI Changes for 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexdmrPackage"/>
+                <message_argument value="INDEX_DOMAIN_MODEL_REFERENCE_FEATURE_COUNT"/>
+                <message_argument value="5"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Changes for 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexdmrPackage"/>
+                <message_argument value="INDEX_DOMAIN_MODEL_REFERENCE__TARGET_DMR"/>
+                <message_argument value="3"/>
+            </message_arguments>
+        </filter>
+        <filter id="403767336">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexdmrPackage"/>
+                <message_argument value="INDEX_DOMAIN_MODEL_REFERENCE__PREFIX_DMR"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Changes for 1.6" id="403804204">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexdmrPackage"/>
+                <message_argument value="getIndexDomainModelReference_PrefixDMR()"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/indexdmr/model/VIndexdmrPackage.java" type="org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexdmrPackage$Literals">
+        <filter comment="SPI Changes for 1.6" id="403767336">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexdmrPackage.Literals"/>
+                <message_argument value="INDEX_DOMAIN_MODEL_REFERENCE__PREFIX_DMR"/>
+            </message_arguments>
+        </filter>
+    </resource>
+</component>
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 988ea12..88d5019 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,15 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.indexdmr.model;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.ecp.view.spi.indexdmr.model;version="1
- .5.1",org.eclipse.emf.ecp.view.spi.indexdmr.model.impl;version="1.5.1
- ";x-internal:=true,org.eclipse.emf.ecp.view.spi.indexdmr.model.util;v
- ersion="1.5.1"
+Export-Package: org.eclipse.emf.ecp.view.spi.indexdmr.model;version="1.6.0",
+ org.eclipse.emf.ecp.view.spi.indexdmr.model.impl;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.indexdmr.model.util;version="1.6.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.5.0,2.0.0)";visibility:=reexport
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.model/model/indexdmr.ecore b/bundles/org.eclipse.emf.ecp.view.indexdmr.model/model/indexdmr.ecore
index da07bf3..2d4235a 100644
--- a/bundles/org.eclipse.emf.ecp.view.indexdmr.model/model/indexdmr.ecore
+++ b/bundles/org.eclipse.emf.ecp.view.indexdmr.model/model/indexdmr.ecore
@@ -6,9 +6,12 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
       <details key="constraints" value="resolveable"/>
     </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="targetDMR" lowerBound="1"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="prefixDMR" lowerBound="1"
         eType="ecore:EClass ../../org.eclipse.emf.ecp.view.model/model/view.ecore#//DomainModelReference"
         containment="true"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="index" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="targetDMR" lowerBound="1"
+        eType="ecore:EClass ../../org.eclipse.emf.ecp.view.model/model/view.ecore#//DomainModelReference"
+        containment="true"/>
   </eClassifiers>
 </ecore:EPackage>
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.model/model/indexdmr.genmodel b/bundles/org.eclipse.emf.ecp.view.indexdmr.model/model/indexdmr.genmodel
index d5ac925..81ff06d 100644
--- a/bundles/org.eclipse.emf.ecp.view.indexdmr.model/model/indexdmr.genmodel
+++ b/bundles/org.eclipse.emf.ecp.view.indexdmr.model/model/indexdmr.genmodel
@@ -14,8 +14,9 @@
       testsPackageSuffix="model.tests" extensibleProviderFactory="true" childCreationExtenders="true"
       ecorePackage="indexdmr.ecore#/">
     <genClasses ecoreClass="indexdmr.ecore#//IndexDomainModelReference">
-      <genFeatures children="true" createChild="true" ecoreFeature="ecore:EReference indexdmr.ecore#//IndexDomainModelReference/targetDMR"/>
+      <genFeatures children="true" createChild="true" ecoreFeature="ecore:EReference indexdmr.ecore#//IndexDomainModelReference/prefixDMR"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute indexdmr.ecore#//IndexDomainModelReference/index"/>
+      <genFeatures children="true" createChild="true" ecoreFeature="ecore:EReference indexdmr.ecore#//IndexDomainModelReference/targetDMR"/>
     </genClasses>
   </genPackages>
 </genmodel:GenModel>
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.model/plugin.properties b/bundles/org.eclipse.emf.ecp.view.indexdmr.model/plugin.properties
index 78c238e..8c7d54f 100644
--- a/bundles/org.eclipse.emf.ecp.view.indexdmr.model/plugin.properties
+++ b/bundles/org.eclipse.emf.ecp.view.indexdmr.model/plugin.properties
@@ -9,4 +9,4 @@
 # Eugen Neufeld - initial API and implementation
 
 pluginName = Indexdmr Model
-providerName = www.example.org
+providerName = Eclipse Modeling Project
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 c4d977c..2f79c5c 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.5.1-SNAPSHOT</version>
+    <version>1.6.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.model/src/org/eclipse/emf/ecp/view/spi/indexdmr/model/VIndexDomainModelReference.java b/bundles/org.eclipse.emf.ecp.view.indexdmr.model/src/org/eclipse/emf/ecp/view/spi/indexdmr/model/VIndexDomainModelReference.java
index f1828db..f06a216 100644
--- a/bundles/org.eclipse.emf.ecp.view.indexdmr.model/src/org/eclipse/emf/ecp/view/spi/indexdmr/model/VIndexDomainModelReference.java
+++ b/bundles/org.eclipse.emf.ecp.view.indexdmr.model/src/org/eclipse/emf/ecp/view/spi/indexdmr/model/VIndexDomainModelReference.java
@@ -22,8 +22,9 @@
  * <p>
  * The following features are supported:
  * <ul>
- * <li>{@link org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexDomainModelReference#getTargetDMR <em>Target DMR</em>}</li>
+ * <li>{@link org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexDomainModelReference#getPrefixDMR <em>Prefix DMR</em>}</li>
  * <li>{@link org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexDomainModelReference#getIndex <em>Index</em>}</li>
+ * <li>{@link org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexDomainModelReference#getTargetDMR <em>Target DMR</em>}</li>
  * </ul>
  * </p>
  *
@@ -34,6 +35,40 @@
 public interface VIndexDomainModelReference extends VFeaturePathDomainModelReference
 {
 	/**
+	 * Returns the value of the '<em><b>Prefix DMR</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Prefix DMR</em>' containment reference isn't clear, there really should be more of a
+	 * description here...
+	 * </p>
+	 * 
+	 * @since 1.6
+	 *        <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Prefix DMR</em>' containment reference.
+	 * @see #setPrefixDMR(VDomainModelReference)
+	 * @see org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexdmrPackage#getIndexDomainModelReference_PrefixDMR()
+	 * @model containment="true" required="true"
+	 * @generated
+	 */
+	VDomainModelReference getPrefixDMR();
+
+	/**
+	 * Sets the value of the '
+	 * {@link org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexDomainModelReference#getPrefixDMR <em>Prefix DMR</em>}'
+	 * containment reference.
+	 * <!-- begin-user-doc -->
+	 * 
+	 * @since 1.6
+	 *        <!-- end-user-doc -->
+	 *
+	 * @param value the new value of the '<em>Prefix DMR</em>' containment reference.
+	 * @see #getPrefixDMR()
+	 * @generated
+	 */
+	void setPrefixDMR(VDomainModelReference value);
+
+	/**
 	 * Returns the value of the '<em><b>Target DMR</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <p>
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.model/src/org/eclipse/emf/ecp/view/spi/indexdmr/model/VIndexdmrPackage.java b/bundles/org.eclipse.emf.ecp.view.indexdmr.model/src/org/eclipse/emf/ecp/view/spi/indexdmr/model/VIndexdmrPackage.java
index 87b429a..c76624f 100644
--- a/bundles/org.eclipse.emf.ecp.view.indexdmr.model/src/org/eclipse/emf/ecp/view/spi/indexdmr/model/VIndexdmrPackage.java
+++ b/bundles/org.eclipse.emf.ecp.view.indexdmr.model/src/org/eclipse/emf/ecp/view/spi/indexdmr/model/VIndexdmrPackage.java
@@ -115,14 +115,16 @@
 	int INDEX_DOMAIN_MODEL_REFERENCE__DOMAIN_MODEL_EREFERENCE_PATH = VViewPackage.FEATURE_PATH_DOMAIN_MODEL_REFERENCE__DOMAIN_MODEL_EREFERENCE_PATH;
 
 	/**
-	 * The feature id for the '<em><b>Target DMR</b></em>' containment reference.
+	 * The feature id for the '<em><b>Prefix DMR</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 *
+	 * @since 1.6
+	 *        <!-- end-user-doc -->
 	 *
 	 * @generated
 	 * @ordered
 	 */
-	int INDEX_DOMAIN_MODEL_REFERENCE__TARGET_DMR = VViewPackage.FEATURE_PATH_DOMAIN_MODEL_REFERENCE_FEATURE_COUNT + 0;
+	int INDEX_DOMAIN_MODEL_REFERENCE__PREFIX_DMR = VViewPackage.FEATURE_PATH_DOMAIN_MODEL_REFERENCE_FEATURE_COUNT + 0;
 
 	/**
 	 * The feature id for the '<em><b>Index</b></em>' attribute.
@@ -135,6 +137,16 @@
 	int INDEX_DOMAIN_MODEL_REFERENCE__INDEX = VViewPackage.FEATURE_PATH_DOMAIN_MODEL_REFERENCE_FEATURE_COUNT + 1;
 
 	/**
+	 * The feature id for the '<em><b>Target DMR</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_DOMAIN_MODEL_REFERENCE__TARGET_DMR = VViewPackage.FEATURE_PATH_DOMAIN_MODEL_REFERENCE_FEATURE_COUNT + 2;
+
+	/**
 	 * The number of structural features of the '<em>Index Domain Model Reference</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -142,7 +154,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INDEX_DOMAIN_MODEL_REFERENCE_FEATURE_COUNT = VViewPackage.FEATURE_PATH_DOMAIN_MODEL_REFERENCE_FEATURE_COUNT + 2;
+	int INDEX_DOMAIN_MODEL_REFERENCE_FEATURE_COUNT = VViewPackage.FEATURE_PATH_DOMAIN_MODEL_REFERENCE_FEATURE_COUNT + 3;
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexDomainModelReference
@@ -158,6 +170,21 @@
 
 	/**
 	 * Returns the meta object for the containment reference '
+	 * {@link org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexDomainModelReference#getPrefixDMR <em>Prefix DMR</em>}'.
+	 * <!-- begin-user-doc -->
+	 * 
+	 * @since 1.6
+	 *        <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the containment reference '<em>Prefix DMR</em>'.
+	 * @see org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexDomainModelReference#getPrefixDMR()
+	 * @see #getIndexDomainModelReference()
+	 * @generated
+	 */
+	EReference getIndexDomainModelReference_PrefixDMR();
+
+	/**
+	 * Returns the meta object for the containment reference '
 	 * {@link org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexDomainModelReference#getTargetDMR <em>Target DMR</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -221,6 +248,17 @@
 		EClass INDEX_DOMAIN_MODEL_REFERENCE = eINSTANCE.getIndexDomainModelReference();
 
 		/**
+		 * The meta object literal for the '<em><b>Prefix DMR</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * 
+		 * @since 1.6
+		 *        <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EReference INDEX_DOMAIN_MODEL_REFERENCE__PREFIX_DMR = eINSTANCE.getIndexDomainModelReference_PrefixDMR();
+
+		/**
 		 * The meta object literal for the '<em><b>Target DMR</b></em>' containment reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.model/src/org/eclipse/emf/ecp/view/spi/indexdmr/model/impl/VIndexDomainModelReferenceImpl.java b/bundles/org.eclipse.emf.ecp.view.indexdmr.model/src/org/eclipse/emf/ecp/view/spi/indexdmr/model/impl/VIndexDomainModelReferenceImpl.java
index e78cff7..7ffbf54 100644
--- a/bundles/org.eclipse.emf.ecp.view.indexdmr.model/src/org/eclipse/emf/ecp/view/spi/indexdmr/model/impl/VIndexDomainModelReferenceImpl.java
+++ b/bundles/org.eclipse.emf.ecp.view.indexdmr.model/src/org/eclipse/emf/ecp/view/spi/indexdmr/model/impl/VIndexDomainModelReferenceImpl.java
@@ -38,9 +38,11 @@
  * <p>
  * The following features are implemented:
  * <ul>
- * <li>{@link org.eclipse.emf.ecp.view.spi.indexdmr.model.impl.VIndexDomainModelReferenceImpl#getTargetDMR <em>Target
+ * <li>{@link org.eclipse.emf.ecp.view.spi.indexdmr.model.impl.VIndexDomainModelReferenceImpl#getPrefixDMR <em>Prefix
  * DMR</em>}</li>
  * <li>{@link org.eclipse.emf.ecp.view.spi.indexdmr.model.impl.VIndexDomainModelReferenceImpl#getIndex <em>Index</em>}</li>
+ * <li>{@link org.eclipse.emf.ecp.view.spi.indexdmr.model.impl.VIndexDomainModelReferenceImpl#getTargetDMR <em>Target
+ * DMR</em>}</li>
  * </ul>
  * </p>
  *
@@ -50,15 +52,15 @@
 	VIndexDomainModelReference
 {
 	/**
-	 * The cached value of the '{@link #getTargetDMR() <em>Target DMR</em>}' containment reference.
+	 * The cached value of the '{@link #getPrefixDMR() <em>Prefix DMR</em>}' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 *
-	 * @see #getTargetDMR()
+	 * @see #getPrefixDMR()
 	 * @generated
 	 * @ordered
 	 */
-	protected VDomainModelReference targetDMR;
+	protected VDomainModelReference prefixDMR;
 
 	/**
 	 * The default value of the '{@link #getIndex() <em>Index</em>}' attribute.
@@ -83,6 +85,17 @@
 	protected int index = INDEX_EDEFAULT;
 
 	/**
+	 * The cached value of the '{@link #getTargetDMR() <em>Target DMR</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getTargetDMR()
+	 * @generated
+	 * @ordered
+	 */
+	protected VDomainModelReference targetDMR;
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 *
@@ -112,6 +125,72 @@
 	 * @generated
 	 */
 	@Override
+	public VDomainModelReference getPrefixDMR()
+	{
+		return prefixDMR;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public NotificationChain basicSetPrefixDMR(VDomainModelReference newPrefixDMR, NotificationChain msgs)
+	{
+		final VDomainModelReference oldPrefixDMR = prefixDMR;
+		prefixDMR = newPrefixDMR;
+		if (eNotificationRequired())
+		{
+			final ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+				VIndexdmrPackage.INDEX_DOMAIN_MODEL_REFERENCE__PREFIX_DMR, oldPrefixDMR, newPrefixDMR);
+			if (msgs == null) {
+				msgs = notification;
+			} else {
+				msgs.add(notification);
+			}
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setPrefixDMR(VDomainModelReference newPrefixDMR)
+	{
+		if (newPrefixDMR != prefixDMR)
+		{
+			NotificationChain msgs = null;
+			if (prefixDMR != null) {
+				msgs = ((InternalEObject) prefixDMR).eInverseRemove(this, EOPPOSITE_FEATURE_BASE
+					- VIndexdmrPackage.INDEX_DOMAIN_MODEL_REFERENCE__PREFIX_DMR, null, msgs);
+			}
+			if (newPrefixDMR != null) {
+				msgs = ((InternalEObject) newPrefixDMR).eInverseAdd(this, EOPPOSITE_FEATURE_BASE
+					- VIndexdmrPackage.INDEX_DOMAIN_MODEL_REFERENCE__PREFIX_DMR, null, msgs);
+			}
+			msgs = basicSetPrefixDMR(newPrefixDMR, msgs);
+			if (msgs != null) {
+				msgs.dispatch();
+			}
+		}
+		else if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET,
+				VIndexdmrPackage.INDEX_DOMAIN_MODEL_REFERENCE__PREFIX_DMR, newPrefixDMR, newPrefixDMR));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
 	public VDomainModelReference getTargetDMR()
 	{
 		return targetDMR;
@@ -211,6 +290,8 @@
 	{
 		switch (featureID)
 		{
+		case VIndexdmrPackage.INDEX_DOMAIN_MODEL_REFERENCE__PREFIX_DMR:
+			return basicSetPrefixDMR(null, msgs);
 		case VIndexdmrPackage.INDEX_DOMAIN_MODEL_REFERENCE__TARGET_DMR:
 			return basicSetTargetDMR(null, msgs);
 		}
@@ -228,10 +309,12 @@
 	{
 		switch (featureID)
 		{
-		case VIndexdmrPackage.INDEX_DOMAIN_MODEL_REFERENCE__TARGET_DMR:
-			return getTargetDMR();
+		case VIndexdmrPackage.INDEX_DOMAIN_MODEL_REFERENCE__PREFIX_DMR:
+			return getPrefixDMR();
 		case VIndexdmrPackage.INDEX_DOMAIN_MODEL_REFERENCE__INDEX:
 			return getIndex();
+		case VIndexdmrPackage.INDEX_DOMAIN_MODEL_REFERENCE__TARGET_DMR:
+			return getTargetDMR();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -247,12 +330,15 @@
 	{
 		switch (featureID)
 		{
-		case VIndexdmrPackage.INDEX_DOMAIN_MODEL_REFERENCE__TARGET_DMR:
-			setTargetDMR((VDomainModelReference) newValue);
+		case VIndexdmrPackage.INDEX_DOMAIN_MODEL_REFERENCE__PREFIX_DMR:
+			setPrefixDMR((VDomainModelReference) newValue);
 			return;
 		case VIndexdmrPackage.INDEX_DOMAIN_MODEL_REFERENCE__INDEX:
 			setIndex((Integer) newValue);
 			return;
+		case VIndexdmrPackage.INDEX_DOMAIN_MODEL_REFERENCE__TARGET_DMR:
+			setTargetDMR((VDomainModelReference) newValue);
+			return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -268,12 +354,15 @@
 	{
 		switch (featureID)
 		{
-		case VIndexdmrPackage.INDEX_DOMAIN_MODEL_REFERENCE__TARGET_DMR:
-			setTargetDMR((VDomainModelReference) null);
+		case VIndexdmrPackage.INDEX_DOMAIN_MODEL_REFERENCE__PREFIX_DMR:
+			setPrefixDMR((VDomainModelReference) null);
 			return;
 		case VIndexdmrPackage.INDEX_DOMAIN_MODEL_REFERENCE__INDEX:
 			setIndex(INDEX_EDEFAULT);
 			return;
+		case VIndexdmrPackage.INDEX_DOMAIN_MODEL_REFERENCE__TARGET_DMR:
+			setTargetDMR((VDomainModelReference) null);
+			return;
 		}
 		super.eUnset(featureID);
 	}
@@ -289,10 +378,12 @@
 	{
 		switch (featureID)
 		{
-		case VIndexdmrPackage.INDEX_DOMAIN_MODEL_REFERENCE__TARGET_DMR:
-			return targetDMR != null;
+		case VIndexdmrPackage.INDEX_DOMAIN_MODEL_REFERENCE__PREFIX_DMR:
+			return prefixDMR != null;
 		case VIndexdmrPackage.INDEX_DOMAIN_MODEL_REFERENCE__INDEX:
 			return index != INDEX_EDEFAULT;
+		case VIndexdmrPackage.INDEX_DOMAIN_MODEL_REFERENCE__TARGET_DMR:
+			return targetDMR != null;
 		}
 		return super.eIsSet(featureID);
 	}
@@ -330,14 +421,32 @@
 		if (getIndex() < 0) {
 			return false;
 		}
-		final boolean init = super.init(eObject);
-		final List<EObject> list = (List<EObject>) lastResolvedEObject.eGet(getDomainModelEFeature());
-		if (list.size() <= getIndex() && getIndex() != 0) {
+		boolean init;
+		if (getPrefixDMR() == null) {
+			init = super.init(eObject);
+		} else {
+			init = getPrefixDMR().init(eObject);
+		}
+
+		List<EObject> list;
+		if (getPrefixDMR() == null) {
+			list = (List<EObject>) lastResolvedEObject.eGet(getDomainModelEFeature());
+		} else {
+			list = (List<EObject>) getPrefixDMR().getIterator().next().get(true);
+		}
+
+		if (list.size() < getIndex() && getIndex() != 0) {
 			return false;
 		}
 		EObject foundChild = null;
-		if (list.size() == 0) {
-			final EReference eReference = (EReference) getDomainModelEFeature();
+		if (list.size() == getIndex()) {
+			EReference eReference;
+			if (getPrefixDMR() == null) {
+				eReference = (EReference) getDomainModelEFeature();
+			}
+			else {
+				eReference = (EReference) getPrefixDMR().getEStructuralFeatureIterator().next();
+			}
 			foundChild = EcoreUtil.create(eReference.getEReferenceType());
 			list.add(foundChild);
 		}
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.model/src/org/eclipse/emf/ecp/view/spi/indexdmr/model/impl/VIndexdmrPackageImpl.java b/bundles/org.eclipse.emf.ecp.view.indexdmr.model/src/org/eclipse/emf/ecp/view/spi/indexdmr/model/impl/VIndexdmrPackageImpl.java
index 53f27f1..301ee62 100644
--- a/bundles/org.eclipse.emf.ecp.view.indexdmr.model/src/org/eclipse/emf/ecp/view/spi/indexdmr/model/impl/VIndexdmrPackageImpl.java
+++ b/bundles/org.eclipse.emf.ecp.view.indexdmr.model/src/org/eclipse/emf/ecp/view/spi/indexdmr/model/impl/VIndexdmrPackageImpl.java
@@ -141,7 +141,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getIndexDomainModelReference_TargetDMR()
+	public EReference getIndexDomainModelReference_PrefixDMR()
 	{
 		return (EReference) indexDomainModelReferenceEClass.getEStructuralFeatures().get(0);
 	}
@@ -153,6 +153,18 @@
 	 * @generated
 	 */
 	@Override
+	public EReference getIndexDomainModelReference_TargetDMR()
+	{
+		return (EReference) indexDomainModelReferenceEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
 	public EAttribute getIndexDomainModelReference_Index()
 	{
 		return (EAttribute) indexDomainModelReferenceEClass.getEStructuralFeatures().get(1);
@@ -195,8 +207,9 @@
 
 		// Create classes and their features
 		indexDomainModelReferenceEClass = createEClass(INDEX_DOMAIN_MODEL_REFERENCE);
-		createEReference(indexDomainModelReferenceEClass, INDEX_DOMAIN_MODEL_REFERENCE__TARGET_DMR);
+		createEReference(indexDomainModelReferenceEClass, INDEX_DOMAIN_MODEL_REFERENCE__PREFIX_DMR);
 		createEAttribute(indexDomainModelReferenceEClass, INDEX_DOMAIN_MODEL_REFERENCE__INDEX);
+		createEReference(indexDomainModelReferenceEClass, INDEX_DOMAIN_MODEL_REFERENCE__TARGET_DMR);
 	}
 
 	/**
@@ -241,14 +254,19 @@
 		initEClass(indexDomainModelReferenceEClass, VIndexDomainModelReference.class,
 			"IndexDomainModelReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 		initEReference(
-			getIndexDomainModelReference_TargetDMR(),
+			getIndexDomainModelReference_PrefixDMR(),
 			theViewPackage.getDomainModelReference(),
 			null,
-			"targetDMR", null, 1, 1, VIndexDomainModelReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+			"prefixDMR", null, 1, 1, VIndexDomainModelReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 		initEAttribute(
 			getIndexDomainModelReference_Index(),
 			ecorePackage.getEInt(),
 			"index", null, 0, 1, VIndexDomainModelReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(
+			getIndexDomainModelReference_TargetDMR(),
+			theViewPackage.getDomainModelReference(),
+			null,
+			"targetDMR", null, 1, 1, VIndexDomainModelReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 
 		// Create resource
 		createResource(eNS_URI);
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.tooling/.gitignore b/bundles/org.eclipse.emf.ecp.view.indexdmr.tooling/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.indexdmr.tooling/.gitignore
@@ -0,0 +1 @@
+/bin/
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 109885e..5f500e4 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Index DMR Tooling
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.indexdmr.tooling;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
@@ -15,10 +15,19 @@
  org.eclipse.emf.ecp.ui;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.core.databinding;bundle-version="[1.3.0,2.0.0)",
  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.common.ui;bundle-version="[1.5.0,2.0.0)"
-Import-Package: org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.emf.ecp.common.ui;bundle-version="[1.5.0,2.0.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.5.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="1.6.0",
+ org.eclipse.jface.dialogs;version="0.0.0",
+ org.eclipse.jface.resource;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
  org.eclipse.jface.window;version="0.0.0",
  org.eclipse.jface.wizard;version="0.0.0",
  org.eclipse.swt.widgets;version="0.0.0"
-Export-Package: org.eclipse.emf.ecp.view.indexdmr.tooling;version="1.5
- .1";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.indexdmr.tooling;version="1.6
+ .0";x-internal:=true
+Bundle-Activator: org.eclipse.emf.ecp.view.indexdmr.tooling.Activator
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 853d318..f2eb290 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.5.1-SNAPSHOT</version>
+    <version>1.6.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/Activator.java b/bundles/org.eclipse.emf.ecp.view.indexdmr.tooling/src/org/eclipse/emf/ecp/view/indexdmr/tooling/Activator.java
new file mode 100644
index 0000000..f1193cd
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.indexdmr.tooling/src/org/eclipse/emf/ecp/view/indexdmr/tooling/Activator.java
@@ -0,0 +1,98 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.indexdmr.tooling;
+
+import org.eclipse.core.runtime.Plugin;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * The activator class controls the plug-in life cycle.
+ *
+ * @author Lucas Koehler
+ */
+public class Activator extends Plugin {
+
+	/** The plug-in ID. */
+	public static final String PLUGIN_ID = "org.eclipse.emf.ecp.view.indexdmr.tooling"; //$NON-NLS-1$
+
+	// The shared instance
+	private static Activator plugin;
+
+	private ServiceReference<ReportService> reportServiceReference;
+
+	/**
+	 * The constructor.
+	 */
+	public Activator() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+	 */
+	@Override
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+	 */
+	@Override
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * 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 = plugin.getBundle().getBundleContext()
+				.getServiceReference(ReportService.class);
+		}
+		return plugin.getBundle().getBundleContext().getService(reportServiceReference);
+	}
+
+	/**
+	 * Returns the {@link EMFFormsDatabinding} service.
+	 *
+	 * @return The {@link EMFFormsDatabinding}
+	 */
+	public EMFFormsDatabinding getEMFFormsDatabinding() {
+		final ServiceReference<EMFFormsDatabinding> serviceReference = plugin.getBundle().getBundleContext()
+			.getServiceReference(EMFFormsDatabinding.class);
+
+		final EMFFormsDatabinding service = plugin.getBundle().getBundleContext()
+			.getService(serviceReference);
+		plugin.getBundle().getBundleContext().ungetService(serviceReference);
+
+		return service;
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.tooling/src/org/eclipse/emf/ecp/view/indexdmr/tooling/FeaturePathDMRReferenceTester.java b/bundles/org.eclipse.emf.ecp.view.indexdmr.tooling/src/org/eclipse/emf/ecp/view/indexdmr/tooling/FeaturePathDMRReferenceTester.java
index 29049b2..e6cdd1f 100644
--- a/bundles/org.eclipse.emf.ecp.view.indexdmr.tooling/src/org/eclipse/emf/ecp/view/indexdmr/tooling/FeaturePathDMRReferenceTester.java
+++ b/bundles/org.eclipse.emf.ecp.view.indexdmr.tooling/src/org/eclipse/emf/ecp/view/indexdmr/tooling/FeaturePathDMRReferenceTester.java
@@ -11,16 +11,19 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.indexdmr.tooling;
 
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+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.indexdmr.model.VIndexDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexdmrPackage;
 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.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 
 /**
- * A Tester for the FeaturePathControl which is added as a child of a {@link VIndexDomainModelReference}.
+ * A Tester for the FeaturePathControl which is added as a child of a
+ * {@link org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexDomainModelReference VIndexDomainModelReference}.
  *
  * @author Eugen Neufeld
  *
@@ -34,13 +37,17 @@
 		if (!VControl.class.isInstance(vElement)) {
 			return NOT_APPLICABLE;
 		}
-
 		final VControl control = (VControl) vElement;
-		final Setting setting = control.getDomainModelReference().getIterator()
-			.next();
-		if (VIndexDomainModelReference.class.isInstance(setting.getEObject())
-			&& VIndexdmrPackage.eINSTANCE.getIndexDomainModelReference_TargetDMR() == setting
-				.getEStructuralFeature()) {
+		IValueProperty valueProperty;
+		try {
+			valueProperty = Activator.getDefault().getEMFFormsDatabinding()
+				.getValueProperty(control.getDomainModelReference(), viewModelContext.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+			return NOT_APPLICABLE;
+		}
+		final EStructuralFeature feature = (EStructuralFeature) valueProperty.getValueType();
+		if (VIndexdmrPackage.eINSTANCE.getIndexDomainModelReference_TargetDMR() == feature) {
 			return 6;
 		}
 
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 f0bf17e..f97e4b1 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
@@ -14,19 +14,26 @@
 import java.util.Collection;
 import java.util.HashSet;
 
+import org.eclipse.core.databinding.observable.IObserving;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
 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.Setting;
+import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecp.common.spi.EMFUtils;
 import org.eclipse.emf.ecp.internal.ui.Messages;
 import org.eclipse.emf.ecp.spi.common.ui.CompositeFactory;
 import org.eclipse.emf.ecp.spi.common.ui.composites.SelectionComposite;
 import org.eclipse.emf.ecp.view.internal.editor.controls.EditableEReferenceLabelControlSWTRenderer;
 import org.eclipse.emf.ecp.view.internal.editor.handler.CreateDomainModelReferenceWizard;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexDomainModelReference;
+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.VViewPackage;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
 import org.eclipse.jface.viewers.TreeViewer;
 import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.widgets.Shell;
@@ -42,11 +49,31 @@
 public class TargetDMRControlSWTRenderer extends
 	EditableEReferenceLabelControlSWTRenderer {
 
+	/**
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param factory the {@link ReportService}
+	 */
+	public TargetDMRControlSWTRenderer(VControl vElement, ViewModelContext viewContext, ReportService factory) {
+		super(vElement, viewContext, factory);
+	}
+
 	@Override
 	protected void linkValue(Shell shell) {
-		final Setting setting = getVElement().getDomainModelReference().getIterator().next();
+		IObservableValue observableValue;
+		try {
+			observableValue = Activator.getDefault().getEMFFormsDatabinding()
+				.getObservableValue(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			showLinkValueFailedMessageDialog(shell, ex);
+			return;
+		}
+		final EObject eObject = (EObject) ((IObserving) observableValue).getObserved();
+		final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+		observableValue.dispose();
+
 		final VIndexDomainModelReference mappingDomainModelReference = VIndexDomainModelReference.class
-			.cast(setting.getEObject());
+			.cast(eObject);
 
 		final EClass eclass = EReference.class.cast(mappingDomainModelReference.getDomainModelEFeature())
 			.getEReferenceType();
@@ -55,11 +82,11 @@
 			.getDomainModelReference());
 
 		final CreateDomainModelReferenceWizard wizard = new CreateDomainModelReferenceWizard(
-			setting, getEditingDomain(setting), eclass, "New Reference Element", //$NON-NLS-1$
+			eObject, structuralFeature, getEditingDomain(eObject), eclass, "New Reference Element", //$NON-NLS-1$
 			Messages.NewModelElementWizard_WizardTitle_AddModelElement,
 			Messages.NewModelElementWizard_PageTitle_AddModelElement,
 			Messages.NewModelElementWizard_PageDescription_AddModelElement,
-			(VDomainModelReference) setting.get(true));
+			(VDomainModelReference) eObject.eGet(structuralFeature, true));
 
 		final SelectionComposite<TreeViewer> helper = CompositeFactory.getSelectModelClassComposite(
 			new HashSet<EPackage>(),
diff --git a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model.edit/.gitignore b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model.edit/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model.edit/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model.edit/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model.edit/.settings/.api_filters
index 46f2840..92c1688 100644
--- a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model.edit/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model.edit/.settings/.api_filters
@@ -1,10 +1,34 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.emf.ecp.view.keyattributedmr.model.edit" version="2">
     <resource path="META-INF/MANIFEST.MF">
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model.edit"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.keyattributedmr.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.keyattributedmr.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.keyattributedmr.model.edit_1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
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 2b6f3d6..f464299 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,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.keyattributedmr.model.edit;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.spi.keyattributedmr.model.provider.KeyattributedmrEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.view.spi.keyattributedmr.model.pro
- vider;version="1.5.1";x-internal:=true
+ vider;version="1.6.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,
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 f262adb..2b4d26e 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.5.1-SNAPSHOT</version>
+    <version>1.6.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model/.gitignore b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model/.settings/.api_filters
index ef1ae2e..8a17323 100644
--- a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model/.settings/.api_filters
@@ -1,10 +1,34 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.emf.ecp.view.keyattributedmr.model" version="2">
     <resource path="META-INF/MANIFEST.MF">
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.keyattributedmr.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.keyattributedmr.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.keyattributedmr.model_1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
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 bd8542d..7ce1975 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,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.keyattributedmr.model;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.view.spi.keyattributedmr.model;ver
- sion="1.5.1",org.eclipse.emf.ecp.view.spi.keyattributedmr.model.impl;
- version="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.spi.keyattr
- ibutedmr.model.util;version="1.5.1"
+ sion="1.6.0",org.eclipse.emf.ecp.view.spi.keyattributedmr.model.impl;
+ version="1.6.0";x-internal:=true,org.eclipse.emf.ecp.view.spi.keyattr
+ ibutedmr.model.util;version="1.6.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.5.0,2.0.0)";visibility:=reexport
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 94da972..f18f054 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.5.1-SNAPSHOT</version>
+    <version>1.6.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/.gitignore b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/.gitignore
@@ -0,0 +1 @@
+/bin/
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 04dd5a9..5c42be2 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,7 +2,7 @@
 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.5.0,2.0.0)",
@@ -16,11 +16,20 @@
  org.eclipse.emf.ecp.ui.view;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.keyattributedmr.model;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.common.ui;bundle-version="[1.5.0,2.0.0)"
-Import-Package: org.eclipse.jface.dialogs;version="0.0.0",
+ org.eclipse.emf.ecp.common.ui;bundle-version="[1.5.0,2.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.emf.ecp.edit.swt;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="1.6.0",
+ org.eclipse.jface.dialogs;version="0.0.0",
+ org.eclipse.jface.resource;version="0.0.0",
  org.eclipse.jface.viewers;version="0.0.0",
  org.eclipse.jface.window;version="0.0.0",
  org.eclipse.jface.wizard;version="0.0.0",
  org.eclipse.swt.widgets;version="0.0.0"
 Export-Package: org.eclipse.emf.ecp.view.keyattributedmr.tooling;versi
- on="1.5.1";x-internal:=true
+ on="1.6.0";x-internal:=true
+Bundle-ActivationPolicy: lazy
+Bundle-Activator: org.eclipse.emf.ecp.view.keyattributedmr.tooling.Activator
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 e40493a..1db0e51 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.5.1-SNAPSHOT</version>
+    <version>1.6.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/Activator.java b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/src/org/eclipse/emf/ecp/view/keyattributedmr/tooling/Activator.java
new file mode 100644
index 0000000..584eafe
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/src/org/eclipse/emf/ecp/view/keyattributedmr/tooling/Activator.java
@@ -0,0 +1,98 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.keyattributedmr.tooling;
+
+import org.eclipse.core.runtime.Plugin;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * The activator class controls the plug-in life cycle.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class Activator extends Plugin {
+	/** The plug-in ID. */
+	public static final String PLUGIN_ID = "org.eclipse.emf.ecp.view.keyattributedmr.tooling"; //$NON-NLS-1$
+
+	// The shared instance
+	private static Activator plugin;
+
+	private ServiceReference<ReportService> reportServiceReference;
+
+	/**
+	 * The constructor.
+	 */
+	public Activator() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+	 */
+	@Override
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+	 */
+	@Override
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * 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 = plugin.getBundle().getBundleContext()
+				.getServiceReference(ReportService.class);
+		}
+		return plugin.getBundle().getBundleContext().getService(reportServiceReference);
+	}
+
+	/**
+	 * Returns the {@link EMFFormsDatabinding} service.
+	 *
+	 * @return The {@link EMFFormsDatabinding}
+	 */
+	public EMFFormsDatabinding getEMFFormsDatabinding() {
+		final ServiceReference<EMFFormsDatabinding> serviceReference = plugin.getBundle().getBundleContext()
+			.getServiceReference(EMFFormsDatabinding.class);
+
+		final EMFFormsDatabinding service = plugin.getBundle().getBundleContext()
+			.getService(serviceReference);
+		plugin.getBundle().getBundleContext().ungetService(serviceReference);
+
+		return service;
+	}
+}
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 2ec3888..9cbb0dc 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
@@ -14,19 +14,26 @@
 import java.util.Collection;
 import java.util.HashSet;
 
+import org.eclipse.core.databinding.observable.IObserving;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
 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.Setting;
+import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecp.common.spi.EMFUtils;
 import org.eclipse.emf.ecp.internal.ui.Messages;
 import org.eclipse.emf.ecp.spi.common.ui.CompositeFactory;
 import org.eclipse.emf.ecp.spi.common.ui.composites.SelectionComposite;
 import org.eclipse.emf.ecp.view.internal.editor.controls.EditableEReferenceLabelControlSWTRenderer;
 import org.eclipse.emf.ecp.view.internal.editor.handler.CreateDomainModelReferenceWizard;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.keyattributedmr.model.VKeyAttributeDomainModelReference;
+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.VViewPackage;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
 import org.eclipse.jface.viewers.TreeViewer;
 import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.widgets.Shell;
@@ -42,11 +49,32 @@
 public class FeaturePathDMRControlSWTRenderer extends
 	EditableEReferenceLabelControlSWTRenderer {
 
+	/**
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 */
+	public FeaturePathDMRControlSWTRenderer(VControl vElement, ViewModelContext viewContext, ReportService reportService) {
+		super(vElement, viewContext, reportService);
+		// TODO Auto-generated constructor stub
+	}
+
 	@Override
 	protected void linkValue(Shell shell) {
-		final Setting setting = getVElement().getDomainModelReference().getIterator().next();
+		IObservableValue observableValue;
+		try {
+			observableValue = Activator.getDefault().getEMFFormsDatabinding()
+				.getObservableValue(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			showLinkValueFailedMessageDialog(shell, ex);
+			return;
+		}
+		final EObject eObject = (EObject) ((IObserving) observableValue).getObserved();
+		final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+		observableValue.dispose();
+
 		final VKeyAttributeDomainModelReference mappingDomainModelReference = VKeyAttributeDomainModelReference.class
-			.cast(setting.getEObject());
+			.cast(eObject);
 
 		final EClass eclass = EReference.class.cast(mappingDomainModelReference.getDomainModelEFeature())
 			.getEReferenceType();
@@ -55,11 +83,11 @@
 			.getDomainModelReference());
 
 		final CreateDomainModelReferenceWizard wizard = new CreateDomainModelReferenceWizard(
-			setting, getEditingDomain(setting), eclass, "New Reference Element", //$NON-NLS-1$
+			eObject, structuralFeature, getEditingDomain(eObject), eclass, "New Reference Element", //$NON-NLS-1$
 			Messages.NewModelElementWizard_WizardTitle_AddModelElement,
 			Messages.NewModelElementWizard_PageTitle_AddModelElement,
 			Messages.NewModelElementWizard_PageDescription_AddModelElement,
-			(VDomainModelReference) setting.get(true));
+			(VDomainModelReference) eObject.eGet(structuralFeature, true));
 
 		final SelectionComposite<TreeViewer> helper = CompositeFactory.getSelectModelClassComposite(
 			new HashSet<EPackage>(),
diff --git a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/src/org/eclipse/emf/ecp/view/keyattributedmr/tooling/FeaturePathDMRReferenceTester.java b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/src/org/eclipse/emf/ecp/view/keyattributedmr/tooling/FeaturePathDMRReferenceTester.java
index 57a850e..c33be97 100644
--- a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/src/org/eclipse/emf/ecp/view/keyattributedmr/tooling/FeaturePathDMRReferenceTester.java
+++ b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/src/org/eclipse/emf/ecp/view/keyattributedmr/tooling/FeaturePathDMRReferenceTester.java
@@ -11,16 +11,20 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.keyattributedmr.tooling;
 
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+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.keyattributedmr.model.VKeyAttributeDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.keyattributedmr.model.VKeyattributedmrPackage;
 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.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 
 /**
- * A Tester for the FeaturePathControl which is added as a child of a {@link VKeyAttributeDomainModelReference}.
+ * A Tester for the FeaturePathControl which is added as a child of a
+ * {@link org.eclipse.emf.ecp.view.spi.keyattributedmr.model.VKeyAttributeDomainModelReference
+ * VKeyAttributeDomainModelReference}.
  *
  * @author Eugen Neufeld
  *
@@ -36,23 +40,20 @@
 		}
 
 		final VControl control = (VControl) vElement;
-		final Setting setting = control.getDomainModelReference().getIterator()
-			.next();
-		// if (VKeyAttributeDomainModelReference.class.isInstance(setting.getEObject()
-		// .eContainer())
-		// && VViewPackage.eINSTANCE
-		// .getFeaturePathDomainModelReference_DomainModelEFeature() == setting
-		// .getEStructuralFeature()) {
-		// return 6;
-		// }
-		if (VKeyAttributeDomainModelReference.class.isInstance(setting.getEObject())
-			&& VKeyattributedmrPackage.eINSTANCE.getKeyAttributeDomainModelReference_KeyDMR() == setting
-				.getEStructuralFeature()) {
+		IValueProperty valueProperty;
+		try {
+			valueProperty = Activator.getDefault().getEMFFormsDatabinding()
+				.getValueProperty(control.getDomainModelReference(), viewModelContext.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+			return NOT_APPLICABLE;
+		}
+		final EStructuralFeature feature = (EStructuralFeature) valueProperty.getValueType();
+
+		if (VKeyattributedmrPackage.eINSTANCE.getKeyAttributeDomainModelReference_KeyDMR() == feature) {
 			return 6;
 		}
-		if (VKeyAttributeDomainModelReference.class.isInstance(setting.getEObject())
-			&& VKeyattributedmrPackage.eINSTANCE.getKeyAttributeDomainModelReference_ValueDMR() == setting
-				.getEStructuralFeature()) {
+		if (VKeyattributedmrPackage.eINSTANCE.getKeyAttributeDomainModelReference_ValueDMR() == feature) {
 			return 6;
 		}
 
diff --git a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/src/org/eclipse/emf/ecp/view/keyattributedmr/tooling/KeyValueControlRenderer.java b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/src/org/eclipse/emf/ecp/view/keyattributedmr/tooling/KeyValueControlRenderer.java
index e839d4c..3b5c73a 100644
--- a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/src/org/eclipse/emf/ecp/view/keyattributedmr/tooling/KeyValueControlRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/src/org/eclipse/emf/ecp/view/keyattributedmr/tooling/KeyValueControlRenderer.java
@@ -14,14 +14,18 @@
 import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
 import org.eclipse.emf.ecp.view.internal.editor.controls.ExpectedValueControlRenderer;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.keyattributedmr.model.VKeyAttributeDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.keyattributedmr.model.VKeyattributedmrPackage;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
 import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
 import org.eclipse.emf.edit.command.SetCommand;
 import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
 import org.eclipse.emf.edit.domain.EditingDomain;
+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.DatabindingFailedReport;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.swt.widgets.Label;
 
@@ -32,11 +36,24 @@
 @SuppressWarnings("restriction")
 public class KeyValueControlRenderer extends ExpectedValueControlRenderer {
 
+	/**
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 */
+	public KeyValueControlRenderer(VControl vElement, ViewModelContext viewContext, ReportService reportService) {
+		super(vElement, viewContext, reportService);
+	}
+
 	@Override
 	protected void onSelectButton(Label control) {
-		final Setting setting = getSetting(getVElement());
-
-		final VKeyAttributeDomainModelReference condition = (VKeyAttributeDomainModelReference) setting.getEObject();
+		VKeyAttributeDomainModelReference condition;
+		try {
+			condition = (VKeyAttributeDomainModelReference) getObservedEObject();
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+			return;
+		}
 
 		if (!VFeaturePathDomainModelReference.class.isInstance(condition.getKeyDMR())) {
 			MessageDialog.openError(control.getShell(), "No Feature Path Domain Model Reference found", //$NON-NLS-1$
diff --git a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/src/org/eclipse/emf/ecp/view/keyattributedmr/tooling/KeyValueControlTester.java b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/src/org/eclipse/emf/ecp/view/keyattributedmr/tooling/KeyValueControlTester.java
index 5c945c3..50d0cd4 100644
--- a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/src/org/eclipse/emf/ecp/view/keyattributedmr/tooling/KeyValueControlTester.java
+++ b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/src/org/eclipse/emf/ecp/view/keyattributedmr/tooling/KeyValueControlTester.java
@@ -11,16 +11,20 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.keyattributedmr.tooling;
 
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+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.keyattributedmr.model.VKeyAttributeDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.keyattributedmr.model.VKeyattributedmrPackage;
 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.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 
 /**
- * A Tester for the KeyValue Control which is added as a child of a {@link VKeyAttributeDomainModelReference}.
+ * A Tester for the KeyValue Control which is added as a child of a
+ * {@link org.eclipse.emf.ecp.view.spi.keyattributedmr.model.VKeyAttributeDomainModelReference
+ * VKeyAttributeDomainModelReference}.
  *
  * @author Eugen Neufeld
  *
@@ -36,11 +40,17 @@
 		}
 
 		final VControl control = (VControl) vElement;
-		final Setting setting = control.getDomainModelReference().getIterator()
-			.next();
-		if (VKeyAttributeDomainModelReference.class.isInstance(setting.getEObject())
-			&& VKeyattributedmrPackage.eINSTANCE.getKeyAttributeDomainModelReference_KeyValue() == setting
-				.getEStructuralFeature()) {
+		IValueProperty valueProperty;
+		try {
+			valueProperty = Activator.getDefault().getEMFFormsDatabinding()
+				.getValueProperty(control.getDomainModelReference(), viewModelContext.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+			return NOT_APPLICABLE;
+		}
+		final EStructuralFeature feature = (EStructuralFeature) valueProperty.getValueType();
+
+		if (VKeyattributedmrPackage.eINSTANCE.getKeyAttributeDomainModelReference_KeyValue() == feature) {
 			return 6;
 		}
 
diff --git a/bundles/org.eclipse.emf.ecp.view.label.model.edit/.gitignore b/bundles/org.eclipse.emf.ecp.view.label.model.edit/.gitignore
index ae3c172..ff3e254 100644
--- a/bundles/org.eclipse.emf.ecp.view.label.model.edit/.gitignore
+++ b/bundles/org.eclipse.emf.ecp.view.label.model.edit/.gitignore
@@ -1 +1,2 @@
 /bin/
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.view.label.model.edit/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.label.model.edit/.settings/.api_filters
index e7995ca..c5c7b9a 100644
--- a/bundles/org.eclipse.emf.ecp.view.label.model.edit/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.label.model.edit/.settings/.api_filters
@@ -1,10 +1,34 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.emf.ecp.view.label.model.edit" version="2">
     <resource path="META-INF/MANIFEST.MF">
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model.edit"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.label.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.label.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.label.model.edit_1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
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 b8c18fa..c5fe6dc 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,14 +2,14 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: %pluginName

 Bundle-SymbolicName: org.eclipse.emf.ecp.view.label.model.edit;singleton:=true

-Bundle-Version: 1.5.1.qualifier

+Bundle-Version: 1.6.0.qualifier

 Bundle-ClassPath: .

 Bundle-Activator: org.eclipse.emf.ecp.view.spi.label.model.provider.LabelEditPlugin$Implementation

 Bundle-Vendor: %providerName

 Bundle-Localization: plugin

 Bundle-RequiredExecutionEnvironment: JavaSE-1.6

 Export-Package: org.eclipse.emf.ecp.view.spi.label.model.provider;vers

- ion="1.5.1"

+ ion="1.6.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,

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 2935f78..84da310 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.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.0-SNAPSHOT</version>

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

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.label.model.edit/src/org/eclipse/emf/ecp/view/spi/label/model/provider/LabelItemProvider.java b/bundles/org.eclipse.emf.ecp.view.label.model.edit/src/org/eclipse/emf/ecp/view/spi/label/model/provider/LabelItemProvider.java
index 91c6ce1..b09afd1 100644
--- a/bundles/org.eclipse.emf.ecp.view.label.model.edit/src/org/eclipse/emf/ecp/view/spi/label/model/provider/LabelItemProvider.java
+++ b/bundles/org.eclipse.emf.ecp.view.label.model.edit/src/org/eclipse/emf/ecp/view/spi/label/model/provider/LabelItemProvider.java
@@ -18,6 +18,8 @@
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.ecp.view.spi.label.model.VLabel;
 import org.eclipse.emf.ecp.view.spi.label.model.VLabelPackage;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emf.ecp.view.spi.model.VElementUtil;
 import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
 import org.eclipse.emf.ecp.view.spi.model.provider.ContainedElementItemProvider;
 import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
@@ -136,12 +138,15 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 *
-	 * @generated
+	 * @generated NOT
 	 */
 	@Override
 	public String getText(Object object)
 	{
-		final String label = ((VLabel) object).getName();
+		String label = ((VLabel) object).getName();
+		if (label == null) {
+			label = VElementUtil.getCleanName(VElement.class.cast(object));
+		}
 		return label == null || label.length() == 0 ?
 			getString("_UI_Label_type") : //$NON-NLS-1$
 			getString("_UI_Label_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
diff --git a/bundles/org.eclipse.emf.ecp.view.label.model/.gitignore b/bundles/org.eclipse.emf.ecp.view.label.model/.gitignore
index ae3c172..ff3e254 100644
--- a/bundles/org.eclipse.emf.ecp.view.label.model/.gitignore
+++ b/bundles/org.eclipse.emf.ecp.view.label.model/.gitignore
@@ -1 +1,2 @@
 /bin/
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.view.label.model/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.label.model/.settings/.api_filters
index 965d9b0..2e39a33 100644
--- a/bundles/org.eclipse.emf.ecp.view.label.model/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.label.model/.settings/.api_filters
@@ -1,10 +1,34 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.emf.ecp.view.label.model" version="2">
     <resource path="META-INF/MANIFEST.MF">
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.label.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.label.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.label.model_1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
@@ -30,6 +54,62 @@
                 <message_argument value="7"/>
             </message_arguments>
         </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.label.model.VLabelPackage"/>
+                <message_argument value="LABEL_FEATURE_COUNT"/>
+                <message_argument value="8"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.label.model.VLabelPackage"/>
+                <message_argument value="LABEL__ATTACHMENTS"/>
+                <message_argument value="5"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.label.model.VLabelPackage"/>
+                <message_argument value="LABEL__DIAGNOSTIC"/>
+                <message_argument value="4"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.label.model.VLabelPackage"/>
+                <message_argument value="LABEL__DOMAIN_MODEL_REFERENCE"/>
+                <message_argument value="7"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.label.model.VLabelPackage"/>
+                <message_argument value="LABEL__ENABLED"/>
+                <message_argument value="2"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.label.model.VLabelPackage"/>
+                <message_argument value="LABEL__READONLY"/>
+                <message_argument value="3"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.label.model.VLabelPackage"/>
+                <message_argument value="LABEL__STYLE"/>
+                <message_argument value="6"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.label.model.VLabelPackage"/>
+                <message_argument value="LABEL__VISIBLE"/>
+                <message_argument value="1"/>
+            </message_arguments>
+        </filter>
         <filter comment="spi" id="403767336">
             <message_arguments>
                 <message_argument value="org.eclipse.emf.ecp.view.spi.label.model.VLabelPackage"/>
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 d67c33f..8d5ef04 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,14 +2,14 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: %pluginName

 Bundle-SymbolicName: org.eclipse.emf.ecp.view.label.model;singleton:=true

-Bundle-Version: 1.5.1.qualifier

+Bundle-Version: 1.6.0.qualifier

 Bundle-ClassPath: .

 Bundle-Vendor: %providerName

 Bundle-Localization: plugin

 Bundle-RequiredExecutionEnvironment: JavaSE-1.6

-Export-Package: org.eclipse.emf.ecp.view.spi.label.model;version="1.5.

- 1",org.eclipse.emf.ecp.view.spi.label.model.impl;version="1.5.1",org.

- eclipse.emf.ecp.view.spi.label.model.util;version="1.5.1"

+Export-Package: org.eclipse.emf.ecp.view.spi.label.model;version="1.6.

+ 0",org.eclipse.emf.ecp.view.spi.label.model.impl;version="1.6.0",org.

+ eclipse.emf.ecp.view.spi.label.model.util;version="1.6.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.5.0,2.0.0)";visibility:=reexport

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 5c490c4..8ff865c 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.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.0-SNAPSHOT</version>

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

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.label.ui.rap/.project b/bundles/org.eclipse.emf.ecp.view.label.ui.rap/.project
index c3afdec..f2a4f21 100644
--- a/bundles/org.eclipse.emf.ecp.view.label.ui.rap/.project
+++ b/bundles/org.eclipse.emf.ecp.view.label.ui.rap/.project
@@ -25,6 +25,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.label.ui.rap/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.label.ui.rap/META-INF/MANIFEST.MF
index 2f7c648..1d4f073 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
@@ -1,17 +1,22 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Label Rap
-Bundle-SymbolicName: org.eclipse.emf.ecp.view.label.rap;singleton:=true
-Bundle-Version: 1.5.1.qualifier
-Bundle-Activator: org.eclipse.emf.ecp.view.label.rap.Activator
+Bundle-SymbolicName: org.eclipse.emf.ecp.view.label.rap
+Bundle-Version: 1.6.0.qualifier
 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.5.0,2.0.0)",
  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.view.label.model;bundle-version="[1.5.0,2.0.0)"
+ org.eclipse.emf.ecp.view.label.model;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.6.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
 Bundle-Vendor: Eclipse Modeling Project
-Import-Package: org.eclipse.swt;version="0.0.0",
+Import-Package: org.eclipse.emfforms.spi.common.report;version="1.6.0",
+ org.eclipse.emfforms.spi.core.services.databinding;version="1.6.0",
+ org.eclipse.emfforms.spi.swt.core;version="1.6.0",
+ org.eclipse.swt;version="0.0.0",
  org.eclipse.swt.widgets;version="0.0.0"
-Export-Package: org.eclipse.emf.ecp.view.label.rap;version="1.5.1";x-i
+Export-Package: org.eclipse.emf.ecp.view.label.rap;version="1.6.0";x-i
  nternal:=true
+Service-Component: OSGI-INF/labelRAPRendererService.xml
diff --git a/bundles/org.eclipse.emf.ecp.view.label.ui.rap/OSGI-INF/labelRAPRendererService.xml b/bundles/org.eclipse.emf.ecp.view.label.ui.rap/OSGI-INF/labelRAPRendererService.xml
new file mode 100644
index 0000000..2bc6a30
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.label.ui.rap/OSGI-INF/labelRAPRendererService.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emf.ecp.view.label.rap.rendererService">
+   <implementation class="org.eclipse.emf.ecp.view.label.rap.LabelRAPRendererService"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService"/>
+   </service>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.label.ui.rap/build.properties b/bundles/org.eclipse.emf.ecp.view.label.ui.rap/build.properties
index e9863e2..6210e84 100644
--- a/bundles/org.eclipse.emf.ecp.view.label.ui.rap/build.properties
+++ b/bundles/org.eclipse.emf.ecp.view.label.ui.rap/build.properties
@@ -1,5 +1,5 @@
-source.. = src/
 output.. = bin/
 bin.includes = META-INF/,\
                .,\
-               plugin.xml
+               OSGI-INF/
+source.. = src/
diff --git a/bundles/org.eclipse.emf.ecp.view.label.ui.rap/plugin.xml b/bundles/org.eclipse.emf.ecp.view.label.ui.rap/plugin.xml
deleted file mode 100644
index ef65b3d..0000000
--- a/bundles/org.eclipse.emf.ecp.view.label.ui.rap/plugin.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         point="org.eclipse.emf.ecp.ui.view.swt.renderers">
-      <renderer
-            renderer="org.eclipse.emf.ecp.view.label.rap.LabelRapRenderer">
-         <dynamicTest
-               testClass="org.eclipse.emf.ecp.view.label.rap.LabelRapRendererTester">
-         </dynamicTest>
-      </renderer>
-   </extension>
-
-</plugin>
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 ae365f0..955bd0c 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.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.0-SNAPSHOT</version>

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

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.label.ui.rap/src/org/eclipse/emf/ecp/view/label/rap/Activator.java b/bundles/org.eclipse.emf.ecp.view.label.ui.rap/src/org/eclipse/emf/ecp/view/label/rap/Activator.java
deleted file mode 100644
index 015ca04..0000000
--- a/bundles/org.eclipse.emf.ecp.view.label.ui.rap/src/org/eclipse/emf/ecp/view/label/rap/Activator.java
+++ /dev/null
@@ -1,63 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Alexandra Buzila - initial API and implementation
- */
-package org.eclipse.emf.ecp.view.label.rap;
-
-import org.eclipse.core.runtime.Plugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class Activator extends Plugin {
-
-	// The plug-in ID
-	public static final String PLUGIN_ID = "org.eclipse.emf.ecp.view.label.rap"; //$NON-NLS-1$
-
-	// The shared instance
-	private static Activator plugin;
-
-	/**
-	 * The constructor
-	 */
-	public Activator() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-	 */
-	@Override
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		plugin = this;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
-	 */
-	@Override
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		super.stop(context);
-	}
-
-	/**
-	 * Returns the shared instance
-	 *
-	 * @return the shared instance
-	 */
-	public static Activator getDefault() {
-		return plugin;
-	}
-
-}
diff --git a/bundles/org.eclipse.emf.ecp.view.label.ui.rap/src/org/eclipse/emf/ecp/view/label/rap/LabelRAPRendererService.java b/bundles/org.eclipse.emf.ecp.view.label.ui.rap/src/org/eclipse/emf/ecp/view/label/rap/LabelRAPRendererService.java
new file mode 100644
index 0000000..2e8036c
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.label.ui.rap/src/org/eclipse/emf/ecp/view/label/rap/LabelRAPRendererService.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.label.rap;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.label.model.VLabel;
+import org.eclipse.emf.ecp.view.spi.label.model.VLabelPackage;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+import org.eclipse.swt.widgets.Display;
+import org.osgi.framework.FrameworkUtil;
+
+/**
+ * GroupSWTRendererService which provides the GroupSWTRenderer.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class LabelRAPRendererService implements EMFFormsDIRendererService<VLabel> {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (!VLabelPackage.eINSTANCE.getLabel().isInstance(vElement)) {
+			return NOT_APPLICABLE;
+		}
+		if (!FrameworkUtil.getBundle(Display.class).getSymbolicName()
+			.contains(".rwt")) { //$NON-NLS-1$
+			return NOT_APPLICABLE;
+		}
+
+		return 3;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#getRendererClass()
+	 */
+	@Override
+	public Class<? extends AbstractSWTRenderer<VLabel>> getRendererClass() {
+		return LabelRapRenderer.class;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.label.ui.rap/src/org/eclipse/emf/ecp/view/label/rap/LabelRapRenderer.java b/bundles/org.eclipse.emf.ecp.view.label.ui.rap/src/org/eclipse/emf/ecp/view/label/rap/LabelRapRenderer.java
index 34e84f6..82a6de1 100644
--- a/bundles/org.eclipse.emf.ecp.view.label.ui.rap/src/org/eclipse/emf/ecp/view/label/rap/LabelRapRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.label.ui.rap/src/org/eclipse/emf/ecp/view/label/rap/LabelRapRenderer.java
@@ -11,7 +11,14 @@
  */
 package org.eclipse.emf.ecp.view.label.rap;
 
+import javax.inject.Inject;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.label.model.VLabel;
 import org.eclipse.emf.ecp.view.spi.label.swt.LabelSWTRenderer;
+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.swt.widgets.Label;
 
 /**
@@ -20,6 +27,21 @@
  */
 public class LabelRapRenderer extends LabelSWTRenderer {
 
+	/**
+	 * Default Constructor.
+	 *
+	 * @param vElement the view element to be rendered
+	 * @param viewContext The view model context
+	 * @param reportService the ReportService to use
+	 * @param emfFormsDatabinding the EMFFormsDatabinding to use
+	 * @param vtViewTemplateProvider the VTViewTemplateProvider to use
+	 */
+	@Inject
+	public LabelRapRenderer(final VLabel vElement, final ViewModelContext viewContext, ReportService reportService,
+		EMFFormsDatabinding emfFormsDatabinding, VTViewTemplateProvider vtViewTemplateProvider) {
+		super(vElement, viewContext, reportService, emfFormsDatabinding, vtViewTemplateProvider);
+	}
+
 	/*
 	 * (non-Javadoc)
 	 * @see org.eclipse.emf.ecp.view.spi.label.swt.LabelSWTRenderer#applyStyle(org.eclipse.swt.widgets.Label)
diff --git a/bundles/org.eclipse.emf.ecp.view.label.ui.rap/src/org/eclipse/emf/ecp/view/label/rap/LabelRapRendererTester.java b/bundles/org.eclipse.emf.ecp.view.label.ui.rap/src/org/eclipse/emf/ecp/view/label/rap/LabelRapRendererTester.java
deleted file mode 100644
index 67ab6b1..0000000
--- a/bundles/org.eclipse.emf.ecp.view.label.ui.rap/src/org/eclipse/emf/ecp/view/label/rap/LabelRapRendererTester.java
+++ /dev/null
@@ -1,53 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Alexandra Buzila - initial API and implementation
- */
-package org.eclipse.emf.ecp.view.label.rap;
-
-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.label.model.VLabelPackage;
-import org.eclipse.emf.ecp.view.spi.model.VElement;
-import org.eclipse.swt.widgets.Display;
-import org.osgi.framework.FrameworkUtil;
-
-/**
- * @author Alexandra Buzila
- *
- */
-public class LabelRapRendererTester implements ECPRendererTester {
-
-	/**
-	 *
-	 */
-	public LabelRapRendererTester() {
-		// TODO Auto-generated constructor stub
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.emf.ecp.view.model.common.SimpleControlRendererTester#
-	 * isApplicable(org.eclipse.emf.ecp.view.spi.model.VElement,
-	 * org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
-	 */
-	@Override
-	public int isApplicable(VElement vElement, ViewModelContext viewModelContext) {
-		if (!VLabelPackage.eINSTANCE.getLabel().isInstance(vElement)) {
-			return NOT_APPLICABLE;
-		}
-		if (!FrameworkUtil.getBundle(Display.class).getSymbolicName()
-			.contains(".rwt")) { //$NON-NLS-1$
-			return NOT_APPLICABLE;
-		}
-
-		return 3;
-	}
-
-}
diff --git a/bundles/org.eclipse.emf.ecp.view.label.ui.swt/.project b/bundles/org.eclipse.emf.ecp.view.label.ui.swt/.project
index ebbe9ff..4c09a1d 100644
--- a/bundles/org.eclipse.emf.ecp.view.label.ui.swt/.project
+++ b/bundles/org.eclipse.emf.ecp.view.label.ui.swt/.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.label.ui.swt/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.label.ui.swt/.settings/.api_filters
index 5541b5a..f31002d 100644
--- a/bundles/org.eclipse.emf.ecp.view.label.ui.swt/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.label.ui.swt/.settings/.api_filters
@@ -7,6 +7,20 @@
                 <message_argument value="1.2.1"/>
             </message_arguments>
         </filter>
+        <filter comment="SPI Change in 1.6" id="923795461">
+            <message_arguments>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.label.swt.Activator">
+        <filter comment="SPI Change in 1.6" id="305324134">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.label.swt.Activator"/>
+                <message_argument value="org.eclipse.emf.ecp.view.label.ui.swt_1.6.0"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.label.swt.SWTLabelRenderer">
         <filter comment="This is SPI" id="305324134">
@@ -16,4 +30,24 @@
             </message_arguments>
         </filter>
     </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/label/swt/LabelSWTRenderer.java" type="org.eclipse.emf.ecp.view.spi.label.swt.LabelSWTRenderer">
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.label.swt.LabelSWTRenderer"/>
+                <message_argument value="LabelSWTRenderer()"/>
+            </message_arguments>
+        </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.label.swt.LabelSWTRenderer"/>
+                <message_argument value="getGridDescription(SWTGridDescription)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.label.swt.LabelSWTRenderer"/>
+                <message_argument value="renderControl(SWTGridCell, Composite)"/>
+            </message_arguments>
+        </filter>
+    </resource>
 </component>
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 713d007..9aec830 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
@@ -1,21 +1,28 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Label UI SWT
-Bundle-SymbolicName: org.eclipse.emf.ecp.view.label.ui.swt;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-SymbolicName: org.eclipse.emf.ecp.view.label.ui.swt
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.emf.ecp.view.label.model;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.5.0,2.0.0)"
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.5.0,2.0.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.6.0,2.0.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.6.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emf.ecp.view.spi.label.swt;version="1.5.1"
-Import-Package: org.eclipse.jface.databinding.swt;version="0.0.0",
+Export-Package: org.eclipse.emf.ecp.view.internal.label.swt;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.label.swt;version="1.6.0"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="1.6.0",
+ org.eclipse.emfforms.spi.core.services.databinding;version="1.6.0",
+ org.eclipse.jface.databinding.swt;version="0.0.0",
  org.eclipse.jface.layout;version="0.0.0",
  org.eclipse.swt;version="0.0.0",
  org.eclipse.swt.events;version="0.0.0",
  org.eclipse.swt.graphics;version="0.0.0",
  org.eclipse.swt.widgets;version="0.0.0"
-Bundle-Activator: org.eclipse.emf.ecp.view.spi.label.swt.Activator
+Service-Component: OSGI-INF/labelRendererService.xml
diff --git a/bundles/org.eclipse.emf.ecp.view.label.ui.swt/OSGI-INF/labelRendererService.xml b/bundles/org.eclipse.emf.ecp.view.label.ui.swt/OSGI-INF/labelRendererService.xml
new file mode 100644
index 0000000..9d02391
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.label.ui.swt/OSGI-INF/labelRendererService.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emf.ecp.view.label.ui.swt.rendererService">
+   <implementation class="org.eclipse.emf.ecp.view.internal.label.swt.LabelSWTRendererService"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService"/>
+   </service>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.label.ui.swt/build.properties b/bundles/org.eclipse.emf.ecp.view.label.ui.swt/build.properties
index e0e105b..5689bc7 100644
--- a/bundles/org.eclipse.emf.ecp.view.label.ui.swt/build.properties
+++ b/bundles/org.eclipse.emf.ecp.view.label.ui.swt/build.properties
@@ -1,7 +1,7 @@
-source.. = src/

-output.. = bin/

-bin.includes = META-INF/,\

-               .,\

-               plugin.xml,\

-               about.html

-src.includes = about.html

+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               about.html,\
+               OSGI-INF/
+src.includes = about.html
+source.. = src/
diff --git a/bundles/org.eclipse.emf.ecp.view.label.ui.swt/plugin.xml b/bundles/org.eclipse.emf.ecp.view.label.ui.swt/plugin.xml
deleted file mode 100644
index 5e30007..0000000
--- a/bundles/org.eclipse.emf.ecp.view.label.ui.swt/plugin.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         point="org.eclipse.emf.ecp.ui.view.swt.renderers">
-      <renderer
-            renderer="org.eclipse.emf.ecp.view.spi.label.swt.LabelSWTRenderer">
-         <staticTest
-               element="org.eclipse.emf.ecp.view.spi.label.model.VLabel"
-               priority="1">
-         </staticTest>
-      </renderer>
-   </extension>
-
-</plugin>
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 5b58858..e5652dd 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.5.1-SNAPSHOT</version>

+    <version>1.6.0-SNAPSHOT</version>

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

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.view.label.ui.swt/src/org/eclipse/emf/ecp/view/internal/label/swt/LabelSWTRendererService.java b/bundles/org.eclipse.emf.ecp.view.label.ui.swt/src/org/eclipse/emf/ecp/view/internal/label/swt/LabelSWTRendererService.java
new file mode 100644
index 0000000..f430f21
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.label.ui.swt/src/org/eclipse/emf/ecp/view/internal/label/swt/LabelSWTRendererService.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.label.swt;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.label.model.VLabel;
+import org.eclipse.emf.ecp.view.spi.label.swt.LabelSWTRenderer;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+
+/**
+ * LabelSWTRendererService which provides the LabelSWTRenderer.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class LabelSWTRendererService implements EMFFormsDIRendererService<VLabel> {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (!VLabel.class.isInstance(vElement)) {
+			return NOT_APPLICABLE;
+		}
+		return 1d;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 * 
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#getRendererClass()
+	 */
+	@Override
+	public Class<? extends AbstractSWTRenderer<VLabel>> getRendererClass() {
+		return LabelSWTRenderer.class;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.label.ui.swt/src/org/eclipse/emf/ecp/view/spi/label/swt/Activator.java b/bundles/org.eclipse.emf.ecp.view.label.ui.swt/src/org/eclipse/emf/ecp/view/spi/label/swt/Activator.java
deleted file mode 100644
index 1a04bdf..0000000
--- a/bundles/org.eclipse.emf.ecp.view.label.ui.swt/src/org/eclipse/emf/ecp/view/spi/label/swt/Activator.java
+++ /dev/null
@@ -1,81 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * eugen - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.spi.label.swt;
-
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-
-/**
- * Activator of the lable.ui.swt bundle.
- * 
- * @author Eugen Neufeld
- * @since 1.5
- *
- */
-public class Activator extends Plugin {
-	/** The plug-in ID. */
-	public static final String PLUGIN_ID = "org.eclipse.emf.ecp.view.label.ui.swt"; //$NON-NLS-1$
-
-	// The shared instance
-	private static Activator plugin;
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-	 */
-	@Override
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		plugin = this;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
-	 */
-	@Override
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		super.stop(context);
-	}
-
-	/**
-	 * Returns the shared instance.
-	 *
-	 * @return the shared instance
-	 */
-	public static Activator getDefault() {
-		return plugin;
-	}
-
-	private VTViewTemplateProvider viewTemplate;
-
-	/**
-	 * Returns the current Instance of the {@link VTViewTemplateProvider}.
-	 *
-	 * @return the {@link VTViewTemplateProvider}
-	 */
-	public VTViewTemplateProvider getVTViewTemplateProvider() {
-		if (viewTemplate == null) {
-			final ServiceReference<VTViewTemplateProvider> viewTemplateReference = plugin.getBundle()
-				.getBundleContext()
-				.getServiceReference(VTViewTemplateProvider.class);
-			if (viewTemplateReference != null) {
-				viewTemplate = plugin.getBundle().getBundleContext().getService(viewTemplateReference);
-			}
-		}
-		return viewTemplate;
-	}
-
-}
diff --git a/bundles/org.eclipse.emf.ecp.view.label.ui.swt/src/org/eclipse/emf/ecp/view/spi/label/swt/LabelSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.label.ui.swt/src/org/eclipse/emf/ecp/view/spi/label/swt/LabelSWTRenderer.java
index ed82b99..3b55f24 100644
--- a/bundles/org.eclipse.emf.ecp.view.label.ui.swt/src/org/eclipse/emf/ecp/view/spi/label/swt/LabelSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.label.ui.swt/src/org/eclipse/emf/ecp/view/spi/label/swt/LabelSWTRenderer.java
@@ -12,27 +12,35 @@
 package org.eclipse.emf.ecp.view.spi.label.swt;
 
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.Map;
 import java.util.Set;
 
+import javax.inject.Inject;
+
 import org.eclipse.core.databinding.Binding;
 import org.eclipse.core.databinding.DataBindingContext;
 import org.eclipse.core.databinding.observable.value.IObservableValue;
 import org.eclipse.emf.databinding.EMFDataBindingContext;
-import org.eclipse.emf.databinding.EMFObservables;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.emf.databinding.edit.EMFEditObservables;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.label.model.VLabel;
 import org.eclipse.emf.ecp.view.spi.label.model.VLabelStyle;
+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.AbstractSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.swt.layout.GridDescriptionFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
+import org.eclipse.emf.ecp.view.spi.swt.reporting.RenderingFailedReport;
 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.fontProperties.model.VTFontPropertiesFactory;
 import org.eclipse.emf.ecp.view.template.style.fontProperties.model.VTFontPropertiesStyleProperty;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+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.swt.core.AbstractSWTRenderer;
+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.jface.databinding.swt.ISWTObservableValue;
 import org.eclipse.jface.databinding.swt.SWTObservables;
 import org.eclipse.swt.SWT;
@@ -53,6 +61,29 @@
  *
  */
 public class LabelSWTRenderer extends AbstractSWTRenderer<VLabel> {
+	private final EMFDataBindingContext dbc;
+	private final EMFFormsDatabinding emfFormsDatabinding;
+	private final VTViewTemplateProvider vtViewTemplateProvider;
+
+	/**
+	 * Default Constructor.
+	 *
+	 * @param vElement the view element to be rendered
+	 * @param viewContext The view model context
+	 * @param reportService the ReportService to use
+	 * @param emfFormsDatabinding the EMFFormsDatabinding to use
+	 * @param vtViewTemplateProvider the VTViewTemplateProvider to use
+	 * @since 1.6
+	 */
+	@Inject
+	public LabelSWTRenderer(final VLabel vElement, final ViewModelContext viewContext, ReportService reportService,
+		EMFFormsDatabinding emfFormsDatabinding, VTViewTemplateProvider vtViewTemplateProvider) {
+		super(vElement, viewContext, reportService);
+		this.emfFormsDatabinding = emfFormsDatabinding;
+		this.vtViewTemplateProvider = vtViewTemplateProvider;
+		dbc = new EMFDataBindingContext();
+	}
+
 	private SWTGridDescription rendererGridDescription;
 	private Font font;
 	private org.eclipse.swt.graphics.Color labelColor;
@@ -64,7 +95,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#dispose()
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#dispose()
 	 */
 	@Override
 	protected void dispose() {
@@ -79,13 +110,14 @@
 			dataBindingContext.dispose();
 			dataBindingContext = null;
 		}
+		dbc.dispose();
 		super.dispose();
 	}
 
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#getGridDescription(SWTGridDescription)
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#getGridDescription(SWTGridDescription)
 	 */
 	@Override
 	public SWTGridDescription getGridDescription(SWTGridDescription gridDescription) {
@@ -117,14 +149,11 @@
 
 	private void setText(Label label) {
 		if (getVElement().getDomainModelReference() != null) {
-			final Iterator<Setting> iterator = getVElement().getDomainModelReference().getIterator();
-			if (iterator.hasNext()) {
-				final Setting setting = iterator.next();
-
+			try {
+				final IObservableValue observableValue = emfFormsDatabinding
+					.getObservableValue(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
 				final ISWTObservableValue observeText = SWTObservables.observeText(label);
-				final IObservableValue observeValue = EMFObservables.observeValue(setting.getEObject(),
-					setting.getEStructuralFeature());
-				final Binding binding = getDataBindingContext().bindValue(observeText, observeValue);
+				final Binding binding = getDataBindingContext().bindValue(observeText, observableValue);
 
 				label.addDisposeListener(new DisposeListener() {
 					@Override
@@ -132,13 +161,17 @@
 						binding.dispose();
 					}
 				});
+			} catch (final DatabindingFailedException ex) {
+				getReportService().report(new RenderingFailedReport(ex));
+				label.setText(ex.getMessage());
 			}
 		} else {
-			if (getVElement().getName() != null) {
-				label.setText(getVElement().getName());
-			} else {
-				label.setText(""); //$NON-NLS-1$
-			}
+			final IObservableValue modelValue = EMFEditObservables.observeValue(
+				AdapterFactoryEditingDomain.getEditingDomainFor(getVElement()), getVElement(),
+				VViewPackage.eINSTANCE.getElement_Label());
+			final IObservableValue targetValue = SWTObservables.observeText(label);
+
+			dbc.bindValue(targetValue, modelValue);
 		}
 	}
 
@@ -202,7 +235,7 @@
 
 	private VTFontPropertiesStyleProperty getFontProperty() {
 		VTFontPropertiesStyleProperty fontProperties;
-		final Set<VTStyleProperty> styleProperties = Activator.getDefault().getVTViewTemplateProvider()
+		final Set<VTStyleProperty> styleProperties = vtViewTemplateProvider
 			.getStyleProperties(getVElement(), getViewModelContext());
 		for (final VTStyleProperty styleProperty : styleProperties) {
 			if (VTFontPropertiesStyleProperty.class.isInstance(styleProperty)) {
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.classpath b/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.classpath
deleted file mode 100644
index ad32c83..0000000
--- a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?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.mappingdmr.databinding/.project b/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.project
deleted file mode 100644
index 0292697..0000000
--- a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.project
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.emf.ecp.view.mappingdmr.databinding</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>
-		<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/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/META-INF/MANIFEST.MF
deleted file mode 100644
index eb97ca8..0000000
--- a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,17 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Databinding Connection
-Bundle-SymbolicName: org.eclipse.emf.ecp.view.mappingdmr.databinding
-Bundle-Version: 1.5.1.qualifier
-Bundle-Vendor: Eclipse Modeling Project
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Bundle-ActivationPolicy: lazy
-Require-Bundle: org.eclipse.emf.ecp.view.model.common;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.view.mappingdmr.model;bundle-version="[1.5.0,2.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.2.0,2.0.0)"
-Import-Package: org.osgi.framework;version="[1.3.0,2.0.0)"
-Service-Component: OSGI-INF/mappingDatabindingProvider.xml
-Export-Package: org.eclipse.emf.ecp.view.mappingdmr.databinding;versio
- n="1.5.1";x-internal:=true
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/OSGI-INF/mappingDatabindingProvider.xml b/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/OSGI-INF/mappingDatabindingProvider.xml
deleted file mode 100644
index acdfb43..0000000
--- a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/OSGI-INF/mappingDatabindingProvider.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emf.ecp.view.mappingdmr.databinding">
-   <implementation class="org.eclipse.emf.ecp.view.mappingdmr.databinding.MappingDatabindingProviderService"/>
-   <service>
-      <provide interface="org.eclipse.emf.ecp.view.model.common.spi.databinding.DatabindingProviderService"/>
-   </service>
-   <property name="domainModelReference" type="String" value="org.eclipse.emf.ecp.view.spi.mappingdmr.model.impl.VMappingDomainModelReferenceImpl"/>
-</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/pom.xml b/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/pom.xml
deleted file mode 100644
index edbac9a..0000000
--- a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/pom.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?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.5.1-SNAPSHOT</version>
-    <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
-  </parent>
-
-  <artifactId>org.eclipse.emf.ecp.view.mappingdmr.databinding</artifactId>
-  <packaging>eclipse-plugin</packaging>
-
-</project>
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/src/org/eclipse/emf/ecp/view/mappingdmr/databinding/EMFMappingValueProperty.java b/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/src/org/eclipse/emf/ecp/view/mappingdmr/databinding/EMFMappingValueProperty.java
deleted file mode 100644
index 974a47f..0000000
--- a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/src/org/eclipse/emf/ecp/view/mappingdmr/databinding/EMFMappingValueProperty.java
+++ /dev/null
@@ -1,64 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eugen Neufeld - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.mappingdmr.databinding;
-
-import org.eclipse.emf.common.util.EMap;
-import org.eclipse.emf.databinding.internal.EMFValueProperty;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-/**
- * This class provides a ValueProperty for EClass Mappings.
- *
- * @author Eugen Neufeld
- *
- */
-@SuppressWarnings("restriction")
-public class EMFMappingValueProperty extends EMFValueProperty {
-
-	private final EClass mappedEClass;
-
-	/**
-	 * Constructor for a EClassMapping ValueProperty.
-	 *
-	 * @param mappedEClass the EClass being mapped
-	 * @param eStructuralFeature the {@link EStructuralFeature} of the map
-	 */
-	public EMFMappingValueProperty(EClass mappedEClass,
-		EStructuralFeature eStructuralFeature) {
-		super(eStructuralFeature);
-		this.mappedEClass = mappedEClass;
-	}
-
-	@SuppressWarnings("unchecked")
-	@Override
-	protected Object doGetValue(Object source) {
-		final Object result = super.doGetValue(source);
-		final EMap<EClass, Object> map = (EMap<EClass, Object>) result;
-		return map.get(mappedEClass);
-	}
-
-	@SuppressWarnings("unchecked")
-	@Override
-	protected void doSetValue(Object source, Object value) {
-		final Object result = super.doGetValue(source);
-		final EMap<EClass, Object> map = (EMap<EClass, Object>) result;
-		map.put(mappedEClass, value);
-	}
-
-	@Override
-	public String toString() {
-		String s = super.toString();
-		s += " mapping " + mappedEClass.getName(); //$NON-NLS-1$
-		return s;
-	}
-}
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/src/org/eclipse/emf/ecp/view/mappingdmr/databinding/MappingDatabindingProviderService.java b/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/src/org/eclipse/emf/ecp/view/mappingdmr/databinding/MappingDatabindingProviderService.java
deleted file mode 100644
index 49ecdca..0000000
--- a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/src/org/eclipse/emf/ecp/view/mappingdmr/databinding/MappingDatabindingProviderService.java
+++ /dev/null
@@ -1,96 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eugen Neufeld - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.mappingdmr.databinding;
-
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.property.IProperty;
-import org.eclipse.core.databinding.property.value.IValueProperty;
-import org.eclipse.emf.ecp.view.model.common.internal.databinding.FeaturePathDatabindingProviderService;
-import org.eclipse.emf.ecp.view.model.common.spi.databinding.DatabindingProviderService;
-import org.eclipse.emf.ecp.view.spi.mappingdmr.model.VMappingDomainModelReference;
-import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
-import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.FrameworkUtil;
-import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.framework.ServiceReference;
-
-/**
- * The {@link DatabindingProviderService} for a {@link VMappingDomainModelReference}.
- *
- * @author Eugen Neufeld
- *
- */
-public class MappingDatabindingProviderService extends FeaturePathDatabindingProviderService
-{
-
-	@SuppressWarnings("unchecked")
-	@Override
-	public <O extends IObservable> O getObservable(
-		VFeaturePathDomainModelReference domainModelReference,
-		Class<O> observableClass) {
-		final IObservableValue value = (IObservableValue) super.getObservable(domainModelReference, observableClass);
-
-		return (O) value;
-	}
-
-	@SuppressWarnings("unchecked")
-	@Override
-	public <P extends IProperty> P getProperty(
-		VFeaturePathDomainModelReference domainModelReference,
-		Class<P> propertyClass) {
-		// IEMFValueProperty property = (IEMFValueProperty) super.getProperty(domainModelReference, propertyClass);
-		final VMappingDomainModelReference mappingDomainModelReference = (VMappingDomainModelReference) domainModelReference;
-
-		final EMFMappingValueProperty valueProperty = new EMFMappingValueProperty(
-			mappingDomainModelReference.getMappedClass(), domainModelReference.getDomainModelEFeature());
-		final IValueProperty value = valueProperty.value(getPropertyOfChild(mappingDomainModelReference
-			.getDomainModelReference()));
-
-		// property.value(valueProperty);
-		return (P) value;
-	}
-
-	@SuppressWarnings({ "rawtypes", "unchecked" })
-	private IValueProperty getPropertyOfChild(
-		VDomainModelReference domainModelReference) {
-		final BundleContext bundleContext = FrameworkUtil.getBundle(getClass()).getBundleContext();
-		ServiceReference<DatabindingProviderService> databindingProviderServiceReference = null;
-		try {
-			final Collection<ServiceReference<DatabindingProviderService>> serviceReferences = bundleContext
-				.getServiceReferences(DatabindingProviderService.class,
-					String.format("(domainModelReference=%s)", domainModelReference.getClass().getName())); //$NON-NLS-1$
-			final Iterator<ServiceReference<DatabindingProviderService>> iterator = serviceReferences.iterator();
-			if (iterator.hasNext()) {
-				databindingProviderServiceReference = iterator.next();
-			}
-			if (databindingProviderServiceReference == null) {
-				throw new IllegalStateException("No DatabindingProviderService available."); //$NON-NLS-1$
-			}
-		} catch (final InvalidSyntaxException e) {
-			throw new IllegalStateException(e);
-		}
-		final DatabindingProviderService<VDomainModelReference> service = bundleContext
-			.getService(databindingProviderServiceReference);
-
-		final IValueProperty property = service.getProperty(domainModelReference, IValueProperty.class);
-
-		bundleContext.ungetService(databindingProviderServiceReference);
-
-		return property;
-	}
-
-}
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.model.edit/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.mappingdmr.model.edit/.settings/.api_filters
index 3fb1be9..e557cfe 100644
--- a/bundles/org.eclipse.emf.ecp.view.mappingdmr.model.edit/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.mappingdmr.model.edit/.settings/.api_filters
@@ -1,10 +1,34 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.emf.ecp.view.mappingdmr.model.edit" version="2">
     <resource path="META-INF/MANIFEST.MF">
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model.edit"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.mappingdmr.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.mappingdmr.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.mappingdmr.model.edit_1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
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 001742b..1618efc 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,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.mappingdmr.model.edit;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.spi.mappingdmr.model.provider.MappingdmrEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.view.spi.mappingdmr.model.provider
- ;version="1.5.1";x-internal:=true
+ ;version="1.6.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.5.0,2.0.0)";visibility:=reexport,
  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.model.edit/plugin.properties b/bundles/org.eclipse.emf.ecp.view.mappingdmr.model.edit/plugin.properties
index 96275b6..8c47378 100644
--- a/bundles/org.eclipse.emf.ecp.view.mappingdmr.model.edit/plugin.properties
+++ b/bundles/org.eclipse.emf.ecp.view.mappingdmr.model.edit/plugin.properties
@@ -9,7 +9,7 @@
 # Eugen Neufeld - initial API and implementation
 
 pluginName = Mappingdmr Edit Support
-providerName = www.example.org
+providerName = Eclipse Modeling Project
 
 _UI_CreateChild_text = {0}
 _UI_CreateChild_text2 = {1} {0}
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 d952c8f..66f0a7a 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.5.1-SNAPSHOT</version>
+    <version>1.6.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/.api_filters b/bundles/org.eclipse.emf.ecp.view.mappingdmr.model/.settings/.api_filters
index d3f994a..b35059d 100644
--- a/bundles/org.eclipse.emf.ecp.view.mappingdmr.model/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.mappingdmr.model/.settings/.api_filters
@@ -1,10 +1,34 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.emf.ecp.view.mappingdmr.model" version="2">
     <resource path="META-INF/MANIFEST.MF">
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.mappingdmr.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.mappingdmr.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.mappingdmr.model_1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
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 48e64d1..ecc400d 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,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.mappingdmr.model;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.view.spi.mappingdmr.model;version=
- "1.5.1",org.eclipse.emf.ecp.view.spi.mappingdmr.model.impl;version="1
- .5.1";x-internal:=true,org.eclipse.emf.ecp.view.spi.mappingdmr.model.
- util;version="1.5.1";x-friends:="org.eclipse.emf.ecp.view.mappingdmr.
+ "1.6.0",org.eclipse.emf.ecp.view.spi.mappingdmr.model.impl;version="1
+ .6.0";x-internal:=true,org.eclipse.emf.ecp.view.spi.mappingdmr.model.
+ util;version="1.6.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,
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 3638dc9..7ba391c 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.5.1-SNAPSHOT</version>
+    <version>1.6.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/META-INF/MANIFEST.MF
index 900f571..4f610c4 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Mapping DMR Tooling
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.mappingdmr.tooling;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
@@ -15,13 +15,18 @@
  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.emf.ecp.ui;bundle-version="1.4.0",
- org.eclipse.emf.ecp.common.ui
+ org.eclipse.emf.ecp.ui;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emf.ecp.common.ui;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)"
 Import-Package: org.eclipse.emf.edit.ui.provider;version="0.0.0",
+ org.eclipse.emfforms.spi.common.report;version="1.6.0",
  org.eclipse.jface.viewers;version="0.0.0",
  org.eclipse.jface.window;version="0.0.0",
- org.eclipse.jface.wizard,
+ org.eclipse.jface.wizard;version="0.0.0",
  org.eclipse.swt.widgets;version="0.0.0",
  org.eclipse.ui.dialogs;ui.workbench=split;version="0.0.0"
 Export-Package: org.eclipse.emf.ecp.view.mappingdmr.tooling;version="1
- .5.1";x-internal:=true
+ .6.0";x-internal:=true
+Bundle-Activator: org.eclipse.emf.ecp.view.mappingdmr.tooling.Activator
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 a9f045d..474ecab 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.5.1-SNAPSHOT</version>
+    <version>1.6.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/Activator.java b/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/src/org/eclipse/emf/ecp/view/mappingdmr/tooling/Activator.java
new file mode 100644
index 0000000..1ed1f26
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/src/org/eclipse/emf/ecp/view/mappingdmr/tooling/Activator.java
@@ -0,0 +1,98 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.mappingdmr.tooling;
+
+import org.eclipse.core.runtime.Plugin;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * The activator class controls the plug-in life cycle.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class Activator extends Plugin {
+	/** The plug-in ID. */
+	public static final String PLUGIN_ID = "org.eclipse.emf.ecp.view.mappingdmr.tooling"; //$NON-NLS-1$
+
+	// The shared instance
+	private static Activator plugin;
+
+	private ServiceReference<ReportService> reportServiceReference;
+
+	/**
+	 * The constructor.
+	 */
+	public Activator() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+	 */
+	@Override
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+	 */
+	@Override
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * 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 = plugin.getBundle().getBundleContext()
+				.getServiceReference(ReportService.class);
+		}
+		return plugin.getBundle().getBundleContext().getService(reportServiceReference);
+	}
+
+	/**
+	 * Returns the {@link EMFFormsDatabinding} service.
+	 *
+	 * @return The {@link EMFFormsDatabinding}
+	 */
+	public EMFFormsDatabinding getEMFFormsDatabinding() {
+		final ServiceReference<EMFFormsDatabinding> serviceReference = plugin.getBundle().getBundleContext()
+			.getServiceReference(EMFFormsDatabinding.class);
+
+		final EMFFormsDatabinding service = plugin.getBundle().getBundleContext()
+			.getService(serviceReference);
+		plugin.getBundle().getBundleContext().ungetService(serviceReference);
+
+		return service;
+	}
+}
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 82f0fa8..c117db2 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
@@ -14,18 +14,25 @@
 import java.util.Collection;
 import java.util.HashSet;
 
+import org.eclipse.core.databinding.observable.IObserving;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
 import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecp.common.spi.EMFUtils;
 import org.eclipse.emf.ecp.internal.ui.Messages;
 import org.eclipse.emf.ecp.spi.common.ui.CompositeFactory;
 import org.eclipse.emf.ecp.spi.common.ui.composites.SelectionComposite;
 import org.eclipse.emf.ecp.view.internal.editor.controls.EditableEReferenceLabelControlSWTRenderer;
 import org.eclipse.emf.ecp.view.internal.editor.handler.CreateDomainModelReferenceWizard;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.mappingdmr.model.VMappingDomainModelReference;
+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.VViewPackage;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
 import org.eclipse.jface.viewers.TreeViewer;
 import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.widgets.Shell;
@@ -134,11 +141,32 @@
 	// }
 	// }
 
+	/**
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 */
+	public FeaturePathDMRSubMappedEClassControlSWTRenderer(VControl vElement, ViewModelContext viewContext,
+		ReportService reportService) {
+		super(vElement, viewContext, reportService);
+	}
+
 	@Override
 	protected void linkValue(Shell shell) {
-		final Setting setting = getVElement().getDomainModelReference().getIterator().next();
+		IObservableValue observableValue;
+		try {
+			observableValue = Activator.getDefault().getEMFFormsDatabinding()
+				.getObservableValue(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			showLinkValueFailedMessageDialog(shell, ex);
+			return;
+		}
+		final EObject eObject = (EObject) ((IObserving) observableValue).getObserved();
+		final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+		observableValue.dispose();
+
 		final VMappingDomainModelReference mappingDomainModelReference = VMappingDomainModelReference.class
-			.cast(setting.getEObject());
+			.cast(eObject);
 
 		final EClass eclass = mappingDomainModelReference.getMappedClass();
 
@@ -146,11 +174,11 @@
 			.getDomainModelReference());
 
 		final CreateDomainModelReferenceWizard wizard = new CreateDomainModelReferenceWizard(
-			setting, getEditingDomain(setting), eclass, "New Reference Element", //$NON-NLS-1$
+			eObject, structuralFeature, getEditingDomain(eObject), eclass, "New Reference Element", //$NON-NLS-1$
 			Messages.NewModelElementWizard_WizardTitle_AddModelElement,
 			Messages.NewModelElementWizard_PageTitle_AddModelElement,
 			Messages.NewModelElementWizard_PageDescription_AddModelElement,
-			(VDomainModelReference) setting.get(true));
+			(VDomainModelReference) eObject.eGet(structuralFeature, true));
 
 		final SelectionComposite<TreeViewer> helper = CompositeFactory.getSelectModelClassComposite(
 			new HashSet<EPackage>(),
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/src/org/eclipse/emf/ecp/view/mappingdmr/tooling/FeaturePathDMRSubMappedEClassReferenceTester.java b/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/src/org/eclipse/emf/ecp/view/mappingdmr/tooling/FeaturePathDMRSubMappedEClassReferenceTester.java
index ac69ca1..d8b6a5a 100644
--- a/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/src/org/eclipse/emf/ecp/view/mappingdmr/tooling/FeaturePathDMRSubMappedEClassReferenceTester.java
+++ b/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/src/org/eclipse/emf/ecp/view/mappingdmr/tooling/FeaturePathDMRSubMappedEClassReferenceTester.java
@@ -11,7 +11,10 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.mappingdmr.tooling;
 
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.core.databinding.observable.IObserving;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.ecore.EObject;
+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.mappingdmr.model.VMappingDomainModelReference;
@@ -19,6 +22,8 @@
 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.VViewPackage;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 
 /**
  * A Tester for the FeaturePathControl which is added as a child of a {@link VMappingDomainModelReference}.
@@ -37,18 +42,25 @@
 		}
 
 		final VControl control = (VControl) vElement;
-		final Setting setting = control.getDomainModelReference().getIterator()
-			.next();
-		if (VMappingDomainModelReference.class.isInstance(setting.getEObject()
-			.eContainer())
+		IObservableValue observableValue;
+		try {
+			observableValue = Activator.getDefault().getEMFFormsDatabinding()
+				.getObservableValue(control.getDomainModelReference(), viewModelContext.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+			return NOT_APPLICABLE;
+		}
+		final EStructuralFeature feature = (EStructuralFeature) observableValue.getValueType();
+		final EObject eObject = (EObject) ((IObserving) observableValue).getObserved();
+		observableValue.dispose();
+
+		if (VMappingDomainModelReference.class.isInstance(eObject.eContainer())
 			&& VViewPackage.eINSTANCE
-				.getFeaturePathDomainModelReference_DomainModelEFeature() == setting
-				.getEStructuralFeature()) {
+				.getFeaturePathDomainModelReference_DomainModelEFeature() == feature) {
 			return 6;
 		}
-		if (VMappingDomainModelReference.class.isInstance(setting.getEObject())
-			&& VMappingdmrPackage.eINSTANCE.getMappingDomainModelReference_DomainModelReference() == setting
-				.getEStructuralFeature()) {
+		if (VMappingDomainModelReference.class.isInstance(eObject)
+			&& VMappingdmrPackage.eINSTANCE.getMappingDomainModelReference_DomainModelReference() == feature) {
 			return 6;
 		}
 
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/src/org/eclipse/emf/ecp/view/mappingdmr/tooling/MappedEClassControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/src/org/eclipse/emf/ecp/view/mappingdmr/tooling/MappedEClassControlSWTRenderer.java
index 4d9d8be..eba768a 100644
--- a/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/src/org/eclipse/emf/ecp/view/mappingdmr/tooling/MappedEClassControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/src/org/eclipse/emf/ecp/view/mappingdmr/tooling/MappedEClassControlSWTRenderer.java
@@ -15,6 +15,8 @@
 import java.util.LinkedHashSet;
 import java.util.Set;
 
+import org.eclipse.core.databinding.observable.IObserving;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.emf.common.notify.AdapterFactory;
@@ -26,10 +28,14 @@
 import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecp.common.spi.EMFUtils;
 import org.eclipse.emf.ecp.view.internal.editor.controls.EditableEReferenceLabelControlSWTRenderer;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.mappingdmr.model.VMappingDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
 import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
 import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
 import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.jface.viewers.ViewerComparator;
@@ -49,6 +55,15 @@
 	EditableEReferenceLabelControlSWTRenderer {
 
 	/**
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 */
+	public MappedEClassControlSWTRenderer(VControl vElement, ViewModelContext viewContext, ReportService reportService) {
+		super(vElement, viewContext, reportService);
+	}
+
+	/**
 	 * @author Eugen
 	 *
 	 */
@@ -118,8 +133,17 @@
 
 	@Override
 	protected void linkValue(Shell shell) {
-		final VMappingDomainModelReference dmr = (VMappingDomainModelReference) getVElement()
-			.getDomainModelReference().getIterator().next().getEObject();
+		IObservableValue observableValue;
+		try {
+			observableValue = Activator.getDefault().getEMFFormsDatabinding()
+				.getObservableValue(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			showLinkValueFailedMessageDialog(shell, ex);
+			return;
+		}
+		final VMappingDomainModelReference dmr = (VMappingDomainModelReference) ((IObserving) observableValue)
+			.getObserved();
+		observableValue.dispose();
 		final ComposedAdapterFactory adapterFactory = new ComposedAdapterFactory(new AdapterFactory[] {
 			new ReflectiveItemProviderAdapterFactory(),
 			new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE) });
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/src/org/eclipse/emf/ecp/view/mappingdmr/tooling/MappedEClassTester.java b/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/src/org/eclipse/emf/ecp/view/mappingdmr/tooling/MappedEClassTester.java
index cd8042e..267daa0 100644
--- a/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/src/org/eclipse/emf/ecp/view/mappingdmr/tooling/MappedEClassTester.java
+++ b/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/src/org/eclipse/emf/ecp/view/mappingdmr/tooling/MappedEClassTester.java
@@ -11,12 +11,16 @@
  */
 package org.eclipse.emf.ecp.view.mappingdmr.tooling;
 
+import org.eclipse.core.databinding.property.value.IValueProperty;
+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.mappingdmr.model.VMappingDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.mappingdmr.model.VMappingdmrPackage;
 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.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 
 /**
  * A tester for a control for mapping eclasses.
@@ -37,10 +41,16 @@
 		}
 
 		final VControl control = (VControl) vElement;
-		if (VMappingdmrPackage.eINSTANCE
-			.getMappingDomainModelReference_MappedClass() == control
-			.getDomainModelReference().getEStructuralFeatureIterator()
-			.next()) {
+		IValueProperty valueProperty;
+		try {
+			valueProperty = Activator.getDefault().getEMFFormsDatabinding()
+				.getValueProperty(control.getDomainModelReference(), viewModelContext.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+			return NOT_APPLICABLE;
+		}
+		final EStructuralFeature feature = (EStructuralFeature) valueProperty.getValueType();
+		if (VMappingdmrPackage.eINSTANCE.getMappingDomainModelReference_MappedClass() == feature) {
 			return 5;
 		}
 		return NOT_APPLICABLE;
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 a550e84..f372eec 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,9 +2,9 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Migrator
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.migrator;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 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)"
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.migrator;version="1.5.1"
+Export-Package: org.eclipse.emf.ecp.view.migrator;version="1.6.0"
diff --git a/bundles/org.eclipse.emf.ecp.view.migrator/pom.xml b/bundles/org.eclipse.emf.ecp.view.migrator/pom.xml
index 98df953..f46032a 100644
--- a/bundles/org.eclipse.emf.ecp.view.migrator/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.migrator/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.model.common.di/.gitignore b/bundles/org.eclipse.emf.ecp.view.model.common.di/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.model.common.di/.gitignore
@@ -0,0 +1 @@
+/bin/
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 b404cf0..68bf055 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,7 +2,7 @@
 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.emf.ecp.view.model.common;bundle-version="[1.3.0,2.0.0)",
@@ -12,9 +12,9 @@
  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)"
 Export-Package: org.eclipse.emf.ecp.view.model.common.di.messages;vers
- ion="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.model.common.di
- .renderer;version="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.m
- odel.common.di.service;version="1.5.1";x-internal:=true,org.eclipse.e
- mf.ecp.view.model.common.di.service.impl;version="1.5.1";x-internal:=
- true,org.eclipse.emf.ecp.view.model.common.di.util;version="1.5.1";x-
+ ion="1.6.0";x-internal:=true,org.eclipse.emf.ecp.view.model.common.di
+ .renderer;version="1.6.0";x-internal:=true,org.eclipse.emf.ecp.view.m
+ odel.common.di.service;version="1.6.0";x-internal:=true,org.eclipse.e
+ mf.ecp.view.model.common.di.service.impl;version="1.6.0";x-internal:=
+ true,org.eclipse.emf.ecp.view.model.common.di.util;version="1.6.0";x-
  internal:=true
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 84976a6..7e0f04b 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.5.1-SNAPSHOT</version>
+    <version>1.6.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.model.common/.gitignore b/bundles/org.eclipse.emf.ecp.view.model.common/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.model.common/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.view.model.common/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.model.common/.settings/.api_filters
index 1ed80bb..1b11fe3 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.common/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.model.common/.settings/.api_filters
@@ -7,6 +7,34 @@
                 <message_argument value="1.4.0"/>
             </message_arguments>
         </filter>
+        <filter comment="SPI Change in 1.6" id="923795461">
+            <message_arguments>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.model.common.spi.databinding.DatabindingProviderService">
+        <filter comment="SPI Change in 1.6" id="305324134">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.model.common.spi.databinding.DatabindingProviderService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.model.common_1.6.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/model/common/AbstractRenderer.java" type="org.eclipse.emf.ecp.view.model.common.AbstractRenderer">
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.model.common.AbstractRenderer"/>
+                <message_argument value="AbstractRenderer()"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Change in 1.6" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.model.common.AbstractRenderer"/>
+                <message_argument value="init(VELEMENT, ViewModelContext)"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/emf/ecp/view/model/common/XMLDateControlRendererTester.java" type="org.eclipse.emf.ecp.view.model.common.XMLDateControlRendererTester">
         <filter comment="Needed Fix for 1.5.0" id="338849923">
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 5d31681..a9e6825 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,19 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Common View Model Classes
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.common
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.internal.model.common.Activator
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Import-Package: org.osgi.framework;version="1.3.0"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="1.6.0",
+ org.eclipse.emfforms.spi.core.services.databinding;version="1.6.0",
+ org.osgi.framework;version="1.3.0"
 Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emf.ecp.view.internal.model.common;version
- ="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.model.common;versi
- on="1.5.1",org.eclipse.emf.ecp.view.model.common.edit.provider;versio
- n="1.5.1",org.eclipse.emf.ecp.view.model.common.internal.databinding;
- version="1.5.1";x-friends:="org.eclipse.emf.ecp.view.mappingdmr.datab
- inding",org.eclipse.emf.ecp.view.model.common.spi.databinding;version
- ="1.5.1"
+Export-Package: org.eclipse.emf.ecp.view.internal.model.common;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.model.common;version="1.6.0",
+ org.eclipse.emf.ecp.view.model.common.edit.provider;version="1.6.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.emf.ecp.view.context;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.model;bundle-version="[1.5.0,2.0.0)",
@@ -23,4 +21,3 @@
  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)"
-Service-Component: OSGI-INF/featurePathDatabindingProvider.xml
diff --git a/bundles/org.eclipse.emf.ecp.view.model.common/OSGI-INF/featurePathDatabindingProvider.xml b/bundles/org.eclipse.emf.ecp.view.model.common/OSGI-INF/featurePathDatabindingProvider.xml
deleted file mode 100644
index 6a64210..0000000
--- a/bundles/org.eclipse.emf.ecp.view.model.common/OSGI-INF/featurePathDatabindingProvider.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emf.ecp.view.model.domainmodelreference.databindingProvider">
-   <implementation class="org.eclipse.emf.ecp.view.model.common.internal.databinding.FeaturePathDatabindingProviderService"/>
-   <property name="domainModelReference" type="String" value="org.eclipse.emf.ecp.view.spi.model.impl.VFeaturePathDomainModelReferenceImpl"/>
-   <service>
-      <provide interface="org.eclipse.emf.ecp.view.model.common.spi.databinding.DatabindingProviderService"/>
-   </service>
-</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.model.common/build.properties b/bundles/org.eclipse.emf.ecp.view.model.common/build.properties
index 8e36148..ccde309 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.common/build.properties
+++ b/bundles/org.eclipse.emf.ecp.view.model.common/build.properties
@@ -1,7 +1,6 @@
 output.. = bin/
 bin.includes = META-INF/,\
                .,\
-               about.html,\
-               OSGI-INF/
+               about.html
 source.. = src/
 src.includes = about.html
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 c48dac9..2c038bc 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.5.1-SNAPSHOT</version>

+    <version>1.6.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/internal/model/common/Activator.java b/bundles/org.eclipse.emf.ecp.view.model.common/src/org/eclipse/emf/ecp/view/internal/model/common/Activator.java
index 22defe9..17d145f 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.common/src/org/eclipse/emf/ecp/view/internal/model/common/Activator.java
+++ b/bundles/org.eclipse.emf.ecp.view.model.common/src/org/eclipse/emf/ecp/view/internal/model/common/Activator.java
@@ -12,7 +12,10 @@
 package org.eclipse.emf.ecp.view.internal.model.common;

 

 import org.eclipse.core.runtime.Plugin;

+import org.eclipse.emfforms.spi.common.report.ReportService;

+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;

 import org.osgi.framework.BundleContext;

+import org.osgi.framework.ServiceReference;

 

 /**

  * The activator class controls the plug-in life cycle.

@@ -25,6 +28,8 @@
 	// The shared instance

 	private static Activator plugin;

 

+	private ServiceReference<ReportService> reportServiceReference;

+

 	/**

 	 * The constructor.

 	 */

@@ -59,4 +64,33 @@
 	public static Activator getDefault() {

 		return plugin;

 	}

+

+	/**

+	 * Returns the {@link ReportService}.

+	 *

+	 * @return the {@link ReportService}

+	 */

+	public ReportService getReportService() {

+		if (reportServiceReference == null) {

+			reportServiceReference = plugin.getBundle().getBundleContext()

+				.getServiceReference(ReportService.class);

+		}

+		return plugin.getBundle().getBundleContext().getService(reportServiceReference);

+	}

+

+	/**

+	 * Returns the {@link EMFFormsDatabinding} service.

+	 *

+	 * @return The {@link EMFFormsDatabinding}

+	 */

+	public EMFFormsDatabinding getEMFFormsDatabinding() {

+		final ServiceReference<EMFFormsDatabinding> serviceReference = plugin.getBundle().getBundleContext()

+			.getServiceReference(EMFFormsDatabinding.class);

+

+		final EMFFormsDatabinding service = plugin.getBundle().getBundleContext()

+			.getService(serviceReference);

+		plugin.getBundle().getBundleContext().ungetService(serviceReference);

+

+		return service;

+	}

 }

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 d2af5fa..66923ca 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
@@ -13,6 +13,7 @@
 
 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;
 
 /**
  * Common super class for renderer.
@@ -23,21 +24,33 @@
  */
 public abstract class AbstractRenderer<VELEMENT extends VElement> {
 
-	private VELEMENT vElement;
-	private ViewModelContext viewModelContext;
+	private final VELEMENT vElement;
+	private final ViewModelContext viewModelContext;
+	private boolean disposed;
+	private final ReportService reportService;
 
 	/**
-	 * Initialize the control. This can only be called once.
+	 * Default constructor.
 	 *
 	 * @param vElement the {@link VElement} to be rendered
 	 * @param viewContext the {@link ViewModelContext} to use
+	 * @param reportService The {@link ReportService} to use
+	 * @since 1.6
 	 */
-	public void init(final VELEMENT vElement, final ViewModelContext viewContext) {
-		if (this.vElement != null) {
-			return;
+	public AbstractRenderer(final VELEMENT vElement, final ViewModelContext viewContext, ReportService reportService) {
+
+		if (vElement == null) {
+			throw new IllegalArgumentException("vElement must not be null"); //$NON-NLS-1$
+		}
+		if (viewContext == null) {
+			throw new IllegalArgumentException("vContext must not be null"); //$NON-NLS-1$
+		}
+		if (reportService == null) {
+			throw new IllegalArgumentException("reportService must not be null"); //$NON-NLS-1$
 		}
 		this.vElement = vElement;
 		this.viewModelContext = viewContext;
+		this.reportService = reportService;
 	}
 
 	/**
@@ -46,6 +59,7 @@
 	 * @return the {@link ViewModelContext}
 	 */
 	public final ViewModelContext getViewModelContext() {
+		checkRenderer();
 		return viewModelContext;
 	}
 
@@ -55,6 +69,7 @@
 	 * @return the {@link VElement}
 	 */
 	public final VELEMENT getVElement() {
+		checkRenderer();
 		return vElement;
 	}
 
@@ -63,7 +78,30 @@
 	 * Don't forget to call super.dispose if overwriting this method.
 	 */
 	protected void dispose() {
-		vElement = null;
-		viewModelContext = null;
+		disposed = true;
 	}
+
+	/**
+	 * Checks whether the renderer is disposed and if so throws an {@link IllegalStateException}.
+	 *
+	 * @since 1.6
+	 */
+	protected void checkRenderer() {
+		if (disposed) {
+			throw new IllegalStateException("Renderer is disposed"); //$NON-NLS-1$
+		}
+
+	}
+
+	/**
+	 * The {@link SWTRendererFactory} instance to use.
+	 *
+	 * @return the {@link SWTRendererFactory}
+	 * @since 1.6
+	 */
+	protected final ReportService getReportService() {
+		checkRenderer();
+		return reportService;
+	}
+
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.model.common/src/org/eclipse/emf/ecp/view/model/common/EnumComboViewerRendererTester.java b/bundles/org.eclipse.emf.ecp.view.model.common/src/org/eclipse/emf/ecp/view/model/common/EnumComboViewerRendererTester.java
index 166bfea..8f16ca0 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.common/src/org/eclipse/emf/ecp/view/model/common/EnumComboViewerRendererTester.java
+++ b/bundles/org.eclipse.emf.ecp.view.model.common/src/org/eclipse/emf/ecp/view/model/common/EnumComboViewerRendererTester.java
@@ -11,15 +11,16 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.model.common;
 
-import java.util.Iterator;
-
+import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
 import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecp.view.internal.model.common.Activator;
 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.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 
 /**
  * Tester for Text Renderer.
@@ -42,12 +43,15 @@
 			return NOT_APPLICABLE;
 		}
 		final VControl control = (VControl) vElement;
-		final Setting setting = getSetting(control);
-		if (setting == null) {
+		IValueProperty valueProperty;
+		try {
+			valueProperty = Activator.getDefault().getEMFFormsDatabinding()
+				.getValueProperty(control.getDomainModelReference(), viewModelContext.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
 			return NOT_APPLICABLE;
 		}
-
-		final EStructuralFeature feature = setting.getEStructuralFeature();
+		final EStructuralFeature feature = (EStructuralFeature) valueProperty.getValueType();
 		if (feature.isMany()) {
 			return NOT_APPLICABLE;
 		}
@@ -62,18 +66,4 @@
 		return NOT_APPLICABLE;
 	}
 
-	private Setting getSetting(VControl control) {
-		final Iterator<Setting> iterator = control.getDomainModelReference().getIterator();
-		int count = 0;
-		Setting setting = null;
-		while (iterator.hasNext()) {
-			count++;
-			setting = iterator.next();
-		}
-		if (count != 1) {
-			return null;
-		}
-		return setting;
-	}
-
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.model.common/src/org/eclipse/emf/ecp/view/model/common/SimpleControlRendererTester.java b/bundles/org.eclipse.emf.ecp.view.model.common/src/org/eclipse/emf/ecp/view/model/common/SimpleControlRendererTester.java
index eb3a95e..06ef18f 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.common/src/org/eclipse/emf/ecp/view/model/common/SimpleControlRendererTester.java
+++ b/bundles/org.eclipse.emf.ecp.view.model.common/src/org/eclipse/emf/ecp/view/model/common/SimpleControlRendererTester.java
@@ -11,18 +11,20 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.model.common;
 
-import java.util.Iterator;
-
+import org.eclipse.core.databinding.observable.IObserving;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EAnnotation;
 import org.eclipse.emf.ecore.EAttribute;
 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.ecp.view.internal.model.common.Activator;
 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.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 
 /**
  * Tester for Control Renderer.
@@ -44,13 +46,17 @@
 			return NOT_APPLICABLE;
 		}
 		final VControl control = (VControl) vElement;
-		final Setting setting = getSetting(control);
-		if (setting == null) {
+		IObservableValue observableValue;
+		try {
+			observableValue = Activator.getDefault().getEMFFormsDatabinding()
+				.getObservableValue(control.getDomainModelReference(), viewModelContext.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
 			return NOT_APPLICABLE;
 		}
-
-		final EStructuralFeature feature = setting.getEStructuralFeature();
-		final EObject eObject = setting.getEObject();
+		final EStructuralFeature feature = (EStructuralFeature) observableValue.getValueType();
+		final EObject eObject = (EObject) ((IObserving) observableValue).getObserved();
+		observableValue.dispose();
 		// if the feature is a multiValue and the description is a singlevalue continue
 		if (isSingleValue() == feature.isMany()) {
 			return NOT_APPLICABLE;
@@ -94,20 +100,6 @@
 		return true;
 	}
 
-	private Setting getSetting(VControl control) {
-		final Iterator<Setting> iterator = control.getDomainModelReference().getIterator();
-		int count = 0;
-		Setting setting = null;
-		while (iterator.hasNext()) {
-			count++;
-			setting = iterator.next();
-		}
-		if (count != 1) {
-			return null;
-		}
-		return setting;
-	}
-
 	private boolean checkAttributeInvalid(EAttribute attribute) {
 		final Class<?> instanceClass = attribute.getEAttributeType().getInstanceClass();
 		if (instanceClass == null) {
diff --git a/bundles/org.eclipse.emf.ecp.view.model.common/src/org/eclipse/emf/ecp/view/model/common/SingleReferenceRendererTester.java b/bundles/org.eclipse.emf.ecp.view.model.common/src/org/eclipse/emf/ecp/view/model/common/SingleReferenceRendererTester.java
index d9fab2d..ae5e98e 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.common/src/org/eclipse/emf/ecp/view/model/common/SingleReferenceRendererTester.java
+++ b/bundles/org.eclipse.emf.ecp.view.model.common/src/org/eclipse/emf/ecp/view/model/common/SingleReferenceRendererTester.java
@@ -11,15 +11,16 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.model.common;
 
-import java.util.Iterator;
-
+import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
 import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecp.view.internal.model.common.Activator;
 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.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 
 /**
  * @author Lucas Koehler
@@ -40,12 +41,15 @@
 			return NOT_APPLICABLE;
 		}
 		final VControl control = (VControl) vElement;
-		final Setting setting = getSetting(control);
-		if (setting == null) {
+		IValueProperty valueProperty;
+		try {
+			valueProperty = Activator.getDefault().getEMFFormsDatabinding()
+				.getValueProperty(control.getDomainModelReference(), viewModelContext.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
 			return NOT_APPLICABLE;
 		}
-
-		final EStructuralFeature feature = setting.getEStructuralFeature();
+		final EStructuralFeature feature = (EStructuralFeature) valueProperty.getValueType();
 		if (feature.isMany()) {
 			return NOT_APPLICABLE;
 		}
@@ -59,19 +63,4 @@
 		}
 		return NOT_APPLICABLE;
 	}
-
-	private Setting getSetting(VControl control) {
-		final Iterator<Setting> iterator = control.getDomainModelReference().getIterator();
-		int count = 0;
-		Setting setting = null;
-		while (iterator.hasNext()) {
-			count++;
-			setting = iterator.next();
-		}
-		if (count != 1) {
-			return null;
-		}
-		return setting;
-	}
-
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.model.common/src/org/eclipse/emf/ecp/view/model/common/XMLDateControlRendererTester.java b/bundles/org.eclipse.emf.ecp.view.model.common/src/org/eclipse/emf/ecp/view/model/common/XMLDateControlRendererTester.java
index 0fa2408..d497060 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.common/src/org/eclipse/emf/ecp/view/model/common/XMLDateControlRendererTester.java
+++ b/bundles/org.eclipse.emf.ecp.view.model.common/src/org/eclipse/emf/ecp/view/model/common/XMLDateControlRendererTester.java
@@ -11,21 +11,22 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.model.common;
 
-import java.util.Iterator;
-
 import javax.xml.datatype.XMLGregorianCalendar;
 
+import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EAnnotation;
 import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EDataType;
 import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
 import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
+import org.eclipse.emf.ecp.view.internal.model.common.Activator;
 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.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 
 /**
  * Tester for Text Renderer.
@@ -52,14 +53,16 @@
 		if (!VControl.class.isInstance(vElement)) {
 			return NOT_APPLICABLE;
 		}
-
 		final VControl control = (VControl) vElement;
-		final Setting setting = getSetting(control);
-		if (setting == null) {
+		IValueProperty valueProperty;
+		try {
+			valueProperty = Activator.getDefault().getEMFFormsDatabinding()
+				.getValueProperty(control.getDomainModelReference(), viewModelContext.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
 			return NOT_APPLICABLE;
 		}
-
-		final EStructuralFeature feature = setting.getEStructuralFeature();
+		final EStructuralFeature feature = (EStructuralFeature) valueProperty.getValueType();
 		if (feature.isMany()) {
 			return NOT_APPLICABLE;
 		}
@@ -85,20 +88,6 @@
 		return NOT_APPLICABLE;
 	}
 
-	private Setting getSetting(VControl control) {
-		final Iterator<Setting> iterator = control.getDomainModelReference().getIterator();
-		int count = 0;
-		Setting setting = null;
-		while (iterator.hasNext()) {
-			count++;
-			setting = iterator.next();
-		}
-		if (count != 1) {
-			return null;
-		}
-		return setting;
-	}
-
 	private int getPriority() {
 		return 3;
 	}
diff --git a/bundles/org.eclipse.emf.ecp.view.model.common/src/org/eclipse/emf/ecp/view/model/common/internal/databinding/FeaturePathDatabindingProviderService.java b/bundles/org.eclipse.emf.ecp.view.model.common/src/org/eclipse/emf/ecp/view/model/common/internal/databinding/FeaturePathDatabindingProviderService.java
deleted file mode 100644
index 5a421e7..0000000
--- a/bundles/org.eclipse.emf.ecp.view.model.common/src/org/eclipse/emf/ecp/view/model/common/internal/databinding/FeaturePathDatabindingProviderService.java
+++ /dev/null
@@ -1,143 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eugen - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.model.common.internal.databinding;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.property.IProperty;
-import org.eclipse.core.databinding.property.value.IValueProperty;
-import org.eclipse.emf.databinding.EMFProperties;
-import org.eclipse.emf.databinding.FeaturePath;
-import org.eclipse.emf.databinding.edit.EMFEditObservables;
-import org.eclipse.emf.databinding.edit.EMFEditProperties;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
-import org.eclipse.emf.ecp.view.model.common.spi.databinding.DatabindingProviderService;
-import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
-import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
-import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
-
-/**
- * @author Eugen
- *
- */
-public class FeaturePathDatabindingProviderService implements
-	DatabindingProviderService<VFeaturePathDomainModelReference> {
-
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.view.model.common.spi.databinding.DatabindingProviderService#getObservable(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference,
-	 *      java.lang.Class)
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public <O extends IObservable> O getObservable(VFeaturePathDomainModelReference domainModelReference,
-		Class<O> observableClass) {
-		if (domainModelReference == null) {
-			throw new IllegalArgumentException("The DomainModelReference must not be null."); //$NON-NLS-1$
-		}
-		if (!observableClass.isAssignableFrom(IObservableValue.class)) {
-			throw new IllegalArgumentException("A FeaturePathDomainModelReference can't provide " //$NON-NLS-1$
-				+ observableClass.getName());
-		}
-		final Setting lastSetting = getSetting(domainModelReference, SettingOption.Last);
-		return (O) EMFEditObservables.observeValue(
-			AdapterFactoryEditingDomain.getEditingDomainFor(lastSetting.getEObject()), lastSetting.getEObject(),
-			lastSetting.getEStructuralFeature());
-	}
-
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.view.model.common.spi.databinding.DatabindingProviderService#getProperty(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference,
-	 *      java.lang.Class)
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public <P extends IProperty> P getProperty(VFeaturePathDomainModelReference domainModelReference,
-		Class<P> propertyClass) {
-		if (domainModelReference == null) {
-			throw new IllegalArgumentException("The DomainModelReference must not be null."); //$NON-NLS-1$
-		}
-		if (!propertyClass.isAssignableFrom(IValueProperty.class)) {
-			throw new IllegalArgumentException("A FeaturePathDomainModelReference can't provide " //$NON-NLS-1$
-				+ propertyClass.getName());
-		}
-		final List<EStructuralFeature> fullList = new ArrayList<EStructuralFeature>(
-			domainModelReference.getDomainModelEReferencePath());
-		fullList.add(domainModelReference.getDomainModelEFeature());
-		final FeaturePath featurePath = FeaturePath.fromList(fullList.toArray(new EStructuralFeature[0]));
-		final Setting setting = getLastSettingForProperty(domainModelReference);
-		return setting == null ? (P) EMFProperties.value(featurePath) : (P) EMFEditProperties.value(
-			AdapterFactoryEditingDomain.getEditingDomainFor(setting.getEObject()), featurePath);
-	}
-
-	private Setting getLastSettingForProperty(VFeaturePathDomainModelReference domainModelReference) {
-		try {
-			return getSetting(domainModelReference, SettingOption.Last);
-		} catch (final IllegalArgumentException ex) {
-			// dmr not resolved -> try parent
-		}
-		if (!VDomainModelReference.class.isInstance(domainModelReference.eContainer())) {
-			return null;
-		}
-		try {
-			return getSetting((VDomainModelReference) domainModelReference.eContainer(), SettingOption.First);
-		} catch (final IllegalArgumentException ex) {
-			return null;
-		}
-	}
-
-	private Setting getSetting(VDomainModelReference domainModelReference, SettingOption option) {
-		final Iterator<Setting> iterator = domainModelReference.getIterator();
-		if (iterator == null) {
-			throw new IllegalArgumentException("The DomainModelReference must be resolved."); //$NON-NLS-1$
-		}
-		switch (option) {
-		case Last:
-			Setting lastSetting = null;
-			int numberSettings = 0;
-			while (iterator.hasNext()) {
-				lastSetting = iterator.next();
-				numberSettings++;
-			}
-			if (lastSetting == null || numberSettings != 1) {
-				throw new IllegalArgumentException("The DomainModelReference must be resolved."); //$NON-NLS-1$
-			}
-			return lastSetting;
-
-		case First:
-			while (iterator.hasNext()) {
-				return iterator.next();
-			}
-			throw new IllegalArgumentException("The DomainModelReference must be resolved."); //$NON-NLS-1$
-
-		default:
-			throw new IllegalArgumentException("Unknown option."); //$NON-NLS-1$
-		}
-
-	}
-
-	/**
-	 * Options for getting a setting from a dmr.
-	 *
-	 */
-	private enum SettingOption {
-		First, Last
-	}
-
-}
diff --git a/bundles/org.eclipse.emf.ecp.view.model.common/src/org/eclipse/emf/ecp/view/model/common/spi/databinding/DatabindingProviderService.java b/bundles/org.eclipse.emf.ecp.view.model.common/src/org/eclipse/emf/ecp/view/model/common/spi/databinding/DatabindingProviderService.java
deleted file mode 100644
index 1dc78b7..0000000
--- a/bundles/org.eclipse.emf.ecp.view.model.common/src/org/eclipse/emf/ecp/view/model/common/spi/databinding/DatabindingProviderService.java
+++ /dev/null
@@ -1,47 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eugen - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.model.common.spi.databinding;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.property.IProperty;
-import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
-
-/**
- * A service providing a conversion from a VDomainModelReference to databinding classes.
- *
- * @author Eugen Neufeld
- * @param <DMR> the {@link VDomainModelReference} this service is working for
- */
-public interface DatabindingProviderService<DMR extends VDomainModelReference> {
-
-	/**
-	 * Get the {@link IObservable} for the provided {@link VDomainModelReference}. A {@link IllegalArgumentException} is
-	 * thrown if the passed {@link VDomainModelReference} can't provide the {@link IObservable}.
-	 *
-	 * @param domainModelReference the {@link VDomainModelReference} to get the {@link IObservable} for
-	 * @param observableClass the type of the {@link IObservable}
-	 * @param <O> the type of the {@link IObservable}
-	 * @return the {@link IObservable}
-	 */
-	<O extends IObservable> O getObservable(DMR domainModelReference, Class<O> observableClass);
-
-	/**
-	 * Get the {@link IProperty} for the provided {@link VDomainModelReference}. A {@link IllegalArgumentException} is
-	 * thrown if the passed {@link VDomainModelReference} can't provide the {@link IProperty}.
-	 *
-	 * @param domainModelReference the {@link VDomainModelReference} to get the {@link IProperty} for
-	 * @param propertyClass the type of the {@link IProperty}
-	 * @param <P> the type of the {@link IProperty}
-	 * @return the {@link IProperty}
-	 */
-	<P extends IProperty> P getProperty(DMR domainModelReference, Class<P> propertyClass);
-}
diff --git a/bundles/org.eclipse.emf.ecp.view.model.edit/.gitignore b/bundles/org.eclipse.emf.ecp.view.model.edit/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.model.edit/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.view.model.edit/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.model.edit/.settings/.api_filters
index 563d1cc..2d25d9c 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.edit/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.model.edit/.settings/.api_filters
@@ -1,10 +1,34 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.emf.ecp.view.model.edit" version="2">
     <resource path="META-INF/MANIFEST.MF">
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.model.edit_1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
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 b8a6232..ce3d3ed 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.spi.model.provider.ViewEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.view.spi.model.provider;version="1
- .5.1"
+ .6.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.emf.ecp.view.model;bundle-version="[1.5.0,2.0.0)";visibility:=reexport,
  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
diff --git a/bundles/org.eclipse.emf.ecp.view.model.edit/plugin.properties b/bundles/org.eclipse.emf.ecp.view.model.edit/plugin.properties
index a0f7a7893..801182a 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.edit/plugin.properties
+++ b/bundles/org.eclipse.emf.ecp.view.model.edit/plugin.properties
@@ -154,3 +154,4 @@
 _UI_DomainModelReference_changeListener_feature = Change Listener
 _UI_View_ecorePath_feature = Ecore Path
 _UI_ContainedContainer_type = Contained Container
+_UI_Element_label_feature = Label
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 764f506..d9f3574 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.5.1-SNAPSHOT</version>

+    <version>1.6.0-SNAPSHOT</version>

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

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.view.model.edit/src/org/eclipse/emf/ecp/view/spi/model/provider/ControlItemProvider.java b/bundles/org.eclipse.emf.ecp.view.model.edit/src/org/eclipse/emf/ecp/view/spi/model/provider/ControlItemProvider.java
index d51cd8c..2edafab 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.edit/src/org/eclipse/emf/ecp/view/spi/model/provider/ControlItemProvider.java
+++ b/bundles/org.eclipse.emf.ecp.view.model.edit/src/org/eclipse/emf/ecp/view/spi/model/provider/ControlItemProvider.java
@@ -17,6 +17,8 @@
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
 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.VElementUtil;
 import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
 import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
 import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
@@ -140,7 +142,10 @@
 	 */
 	@Override
 	public String getText(Object object) {
-		final String label = ((VControl) object).getName();
+		String label = ((VControl) object).getName();
+		if (label == null) {
+			label = VElementUtil.getCleanName(VElement.class.cast(object));
+		}
 		return label == null || label.length() == 0 ? getString("_UI_Control_type") : label; //$NON-NLS-1$
 	}
 
diff --git a/bundles/org.eclipse.emf.ecp.view.model.edit/src/org/eclipse/emf/ecp/view/spi/model/provider/ElementItemProvider.java b/bundles/org.eclipse.emf.ecp.view.model.edit/src/org/eclipse/emf/ecp/view/spi/model/provider/ElementItemProvider.java
index ce36f9e..3fff8a7 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.edit/src/org/eclipse/emf/ecp/view/spi/model/provider/ElementItemProvider.java
+++ b/bundles/org.eclipse.emf.ecp.view.model.edit/src/org/eclipse/emf/ecp/view/spi/model/provider/ElementItemProvider.java
@@ -36,10 +36,11 @@
 /**
  * This is the item provider adapter for a {@link org.eclipse.emf.ecp.view.spi.model.VElement} object.
  * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
+ *
+ * @since 1.2
+ *        <!-- end-user-doc -->
  *
  * @generated
- * @since 1.2
  */
 public class ElementItemProvider
 	extends ItemProviderAdapter
@@ -74,6 +75,7 @@
 			super.getPropertyDescriptors(object);
 
 			addNamePropertyDescriptor(object);
+			addLabelPropertyDescriptor(object);
 			addVisiblePropertyDescriptor(object);
 			addEnabledPropertyDescriptor(object);
 			addReadonlyPropertyDescriptor(object);
@@ -106,6 +108,32 @@
 	}
 
 	/**
+	 * This adds a property descriptor for the Label feature.
+	 * <!-- begin-user-doc -->
+	 * 
+	 * @since 1.6
+	 *        <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected void addLabelPropertyDescriptor(Object object)
+	{
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+			(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+				getResourceLocator(),
+				getString("_UI_Element_label_feature"), //$NON-NLS-1$
+				getString("_UI_PropertyDescriptor_description", "_UI_Element_label_feature", "_UI_Element_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				VViewPackage.Literals.ELEMENT__LABEL,
+				true,
+				false,
+				false,
+				ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				null,
+				null));
+	}
+
+	/**
 	 * This adds a property descriptor for the Visible feature.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/bundles/org.eclipse.emf.ecp.view.model.edit/src/org/eclipse/emf/ecp/view/spi/model/provider/ViewItemProvider.java b/bundles/org.eclipse.emf.ecp.view.model.edit/src/org/eclipse/emf/ecp/view/spi/model/provider/ViewItemProvider.java
index 6a6c421..5c1e0ce 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.edit/src/org/eclipse/emf/ecp/view/spi/model/provider/ViewItemProvider.java
+++ b/bundles/org.eclipse.emf.ecp.view.model.edit/src/org/eclipse/emf/ecp/view/spi/model/provider/ViewItemProvider.java
@@ -17,6 +17,8 @@
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emf.ecp.view.spi.model.VElementUtil;
 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;
@@ -169,7 +171,10 @@
 	 */
 	@Override
 	public String getText(Object object) {
-		final String label = ((VView) object).getName();
+		String label = ((VView) object).getName();
+		if (label == null) {
+			label = VElementUtil.getCleanName(VElement.class.cast(object));
+		}
 		return label == null || label.length() == 0 ? getString("_UI_View_type") : label; //$NON-NLS-1$
 	}
 
diff --git a/bundles/org.eclipse.emf.ecp.view.model.editor.project.installer/.gitignore b/bundles/org.eclipse.emf.ecp.view.model.editor.project.installer/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.model.editor.project.installer/.gitignore
@@ -0,0 +1 @@
+/bin/
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 dd396fb..e552850 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,7 +2,7 @@
 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.model.internal.project.installer.Activator
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.emf.ecp.view.model.editor;bundle-version="[1.5.0,2.0.0)",
@@ -18,6 +18,6 @@
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.emf.ecp.view.model.internal.project.handle
- rs;version="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.model.in
- ternal.project.installer;version="1.5.1";x-internal:=true
+ rs;version="1.6.0";x-internal:=true,org.eclipse.emf.ecp.view.model.in
+ ternal.project.installer;version="1.6.0";x-internal:=true
 Bundle-Vendor: Eclipse Modeling Project
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 1aaad25..772f4b6 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.model.editor/.gitignore b/bundles/org.eclipse.emf.ecp.view.model.editor/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.model.editor/.gitignore
@@ -0,0 +1 @@
+/bin/
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 a708a88..108837a 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,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.editor;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.model.presentation.ViewEditorPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.ecp.view.model.actions;version="1.5.1"
+Export-Package: org.eclipse.emf.ecp.view.model.actions;version="1.6.0"
  ;x-internal:=true,org.eclipse.emf.ecp.view.model.presentation;version
- ="1.5.1";x-friends:="org.eclipse.emf.ecp.view.model.project.installer"
+ ="1.6.0";x-friends:="org.eclipse.emf.ecp.view.model.project.installer"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.core.resources;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.5.0,2.0.0)",
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 239824f..a6197cc 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.5.1-SNAPSHOT</version>
+    <version>1.6.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/ViewModelWizard.java b/bundles/org.eclipse.emf.ecp.view.model.editor/src/org/eclipse/emf/ecp/view/model/presentation/ViewModelWizard.java
index 16b7872..bc92f0e 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
@@ -15,12 +15,15 @@
 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;
 import java.util.Arrays;
 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;
@@ -53,6 +56,7 @@
 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;
 
 /**
@@ -63,6 +67,7 @@
  */
 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<ViewModelWizardNewFileCreationPage> fileCreationPages;
@@ -210,7 +215,6 @@
 	 */
 	@Override
 	public void addPages() {
-
 		selectEcorePage = new SelectEcorePage(PLUGIN_ID);
 		addPage(selectEcorePage);
 
@@ -226,8 +230,7 @@
 	 */
 	@Override
 	public IWizardPage getStartingPage() {
-		if (selectedContainer == null)
-		{
+		if (selectedContainer == null) {
 			return selectEcorePage;
 		}
 
@@ -292,8 +295,7 @@
 		EPackage ePackage = null;
 		if (EPackage.class.isInstance(selectedContainer)) {
 			ePackage = EPackage.class.cast(selectedContainer);
-		}
-		else if (IFile.class.isInstance(selectedContainer)) {
+		} else if (IFile.class.isInstance(selectedContainer)) {
 			final ResourceSetImpl resourceSet = new ResourceSetImpl();
 			final String path = ((IFile) selectedContainer).getFullPath().toString();
 			final URI uri = URI.createPlatformResourceURI(path, true);
@@ -347,8 +349,7 @@
 
 		if (page == selectEClassPage) {
 			return selectEcorePage;
-		}
-		else if (ViewModelWizardNewFileCreationPage.class.isInstance(page)) {
+		} else if (ViewModelWizardNewFileCreationPage.class.isInstance(page)) {
 			return selectEClassPage;
 		}
 
@@ -458,8 +459,7 @@
 		final String path;
 		if (lastPathDelimiter == -1) {
 			path = projectRelPath;
-		}
-		else {
+		} else {
 			path = projectRelPath.substring(0, projectRelPath.lastIndexOf("/") + 1); //$NON-NLS-1$
 		}
 		final String includes = "bin.includes"; //$NON-NLS-1$
@@ -525,14 +525,18 @@
 	protected void addContribution(IFile modelFile) {
 
 		final IProject project = modelFile.getProject();
-		final IFile pluginFile = project.getFile("plugin.xml"); //$NON-NLS-1$
-		try {
-			if (!pluginFile.exists())
-			{
-				final String pluginXmlContents = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<?eclipse version=\"3.4\"?>\n<plugin>\n</plugin>"; //$NON-NLS-1$
-				pluginFile.create(new ByteArrayInputStream(pluginXmlContents.getBytes()), true, null);
-				project.refreshLocal(IResource.DEPTH_INFINITE, null);
 
+		final boolean isFragmentProject = isFragmentProject(project);
+		final String contributionFileName = isFragmentProject ? "fragment.xml" : "plugin.xml"; //$NON-NLS-1$ //$NON-NLS-2$
+
+		final IFile pluginFile = project.getFile(contributionFileName);
+		try {
+			if (!pluginFile.exists()) {
+				final String xmlContents = MessageFormat.format(
+					"<?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$
@@ -548,16 +552,16 @@
 
 						line = line.substring(0, end)
 							+ ">\n" + filePathAttribute + "\n</extension>\n" + line.substring(end + 2, line.length()); //$NON-NLS-1$ //$NON-NLS-2$
-					}
-					else {
+					} else {
 						final String filePathAttribute = "<file filePath=\"" //$NON-NLS-1$
 							+ modelFile.getProjectRelativePath().toString() + "\"/>"; //$NON-NLS-1$
 						line = line.concat("\n" + filePathAttribute + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
 					}
 					extensionAdded = true;
 				}
-				if (line.contains("</plugin>") && !extensionAdded) { //$NON-NLS-1$
-					final int end = line.indexOf("</plugin>"); //$NON-NLS-1$
+				final String eof = isFragmentProject ? "</fragment>" : "</plugin>"; //$NON-NLS-1$ //$NON-NLS-2$
+				if (line.contains(eof) && !extensionAdded) {
+					final int end = line.indexOf(eof);
 					line = line.substring(0, end)
 						+ "\n<extension  point=\"org.eclipse.emf.ecp.view.model.provider.xmi.file\">\n<file filePath=\"" //$NON-NLS-1$
 						+ modelFile.getProjectRelativePath().toString()
@@ -581,6 +585,26 @@
 		}
 	}
 
+	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}.
 	 *
diff --git a/bundles/org.eclipse.emf.ecp.view.model.generator/.gitignore b/bundles/org.eclipse.emf.ecp.view.model.generator/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.model.generator/.gitignore
@@ -0,0 +1 @@
+/bin/
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 e797fa1..cf4a602 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Generator
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.provider.generator;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 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)",
@@ -10,5 +10,5 @@
  org.eclipse.emf.ecp.ui.view;bundle-version="[1.5.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emf.ecp.view.model.generator;version="1.5.
- 1";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.model.generator;version="1.6.
+ 0";x-internal:=true
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 cdf5873..199312e 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.5.1-SNAPSHOT</version>

+    <version>1.6.0-SNAPSHOT</version>

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

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.view.model.generator/src/org/eclipse/emf/ecp/view/model/generator/ViewProvider.java b/bundles/org.eclipse.emf.ecp.view.model.generator/src/org/eclipse/emf/ecp/view/model/generator/ViewProvider.java
index 3877b3f..de20acc 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.generator/src/org/eclipse/emf/ecp/view/model/generator/ViewProvider.java
+++ b/bundles/org.eclipse.emf.ecp.view.model.generator/src/org/eclipse/emf/ecp/view/model/generator/ViewProvider.java
@@ -44,20 +44,37 @@
 	@Override
 	public VView generate(EObject eObject, Map<String, Object> context) {
 		final VView view = VViewFactory.eINSTANCE.createView();
-		for (final EStructuralFeature feature : getValidFeatures(eObject)) {
+		final ComposedAdapterFactory composedAdapterFactory = new ComposedAdapterFactory(
+			new AdapterFactory[] {
+				new ReflectiveItemProviderAdapterFactory(),
+				new ComposedAdapterFactory(
+					ComposedAdapterFactory.Descriptor.Registry.INSTANCE) });
+		final AdapterFactoryItemDelegator delegator = new AdapterFactoryItemDelegator(
+			composedAdapterFactory);
+		for (final EStructuralFeature feature : getValidFeatures(delegator, eObject)) {
 
 			final VControl control = VViewFactory.eINSTANCE.createControl();
 			final VFeaturePathDomainModelReference modelReference = VViewFactory.eINSTANCE
 				.createFeaturePathDomainModelReference();
 			modelReference.setDomainModelEFeature(feature);
 			control.setDomainModelReference(modelReference);
-			control.setReadonly(!feature.isChangeable());
+			control.setReadonly(isReadOnly(delegator, eObject, feature));
 			view.getChildren().add(control);
 		}
-
+		composedAdapterFactory.dispose();
 		return view;
 	}
 
+	private boolean isReadOnly(AdapterFactoryItemDelegator delegator,
+		EObject owner, EStructuralFeature feature) {
+		if (!feature.isChangeable()) {
+			return true;
+		}
+		final IItemPropertyDescriptor descriptor = delegator.getPropertyDescriptor(owner,
+			feature);
+		return !descriptor.canSetProperty(feature);
+	}
+
 	private boolean isInvalidFeature(EStructuralFeature feature) {
 		return isContainerReference(feature) || isTransient(feature) || isVolatile(feature);
 	}
@@ -81,19 +98,15 @@
 		return feature.isVolatile();
 	}
 
-	private Set<EStructuralFeature> getValidFeatures(EObject eObject) {
-		final Collection<EStructuralFeature> features = eObject.eClass().getEAllStructuralFeatures();
-		final ComposedAdapterFactory composedAdapterFactory = new ComposedAdapterFactory(new AdapterFactory[] {
-			new ReflectiveItemProviderAdapterFactory(),
-			new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE) });
-		final AdapterFactoryItemDelegator adapterFactoryItemDelegator = new AdapterFactoryItemDelegator(
-			composedAdapterFactory);
+	private Set<EStructuralFeature> getValidFeatures(
+		AdapterFactoryItemDelegator itemDelegator, EObject eObject) {
+		final Collection<EStructuralFeature> features = eObject.eClass()
+			.getEAllStructuralFeatures();
 		final Set<EStructuralFeature> featuresToAdd = new LinkedHashSet<EStructuralFeature>();
 		IItemPropertyDescriptor propertyDescriptor = null;
 		for (final EStructuralFeature feature : features) {
-			propertyDescriptor =
-				adapterFactoryItemDelegator
-					.getPropertyDescriptor(eObject, feature);
+			propertyDescriptor = itemDelegator
+				.getPropertyDescriptor(eObject, feature);
 			if (propertyDescriptor == null || isInvalidFeature(feature)) {
 				continue;
 			}
@@ -101,7 +114,6 @@
 			featuresToAdd.add(feature);
 
 		}
-		composedAdapterFactory.dispose();
 		return featuresToAdd;
 	}
 
diff --git a/bundles/org.eclipse.emf.ecp.view.model.preview.common/.gitignore b/bundles/org.eclipse.emf.ecp.view.model.preview.common/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.model.preview.common/.gitignore
@@ -0,0 +1 @@
+/bin/
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 b6841a2..64d8c15 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Preview Common
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.preview.common;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.model.preview.common.Activator
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.emf.ecp.ui.view;bundle-version="[1.5.0,2.0.0)",
@@ -10,15 +10,19 @@
  org.eclipse.emf.ecp.edit;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.ui;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.5.0,2.0.0)"
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emfforms.view.model.localization;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.emf.ecp.ui.view.swt;version="1.2.0",
+ org.eclipse.emfforms.spi.common.locale;version="1.6.0",
  org.eclipse.jface;version="0.0.0",
  org.eclipse.jface.layout;version="0.0.0",
  org.eclipse.swt;version="0.0.0",
  org.eclipse.swt.widgets;version="0.0.0"
 Export-Package: org.eclipse.emf.ecp.view.model.preview.common;version=
- "1.5.1";x-friends:="org.eclipse.emf.ecp.view.model.preview.e3,org.ecl
+ "1.6.0";x-friends:="org.eclipse.emf.ecp.view.model.preview.e3,org.ecl
  ipse.emf.ecp.view.model.preview.e4"
 Bundle-Vendor: Eclipse Modeling Project
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 3d0ed19..50b6d16 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.model.preview.common/src/org/eclipse/emf/ecp/view/model/preview/common/Preview.java b/bundles/org.eclipse.emf.ecp.view.model.preview.common/src/org/eclipse/emf/ecp/view/model/preview/common/Preview.java
index 918c861..e60317f 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.preview.common/src/org/eclipse/emf/ecp/view/model/preview/common/Preview.java
+++ b/bundles/org.eclipse.emf.ecp.view.model.preview.common/src/org/eclipse/emf/ecp/view/model/preview/common/Preview.java
@@ -27,6 +27,7 @@
 import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
 import org.eclipse.emf.ecore.util.EContentAdapter;
 import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecp.edit.spi.EMFDeleteServiceImpl;
 import org.eclipse.emf.ecp.edit.spi.ReferenceService;
 import org.eclipse.emf.ecp.ui.view.ECPRendererException;
 import org.eclipse.emf.ecp.ui.view.swt.DefaultReferenceService;
@@ -35,6 +36,7 @@
 import org.eclipse.emf.ecp.view.model.common.edit.provider.CustomReflectiveItemProviderAdapterFactory;
 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.LocalizationAdapter;
 import org.eclipse.emf.ecp.view.spi.model.VControl;
 import org.eclipse.emf.ecp.view.spi.model.VView;
 import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
@@ -63,7 +65,7 @@
 	 * The constructor.
 	 *
 	 * @param parent - the {@link Composite} in which to render
-	 * */
+	 */
 	public Preview(Composite parent) {
 		this.parent = parent;
 	}
@@ -73,7 +75,7 @@
 	 *
 	 * @param view the {@link VView}
 	 * @param sampleData the sample data to be displayed in the view
-	 * */
+	 */
 	public void render(final VView view, EObject sampleData) {
 		if (adapter != null) {
 			removeAdapter();
@@ -145,9 +147,15 @@
 
 			final ReferenceService previewRefServ = new DefaultReferenceService();
 			final VView copy = EcoreUtil.copy(view);
+			copy.eAdapters().add(new LocalizationAdapter() {
+				@Override
+				public String localize(String key) {
+					return key;
+				}
+			});
 			clearViewDiagnostics(copy);
 			final ViewModelContext viewModelContext = ViewModelContextFactory.INSTANCE.createViewModelContext(
-				copy, dummyData, previewRefServ);
+				copy, dummyData, previewRefServ, new EMFDeleteServiceImpl());
 			composite = createComposite(parent);
 			render = ECPSWTViewRenderer.INSTANCE.render(composite, viewModelContext);
 			composite.layout();
diff --git a/bundles/org.eclipse.emf.ecp.view.model.preview.e3/.gitignore b/bundles/org.eclipse.emf.ecp.view.model.preview.e3/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.model.preview.e3/.gitignore
@@ -0,0 +1 @@
+/bin/
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 d7fe85d..09bb776 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Preview View
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.preview.e3;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.model.internal.preview.Activator
 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.5.0,2.0.0)",
@@ -17,9 +17,9 @@
 Bundle-ActivationPolicy: lazy
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emf.ecp.view.model.internal.preview;versio
- n="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.model.internal.pr
- eview.actions;version="1.5.1";x-internal:=true,org.eclipse.emf.ecp.vi
- ew.model.internal.preview.e3.views;version="1.5.1";x-internal:=true
+ n="1.6.0";x-internal:=true,org.eclipse.emf.ecp.view.model.internal.pr
+ eview.actions;version="1.6.0";x-internal:=true,org.eclipse.emf.ecp.vi
+ ew.model.internal.preview.e3.views;version="1.6.0";x-internal:=true
 Import-Package: org.eclipse.core.commands;version="0.0.0",
  org.eclipse.jface.action;version="0.0.0",
  org.eclipse.jface.dialogs;version="0.0.0",
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 a508055..838181c 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
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.model.provider.xmi/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.model.provider.xmi/.settings/.api_filters
index 7d74083..26a54d5 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.provider.xmi/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.model.provider.xmi/.settings/.api_filters
@@ -1,10 +1,34 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.emf.ecp.view.model.provider.xmi" version="2">
     <resource path="META-INF/MANIFEST.MF">
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.ui.view"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.model.provider.xmi_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.model.provider.xmi_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.model.provider.xmi_1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
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 047c196..353783e 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,16 +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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.internal.view.model.provider.xmi.Activator
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.core.runtime;bundle-version="3.8.0",
  org.eclipse.emf.ecp.view.model;bundle-version="[1.5.0,2.0.0)";visibility:=reexport,
  org.eclipse.emf.ecore.xmi;bundle-version="2.8.0",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.5.0,2.0.0)";visibility:=reexport
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.5.0,2.0.0)";visibility:=reexport,
+ org.eclipse.emfforms.localization;bundle-version="[1.6.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.emf.ecp.internal.view.model.provider.xmi;v
- ersion="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.model.provid
- er.xmi;version="1.5.1";x-friends:="org.eclipse.emf.ecp.ui.view.editor
+ ersion="1.6.0";x-internal:=true,org.eclipse.emf.ecp.view.model.provid
+ er.xmi;version="1.6.0";x-friends:="org.eclipse.emf.ecp.ui.view.editor
  .controls"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.6.0,2.0.0)"
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 9a80f04..3c368e9 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.5.1-SNAPSHOT</version>

+    <version>1.6.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/internal/view/model/provider/xmi/Activator.java b/bundles/org.eclipse.emf.ecp.view.model.provider.xmi/src/org/eclipse/emf/ecp/internal/view/model/provider/xmi/Activator.java
index c83a865..cec57cb 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.provider.xmi/src/org/eclipse/emf/ecp/internal/view/model/provider/xmi/Activator.java
+++ b/bundles/org.eclipse.emf.ecp.view.model.provider.xmi/src/org/eclipse/emf/ecp/internal/view/model/provider/xmi/Activator.java
@@ -11,10 +11,10 @@
  ******************************************************************************/

 package org.eclipse.emf.ecp.internal.view.model.provider.xmi;

 

-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;

 

 /**

  * Activator of the bundle.

@@ -31,6 +31,8 @@
 

 	private static Activator activator;

 

+	private static ServiceReference<ReportService> reportServiceReference;

+

 	/**

 	 *

 	 * {@inheritDoc}

@@ -55,12 +57,15 @@
 	}

 

 	/**

-	 * Logs an exception.

+	 * Returns the {@link ReportService}.

 	 *

-	 * @param e the exception

+	 * @return the {@link ReportService}

 	 */

-	public static void log(Exception e) {

-		activator.getLog().log(

-			new Status(IStatus.ERROR, PLUGIN_ID, e.getMessage(), e));

+	public static ReportService getReportService() {

+		if (reportServiceReference == null) {

+			reportServiceReference = activator.getBundle().getBundleContext()

+				.getServiceReference(ReportService.class);

+		}

+		return activator.getBundle().getBundleContext().getService(reportServiceReference);

 	}

 }

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 b2c94e4..1eb42e4 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
@@ -18,6 +18,7 @@
 
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.common.notify.Adapter;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EObject;
@@ -28,9 +29,11 @@
 import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
 import org.eclipse.emf.ecp.internal.view.model.provider.xmi.Activator;
+import org.eclipse.emf.ecp.view.spi.model.LocalizationAdapter;
 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.ViewModelUtil;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
 
 /**
  * Manages the view models provided by the file extension point.
@@ -65,11 +68,8 @@
 		return instance;
 	}
 
-	/**
-	 *
-	 */
 	private void init() {
-		final Map<URI, Map<String, String>> extensionURIS = getExtensionURIS();
+		final Map<URI, ExtensionDescription> extensionURIS = getExtensionURIS();
 		for (final URI uri : extensionURIS.keySet()) {
 			final Resource resource = loadResource(uri);
 			final EObject eObject = resource.getContents().get(0);
@@ -78,14 +78,24 @@
 				continue;
 			}
 			final VView view = (VView) eObject;
+
 			if (view.getRootEClass() == null) {
 				// TODO:log
 				continue;
 			}
+			final ExtensionDescription extensionDescription = extensionURIS.get(uri);
+			view.eAdapters().add(new LocalizationAdapter() {
+
+				@Override
+				public String localize(String key) {
+					return LocalizationServiceHelper.getString(Platform.getBundle(extensionDescription.getBundleId()),
+						key);
+				}
+			});
 			if (!map.containsKey(view.getRootEClass())) {
 				map.put(view.getRootEClass(), new LinkedHashMap<VView, Map<String, String>>());
 			}
-			map.get(view.getRootEClass()).put(view, extensionURIS.get(uri));
+			map.get(view.getRootEClass()).put(view, extensionDescription.getKeyValuPairs());
 		}
 
 	}
@@ -111,11 +121,7 @@
 		try {
 			resource.load(loadOptions);
 		} catch (final IOException exception) {
-			Activator.log(exception);
-			if (ViewModelUtil.isDebugMode()) {
-				dispose();
-				throw new IllegalStateException(exception);
-			}
+			Activator.getReportService().report(new AbstractReport(exception));
 		}
 		return resource;
 	}
@@ -131,12 +137,13 @@
 	 *
 	 * @return a list of uris of all xmi files registered
 	 */
-	public static Map<URI, Map<String, String>> getExtensionURIS() {
-		final Map<URI, Map<String, String>> ret = new LinkedHashMap<URI, Map<String, String>>();
+	public static Map<URI, ExtensionDescription> getExtensionURIS() {
+		final Map<URI, ExtensionDescription> ret = new LinkedHashMap<URI, ExtensionDescription>();
 		final IConfigurationElement[] files = Platform.getExtensionRegistry().getConfigurationElementsFor(
 			FILE_EXTENSION);
 		final URIConverter converter = new ResourceSetImpl().getURIConverter();
 		for (final IConfigurationElement file : files) {
+			final String bundleId = file.getContributor().getName();
 			final String filePath = file.getAttribute(FILEPATH_ATTRIBUTE);
 
 			final IConfigurationElement[] children = file.getChildren(FILTER_ELEMENT);
@@ -152,11 +159,11 @@
 			final String path = bundleName + '/' + filePath;
 			uri = URI.createPlatformPluginURI(path, false);
 			if (converter.exists(uri, null)) {
-				ret.put(uri, keyValuePairs);
+				ret.put(uri, new ExtensionDescription(keyValuePairs, bundleId));
 			} else {
 				uri = URI.createPlatformResourceURI(filePath, false);
 				if (converter.exists(uri, null)) {
-					ret.put(uri, keyValuePairs);
+					ret.put(uri, new ExtensionDescription(keyValuePairs, bundleId));
 				}
 			}
 
@@ -211,7 +218,45 @@
 			}
 		}
 
-		return EcoreUtil.copy(bestFitting);
+		final Adapter adapter = bestFitting.eAdapters().get(0);
+		final VView copiedView = EcoreUtil.copy(bestFitting);
+		copiedView.eAdapters().add(adapter);
+		return copiedView;
+	}
+
+	/**
+	 *
+	 * Inner class to hold the relevant data of the extension point.
+	 *
+	 * @author Eugen Neufeld
+	 *
+	 */
+	static final class ExtensionDescription {
+		private final Map<String, String> keyValuPairs;
+		private final String bundleId;
+
+		private ExtensionDescription(Map<String, String> keyValuPairs, String bundleId) {
+			this.keyValuPairs = keyValuPairs;
+			this.bundleId = bundleId;
+		}
+
+		/**
+		 * Return the KeyValuePairs defined in the extension point.
+		 *
+		 * @return The KeyValuePair Map
+		 */
+		Map<String, String> getKeyValuPairs() {
+			return keyValuPairs;
+		}
+
+		/**
+		 * The Bundle Id of the bundle contributing the extension point.
+		 *
+		 * @return The BundleId
+		 */
+		String getBundleId() {
+			return bundleId;
+		}
 	}
 
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.model/.gitignore b/bundles/org.eclipse.emf.ecp.view.model/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.model/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.view.model/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.model/.settings/.api_filters
index fc8dd4b..35b03c1 100644
--- a/bundles/org.eclipse.emf.ecp.view.model/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.model/.settings/.api_filters
@@ -13,6 +13,36 @@
                 <message_argument value="1.3.0"/>
             </message_arguments>
         </filter>
+        <filter comment="SPI Change in 1.6" id="923795461">
+            <message_arguments>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </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="305324134">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.model_1.6.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305324134">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.model_1.6.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305324134">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.model_1.6.0"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/emf/ecp/view/spi/model/LabelAlignment.java" type="org.eclipse.emf.ecp.view.spi.model.LabelAlignment">
         <filter id="305365105">
@@ -49,6 +79,146 @@
         </filter>
     </resource>
     <resource path="src/org/eclipse/emf/ecp/view/spi/model/VViewPackage.java" type="org.eclipse.emf.ecp.view.spi.model.VViewPackage">
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="CONTAINED_CONTAINER_FEATURE_COUNT"/>
+                <message_argument value="7"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="CONTAINED_CONTAINER__ATTACHMENTS"/>
+                <message_argument value="5"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="CONTAINED_CONTAINER__CHILDREN"/>
+                <message_argument value="6"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="CONTAINED_CONTAINER__DIAGNOSTIC"/>
+                <message_argument value="4"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="CONTAINED_CONTAINER__ENABLED"/>
+                <message_argument value="2"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="CONTAINED_CONTAINER__READONLY"/>
+                <message_argument value="3"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="CONTAINED_CONTAINER__VISIBLE"/>
+                <message_argument value="1"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="CONTAINED_ELEMENT_FEATURE_COUNT"/>
+                <message_argument value="6"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="CONTAINED_ELEMENT__ATTACHMENTS"/>
+                <message_argument value="5"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="CONTAINED_ELEMENT__DIAGNOSTIC"/>
+                <message_argument value="4"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="CONTAINED_ELEMENT__ENABLED"/>
+                <message_argument value="2"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="CONTAINED_ELEMENT__READONLY"/>
+                <message_argument value="3"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="CONTAINED_ELEMENT__VISIBLE"/>
+                <message_argument value="1"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="CONTAINER_FEATURE_COUNT"/>
+                <message_argument value="7"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="CONTAINER__ATTACHMENTS"/>
+                <message_argument value="5"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="CONTAINER__CHILDREN"/>
+                <message_argument value="6"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="CONTAINER__DIAGNOSTIC"/>
+                <message_argument value="4"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="CONTAINER__ENABLED"/>
+                <message_argument value="2"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="CONTAINER__READONLY"/>
+                <message_argument value="3"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="CONTAINER__VISIBLE"/>
+                <message_argument value="1"/>
+            </message_arguments>
+        </filter>
         <filter comment="SPI" id="388194388">
             <message_arguments>
                 <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
@@ -56,6 +226,62 @@
                 <message_argument value="8"/>
             </message_arguments>
         </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="CONTROL_FEATURE_COUNT"/>
+                <message_argument value="8"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="CONTROL__ATTACHMENTS"/>
+                <message_argument value="5"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="CONTROL__DIAGNOSTIC"/>
+                <message_argument value="4"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="CONTROL__DOMAIN_MODEL_REFERENCE"/>
+                <message_argument value="7"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="CONTROL__ENABLED"/>
+                <message_argument value="2"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="CONTROL__LABEL_ALIGNMENT"/>
+                <message_argument value="6"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="CONTROL__READONLY"/>
+                <message_argument value="3"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="CONTROL__VISIBLE"/>
+                <message_argument value="1"/>
+            </message_arguments>
+        </filter>
         <filter comment="SPI" id="388194388">
             <message_arguments>
                 <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
@@ -70,6 +296,48 @@
                 <message_argument value="0"/>
             </message_arguments>
         </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="ELEMENT_FEATURE_COUNT"/>
+                <message_argument value="6"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="ELEMENT__ATTACHMENTS"/>
+                <message_argument value="5"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="ELEMENT__DIAGNOSTIC"/>
+                <message_argument value="4"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="ELEMENT__ENABLED"/>
+                <message_argument value="2"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="ELEMENT__READONLY"/>
+                <message_argument value="3"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="ELEMENT__VISIBLE"/>
+                <message_argument value="1"/>
+            </message_arguments>
+        </filter>
         <filter comment="SPI change (1.3)" id="388194388">
             <message_arguments>
                 <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
@@ -105,6 +373,69 @@
                 <message_argument value="8"/>
             </message_arguments>
         </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="VIEW_FEATURE_COUNT"/>
+                <message_argument value="9"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="VIEW__ATTACHMENTS"/>
+                <message_argument value="5"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="VIEW__CHILDREN"/>
+                <message_argument value="7"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="VIEW__DIAGNOSTIC"/>
+                <message_argument value="4"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="VIEW__ECORE_PATH"/>
+                <message_argument value="8"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="VIEW__ENABLED"/>
+                <message_argument value="2"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="VIEW__READONLY"/>
+                <message_argument value="3"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="VIEW__ROOT_ECLASS"/>
+                <message_argument value="6"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Added Label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage"/>
+                <message_argument value="VIEW__VISIBLE"/>
+                <message_argument value="1"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/emf/ecp/view/spi/model/VViewPackage.java" type="org.eclipse.emf.ecp.view.spi.model.VViewPackage$Literals">
         <filter comment="SPI" id="403767336">
@@ -125,6 +456,12 @@
                 <message_argument value="DOMAIN_MODEL_REFERENCE__CHANGE_LISTENER"/>
             </message_arguments>
         </filter>
+        <filter comment="Added Label field in 1.6" id="403767336">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage.Literals"/>
+                <message_argument value="ELEMENT__LABEL"/>
+            </message_arguments>
+        </filter>
         <filter comment="Internal Model Changes" id="403767336">
             <message_arguments>
                 <message_argument value="org.eclipse.emf.ecp.view.spi.model.VViewPackage.Literals"/>
@@ -132,6 +469,20 @@
             </message_arguments>
         </filter>
     </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/model/impl/Activator.java" type="org.eclipse.emf.ecp.view.spi.model.impl.Activator">
+        <filter comment="SPI Change in 1.6" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.impl.Activator"/>
+                <message_argument value="getReportService()"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Change in 1.6" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.impl.Activator"/>
+                <message_argument value="log(AbstractReport)"/>
+            </message_arguments>
+        </filter>
+    </resource>
     <resource path="src/org/eclipse/emf/ecp/view/spi/model/impl/VFeaturePathDomainModelReferenceImpl.java" type="org.eclipse.emf.ecp.view.spi.model.impl.VFeaturePathDomainModelReferenceImpl">
         <filter comment="SPI change (1.3)" id="338792546">
             <message_arguments>
@@ -140,6 +491,20 @@
             </message_arguments>
         </filter>
     </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/model/reporting/DomainModelReferenceResolutionFailedReport.java" type="org.eclipse.emf.ecp.view.spi.model.reporting.DomainModelReferenceResolutionFailedReport">
+        <filter comment="SPI Change in 1.6" id="338849923">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.DomainModelReferenceResolutionFailedReport"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/model/reporting/StatusReport.java" type="org.eclipse.emf.ecp.view.spi.model.reporting.StatusReport">
+        <filter comment="SPI Change in 1.6" id="338849923">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.StatusReport"/>
+            </message_arguments>
+        </filter>
+    </resource>
     <resource path="src/org/eclipse/emf/ecp/view/spi/model/util/ViewModelUtil.java" type="org.eclipse.emf.ecp.view.spi.model.util.ViewModelUtil">
         <filter comment="SPI change (1.3)" id="338792546">
             <message_arguments>
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 889b1b6..1bdb361 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,7 +2,7 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: %pluginName

 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model;singleton:=true

-Bundle-Version: 1.5.1.qualifier

+Bundle-Version: 1.6.0.qualifier

 Bundle-ClassPath: .

 Bundle-Vendor: %providerName

 Bundle-Localization: plugin

@@ -12,7 +12,8 @@
 Bundle-ActivationPolicy: lazy

 Bundle-Activator: org.eclipse.emf.ecp.view.spi.model.impl.Activator

 Export-Package: org.eclipse.emf.ecp.view.model.internal.reporting;vers

- ion="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.spi.model;versi

- on="1.5.1",org.eclipse.emf.ecp.view.spi.model.impl;version="1.5.1",or

- g.eclipse.emf.ecp.view.spi.model.reporting;version="1.5.1",org.eclips

- e.emf.ecp.view.spi.model.util;version="1.5.1"

+ ion="1.6.0";x-internal:=true,org.eclipse.emf.ecp.view.spi.model;versi

+ on="1.6.0",org.eclipse.emf.ecp.view.spi.model.impl;version="1.6.0",or

+ g.eclipse.emf.ecp.view.spi.model.reporting;version="1.6.0",org.eclips

+ e.emf.ecp.view.spi.model.util;version="1.6.0"

+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.6.0,2.0.0)"

diff --git a/bundles/org.eclipse.emf.ecp.view.model/OSGI-INF/org.eclipse.emf.ecp.view.model.internal.reporting.LogConsumer.xml b/bundles/org.eclipse.emf.ecp.view.model/OSGI-INF/org.eclipse.emf.ecp.view.model.internal.reporting.LogConsumer.xml
new file mode 100644
index 0000000..8b26c11
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.model/OSGI-INF/org.eclipse.emf.ecp.view.model.internal.reporting.LogConsumer.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--Generated by DS Annotation Builder [src/org/eclipse/emf/ecp/view/model/internal/reporting/LogConsumer.java]-->
+<scr:component name="org.eclipse.emf.ecp.view.model.internal.reporting.LogConsumer" xmlns:scr="http://www.osgi.org/xmlns/scr/v1.0.0">
+    <implementation class="org.eclipse.emf.ecp.view.model.internal.reporting.LogConsumer"/>
+    <service>
+        <provide interface="org.eclipse.emfforms.spi.common.report.ReportServiceConsumer"/>
+    </service>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.model/build.properties b/bundles/org.eclipse.emf.ecp.view.model/build.properties
index b7579f1..8ee1f64 100644
--- a/bundles/org.eclipse.emf.ecp.view.model/build.properties
+++ b/bundles/org.eclipse.emf.ecp.view.model/build.properties
@@ -1,16 +1,17 @@
-#

-

-bin.includes = .,\

-               model/,\

-               META-INF/,\

-               plugin.xml,\

-               plugin.properties,\

-               about.html,\

-               about.ini,\

-               about.mappings,\

-               about.properties,\

-               modeling32.png

-jars.compile.order = .

-source.. = src/

-output.. = bin/

-src.includes = about.html

+#
+
+bin.includes = .,\
+               model/,\
+               META-INF/,\
+               plugin.xml,\
+               plugin.properties,\
+               about.html,\
+               about.ini,\
+               about.mappings,\
+               about.properties,\
+               modeling32.png,\
+               OSGI-INF/
+jars.compile.order = .
+source.. = src/
+output.. = bin/
+src.includes = about.html
diff --git a/bundles/org.eclipse.emf.ecp.view.model/model/view.ecore b/bundles/org.eclipse.emf.ecp.view.model/model/view.ecore
index a7937b4..cca89b0 100644
--- a/bundles/org.eclipse.emf.ecp.view.model/model/view.ecore
+++ b/bundles/org.eclipse.emf.ecp.view.model/model/view.ecore
@@ -23,6 +23,8 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Element" abstract="true">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="label" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+        transient="true"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="visible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
         transient="true" defaultValueLiteral="true"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="enabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
diff --git a/bundles/org.eclipse.emf.ecp.view.model/pom.xml b/bundles/org.eclipse.emf.ecp.view.model/pom.xml
index 4e6e2c0..2d4c691 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.5.1-SNAPSHOT</version>

+    <version>1.6.0-SNAPSHOT</version>

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

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/model/internal/reporting/LogConsumer.java b/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/model/internal/reporting/LogConsumer.java
index cb1d437..b1dca7c 100644
--- a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/model/internal/reporting/LogConsumer.java
+++ b/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/model/internal/reporting/LogConsumer.java
@@ -11,9 +11,11 @@
  ******************************************************************************/

 package org.eclipse.emf.ecp.view.model.internal.reporting;

 

+import org.eclipse.core.runtime.IStatus;

 import org.eclipse.emf.ecp.view.spi.model.impl.Activator;

-import org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport;

-import org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer;

+import org.eclipse.emf.ecp.view.spi.model.util.ViewModelUtil;

+import org.eclipse.emfforms.spi.common.report.AbstractReport;

+import org.eclipse.emfforms.spi.common.report.ReportServiceConsumer;

 

 /**

  * A {@link ReportServiceConsumer} that logs all all received {@code ReportEntities}.

@@ -26,11 +28,13 @@
 	 *

 	 * {@inheritDoc}

 	 *

-	 * @see org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer#reported(org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport)

+	 * @see org.eclipse.emfforms.spi.common.report.ReportServiceConsumer#reported(org.eclipse.emfforms.spi.common.report.AbstractReport)

 	 */

 	@Override

 	public void reported(AbstractReport reportEntity) {

-		Activator.log(reportEntity);

+		if (reportEntity.getSeverity() > IStatus.INFO || ViewModelUtil.isDebugMode()) {

+			Activator.log(reportEntity);

+		}

 	}

 

 }

diff --git a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/model/internal/reporting/ReportServiceImpl.java b/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/model/internal/reporting/ReportServiceImpl.java
deleted file mode 100644
index 7dc9e5a..0000000
--- a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/model/internal/reporting/ReportServiceImpl.java
+++ /dev/null
@@ -1,94 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Edgar Mueller - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.model.internal.reporting;
-
-import java.util.ArrayList;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport;
-import org.eclipse.emf.ecp.view.spi.model.reporting.ReportService;
-import org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer;
-
-/**
- * Implementation of a {@link ReportService}.
- *
- * @author emueller
- */
-public class ReportServiceImpl implements ReportService {
-
-	private final List<AbstractReport> reports;
-	private final Set<ReportServiceConsumer> consumers;
-
-	/**
-	 * Constructor.
-	 */
-	public ReportServiceImpl() {
-		reports = new ArrayList<AbstractReport>();
-		consumers = new LinkedHashSet<ReportServiceConsumer>();
-	}
-
-	/**
-	 * Report an {@link AbstractReport} to the service.
-	 *
-	 * @param reportEntity
-	 *            the report entity
-	 */
-	@Override
-	public void report(AbstractReport reportEntity) {
-		reports.add(reportEntity);
-		for (final ReportServiceConsumer consumer : consumers) {
-			consumer.reported(reportEntity);
-		}
-	}
-
-	/**
-	 * Returns all ReportEntities.
-	 *
-	 * @return all ReportEntities
-	 */
-	@Override
-	public List<AbstractReport> getReports() {
-		return reports;
-	}
-
-	/**
-	 * Discards all ReportEntities.
-	 */
-	@Override
-	public void clearReports() {
-		reports.clear();
-	}
-
-	/**
-	 *
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.view.spi.model.reporting.ReportService#addConsumer(org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer)
-	 */
-	@Override
-	public void addConsumer(ReportServiceConsumer consumer) {
-		consumers.add(consumer);
-	}
-
-	/**
-	 *
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.view.spi.model.reporting.ReportService#removeConsumer(org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer)
-	 */
-	@Override
-	public void removeConsumer(ReportServiceConsumer consumer) {
-		consumers.remove(consumer);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/LocalizationAdapter.java b/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/LocalizationAdapter.java
new file mode 100644
index 0000000..e5580ce
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/LocalizationAdapter.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.model;
+
+import org.eclipse.emf.common.notify.impl.AdapterImpl;
+
+/**
+ * Abstract definition of a LocalizationAdapter.
+ *
+ * @author Eugen Neufeld
+ * @since 1.6
+ *
+ */
+public abstract class LocalizationAdapter extends AdapterImpl {
+
+	/**
+	 * Implement in order to localize a key.
+	 *
+	 * @param key The key to localize
+	 * @return The localized String
+	 */
+	public abstract String localize(String key);
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/VDomainModelReference.java b/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/VDomainModelReference.java
index 159cd53..b79e4a7 100644
--- a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/VDomainModelReference.java
+++ b/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/VDomainModelReference.java
@@ -55,6 +55,7 @@
 	 * @model dataType="org.eclipse.emf.ecp.view.spi.model.DomainModelReferenceChangeListener" transient="true"
 	 * @generated
 	 */
+	@Deprecated
 	EList<DomainModelReferenceChangeListener> getChangeListener();
 
 	/**
@@ -66,6 +67,7 @@
 	 * @return true if resolution succeeded and false otherwise
 	 * @since 1.3
 	 */
+	@Deprecated
 	boolean init(EObject object);
 
 	/**
@@ -74,6 +76,7 @@
 	 *
 	 * @return the {@link Iterator} for this domain model reference
 	 */
+	@Deprecated
 	Iterator<Setting> getIterator();
 
 	/**
@@ -84,6 +87,7 @@
 	 *         reference
 	 * @since 1.3
 	 */
+	@Deprecated
 	Iterator<EStructuralFeature> getEStructuralFeatureIterator();
 
 	/**
@@ -93,6 +97,7 @@
 	 * @return the {@link Iterator} over setting paths for this domain model reference
 	 * @since 1.3
 	 */
+	@Deprecated
 	Iterator<SettingPath> getFullPathIterator();
 
 } // VDomainModelReference
diff --git a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/VElement.java b/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/VElement.java
index 2026eef..bb38f7a 100644
--- a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/VElement.java
+++ b/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/VElement.java
@@ -17,24 +17,27 @@
 /**
  * <!-- begin-user-doc -->
  * A representation of the model object '<em><b>Renderable</b></em>'.
- * <!-- end-user-doc -->
  *
- * <p>
- * The following features are supported:
- * <ul>
- * <li>{@link org.eclipse.emf.ecp.view.spi.model.VElement#getName <em>Name</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.view.spi.model.VElement#isVisible <em>Visible</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.view.spi.model.VElement#isEnabled <em>Enabled</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.view.spi.model.VElement#isReadonly <em>Readonly</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.view.spi.model.VElement#getDiagnostic <em>Diagnostic</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.view.spi.model.VElement#getAttachments <em>Attachments</em>}</li>
- * </ul>
- * </p>
+ * @since 1.2
+ * @noimplement This interface is not intended to be implemented by clients.
+ *              <!-- end-user-doc -->
+ *
+ *              <p>
+ *              The following features are supported:
+ *              <ul>
+ *              <li>{@link org.eclipse.emf.ecp.view.spi.model.VElement#getName <em>Name</em>}</li>
+ *              <li>{@link org.eclipse.emf.ecp.view.spi.model.VElement#getLabel <em>Label</em>}</li>
+ *              <li>{@link org.eclipse.emf.ecp.view.spi.model.VElement#isVisible <em>Visible</em>}</li>
+ *              <li>{@link org.eclipse.emf.ecp.view.spi.model.VElement#isEnabled <em>Enabled</em>}</li>
+ *              <li>{@link org.eclipse.emf.ecp.view.spi.model.VElement#isReadonly <em>Readonly</em>}</li>
+ *              <li>{@link org.eclipse.emf.ecp.view.spi.model.VElement#getDiagnostic <em>Diagnostic</em>}</li>
+ *              <li>{@link org.eclipse.emf.ecp.view.spi.model.VElement#getAttachments <em>Attachments</em>}</li>
+ *              </ul>
+ *              </p>
  *
  * @see org.eclipse.emf.ecp.view.spi.model.VViewPackage#getElement()
  * @model abstract="true"
  * @generated
- * @since 1.2
  */
 public interface VElement extends EObject {
 
@@ -66,6 +69,38 @@
 	void setName(String value);
 
 	/**
+	 * Returns the value of the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Label</em>' attribute isn't clear, there really should be more of a description
+	 * here...
+	 * </p>
+	 *
+	 * @since 1.6
+	 *        <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Label</em>' attribute.
+	 * @see #setLabel(String)
+	 * @see org.eclipse.emf.ecp.view.spi.model.VViewPackage#getElement_Label()
+	 * @model transient="true"
+	 * @generated
+	 */
+	String getLabel();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.emf.ecp.view.spi.model.VElement#getLabel <em>Label</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 *
+	 * @since 1.6
+	 *        <!-- end-user-doc -->
+	 *
+	 * @param value the new value of the '<em>Label</em>' attribute.
+	 * @see #getLabel()
+	 * @generated
+	 */
+	void setLabel(String value);
+
+	/**
 	 * Returns the value of the '<em><b>Visible</b></em>' attribute.
 	 * The default value is <code>"true"</code>.
 	 * <!-- begin-user-doc -->
diff --git a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/VElementUtil.java b/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/VElementUtil.java
new file mode 100644
index 0000000..9440e00
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/VElementUtil.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.model;
+
+/**
+ * This class provides helper methods for working with VElements.
+ *
+ * @author Eugen Neufeld
+ * @since 1.6
+ *
+ */
+public final class VElementUtil {
+
+	private VElementUtil() {
+		// intentionally left empty
+	}
+
+	/**
+	 * Return the cleaned Name of the {@link VElement}.
+	 *
+	 * @param vElement The {@link VElement} to get the cleaned name for
+	 * @return the cleaned name
+	 */
+	public static String getCleanName(VElement vElement) {
+		if (vElement.getName() != null && vElement.getName().startsWith("%")) { //$NON-NLS-1$
+			return vElement.getName().substring(1);
+		}
+		return vElement.getName();
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/VViewPackage.java b/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/VViewPackage.java
index 00493ee..3c9ff18 100644
--- a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/VViewPackage.java
+++ b/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/VViewPackage.java
@@ -30,11 +30,11 @@
  * </ul>
  *
  * @noimplement This interface is not intended to be implemented by clients.
- *              <!-- end-user-doc -->
+ * @since 1.2
+ *        <!-- end-user-doc -->
  * @see org.eclipse.emf.ecp.view.spi.model.VViewFactory
  * @model kind="package"
  * @generated
- * @since 1.2
  */
 public interface VViewPackage extends EPackage {
 	/**
@@ -208,11 +208,12 @@
 	/**
 	 * The feature id for the '<em><b>Change Listener</b></em>' attribute list.
 	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 *
+	 * @since 1.3
+	 *        <!-- end-user-doc -->
 	 *
 	 * @generated
 	 * @ordered
-	 * @since 1.3
 	 */
 	int FEATURE_PATH_DOMAIN_MODEL_REFERENCE__CHANGE_LISTENER = DOMAIN_MODEL_REFERENCE__CHANGE_LISTENER;
 
@@ -257,6 +258,18 @@
 	int ELEMENT__NAME = 0;
 
 	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 *
+	 * @since 1.6
+	 *        <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int ELEMENT__LABEL = 1;
+
+	/**
 	 * The feature id for the '<em><b>Visible</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -264,7 +277,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ELEMENT__VISIBLE = 1;
+	int ELEMENT__VISIBLE = 2;
 
 	/**
 	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
@@ -274,7 +287,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ELEMENT__ENABLED = 2;
+	int ELEMENT__ENABLED = 3;
 
 	/**
 	 * The feature id for the '<em><b>Readonly</b></em>' attribute.
@@ -284,7 +297,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ELEMENT__READONLY = 3;
+	int ELEMENT__READONLY = 4;
 
 	/**
 	 * The feature id for the '<em><b>Diagnostic</b></em>' containment reference.
@@ -294,7 +307,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ELEMENT__DIAGNOSTIC = 4;
+	int ELEMENT__DIAGNOSTIC = 5;
 
 	/**
 	 * The feature id for the '<em><b>Attachments</b></em>' containment reference list.
@@ -304,7 +317,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ELEMENT__ATTACHMENTS = 5;
+	int ELEMENT__ATTACHMENTS = 6;
 
 	/**
 	 * The number of structural features of the '<em>Element</em>' class.
@@ -314,7 +327,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ELEMENT_FEATURE_COUNT = 6;
+	int ELEMENT_FEATURE_COUNT = 7;
 
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -327,6 +340,18 @@
 	int VIEW__NAME = ELEMENT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 *
+	 * @since 1.6
+	 *        <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int VIEW__LABEL = ELEMENT__LABEL;
+
+	/**
 	 * The feature id for the '<em><b>Visible</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -441,6 +466,18 @@
 	int CONTAINED_ELEMENT__NAME = ELEMENT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 *
+	 * @since 1.6
+	 *        <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int CONTAINED_ELEMENT__LABEL = ELEMENT__LABEL;
+
+	/**
 	 * The feature id for the '<em><b>Visible</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -523,6 +560,18 @@
 	int CONTAINER__NAME = ELEMENT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 *
+	 * @since 1.6
+	 *        <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int CONTAINER__LABEL = ELEMENT__LABEL;
+
+	/**
 	 * The feature id for the '<em><b>Visible</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -596,100 +645,121 @@
 	 * The meta object id for the '{@link org.eclipse.emf.ecp.view.spi.model.impl.VContainedContainerImpl
 	 * <em>Contained Container</em>}' class.
 	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 *
+	 * @since 1.4
+	 *        <!-- end-user-doc -->
 	 *
 	 * @see org.eclipse.emf.ecp.view.spi.model.impl.VContainedContainerImpl
 	 * @see org.eclipse.emf.ecp.view.spi.model.impl.VViewPackageImpl#getContainedContainer()
 	 * @generated
-	 * @since 1.4
 	 */
 	int CONTAINED_CONTAINER = 8;
 
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 *
+	 * @since 1.4
+	 *        <!-- end-user-doc -->
 	 *
 	 * @generated
 	 * @ordered
-	 * @since 1.4
 	 */
 	int CONTAINED_CONTAINER__NAME = CONTAINED_ELEMENT__NAME;
 
 	/**
-	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
 	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 *
+	 * @since 1.6
+	 *        <!-- end-user-doc -->
 	 *
 	 * @generated
 	 * @ordered
+	 */
+	int CONTAINED_CONTAINER__LABEL = CONTAINED_ELEMENT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 *
 	 * @since 1.4
+	 *        <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
 	 */
 	int CONTAINED_CONTAINER__VISIBLE = CONTAINED_ELEMENT__VISIBLE;
 
 	/**
 	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
 	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 *
+	 * @since 1.4
+	 *        <!-- end-user-doc -->
 	 *
 	 * @generated
 	 * @ordered
-	 * @since 1.4
 	 */
 	int CONTAINED_CONTAINER__ENABLED = CONTAINED_ELEMENT__ENABLED;
 
 	/**
 	 * The feature id for the '<em><b>Readonly</b></em>' attribute.
 	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 *
+	 * @since 1.4
+	 *        <!-- end-user-doc -->
 	 *
 	 * @generated
 	 * @ordered
-	 * @since 1.4
 	 */
 	int CONTAINED_CONTAINER__READONLY = CONTAINED_ELEMENT__READONLY;
 
 	/**
 	 * The feature id for the '<em><b>Diagnostic</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 *
+	 * @since 1.4
+	 *        <!-- end-user-doc -->
 	 *
 	 * @generated
 	 * @ordered
-	 * @since 1.4
 	 */
 	int CONTAINED_CONTAINER__DIAGNOSTIC = CONTAINED_ELEMENT__DIAGNOSTIC;
 
 	/**
 	 * The feature id for the '<em><b>Attachments</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 *
+	 * @since 1.4
+	 *        <!-- end-user-doc -->
 	 *
 	 * @generated
 	 * @ordered
-	 * @since 1.4
 	 */
 	int CONTAINED_CONTAINER__ATTACHMENTS = CONTAINED_ELEMENT__ATTACHMENTS;
 
 	/**
 	 * The feature id for the '<em><b>Children</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 *
+	 * @since 1.4
+	 *        <!-- end-user-doc -->
 	 *
 	 * @generated
 	 * @ordered
-	 * @since 1.4
 	 */
 	int CONTAINED_CONTAINER__CHILDREN = CONTAINED_ELEMENT_FEATURE_COUNT + 0;
 
 	/**
 	 * The number of structural features of the '<em>Contained Container</em>' class.
 	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 *
+	 * @since 1.4
+	 *        <!-- end-user-doc -->
 	 *
 	 * @generated
 	 * @ordered
-	 * @since 1.4
 	 */
 	int CONTAINED_CONTAINER_FEATURE_COUNT = CONTAINED_ELEMENT_FEATURE_COUNT + 1;
 
@@ -704,6 +774,18 @@
 	int CONTROL__NAME = CONTAINED_ELEMENT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 *
+	 * @since 1.6
+	 *        <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int CONTROL__LABEL = CONTAINED_ELEMENT__LABEL;
+
+	/**
 	 * The feature id for the '<em><b>Visible</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -832,6 +914,21 @@
 	EAttribute getElement_Name();
 
 	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.emf.ecp.view.spi.model.VElement#getLabel
+	 * <em>Label</em>}'.
+	 * <!-- begin-user-doc -->
+	 *
+	 * @since 1.6
+	 *        <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Label</em>'.
+	 * @see org.eclipse.emf.ecp.view.spi.model.VElement#getLabel()
+	 * @see #getElement()
+	 * @generated
+	 */
+	EAttribute getElement_Label();
+
+	/**
 	 * Returns the meta object for the attribute '{@link org.eclipse.emf.ecp.view.spi.model.VElement#isVisible
 	 * <em>Visible</em>}'.
 	 * <!-- begin-user-doc -->
@@ -961,13 +1058,14 @@
 	 * Returns the meta object for the attribute '{@link org.eclipse.emf.ecp.view.spi.model.VView#getEcorePath
 	 * <em>Ecore Path</em>}'.
 	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 *
+	 * @since 1.3
+	 *        <!-- end-user-doc -->
 	 *
 	 * @return the meta object for the attribute '<em>Ecore Path</em>'.
 	 * @see org.eclipse.emf.ecp.view.spi.model.VView#getEcorePath()
 	 * @see #getView()
 	 * @generated
-	 * @since 1.3
 	 */
 	EAttribute getView_EcorePath();
 
@@ -1035,12 +1133,13 @@
 	 * Returns the meta object for class '{@link org.eclipse.emf.ecp.view.spi.model.VContainedContainer
 	 * <em>Contained Container</em>}'.
 	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 *
+	 * @since 1.4
+	 *        <!-- end-user-doc -->
 	 *
 	 * @return the meta object for class '<em>Contained Container</em>'.
 	 * @see org.eclipse.emf.ecp.view.spi.model.VContainedContainer
 	 * @generated
-	 * @since 1.4
 	 */
 	EClass getContainedContainer();
 
@@ -1208,6 +1307,17 @@
 		EAttribute ELEMENT__NAME = eINSTANCE.getElement_Name();
 
 		/**
+		 * The meta object literal for the '<em><b>Label</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 *
+		 * @since 1.6
+		 *        <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute ELEMENT__LABEL = eINSTANCE.getElement_Label();
+
+		/**
 		 * The meta object literal for the '<em><b>Visible</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -1371,12 +1481,13 @@
 		 * The meta object literal for the '{@link org.eclipse.emf.ecp.view.spi.model.impl.VContainedContainerImpl
 		 * <em>Contained Container</em>}' class.
 		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
+		 *
+		 * @since 1.4
+		 *        <!-- end-user-doc -->
 		 *
 		 * @see org.eclipse.emf.ecp.view.spi.model.impl.VContainedContainerImpl
 		 * @see org.eclipse.emf.ecp.view.spi.model.impl.VViewPackageImpl#getContainedContainer()
 		 * @generated
-		 * @since 1.4
 		 */
 		EClass CONTAINED_CONTAINER = eINSTANCE.getContainedContainer();
 
@@ -1404,12 +1515,13 @@
 		/**
 		 * The meta object literal for the '<em>Domain Model Reference Change Listener</em>' data type.
 		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
+		 *
+		 * @since 1.3
+		 *        <!-- end-user-doc -->
 		 *
 		 * @see org.eclipse.emf.ecp.view.spi.model.DomainModelReferenceChangeListener
 		 * @see org.eclipse.emf.ecp.view.spi.model.impl.VViewPackageImpl#getDomainModelReferenceChangeListener()
 		 * @generated
-		 * @since 1.3
 		 */
 		EDataType DOMAIN_MODEL_REFERENCE_CHANGE_LISTENER = eINSTANCE.getDomainModelReferenceChangeListener();
 
diff --git a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/impl/Activator.java b/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/impl/Activator.java
index 7512caf..bc1558d 100644
--- a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/impl/Activator.java
+++ b/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/impl/Activator.java
@@ -15,11 +15,12 @@
 import org.eclipse.core.runtime.Plugin;

 import org.eclipse.core.runtime.Status;

 import org.eclipse.emf.ecp.view.model.internal.reporting.LogConsumer;

-import org.eclipse.emf.ecp.view.model.internal.reporting.ReportServiceImpl;

-import org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport;

-import org.eclipse.emf.ecp.view.spi.model.reporting.ReportService;

+import org.eclipse.emfforms.spi.common.report.AbstractReport;

+import org.eclipse.emfforms.spi.common.report.ReportService;

+import org.eclipse.emfforms.spi.common.report.ReportServiceConsumer;

 import org.osgi.framework.BundleContext;

 import org.osgi.framework.ServiceReference;

+import org.osgi.framework.ServiceRegistration;

 

 /**

  * @author Eugen Neufeld

@@ -39,6 +40,8 @@
 

 	private ServiceReference<ReportService> reportServiceReference;

 

+	private ServiceRegistration<ReportServiceConsumer> registerLogConsumerService;

+

 	/**

 	 * The constructor.

 	 */

@@ -49,16 +52,16 @@
 	@Override

 	public void start(BundleContext context) throws Exception {

 		super.start(context);

-		final ReportService reportService = new ReportServiceImpl();

-		context.registerService(ReportService.class, reportService, null);

-		reportService.addConsumer(new LogConsumer());

+		final LogConsumer logConsumer = new LogConsumer();

+		registerLogConsumerService = context.registerService(ReportServiceConsumer.class, logConsumer, null);

 		plugin = this;

 	}

 

 	@Override

 	public void stop(BundleContext context) throws Exception {

-		super.stop(context);

+		registerLogConsumerService.unregister();

 		plugin = null;

+		super.stop(context);

 	}

 

 	// END SUPRESS CATCH EXCEPTION

@@ -98,7 +101,7 @@
 	 *

 	 * @param report

 	 *            the {@link AbstractReport} to be logged

-	 * @since 1.5

+	 * @since 1.6

 	 */

 	public static void log(AbstractReport report) {

 		getDefault().getLog().log(

@@ -112,7 +115,7 @@
 	 * Returns the {@link ReportService}.

 	 *

 	 * @return the {@link ReportService}

-	 * @since 1.5

+	 * @since 1.6

 	 */

 	public ReportService getReportService() {

 		if (reportServiceReference == null) {

diff --git a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/impl/VElementImpl.java b/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/impl/VElementImpl.java
index fefa0e0..0d42310 100644
--- a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/impl/VElementImpl.java
+++ b/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/impl/VElementImpl.java
@@ -30,21 +30,23 @@
 /**
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>Renderable</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- * <li>{@link org.eclipse.emf.ecp.view.spi.model.impl.VElementImpl#getName <em>Name</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.view.spi.model.impl.VElementImpl#isVisible <em>Visible</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.view.spi.model.impl.VElementImpl#isEnabled <em>Enabled</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.view.spi.model.impl.VElementImpl#isReadonly <em>Readonly</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.view.spi.model.impl.VElementImpl#getDiagnostic <em>Diagnostic</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.view.spi.model.impl.VElementImpl#getAttachments <em>Attachments</em>}</li>
- * </ul>
- * </p>
+ * 
+ * @since 1.2
+ *        <!-- end-user-doc -->
+ *        <p>
+ *        The following features are implemented:
+ *        <ul>
+ *        <li>{@link org.eclipse.emf.ecp.view.spi.model.impl.VElementImpl#getName <em>Name</em>}</li>
+ *        <li>{@link org.eclipse.emf.ecp.view.spi.model.impl.VElementImpl#getLabel <em>Label</em>}</li>
+ *        <li>{@link org.eclipse.emf.ecp.view.spi.model.impl.VElementImpl#isVisible <em>Visible</em>}</li>
+ *        <li>{@link org.eclipse.emf.ecp.view.spi.model.impl.VElementImpl#isEnabled <em>Enabled</em>}</li>
+ *        <li>{@link org.eclipse.emf.ecp.view.spi.model.impl.VElementImpl#isReadonly <em>Readonly</em>}</li>
+ *        <li>{@link org.eclipse.emf.ecp.view.spi.model.impl.VElementImpl#getDiagnostic <em>Diagnostic</em>}</li>
+ *        <li>{@link org.eclipse.emf.ecp.view.spi.model.impl.VElementImpl#getAttachments <em>Attachments</em>}</li>
+ *        </ul>
+ *        </p>
  *
  * @generated
- * @since 1.2
  */
 public abstract class VElementImpl extends EObjectImpl implements VElement
 {
@@ -71,6 +73,32 @@
 	protected String name = NAME_EDEFAULT;
 
 	/**
+	 * The default value of the '{@link #getLabel() <em>Label</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * 
+	 * @since 1.6
+	 *        <!-- end-user-doc -->
+	 *
+	 * @see #getLabel()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String LABEL_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getLabel() <em>Label</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * 
+	 * @since 1.6
+	 *        <!-- end-user-doc -->
+	 *
+	 * @see #getLabel()
+	 * @generated
+	 * @ordered
+	 */
+	protected String label = LABEL_EDEFAULT;
+
+	/**
 	 * The default value of the '{@link #isVisible() <em>Visible</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -211,6 +239,38 @@
 
 	/**
 	 * <!-- begin-user-doc -->
+	 * 
+	 * @since 1.6
+	 *        <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String getLabel()
+	{
+		return label;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * 
+	 * @since 1.6
+	 *        <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setLabel(String newLabel)
+	{
+		final String oldLabel = label;
+		label = newLabel;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, VViewPackage.ELEMENT__LABEL, oldLabel, label));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 *
 	 * @generated
@@ -408,6 +468,8 @@
 		{
 		case VViewPackage.ELEMENT__NAME:
 			return getName();
+		case VViewPackage.ELEMENT__LABEL:
+			return getLabel();
 		case VViewPackage.ELEMENT__VISIBLE:
 			return isVisible();
 		case VViewPackage.ELEMENT__ENABLED:
@@ -437,6 +499,9 @@
 		case VViewPackage.ELEMENT__NAME:
 			setName((String) newValue);
 			return;
+		case VViewPackage.ELEMENT__LABEL:
+			setLabel((String) newValue);
+			return;
 		case VViewPackage.ELEMENT__VISIBLE:
 			setVisible((Boolean) newValue);
 			return;
@@ -471,6 +536,9 @@
 		case VViewPackage.ELEMENT__NAME:
 			setName(NAME_EDEFAULT);
 			return;
+		case VViewPackage.ELEMENT__LABEL:
+			setLabel(LABEL_EDEFAULT);
+			return;
 		case VViewPackage.ELEMENT__VISIBLE:
 			setVisible(VISIBLE_EDEFAULT);
 			return;
@@ -503,6 +571,8 @@
 		{
 		case VViewPackage.ELEMENT__NAME:
 			return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+		case VViewPackage.ELEMENT__LABEL:
+			return LABEL_EDEFAULT == null ? label != null : !LABEL_EDEFAULT.equals(label);
 		case VViewPackage.ELEMENT__VISIBLE:
 			return visible != VISIBLE_EDEFAULT;
 		case VViewPackage.ELEMENT__ENABLED:
@@ -533,6 +603,8 @@
 		final StringBuffer result = new StringBuffer(super.toString());
 		result.append(" (name: "); //$NON-NLS-1$
 		result.append(name);
+		result.append(", label: "); //$NON-NLS-1$
+		result.append(label);
 		result.append(", visible: "); //$NON-NLS-1$
 		result.append(visible);
 		result.append(", enabled: "); //$NON-NLS-1$
diff --git a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/impl/VViewPackageImpl.java b/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/impl/VViewPackageImpl.java
index 6e26512..8f3db92 100644
--- a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/impl/VViewPackageImpl.java
+++ b/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/impl/VViewPackageImpl.java
@@ -44,7 +44,6 @@
  * @since 1.2
  *        <!--
  *        end-user-doc -->
- *
  * @generated
  */
 public class VViewPackageImpl extends EPackageImpl implements VViewPackage {
@@ -247,12 +246,14 @@
 
 	/**
 	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * 
+	 * @since 1.6
+	 *        <!-- end-user-doc -->
 	 *
 	 * @generated
 	 */
 	@Override
-	public EAttribute getElement_Visible()
+	public EAttribute getElement_Label()
 	{
 		return (EAttribute) elementEClass.getEStructuralFeatures().get(1);
 	}
@@ -264,7 +265,7 @@
 	 * @generated
 	 */
 	@Override
-	public EAttribute getElement_Enabled()
+	public EAttribute getElement_Visible()
 	{
 		return (EAttribute) elementEClass.getEStructuralFeatures().get(2);
 	}
@@ -276,7 +277,7 @@
 	 * @generated
 	 */
 	@Override
-	public EAttribute getElement_Readonly()
+	public EAttribute getElement_Enabled()
 	{
 		return (EAttribute) elementEClass.getEStructuralFeatures().get(3);
 	}
@@ -288,9 +289,21 @@
 	 * @generated
 	 */
 	@Override
+	public EAttribute getElement_Readonly()
+	{
+		return (EAttribute) elementEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
 	public EReference getElement_Diagnostic()
 	{
-		return (EReference) elementEClass.getEStructuralFeatures().get(4);
+		return (EReference) elementEClass.getEStructuralFeatures().get(5);
 	}
 
 	/**
@@ -302,7 +315,7 @@
 	@Override
 	public EReference getElement_Attachments()
 	{
-		return (EReference) elementEClass.getEStructuralFeatures().get(5);
+		return (EReference) elementEClass.getEStructuralFeatures().get(6);
 	}
 
 	/**
@@ -436,7 +449,6 @@
 	 *
 	 * @since 1.4
 	 *        <!-- end-user-doc -->
-	 *
 	 * @generated
 	 */
 	@Override
@@ -462,7 +474,6 @@
 	 *
 	 * @since 1.3
 	 *        <!-- end-user-doc -->
-	 *
 	 * @generated
 	 */
 	@Override
@@ -606,6 +617,7 @@
 
 		elementEClass = createEClass(ELEMENT);
 		createEAttribute(elementEClass, ELEMENT__NAME);
+		createEAttribute(elementEClass, ELEMENT__LABEL);
 		createEAttribute(elementEClass, ELEMENT__VISIBLE);
 		createEAttribute(elementEClass, ELEMENT__ENABLED);
 		createEAttribute(elementEClass, ELEMENT__READONLY);
@@ -714,6 +726,10 @@
 			theEcorePackage.getEString(),
 			"name", null, 0, 1, VElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 		initEAttribute(
+			getElement_Label(),
+			ecorePackage.getEString(),
+			"label", null, 0, 1, VElement.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(
 			getElement_Visible(),
 			ecorePackage.getEBoolean(),
 			"visible", "true", 0, 1, VElement.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
@@ -800,7 +816,6 @@
 	 *
 	 * @since 1.5
 	 *        <!-- end-user-doc -->
-	 *
 	 * @generated
 	 */
 	protected void createEcoreAnnotations()
diff --git a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/reporting/AbstractReport.java b/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/reporting/AbstractReport.java
deleted file mode 100644
index e6ad581..0000000
--- a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/reporting/AbstractReport.java
+++ /dev/null
@@ -1,178 +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 v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- * Edgar Mueller - initial API and implementation

- ******************************************************************************/

-package org.eclipse.emf.ecp.view.spi.model.reporting;

-

-/**

- * Common base type for reports that may be reported to the {@link ReportService}.

- *

- * @author emueller

- * @since 1.5

- *

- */

-public class AbstractReport {

-

-	private Throwable exception;

-	private String message;

-	private final int severity;

-

-	/**

-	 * <p>

-	 * Default constructor.

-	 * </p>

-	 *

-	 * Sets the severity to <code>IStatus.ERROR</code>.

-	 */

-	public AbstractReport() {

-		exception = null;

-		severity = 4; // == IStatus.ERROR

-	}

-

-	/**

-	 * <p>

-	 * Constructor.

-	 * </p>

-	 *

-	 * Sets the severity to <code>IStatus.ERROR</code>.

-	 *

-	 * @param exception

-	 *            the exception this report is based on

-	 */

-	public AbstractReport(Throwable exception) {

-		this.exception = exception;

-		severity = 4; // == IStatus.ERROR

-	}

-

-	/**

-	 * <p>

-	 * Constructor.

-	 * </p>

-	 *

-	 * Sets the severity to <code>IStatus.ERROR</code>.

-	 *

-	 * @param message

-	 *            the report message

-	 */

-	public AbstractReport(String message) {

-		this.message = message;

-		severity = 4; // == IStatus.ERROR

-	}

-

-	/**

-	 * <p>

-	 * Constructor.

-	 * </p>

-	 *

-	 * Sets the severity to <code>IStatus.ERROR</code>.

-	 *

-	 * @param message

-	 *            the report message

-	 * @param severity

-	 *            the severity of the report

-	 */

-	public AbstractReport(String message, int severity) {

-		this.message = message;

-		this.severity = severity;

-	}

-

-	/**

-	 * <p>

-	 * Constructor.

-	 * </p>

-	 *

-	 * Sets the severity to <code>IStatus.ERROR</code>.

-	 *

-	 * @param exception

-	 *            the exception this report is based on

-	 * @param message

-	 *            the report message

-	 */

-	public AbstractReport(Throwable exception, String message) {

-		this.exception = exception;

-		this.message = message;

-		severity = 4; // == IStatus.ERROR

-	}

-

-	/**

-	 * Constructor.

-	 *

-	 * @param exception

-	 *            the exception this report is based on

-	 * @param severity

-	 *            the severity of the report

-	 */

-	public AbstractReport(Throwable exception, int severity) {

-		this.exception = exception;

-		this.severity = severity;

-	}

-

-	/**

-	 * Returns the report message.

-	 *

-	 * @return the report message

-	 */

-	public String getMessage() {

-		return message;

-	}

-

-	/**

-	 * Whether this report is based upon an exception.

-	 *

-	 * @return {@code true}, if this report is based upon an exception, {@code false} otherwise

-	 */

-	public boolean hasException() {

-		return getException() != null;

-	}

-

-	/**

-	 * Returns the exception this report is based on, if any.

-	 *

-	 * @return the exception this report is based on, if any, otherwise {@code null}

-	 *

-	 *

-	 * @see #hasException()

-	 */

-	public Throwable getException() {

-		return exception;

-	}

-

-	/**

-	 * Returns the status of this report.

-	 *

-	 * @return the status of this report

-	 *

-	 */

-	public int getSeverity() {

-		return severity;

-	}

-

-	/**

-	 * Sets the exception this report is based on.

-	 *

-	 * @param exception

-	 *            the exception this report is based on

-	 *

-	 * @see #hasException()

-	 */

-	protected void setException(Throwable exception) {

-		this.exception = exception;

-	}

-

-	/**

-	 * Sets the report' message.

-	 *

-	 * @param message

-	 *            the report message to set

-	 */

-	protected void setMessage(String message) {

-		this.message = message;

-	}

-}

diff --git a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/reporting/DomainModelReferenceResolutionFailedReport.java b/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/reporting/DomainModelReferenceResolutionFailedReport.java
index 3a65642..862a2c0 100644
--- a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/reporting/DomainModelReferenceResolutionFailedReport.java
+++ b/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/reporting/DomainModelReferenceResolutionFailedReport.java
@@ -15,6 +15,7 @@
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecp.view.spi.model.VControl;
 import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
 
 /**
  * Indicates that a {@link org.eclipse.emf.ecp.view.spi.model.VDomainModelReference VDomainModelReference} could not be
diff --git a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/reporting/ReportService.java b/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/reporting/ReportService.java
deleted file mode 100644
index c33f92c..0000000
--- a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/reporting/ReportService.java
+++ /dev/null
@@ -1,60 +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 v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- * Edgar Mueller - initial API and implementation

- ******************************************************************************/

-package org.eclipse.emf.ecp.view.spi.model.reporting;

-

-import java.util.List;

-

-/**

- * Service for reporting and aggregating errors.

- *

- * @author emueller

- * @since 1.5

- */

-public interface ReportService {

-

-	/**

-	 * Report an {@link AbstractReport} to the service.

-	 *

-	 * @param reportEntity

-	 *            the report entity

-	 */

-	void report(AbstractReport reportEntity);

-

-	/**

-	 * Returns all ReportEntities.

-	 *

-	 * @return all ReportEntities

-	 */

-	List<AbstractReport> getReports();

-

-	/**

-	 * Discards all ReportEntities.

-	 */

-	void clearReports();

-

-	/**

-	 * Adds a {@link ReportServiceConsumer} that consumes {@code ReportEntities}.

-	 *

-	 * @param consumer

-	 *            a {@link ReportServiceConsumer}

-	 */

-	void addConsumer(ReportServiceConsumer consumer);

-

-	/**

-	 * Removes a {@link ReportServiceConsumer}.

-	 *

-	 * @param consumer

-	 *            the consumer to be removed

-	 */

-	void removeConsumer(ReportServiceConsumer consumer);

-

-}

diff --git a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/reporting/ReportServiceConsumer.java b/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/reporting/ReportServiceConsumer.java
deleted file mode 100644
index b1c2587..0000000
--- a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/reporting/ReportServiceConsumer.java
+++ /dev/null
@@ -1,32 +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 v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- * Edgar Mueller - initial API and implementation

- ******************************************************************************/

-package org.eclipse.emf.ecp.view.spi.model.reporting;

-

-/**

- * Common base types for any {@link AbstractReport} consumer that may

- * be added to the {@link ReportService} in order to be notified.

- *

- * @author emueller

- * @since 1.5

- */

-public interface ReportServiceConsumer {

-

-	/**

-	 * Called when a {@link AbstractReport} has been received

-	 * by the {@link ReportService}.

-	 *

-	 * @param reportEntity

-	 *            the received {@link AbstractReport}

-	 */

-	void reported(AbstractReport reportEntity);

-

-}

diff --git a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/reporting/StatusReport.java b/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/reporting/StatusReport.java
index ecf63f4..d78d6de 100644
--- a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/reporting/StatusReport.java
+++ b/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/reporting/StatusReport.java
@@ -12,6 +12,7 @@
 package org.eclipse.emf.ecp.view.spi.model.reporting;

 

 import org.eclipse.core.runtime.Status;

+import org.eclipse.emfforms.spi.common.report.AbstractReport;

 

 /**

  * A {@link Status} that may be passed to the report service.

@@ -37,7 +38,7 @@
 	 *

 	 * {@inheritDoc}

 	 *

-	 * @see org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport#getMessage()

+	 * @see org.eclipse.emfforms.spi.common.report.AbstractReport#getMessage()

 	 */

 	@Override

 	public String getMessage() {

@@ -48,7 +49,7 @@
 	 *

 	 * {@inheritDoc}

 	 *

-	 * @see org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport#hasException()

+	 * @see org.eclipse.emfforms.spi.common.report.AbstractReport#hasException()

 	 */

 	@Override

 	public boolean hasException() {

@@ -59,7 +60,7 @@
 	 *

 	 * {@inheritDoc}

 	 *

-	 * @see org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport#getException()

+	 * @see org.eclipse.emfforms.spi.common.report.AbstractReport#getException()

 	 */

 	@Override

 	public Throwable getException() {

@@ -70,7 +71,7 @@
 	 *

 	 * {@inheritDoc}

 	 *

-	 * @see org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport#getSeverity()

+	 * @see org.eclipse.emfforms.spi.common.report.AbstractReport#getSeverity()

 	 */

 	@Override

 	public int getSeverity() {

diff --git a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/util/ViewModelUtil.java b/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/util/ViewModelUtil.java
index 3e11e04..c7307b2 100644
--- a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/util/ViewModelUtil.java
+++ b/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/util/ViewModelUtil.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2013 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
  *
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -64,14 +64,9 @@
 				return;
 			}
 			final boolean init = control.getDomainModelReference().init(domainModelRoot);
-			if (!init && ViewModelUtil.isDebugMode()) {
-				// report only in debug mode
-				Activator.getDefault()
-					.getReportService()
-					.report(
-						new DomainModelReferenceResolutionFailedReport(
-							control.getDomainModelReference(),
-							control));
+			if (!init) {
+				Activator.getDefault().getReportService()
+					.report(new DomainModelReferenceResolutionFailedReport(control.getDomainModelReference(), control));
 			}
 		}
 		// XXX get rid of the following code as soon as possible!
@@ -83,14 +78,9 @@
 			for (final EObject object : element.eContents()) {
 				if (VDomainModelReference.class.isInstance(object)) {
 					final boolean init = VDomainModelReference.class.cast(object).init(domainModelRoot);
-					if (!init && ViewModelUtil.isDebugMode()) {
-						// report only in debug mode
-						Activator.getDefault()
-							.getReportService()
-							.report(
-								new DomainModelReferenceResolutionFailedReport(
-									VDomainModelReference.class.cast(object),
-									element));
+					if (!init) {
+						Activator.getDefault().getReportService().report(new DomainModelReferenceResolutionFailedReport(
+							VDomainModelReference.class.cast(object), element));
 					}
 				}
 			}
diff --git a/bundles/org.eclipse.emf.ecp.view.rule.model.edit/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.rule.model.edit/.settings/.api_filters
index 7e831d2..20fd522 100644
--- a/bundles/org.eclipse.emf.ecp.view.rule.model.edit/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.rule.model.edit/.settings/.api_filters
@@ -1,10 +1,34 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.emf.ecp.view.rule.model.edit" version="2">
     <resource path="META-INF/MANIFEST.MF">
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model.edit"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.rule.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.rule.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.rule.model.edit_1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
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 9f5d64c..5025292 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,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Rule Model Edit Plugin
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.rule.model.edit;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.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
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.view.spi.rule.model.provider;versi
- on="1.5.1"
+ on="1.6.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.5.0,2.0.0)";visibility:=reexport,
  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
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 f2cd217..062351b 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.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.0-SNAPSHOT</version>

 

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

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.rule.model/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.rule.model/.settings/.api_filters
index c97bcb3..aa165d0 100644
--- a/bundles/org.eclipse.emf.ecp.view.rule.model/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.rule.model/.settings/.api_filters
@@ -7,10 +7,34 @@
                 <message_argument value="1.4.0"/>
             </message_arguments>
         </filter>
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.rule.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.rule.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.rule.model_1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
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 34cca73..3202a55 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,16 +2,20 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Rule Model Plugin
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.rule.model;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.ecp.view.spi.rule.model;version="1.5.1
- ",org.eclipse.emf.ecp.view.spi.rule.model.impl;version="1.5.1",org.ec
- lipse.emf.ecp.view.spi.rule.model.util;version="1.5.1"
+Export-Package: org.eclipse.emf.ecp.view.spi.rule.model;version="1.6.0
+ ",org.eclipse.emf.ecp.view.spi.rule.model.impl;version="1.6.0",org.ec
+ lipse.emf.ecp.view.spi.rule.model.util;version="1.6.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.5.0,2.0.0)";visibility:=reexport,
- org.eclipse.emf.ecp.common;bundle-version="[1.5.0,2.0.0)"
+ org.eclipse.emf.ecp.common;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.core.databinding.observable;bundle-version="[1.4.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
+Bundle-Activator: org.eclipse.emf.ecp.view.spi.rule.model.Activator
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="1.6.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 aef20fd..131c8ce 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.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.0-SNAPSHOT</version>

 

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

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.rule.model/src/org/eclipse/emf/ecp/view/spi/rule/model/Activator.java b/bundles/org.eclipse.emf.ecp.view.rule.model/src/org/eclipse/emf/ecp/view/spi/rule/model/Activator.java
new file mode 100644
index 0000000..14b8c94
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.rule.model/src/org/eclipse/emf/ecp/view/spi/rule/model/Activator.java
@@ -0,0 +1,108 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.rule.model;
+
+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.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * The Class Activator.
+ *
+ * @author Lucas Koehler
+ * @since 1.6
+ */
+public class Activator extends Plugin {
+
+	/**
+	 * The constant holding the id of this plugin.
+	 */
+	public static final String PLUGIN_ID = "org.eclipse.emf.ecp.view.rule.model"; //$NON-NLS-1$
+
+	private static Activator plugin;
+	private ServiceReference<ReportService> reportServiceReference;
+
+	// BEGIN SUPRESS CATCH EXCEPTION
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.core.runtime.Plugin#start(org.osgi.framework.BundleContext)
+	 */
+	@Override
+	public void start(BundleContext bundleContext) throws Exception {
+		super.start(bundleContext);
+		plugin = this;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
+	 */
+	@Override
+	public void stop(BundleContext bundleContext) throws Exception {
+		plugin = null;
+		super.stop(bundleContext);
+	}
+
+	// END SUPRESS CATCH EXCEPTION
+	/**
+	 * Returns the instance of this Activator.
+	 *
+	 * @return the saved instance
+	 */
+	public static Activator getDefault() {
+		return plugin;
+	}
+
+	/**
+	 * Logs a {@link Throwable}.
+	 *
+	 * @param t the {@link Throwable} to log
+	 */
+	public static void log(Throwable t) {
+		getDefault().getLog().log(new Status(IStatus.ERROR, PLUGIN_ID, t.getMessage(), t));
+	}
+
+	/**
+	 * Returns the {@link ReportService}.
+	 *
+	 * @return the {@link ReportService}
+	 */
+	public ReportService getReportService() {
+		if (reportServiceReference == null) {
+			reportServiceReference = plugin.getBundle().getBundleContext()
+				.getServiceReference(ReportService.class);
+		}
+		return plugin.getBundle().getBundleContext().getService(reportServiceReference);
+	}
+
+	/**
+	 * Returns the {@link EMFFormsDatabinding} service.
+	 *
+	 * @return The {@link EMFFormsDatabinding}
+	 */
+	public EMFFormsDatabinding getEMFFormsDatabinding() {
+		final ServiceReference<EMFFormsDatabinding> serviceReference = plugin.getBundle().getBundleContext()
+			.getServiceReference(EMFFormsDatabinding.class);
+
+		final EMFFormsDatabinding service = plugin.getBundle().getBundleContext()
+			.getService(serviceReference);
+		plugin.getBundle().getBundleContext().ungetService(serviceReference);
+
+		return service;
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.rule.model/src/org/eclipse/emf/ecp/view/spi/rule/model/impl/LeafConditionImpl.java b/bundles/org.eclipse.emf.ecp.view.rule.model/src/org/eclipse/emf/ecp/view/spi/rule/model/impl/LeafConditionImpl.java
index 9279e1d..1681093 100644
--- a/bundles/org.eclipse.emf.ecp.view.rule.model/src/org/eclipse/emf/ecp/view/spi/rule/model/impl/LeafConditionImpl.java
+++ b/bundles/org.eclipse.emf.ecp.view.rule.model/src/org/eclipse/emf/ecp/view/spi/rule/model/impl/LeafConditionImpl.java
@@ -17,6 +17,8 @@
 import java.util.List;
 import java.util.Map;
 
+import org.eclipse.core.databinding.observable.IObserving;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.NotificationChain;
 import org.eclipse.emf.common.util.Enumerator;
@@ -28,11 +30,13 @@
 import org.eclipse.emf.ecore.EcorePackage;
 import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.rule.model.Activator;
 import org.eclipse.emf.ecp.view.spi.rule.model.LeafCondition;
 import org.eclipse.emf.ecp.view.spi.rule.model.NotApplicableForEvaluationException;
 import org.eclipse.emf.ecp.view.spi.rule.model.RulePackage;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 
 /**
  * <!-- begin-user-doc -->
@@ -426,7 +430,8 @@
 		final Object expectedValue = getExpectedValue();
 		while (settingIterator.hasNext()) {
 			try {
-				result |= doEvaluate(settingIterator.next(), expectedValue, false, null);
+				final Setting setting = settingIterator.next();
+				result |= doEvaluate(setting.getEObject(), setting.getEStructuralFeature(), expectedValue, false, null);
 			} catch (final NotApplicableForEvaluationException e) {
 				continue;
 			}
@@ -435,11 +440,10 @@
 		return result;
 	}
 
-	private static boolean doEvaluate(Setting setting, Object expectedValue, boolean useNewValue, Object newValue)
+	private static boolean doEvaluate(EObject parent, EStructuralFeature feature, Object expectedValue,
+		boolean useNewValue, Object newValue)
 		throws NotApplicableForEvaluationException {
 
-		final EObject parent = setting.getEObject();
-		final EStructuralFeature feature = setting.getEStructuralFeature();
 		final EClass attributeClass = feature.getEContainingClass();
 		if (!attributeClass.isInstance(parent)) {
 			throw new NotApplicableForEvaluationException();
@@ -489,21 +493,29 @@
 					if (getValueDomainModelReference() == null) {
 						continue;
 					}
-					final VDomainModelReference dmr = EcoreUtil.copy(getValueDomainModelReference());
-					final boolean init = dmr.init(domain);
-					if (!init) {
+					IObservableValue observableValue;
+					try {
+						observableValue = Activator.getDefault().getEMFFormsDatabinding()
+							.getObservableValue(getValueDomainModelReference(), domain);
+					} catch (final DatabindingFailedException ex) {
+						Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
 						continue;
 					}
-					final Setting next = dmr.getIterator().next();
+					final EObject eObject = (EObject) ((IObserving) observableValue).getObserved();
+					final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+					observableValue.dispose();
+
 					try {
-						result |= doEvaluate(next, expectedValue, true, next.get(true));
+						result |= doEvaluate(eObject, structuralFeature, expectedValue, true,
+							eObject.eGet(structuralFeature, true));
 					} catch (final NotApplicableForEvaluationException ex) {
 						continue;
 					}
 				}
 			} else {
 				try {
-					result |= doEvaluate(setting, expectedValue, true, possibleNewValues.get(setting));
+					result |= doEvaluate(setting.getEObject(), setting.getEStructuralFeature(), expectedValue, true,
+						possibleNewValues.get(setting));
 				} catch (final NotApplicableForEvaluationException e) {
 					continue;
 				}
diff --git a/bundles/org.eclipse.emf.ecp.view.rule.model/src/org/eclipse/emf/ecp/view/spi/rule/model/impl/LeafConditionSettingIterator.java b/bundles/org.eclipse.emf.ecp.view.rule.model/src/org/eclipse/emf/ecp/view/spi/rule/model/impl/LeafConditionSettingIterator.java
index ae448aa..b94cce2 100644
--- a/bundles/org.eclipse.emf.ecp.view.rule.model/src/org/eclipse/emf/ecp/view/spi/rule/model/impl/LeafConditionSettingIterator.java
+++ b/bundles/org.eclipse.emf.ecp.view.rule.model/src/org/eclipse/emf/ecp/view/spi/rule/model/impl/LeafConditionSettingIterator.java
@@ -67,6 +67,7 @@
 			expectedStackSize = expectedStackSize + 1;
 		}
 		iterators = new Stack<Iterator<Setting>>();
+		// TODO: remove after segments are introduced.
 		iterators.push(condition.getDomainModelReference().getIterator());
 		organizeStack();
 	}
@@ -117,6 +118,7 @@
 			final VDomainModelReference valueDMR = EcoreUtil.copy(condition.getValueDomainModelReference());
 			valueDMR.init(nextDomain);
 			dmrs.add(valueDMR);
+			// TODO: remove after segments are introduced.
 			iterators.push(valueDMR.getIterator());
 			organizeStack();
 			return;
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 ce9231c..5f88e99 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Rule
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.rule;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 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)",
@@ -12,8 +12,9 @@
  org.eclipse.emf.ecp.common;bundle-version="[1.5.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emf.ecp.view.internal.rule;version="1.5.1"
+Export-Package: org.eclipse.emf.ecp.view.internal.rule;version="1.6.0"
  ;x-friends:="org.eclipse.emf.ecp.view.rule.test,org.eclipse.emf.ecp.v
  iew.model.integrationtest,org.eclipse.emf.ecp.view.unset.test",org.ec
- lipse.emf.ecp.view.internal.rule.reporting;version="1.5.1",org.eclips
- e.emf.ecp.view.spi.rule;version="1.5.1"
+ lipse.emf.ecp.view.internal.rule.reporting;version="1.6.0",org.eclips
+ e.emf.ecp.view.spi.rule;version="1.6.0"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.6.0,2.0.0)"
diff --git a/bundles/org.eclipse.emf.ecp.view.rule/pom.xml b/bundles/org.eclipse.emf.ecp.view.rule/pom.xml
index d1a595c..db6b913 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.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.0-SNAPSHOT</version>

 

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

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.rule/src/org/eclipse/emf/ecp/view/internal/rule/RuleService.java b/bundles/org.eclipse.emf.ecp.view.rule/src/org/eclipse/emf/ecp/view/internal/rule/RuleService.java
index d2ef2b3..af6dd04 100644
--- a/bundles/org.eclipse.emf.ecp.view.rule/src/org/eclipse/emf/ecp/view/internal/rule/RuleService.java
+++ b/bundles/org.eclipse.emf.ecp.view.rule/src/org/eclipse/emf/ecp/view/internal/rule/RuleService.java
@@ -363,10 +363,23 @@
 
 		final Map<VElement, Boolean> visibleMap = evalAffectedRenderables(showRuleRegistry, ShowRule.class,
 			setting);
+		final Set<VElement> toBeVisible = new LinkedHashSet<VElement>();
+		final Set<VElement> toBeInvisible = new LinkedHashSet<VElement>();
 		for (final Map.Entry<VElement, Boolean> e : visibleMap.entrySet()) {
 			final Boolean isVisible = e.getValue();
 			final VElement renderable = e.getKey();
-			renderable.setVisible(isVisible);
+			if (isVisible) {
+				toBeVisible.add(renderable);
+			} else {
+				toBeInvisible.add(renderable);
+			}
+		}
+
+		for (final VElement vElement : toBeInvisible) {
+			vElement.setVisible(false);
+		}
+		for (final VElement vElement : toBeVisible) {
+			vElement.setVisible(true);
 		}
 	}
 
diff --git a/bundles/org.eclipse.emf.ecp.view.rule/src/org/eclipse/emf/ecp/view/internal/rule/reporting/LeafConditionDMRResolutionFailedReport.java b/bundles/org.eclipse.emf.ecp.view.rule/src/org/eclipse/emf/ecp/view/internal/rule/reporting/LeafConditionDMRResolutionFailedReport.java
index 893151a..7e882d4 100644
--- a/bundles/org.eclipse.emf.ecp.view.rule/src/org/eclipse/emf/ecp/view/internal/rule/reporting/LeafConditionDMRResolutionFailedReport.java
+++ b/bundles/org.eclipse.emf.ecp.view.rule/src/org/eclipse/emf/ecp/view/internal/rule/reporting/LeafConditionDMRResolutionFailedReport.java
@@ -12,8 +12,8 @@
 package org.eclipse.emf.ecp.view.internal.rule.reporting;
 
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport;
 import org.eclipse.emf.ecp.view.spi.rule.model.LeafCondition;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
 
 /**
  * Indicates that a {@link org.eclipse.emf.ecp.view.spi.model.VDomainModelReference VDomainModelReference} of a
diff --git a/bundles/org.eclipse.emf.ecp.view.section.model.edit/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.section.model.edit/.settings/.api_filters
index 4a3ea61..6ab3f8e 100644
--- a/bundles/org.eclipse.emf.ecp.view.section.model.edit/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.section.model.edit/.settings/.api_filters
@@ -7,10 +7,10 @@
                 <message_argument value="1.2.1"/>
             </message_arguments>
         </filter>
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model.edit"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
@@ -38,4 +38,28 @@
             </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.section.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.section.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.section.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
 </component>
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 44298db..3b1c192 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,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.section.model.edit;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.spi.section.model.provider.SectionEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.view.spi.section.model.provider;ve
- rsion="1.5.1"
+ rsion="1.6.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.5.0,2.0.0)";visibility:=reexport,
  org.eclipse.emf.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
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 087ddb7..cb57fe4 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.5.1-SNAPSHOT</version>
+    <version>1.6.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.section.model.edit/src/org/eclipse/emf/ecp/view/spi/section/model/provider/SectionItemProvider.java b/bundles/org.eclipse.emf.ecp.view.section.model.edit/src/org/eclipse/emf/ecp/view/spi/section/model/provider/SectionItemProvider.java
index 5999dff..7c7e06b 100644
--- a/bundles/org.eclipse.emf.ecp.view.section.model.edit/src/org/eclipse/emf/ecp/view/spi/section/model/provider/SectionItemProvider.java
+++ b/bundles/org.eclipse.emf.ecp.view.section.model.edit/src/org/eclipse/emf/ecp/view/spi/section/model/provider/SectionItemProvider.java
@@ -17,6 +17,8 @@
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emf.ecp.view.spi.model.VElementUtil;
 import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
 import org.eclipse.emf.ecp.view.spi.model.provider.ContainerItemProvider;
 import org.eclipse.emf.ecp.view.spi.section.model.VSection;
@@ -133,11 +135,14 @@
 	 * <!-- begin-user-doc
 	 * --> <!-- end-user-doc -->
 	 *
-	 * @generated
+	 * @generated NOT
 	 */
 	@Override
 	public String getText(Object object) {
-		final String label = ((VSection) object).getName();
+		String label = ((VSection) object).getName();
+		if (label == null) {
+			label = VElementUtil.getCleanName(VElement.class.cast(object));
+		}
 		return label == null || label.length() == 0 ?
 			getString("_UI_Section_type") : //$NON-NLS-1$
 			getString("_UI_Section_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
diff --git a/bundles/org.eclipse.emf.ecp.view.section.model.edit/src/org/eclipse/emf/ecp/view/spi/section/model/provider/SectionedAreaItemProvider.java b/bundles/org.eclipse.emf.ecp.view.section.model.edit/src/org/eclipse/emf/ecp/view/spi/section/model/provider/SectionedAreaItemProvider.java
index d0787b7..e50da74 100644
--- a/bundles/org.eclipse.emf.ecp.view.section.model.edit/src/org/eclipse/emf/ecp/view/spi/section/model/provider/SectionedAreaItemProvider.java
+++ b/bundles/org.eclipse.emf.ecp.view.section.model.edit/src/org/eclipse/emf/ecp/view/spi/section/model/provider/SectionedAreaItemProvider.java
@@ -17,6 +17,8 @@
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emf.ecp.view.spi.model.VElementUtil;
 import org.eclipse.emf.ecp.view.spi.model.provider.ContainedElementItemProvider;
 import org.eclipse.emf.ecp.view.spi.section.model.VSectionFactory;
 import org.eclipse.emf.ecp.view.spi.section.model.VSectionPackage;
@@ -116,12 +118,15 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 *
-	 * @generated
+	 * @generated NOT
 	 */
 	@Override
 	public String getText(Object object)
 	{
-		final String label = ((VSectionedArea) object).getName();
+		String label = ((VSectionedArea) object).getName();
+		if (label == null) {
+			label = VElementUtil.getCleanName(VElement.class.cast(object));
+		}
 		return label == null || label.length() == 0 ?
 			getString("_UI_SectionedArea_type") : //$NON-NLS-1$
 			getString("_UI_SectionedArea_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
diff --git a/bundles/org.eclipse.emf.ecp.view.section.model/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.section.model/.settings/.api_filters
index 4b0b61d..1486324 100644
--- a/bundles/org.eclipse.emf.ecp.view.section.model/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.section.model/.settings/.api_filters
@@ -7,10 +7,10 @@
                 <message_argument value="1.2.1"/>
             </message_arguments>
         </filter>
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
@@ -38,4 +38,145 @@
             </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.section.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.section.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.section.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/section/model/VSectionPackage.java">
+        <filter comment="Changes due to new label field in 1.6" id="0"/>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/section/model/VSectionPackage.java" type="org.eclipse.emf.ecp.view.spi.section.model.VSectionPackage">
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.section.model.VSectionPackage"/>
+                <message_argument value="SECTIONED_AREA_FEATURE_COUNT"/>
+                <message_argument value="7"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.section.model.VSectionPackage"/>
+                <message_argument value="SECTIONED_AREA__ATTACHMENTS"/>
+                <message_argument value="5"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.section.model.VSectionPackage"/>
+                <message_argument value="SECTIONED_AREA__DIAGNOSTIC"/>
+                <message_argument value="4"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.section.model.VSectionPackage"/>
+                <message_argument value="SECTIONED_AREA__ENABLED"/>
+                <message_argument value="2"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.section.model.VSectionPackage"/>
+                <message_argument value="SECTIONED_AREA__READONLY"/>
+                <message_argument value="3"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.section.model.VSectionPackage"/>
+                <message_argument value="SECTIONED_AREA__ROOT"/>
+                <message_argument value="6"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.section.model.VSectionPackage"/>
+                <message_argument value="SECTIONED_AREA__VISIBLE"/>
+                <message_argument value="1"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.section.model.VSectionPackage"/>
+                <message_argument value="SECTION_FEATURE_COUNT"/>
+                <message_argument value="9"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.section.model.VSectionPackage"/>
+                <message_argument value="SECTION__ATTACHMENTS"/>
+                <message_argument value="5"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.section.model.VSectionPackage"/>
+                <message_argument value="SECTION__CHILDREN"/>
+                <message_argument value="6"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.section.model.VSectionPackage"/>
+                <message_argument value="SECTION__CHILD_ITEMS"/>
+                <message_argument value="7"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.section.model.VSectionPackage"/>
+                <message_argument value="SECTION__COLLAPSED"/>
+                <message_argument value="8"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.section.model.VSectionPackage"/>
+                <message_argument value="SECTION__DIAGNOSTIC"/>
+                <message_argument value="4"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.section.model.VSectionPackage"/>
+                <message_argument value="SECTION__ENABLED"/>
+                <message_argument value="2"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.section.model.VSectionPackage"/>
+                <message_argument value="SECTION__READONLY"/>
+                <message_argument value="3"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.section.model.VSectionPackage"/>
+                <message_argument value="SECTION__VISIBLE"/>
+                <message_argument value="1"/>
+            </message_arguments>
+        </filter>
+    </resource>
 </component>
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 1aa06cc..ca97ebd 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,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.section.model;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.view.spi.section.model;version="1.
- 5.1",org.eclipse.emf.ecp.view.spi.section.model.impl;version="1.5.1",
- org.eclipse.emf.ecp.view.spi.section.model.util;version="1.5.1"
+ 6.0",org.eclipse.emf.ecp.view.spi.section.model.impl;version="1.6.0",
+ org.eclipse.emf.ecp.view.spi.section.model.util;version="1.6.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.5.0,2.0.0)";visibility:=reexport
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 8f143f9..9229836 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.5.1-SNAPSHOT</version>
+    <version>1.6.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/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.section.ui.swt/.settings/.api_filters
index 808e36a..143d15a 100644
--- a/bundles/org.eclipse.emf.ecp.view.section.ui.swt/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.section.ui.swt/.settings/.api_filters
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.emf.ecp.view.custom.model" version="2">
+<component id="org.eclipse.emf.ecp.view.section.ui.swt" version="2">
     <resource path="META-INF/MANIFEST.MF">
         <filter comment="This is SPI" id="923795461">
             <message_arguments>
@@ -7,6 +7,12 @@
                 <message_argument value="1.2.1"/>
             </message_arguments>
         </filter>
+        <filter comment="SPI Change in 1.6" id="923795461">
+            <message_arguments>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.custom.model.HardcodedTester">
         <filter comment="This is SPI" id="305324134">
@@ -32,203 +38,63 @@
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/emf/ecp/view/spi/custom/model/VCustomFactory.java" type="org.eclipse.emf.ecp.view.spi.custom.model.VCustomFactory">
-        <filter comment="This is SPI" id="403804204">
+    <resource path="src/org/eclipse/emf/ecp/view/spi/section/swt/SectionLeafSWTRenderer.java" type="org.eclipse.emf.ecp.view.spi.section.swt.SectionLeafSWTRenderer">
+        <filter comment="SPI Change in 1.6" id="338722907">
             <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomFactory"/>
-                <message_argument value="createCustomControl()"/>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.section.swt.SectionLeafSWTRenderer"/>
+                <message_argument value="SectionLeafSWTRenderer()"/>
             </message_arguments>
         </filter>
-        <filter comment="This is SPI" id="403804204">
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
             <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomFactory"/>
-                <message_argument value="createCustomDomainModelReference()"/>
-            </message_arguments>
-        </filter>
-        <filter comment="This is SPI" id="405901410">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomFactory"/>
-                <message_argument value="createHardcodedDomainModelReference()"/>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.section.swt.SectionLeafSWTRenderer"/>
+                <message_argument value="getGridDescription(SWTGridDescription)"/>
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/emf/ecp/view/spi/custom/model/VCustomPackage.java" type="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage">
-        <filter comment="This is SPI" id="405864542">
+    <resource path="src/org/eclipse/emf/ecp/view/spi/section/swt/SectionNodeSWTRenderer.java" type="org.eclipse.emf.ecp.view.spi.section.swt.SectionNodeSWTRenderer">
+        <filter comment="SPI Change in 1.6" id="338722907">
             <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage"/>
-                <message_argument value="HARDCODED_DOMAIN_MODEL_REFERENCE"/>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.section.swt.SectionNodeSWTRenderer"/>
+                <message_argument value="SectionNodeSWTRenderer()"/>
             </message_arguments>
         </filter>
-        <filter comment="This is SPI" id="405864542">
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
             <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage"/>
-                <message_argument value="HARDCODED_DOMAIN_MODEL_REFERENCE_FEATURE_COUNT"/>
-            </message_arguments>
-        </filter>
-        <filter comment="This is SPI" id="405864542">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage"/>
-                <message_argument value="HARDCODED_DOMAIN_MODEL_REFERENCE__CONTROL_CHECKED"/>
-            </message_arguments>
-        </filter>
-        <filter comment="This is SPI" id="405864542">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage"/>
-                <message_argument value="HARDCODED_DOMAIN_MODEL_REFERENCE__CONTROL_ID"/>
-            </message_arguments>
-        </filter>
-        <filter comment="This is SPI" id="405864542">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage"/>
-                <message_argument value="HARDCODED_DOMAIN_MODEL_REFERENCE__DOMAIN_MODEL_REFERENCES"/>
-            </message_arguments>
-        </filter>
-        <filter comment="This is SPI" id="405901410">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage"/>
-                <message_argument value="getHardcodedDomainModelReference()"/>
-            </message_arguments>
-        </filter>
-        <filter comment="This is SPI" id="405901410">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage"/>
-                <message_argument value="getHardcodedDomainModelReference_ControlChecked()"/>
-            </message_arguments>
-        </filter>
-        <filter comment="This is SPI" id="405901410">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage"/>
-                <message_argument value="getHardcodedDomainModelReference_ControlId()"/>
-            </message_arguments>
-        </filter>
-        <filter comment="This is SPI" id="405901410">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage"/>
-                <message_argument value="getHardcodedDomainModelReference_DomainModelReferences()"/>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.section.swt.SectionNodeSWTRenderer"/>
+                <message_argument value="getGridDescription(SWTGridDescription)"/>
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/emf/ecp/view/spi/custom/model/VCustomPackage.java" type="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage$Literals">
-        <filter comment="This is SPI" id="403767336">
+    <resource path="src/org/eclipse/emf/ecp/view/spi/section/swt/SectionedAreaSWTRenderer.java" type="org.eclipse.emf.ecp.view.spi.section.swt.SectionedAreaSWTRenderer">
+        <filter comment="SPI Change in 1.6" id="338722907">
             <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage.Literals"/>
-                <message_argument value="CUSTOM_CONTROL"/>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.section.swt.SectionedAreaSWTRenderer"/>
+                <message_argument value="SectionedAreaSWTRenderer()"/>
             </message_arguments>
         </filter>
-        <filter comment="This is SPI" id="403767336">
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
             <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage.Literals"/>
-                <message_argument value="CUSTOM_CONTROL__BUNDLE_NAME"/>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.section.swt.SectionedAreaSWTRenderer"/>
+                <message_argument value="getGridDescription(SWTGridDescription)"/>
             </message_arguments>
         </filter>
-        <filter comment="This is SPI" id="403767336">
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
             <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage.Literals"/>
-                <message_argument value="CUSTOM_CONTROL__CLASS_NAME"/>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.section.swt.SectionedAreaSWTRenderer"/>
+                <message_argument value="renderControl(SWTGridCell, Composite)"/>
             </message_arguments>
         </filter>
-        <filter comment="This is SPI" id="403767336">
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
             <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage.Literals"/>
-                <message_argument value="CUSTOM_DOMAIN_MODEL_REFERENCE"/>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.section.swt.SectionedAreaSWTRenderer"/>
+                <message_argument value="setLayoutDataForControl(SWTGridCell, SWTGridDescription, SWTGridDescription, SWTGridDescription, VElement, Control)"/>
             </message_arguments>
         </filter>
-        <filter comment="This is SPI" id="403767336">
+        <filter comment="SPI Change in 1.6" id="421572723">
             <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage.Literals"/>
-                <message_argument value="CUSTOM_DOMAIN_MODEL_REFERENCE__BUNDLE_NAME"/>
-            </message_arguments>
-        </filter>
-        <filter comment="This is SPI" id="403767336">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage.Literals"/>
-                <message_argument value="CUSTOM_DOMAIN_MODEL_REFERENCE__CLASS_NAME"/>
-            </message_arguments>
-        </filter>
-        <filter comment="This is SPI" id="403767336">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage.Literals"/>
-                <message_argument value="CUSTOM_DOMAIN_MODEL_REFERENCE__CONTROL_CHECKED"/>
-            </message_arguments>
-        </filter>
-        <filter comment="This is SPI" id="403767336">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage.Literals"/>
-                <message_argument value="CUSTOM_DOMAIN_MODEL_REFERENCE__DOMAIN_MODEL_REFERENCES"/>
-            </message_arguments>
-        </filter>
-        <filter comment="This is SPI" id="405864542">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage.Literals"/>
-                <message_argument value="HARDCODED_DOMAIN_MODEL_REFERENCE"/>
-            </message_arguments>
-        </filter>
-        <filter comment="This is SPI" id="405864542">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage.Literals"/>
-                <message_argument value="HARDCODED_DOMAIN_MODEL_REFERENCE__CONTROL_CHECKED"/>
-            </message_arguments>
-        </filter>
-        <filter comment="This is SPI" id="405864542">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage.Literals"/>
-                <message_argument value="HARDCODED_DOMAIN_MODEL_REFERENCE__CONTROL_ID"/>
-            </message_arguments>
-        </filter>
-        <filter comment="This is SPI" id="405864542">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage.Literals"/>
-                <message_argument value="HARDCODED_DOMAIN_MODEL_REFERENCE__DOMAIN_MODEL_REFERENCES"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/emf/ecp/view/spi/custom/model/impl/VCustomFactoryImpl.java" type="org.eclipse.emf.ecp.view.spi.custom.model.impl.VCustomFactoryImpl">
-        <filter comment="This is SPI" id="338792546">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.impl.VCustomFactoryImpl"/>
-                <message_argument value="createHardcodedDomainModelReference()"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/emf/ecp/view/spi/custom/model/impl/VCustomPackageImpl.java" type="org.eclipse.emf.ecp.view.spi.custom.model.impl.VCustomPackageImpl">
-        <filter comment="This is SPI" id="338792546">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.impl.VCustomPackageImpl"/>
-                <message_argument value="getHardcodedDomainModelReference()"/>
-            </message_arguments>
-        </filter>
-        <filter comment="This is SPI" id="338792546">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.impl.VCustomPackageImpl"/>
-                <message_argument value="getHardcodedDomainModelReference_ControlChecked()"/>
-            </message_arguments>
-        </filter>
-        <filter comment="This is SPI" id="338792546">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.impl.VCustomPackageImpl"/>
-                <message_argument value="getHardcodedDomainModelReference_ControlId()"/>
-            </message_arguments>
-        </filter>
-        <filter comment="This is SPI" id="338792546">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.impl.VCustomPackageImpl"/>
-                <message_argument value="getHardcodedDomainModelReference_DomainModelReferences()"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/emf/ecp/view/spi/custom/model/util/CustomAdapterFactory.java" type="org.eclipse.emf.ecp.view.spi.custom.model.util.CustomAdapterFactory">
-        <filter comment="This is SPI" id="338792546">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.util.CustomAdapterFactory"/>
-                <message_argument value="createHardcodedDomainModelReferenceAdapter()"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/emf/ecp/view/spi/custom/model/util/CustomSwitch.java" type="org.eclipse.emf.ecp.view.spi.custom.model.util.CustomSwitch">
-        <filter comment="This is SPI" id="338792546">
-            <message_arguments>
-                <message_argument value="org.eclipse.emf.ecp.view.spi.custom.model.util.CustomSwitch"/>
-                <message_argument value="caseHardcodedDomainModelReference(VHardcodedDomainModelReference)"/>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.section.swt.SectionedAreaSWTRenderer"/>
+                <message_argument value="setLayoutDataForControl(SWTGridCell, SWTGridDescription, SWTGridDescription, SWTGridDescription, VElement, Control)"/>
             </message_arguments>
         </filter>
     </resource>
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 e5e250b..a891197 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,20 +2,25 @@
 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.emf.ecp.view.section.model;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.core.runtime;bundle-version="[3.10.0,4.0.0)"
-Import-Package: org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.6.0,2.0.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="1.6.0",
+ org.eclipse.jface.layout;version="0.0.0",
  org.eclipse.swt;version="0.0.0",
  org.eclipse.swt.layout;version="0.0.0",
  org.eclipse.swt.widgets;version="0.0.0",
  org.eclipse.ui.forms.events;version="0.0.0",
  org.eclipse.ui.forms.widgets;version="0.0.0"
 Export-Package: org.eclipse.emf.ecp.view.internal.section.swt;version=
- "1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.internal.section.ui
- .swt;version="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.spi.se
- ction.swt;version="1.5.1"
+ "1.6.0";x-internal:=true,org.eclipse.emf.ecp.view.internal.section.ui
+ .swt;version="1.6.0";x-internal:=true,org.eclipse.emf.ecp.view.spi.se
+ ction.swt;version="1.6.0"
 Bundle-Activator: org.eclipse.emf.ecp.view.internal.section.ui.swt.Activator
+Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.view.section.ui.swt/pom.xml b/bundles/org.eclipse.emf.ecp.view.section.ui.swt/pom.xml
index 4f44bd1..87afad8 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.5.1-SNAPSHOT</version>
+    <version>1.6.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.section.ui.swt/src/org/eclipse/emf/ecp/view/internal/section/ui/swt/Activator.java b/bundles/org.eclipse.emf.ecp.view.section.ui.swt/src/org/eclipse/emf/ecp/view/internal/section/ui/swt/Activator.java
index 385a327..11e535f 100644
--- a/bundles/org.eclipse.emf.ecp.view.section.ui.swt/src/org/eclipse/emf/ecp/view/internal/section/ui/swt/Activator.java
+++ b/bundles/org.eclipse.emf.ecp.view.section.ui.swt/src/org/eclipse/emf/ecp/view/internal/section/ui/swt/Activator.java
@@ -12,7 +12,8 @@
 package org.eclipse.emf.ecp.view.internal.section.ui.swt;
 
 import org.eclipse.core.runtime.Plugin;
-import org.eclipse.emf.ecp.view.spi.model.reporting.ReportService;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
 
@@ -73,4 +74,20 @@
 			bundleContext.getServiceReference(ReportService.class);
 		return bundleContext.getService(serviceReference);
 	}
+
+	/**
+	 * Returns the {@link EMFFormsDatabinding} service.
+	 *
+	 * @return The {@link EMFFormsDatabinding}
+	 */
+	public EMFFormsDatabinding getEMFFormsDatabinding() {
+		final ServiceReference<EMFFormsDatabinding> serviceReference = plugin.getBundle().getBundleContext()
+			.getServiceReference(EMFFormsDatabinding.class);
+
+		final EMFFormsDatabinding service = plugin.getBundle().getBundleContext()
+			.getService(serviceReference);
+		plugin.getBundle().getBundleContext().ungetService(serviceReference);
+
+		return service;
+	}
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.section.ui.swt/src/org/eclipse/emf/ecp/view/spi/section/swt/AbstractSectionSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.section.ui.swt/src/org/eclipse/emf/ecp/view/spi/section/swt/AbstractSectionSWTRenderer.java
index ec0168f..e458ee2 100644
--- a/bundles/org.eclipse.emf.ecp.view.section.ui.swt/src/org/eclipse/emf/ecp/view/spi/section/swt/AbstractSectionSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.section.ui.swt/src/org/eclipse/emf/ecp/view/spi/section/swt/AbstractSectionSWTRenderer.java
@@ -18,65 +18,64 @@
 import java.util.Set;
 
 import org.eclipse.emf.ecp.view.internal.section.ui.swt.Activator;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.model.VContainedElement;
 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.emf.ecp.view.spi.section.model.VSection;
-import org.eclipse.emf.ecp.view.spi.swt.AbstractAdditionalSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.swt.layout.GridDescriptionFactory;
 import org.eclipse.emf.ecp.view.spi.swt.layout.LayoutProviderHelper;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
 import org.eclipse.emf.ecp.view.spi.swt.reporting.RenderingFailedReport;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.swt.core.AbstractAdditionalSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.GridDescriptionFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Layout;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
 
 /**
  * Common super class for all section renderer.
  *
  * @author jfaltermeier
- *
+ * @noextend This class is not intended to be subclassed by clients.
  */
 public abstract class AbstractSectionSWTRenderer extends
 	AbstractSWTRenderer<VSection> {
 
+	/**
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 * @since 1.6
+	 */
+	public AbstractSectionSWTRenderer(VSection vElement, ViewModelContext viewContext, ReportService reportService) {
+		super(vElement, viewContext, reportService);
+	}
+
 	@Override
 	protected Control renderControl(SWTGridCell cell, Composite parent)
 		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
 		if (cell.getRenderer() == this) {
-			switch (cell.getColumn()) {
-			case 0:
+			if (cell.getColumn() == 0) {
 				return createFirstColumn(parent);
-
-			case 1:
-				if (getVElement().getChildren().size() < 3) {
-					return renderEmpty(parent);
-				}
-				return renderChild(parent, getVElement().getChildren().get(0));
-
-			case 2:
-				if (getVElement().getChildren().size() < 2) {
-					return renderEmpty(parent);
-				}
-				return renderChild(
-					parent,
-					getVElement().getChildren().get(
-						getVElement().getChildren().size() - 2));
-
-			case 3:
-				return renderChild(
-					parent,
-					getVElement().getChildren().get(
-						getVElement().getChildren().size() - 1));
-			default:
-				throw new IllegalArgumentException(""); //$NON-NLS-1$
+			} else if (cell.getColumn() < 0) {
+				return renderEmpty(parent);
+			} else {
+				/*-1 because label is column 0*/
+				return renderChild(parent, getVElement().getChildren().get(cell.getColumn() - 1));
 			}
 		}
 		return cell.getRenderer().render(cell, parent);
@@ -106,20 +105,32 @@
 		final Map<VContainedElement, SWTGridDescription> rowGridDescription = new LinkedHashMap<VContainedElement, SWTGridDescription>();
 		final Map<VContainedElement, SWTGridDescription> controlGridDescription = new LinkedHashMap<VContainedElement, SWTGridDescription>();
 
-		if (VControl.class.isInstance(child)
-			&& (VControl.class.cast(child).getDomainModelReference() == null || !VControl.class
-				.cast(child).getDomainModelReference().getIterator()
-				.hasNext())) {
+		if (VControl.class.isInstance(child)) {
+			if (VControl.class.cast(child).getDomainModelReference() == null) {
+				return columnComposite;
+			}
+			try {
+				Activator
+					.getDefault()
+					.getEMFFormsDatabinding()
+					.getValueProperty(VControl.class.cast(child).getDomainModelReference(),
+						getViewModelContext().getDomainModel());
+			} catch (final DatabindingFailedException ex) {
+				Activator.getDefault().getReportService().report(new RenderingFailedReport(ex));
+				return columnComposite;
+			}
+		}
+
+		AbstractSWTRenderer<VElement> renderer;
+		try {
+			renderer = getEMFFormsRendererFactory()
+				.getRendererInstance(child, getViewModelContext());
+		} catch (final EMFFormsNoRendererException ex) {
+			getReportService().report(new RenderingFailedReport(ex));
 			return columnComposite;
 		}
-		final AbstractSWTRenderer<VElement> renderer = getSWTRendererFactory()
-			.getRenderer(child, getViewModelContext());
-		if (renderer == null) {
-			// TODO log
-			return columnComposite;
-		}
-		final Collection<AbstractAdditionalSWTRenderer<VElement>> additionalRenderers = getSWTRendererFactory()
-			.getAdditionalRenderer(child, getViewModelContext());
+		final Collection<AbstractAdditionalSWTRenderer<VElement>> additionalRenderers = getEMFFormsRendererFactory()
+			.getAdditionalRendererInstances(child, getViewModelContext());
 		SWTGridDescription gridDescription = renderer
 			.getGridDescription(GridDescriptionFactory.INSTANCE
 				.createEmptyGridDescription());
@@ -143,12 +154,6 @@
 			maximalGridDescription.getColumns(), false));
 
 		try {
-			if (VControl.class.isInstance(child)
-				&& (VControl.class.cast(child).getDomainModelReference() == null || !VControl.class
-					.cast(child).getDomainModelReference()
-					.getIterator().hasNext())) {
-				return columnComposite;
-			}
 			final SWTGridDescription gridDescription2 = rowGridDescription
 				.get(child);
 			if (gridDescription2 == null) {
@@ -167,7 +172,8 @@
 				setLayoutDataForControl(childGridCell,
 					controlGridDescription.get(child), gridDescription2,
 					maximalGridDescription, childGridCell.getRenderer()
-						.getVElement(), control);
+						.getVElement(),
+					control);
 
 			}
 			for (final SWTGridCell childGridCell : gridDescription2.getGrid()) {
@@ -206,4 +212,46 @@
 			getControls().get(gridCell).setVisible(visible);
 		}
 	}
+
+	/**
+	 * Access to the EMFFormsRendererFactory.
+	 *
+	 * @return The {@link EMFFormsRendererFactory}
+	 * @since 1.6
+	 */
+	protected EMFFormsRendererFactory getEMFFormsRendererFactory() {
+		final BundleContext bundleContext = FrameworkUtil.getBundle(getClass()).getBundleContext();
+		final ServiceReference<EMFFormsRendererFactory> serviceReference = bundleContext
+			.getServiceReference(EMFFormsRendererFactory.class);
+		final EMFFormsRendererFactory rendererFactory = bundleContext.getService(serviceReference);
+		bundleContext.ungetService(serviceReference);
+		return rendererFactory;
+	}
+
+	/**
+	 * Sets the LayoutData for the specified control.
+	 *
+	 * @param gridCell the {@link GridCell} used to render the control
+	 * @param gridDescription the {@link GridDescription} of the parent which rendered the control
+	 * @param currentRowGridDescription the {@link GridDescription} of the current row
+	 * @param fullGridDescription the {@link GridDescription} of the whole container
+	 * @param vElement the {@link VElement} to set the layoutData for
+	 * @param control the control to set the layout to
+	 */
+	private void setLayoutDataForControl(SWTGridCell gridCell, SWTGridDescription gridDescription,
+		SWTGridDescription currentRowGridDescription, SWTGridDescription fullGridDescription, VElement vElement,
+		Control control) {
+
+		control.setLayoutData(LayoutProviderHelper.getLayoutData(gridCell, gridDescription, currentRowGridDescription,
+			fullGridDescription, vElement, getViewModelContext().getDomainModel(), control));
+
+	}
+
+	/**
+	 * Called by the {@link org.eclipse.emf.ecp.view.spi.section.model.VSectionedArea} when all children have been
+	 * renderered. Initialises the collapse state based on {@link VSection#isCollapsed()}.
+	 *
+	 * @since 1.6
+	 */
+	protected abstract void initCollapseState();
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.section.ui.swt/src/org/eclipse/emf/ecp/view/spi/section/swt/SectionLeafSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.section.ui.swt/src/org/eclipse/emf/ecp/view/spi/section/swt/SectionLeafSWTRenderer.java
index 73d6f58..d1fbfba 100644
--- a/bundles/org.eclipse.emf.ecp.view.section.ui.swt/src/org/eclipse/emf/ecp/view/spi/section/swt/SectionLeafSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.section.ui.swt/src/org/eclipse/emf/ecp/view/spi/section/swt/SectionLeafSWTRenderer.java
@@ -12,9 +12,12 @@
 package org.eclipse.emf.ecp.view.spi.section.swt;
 
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.section.model.VSection;
 import org.eclipse.emf.ecp.view.spi.section.model.VSectionedArea;
-import org.eclipse.emf.ecp.view.spi.swt.layout.GridDescriptionFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.swt.core.layout.GridDescriptionFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription;
 import org.eclipse.jface.layout.GridLayoutFactory;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Composite;
@@ -29,14 +32,26 @@
  */
 public class SectionLeafSWTRenderer extends AbstractSectionSWTRenderer {
 
+	/**
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 * @since 1.6
+	 */
+	public SectionLeafSWTRenderer(VSection vElement, ViewModelContext viewContext, ReportService reportService) {
+		super(vElement, viewContext, reportService);
+	}
+
 	private SWTGridDescription rendererGridDescription;
 
 	@Override
 	public SWTGridDescription getGridDescription(
 		SWTGridDescription gridDescription) {
+		/* +1 because of label */
+		final int columns = getVElement().getChildren().size() + 1;
 		if (rendererGridDescription == null) {
 			rendererGridDescription = GridDescriptionFactory.INSTANCE
-				.createSimpleGrid(1, 4, this);
+				.createSimpleGrid(1, columns, this);
 		}
 		return rendererGridDescription;
 	}
@@ -66,4 +81,15 @@
 		return (numberOfParents + 1) * 8;
 	}
 
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.section.swt.AbstractSectionSWTRenderer#initCollapseState()
+	 * @since 1.6
+	 */
+	@Override
+	protected void initCollapseState() {
+		// no children -> empty
+	}
+
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.section.ui.swt/src/org/eclipse/emf/ecp/view/spi/section/swt/SectionNodeSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.section.ui.swt/src/org/eclipse/emf/ecp/view/spi/section/swt/SectionNodeSWTRenderer.java
index 883c871..e8b8b15 100644
--- a/bundles/org.eclipse.emf.ecp.view.section.ui.swt/src/org/eclipse/emf/ecp/view/spi/section/swt/SectionNodeSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.section.ui.swt/src/org/eclipse/emf/ecp/view/spi/section/swt/SectionNodeSWTRenderer.java
@@ -17,16 +17,20 @@
 import java.util.Set;
 
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 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.VElement;
 import org.eclipse.emf.ecp.view.spi.section.model.VSection;
 import org.eclipse.emf.ecp.view.spi.section.model.VSectionPackage;
 import org.eclipse.emf.ecp.view.spi.section.model.VSectionedArea;
-import org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.swt.layout.GridDescriptionFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
+import org.eclipse.emf.ecp.view.spi.swt.reporting.RenderingFailedReport;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+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.SWTGridCell;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription;
 import org.eclipse.jface.layout.GridLayoutFactory;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Composite;
@@ -43,6 +47,16 @@
  */
 public class SectionNodeSWTRenderer extends AbstractSectionSWTRenderer {
 
+	/**
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 * @since 1.6
+	 */
+	public SectionNodeSWTRenderer(VSection vElement, ViewModelContext viewContext, ReportService reportService) {
+		super(vElement, viewContext, reportService);
+	}
+
 	private Set<AbstractSectionSWTRenderer> childRenderers;
 	private SWTGridDescription rendererGridDescription;
 	private ModelChangeListener listener;
@@ -63,12 +77,7 @@
 				}
 				if (notification.getStructuralFeature() == VSectionPackage.eINSTANCE
 					.getSection_Collapsed()) {
-					for (final AbstractSectionSWTRenderer childRenderer : childRenderers) {
-						childRenderer.adjustLayoutData(!getVElement()
-							.isCollapsed());
-					}
-					getControls().values().iterator().next().getParent()
-						.layout(false);
+					handleCollapseState();
 				}
 			}
 		};
@@ -78,39 +87,125 @@
 	@Override
 	public SWTGridDescription getGridDescription(
 		SWTGridDescription gridDescription) {
-		childRenderers = new LinkedHashSet<AbstractSectionSWTRenderer>();
+
 		rendererGridDescription = new SWTGridDescription();
-		rendererGridDescription.setColumns(4);
-		final List<SWTGridCell> gridCells = new ArrayList<SWTGridCell>();
+		childRenderers = new LinkedHashSet<AbstractSectionSWTRenderer>();
 
-		/* add self */
-		gridCells.add(createGridCell(0, 0, this));
-		gridCells.add(createGridCell(0, 1, this));
-		gridCells.add(createGridCell(0, 2, this));
-		gridCells.add(createGridCell(0, 3, this));
-
-		/* add children */
-		int row = 1;
+		/* get griddescriptions from child sections */
+		final List<SWTGridDescription> childGridDescriptions = new ArrayList<SWTGridDescription>();
 		for (final VSection item : getVElement().getChildItems()) {
-			final AbstractSWTRenderer<?> itemRenderer = getSWTRendererFactory()
-				.getRenderer(item, getViewModelContext());
+			AbstractSWTRenderer<?> itemRenderer;
+			try {
+				itemRenderer = getEMFFormsRendererFactory()
+					.getRendererInstance(item, getViewModelContext());
+			} catch (final EMFFormsNoRendererException ex) {
+				getReportService().report(new RenderingFailedReport(ex));
+				continue;
+			}
 			final SWTGridDescription itemGridDescription = itemRenderer
 				.getGridDescription(GridDescriptionFactory.INSTANCE
 					.createEmptyGridDescription());
 			childRenderers.add((AbstractSectionSWTRenderer) itemRenderer);
-
-			final int itemRows = itemGridDescription.getRows();
-			for (final SWTGridCell itemCell : itemGridDescription.getGrid()) {
-				gridCells.add(createGridCell(itemCell.getRow() + row,
-					itemCell.getColumn(), itemCell.getRenderer()));
-			}
-			row = row + itemRows;
+			childGridDescriptions.add(itemGridDescription);
 		}
 
+		/* compute required column count based on self and children */
+		final int selfColumns = 1 + getVElement().getChildren().size();
+		int columns = selfColumns;
+		for (final SWTGridDescription childGridDescription : childGridDescriptions) {
+			columns = childGridDescription.getColumns() > columns ? childGridDescription.getColumns() : columns;
+		}
+
+		/* create grid description for this renderer */
+		rendererGridDescription.setColumns(columns);
+		final List<SWTGridCell> gridCells = new ArrayList<SWTGridCell>();
+		int emptyCellColumnIndicator = -1;
+
+		/* add self */
+		int row = 0;
+
+		/* label */
+		int curSelfColumn = 0;
+		gridCells.add(createGridCell(row, curSelfColumn++, this));
+		/* empty columns */
+		final int emptyColumns = columns - selfColumns;
+		for (int i = 0; i < emptyColumns; i++) {
+			gridCells.add(createGridCell(row, emptyCellColumnIndicator--, this));
+		}
+		/* regular columns */
+		for (int columnToAdd = 0; columnToAdd < getVElement().getChildren().size(); columnToAdd++) {
+			gridCells.add(createGridCell(row, curSelfColumn++, this));
+		}
+		row += 1;
+
+		/* add children */
+		for (final SWTGridDescription childGridDescription : childGridDescriptions) {
+			final SWTGridCell[][] sortedChildGridCells = getArrangedChildGridCells(childGridDescription, columns);
+			for (final SWTGridCell[] rowGridCells : sortedChildGridCells) {
+				/* There is always at least one column (index) */
+				final int currentRow = rowGridCells[0].getRow() + row;
+				final AbstractSWTRenderer<?> renderer = rowGridCells[0].getRenderer();
+				for (int i = 0; i < rowGridCells.length; i++) {
+					final SWTGridCell swtGridCell = rowGridCells[i];
+					if (swtGridCell != null) {
+						gridCells.add(
+							createGridCell(
+								currentRow,
+								swtGridCell.getColumn(),
+								swtGridCell.getRenderer()));
+					} else {
+						/* create empty column */
+						gridCells.add(createGridCell(currentRow, emptyCellColumnIndicator--, renderer));
+					}
+				}
+			}
+			row += childGridDescription.getRows();
+		}
+
+		rendererGridDescription.setRows(row);
 		rendererGridDescription.setGrid(gridCells);
 		return rendererGridDescription;
 	}
 
+	private SWTGridCell[][] getArrangedChildGridCells(SWTGridDescription childGridDescription, int columns) {
+		final SWTGridCell[][] result = new SWTGridCell[childGridDescription.getRows()][columns];
+		for (final SWTGridCell swtGridCell : childGridDescription.getGrid()) {
+			if (swtGridCell.getColumn() < 0) {
+				continue;
+			}
+			result[swtGridCell.getRow()][swtGridCell.getColumn()] = swtGridCell;
+		}
+		for (final SWTGridCell[] columnArray : result) {
+			shiftElementsToEndOfArrayButFirstElement(columnArray);
+		}
+		return result;
+	}
+
+	private static void shiftElementsToEndOfArrayButFirstElement(SWTGridCell[] columnArray) {
+		final int length = columnArray.length;
+		for (int i = length - 1; i >= 0; i--) {
+			if (columnArray[i] == null) {
+				final int index = getIndexToMove(columnArray, i);
+				if (index == -1) {
+					return;
+				}
+				columnArray[i] = columnArray[index];
+				columnArray[index] = null;
+			} else {
+				return;
+			}
+		}
+	}
+
+	private static int getIndexToMove(SWTGridCell[] columnArray, int index) {
+		for (int i = index - 1; i > 0; i--) {
+			if (columnArray[i] != null) {
+				return i;
+			}
+		}
+		return -1;
+	}
+
 	private SWTGridCell createGridCell(int row, int column,
 		AbstractSWTRenderer<? extends VElement> renderer) {
 		final SWTGridCell gridCell = new SWTGridCell(row, column, renderer);
@@ -182,7 +277,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#applyEnable()
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#applyEnable()
 	 */
 	@Override
 	protected void applyEnable() {
@@ -195,4 +290,26 @@
 		super.dispose();
 	}
 
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.section.swt.AbstractSectionSWTRenderer#initCollapseState()
+	 * @since 1.6
+	 */
+	@Override
+	protected void initCollapseState() {
+		handleCollapseState();
+	}
+
+	private void handleCollapseState() {
+		for (final AbstractSectionSWTRenderer childRenderer : childRenderers) {
+			childRenderer.adjustLayoutData(!getVElement()
+				.isCollapsed());
+		}
+		getControls().values().iterator().next().getParent()
+			.layout(false);
+		expandableComposite.setExpanded(!getVElement()
+			.isCollapsed());
+	}
+
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.section.ui.swt/src/org/eclipse/emf/ecp/view/spi/section/swt/SectionedAreaSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.section.ui.swt/src/org/eclipse/emf/ecp/view/spi/section/swt/SectionedAreaSWTRenderer.java
index aeae791..db8afcd 100644
--- a/bundles/org.eclipse.emf.ecp.view.section.ui.swt/src/org/eclipse/emf/ecp/view/spi/section/swt/SectionedAreaSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.section.ui.swt/src/org/eclipse/emf/ecp/view/spi/section/swt/SectionedAreaSWTRenderer.java
@@ -16,22 +16,29 @@
 import java.util.Set;
 
 import org.eclipse.emf.ecp.view.internal.section.ui.swt.Activator;
+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.renderer.NoPropertyDescriptorFoundExeption;
 import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException;
 import org.eclipse.emf.ecp.view.spi.section.model.VSection;
 import org.eclipse.emf.ecp.view.spi.section.model.VSectionedArea;
-import org.eclipse.emf.ecp.view.spi.swt.AbstractAdditionalSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.swt.layout.GridDescriptionFactory;
 import org.eclipse.emf.ecp.view.spi.swt.layout.LayoutProviderHelper;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
 import org.eclipse.emf.ecp.view.spi.swt.reporting.RenderingFailedReport;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.swt.core.AbstractAdditionalSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.GridDescriptionFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
 
 /**
  * Renderer for {@link VSectionedArea}.
@@ -42,10 +49,23 @@
 public class SectionedAreaSWTRenderer extends
 	AbstractSWTRenderer<VSectionedArea> {
 
+	/**
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 * @since 1.6
+	 */
+	public SectionedAreaSWTRenderer(VSectionedArea vElement, ViewModelContext viewContext,
+		ReportService reportService) {
+		super(vElement, viewContext, reportService);
+	}
+
 	private static final String CUSTOM_VARIANT_VALUE = "org_eclipse_emf_ecp_ui_section"; //$NON-NLS-1$
 
 	private SWTGridDescription gridDescription;
 
+	private AbstractSectionSWTRenderer rootRenderer;
+
 	@Override
 	public SWTGridDescription getGridDescription(
 		SWTGridDescription gridDescription) {
@@ -70,14 +90,16 @@
 		SWTGridDescription rowGridDescription = null;
 		SWTGridDescription controlGridDescription = null;
 		final VSection child = getVElement().getRoot();
-		final AbstractSWTRenderer<VElement> renderer = getSWTRendererFactory()
-			.getRenderer(child, getViewModelContext());
-		if (renderer == null) {
+		try {
+			rootRenderer = AbstractSectionSWTRenderer.class.cast(getEMFFormsRendererFactory()
+				.getRendererInstance(child, getViewModelContext()));
+		} catch (final EMFFormsNoRendererException ex) {
+			getReportService().report(new RenderingFailedReport(ex));
 			return columnComposite;
 		}
-		final Collection<AbstractAdditionalSWTRenderer<VElement>> additionalRenderers = getSWTRendererFactory()
-			.getAdditionalRenderer(child, getViewModelContext());
-		SWTGridDescription gridDescription = renderer
+		final Collection<AbstractAdditionalSWTRenderer<VElement>> additionalRenderers = getEMFFormsRendererFactory()
+			.getAdditionalRendererInstances(child, getViewModelContext());
+		SWTGridDescription gridDescription = rootRenderer
 			.getGridDescription(GridDescriptionFactory.INSTANCE
 				.createEmptyGridDescription());
 		controlGridDescription = gridDescription;
@@ -88,8 +110,8 @@
 		}
 		rowGridDescription = gridDescription;
 		maximalGridDescription = gridDescription;
-		final Set<AbstractSWTRenderer<VElement>> allRenderer = new LinkedHashSet<AbstractSWTRenderer<VElement>>();
-		allRenderer.add(renderer);
+		final Set<AbstractSWTRenderer<?>> allRenderer = new LinkedHashSet<AbstractSWTRenderer<?>>();
+		allRenderer.add(rootRenderer);
 		allRenderer.addAll(additionalRenderers);
 
 		if (maximalGridDescription == null) {
@@ -115,7 +137,8 @@
 				// TODO possible layout issues?
 				setLayoutDataForControl(childGridCell, controlGridDescription,
 					gridDescription2, maximalGridDescription, childGridCell
-						.getRenderer().getVElement(), control);
+						.getRenderer().getVElement(),
+					control);
 
 			}
 			for (final SWTGridCell childGridCell : gridDescription2.getGrid()) {
@@ -129,34 +152,47 @@
 		return columnComposite;
 	}
 
-	@Override
-	protected void setLayoutDataForControl(SWTGridCell gridCell,
+	private void setLayoutDataForControl(SWTGridCell gridCell,
 		SWTGridDescription gridDescription,
 		SWTGridDescription currentRowGridDescription,
 		SWTGridDescription fullGridDescription, VElement vElement,
 		Control control) {
 
-		final Object layoutData = LayoutProviderHelper.getLayoutData(gridCell,
-			gridDescription, currentRowGridDescription,
-			fullGridDescription, vElement, control);
+		final Object layoutData = LayoutProviderHelper.getLayoutData(gridCell, gridDescription,
+			currentRowGridDescription, fullGridDescription, vElement, getViewModelContext().getDomainModel(), control);
 		if (!GridData.class.isInstance(layoutData)) {
 			return;
 		}
-		if (gridCell.getColumn() == 0) {
-			GridData.class.cast(layoutData).widthHint = 300;
-		} else if (gridCell.getColumn() == 1) {
-			GridData.class.cast(layoutData).widthHint = 20;
-		} else if (gridCell.getColumn() == 2) {
-			GridData.class.cast(layoutData).widthHint = 20;
-		} else if (gridCell.getColumn() == 3) {
+		final int lastColumnIndex = fullGridDescription.getColumns() - 1;
+		if (gridCell.getColumn() == lastColumnIndex) {
 			if (SectionLeafSWTRenderer.class.isInstance(gridCell
 				.getRenderer())) {
 				GridData.class.cast(layoutData).grabExcessHorizontalSpace = false;
 				GridData.class.cast(layoutData).horizontalAlignment = SWT.BEGINNING;
 			}
-			GridData.class.cast(layoutData).widthHint = 500;
+			GridData.class.cast(layoutData).widthHint = 250;
 		}
 		control.setLayoutData(layoutData);
 	}
 
+	private EMFFormsRendererFactory getEMFFormsRendererFactory() {
+		final BundleContext bundleContext = FrameworkUtil.getBundle(getClass()).getBundleContext();
+		final ServiceReference<EMFFormsRendererFactory> serviceReference = bundleContext
+			.getServiceReference(EMFFormsRendererFactory.class);
+		final EMFFormsRendererFactory rendererFactory = bundleContext.getService(serviceReference);
+		bundleContext.ungetService(serviceReference);
+		return rendererFactory;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#finalizeRendering(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	public void finalizeRendering(Composite parent) {
+		/* after all children have been rendered, we can init the visibility state */
+		rootRenderer.initCollapseState();
+		super.finalizeRendering(parent);
+	}
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.stack.model.edit/.gitignore b/bundles/org.eclipse.emf.ecp.view.stack.model.edit/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.stack.model.edit/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.view.stack.model.edit/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.stack.model.edit/.settings/.api_filters
index fbfc728..3240283 100644
--- a/bundles/org.eclipse.emf.ecp.view.stack.model.edit/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.stack.model.edit/.settings/.api_filters
@@ -1,10 +1,34 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.emf.ecp.view.stack.model.edit" version="2">
     <resource path="META-INF/MANIFEST.MF">
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model.edit"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.stack.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.stack.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.stack.model.edit_1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
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 d9a7e68..850196a 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.stack.model.edit;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.spi.stack.model.provider.StackEditPlugin$Implementation
 Bundle-Vendor: %providerName
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 2f42114..fcbb337 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.5.1-SNAPSHOT</version>
+    <version>1.6.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/src/org/eclipse/emf/ecp/view/spi/stack/model/provider/StackItemItemProvider.java b/bundles/org.eclipse.emf.ecp.view.stack.model.edit/src/org/eclipse/emf/ecp/view/spi/stack/model/provider/StackItemItemProvider.java
index c30d186..a9f3a64 100644
--- a/bundles/org.eclipse.emf.ecp.view.stack.model.edit/src/org/eclipse/emf/ecp/view/spi/stack/model/provider/StackItemItemProvider.java
+++ b/bundles/org.eclipse.emf.ecp.view.stack.model.edit/src/org/eclipse/emf/ecp/view/spi/stack/model/provider/StackItemItemProvider.java
@@ -16,6 +16,8 @@
 
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emf.ecp.view.spi.model.VElementUtil;
 import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
 import org.eclipse.emf.ecp.view.spi.model.provider.ContainerItemProvider;
 import org.eclipse.emf.ecp.view.spi.stack.model.VStackFactory;
@@ -109,12 +111,15 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 *
-	 * @generated
+	 * @generated NOT
 	 */
 	@Override
 	public String getText(Object object)
 	{
-		final String label = ((VStackItem) object).getName();
+		String label = ((VStackItem) object).getName();
+		if (label == null) {
+			label = VElementUtil.getCleanName(VElement.class.cast(object));
+		}
 		return label == null || label.length() == 0 ?
 			getString("_UI_StackItem_type") : //$NON-NLS-1$
 			getString("_UI_StackItem_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
diff --git a/bundles/org.eclipse.emf.ecp.view.stack.model.edit/src/org/eclipse/emf/ecp/view/spi/stack/model/provider/StackLayoutItemProvider.java b/bundles/org.eclipse.emf.ecp.view.stack.model.edit/src/org/eclipse/emf/ecp/view/spi/stack/model/provider/StackLayoutItemProvider.java
index 0438687..1bc84e9 100644
--- a/bundles/org.eclipse.emf.ecp.view.stack.model.edit/src/org/eclipse/emf/ecp/view/spi/stack/model/provider/StackLayoutItemProvider.java
+++ b/bundles/org.eclipse.emf.ecp.view.stack.model.edit/src/org/eclipse/emf/ecp/view/spi/stack/model/provider/StackLayoutItemProvider.java
@@ -17,6 +17,8 @@
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emf.ecp.view.spi.model.VElementUtil;
 import org.eclipse.emf.ecp.view.spi.model.provider.ContainedElementItemProvider;
 import org.eclipse.emf.ecp.view.spi.stack.model.VStackFactory;
 import org.eclipse.emf.ecp.view.spi.stack.model.VStackLayout;
@@ -171,12 +173,15 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 *
-	 * @generated
+	 * @generated NOT
 	 */
 	@Override
 	public String getText(Object object)
 	{
-		final String label = ((VStackLayout) object).getName();
+		String label = ((VStackLayout) object).getName();
+		if (label == null) {
+			label = VElementUtil.getCleanName(VElement.class.cast(object));
+		}
 		return label == null || label.length() == 0 ?
 			getString("_UI_StackLayout_type") : //$NON-NLS-1$
 			getString("_UI_StackLayout_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
diff --git a/bundles/org.eclipse.emf.ecp.view.stack.model/.gitignore b/bundles/org.eclipse.emf.ecp.view.stack.model/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.stack.model/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.view.stack.model/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.stack.model/.settings/.api_filters
index 3daea38..5eb1699 100644
--- a/bundles/org.eclipse.emf.ecp.view.stack.model/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.stack.model/.settings/.api_filters
@@ -1,10 +1,158 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.emf.ecp.view.stack.model" version="2">
     <resource path="META-INF/MANIFEST.MF">
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.stack.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.stack.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.stack.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/stack/model/VStackPackage.java">
+        <filter comment="Changes due to new label field in 1.6" id="0"/>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/stack/model/VStackPackage.java" type="org.eclipse.emf.ecp.view.spi.stack.model.VStackPackage">
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.stack.model.VStackPackage"/>
+                <message_argument value="STACK_ITEM_FEATURE_COUNT"/>
+                <message_argument value="8"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.stack.model.VStackPackage"/>
+                <message_argument value="STACK_ITEM__ATTACHMENTS"/>
+                <message_argument value="5"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.stack.model.VStackPackage"/>
+                <message_argument value="STACK_ITEM__CHILDREN"/>
+                <message_argument value="6"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.stack.model.VStackPackage"/>
+                <message_argument value="STACK_ITEM__DIAGNOSTIC"/>
+                <message_argument value="4"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.stack.model.VStackPackage"/>
+                <message_argument value="STACK_ITEM__ENABLED"/>
+                <message_argument value="2"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.stack.model.VStackPackage"/>
+                <message_argument value="STACK_ITEM__READONLY"/>
+                <message_argument value="3"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.stack.model.VStackPackage"/>
+                <message_argument value="STACK_ITEM__VALUE"/>
+                <message_argument value="7"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.stack.model.VStackPackage"/>
+                <message_argument value="STACK_ITEM__VISIBLE"/>
+                <message_argument value="1"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.stack.model.VStackPackage"/>
+                <message_argument value="STACK_LAYOUT_FEATURE_COUNT"/>
+                <message_argument value="9"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.stack.model.VStackPackage"/>
+                <message_argument value="STACK_LAYOUT__ATTACHMENTS"/>
+                <message_argument value="5"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.stack.model.VStackPackage"/>
+                <message_argument value="STACK_LAYOUT__DIAGNOSTIC"/>
+                <message_argument value="4"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.stack.model.VStackPackage"/>
+                <message_argument value="STACK_LAYOUT__DOMAIN_MODEL_REFERENCE"/>
+                <message_argument value="6"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.stack.model.VStackPackage"/>
+                <message_argument value="STACK_LAYOUT__ENABLED"/>
+                <message_argument value="2"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.stack.model.VStackPackage"/>
+                <message_argument value="STACK_LAYOUT__READONLY"/>
+                <message_argument value="3"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.stack.model.VStackPackage"/>
+                <message_argument value="STACK_LAYOUT__STACK_ITEMS"/>
+                <message_argument value="7"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.stack.model.VStackPackage"/>
+                <message_argument value="STACK_LAYOUT__TOP_ELEMENT"/>
+                <message_argument value="8"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.stack.model.VStackPackage"/>
+                <message_argument value="STACK_LAYOUT__VISIBLE"/>
+                <message_argument value="1"/>
             </message_arguments>
         </filter>
     </resource>
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 383ad4d..fc1dc81 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.view.spi.stack.model;version="0.1.
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 7dcaf44..69c31be 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.5.1-SNAPSHOT</version>
+    <version>1.6.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/.gitignore b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/.gitignore
@@ -0,0 +1 @@
+/bin/
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 a98caf7..c781755 100644
--- a/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/.project
+++ b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/.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.stack.ui.swt/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/.settings/.api_filters
new file mode 100644
index 0000000..729fa34
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/.settings/.api_filters
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<component id="org.eclipse.emf.ecp.view.stack.ui.swt" version="2">
+    <resource path="META-INF/MANIFEST.MF">
+        <filter comment="SPI Change in 1.6" id="923795461">
+            <message_arguments>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/stack/ui/swt/SWTStackItemRenderer.java" type="org.eclipse.emf.ecp.view.spi.stack.ui.swt.SWTStackItemRenderer">
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.stack.ui.swt.SWTStackItemRenderer"/>
+                <message_argument value="SWTStackItemRenderer()"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/stack/ui/swt/SWTStackLayoutRenderer.java" type="org.eclipse.emf.ecp.view.spi.stack.ui.swt.SWTStackLayoutRenderer">
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.stack.ui.swt.SWTStackLayoutRenderer"/>
+                <message_argument value="SWTStackLayoutRenderer()"/>
+            </message_arguments>
+        </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.stack.ui.swt.SWTStackLayoutRenderer"/>
+                <message_argument value="getGridDescription(SWTGridDescription)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.stack.ui.swt.SWTStackLayoutRenderer"/>
+                <message_argument value="renderControl(SWTGridCell, Composite)"/>
+            </message_arguments>
+        </filter>
+    </resource>
+</component>
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 17e8a62..232223d 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.stack.ui.swt;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Localization: plugin
 Bundle-Vendor: %providerName
@@ -10,12 +10,18 @@
 Require-Bundle: org.eclipse.emf.ecp.view.stack.model;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.5.0,2.0.0)"
-Import-Package: org.eclipse.swt;version="0.0.0",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.core.databinding.observable;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.6.0,2.0.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="1.6.0",
+ org.eclipse.emfforms.spi.core.services.databinding;version="1.6.0",
+ org.eclipse.swt;version="0.0.0",
  org.eclipse.swt.custom;version="0.0.0",
  org.eclipse.swt.widgets;version="0.0.0"
 Export-Package: org.eclipse.emf.ecp.view.internal.stack.ui.swt;version
- ="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.internal.stack.ui.
- swt.messages;version="1.5.1";x-internal:=true,org.eclipse.emf.ecp.vie
- w.spi.stack.ui.swt;version="1.5.1"
+ ="1.6.0";x-internal:=true,org.eclipse.emf.ecp.view.spi.stack.ui.swt;v
+ ersion="1.6.0"
 Bundle-Activator: org.eclipse.emf.ecp.view.internal.stack.ui.swt.Activator
+Service-Component: OSGI-INF/stackItemRendererService.xml
diff --git a/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/OSGI-INF/l10n/bundle.properties
new file mode 100644
index 0000000..454bb1b
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/OSGI-INF/l10n/bundle.properties
@@ -0,0 +1 @@
+SWTStackLayoutRenderer_NoRendererForItemCompositeFound=No Renderer for %s found.
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/OSGI-INF/stackItemRendererService.xml b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/OSGI-INF/stackItemRendererService.xml
new file mode 100644
index 0000000..2817843
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/OSGI-INF/stackItemRendererService.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emf.ecp.view.stack.ui.swt.stackItem">
+   <implementation class="org.eclipse.emf.ecp.view.internal.stack.ui.swt.StackItemSWTRendererService"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService"/>
+   </service>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/build.properties b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/build.properties
index f70828b..ac6aad2 100644
--- a/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/build.properties
+++ b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/build.properties
@@ -1,8 +1,10 @@
-source.. = src/
 output.. = bin/
 bin.includes = META-INF/,\
                .,\
                about.html,\
                plugin.properties,\
-               plugin.xml
+               plugin.xml,\
+               OSGI-INF/,\
+               OSGI-INF/stackItemRendererService.xml
 src.includes = about.html
+source.. = src/
diff --git a/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/plugin.xml b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/plugin.xml
index 8e00e57..cb60fbe 100644
--- a/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/plugin.xml
+++ b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/plugin.xml
@@ -16,13 +16,6 @@
                priority="1">
          </staticTest>
       </renderer>
-      <renderer
-            renderer="org.eclipse.emf.ecp.view.spi.stack.ui.swt.SWTStackItemRenderer">
-         <staticTest
-               element="org.eclipse.emf.ecp.view.spi.stack.model.VStackItem"
-               priority="1">
-         </staticTest>
-      </renderer>
    </extension>
 
 </plugin>
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 1b9f09a..db7a28d 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.5.1-SNAPSHOT</version>
+    <version>1.6.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 2f58715..4931726 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
@@ -14,7 +14,10 @@
 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.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
 import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
 
 /**
  * The activator class controls the plug-in life cycle.
@@ -27,6 +30,8 @@
 	/** The shared instance. */
 	private static Activator plugin;
 
+	private ServiceReference<ReportService> reportServiceReference;
+
 	/**
 	 * The constructor.
 	 */
@@ -63,4 +68,32 @@
 		plugin.getLog().log(new Status(IStatus.ERROR, PLUGIN_ID, throwable.getMessage(), throwable));
 	}
 
+	/**
+	 * Returns the {@link ReportService}.
+	 *
+	 * @return the {@link ReportService}
+	 */
+	public ReportService getReportService() {
+		if (reportServiceReference == null) {
+			reportServiceReference = plugin.getBundle().getBundleContext()
+				.getServiceReference(ReportService.class);
+		}
+		return plugin.getBundle().getBundleContext().getService(reportServiceReference);
+	}
+
+	/**
+	 * Returns the {@link EMFFormsDatabinding} service.
+	 *
+	 * @return The {@link EMFFormsDatabinding}
+	 */
+	public EMFFormsDatabinding getEMFFormsDatabinding() {
+		final ServiceReference<EMFFormsDatabinding> serviceReference = plugin.getBundle().getBundleContext()
+			.getServiceReference(EMFFormsDatabinding.class);
+
+		final EMFFormsDatabinding service = plugin.getBundle().getBundleContext()
+			.getService(serviceReference);
+		plugin.getBundle().getBundleContext().ungetService(serviceReference);
+
+		return service;
+	}
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/src/org/eclipse/emf/ecp/view/internal/stack/ui/swt/MessageKeys.java b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/src/org/eclipse/emf/ecp/view/internal/stack/ui/swt/MessageKeys.java
new file mode 100644
index 0000000..7a6e87c
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/src/org/eclipse/emf/ecp/view/internal/stack/ui/swt/MessageKeys.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.stack.ui.swt;
+
+/**
+ * Keys for translated strings.
+ *
+ * @author Eugen Neufeld
+ * @generated
+ */
+public interface MessageKeys {
+	String SWTStackLayoutRenderer_NoRendererForItemCompositeFound = "SWTStackLayoutRenderer_NoRendererForItemCompositeFound"; //$NON-NLS-1$
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/src/org/eclipse/emf/ecp/view/internal/stack/ui/swt/StackItemSWTRendererService.java b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/src/org/eclipse/emf/ecp/view/internal/stack/ui/swt/StackItemSWTRendererService.java
new file mode 100644
index 0000000..666db9b
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/src/org/eclipse/emf/ecp/view/internal/stack/ui/swt/StackItemSWTRendererService.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.stack.ui.swt;
+
+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.stack.model.VStackItem;
+import org.eclipse.emf.ecp.view.spi.stack.ui.swt.SWTStackItemRenderer;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+
+/**
+ * StackItemSWTRendererService which provides the StackItemSWTRenderer.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class StackItemSWTRendererService implements EMFFormsDIRendererService<VStackItem> {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (!VStackItem.class.isInstance(vElement)) {
+			return NOT_APPLICABLE;
+		}
+		return 1d;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#getRendererClass()
+	 */
+	@Override
+	public Class<? extends AbstractSWTRenderer<VStackItem>> getRendererClass() {
+		return SWTStackItemRenderer.class;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/src/org/eclipse/emf/ecp/view/internal/stack/ui/swt/StackItemViewService.java b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/src/org/eclipse/emf/ecp/view/internal/stack/ui/swt/StackItemViewService.java
index bf7008e..05782a3 100644
--- a/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/src/org/eclipse/emf/ecp/view/internal/stack/ui/swt/StackItemViewService.java
+++ b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/src/org/eclipse/emf/ecp/view/internal/stack/ui/swt/StackItemViewService.java
@@ -11,18 +11,20 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.stack.ui.swt;
 
-import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
 import java.util.Map;
 import java.util.Set;
 
+import org.eclipse.core.databinding.observable.IObserving;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
 import org.eclipse.emf.common.util.Enumerator;
 import org.eclipse.emf.common.util.TreeIterator;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.EStructuralFeature.Setting;
 import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.InternalEObject;
 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.DomainModelReferenceChangeListener;
@@ -32,6 +34,8 @@
 import org.eclipse.emf.ecp.view.spi.model.VElement;
 import org.eclipse.emf.ecp.view.spi.stack.model.VStackItem;
 import org.eclipse.emf.ecp.view.spi.stack.model.VStackLayout;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 
 /**
  * {@link ViewModelService} evaluating changes on the {@link VDomainModelReference} of the {@link VStackLayout} based on
@@ -99,17 +103,23 @@
 	}
 
 	private Setting addToRegistry(VStackLayout stack, VDomainModelReference dmr) {
-		Setting firstSetting = null;
-		final Iterator<Setting> settings = dmr.getIterator();
-		if (settings.hasNext()) {
-			firstSetting = settings.next();
-		}
-		if (firstSetting == null) {
+		IObservableValue observableValue;
+		try {
+			observableValue = Activator.getDefault().getEMFFormsDatabinding().getObservableValue(dmr, domain);
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
 			// TODO JF how to handle?
 			return null;
 		}
-		addToRegistry(firstSetting.getEObject(), firstSetting.getEStructuralFeature(), stack);
-		return firstSetting;
+		final EObject eObject = (EObject) ((IObserving) observableValue).getObserved();
+		final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+		observableValue.dispose();
+		if (!eObject.eClass().getEAllStructuralFeatures().contains(structuralFeature)) {
+			return null;
+		}
+
+		addToRegistry(eObject, structuralFeature, stack);
+		return ((InternalEObject) eObject).eSetting(structuralFeature);
 	}
 
 	private void addToRegistry(EObject object, final EStructuralFeature domainModelEFeature, final VStackLayout stack) {
@@ -154,7 +164,7 @@
 					}
 				} else {
 					if (EcorePackage.eINSTANCE.getEEnum().isInstance(domainModelEFeature.getEType())) {
-						if (item.getValue().equals(Enumerator.class.cast(currentValue).getLiteral())) {
+						if (Enumerator.class.cast(currentValue).getLiteral().equals(item.getValue())) {
 							stack.setTopElement(item);
 							topElementSet = true;
 							break;
diff --git a/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/src/org/eclipse/emf/ecp/view/internal/stack/ui/swt/messages/Messages.java b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/src/org/eclipse/emf/ecp/view/internal/stack/ui/swt/messages/Messages.java
deleted file mode 100644
index 335f924..0000000
--- a/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/src/org/eclipse/emf/ecp/view/internal/stack/ui/swt/messages/Messages.java
+++ /dev/null
@@ -1,33 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * jfaltermeier - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.internal.stack.ui.swt.messages;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Messages for the stack swt renderer bundle.
- *
- * @author jfaltermeier
- * @generated
- *
- */
-public final class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.emf.ecp.view.internal.stack.ui.swt.messages.messages"; //$NON-NLS-1$
-	public static String SWTStackLayoutRenderer_NoRendererForItemCompositeFound;
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	private Messages() {
-	}
-}
diff --git a/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/src/org/eclipse/emf/ecp/view/internal/stack/ui/swt/messages/messages.properties b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/src/org/eclipse/emf/ecp/view/internal/stack/ui/swt/messages/messages.properties
deleted file mode 100644
index 11e7e2e..0000000
--- a/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/src/org/eclipse/emf/ecp/view/internal/stack/ui/swt/messages/messages.properties
+++ /dev/null
@@ -1 +0,0 @@
-SWTStackLayoutRenderer_NoRendererForItemCompositeFound=No Renderer for %s found.
diff --git a/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/src/org/eclipse/emf/ecp/view/spi/stack/ui/swt/SWTStackItemRenderer.java b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/src/org/eclipse/emf/ecp/view/spi/stack/ui/swt/SWTStackItemRenderer.java
index 50c2453..98d4c96 100644
--- a/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/src/org/eclipse/emf/ecp/view/spi/stack/ui/swt/SWTStackItemRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/src/org/eclipse/emf/ecp/view/spi/stack/ui/swt/SWTStackItemRenderer.java
@@ -13,9 +13,15 @@
 
 import java.util.Collection;
 
+import javax.inject.Inject;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer;
 import org.eclipse.emf.ecp.view.spi.model.VContainedElement;
 import org.eclipse.emf.ecp.view.spi.stack.model.VStackItem;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
 
 /**
  * The SWT {@link VStackItem} renderer.
@@ -25,6 +31,23 @@
  */
 public class SWTStackItemRenderer extends ContainerSWTRenderer<VStackItem> {
 
+	/**
+	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 * @param factory the {@link EMFFormsRendererFactory}
+	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
+	 * @since 1.6
+	 */
+	@Inject
+	public SWTStackItemRenderer(VStackItem vElement, ViewModelContext viewContext,
+		ReportService reportService,
+		EMFFormsRendererFactory factory, EMFFormsDatabinding emfFormsDatabinding) {
+		super(vElement, viewContext, reportService, factory, emfFormsDatabinding);
+	}
+
 	private static final String LAYOUT_STACK_ITEM = "org_eclipse_emf_ecp_ui_layout_stackitem"; //$NON-NLS-1$
 
 	/**
diff --git a/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/src/org/eclipse/emf/ecp/view/spi/stack/ui/swt/SWTStackLayoutRenderer.java b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/src/org/eclipse/emf/ecp/view/spi/stack/ui/swt/SWTStackLayoutRenderer.java
index be998d4..0059a46 100644
--- a/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/src/org/eclipse/emf/ecp/view/spi/stack/ui/swt/SWTStackLayoutRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/src/org/eclipse/emf/ecp/view/spi/stack/ui/swt/SWTStackLayoutRenderer.java
@@ -18,24 +18,33 @@
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.emf.ecp.view.internal.stack.ui.swt.Activator;
-import org.eclipse.emf.ecp.view.internal.stack.ui.swt.messages.Messages;
+import org.eclipse.emf.ecp.view.internal.stack.ui.swt.MessageKeys;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 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.VElement;
+import org.eclipse.emf.ecp.view.spi.model.reporting.StatusReport;
 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.stack.model.VStackItem;
 import org.eclipse.emf.ecp.view.spi.stack.model.VStackLayout;
 import org.eclipse.emf.ecp.view.spi.stack.model.VStackPackage;
-import org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.swt.layout.GridDescriptionFactory;
 import org.eclipse.emf.ecp.view.spi.swt.layout.LayoutProviderHelper;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.GridDescriptionFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.StackLayout;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
 
 /**
  * The SWT {@link VStackLayout} renderer.
@@ -45,6 +54,18 @@
  */
 public class SWTStackLayoutRenderer extends AbstractSWTRenderer<VStackLayout> {
 
+	/**
+	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 * @since 1.6
+	 */
+	public SWTStackLayoutRenderer(VStackLayout vElement, ViewModelContext viewContext, ReportService reportService) {
+		super(vElement, viewContext, reportService);
+	}
+
 	private static final String CONTROL_STACK_COMPOSITE = "org_eclipse_emf_ecp_ui_layout_stack"; //$NON-NLS-1$
 
 	private SWTGridDescription gridDescription;
@@ -56,7 +77,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#getGridDescription(org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription)
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#getGridDescription(org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription)
 	 */
 	@Override
 	public SWTGridDescription getGridDescription(SWTGridDescription gridDescription) {
@@ -69,7 +90,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#renderControl(org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell,
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#renderControl(org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell,
 	 *      org.eclipse.emf.ecp.view.spi.swt.Composite)
 	 */
 	@Override
@@ -89,16 +110,16 @@
 
 		final Map<VStackItem, AbstractSWTRenderer<VElement>> elementRendererMap = new LinkedHashMap<VStackItem, AbstractSWTRenderer<VElement>>();
 		for (final VStackItem item : getVElement().getStackItems()) {
-			final AbstractSWTRenderer<VElement> renderer = getSWTRendererFactory().getRenderer(item,
-				getViewModelContext());
-			if (renderer == null) {
-				Activator
-					.getDefault()
-					.getLog()
-					.log(
-						new Status(IStatus.INFO, Activator.PLUGIN_ID, String.format(
-							Messages.SWTStackLayoutRenderer_NoRendererForItemCompositeFound, item.eClass()
-								.getName())));
+			AbstractSWTRenderer<VElement> renderer;
+			try {
+				renderer = getEMFFormsRendererFactory().getRendererInstance(item,
+					getViewModelContext());
+			} catch (final EMFFormsNoRendererException ex) {
+				getReportService().report(new StatusReport(
+					new Status(IStatus.INFO, Activator.PLUGIN_ID, String.format(
+						LocalizationServiceHelper.getString(getClass(),
+							MessageKeys.SWTStackLayoutRenderer_NoRendererForItemCompositeFound), item.eClass()
+							.getName(), ex))));
 				continue;
 			}
 			elementRendererMap.put(item, renderer);
@@ -121,7 +142,8 @@
 					continue;
 				}
 				control.setLayoutData(LayoutProviderHelper.getLayoutData(currentCell, elementGridDescription,
-					elementGridDescription, elementGridDescription, currentCell.getRenderer().getVElement(), control));
+					elementGridDescription, elementGridDescription, currentCell.getRenderer().getVElement(),
+					getViewModelContext().getDomainModel(), control));
 			}
 
 			for (final SWTGridCell currentCell : elementGridDescription.getGrid()) {
@@ -152,7 +174,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#preInit()
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#preInit()
 	 */
 	@Override
 	protected void preInit() {
@@ -179,7 +201,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#postInit()
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#postInit()
 	 */
 	@Override
 	protected void postInit() {
@@ -191,7 +213,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#dispose()
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#dispose()
 	 */
 	@Override
 	protected void dispose() {
@@ -204,4 +226,13 @@
 		stackComposite = null;
 		super.dispose();
 	}
+
+	private EMFFormsRendererFactory getEMFFormsRendererFactory() {
+		final BundleContext bundleContext = FrameworkUtil.getBundle(getClass()).getBundleContext();
+		final ServiceReference<EMFFormsRendererFactory> serviceReference = bundleContext
+			.getServiceReference(EMFFormsRendererFactory.class);
+		final EMFFormsRendererFactory rendererFactory = bundleContext.getService(serviceReference);
+		bundleContext.ungetService(serviceReference);
+		return rendererFactory;
+	}
 }
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 d73b46b..d5e775f 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Stack Layout Viewmodel
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.stack.viewmodel;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi
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 695c446..d135ac5 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.5.1-SNAPSHOT</version>
+    <version>1.6.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.swt.layout/.gitignore b/bundles/org.eclipse.emf.ecp.view.swt.layout/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.swt.layout/.gitignore
@@ -0,0 +1 @@
+/bin/
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 629f4b7..d074d7e 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Default LayoutProvider
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.swt.layout;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)"
 Import-Package: org.eclipse.jface.layout;version="0.0.0",
@@ -10,5 +10,5 @@
  org.eclipse.swt.layout;version="0.0.0",
  org.eclipse.swt.widgets;version="0.0.0"
 Export-Package: org.eclipse.emf.ecp.view.swt.internal.layout;version="
- 1.5.1";x-internal:=true
+ 1.6.0";x-internal:=true
 Bundle-Vendor: Eclipse Modeling Project
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 62117d8..7c17fdd 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.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.0-SNAPSHOT</version>

 

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.swt.layout/src/org/eclipse/emf/ecp/view/swt/internal/layout/ECPLayoutProvider.java b/bundles/org.eclipse.emf.ecp.view.swt.layout/src/org/eclipse/emf/ecp/view/swt/internal/layout/ECPLayoutProvider.java
index 58a991b..1ac27f0 100644
--- a/bundles/org.eclipse.emf.ecp.view.swt.layout/src/org/eclipse/emf/ecp/view/swt/internal/layout/ECPLayoutProvider.java
+++ b/bundles/org.eclipse.emf.ecp.view.swt.layout/src/org/eclipse/emf/ecp/view/swt/internal/layout/ECPLayoutProvider.java
@@ -11,12 +11,12 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.swt.internal.layout;
 
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+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.spi.swt.layout.AbstractLayoutProvider;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.layout.GridLayoutFactory;
 import org.eclipse.swt.SWT;
@@ -40,15 +40,14 @@
 	}
 
 	@Override
-	public Object getLayoutData(SWTGridCell gridCell,
-		SWTGridDescription controlGridDescription,
+	public Object getLayoutData(SWTGridCell gridCell, SWTGridDescription controlGridDescription,
 		SWTGridDescription currentRowGridDescription, SWTGridDescription fullGridDescription, VElement vElement,
-		Control control) {
+		EObject domainModel, Control control) {
 		if (VControl.class.isInstance(vElement)) {
 			// last column of control
 			if (gridCell.getColumn() + gridCell.getHorizontalSpan() == controlGridDescription.getColumns()) {
 				return getControlGridData(gridCell.getHorizontalSpan() + fullGridDescription.getColumns()
-					- currentRowGridDescription.getColumns(), VControl.class.cast(vElement), control);
+					- currentRowGridDescription.getColumns(), VControl.class.cast(vElement), domainModel, control);
 			} else if (controlGridDescription.getColumns() == 3 && gridCell.getColumn() == 0) {
 				return getLabelGridData();
 			} else if (controlGridDescription.getColumns() == 3 && gridCell.getColumn() == 1) {
@@ -79,15 +78,13 @@
 			.hint(16, 17).grab(false, false).create();
 	}
 
-	private GridData getControlGridData(int xSpan, VControl vControl, Control control) {
+	private GridData getControlGridData(int xSpan, VControl vControl, EObject domainModel, Control control) {
 		GridDataFactory gdf =
 			GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER)
 				.grab(true, false).span(xSpan, 1);
 
 		if (Text.class.isInstance(control) && vControl.getDomainModelReference() != null) {
-			final Setting setting = vControl.getDomainModelReference().getIterator().next();
-
-			if (isMultiLine(setting)) {
+			if (isMultiLine(vControl.getDomainModelReference(), domainModel)) {
 				gdf = gdf.hint(50, 200); // set x hint to enable wrapping
 			}
 		}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.celleditor.rcp/.gitignore b/bundles/org.eclipse.emf.ecp.view.table.celleditor.rcp/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.celleditor.rcp/.gitignore
@@ -0,0 +1 @@
+/bin/
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 bb321a9..3964919 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,7 +2,7 @@
 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.eclipse.jface;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.5.0,2.0.0)",
@@ -10,9 +10,10 @@
  org.eclipse.emf.ecp.view.context;bundle-version="[1.5.0,2.0.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.5.0,2.0.0)"
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)"
 Export-Package: org.eclipse.emf.ecp.view.internal.table.celleditor.rcp
- ;version="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.spi.table.
- celleditor.rcp;version="1.5.1";x-internal:=true
+ ;version="1.6.0";x-internal:=true,org.eclipse.emf.ecp.view.spi.table.
+ celleditor.rcp;version="1.6.0";x-internal:=true
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.view.table.celleditor.rcp/pom.xml b/bundles/org.eclipse.emf.ecp.view.table.celleditor.rcp/pom.xml
index 1453315..52c05bf 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 53f0a7f..786447b 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
@@ -11,6 +11,7 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.table.celleditor.rcp;
 
+import org.eclipse.core.databinding.DataBindingContext;
 import org.eclipse.core.databinding.UpdateValueStrategy;
 import org.eclipse.core.databinding.observable.Diffs;
 import org.eclipse.core.databinding.observable.value.AbstractObservableValue;
@@ -118,20 +119,20 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getTargetToModelStrategy()
+	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getTargetToModelStrategy(org.eclipse.core.databinding.DataBindingContext)
 	 */
 	@Override
-	public UpdateValueStrategy getTargetToModelStrategy() {
+	public UpdateValueStrategy getTargetToModelStrategy(DataBindingContext databindingContext) {
 		return new EMFUpdateValueStrategy();
 	}
 
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getModelToTargetStrategy()
+	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getModelToTargetStrategy(org.eclipse.core.databinding.DataBindingContext)
 	 */
 	@Override
-	public UpdateValueStrategy getModelToTargetStrategy() {
+	public UpdateValueStrategy getModelToTargetStrategy(DataBindingContext databindingContext) {
 		return new EMFUpdateValueStrategy();
 	}
 
@@ -292,4 +293,14 @@
 		}
 
 	}
+
+	/**
+	 * {@inheritDoc}
+	 * 
+	 * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getMinWidth()
+	 */
+	@Override
+	public int getMinWidth() {
+		return 0;
+	}
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.table.columnservice/.gitignore b/bundles/org.eclipse.emf.ecp.view.table.columnservice/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.columnservice/.gitignore
@@ -0,0 +1 @@
+/bin/
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 24a22b0..6c09aea 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,11 +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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.view.table.model;bundle-version="[1.5.0,2.0.0)"
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)"
 Export-Package: org.eclipse.emf.ecp.view.internal.table.columnservice;
- version="1.5.1";x-friends:="org.eclipse.emf.ecp.view.table.ui.swt.tes
+ version="1.6.0";x-friends:="org.eclipse.emf.ecp.view.table.ui.swt.tes
  t"
 Bundle-Vendor: Eclipse Modeling Project
+Bundle-Activator: org.eclipse.emf.ecp.view.internal.table.columnservice.Activator
+Bundle-ActivationPolicy: lazy
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.6.0,2.0.0)"
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 076e056..d74200b 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
 
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.columnservice/src/org/eclipse/emf/ecp/view/internal/table/columnservice/Activator.java b/bundles/org.eclipse.emf.ecp.view.table.columnservice/src/org/eclipse/emf/ecp/view/internal/table/columnservice/Activator.java
new file mode 100644
index 0000000..23b8deb
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.columnservice/src/org/eclipse/emf/ecp/view/internal/table/columnservice/Activator.java
@@ -0,0 +1,92 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.table.columnservice;
+
+import org.eclipse.core.runtime.Plugin;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * Activator of the view.table.columnservice bundle.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class Activator extends Plugin {
+	/** The plug-in ID. */
+	public static final String PLUGIN_ID = "org.eclipse.emf.ecp.view.table.columnservice"; //$NON-NLS-1$
+
+	// The shared instance
+	private static Activator plugin;
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+	 */
+	@Override
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+	 */
+	@Override
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance.
+	 *
+	 * @return the shared instance
+	 */
+	public static Activator getDefault() {
+		return plugin;
+	}
+
+	private ServiceReference<ReportService> reportServiceReference;
+
+	/**
+	 * Returns the {@link ReportService}.
+	 *
+	 * @return the {@link ReportService}
+	 */
+	public ReportService getReportService() {
+		if (reportServiceReference == null) {
+			reportServiceReference = plugin.getBundle().getBundleContext()
+				.getServiceReference(ReportService.class);
+		}
+		return plugin.getBundle().getBundleContext().getService(reportServiceReference);
+	}
+
+	/**
+	 * Returns the {@link EMFFormsDatabinding} service.
+	 *
+	 * @return The {@link EMFFormsDatabinding}
+	 */
+	public EMFFormsDatabinding getEMFFormsDatabinding() {
+		final ServiceReference<EMFFormsDatabinding> serviceReference = plugin.getBundle().getBundleContext()
+			.getServiceReference(EMFFormsDatabinding.class);
+
+		final EMFFormsDatabinding service = plugin.getBundle().getBundleContext()
+			.getService(serviceReference);
+		plugin.getBundle().getBundleContext().ungetService(serviceReference);
+
+		return service;
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.columnservice/src/org/eclipse/emf/ecp/view/internal/table/columnservice/AddColumnService.java b/bundles/org.eclipse.emf.ecp.view.table.columnservice/src/org/eclipse/emf/ecp/view/internal/table/columnservice/AddColumnService.java
index ff50d05..236aee6 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.columnservice/src/org/eclipse/emf/ecp/view/internal/table/columnservice/AddColumnService.java
+++ b/bundles/org.eclipse.emf.ecp.view.table.columnservice/src/org/eclipse/emf/ecp/view/internal/table/columnservice/AddColumnService.java
@@ -11,20 +11,20 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.table.columnservice;
 
-import java.util.Iterator;
-
+import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.emf.common.util.TreeIterator;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EClassifier;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
 import org.eclipse.emf.ecp.view.internal.table.generator.TableColumnGenerator;
 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.table.model.VTableControl;
 import org.eclipse.emf.ecp.view.spi.table.model.VTableDomainModelReference;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 
 /**
  * This service will iterate over all contents of the {@link org.eclipse.emf.ecp.view.spi.model.VView VView} and will
@@ -36,6 +36,8 @@
  */
 public class AddColumnService implements ViewModelService {
 
+	private ViewModelContext context;
+
 	/**
 	 * {@inheritDoc}
 	 *
@@ -43,6 +45,7 @@
 	 */
 	@Override
 	public void instantiate(ViewModelContext context) {
+		this.context = context;
 		final VElement viewModel = context.getViewModel();
 		if (viewModel instanceof VTableControl) {
 			addColumnsIfNeeded((VTableControl) viewModel);
@@ -67,12 +70,23 @@
 		}
 		if (VTableDomainModelReference.class.cast(tableControl.getDomainModelReference())
 			.getColumnDomainModelReferences().size() < 1) {
-			final Iterator<Setting> settings = tableControl.getDomainModelReference().getIterator();
-			if (!settings.hasNext()) {
+			final VTableDomainModelReference tableDMR = (VTableDomainModelReference) tableControl
+				.getDomainModelReference();
+			final IValueProperty valueProperty;
+			try {
+				if (tableDMR.getDomainModelReference() != null) {
+					valueProperty = Activator.getDefault().getEMFFormsDatabinding()
+						.getValueProperty(tableDMR.getDomainModelReference(), context.getDomainModel());
+				} else {
+					valueProperty = Activator.getDefault().getEMFFormsDatabinding()
+						.getValueProperty(tableDMR, context.getDomainModel());
+				}
+			} catch (final DatabindingFailedException ex) {
+				Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
 				return;
 			}
-			final Setting firstSetting = settings.next();
-			final EStructuralFeature structuralFeature = firstSetting.getEStructuralFeature();
+
+			final EStructuralFeature structuralFeature = (EStructuralFeature) valueProperty.getValueType();
 			final EClassifier eType = structuralFeature.getEType();
 			if (eType instanceof EClass) {
 				final EClass clazz = (EClass) eType;
diff --git a/bundles/org.eclipse.emf.ecp.view.table.edapt/.gitignore b/bundles/org.eclipse.emf.ecp.view.table.edapt/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.edapt/.gitignore
@@ -0,0 +1 @@
+/bin/
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 d830b21..7b7d2dc 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.eclipse.emf.edapt.migration;bundle-version="[1.0.0,2.0.0)"
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emf.ecp.view.table.edapt._140to150;version
- ="1.5.1";x-internal:=true
+ ="1.6.0";x-internal:=true
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 bd9161f..6a8c7b4 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.project b/bundles/org.eclipse.emf.ecp.view.table.editor/.project
deleted file mode 100644
index 426796c..0000000
--- a/bundles/org.eclipse.emf.ecp.view.table.editor/.project
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.emf.ecp.view.table.editor</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/bundles/org.eclipse.emf.ecp.view.table.editor/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.table.editor/META-INF/MANIFEST.MF
deleted file mode 100644
index 570d541..0000000
--- a/bundles/org.eclipse.emf.ecp.view.table.editor/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,21 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: ECP View Table Additional Features for Editor
-Bundle-SymbolicName: org.eclipse.emf.ecp.view.table.editor;singleton:=true
-Bundle-Version: 1.5.1.qualifier
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.emf.ecp.view.table.model;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.ui;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.common.ui
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emf.ecp.view.internal.table.editor;version
- ="1.5.1";x-internal:=true
-Import-Package: org.eclipse.core.commands;version="0.0.0",
- org.eclipse.jface.dialogs;version="0.0.0",
- org.eclipse.jface.viewers;version="0.0.0",
- org.eclipse.jface.window;version="0.0.0",
- org.eclipse.jface.wizard;version="0.0.0",
- org.eclipse.swt.widgets;version="0.0.0",
- org.eclipse.ui.handlers;version="0.0.0"
-Bundle-Vendor: Eclipse Modeling Project
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/build.properties b/bundles/org.eclipse.emf.ecp.view.table.editor/build.properties
deleted file mode 100644
index 79a6d66..0000000
--- a/bundles/org.eclipse.emf.ecp.view.table.editor/build.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               icons/,\
-               plugin.xml,\
-               about.html
-src.includes = about.html
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/icons/full/obj16/TableColumn.gif b/bundles/org.eclipse.emf.ecp.view.table.editor/icons/full/obj16/TableColumn.gif
deleted file mode 100644
index 97b2e03..0000000
--- a/bundles/org.eclipse.emf.ecp.view.table.editor/icons/full/obj16/TableColumn.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/plugin.xml b/bundles/org.eclipse.emf.ecp.view.table.editor/plugin.xml
deleted file mode 100644
index 96140e8..0000000
--- a/bundles/org.eclipse.emf.ecp.view.table.editor/plugin.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         point="org.eclipse.ui.commands">
-      <command
-            defaultHandler="org.eclipse.emf.ecp.view.internal.table.editor.GenerateColumnsHandler"
-            id="org.eclipse.emf.ecp.view.table.model.edit.generateColumns"
-            name="Generate Columns">
-      </command>
-   </extension>
-   <extension
-         point="org.eclipse.ui.menus">
-      <menuContribution
-            allPopups="false"
-            locationURI="popup:org.eclipse.emf.ecp.ui.ModelExplorerView">
-         <command
-               commandId="org.eclipse.emf.ecp.view.table.model.edit.generateColumns"
-               icon="icons/full/obj16/TableColumn.gif"
-               label="Generate Columns"
-               style="push">
-            <visibleWhen
-                  checkEnabled="false">
-               <with
-                     variable="activeMenuSelection">
-                  <and>
-                     <count
-                           value="1">
-                     </count>
-                     <iterate>
-                        <instanceof
-                              value="org.eclipse.emf.ecp.view.spi.table.model.VTableControl">
-                        </instanceof>
-                     </iterate>
-                  </and>
-               </with>
-            </visibleWhen>
-         </command>
-      </menuContribution>
-   </extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/pom.xml b/bundles/org.eclipse.emf.ecp.view.table.editor/pom.xml
deleted file mode 100644
index 68f0aac..0000000
--- a/bundles/org.eclipse.emf.ecp.view.table.editor/pom.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?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.5.1-SNAPSHOT</version>
-    <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
-  </parent>
-
-  <artifactId>org.eclipse.emf.ecp.view.table.editor</artifactId>
-  <packaging>eclipse-plugin</packaging>
-  <version>1.5.1-SNAPSHOT</version>
-
-</project>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/src/org/eclipse/emf/ecp/view/internal/table/editor/GenerateColumnsHandler.java b/bundles/org.eclipse.emf.ecp.view.table.editor/src/org/eclipse/emf/ecp/view/internal/table/editor/GenerateColumnsHandler.java
deleted file mode 100644
index bb6be7b..0000000
--- a/bundles/org.eclipse.emf.ecp.view.table.editor/src/org/eclipse/emf/ecp/view/internal/table/editor/GenerateColumnsHandler.java
+++ /dev/null
@@ -1,106 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Johannes Faltermeier - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.internal.table.editor;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EClassifier;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecp.internal.wizards.SelectEStructuralFeaturesWizard;
-import org.eclipse.emf.ecp.spi.common.ui.CompositeFactory;
-import org.eclipse.emf.ecp.spi.common.ui.composites.CheckedEStructuralFeatureComposite;
-import org.eclipse.emf.ecp.view.internal.table.generator.TableColumnGenerator;
-import org.eclipse.emf.ecp.view.spi.model.impl.VFeaturePathDomainModelReferenceImpl;
-import org.eclipse.emf.ecp.view.spi.table.model.VTableControl;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- *
- * Handler for generation the child {@link org.eclipse.emf.ecp.view.spi.model.VDomainModelReference
- * VDomainModelReferences} of a {@link VTableControl}.
- *
- * @author jfaltermeier
- *
- */
-public class GenerateColumnsHandler extends AbstractHandler {
-
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	@Override
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		final Object selection = ((IStructuredSelection) HandlerUtil.getActiveMenuSelection(event)).getFirstElement();
-		if (selection == null || !(selection instanceof VTableControl)) {
-			return null;
-		}
-		final VTableControl tableControl = (VTableControl) selection;
-		final VFeaturePathDomainModelReferenceImpl domainModelReference = (VFeaturePathDomainModelReferenceImpl) tableControl
-			.getDomainModelReference();
-		if (domainModelReference == null) {
-			MessageDialog.openInformation(Display.getDefault().getActiveShell(), "Cannot generate Columns",
-				"Please set the domain model reference before generating columns.");
-			return null;
-		}
-		final EStructuralFeature feature = domainModelReference.getDomainModelEFeature();
-		if (feature == null) {
-			MessageDialog.openInformation(Display.getDefault().getActiveShell(), "Cannot generate Columns",
-				"Please set a feature in the domain model reference before generating columns.");
-			return null;
-		}
-
-		final EClassifier eType = feature.getEType();
-		if (eType instanceof EClass) {
-			final EClass clazz = (EClass) eType;
-			final Object[] attributesForColumns = getAttributesForColumns(clazz.getEAttributes().toArray(
-				new EAttribute[clazz.getEAttributes().size()]));
-			for (final Object o : attributesForColumns) {
-				if (!(o instanceof EAttribute)) {
-					continue;
-				}
-				final EAttribute a = (EAttribute) o;
-				TableColumnGenerator.addColumn(a, tableControl);
-			}
-		}
-
-		return null;
-	}
-
-	private Object[] getAttributesForColumns(EAttribute[] attributes) {
-		final SelectEStructuralFeaturesWizard wizard = new SelectEStructuralFeaturesWizard();
-		final CheckedEStructuralFeatureComposite compositeProvider = CompositeFactory
-			.getCheckedTableSelectionComposite(attributes);
-		wizard.setCompositeProvider(compositeProvider);
-
-		final WizardDialog wd = new WizardDialog(Display.getDefault().getActiveShell(), wizard);
-		Object[] toReturn = new Object[0];
-		final int result = wd.open();
-		if (result == Window.OK) {
-			final Object[] selection = compositeProvider.getSelection();
-			if (selection == null || selection.length == 0) {
-				return toReturn;
-			}
-			toReturn = selection;
-		}
-		return toReturn;
-	}
-
-}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.model.edit/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.table.model.edit/.settings/.api_filters
index 2004412..580f2fd 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.model.edit/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.table.model.edit/.settings/.api_filters
@@ -1,10 +1,34 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.emf.ecp.view.table.model.edit" version="2">
     <resource path="META-INF/MANIFEST.MF">
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model.edit"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.table.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.table.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.table.model.edit_1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
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 3889a94..0d6f341 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,14 +2,14 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: %pluginName

 Bundle-SymbolicName: org.eclipse.emf.ecp.view.table.model.edit;singleton:=true

-Bundle-Version: 1.5.1.qualifier

+Bundle-Version: 1.6.0.qualifier

 Bundle-ClassPath: .

 Bundle-Activator: org.eclipse.emf.ecp.view.spi.table.model.provider.TableEditPlugin$Implementation

 Bundle-Vendor: %providerName

 Bundle-Localization: plugin

 Bundle-RequiredExecutionEnvironment: JavaSE-1.6

 Export-Package: org.eclipse.emf.ecp.view.spi.table.model.provider;vers

- ion="1.5.1"

+ ion="1.6.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.5.0,2.0.0)";visibility:=reexport,

  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,

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 e1e920a..011ab43 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.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.0-SNAPSHOT</version>

 

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.table.model.edit/src/org/eclipse/emf/ecp/view/spi/table/model/provider/TableControlItemProvider.java b/bundles/org.eclipse.emf.ecp.view.table.model.edit/src/org/eclipse/emf/ecp/view/spi/table/model/provider/TableControlItemProvider.java
index 8bb82e4..af77a29 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.model.edit/src/org/eclipse/emf/ecp/view/spi/table/model/provider/TableControlItemProvider.java
+++ b/bundles/org.eclipse.emf.ecp.view.table.model.edit/src/org/eclipse/emf/ecp/view/spi/table/model/provider/TableControlItemProvider.java
@@ -17,6 +17,8 @@
 import org.eclipse.emf.common.notify.AdapterFactory;

 import org.eclipse.emf.common.notify.Notification;

 import org.eclipse.emf.ecore.EStructuralFeature;

+import org.eclipse.emf.ecp.view.spi.model.VElement;

+import org.eclipse.emf.ecp.view.spi.model.VElementUtil;

 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.provider.ControlItemProvider;

@@ -225,11 +227,14 @@
 	 * <!-- begin-user-doc -->

 	 * <!-- end-user-doc -->

 	 *

-	 * @generated

+	 * @generated NOT

 	 */

 	@Override

 	public String getText(Object object) {

-		final String label = ((VTableControl) object).getName();

+		String label = ((VTableControl) object).getName();

+		if (label == null) {

+			label = VElementUtil.getCleanName(VElement.class.cast(object));

+		}

 		return label == null || label.length() == 0 ?

 			getString("_UI_TableControl_type") : //$NON-NLS-1$

 			getString("_UI_TableControl_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$

diff --git a/bundles/org.eclipse.emf.ecp.view.table.model/.project b/bundles/org.eclipse.emf.ecp.view.table.model/.project
index fa44bb9..34d9c0f 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.model/.project
+++ b/bundles/org.eclipse.emf.ecp.view.table.model/.project
@@ -6,6 +6,11 @@
 	</projects>

 	<buildSpec>

 		<buildCommand>

+			<name>com.wuetherich.osgi.ds.annotations.dsAnnotationBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+		<buildCommand>

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

 			<arguments>

 			</arguments>

@@ -36,5 +41,6 @@
 		<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/.api_filters b/bundles/org.eclipse.emf.ecp.view.table.model/.settings/.api_filters
index 2f4de7e..b23b04f 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.model/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.table.model/.settings/.api_filters
@@ -7,10 +7,34 @@
                 <message_argument value="1.4.0"/>
             </message_arguments>
         </filter>
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.table.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.table.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.table.model_1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
@@ -29,6 +53,97 @@
         </filter>
     </resource>
     <resource path="src/org/eclipse/emf/ecp/view/spi/table/model/VTablePackage.java" type="org.eclipse.emf.ecp.view.spi.table.model.VTablePackage">
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.table.model.VTablePackage"/>
+                <message_argument value="TABLE_CONTROL_FEATURE_COUNT"/>
+                <message_argument value="13"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.table.model.VTablePackage"/>
+                <message_argument value="TABLE_CONTROL__ADD_REMOVE_DISABLED"/>
+                <message_argument value="8"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.table.model.VTablePackage"/>
+                <message_argument value="TABLE_CONTROL__ATTACHMENTS"/>
+                <message_argument value="5"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.table.model.VTablePackage"/>
+                <message_argument value="TABLE_CONTROL__COLUMN_CONFIGURATIONS"/>
+                <message_argument value="9"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.table.model.VTablePackage"/>
+                <message_argument value="TABLE_CONTROL__DETAIL_EDITING"/>
+                <message_argument value="10"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.table.model.VTablePackage"/>
+                <message_argument value="TABLE_CONTROL__DETAIL_VIEW"/>
+                <message_argument value="11"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.table.model.VTablePackage"/>
+                <message_argument value="TABLE_CONTROL__DIAGNOSTIC"/>
+                <message_argument value="4"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.table.model.VTablePackage"/>
+                <message_argument value="TABLE_CONTROL__DOMAIN_MODEL_REFERENCE"/>
+                <message_argument value="7"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.table.model.VTablePackage"/>
+                <message_argument value="TABLE_CONTROL__ENABLED"/>
+                <message_argument value="2"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.table.model.VTablePackage"/>
+                <message_argument value="TABLE_CONTROL__ENABLE_DETAIL_EDITING_DIALOG"/>
+                <message_argument value="12"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.table.model.VTablePackage"/>
+                <message_argument value="TABLE_CONTROL__LABEL_ALIGNMENT"/>
+                <message_argument value="6"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.table.model.VTablePackage"/>
+                <message_argument value="TABLE_CONTROL__READONLY"/>
+                <message_argument value="3"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.table.model.VTablePackage"/>
+                <message_argument value="TABLE_CONTROL__VISIBLE"/>
+                <message_argument value="1"/>
+            </message_arguments>
+        </filter>
         <filter comment="SPI Change with 1.5.0" id="388194388">
             <message_arguments>
                 <message_argument value="org.eclipse.emf.ecp.view.spi.table.model.VTablePackage"/>
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 e29130b..dee22d5 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,18 +2,23 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.table.model;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.emf.ecp.view.internal.table.model.Activator
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.ecp.view.internal.table.generator;vers
- ion="1.5.1"; x-friends:="org.eclipse.emf.ecp.view.table.columnservice
- ,  org.eclipse.emf.ecp.view.table.editor",org.eclipse.emf.ecp.view.sp
- i.table.model;version="1.5.1",org.eclipse.emf.ecp.view.spi.table.mode
- l.impl;version="1.5.1",org.eclipse.emf.ecp.view.spi.table.model.util;
- version="1.5.1"
+Export-Package: org.eclipse.emf.ecp.view.internal.table.generator;version="1.6.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.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.table.model;version="1.6.0",
+ org.eclipse.emf.ecp.view.spi.table.model.impl;version="1.6.0",
+ org.eclipse.emf.ecp.view.spi.table.model.util;version="1.6.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.5.0,2.0.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.5.0,2.0.0)";visibility:=reexport,
+ org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
+Service-Component: OSGI-INF/org.eclipse.emf.ecp.view.internal.table.model.TableDMRConverter.xml
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.6.0,2.0.0)",
+ org.osgi.service.component.annotations;version="1.2.0"
diff --git a/bundles/org.eclipse.emf.ecp.view.table.model/OSGI-INF/org.eclipse.emf.ecp.view.internal.table.model.TableDMRConverter.xml b/bundles/org.eclipse.emf.ecp.view.table.model/OSGI-INF/org.eclipse.emf.ecp.view.internal.table.model.TableDMRConverter.xml
new file mode 100644
index 0000000..c445f5e
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.model/OSGI-INF/org.eclipse.emf.ecp.view.internal.table.model.TableDMRConverter.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--Generated by DS Annotation Builder [src/org/eclipse/emf/ecp/view/internal/table/model/TableDMRConverter.java]-->
+<scr:component name="org.eclipse.emf.ecp.view.internal.table.model.TableDMRConverter" activate="activate" deactivate="deactivate" xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0">
+    <service>
+        <provide interface="org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter"/>
+    </service>
+    <implementation class="org.eclipse.emf.ecp.view.internal.table.model.TableDMRConverter"/>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.model/build.properties b/bundles/org.eclipse.emf.ecp.view.table.model/build.properties
index 5730c54..e799414 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.model/build.properties
+++ b/bundles/org.eclipse.emf.ecp.view.table.model/build.properties
@@ -1,24 +1,15 @@
-# 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 v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-# Eugen Neufeld - initial API and implementation
-
 bin.includes = .,\
-               model/,\
                META-INF/,\
+               model/,\
                plugin.xml,\
                plugin.properties,\
                about.html,\
                about.ini,\
                about.mappings,\
                about.properties,\
-               modeling32.png
-jars.compile.order = .
-source.. = src/
+               modeling32.png,\
+               OSGI-INF/
 output.. = bin/
+jars.compile.order = .
 src.includes = about.html
+source.. = src/
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 209196f..6b69c94 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.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.0-SNAPSHOT</version>

 

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.table.model/src/org/eclipse/emf/ecp/view/internal/table/model/Activator.java b/bundles/org.eclipse.emf.ecp.view.table.model/src/org/eclipse/emf/ecp/view/internal/table/model/Activator.java
new file mode 100644
index 0000000..e5052a1
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.model/src/org/eclipse/emf/ecp/view/internal/table/model/Activator.java
@@ -0,0 +1,98 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.table.model;
+
+import org.eclipse.core.runtime.Plugin;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * The activator class controls the plug-in life cycle.
+ *
+ * @author Lucas Koehler
+ */
+public class Activator extends Plugin {
+
+	/** The plug-in ID. */
+	public static final String PLUGIN_ID = "org.eclipse.emf.ecp.view.table.model"; //$NON-NLS-1$
+
+	// The shared instance
+	private static Activator plugin;
+
+	private ServiceReference<ReportService> reportServiceReference;
+
+	/**
+	 * The constructor.
+	 */
+	public Activator() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+	 */
+	@Override
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+	 */
+	@Override
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * 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 = plugin.getBundle().getBundleContext()
+				.getServiceReference(ReportService.class);
+		}
+		return plugin.getBundle().getBundleContext().getService(reportServiceReference);
+	}
+
+	/**
+	 * Returns the {@link EMFFormsDatabinding} service.
+	 *
+	 * @return The {@link EMFFormsDatabinding}
+	 */
+	public EMFFormsDatabinding getEMFFormsDatabinding() {
+		final ServiceReference<EMFFormsDatabinding> serviceReference = plugin.getBundle().getBundleContext()
+			.getServiceReference(EMFFormsDatabinding.class);
+
+		final EMFFormsDatabinding service = plugin.getBundle().getBundleContext()
+			.getService(serviceReference);
+		plugin.getBundle().getBundleContext().ungetService(serviceReference);
+
+		return service;
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.model/src/org/eclipse/emf/ecp/view/internal/table/model/TableDMRConverter.java b/bundles/org.eclipse.emf.ecp.view.table.model/src/org/eclipse/emf/ecp/view/internal/table/model/TableDMRConverter.java
new file mode 100644
index 0000000..7f196b4
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.model/src/org/eclipse/emf/ecp/view/internal/table/model/TableDMRConverter.java
@@ -0,0 +1,128 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.table.model;
+
+import org.eclipse.core.databinding.property.list.IListProperty;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.table.model.VTableDomainModelReference;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+
+/**
+ * @author Eugen
+ *
+ */
+@Component
+public class TableDMRConverter implements DomainModelReferenceConverter {
+	private EMFFormsDatabinding emfFormsDatabinding;
+	private ServiceReference<EMFFormsDatabinding> databindingServiceReference;
+
+	/**
+	 * This method is called by the OSGI framework when this {@link DomainModelReferenceConverter} is activated. It
+	 * retrieves the {@link EMFFormsDatabinding EMF Forms databinding service}.
+	 *
+	 * @param bundleContext The {@link BundleContext} of this classes bundle.
+	 */
+	@Activate
+	protected final void activate(BundleContext bundleContext) {
+		databindingServiceReference = bundleContext.getServiceReference(EMFFormsDatabinding.class);
+		emfFormsDatabinding = bundleContext.getService(databindingServiceReference);
+
+	}
+
+	/**
+	 * This method is called by the OSGI framework when this {@link DomainModelReferenceConverter} is deactivated.
+	 * It frees the {@link EMFFormsDatabinding EMF Forms databinding service}.
+	 *
+	 * @param bundleContext The {@link BundleContext} of this classes bundle.
+	 */
+	@Deactivate
+	protected final void deactivate(BundleContext bundleContext) {
+		bundleContext.ungetService(databindingServiceReference);
+		emfFormsDatabinding = null;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter#isApplicable(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference)
+	 */
+	@Override
+	public double isApplicable(VDomainModelReference domainModelReference) {
+		if (VTableDomainModelReference.class.isInstance(domainModelReference)
+			&& VTableDomainModelReference.class.cast(domainModelReference).getDomainModelReference() != null) {
+			return 5;
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter#convertToValueProperty(VDomainModelReference,
+	 *      EObject)
+	 */
+	@Override
+	public IValueProperty convertToValueProperty(VDomainModelReference domainModelReference, EObject object)
+		throws DatabindingFailedException {
+		if (domainModelReference == null) {
+			throw new IllegalArgumentException("The given VDomainModelReference must not be null."); //$NON-NLS-1$
+		}
+		if (!VTableDomainModelReference.class.isInstance(domainModelReference)) {
+			throw new IllegalArgumentException(
+				"DomainModelReference must be an instance of VTableDomainModelReference."); //$NON-NLS-1$
+		}
+
+		final VTableDomainModelReference tableDomainModelReference = VTableDomainModelReference.class
+			.cast(domainModelReference);
+		if (tableDomainModelReference.getDomainModelReference() == null) {
+			throw new DatabindingFailedException(
+				"The field domainModelReference of the given VTableDomainModelReference must not be null."); //$NON-NLS-1$
+		}
+		return emfFormsDatabinding.getValueProperty(tableDomainModelReference.getDomainModelReference(), object);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter#convertToListProperty(VDomainModelReference,
+	 *      EObject)
+	 */
+	@Override
+	public IListProperty convertToListProperty(VDomainModelReference domainModelReference, EObject object)
+		throws DatabindingFailedException {
+		if (domainModelReference == null) {
+			throw new IllegalArgumentException("The given VDomainModelReference must not be null."); //$NON-NLS-1$
+		}
+		if (!VTableDomainModelReference.class.isInstance(domainModelReference)) {
+			throw new IllegalArgumentException(
+				"DomainModelReference must be an instance of VTableDomainModelReference."); //$NON-NLS-1$
+		}
+
+		final VTableDomainModelReference tableDomainModelReference = VTableDomainModelReference.class
+			.cast(domainModelReference);
+		if (tableDomainModelReference.getDomainModelReference() == null) {
+			throw new DatabindingFailedException(
+				"The field domainModelReference of the given VTableDomainModelReference must not be null."); //$NON-NLS-1$
+		}
+		return emfFormsDatabinding.getListProperty(tableDomainModelReference.getDomainModelReference(), object);
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.model/src/org/eclipse/emf/ecp/view/spi/table/model/util/TableValidator.java b/bundles/org.eclipse.emf.ecp.view.table.model/src/org/eclipse/emf/ecp/view/spi/table/model/util/TableValidator.java
index 79e1d7e..c50b9d5 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.model/src/org/eclipse/emf/ecp/view/spi/table/model/util/TableValidator.java
+++ b/bundles/org.eclipse.emf.ecp.view.table.model/src/org/eclipse/emf/ecp/view/spi/table/model/util/TableValidator.java
@@ -14,13 +14,13 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.emf.common.util.BasicDiagnostic;
 import org.eclipse.emf.common.util.Diagnostic;
 import org.eclipse.emf.common.util.DiagnosticChain;
@@ -33,6 +33,7 @@
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.EValidator;
 import org.eclipse.emf.ecore.util.EObjectValidator;
+import org.eclipse.emf.ecp.view.internal.table.model.Activator;
 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.model.util.ViewValidator;
@@ -42,11 +43,14 @@
 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.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
 
 /**
  * <!-- begin-user-doc -->
  * The <b>Validator</b> for the model.
- * 
+ *
  * @since 1.5
  *        <!-- end-user-doc -->
  *
@@ -103,6 +107,27 @@
 	 * @generated
 	 */
 	protected ViewValidator viewValidator;
+	/**
+	 * The test EMFFormsDatabinding service.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated NOT
+	 */
+	private EMFFormsDatabinding emfFormsDatabinding;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * This is a constructor for test cases.
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated NOT
+	 */
+	TableValidator(EMFFormsDatabinding emfFormsDatabinding) {
+		this();
+		this.emfFormsDatabinding = emfFormsDatabinding;
+	}
 
 	/**
 	 * Creates an instance of the switch.
@@ -289,11 +314,15 @@
 		}
 
 		// test if table ends a multi reference
-		final Iterator<EStructuralFeature> iterator = pathToMultiRef.getEStructuralFeatureIterator();
-		if (!iterator.hasNext()) {
+		IValueProperty valueProperty;
+		try {
+			valueProperty = getEMFFormsDatabinding()
+				.getValueProperty(pathToMultiRef, null);
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
 			return true;
 		}
-		final EStructuralFeature feature = iterator.next();
+		final EStructuralFeature feature = (EStructuralFeature) valueProperty.getValueType();
 		if (!EReference.class.isInstance(feature) || !feature.isMany()) {
 			if (diagnostics != null) {
 				final String message = "Domain model reference does not end at a multi reference."; //$NON-NLS-1$
@@ -368,6 +397,13 @@
 
 	}
 
+	private EMFFormsDatabinding getEMFFormsDatabinding() {
+		if (emfFormsDatabinding != null) {
+			return emfFormsDatabinding;
+		}
+		return Activator.getDefault().getEMFFormsDatabinding();
+	}
+
 	// END COMPLEX CODE
 
 	private Diagnostic createDiagnostic(int severity, int code, String message, EObject object,
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/.project b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/.project
index 123949c..c4dc668 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/.project
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/.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.table.ui.swt/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/.settings/.api_filters
new file mode 100644
index 0000000..eec3588
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/.settings/.api_filters
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<component id="org.eclipse.emf.ecp.view.table.ui.swt" version="2">
+    <resource path="META-INF/MANIFEST.MF">
+        <filter comment="SPI Change in 1.6" id="923795461">
+            <message_arguments>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/table/swt/DetailDialog.java" type="org.eclipse.emf.ecp.view.spi.table.swt.DetailDialog">
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.table.swt.DetailDialog"/>
+                <message_argument value="DetailDialog(Shell, EObject, VTableControl)"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlDetailDialogSWTRenderer.java" type="org.eclipse.emf.ecp.view.spi.table.swt.TableControlDetailDialogSWTRenderer">
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.table.swt.TableControlDetailDialogSWTRenderer"/>
+                <message_argument value="TableControlDetailDialogSWTRenderer()"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlDetailPanelRenderer.java" type="org.eclipse.emf.ecp.view.spi.table.swt.TableControlDetailPanelRenderer">
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.table.swt.TableControlDetailPanelRenderer"/>
+                <message_argument value="TableControlDetailPanelRenderer()"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Change in 1.6" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.table.swt.TableControlDetailPanelRenderer"/>
+                <message_argument value="deleteRows(List&lt;EObject&gt;, EStructuralFeature.Setting)"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlSWTRenderer.java" type="org.eclipse.emf.ecp.view.spi.table.swt.TableControlSWTRenderer">
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.table.swt.TableControlSWTRenderer"/>
+                <message_argument value="TableControlSWTRenderer()"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Change in 1.6" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.table.swt.TableControlSWTRenderer"/>
+                <message_argument value="addRow(EClass, EStructuralFeature.Setting)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Change in 1.6" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.table.swt.TableControlSWTRenderer"/>
+                <message_argument value="deleteRowUserConfirmDialog(List&lt;EObject&gt;, EStructuralFeature.Setting, Button, Button)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Change in 1.6" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.table.swt.TableControlSWTRenderer"/>
+                <message_argument value="deleteRows(List&lt;EObject&gt;, EStructuralFeature.Setting)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.table.swt.TableControlSWTRenderer"/>
+                <message_argument value="getGridDescription(SWTGridDescription)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="SPI Change in 1.6" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.table.swt.TableControlSWTRenderer"/>
+                <message_argument value="isDebug()"/>
+            </message_arguments>
+        </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.table.swt.TableControlSWTRenderer"/>
+                <message_argument value="renderControl(SWTGridCell, Composite)"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlSWTRenderer.java" type="org.eclipse.emf.ecp.view.spi.table.swt.TableControlSWTRenderer$ECPCellLabelProvider">
+        <filter comment="SPI change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.table.swt.TableControlSWTRenderer.ECPCellLabelProvider"/>
+                <message_argument value="ECPCellLabelProvider(TableControlSWTRenderer, EStructuralFeature, CellEditor, IObservableMap, VTableControl, VDomainModelReference)"/>
+            </message_arguments>
+        </filter>
+    </resource>
+</component>
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 3dbc606..d78ca33 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
@@ -1,8 +1,8 @@
 Manifest-Version: 1.0

 Bundle-ManifestVersion: 2

 Bundle-Name: Table UI SWT

-Bundle-SymbolicName: org.eclipse.emf.ecp.view.table.ui.swt;singleton:=true

-Bundle-Version: 1.5.1.qualifier

+Bundle-SymbolicName: org.eclipse.emf.ecp.view.table.ui.swt

+Bundle-Version: 1.6.0.qualifier

 Bundle-Vendor: Eclipse Modeling Project

 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",

  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)",

@@ -14,10 +14,17 @@
  org.eclipse.core.commands;bundle-version="[3.5.0,4.0.0)",

  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.5.0,2.0.0)",

  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.5.0,2.0.0)",

- org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.5.0,2.0.0)"

+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.5.0,2.0.0)",

+ org.eclipse.emfforms.localization;bundle-version="[1.6.0,2.0.0)",

+ org.eclipse.emfforms.swt.core;bundle-version="[1.6.0,2.0.0)",

+ org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)",

+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",

+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.6.0,2.0.0)",

+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.6.0,2.0.0)"

 Bundle-RequiredExecutionEnvironment: JavaSE-1.6

 Bundle-ActivationPolicy: lazy

-Import-Package: org.eclipse.jface.databinding.swt;version="0.0.0",

+Import-Package: org.eclipse.emfforms.spi.common.report;version="1.6.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",

@@ -31,6 +38,8 @@
  org.eclipse.swt.layout;version="0.0.0",

  org.eclipse.swt.widgets;version="0.0.0"

 Export-Package: org.eclipse.emf.ecp.view.internal.table.swt;version="1

- .5.1";x-friends:="org.eclipse.emf.ecp.view.ui.editor.test",org.eclips

- e.emf.ecp.view.spi.table.swt;version="1.5.1"

+ .6.0";x-friends:="org.eclipse.emf.ecp.view.ui.editor.test",org.eclips

+ e.emf.ecp.view.spi.table.swt;version="1.6.0"

 Bundle-Activator: org.eclipse.emf.ecp.view.internal.table.swt.Activator

+Service-Component: OSGI-INF/tableDetailDialogRendererService.xml,OSGI-INF/tableDetailPanelRendererService.xml,
+ OSGI-INF/tableRendererService.xml

diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/OSGI-INF/l10n/bundle.properties
new file mode 100644
index 0000000..962cd2a
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/OSGI-INF/l10n/bundle.properties
@@ -0,0 +1,5 @@
+TableControl_ValidationStatusColumn=Validation Status
+TableControl_RemoveSelected=Remove the selected %1$s
+TableControl_AddInstanceOf=Add an instance of %1$s
+TableControl_Delete=Delete?
+TableControl_DeleteAreYouSure=Are you sure you want to delete the selected Elements?
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/OSGI-INF/tableDetailDialogRendererService.xml b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/OSGI-INF/tableDetailDialogRendererService.xml
new file mode 100644
index 0000000..1f3fa68
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/OSGI-INF/tableDetailDialogRendererService.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emf.ecp.view.table.ui.swt.dialogRendererService">
+   <implementation class="org.eclipse.emf.ecp.view.internal.table.swt.TableControlDetailDialogSWTRendererService"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService"/>
+   </service>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/OSGI-INF/tableDetailPanelRendererService.xml b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/OSGI-INF/tableDetailPanelRendererService.xml
new file mode 100644
index 0000000..56403e6
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/OSGI-INF/tableDetailPanelRendererService.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emf.ecp.view.table.ui.swt.panelRendererService">
+   <implementation class="org.eclipse.emf.ecp.view.internal.table.swt.TableControlDetailPanelSWTRendererService"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService"/>
+   </service>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/OSGI-INF/tableRendererService.xml b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/OSGI-INF/tableRendererService.xml
new file mode 100644
index 0000000..d0f545c
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/OSGI-INF/tableRendererService.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emf.ecp.view.table.ui.swt.rendererService">
+   <implementation class="org.eclipse.emf.ecp.view.internal.table.swt.TableControlSWTRendererService"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService"/>
+   </service>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/build.properties b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/build.properties
index 8639a59..e8dab34 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/build.properties
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/build.properties
@@ -1,9 +1,9 @@
-source.. = src/

-output.. = bin/

-bin.includes = META-INF/,\

-               .,\

-               plugin.xml,\

-               icons/,\

-               about.html,\

-               schema/

-src.includes = about.html

+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               icons/,\
+               about.html,\
+               schema/,\
+               OSGI-INF/
+src.includes = about.html
+source.. = src/
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
deleted file mode 100644
index a798e8f..0000000
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/plugin.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension-point id="cellReadOnly" name="cellReadOnly" schema="schema/cellReadOnly.exsd"/>
-   <extension
-         point="org.eclipse.emf.ecp.ui.view.swt.renderers">
-      <renderer
-            renderer="org.eclipse.emf.ecp.view.spi.table.swt.TableControlSWTRenderer">
-         <dynamicTest
-               testClass="org.eclipse.emf.ecp.view.internal.table.swt.TableControlRendererTester">
-         </dynamicTest>
-      </renderer>
-      <renderer
-            renderer="org.eclipse.emf.ecp.view.spi.table.swt.TableControlDetailDialogSWTRenderer">
-         <dynamicTest
-               testClass="org.eclipse.emf.ecp.view.internal.table.swt.TableControlDetailDialogRendererTester">
-         </dynamicTest>
-      </renderer>
-      <renderer
-            renderer="org.eclipse.emf.ecp.view.spi.table.swt.TableControlDetailPanelRenderer">
-         <dynamicTest
-               testClass="org.eclipse.emf.ecp.view.internal.table.swt.TableControlDetailPanelRendererTester">
-         </dynamicTest>
-      </renderer>
-   </extension>
-
-</plugin>
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 da258ec..1d635fc 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.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.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/AbstractTableControlRendererTester.java b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/AbstractTableControlRendererTester.java
deleted file mode 100644
index eef23b2..0000000
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/AbstractTableControlRendererTester.java
+++ /dev/null
@@ -1,54 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Johannes Faltermeier - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.internal.table.swt;
-
-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.model.VElement;
-import org.eclipse.emf.ecp.view.spi.table.model.DetailEditing;
-import org.eclipse.emf.ecp.view.spi.table.model.VTableControl;
-
-/**
- * Abstract {@link ECPRendererTester} for {@link VTableControl VTableControls} based on
- * {@link VTableControl#getDetailEditing()}.
- *
- * @author jfaltermeier
- *
- */
-public abstract class AbstractTableControlRendererTester implements ECPRendererTester {
-
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.view.model.common.ECPRendererTester#isApplicable(org.eclipse.emf.ecp.view.spi.model.VElement,
-	 *      org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
-	 */
-	@Override
-	public int isApplicable(VElement vElement, ViewModelContext viewModelContext) {
-		if (!VTableControl.class.isInstance(vElement)) {
-			return NOT_APPLICABLE;
-		}
-		if (getDetailEditing() == VTableControl.class.cast(vElement).getDetailEditing()) {
-			return 2;
-		}
-		return NOT_APPLICABLE;
-	}
-
-	/**
-	 * Returns the {@link DetailEditing} of the {@link VTableControl} for which the tester will not return
-	 * {@link ECPRendererTester#NOT_APPLICABLE}.
-	 *
-	 * @return the detail editing value
-	 */
-	protected abstract DetailEditing getDetailEditing();
-
-}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/Activator.java b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/Activator.java
index ff96c59..fd49727 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/Activator.java
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/Activator.java
@@ -11,16 +11,10 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.table.swt;
 
-import java.net.URL;
-
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Plugin;
 import org.eclipse.core.runtime.Status;
-import org.eclipse.emf.ecp.view.spi.util.swt.ImageRegistryService;
-import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
-import org.eclipse.swt.graphics.Image;
 import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
 
 /**
  * Activator for this plugin.
@@ -48,45 +42,45 @@
 
 	// END SUPRESS CATCH EXCEPTION
 
-	/**
-	 * Finds and returns an image for the provided path.
-	 *
-	 * @param path the path to get the image from
-	 * @return the image or null if nothing could be found
-	 */
-	public static Image getImage(String path) {
-
-		final Image image = instance.getImageRegistryService().getImage(instance.getBundle(), path);
-
-		instance.getBundle().getBundleContext().ungetService(instance.imageRegistryServiceReference);
-
-		return image;
-	}
-
-	/**
-	 * Finds and returns an image for the provided {@link URL}.
-	 *
-	 * @param url the {@link URL} to get the image from
-	 * @return the image or null if nothing could be found
-	 */
-	public static Image getImage(URL url) {
-		final Image image = instance.getImageRegistryService().getImage(url);
-
-		instance.getBundle().getBundleContext().ungetService(instance.imageRegistryServiceReference);
-
-		return image;
-	}
-
-	private ServiceReference<ImageRegistryService> imageRegistryServiceReference;
-
-	private ImageRegistryService getImageRegistryService() {
-		if (imageRegistryServiceReference == null) {
-			imageRegistryServiceReference = getBundle().getBundleContext()
-				.getServiceReference(ImageRegistryService.class);
-		}
-		return getBundle().getBundleContext().getService(imageRegistryServiceReference);
-	}
-
+	// /**
+	// * Finds and returns an image for the provided path.
+	// *
+	// * @param path the path to get the image from
+	// * @return the image or null if nothing could be found
+	// */
+	// public static Image getImage(String path) {
+	//
+	// final Image image = instance.getImageRegistryService().getImage(instance.getBundle(), path);
+	//
+	// instance.getBundle().getBundleContext().ungetService(instance.imageRegistryServiceReference);
+	//
+	// return image;
+	// }
+	//
+	// /**
+	// * Finds and returns an image for the provided {@link URL}.
+	// *
+	// * @param url the {@link URL} to get the image from
+	// * @return the image or null if nothing could be found
+	// */
+	// public static Image getImage(URL url) {
+	// final Image image = instance.getImageRegistryService().getImage(url);
+	//
+	// instance.getBundle().getBundleContext().ungetService(instance.imageRegistryServiceReference);
+	//
+	// return image;
+	// }
+	//
+	// private ServiceReference<ImageRegistryService> imageRegistryServiceReference;
+	//
+	// private ImageRegistryService getImageRegistryService() {
+	// if (imageRegistryServiceReference == null) {
+	// imageRegistryServiceReference = getBundle().getBundleContext()
+	// .getServiceReference(ImageRegistryService.class);
+	// }
+	// return getBundle().getBundleContext().getService(imageRegistryServiceReference);
+	// }
+	//
 	/**
 	 * Logs a {@link Throwable}.
 	 *
@@ -95,32 +89,78 @@
 	public static void log(Throwable t) {
 		instance.getLog().log(new Status(IStatus.ERROR, PLUGIN_ID, t.getMessage(), t));
 	}
-
-	private VTViewTemplateProvider viewTemplate;
-
-	/**
-	 * Returns the current Instance of the {@link VTViewTemplateProvider}.
-	 *
-	 * @return the {@link VTViewTemplateProvider}
-	 */
-	public VTViewTemplateProvider getVTViewTemplateProvider() {
-		if (viewTemplate == null) {
-			final ServiceReference<VTViewTemplateProvider> viewTemplateReference = instance.getBundle()
-				.getBundleContext()
-				.getServiceReference(VTViewTemplateProvider.class);
-			if (viewTemplateReference != null) {
-				viewTemplate = instance.getBundle().getBundleContext().getService(viewTemplateReference);
-			}
-		}
-		return viewTemplate;
-	}
-
-	/**
-	 * The current instance.
-	 *
-	 * @return the current {@link Activator} instance
-	 */
-	public static Activator getInstance() {
-		return instance;
-	}
+	//
+	// private VTViewTemplateProvider viewTemplate;
+	// private ServiceReference<ReportService> reportServiceReference;
+	//
+	// /**
+	// * Returns the current Instance of the {@link VTViewTemplateProvider}.
+	// *
+	// * @return the {@link VTViewTemplateProvider}
+	// */
+	// public VTViewTemplateProvider getVTViewTemplateProvider() {
+	// if (viewTemplate == null) {
+	// final ServiceReference<VTViewTemplateProvider> viewTemplateReference = instance.getBundle()
+	// .getBundleContext()
+	// .getServiceReference(VTViewTemplateProvider.class);
+	// if (viewTemplateReference != null) {
+	// viewTemplate = instance.getBundle().getBundleContext().getService(viewTemplateReference);
+	// }
+	// }
+	// return viewTemplate;
+	// }
+	//
+	// /**
+	// * The current instance.
+	// *
+	// * @return the current {@link Activator} instance
+	// */
+	// public static Activator getInstance() {
+	// return instance;
+	// }
+	//
+	// /**
+	// * Returns the {@link ReportService}.
+	// *
+	// * @return the {@link ReportService}
+	// */
+	// public ReportService getReportService() {
+	// if (reportServiceReference == null) {
+	// reportServiceReference = instance.getBundle().getBundleContext()
+	// .getServiceReference(ReportService.class);
+	// }
+	// return instance.getBundle().getBundleContext().getService(reportServiceReference);
+	// }
+	//
+	// /**
+	// * Returns the {@link EMFFormsDatabinding} service.
+	// *
+	// * @return The {@link EMFFormsDatabinding}
+	// */
+	// public EMFFormsDatabinding getEMFFormsDatabinding() {
+	// final ServiceReference<EMFFormsDatabinding> serviceReference = instance.getBundle().getBundleContext()
+	// .getServiceReference(EMFFormsDatabinding.class);
+	//
+	// final EMFFormsDatabinding service = instance.getBundle().getBundleContext()
+	// .getService(serviceReference);
+	// instance.getBundle().getBundleContext().ungetService(serviceReference);
+	//
+	// return service;
+	// }
+	//
+	// /**
+	// * Returns the {@link EMFFormsLabelProvider} service.
+	// *
+	// * @return The {@link EMFFormsLabelProvider}
+	// */
+	// public EMFFormsLabelProvider getEMFFormsLabelProvider() {
+	// final ServiceReference<EMFFormsLabelProvider> serviceReference = instance.getBundle().getBundleContext()
+	// .getServiceReference(EMFFormsLabelProvider.class);
+	//
+	// final EMFFormsLabelProvider service = instance.getBundle().getBundleContext()
+	// .getService(serviceReference);
+	// instance.getBundle().getBundleContext().ungetService(serviceReference);
+	//
+	// return service;
+	// }
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/MessageKeys.java b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/MessageKeys.java
new file mode 100644
index 0000000..4e842b2
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/MessageKeys.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.table.swt;
+
+/**
+ * Keys for translated strings.
+ *
+ * @author Eugen Neufeld
+ * @generated
+ */
+public interface MessageKeys {
+	String TableControl_ValidationStatusColumn = "TableControl_ValidationStatusColumn"; //$NON-NLS-1$
+	String TableControl_RemoveSelected = "TableControl_RemoveSelected"; //$NON-NLS-1$
+	String TableControl_AddInstanceOf = "TableControl_AddInstanceOf"; //$NON-NLS-1$
+	String TableControl_Delete = "TableControl_Delete"; //$NON-NLS-1$
+	String TableControl_DeleteAreYouSure = "TableControl_DeleteAreYouSure"; //$NON-NLS-1$
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/TableControlDetailDialogRendererTester.java b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/TableControlDetailDialogRendererTester.java
deleted file mode 100644
index 998eaf0..0000000
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/TableControlDetailDialogRendererTester.java
+++ /dev/null
@@ -1,49 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Johannes Faltermeier - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.internal.table.swt;
-
-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;
-
-/**
- * @author jfaltermeier
- *
- */
-public class TableControlDetailDialogRendererTester extends AbstractTableControlRendererTester {
-
-	// TODO remove isApplicable method in future versions, because of deprecated isEnableDetailEditingDialog()
-	@SuppressWarnings("deprecation")
-	@Override
-	public int isApplicable(VElement vElement, ViewModelContext viewModelContext) {
-		if (!VTableControl.class.isInstance(vElement)) {
-			return NOT_APPLICABLE;
-		}
-		final VTableControl tableControl = VTableControl.class.cast(vElement);
-		if (tableControl.getDetailEditing() == DetailEditing.NONE && tableControl.isEnableDetailEditingDialog()) {
-			return 3;
-		}
-		return super.isApplicable(vElement, viewModelContext);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.view.internal.table.swt.AbstractTableControlRendererTester#getDetailEditing()
-	 */
-	@Override
-	protected DetailEditing getDetailEditing() {
-		return DetailEditing.WITH_DIALOG;
-	}
-
-}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/TableControlDetailDialogSWTRendererService.java b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/TableControlDetailDialogSWTRendererService.java
new file mode 100644
index 0000000..e3eac92
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/TableControlDetailDialogSWTRendererService.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.table.swt;
+
+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.swt.TableControlDetailDialogSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+
+/**
+ * TableControlDetailDialogSWTRendererService which provides the TableControlDetailDialogSWTRenderer.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class TableControlDetailDialogSWTRendererService implements EMFFormsDIRendererService<VTableControl> {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (!VTableControl.class.isInstance(vElement)) {
+			return NOT_APPLICABLE;
+		}
+		if (DetailEditing.WITH_DIALOG == VTableControl.class.cast(vElement).getDetailEditing()) {
+			return 10;
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#getRendererClass()
+	 */
+	@Override
+	public Class<? extends AbstractSWTRenderer<VTableControl>> getRendererClass() {
+		return TableControlDetailDialogSWTRenderer.class;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/TableControlDetailPanelRendererTester.java b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/TableControlDetailPanelRendererTester.java
deleted file mode 100644
index 1e75407..0000000
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/TableControlDetailPanelRendererTester.java
+++ /dev/null
@@ -1,32 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * jfaltermeier - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.internal.table.swt;
-
-import org.eclipse.emf.ecp.view.spi.table.model.DetailEditing;
-
-/**
- * @author jfaltermeier
- *
- */
-public class TableControlDetailPanelRendererTester extends AbstractTableControlRendererTester {
-
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.view.internal.table.swt.AbstractTableControlRendererTester#getDetailEditing()
-	 */
-	@Override
-	protected DetailEditing getDetailEditing() {
-		return DetailEditing.WITH_PANEL;
-	}
-
-}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/TableControlDetailPanelSWTRendererService.java b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/TableControlDetailPanelSWTRendererService.java
new file mode 100644
index 0000000..c7af594
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/TableControlDetailPanelSWTRendererService.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.table.swt;
+
+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.swt.TableControlDetailPanelRenderer;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+
+/**
+ * TableControlDetailPanelSWTRendererService which provides the TableControlDetailPanelRenderer.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class TableControlDetailPanelSWTRendererService implements EMFFormsDIRendererService<VTableControl> {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (!VTableControl.class.isInstance(vElement)) {
+			return NOT_APPLICABLE;
+		}
+		if (DetailEditing.WITH_PANEL == VTableControl.class.cast(vElement).getDetailEditing()) {
+			return 10;
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 * 
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#getRendererClass()
+	 */
+	@Override
+	public Class<? extends AbstractSWTRenderer<VTableControl>> getRendererClass() {
+		// TODO Auto-generated method stub
+		return TableControlDetailPanelRenderer.class;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/TableControlRendererTester.java b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/TableControlRendererTester.java
deleted file mode 100644
index 9612402..0000000
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/TableControlRendererTester.java
+++ /dev/null
@@ -1,32 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Johannes Faltermeier - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.internal.table.swt;
-
-import org.eclipse.emf.ecp.view.spi.table.model.DetailEditing;
-
-/**
- * @author jfaltermeier
- *
- */
-public class TableControlRendererTester extends AbstractTableControlRendererTester {
-
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.view.internal.table.swt.AbstractTableControlRendererTester#getDetailEditing()
-	 */
-	@Override
-	protected DetailEditing getDetailEditing() {
-		return DetailEditing.NONE;
-	}
-
-}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/TableControlSWTRendererService.java b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/TableControlSWTRendererService.java
new file mode 100644
index 0000000..b467d1d
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/TableControlSWTRendererService.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.table.swt;
+
+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.swt.TableControlSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+
+/**
+ * TableControlSWTRendererService which provides the TableControlSWTRenderer.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class TableControlSWTRendererService implements EMFFormsDIRendererService<VTableControl> {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@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 10;
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 * 
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#getRendererClass()
+	 */
+	@Override
+	public Class<? extends AbstractSWTRenderer<VTableControl>> getRendererClass() {
+		return TableControlSWTRenderer.class;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/DetailDialog.java b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/DetailDialog.java
index ad5a796..0c328da 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/DetailDialog.java
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/DetailDialog.java
@@ -11,20 +11,15 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.table.swt;
 
-import java.util.Collections;
-
 import org.eclipse.emf.common.notify.Adapter;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.impl.AdapterImpl;
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
-import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.emf.ecp.ui.view.ECPRendererException;
 import org.eclipse.emf.ecp.ui.view.swt.ECPSWTViewRenderer;
+import org.eclipse.emf.ecp.view.internal.table.swt.Activator;
 import org.eclipse.emf.ecp.view.spi.model.VView;
-import org.eclipse.emf.ecp.view.spi.provider.ViewProviderHelper;
 import org.eclipse.emf.ecp.view.spi.table.model.VTableControl;
 import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
@@ -61,19 +56,6 @@
 	 * @param parentShell the {@link Shell} to use in the dialog
 	 * @param selection the {@link EObject} to edit
 	 * @param tableControl the {@link VTableControl}
-	 * @deprecated use {@link #DetailDialog(Shell, EObject, VTableControl, VView)} instead.
-	 */
-	@Deprecated
-	public DetailDialog(Shell parentShell, EObject selection, VTableControl tableControl) {
-		this(parentShell, selection, tableControl, getView(tableControl));
-	}
-
-	/**
-	 * Creates a dialog allowing to edit an {@link EObject}.
-	 *
-	 * @param parentShell the {@link Shell} to use in the dialog
-	 * @param selection the {@link EObject} to edit
-	 * @param tableControl the {@link VTableControl}
 	 * @param view the view model for the detail dialog. May <b>not</b> be <code>null</code>.
 	 * @since 1.5
 	 */
@@ -84,17 +66,6 @@
 		init();
 	}
 
-	private static VView getView(VTableControl tableControl) {
-		VView detailView = tableControl.getDetailView();
-		if (detailView == null) {
-			final Setting setting = tableControl.getDomainModelReference().getIterator().next();
-			final EReference reference = (EReference) setting.getEStructuralFeature();
-			detailView = ViewProviderHelper.getView(EcoreUtil.create(reference.getEReferenceType()),
-				Collections.<String, Object> emptyMap());
-		}
-		return EcoreUtil.copy(detailView);
-	}
-
 	@Override
 	protected boolean isResizable() {
 		return true;
@@ -144,10 +115,15 @@
 		GridDataFactory.fillDefaults().grab(true, true).align(SWT.FILL, SWT.FILL).applyTo(content);
 
 		try {
-			ECPSWTViewRenderer.INSTANCE.render(content,
-				selection, view);
+			if (view == null) {
+				ECPSWTViewRenderer.INSTANCE.render(content,
+					selection);
+			} else {
+				ECPSWTViewRenderer.INSTANCE.render(content,
+					selection, view);
+			}
 		} catch (final ECPRendererException ex) {
-			ex.printStackTrace();
+			Activator.log(ex);
 		}
 
 		scrolledComposite.setContent(content);
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlDetailDialogSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlDetailDialogSWTRenderer.java
index 90ae27c..d2489e7 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlDetailDialogSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlDetailDialogSWTRenderer.java
@@ -13,14 +13,25 @@
 
 import java.util.Collections;
 
+import javax.inject.Inject;
+
+import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
 import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.emf.ecp.edit.spi.swt.util.ECPDialogExecutor;
-import org.eclipse.emf.ecp.view.internal.table.swt.Activator;
+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.provider.ViewProviderHelper;
+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;
+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.DatabindingFailedReport;
+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.jface.dialogs.Dialog;
 import org.eclipse.jface.dialogs.IDialogLabelKeys;
 import org.eclipse.jface.dialogs.MessageDialog;
@@ -43,6 +54,29 @@
  */
 public class TableControlDetailDialogSWTRenderer extends TableControlSWTRenderer {
 
+	/**
+	 * 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}
+	 * @since 1.6
+	 */
+	@Inject
+	public TableControlDetailDialogSWTRenderer(VTableControl vElement, ViewModelContext viewContext,
+		ReportService reportService,
+		EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider,
+		VTViewTemplateProvider vtViewTemplateProvider, ImageRegistryService imageRegistryService,
+		EMFFormsEditSupport emfFormsEditSupport) {
+		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider,
+			imageRegistryService, emfFormsEditSupport);
+	}
+
 	private Button detailEditButton;
 	private VView view;
 
@@ -60,7 +94,7 @@
 	private void createDetailEditButton(final Composite buttonComposite) {
 		detailEditButton = new Button(buttonComposite, SWT.PUSH);
 		// detailEditButton.setText("Edit in Detail");
-		detailEditButton.setImage(Activator.getImage("icons/detailEdit.png")); //$NON-NLS-1$
+		detailEditButton.setImage(getImage("icons/detailEdit.png")); //$NON-NLS-1$
 		detailEditButton.setEnabled(false);
 		detailEditButton.addSelectionListener(new DetailEditButtonSelectionAdapter(buttonComposite.getShell()));
 	}
@@ -69,8 +103,16 @@
 		if (view == null) {
 			VView detailView = getVElement().getDetailView();
 			if (detailView == null) {
-				final Setting setting = getVElement().getDomainModelReference().getIterator().next();
-				final EReference reference = (EReference) setting.getEStructuralFeature();
+				IValueProperty valueProperty;
+				try {
+					valueProperty = getEMFFormsDatabinding()
+						.getValueProperty(getVElement().getDomainModelReference(),
+							getViewModelContext().getDomainModel());
+				} catch (final DatabindingFailedException ex) {
+					getReportService().report(new DatabindingFailedReport(ex));
+					return null; // possible because the only caller is null safe.
+				}
+				final EReference reference = (EReference) valueProperty.getValueType();
 				detailView = ViewProviderHelper.getView(EcoreUtil.create(reference.getEReferenceType()),
 					Collections.<String, Object> emptyMap());
 			}
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 63bd2cf..5ebc6f7 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
@@ -16,19 +16,31 @@
 import java.util.List;
 import java.util.Set;
 
+import javax.inject.Inject;
+
+import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.emf.common.util.Diagnostic;
 import org.eclipse.emf.common.util.TreeIterator;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+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.internal.table.swt.Activator;
 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.provider.ViewProviderHelper;
+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.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.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.editsupport.EMFFormsEditSupport;
+import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.layout.GridLayoutFactory;
 import org.eclipse.jface.viewers.IStructuredSelection;
@@ -50,6 +62,29 @@
  */
 public class TableControlDetailPanelRenderer extends TableControlSWTRenderer {
 
+	/**
+	 * 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}
+	 * @since 1.6
+	 */
+	@Inject
+	public TableControlDetailPanelRenderer(VTableControl vElement, ViewModelContext viewContext,
+		ReportService reportService,
+		EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider,
+		VTViewTemplateProvider vtViewTemplateProvider, ImageRegistryService imageRegistryService,
+		EMFFormsEditSupport emfFormsEditSupport) {
+		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider,
+			imageRegistryService, emfFormsEditSupport);
+	}
+
 	private ECPSWTView ecpView;
 	private VView view;
 	private Composite detailPanel;
@@ -126,8 +161,16 @@
 		if (view == null) {
 			VView detailView = getVElement().getDetailView();
 			if (detailView == null) {
-				final Setting setting = getVElement().getDomainModelReference().getIterator().next();
-				final EReference reference = (EReference) setting.getEStructuralFeature();
+				IValueProperty valueProperty;
+				try {
+					valueProperty = getEMFFormsDatabinding()
+						.getValueProperty(getVElement().getDomainModelReference(),
+							getViewModelContext().getDomainModel());
+				} catch (final DatabindingFailedException ex) {
+					getReportService().report(new DatabindingFailedReport(ex));
+					return null; // possible because the only caller is null safe.
+				}
+				final EReference reference = (EReference) valueProperty.getValueType();
 				detailView = ViewProviderHelper.getView(EcoreUtil.create(reference.getEReferenceType()),
 					Collections.<String, Object> emptyMap());
 			}
@@ -167,11 +210,11 @@
 		final EObject object = (EObject) selection.getFirstElement();
 		final VView detailView = getView();
 		if (detailView == null) {
-			if (isDebug()) {
-				final Label label = new Label(compositeToRenderOn, SWT.NONE);
-				label.setBackground(compositeToRenderOn.getDisplay().getSystemColor(SWT.COLOR_RED));
-				label.setText("No Detail View found."); //$NON-NLS-1$
-			}
+
+			final Label label = new Label(compositeToRenderOn, SWT.NONE);
+			label.setBackground(compositeToRenderOn.getDisplay().getSystemColor(SWT.COLOR_RED));
+			label.setText("No Detail View found."); //$NON-NLS-1$
+
 		}
 		else {
 			final ViewModelContext childContext = getViewModelContext().getChildContext(object, getVElement(),
@@ -180,7 +223,7 @@
 			try {
 				ecpView = ECPSWTViewRenderer.INSTANCE.render(compositeToRenderOn, childContext);
 			} catch (final ECPRendererException ex) {
-				Activator.log(ex);
+				getReportService().report(new RenderingFailedReport(ex));
 			}
 		}
 		border.layout(true, true);
@@ -214,14 +257,22 @@
 		}
 	}
 
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.table.swt.TableControlSWTRenderer#deleteRows(java.util.List,
+	 *      org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature)
+	 * @since 1.6
+	 */
 	@Override
-	protected void deleteRows(List<EObject> deletionList, Setting mainSetting) {
-		super.deleteRows(deletionList, mainSetting);
+	protected void deleteRows(List<EObject> deletionList, final EObject eObject,
+		final EStructuralFeature structuralFeature) {
+		super.deleteRows(deletionList, eObject, structuralFeature);
 		final Set<Diagnostic> toDelete = new LinkedHashSet<Diagnostic>();
-		for (final EObject eObject : deletionList) {
+		for (final EObject deleteObject : deletionList) {
 			// getViewModelContext().removeChildContext(eObject);
-			toDelete.addAll(getVElement().getDiagnostic().getDiagnostics(eObject));
-			final TreeIterator<EObject> eAllContents = eObject.eAllContents();
+			toDelete.addAll(getVElement().getDiagnostic().getDiagnostics(deleteObject));
+			final TreeIterator<EObject> eAllContents = deleteObject.eAllContents();
 			while (eAllContents.hasNext()) {
 				toDelete.addAll(getVElement().getDiagnostic().getDiagnostics(eAllContents.next()));
 			}
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 06ae2f1..da3eddc 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlSWTRenderer.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2013 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
  *
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -14,60 +14,78 @@
 
 import java.io.File;
 import java.net.MalformedURLException;
+import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 
+import javax.inject.Inject;
+
 import org.eclipse.core.databinding.Binding;
+import org.eclipse.core.databinding.observable.IObserving;
 import org.eclipse.core.databinding.observable.list.IObservableList;
 import org.eclipse.core.databinding.observable.map.IObservableMap;
 import org.eclipse.core.databinding.observable.value.IObservableValue;
 import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.core.runtime.Assert;
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.common.command.Command;
 import org.eclipse.emf.common.util.Diagnostic;
-import org.eclipse.emf.databinding.EObjectObservableMap;
-import org.eclipse.emf.databinding.edit.EMFEditObservables;
+import org.eclipse.emf.databinding.EMFDataBindingContext;
 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.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecp.edit.internal.swt.controls.ControlMessages;
 import org.eclipse.emf.ecp.edit.internal.swt.controls.ECPFocusCellDrawHighlighter;
 import org.eclipse.emf.ecp.edit.internal.swt.controls.TableViewerColumnBuilder;
 import org.eclipse.emf.ecp.edit.internal.swt.util.CellEditorFactory;
+import org.eclipse.emf.ecp.edit.spi.DeleteService;
+import org.eclipse.emf.ecp.edit.spi.EMFDeleteServiceImpl;
 import org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor;
 import org.eclipse.emf.ecp.edit.spi.swt.util.ECPDialogExecutor;
-import org.eclipse.emf.ecp.view.internal.table.swt.Activator;
 import org.eclipse.emf.ecp.view.internal.table.swt.CellReadOnlyTesterHelper;
+import org.eclipse.emf.ecp.view.internal.table.swt.MessageKeys;
 import org.eclipse.emf.ecp.view.internal.table.swt.TableConfigurationHelper;
-import org.eclipse.emf.ecp.view.model.common.spi.databinding.DatabindingProviderService;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.core.swt.AbstractControlSWTRenderer;
 import org.eclipse.emf.ecp.view.spi.model.DiagnosticMessageExtractor;
 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.reporting.StatusReport;
 import org.eclipse.emf.ecp.view.spi.provider.ECPTooltipModifierHelper;
 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.layout.GridDescriptionFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
+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.util.swt.ImageRegistryService;
 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.background.model.VTBackgroundFactory;
+import org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundStyleProperty;
+import org.eclipse.emf.ecp.view.template.style.fontProperties.model.VTFontPropertiesFactory;
+import org.eclipse.emf.ecp.view.template.style.fontProperties.model.VTFontPropertiesStyleProperty;
 import org.eclipse.emf.ecp.view.template.style.tableValidation.model.VTTableValidationFactory;
 import org.eclipse.emf.ecp.view.template.style.tableValidation.model.VTTableValidationStyleProperty;
 import org.eclipse.emf.edit.command.AddCommand;
 import org.eclipse.emf.edit.command.RemoveCommand;
 import org.eclipse.emf.edit.domain.EditingDomain;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+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.DatabindingFailedReport;
+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.LocalizationServiceHelper;
+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.jface.databinding.swt.SWTObservables;
 import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
 import org.eclipse.jface.databinding.viewers.ObservableMapCellLabelProvider;
@@ -80,6 +98,7 @@
 import org.eclipse.jface.resource.JFaceResources;
 import org.eclipse.jface.viewers.CellEditor;
 import org.eclipse.jface.viewers.CellLabelProvider;
+import org.eclipse.jface.viewers.ColumnPixelData;
 import org.eclipse.jface.viewers.ColumnViewer;
 import org.eclipse.jface.viewers.ColumnViewerEditor;
 import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
@@ -113,8 +132,7 @@
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Table;
 import org.eclipse.swt.widgets.TableColumn;
-import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.framework.ServiceReference;
+import org.osgi.framework.FrameworkUtil;
 
 /**
  * SWT Renderer for Table Control.
@@ -129,31 +147,48 @@
 	private static final String ICON_ADD = "icons/add.png"; //$NON-NLS-1$
 	private static final String ICON_DELETE = "icons/delete.png"; //$NON-NLS-1$
 
+	private static final String RESIZABLE = "resizable"; //$NON-NLS-1$
+	private static final String WEIGHT = "weight"; //$NON-NLS-1$
+	private static final String MIN_WIDTH = "min_width"; //$NON-NLS-1$
+	private static final String WIDTH = "width"; //$NON-NLS-1$
+
 	private TableViewer tableViewer;
 
 	private Label validationIcon;
 	private Button addButton;
 	private Button removeButton;
-
-	private boolean debugMode;
+	private final ImageRegistryService imageRegistryService;
+	private final EMFDataBindingContext viewModelDBC;
+	private final EMFFormsEditSupport emfFormsEditSupport;
 
 	/**
 	 * 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}
+	 * @since 1.6
 	 */
-	public TableControlSWTRenderer() {
-		final String[] commandLineArgs = Platform.getCommandLineArgs();
-		for (int i = 0; i < commandLineArgs.length; i++) {
-			final String arg = commandLineArgs[i];
-			if ("-debugEMFForms".equalsIgnoreCase(arg)) { //$NON-NLS-1$
-				debugMode = true;
-			}
-		}
+	@Inject
+	public TableControlSWTRenderer(VTableControl vElement, ViewModelContext viewContext, ReportService reportService,
+		EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider,
+		VTViewTemplateProvider vtViewTemplateProvider, ImageRegistryService imageRegistryService,
+		EMFFormsEditSupport emfFormsEditSupport) {
+		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider);
+		this.imageRegistryService = imageRegistryService;
+		this.emfFormsEditSupport = emfFormsEditSupport;
+		viewModelDBC = new EMFDataBindingContext();
 	}
 
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#getGridDescription(SWTGridDescription)
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#getGridDescription(SWTGridDescription)
 	 */
 	@Override
 	public SWTGridDescription getGridDescription(SWTGridDescription gridDescription) {
@@ -164,32 +199,32 @@
 	}
 
 	/**
-	 * Returns whether debug is active or inactive.
-	 *
-	 * @return <code>true</code> if debug mode is enabled, <code>false</code> otherwise
-	 * @since 1.5
-	 */
-	protected boolean isDebug() {
-		return debugMode;
-	}
-
-	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#renderControl(int, org.eclipse.swt.widgets.Composite,
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#renderControl(int, org.eclipse.swt.widgets.Composite,
 	 *      org.eclipse.emf.ecp.view.spi.model.VElement, org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
 	 */
 	@Override
 	protected Control renderControl(SWTGridCell gridCell, final Composite parent) throws NoRendererFoundException,
 		NoPropertyDescriptorFoundExeption {
-		final Iterator<Setting> settings = getVElement().getDomainModelReference().getIterator();
-		if (!settings.hasNext()) {
+		final VTableDomainModelReference tableDomainModelReference = (VTableDomainModelReference) getVElement()
+			.getDomainModelReference();
+		final VDomainModelReference dmrToCheck = tableDomainModelReference.getDomainModelReference() == null
+			? tableDomainModelReference
+			: tableDomainModelReference.getDomainModelReference();
+		IObservableValue observableValue;
+		try {
+			observableValue = getEMFFormsDatabinding()
+				.getObservableValue(dmrToCheck, getViewModelContext().getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			getReportService().report(new RenderingFailedReport(ex));
 			return null;
 		}
+		final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+		final EObject eObject = (EObject) ((IObserving) observableValue).getObserved();
+		observableValue.dispose();
 
-		final Setting mainSetting = settings.next();
-
-		final EClass clazz = ((EReference) mainSetting.getEStructuralFeature()).getEReferenceType();
+		final EClass clazz = ((EReference) structuralFeature).getEReferenceType();
 
 		final Composite composite = new Composite(parent, SWT.NONE);
 		composite.setLayout(new GridLayout(1, false));
@@ -206,12 +241,23 @@
 
 		final Label label = new Label(titleComposite, SWT.NONE);
 		label.setBackground(parent.getBackground());
-		final IItemPropertyDescriptor propDescriptor = getItemPropertyDescriptor(mainSetting);
-		String labelText = ""; //$NON-NLS-1$
-		if (propDescriptor != null) {
-			labelText = propDescriptor.getDisplayName(null);
+
+		final EMFFormsLabelProvider labelService = getEMFFormsLabelProvider();
+		try {
+			final IObservableValue labelText = labelService.getDisplayName(dmrToCheck,
+				getViewModelContext().getDomainModel());
+
+			viewModelDBC.bindValue(SWTObservables.observeText(label), labelText);
+
+			final IObservableValue labelTooltipText = labelService.getDescription(dmrToCheck, getViewModelContext()
+				.getDomainModel());
+			viewModelDBC.bindValue(SWTObservables.observeTooltipText(label), labelTooltipText);
+		} catch (final NoLabelFoundException e) {
+			// FIXME Expectation?
+			getReportService().report(new RenderingFailedReport(e));
+			label.setText(e.getMessage());
+			label.setToolTipText(e.toString());
 		}
-		label.setText(labelText);
 		GridDataFactory.fillDefaults().align(SWT.FILL, SWT.BEGINNING).grab(true, false).applyTo(label);
 
 		// VALIDATION
@@ -229,15 +275,22 @@
 		int numButtons = addButtonsToButtonBar(buttonComposite);
 		if (!getVElement().isAddRemoveDisabled()) {
 			// addButtons
-			addButton = createAddRowButton(clazz, buttonComposite, mainSetting);
-			removeButton = createRemoveRowButton(clazz, buttonComposite, mainSetting);
+			addButton = createAddRowButton(clazz, buttonComposite, eObject, structuralFeature);
+			removeButton = createRemoveRowButton(clazz, buttonComposite, eObject, structuralFeature);
 			numButtons = numButtons + 2;
 		}
 
 		GridLayoutFactory.fillDefaults().numColumns(numButtons).equalWidth(false).applyTo(buttonComposite);
 		final Composite controlComposite = createControlComposite(composite);
-		setTableViewer(createTableViewer(controlComposite, clazz,
-			mainSetting));
+		try {
+			setTableViewer(createTableViewer(controlComposite, clazz));
+		} catch (final DatabindingFailedException ex) {
+			getReportService().report(new RenderingFailedReport(ex));
+			final Label errorLabel = new Label(parent, SWT.NONE);
+			errorLabel.setText(ex.getMessage());
+			return errorLabel;
+
+		}
 
 		if (addButton != null && removeButton != null) {
 			final Button finalAddButton = addButton;
@@ -250,14 +303,14 @@
 				 */
 				@Override
 				public void widgetSelected(SelectionEvent e) {
-					addRow(clazz, mainSetting);
+					addRow(clazz, eObject, structuralFeature);
 
-					final List<?> containments = (List<?>) mainSetting.get(true);
-					if (mainSetting.getEStructuralFeature().getUpperBound() != -1
-						&& containments.size() >= mainSetting.getEStructuralFeature().getUpperBound()) {
+					final List<?> containments = (List<?>) eObject.eGet(structuralFeature, true);
+					if (structuralFeature.getUpperBound() != -1
+						&& containments.size() >= structuralFeature.getUpperBound()) {
 						finalAddButton.setEnabled(false);
 					}
-					if (containments.size() > mainSetting.getEStructuralFeature().getLowerBound()) {
+					if (containments.size() > structuralFeature.getLowerBound()) {
 						finalRemoveButton.setEnabled(true);
 					}
 				}
@@ -282,7 +335,8 @@
 						deletionList.add((EObject) iterator.next());
 					}
 
-					deleteRowUserConfirmDialog(deletionList, mainSetting, finalAddButton, finalRemoveButton);
+					deleteRowUserConfirmDialog(deletionList, eObject, structuralFeature, finalAddButton,
+						finalRemoveButton);
 
 				}
 			});
@@ -345,8 +399,7 @@
 		this.tableViewer = tableViewer;
 	}
 
-	private TableViewer createTableViewer(Composite composite, EClass clazz,
-		Setting mainSetting) {
+	private TableViewer createTableViewer(Composite composite, EClass clazz) throws DatabindingFailedException {
 
 		final TableViewer tableViewer = new TableViewer(composite, SWT.MULTI | SWT.V_SCROLL | SWT.FULL_SELECTION
 			| SWT.BORDER);
@@ -354,6 +407,18 @@
 		tableViewer.getTable().setHeaderVisible(true);
 		tableViewer.getTable().setLinesVisible(true);
 
+		/* Set background color */
+		final VTBackgroundStyleProperty backgroundStyleProperty = getBackgroundStyleProperty();
+		if (backgroundStyleProperty.getColor() != null) {
+			tableViewer.getTable().setBackground(getSWTColor(backgroundStyleProperty.getColor()));
+		}
+
+		/* Set foreground color */
+		final VTFontPropertiesStyleProperty fontPropertiesStyleProperty = getFontPropertiesStyleProperty();
+		if (fontPropertiesStyleProperty.getColorHEX() != null) {
+			tableViewer.getTable().setForeground(getSWTColor(fontPropertiesStyleProperty.getColorHEX()));
+		}
+
 		final TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(tableViewer,
 			new ECPFocusCellDrawHighlighter(tableViewer));
 		final ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(tableViewer) {
@@ -395,35 +460,49 @@
 			if (dmr == null) {
 				continue;
 			}
-			final Iterator<EStructuralFeature> eStructuralFeatureIterator = dmr.getEStructuralFeatureIterator();
-			if (eStructuralFeatureIterator == null || !eStructuralFeatureIterator.hasNext()) {
+
+			IValueProperty valueProperty;
+			try {
+				valueProperty = getEMFFormsDatabinding().getValueProperty(dmr, getViewModelContext().getDomainModel());
+			} catch (final DatabindingFailedException ex) {
+				getReportService().report(new RenderingFailedReport(ex));
 				continue;
 			}
-			final EStructuralFeature eStructuralFeature = eStructuralFeatureIterator.next();
-			String text = eStructuralFeature.getName();
-			String tooltipText = eStructuralFeature.getName();
-			final IItemPropertyDescriptor itemPropertyDescriptor = getItemPropertyDescriptor(getCellSetting(dmr,
-				tempInstance));
-			if (itemPropertyDescriptor != null) {
-				text = itemPropertyDescriptor.getDisplayName(null);
-				tooltipText = itemPropertyDescriptor.getDescription(null);
-			}
+			final EStructuralFeature eStructuralFeature = (EStructuralFeature) valueProperty.getValueType();
+
+			final EMFFormsLabelProvider labelService = getEMFFormsLabelProvider();
 
 			final CellEditor cellEditor = createCellEditor(tempInstance, eStructuralFeature, tableViewer.getTable());
-			final TableViewerColumn column = TableViewerColumnBuilder
-				.create()
-				.setText(text)
-				.setToolTipText(tooltipText)
-				.setResizable(true)
-				.setMoveable(false)
-				.setStyle(SWT.NONE)
-				.setData("width", //$NON-NLS-1$
-					ECPCellEditor.class.isInstance(cellEditor) ? ECPCellEditor.class.cast(cellEditor)
-						.getColumnWidthWeight() : 100)
-				.build(tableViewer);
 
-			column.setLabelProvider(new ECPCellLabelProvider(eStructuralFeature, cellEditor, getObservableMap(dmr,
-				eStructuralFeature, cp), getVElement(), dmr));
+			final TableViewerColumnBuilder columnBuilder = TableViewerColumnBuilder
+				.create()
+				.setData(RESIZABLE, true)
+				.setMoveable(false)
+				.setStyle(SWT.NONE);
+			if (ECPCellEditor.class.isInstance(cellEditor)) {
+				columnBuilder.setData(WEIGHT, ECPCellEditor.class.cast(cellEditor).getColumnWidthWeight());
+				columnBuilder.setData(MIN_WIDTH, ECPCellEditor.class.cast(cellEditor).getMinWidth());
+			} else {
+				columnBuilder.setData(WEIGHT, 100);
+				columnBuilder.setData(MIN_WIDTH, 0);
+			}
+
+			final TableViewerColumn column = columnBuilder.build(tableViewer);
+
+			try {
+				final IObservableValue text = labelService.getDisplayName(dmr);
+				viewModelDBC.bindValue(SWTObservables.observeText(column.getColumn()), text);
+				final IObservableValue tooltipText = labelService.getDescription(dmr);
+				viewModelDBC.bindValue(SWTObservables.observeTooltipText(column.getColumn()), tooltipText);
+			} catch (final NoLabelFoundException ex) {
+				getReportService().report(new RenderingFailedReport(ex));
+				// FIXME Expectation?
+				column.getColumn().setText(ex.getMessage());
+				column.getColumn().setToolTipText(ex.toString());
+			}
+			final IObservableMap observableMap = valueProperty.observeDetail(cp.getKnownElements());
+			column.setLabelProvider(new ECPCellLabelProvider(eStructuralFeature, cellEditor, observableMap,
+				getVElement(), dmr, tableViewer.getTable()));
 			column.getColumn().addSelectionListener(
 				getSelectionAdapter(tableViewer, comparator, column.getColumn(), columnNumber));
 
@@ -433,14 +512,16 @@
 					// eStructuralFeature,
 					// itemPropertyDescriptor
 					// null,
-					getVElement(), dmr);
+					getVElement(), dmr, valueProperty, tempInstance);
 				column.setEditingSupport(observableSupport);
 			}
 			columnNumber++;
 		}
 		tableViewer.setContentProvider(cp);
-		final IObservableList list = EMFEditObservables.observeList(getEditingDomain(mainSetting),
-			mainSetting.getEObject(), mainSetting.getEStructuralFeature());
+
+		final IObservableList list = getEMFFormsDatabinding()
+			.getObservableList(tableDomainModelReference.getDomainModelReference() == null ? tableDomainModelReference
+				: tableDomainModelReference.getDomainModelReference(), getViewModelContext().getDomainModel());
 		tableViewer.setInput(list);
 
 		// IMPORTANT:
@@ -450,9 +531,19 @@
 		final TableColumnLayout layout = new TableColumnLayout();
 		composite.setLayout(layout);
 		for (int i = 0; i < tableViewer.getTable().getColumns().length; i++) {
-			final Integer storedValue = (Integer) tableViewer.getTable().getColumns()[i].getData("width"); //$NON-NLS-1$
-			layout.setColumnData(tableViewer.getTable().getColumns()[i], new ColumnWeightData(storedValue == null ? 50
-				: storedValue));
+			final TableColumn tableColumn = tableViewer.getTable().getColumns()[i];
+
+			final boolean storedIsResizable = (Boolean) tableColumn.getData(RESIZABLE);
+
+			final Integer storedWidth = (Integer) tableColumn.getData(WIDTH);
+			if (storedWidth != null) {
+				layout.setColumnData(tableColumn, new ColumnPixelData(storedWidth, storedIsResizable));
+				continue;
+			}
+
+			final Integer storedWeight = (Integer) tableColumn.getData(WEIGHT);
+			final Integer storedMinWidth = (Integer) tableColumn.getData(MIN_WIDTH);
+			layout.setColumnData(tableColumn, new ColumnWeightData(storedWeight, storedMinWidth, storedIsResizable));
 		}
 
 		tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
@@ -475,57 +566,14 @@
 	 */
 	protected void viewerSelectionChanged(SelectionChangedEvent event) {
 		if (event.getSelection().isEmpty()) {
-			if (removeButton != null) {
-				removeButton.setEnabled(false);
+			if (getRemoveButton() != null) {
+				getRemoveButton().setEnabled(false);
+			}
+		} else {
+			if (getRemoveButton() != null) {
+				getRemoveButton().setEnabled(true);
 			}
 		}
-		else {
-			if (removeButton != null) {
-				removeButton.setEnabled(true);
-			}
-		}
-	}
-
-	private IObservableMap getObservableMap(VDomainModelReference dmr, EStructuralFeature eStructuralFeature,
-		ObservableListContentProvider cp) {
-		if (eStructuralFeature
-			.isMany()) {
-			return new EObjectObservableMap(cp.getKnownElements(), eStructuralFeature);
-		}
-
-		return getValueProperty(dmr).observeDetail(
-			cp.getKnownElements());
-	}
-
-	@SuppressWarnings({ "rawtypes", "unchecked" })
-	private IValueProperty getValueProperty(VDomainModelReference dmr) {
-		ServiceReference<DatabindingProviderService> databindingProviderServiceReference = null;
-
-		try {
-			final Collection<ServiceReference<DatabindingProviderService>> serviceReferences = Activator.getInstance()
-				.getBundle()
-				.getBundleContext()
-				.getServiceReferences(DatabindingProviderService.class,
-					String.format("(domainModelReference=%s)", dmr.getClass().getName())); //$NON-NLS-1$
-			final Iterator<ServiceReference<DatabindingProviderService>> iterator = serviceReferences.iterator();
-			if (iterator.hasNext()) {
-				databindingProviderServiceReference = iterator.next();
-			}
-			if (databindingProviderServiceReference == null) {
-				throw new IllegalStateException("No DatabindingProviderService available."); //$NON-NLS-1$
-			}
-		} catch (final InvalidSyntaxException e) {
-			throw new IllegalStateException(e);
-		}
-
-		final DatabindingProviderService<VDomainModelReference> databindingProviderService = Activator.getInstance()
-			.getBundle().getBundleContext().getService(databindingProviderServiceReference);
-		final IValueProperty result = databindingProviderService.getProperty(dmr, IValueProperty.class);
-		Activator.getInstance()
-			.getBundle()
-			.getBundleContext().ungetService(databindingProviderServiceReference);
-
-		return result;
 	}
 
 	private SelectionAdapter getSelectionAdapter(final TableViewer tableViewer,
@@ -552,13 +600,14 @@
 		final TableViewerColumn column = TableViewerColumnBuilder.create()
 			.setMoveable(false)
 			.setText(columnName)
-			.setWidth(columnWidth)
+			.setData(WIDTH, columnWidth)
+			.setData(RESIZABLE, true)
 			.build(tableViewer);
 
 		if (imagePath != null && !imagePath.isEmpty()) {
 			Image image = null;
 			try {
-				image = Activator.getImage(new File(imagePath).toURI().toURL());
+				image = getImage(new File(imagePath).toURI().toURL());
 			} catch (final MalformedURLException ex) {
 				ex.printStackTrace();
 			}
@@ -569,19 +618,34 @@
 		column.setLabelProvider(new ValidationStatusCellLabelProvider(getVElement()));
 	}
 
-	private VTTableValidationStyleProperty getTableValidationStyleProperty() {
-		VTTableValidationStyleProperty tableValidationStyleProperties;
-		final Set<VTStyleProperty> styleProperties = Activator.getInstance().getVTViewTemplateProvider()
-			.getStyleProperties(getVElement(), getViewModelContext());
-		for (final VTStyleProperty styleProperty : styleProperties) {
-			if (VTTableValidationStyleProperty.class.isInstance(styleProperty)) {
-				tableValidationStyleProperties = VTTableValidationStyleProperty.class
-					.cast(styleProperty);
-				return tableValidationStyleProperties;
-			}
-		}
+	/**
+	 * Retrieve images from the {@link ImageRegistryService} using an {@link URL}.
+	 *
+	 * @param url The {@link URL} pointing to the image
+	 * @return The retrieved Image
+	 * @since 1.6
+	 */
+	protected Image getImage(URL url) {
+		return imageRegistryService.getImage(url);
+	}
 
-		tableValidationStyleProperties = getDefaultTableValidationStyleProperty();
+	/**
+	 * Retrieve images from the {@link ImageRegistryService} using a bundle relative path.
+	 *
+	 * @param path The bundle relative path pointing to the image
+	 * @return The retrieved Image
+	 * @since 1.6
+	 */
+	protected Image getImage(String path) {
+		return imageRegistryService.getImage(FrameworkUtil.getBundle(getClass()), path);
+	}
+
+	private VTTableValidationStyleProperty getTableValidationStyleProperty() {
+		VTTableValidationStyleProperty tableValidationStyleProperties = getStyleProperty(
+			VTTableValidationStyleProperty.class);
+		if (tableValidationStyleProperties == null) {
+			tableValidationStyleProperties = getDefaultTableValidationStyleProperty();
+		}
 		return tableValidationStyleProperties;
 	}
 
@@ -589,11 +653,66 @@
 		final VTTableValidationStyleProperty tableValidationProp = VTTableValidationFactory.eINSTANCE
 			.createTableValidationStyleProperty();
 		tableValidationProp.setColumnWidth(80);
-		tableValidationProp.setColumnName(ControlMessages.TableControl_ValidationStatusColumn);
+		tableValidationProp.setColumnName(LocalizationServiceHelper.getString(getClass(),
+			MessageKeys.TableControl_ValidationStatusColumn));
 		tableValidationProp.setImagePath(null);
 		return tableValidationProp;
 	}
 
+	private VTBackgroundStyleProperty getBackgroundStyleProperty() {
+		VTBackgroundStyleProperty styleProperty = getStyleProperty(VTBackgroundStyleProperty.class);
+		if (styleProperty == null) {
+			styleProperty = getDefaultBackgroundStyleProperty();
+		}
+		return styleProperty;
+	}
+
+	private VTBackgroundStyleProperty getDefaultBackgroundStyleProperty() {
+		return VTBackgroundFactory.eINSTANCE.createBackgroundStyleProperty();
+	}
+
+	private VTFontPropertiesStyleProperty getFontPropertiesStyleProperty() {
+		VTFontPropertiesStyleProperty styleProperty = getStyleProperty(VTFontPropertiesStyleProperty.class);
+		if (styleProperty == null) {
+			styleProperty = getDefaultFontPropertiesStyleProperty();
+		}
+		return styleProperty;
+	}
+
+	private VTFontPropertiesStyleProperty getDefaultFontPropertiesStyleProperty() {
+		final VTFontPropertiesStyleProperty property = VTFontPropertiesFactory.eINSTANCE
+			.createFontPropertiesStyleProperty();
+		property.setColorHEX("000000"); //$NON-NLS-1$
+		return property;
+	}
+
+	/**
+	 * Returns a {@link VTStyleProperty} of the given class or <code>null</code> if none was found.
+	 *
+	 * @param stylePropertyClass the style property class
+	 * @return the property or <code>null</code>
+	 */
+	private <SP extends VTStyleProperty> SP getStyleProperty(Class<SP> stylePropertyClass) {
+		final Set<VTStyleProperty> styleProperties = getVTViewTemplateProvider()
+			.getStyleProperties(getVElement(), getViewModelContext());
+		for (final VTStyleProperty styleProperty : styleProperties) {
+			if (stylePropertyClass.isInstance(styleProperty)) {
+				return stylePropertyClass.cast(styleProperty);
+			}
+		}
+		return null;
+	}
+
+	private Color getSWTColor(String colorHex) {
+		final String redString = colorHex.substring(0, 2);
+		final String greenString = colorHex.substring(2, 4);
+		final String blueString = colorHex.substring(4, 6);
+		final int red = Integer.parseInt(redString, 16);
+		final int green = Integer.parseInt(greenString, 16);
+		final int blue = Integer.parseInt(blueString, 16);
+		return new Color(Display.getDefault(), red, green, blue);
+	}
+
 	private CellEditor createCellEditor(final EObject tempInstance, final EStructuralFeature feature, Table table) {
 		return CellEditorFactory.INSTANCE.getCellEditor(feature,
 			tempInstance, table, getViewModelContext());
@@ -603,32 +722,34 @@
 		return InternalEObject.class.cast(clazz.getEPackage().getEFactoryInstance().create(clazz));
 	}
 
-	private Button createRemoveRowButton(EClass clazz, final Composite buttonComposite, Setting mainSetting) {
+	private Button createRemoveRowButton(EClass clazz, final Composite buttonComposite, final EObject eObject,
+		final EStructuralFeature structuralFeature) {
 		removeButton = new Button(buttonComposite, SWT.None);
-		final Image image = Activator.getImage(ICON_DELETE);
+		final Image image = getImage(ICON_DELETE);
 		removeButton.setImage(image);
 		removeButton.setEnabled(false);
 		final String instanceName = clazz.getInstanceClass() == null ? "" : clazz.getInstanceClass().getSimpleName(); //$NON-NLS-1$
-		removeButton.setToolTipText(String.format(ControlMessages.TableControl_RemoveSelected
-			, instanceName));
+		removeButton.setToolTipText(String.format(
+			LocalizationServiceHelper.getString(getClass(), MessageKeys.TableControl_RemoveSelected), instanceName));
 
-		final List<?> containments = (List<?>) mainSetting.get(true);
-		if (containments.size() <= mainSetting.getEStructuralFeature().getLowerBound()) {
+		final List<?> containments = (List<?>) eObject.eGet(structuralFeature, true);
+		if (containments.size() <= structuralFeature.getLowerBound()) {
 			removeButton.setEnabled(false);
 		}
 		return removeButton;
 	}
 
-	private Button createAddRowButton(final EClass clazz, final Composite buttonComposite, final Setting mainSetting) {
+	private Button createAddRowButton(final EClass clazz, final Composite buttonComposite, final EObject eObject,
+		final EStructuralFeature structuralFeature) {
 		addButton = new Button(buttonComposite, SWT.None);
-		final Image image = Activator.getImage(ICON_ADD);
+		final Image image = getImage(ICON_ADD);
 		addButton.setImage(image);
 		final String instanceName = clazz.getInstanceClass() == null ? "" : clazz.getInstanceClass().getSimpleName(); //$NON-NLS-1$
-		addButton.setToolTipText(String.format(ControlMessages.TableControl_AddInstanceOf, instanceName));
+		addButton.setToolTipText(String.format(
+			LocalizationServiceHelper.getString(getClass(), MessageKeys.TableControl_AddInstanceOf), instanceName));
 
-		final List<?> containments = (List<?>) mainSetting.get(true);
-		if (mainSetting.getEStructuralFeature().getUpperBound() != -1
-			&& containments.size() >= mainSetting.getEStructuralFeature().getUpperBound()) {
+		final List<?> containments = (List<?>) eObject.eGet(structuralFeature, true);
+		if (structuralFeature.getUpperBound() != -1 && containments.size() >= structuralFeature.getUpperBound()) {
 			addButton.setEnabled(false);
 		}
 		return addButton;
@@ -638,17 +759,21 @@
 	 * This method shows a user confirmation dialog when the user attempts to delete a row in the table.
 	 *
 	 * @param deletionList the list of selected EObjects to delete
-	 * @param mainSetting the containment reference setting
+	 * @param eObject The containment reference {@link EObject}
+	 * @param structuralFeature The containment reference {@link EStructuralFeature}
 	 * @param addButton the add button
 	 * @param removeButton the remove button
+	 * @since 1.6
 	 */
-	protected void deleteRowUserConfirmDialog(final List<EObject> deletionList, final Setting mainSetting,
-		final Button addButton, final Button removeButton) {
+	protected void deleteRowUserConfirmDialog(final List<EObject> deletionList, final EObject eObject,
+		final EStructuralFeature structuralFeature, final Button addButton, final Button removeButton) {
 		final MessageDialog dialog = new MessageDialog(addButton.getShell(),
-			ControlMessages.TableControl_Delete, null,
-			ControlMessages.TableControl_DeleteAreYouSure, MessageDialog.CONFIRM, new String[] {
+			LocalizationServiceHelper.getString(getClass(), MessageKeys.TableControl_Delete), null,
+			LocalizationServiceHelper.getString(getClass(), MessageKeys.TableControl_DeleteAreYouSure),
+			MessageDialog.CONFIRM, new String[] {
 				JFaceResources.getString(IDialogLabelKeys.YES_LABEL_KEY),
-				JFaceResources.getString(IDialogLabelKeys.NO_LABEL_KEY) }, 0);
+				JFaceResources.getString(IDialogLabelKeys.NO_LABEL_KEY) },
+			0);
 
 		new ECPDialogExecutor(dialog) {
 
@@ -658,13 +783,13 @@
 					return;
 				}
 
-				deleteRows(deletionList, mainSetting);
+				deleteRows(deletionList, eObject, structuralFeature);
 
-				final List<?> containments = (List<?>) mainSetting.get(true);
-				if (containments.size() < mainSetting.getEStructuralFeature().getUpperBound()) {
+				final List<?> containments = (List<?>) eObject.eGet(structuralFeature, true);
+				if (containments.size() < structuralFeature.getUpperBound()) {
 					addButton.setEnabled(true);
 				}
-				if (containments.size() <= mainSetting.getEStructuralFeature().getLowerBound()) {
+				if (containments.size() <= structuralFeature.getLowerBound()) {
 					removeButton.setEnabled(false);
 				}
 			}
@@ -676,13 +801,43 @@
 	 * elements.
 	 *
 	 * @param deletionList the list of {@link EObject EObjects} to delete
-	 * @param mainSetting the containment reference setting
+	 * @param eObject The containment reference {@link EObject}
+	 * @param structuralFeature The containment reference {@link EStructuralFeature}
+	 * @since 1.6
 	 */
-	protected void deleteRows(List<EObject> deletionList, Setting mainSetting) {
-		final EObject modelElement = mainSetting.getEObject();
-		final EditingDomain editingDomain = getEditingDomain(mainSetting);
-		editingDomain.getCommandStack().execute(
-			RemoveCommand.create(editingDomain, modelElement, mainSetting.getEStructuralFeature(), deletionList));
+	protected void deleteRows(List<EObject> deletionList, final EObject eObject,
+		final EStructuralFeature structuralFeature) {
+
+		final EditingDomain editingDomain = getEditingDomain(eObject);
+
+		/* assured by #isApplicable */
+		final EReference reference = EReference.class.cast(structuralFeature);
+		final List<Object> toDelete = new ArrayList<Object>(deletionList);
+		if (reference.isContainment()) {
+			DeleteService deleteService = getViewModelContext().getService(DeleteService.class);
+			if (deleteService == null) {
+				/*
+				 * #getService(Class<?>) will report to the reportservice if it could not be found
+				 * Use Default
+				 */
+				deleteService = new EMFDeleteServiceImpl();
+			}
+			deleteService.deleteElements(toDelete);
+		} else {
+			removeElements(editingDomain, eObject, reference, toDelete);
+		}
+	}
+
+	private void removeElements(EditingDomain editingDomain, Object source, EStructuralFeature feature,
+		Collection<Object> toRemove) {
+		final Command removeCommand = RemoveCommand.create(editingDomain, source, feature, toRemove);
+		if (removeCommand.canExecute()) {
+			if (editingDomain.getCommandStack() == null) {
+				removeCommand.execute();
+			} else {
+				editingDomain.getCommandStack().execute(removeCommand);
+			}
+		}
 	}
 
 	/**
@@ -691,25 +846,22 @@
 	 * You can override this method but you have to call super nonetheless.
 	 *
 	 * @param clazz the {@link EClass} defining the EObject to create
-	 * @param mainSetting the containment reference setting
+	 * @param eObject The containment reference {@link EObject}
+	 * @param structuralFeature The containment reference {@link EStructuralFeature}
+	 * @since 1.6
 	 */
-	protected void addRow(EClass clazz, Setting mainSetting) {
+	protected void addRow(EClass clazz, EObject eObject, EStructuralFeature structuralFeature) {
 		if (clazz.isAbstract() || clazz.isInterface()) {
-			Activator
-				.getInstance()
-				.getLog()
-				.log(
-					new Status(
-						IStatus.WARNING,
-						"org.eclipse.emf.ecp.view.table.ui.swt", "The class " + clazz.getName() + " is abstract or an interface.")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+			getReportService().report(new StatusReport(
+				new Status(IStatus.WARNING, "org.eclipse.emf.ecp.view.table.ui.swt", //$NON-NLS-1$
+					String.format("The class %1$s is abstract or an interface.", clazz.getName())))); //$NON-NLS-1$
 		}
-		final EObject modelElement = mainSetting.getEObject();
 		final EObject instance = clazz.getEPackage().getEFactoryInstance().create(clazz);
-		final EditingDomain editingDomain = getEditingDomain(mainSetting);
+		final EditingDomain editingDomain = getEditingDomain(eObject);
 		if (editingDomain == null) {
 		}
 		editingDomain.getCommandStack().execute(
-			AddCommand.create(editingDomain, modelElement, mainSetting.getEStructuralFeature(), instance));
+			AddCommand.create(editingDomain, eObject, structuralFeature, instance));
 	}
 
 	@Override
@@ -730,12 +882,31 @@
 				if (getVElement().getDiagnostic() == null) {
 					return;
 				}
-				final Setting mainSetting = getVElement().getDomainModelReference().getIterator().next();
+
+				final VTableDomainModelReference tableDMR = (VTableDomainModelReference) getVElement()
+					.getDomainModelReference();
+				IObservableValue observableValue;
+				try {
+					if (tableDMR.getDomainModelReference() != null) {
+						observableValue = getEMFFormsDatabinding().getObservableValue(
+							tableDMR.getDomainModelReference(), getViewModelContext().getDomainModel());
+					} else {
+						observableValue = getEMFFormsDatabinding().getObservableValue(tableDMR,
+							getViewModelContext().getDomainModel());
+					}
+				} catch (final DatabindingFailedException ex) {
+					getReportService().report(new DatabindingFailedReport(ex));
+					return;
+				}
+				final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+				final EObject eObject = (EObject) ((IObserving) observableValue).getObserved();
+				observableValue.dispose();
+
 				validationIcon.setImage(getValidationIcon(getVElement().getDiagnostic().getHighestSeverity()));
 
 				validationIcon.setToolTipText(ECPTooltipModifierHelper.modifyString(getVElement().getDiagnostic()
 					.getMessage(), null));
-				final Collection<?> collection = (Collection<?>) mainSetting.get(true);
+				final Collection<?> collection = (Collection<?>) eObject.eGet(structuralFeature, true);
 				if (!collection.isEmpty()) {
 					for (final Object object : collection) {
 						tableViewer.update(object, null);
@@ -747,43 +918,64 @@
 	}
 
 	/**
+	 * Returns the add button created by the framework.
+	 *
+	 * @return the addButton
+	 * @since 1.6
+	 */
+	protected Button getAddButton() {
+		return addButton;
+	}
+
+	/**
+	 * Returns the remove button created by the framework.
+	 *
+	 * @return the removeButton
+	 * @since 1.6
+	 */
+	protected Button getRemoveButton() {
+		return removeButton;
+	}
+
+	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#applyEnable()
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#applyEnable()
 	 */
 	@Override
 	protected void applyEnable() {
-		if (addButton != null) {
-			addButton.setVisible(getVElement().isEnabled() && !getVElement().isReadonly());
+		if (getAddButton() != null) {
+			getAddButton().setVisible(getVElement().isEnabled() && !getVElement().isReadonly());
 		}
-		if (removeButton != null) {
-			removeButton.setVisible(getVElement().isEnabled() && !getVElement().isReadonly());
+		if (getRemoveButton() != null) {
+			getRemoveButton().setVisible(getVElement().isEnabled() && !getVElement().isReadonly());
 		}
 	}
 
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#applyReadOnly()
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#applyReadOnly()
 	 */
 	@Override
 	protected void applyReadOnly() {
-		if (addButton != null) {
-			addButton.setVisible(getVElement().isEnabled() && !getVElement().isReadonly());
+		if (getAddButton() != null) {
+			getAddButton().setVisible(getVElement().isEnabled() && !getVElement().isReadonly());
 		}
-		if (removeButton != null) {
-			removeButton.setVisible(getVElement().isEnabled() && !getVElement().isReadonly());
+		if (getRemoveButton() != null) {
+			getRemoveButton().setVisible(getVElement().isEnabled() && !getVElement().isReadonly());
 		}
 	}
 
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#dispose()
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#dispose()
 	 */
 	@Override
 	protected void dispose() {
 		rendererGridDescription = null;
+		viewModelDBC.dispose();
 		super.dispose();
 	}
 
@@ -838,18 +1030,31 @@
 			final EObject object1 = (EObject) e1;
 			final EObject object2 = (EObject) e2;
 
-			Object value1 = null;
-			Object value2 = null;
+			Object value1;
+			Object value2;
 
 			final VDomainModelReference dmr = ((VTableDomainModelReference) getVElement().getDomainModelReference())
 				.getColumnDomainModelReferences().get(propertyIndex);
-			boolean init = dmr.init(object1);
-			if (init && dmr.getIterator().hasNext()) {
-				value1 = dmr.getIterator().next().get(true);
+			final EMFFormsDatabinding emfFormsDatabinding = getEMFFormsDatabinding();
+
+			try {
+				final IObservableValue observableValue1 = emfFormsDatabinding.getObservableValue(dmr, object1);
+				final EStructuralFeature structuralFeature1 = (EStructuralFeature) observableValue1.getValueType();
+				final EObject observed1 = (EObject) ((IObserving) observableValue1).getObserved();
+				value1 = observed1.eGet(structuralFeature1, true);
+				observableValue1.dispose();
+			} catch (final DatabindingFailedException ex) {
+				value1 = null;
 			}
-			init = dmr.init(object2);
-			if (init && dmr.getIterator().hasNext()) {
-				value2 = dmr.getIterator().next().get(true);
+
+			try {
+				final IObservableValue observableValue2 = emfFormsDatabinding.getObservableValue(dmr, object2);
+				final EStructuralFeature structuralFeature2 = (EStructuralFeature) observableValue2.getValueType();
+				final EObject observed2 = (EObject) ((IObserving) observableValue2).getObserved();
+				value2 = observed2.eGet(structuralFeature2, true);
+				observableValue2.dispose();
+			} catch (final DatabindingFailedException ex) {
+				value2 = null;
 			}
 
 			if (value1 == null) {
@@ -880,6 +1085,7 @@
 		private final CellEditor cellEditor;
 		private final VTableControl vTableControl;
 		private final VDomainModelReference dmr;
+		private final Table table;
 
 		/**
 		 * Constructor.
@@ -892,14 +1098,17 @@
 		 *            an {@link IObservableMap} instance that is passed to the {@link ObservableMapCellLabelProvider}
 		 * @param vTableControl the {@link VTableControl}
 		 * @param dmr the {@link VDomainModelReference} for this cell
+		 * @param table the swt table
+		 * @since 1.6
 		 */
 		public ECPCellLabelProvider(EStructuralFeature feature, CellEditor cellEditor, IObservableMap attributeMap,
-			VTableControl vTableControl, VDomainModelReference dmr) {
+			VTableControl vTableControl, VDomainModelReference dmr, Table table) {
 			super(attributeMap);
 			this.vTableControl = vTableControl;
 			this.feature = feature;
 			this.cellEditor = cellEditor;
 			this.dmr = dmr;
+			this.table = table;
 		}
 
 		/**
@@ -910,15 +1119,18 @@
 		@Override
 		public String getToolTipText(Object element) {
 			final EObject domainObject = (EObject) element;
-			final VDomainModelReference copy = EcoreUtil.copy(dmr);
-			copy.init(domainObject);
-			final Iterator<Setting> iterator = copy.getIterator();
-			Setting setting;
-			if (iterator.hasNext()) {
-				setting = iterator.next();
-			} else {
+			IObservableValue observableValue;
+			try {
+				observableValue = getEMFFormsDatabinding()
+					.getObservableValue(dmr, domainObject);
+			} catch (final DatabindingFailedException ex) {
+				getReportService().report(new DatabindingFailedReport(ex));
 				return null;
 			}
+			final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+			final EObject eObject = (EObject) ((IObserving) observableValue).getObserved();
+			final Setting setting = ((InternalEObject) eObject).eSetting(structuralFeature);
+			observableValue.dispose();
 
 			final VDiagnostic vDiagnostic = vTableControl.getDiagnostic();
 			if (vDiagnostic != null) {
@@ -928,7 +1140,7 @@
 					return ECPTooltipModifierHelper.modifyString(message, setting);
 				}
 			}
-			final Object value = setting.get(true);
+			final Object value = eObject.eGet(structuralFeature, true);
 			if (value == null) {
 				return null;
 			}
@@ -950,6 +1162,7 @@
 				cell.getControl().setData(CUSTOM_VARIANT, "org_eclipse_emf_ecp_edit_cellEditor_string"); //$NON-NLS-1$
 			}
 
+			cell.setForeground(getForeground(element));
 			cell.setBackground(getBackground(element));
 		}
 
@@ -960,7 +1173,7 @@
 		 */
 		@Override
 		public Color getForeground(Object element) {
-			return null;
+			return table.getForeground();
 		}
 
 		/**
@@ -992,17 +1205,24 @@
 
 		private final VTableControl tableControl;
 
+		private final IValueProperty valueProperty;
+
 		private final VDomainModelReference domainModelReference;
 
+		private final EObject dmrRootEObject;
+
 		/**
 		 * @param viewer
 		 */
 		public ECPTableEditingSupport(ColumnViewer viewer, CellEditor cellEditor,
-			VTableControl tableControl, VDomainModelReference domainModelReference) {
+			VTableControl tableControl, VDomainModelReference domainModelReference, IValueProperty valueProperty,
+			EObject dmrRootEObject) {
 			super(viewer);
 			this.cellEditor = cellEditor;
 			this.tableControl = tableControl;
+			this.valueProperty = valueProperty;
 			this.domainModelReference = domainModelReference;
+			this.dmrRootEObject = dmrRootEObject;
 		}
 
 		private EditingState editingState;
@@ -1020,13 +1240,13 @@
 			boolean editable = tableControl.isEnabled()
 				&& !tableControl.isReadonly();
 
-			final Setting setting = getCellSetting(domainModelReference, element);
-			if (setting == null) {
-				return false;
-			}
-			editable &= getItemPropertyDescriptor(setting).canSetProperty(null);
-			editable &= !CellReadOnlyTesterHelper.getInstance().isReadOnly(getVElement(), setting
-				);
+			final IObservableValue observableValue = valueProperty.observe(element);
+			final EObject eObject = (EObject) ((IObserving) observableValue).getObserved();
+			final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+			final Setting setting = ((InternalEObject) eObject).eSetting(structuralFeature);
+
+			editable &= emfFormsEditSupport.canSetProperty(domainModelReference, (EObject) element);
+			editable &= !CellReadOnlyTesterHelper.getInstance().isReadOnly(getVElement(), setting);
 
 			if (ECPCellEditor.class.isInstance(cellEditor)) {
 				ECPCellEditor.class.cast(cellEditor).setEditable(editable);
@@ -1070,8 +1290,8 @@
 			final IObservableValue target = doCreateCellEditorObservable(cellEditor);
 			Assert.isNotNull(target, "doCreateCellEditorObservable(...) did not return an observable"); //$NON-NLS-1$
 
-			final IObservableValue model = doCreateElementObservable(cell.getElement(), cell);
-			Assert.isNotNull(model, "doCreateElementObservable(...) did not return an observable"); //$NON-NLS-1$
+			final IObservableValue model = valueProperty.observe(cell.getElement());
+			Assert.isNotNull(model, "The databinding service did not return an observable"); //$NON-NLS-1$
 
 			final Binding binding = createBinding(target, model);
 
@@ -1090,16 +1310,12 @@
 		protected Binding createBinding(IObservableValue target, IObservableValue model) {
 			if (ECPCellEditor.class.isInstance(cellEditor)) {
 				return getDataBindingContext().bindValue(target, model,
-					((ECPCellEditor) cellEditor).getTargetToModelStrategy(),
-					((ECPCellEditor) cellEditor).getModelToTargetStrategy());
+					((ECPCellEditor) cellEditor).getTargetToModelStrategy(getDataBindingContext()),
+					((ECPCellEditor) cellEditor).getModelToTargetStrategy(getDataBindingContext()));
 			}
 			return getDataBindingContext().bindValue(target, model);
 		}
 
-		protected IObservableValue doCreateElementObservable(Object element, ViewerCell cell) {
-			return getValueProperty(domainModelReference).observe(element);
-		}
-
 		protected IObservableValue doCreateCellEditorObservable(CellEditor cellEditor) {
 			if (ECPCellEditor.class.isInstance(cellEditor)) {
 				return ((ECPCellEditor) cellEditor).getValueProperty().observe(cellEditor);
@@ -1122,7 +1338,13 @@
 
 			@Override
 			public void afterEditorActivated(ColumnViewerEditorActivationEvent event) {
-				// do nothing
+				// set colors for cell editor
+				final Control control = cellEditor.getControl();
+				if (control == null || control.isDisposed()) {
+					return;
+				}
+				control.setBackground(getViewer().getControl().getBackground());
+				control.setForeground(getViewer().getControl().getForeground());
 			}
 
 			@Override
@@ -1208,15 +1430,4 @@
 			return ECPTooltipModifierHelper.modifyString(message, null);
 		}
 	}
-
-	private Setting getCellSetting(VDomainModelReference domainModelReference, Object element) {
-		final InternalEObject eObject = InternalEObject.class.cast(element);
-		final VDomainModelReference copy = EcoreUtil.copy(domainModelReference);
-		copy.init(eObject);
-		final Iterator<Setting> iterator = copy.getIterator();
-		if (iterator.hasNext()) {
-			return iterator.next();
-		}
-		return null;
-	}
 }
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 e690a13..8620c60 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,12 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Services
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.table.validation;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.5.0,2.0.0)"
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.5.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.emf.ecp.view.table.internal.validation;ver
- sion="1.5.1";x-internal:=true
+ sion="1.6.0";x-internal:=true
+Bundle-Activator: org.eclipse.emf.ecp.view.table.internal.validation.Activator
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.6.0,2.0.0)"
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 1bd6ec7..ad489c8 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
 
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.validation/src/org/eclipse/emf/ecp/view/table/internal/validation/Activator.java b/bundles/org.eclipse.emf.ecp.view.table.validation/src/org/eclipse/emf/ecp/view/table/internal/validation/Activator.java
new file mode 100644
index 0000000..22facdd
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.table.validation/src/org/eclipse/emf/ecp/view/table/internal/validation/Activator.java
@@ -0,0 +1,98 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.table.internal.validation;
+
+import org.eclipse.core.runtime.Plugin;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * The activator class controls the plug-in life cycle.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class Activator extends Plugin {
+	/** The plug-in ID. */
+	public static final String PLUGIN_ID = "org.eclipse.emf.ecp.view.table.validation"; //$NON-NLS-1$
+
+	// The shared instance
+	private static Activator plugin;
+
+	private ServiceReference<ReportService> reportServiceReference;
+
+	/**
+	 * The constructor.
+	 */
+	public Activator() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+	 */
+	@Override
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+	 */
+	@Override
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * 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 = plugin.getBundle().getBundleContext()
+				.getServiceReference(ReportService.class);
+		}
+		return plugin.getBundle().getBundleContext().getService(reportServiceReference);
+	}
+
+	/**
+	 * Returns the {@link EMFFormsDatabinding} service.
+	 *
+	 * @return The {@link EMFFormsDatabinding}
+	 */
+	public EMFFormsDatabinding getEMFFormsDatabinding() {
+		final ServiceReference<EMFFormsDatabinding> serviceReference = plugin.getBundle().getBundleContext()
+			.getServiceReference(EMFFormsDatabinding.class);
+
+		final EMFFormsDatabinding service = plugin.getBundle().getBundleContext()
+			.getService(serviceReference);
+		plugin.getBundle().getBundleContext().ungetService(serviceReference);
+
+		return service;
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.validation/src/org/eclipse/emf/ecp/view/table/internal/validation/TableValidationInitiator.java b/bundles/org.eclipse.emf.ecp.view.table.validation/src/org/eclipse/emf/ecp/view/table/internal/validation/TableValidationInitiator.java
index dab646f..b29468b 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.validation/src/org/eclipse/emf/ecp/view/table/internal/validation/TableValidationInitiator.java
+++ b/bundles/org.eclipse.emf.ecp.view.table.validation/src/org/eclipse/emf/ecp/view/table/internal/validation/TableValidationInitiator.java
@@ -12,15 +12,17 @@
 package org.eclipse.emf.ecp.view.table.internal.validation;
 
 import java.util.Collections;
-import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.Map;
 
+import org.eclipse.core.databinding.observable.IObserving;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.common.util.TreeIterator;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+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.view.spi.context.GlobalViewModelService;
@@ -31,6 +33,9 @@
 import org.eclipse.emf.ecp.view.spi.provider.ViewProviderHelper;
 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.model.VTableDomainModelReference;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 
 /**
  * The TableValidationInitiator searches for Tables with an Editing Panel, and creates the necessary ViewModelContexts.
@@ -38,7 +43,6 @@
  * @author Eugen Neufeld
  *
  */
-@SuppressWarnings("restriction")
 public class TableValidationInitiator implements GlobalViewModelService {
 
 	/**
@@ -64,9 +68,11 @@
 	}
 
 	private final Map<UniqueSetting, TableContextMapping> mapping = new LinkedHashMap<UniqueSetting, TableContextMapping>();
+	private ViewModelContext context;
 
 	@Override
 	public void instantiate(ViewModelContext context) {
+		this.context = context;
 		context.registerDomainChangeListener(new ModelChangeListener() {
 
 			@Override
@@ -80,8 +86,12 @@
 					return;
 				}
 				for (final EObject newValue : notification.getNewEObjects()) {
-					tableContextMapping.context.getChildContext(newValue,
-						tableContextMapping.control, getView(tableContextMapping.control));
+					try {
+						tableContextMapping.context.getChildContext(newValue,
+							tableContextMapping.control, getView(tableContextMapping.control));
+					} catch (final DatabindingFailedException ex) {
+						Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+					}
 				}
 			}
 		});
@@ -98,17 +108,39 @@
 				final VTableControl tableControl = VTableControl.class.cast(eObject);
 
 				if (tableControl.getDetailEditing() == DetailEditing.WITH_PANEL) {
-					final Iterator<Setting> iterator = tableControl
-						.getDomainModelReference().getIterator();
-					final Setting tableSetting = iterator.next();
-					mapping.put(UniqueSetting.createSetting(tableSetting), new TableContextMapping(tableControl,
-						context));
-					final EList<EObject> tableContents = (EList<EObject>) tableSetting.get(true);
+					final VTableDomainModelReference tableDomainModelReference = (VTableDomainModelReference) tableControl
+						.getDomainModelReference();
+					final IObservableValue observableValue;
+					try {
+						if (tableDomainModelReference.getDomainModelReference() != null) {
+							observableValue = Activator.getDefault().getEMFFormsDatabinding()
+								.getObservableValue(tableDomainModelReference.getDomainModelReference(),
+									context.getDomainModel());
+						} else {
+							observableValue = Activator.getDefault().getEMFFormsDatabinding()
+								.getObservableValue(tableDomainModelReference, context.getDomainModel());
+						}
+					} catch (final DatabindingFailedException ex) {
+						Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+						continue;
+					}
+					final IObserving observing = (IObserving) observableValue;
+					final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+					final EObject observed = (EObject) observing.getObserved();
+					observableValue.dispose();
+
+					mapping.put(UniqueSetting.createSetting(observed, structuralFeature), new TableContextMapping(
+						tableControl, context));
+					final EList<EObject> tableContents = (EList<EObject>) observed.eGet(structuralFeature, true);
 					for (final EObject tableEObject : tableContents) {
-						final VView detailView = getView(tableControl);
-						final ViewModelContext childContext = context.getChildContext(tableEObject, tableControl,
-							detailView);
-						childContext.addContextUser(this);
+						try {
+							final VView detailView = getView(tableControl);
+							final ViewModelContext childContext = context.getChildContext(tableEObject, tableControl,
+								detailView);
+							childContext.addContextUser(this);
+						} catch (final DatabindingFailedException ex) {
+							Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+						}
 					}
 
 				}
@@ -116,19 +148,26 @@
 		}
 	}
 
-	private VView getView(VTableControl tableControl) {
+	private VView getView(VTableControl tableControl) throws DatabindingFailedException {
 		VView detailView = tableControl.getDetailView();
 		if (detailView == null) {
-			final Setting setting = tableControl.getDomainModelReference()
-				.getIterator().next();
-			final EReference reference = (EReference) setting
-				.getEStructuralFeature();
+			final VTableDomainModelReference tableDomainModelReference = (VTableDomainModelReference) tableControl
+				.getDomainModelReference();
+			final IValueProperty valueProperty;
+			if (tableDomainModelReference.getDomainModelReference() != null) {
+				valueProperty = Activator.getDefault().getEMFFormsDatabinding()
+					.getValueProperty(tableDomainModelReference.getDomainModelReference(), context.getDomainModel());
+			} else {
+				valueProperty = Activator.getDefault().getEMFFormsDatabinding()
+					.getValueProperty(tableDomainModelReference, context.getDomainModel());
+			}
+			final EReference reference = (EReference) valueProperty.getValueType();
 			detailView = ViewProviderHelper.getView(
 				EcoreUtil.create(reference.getEReferenceType()),
 				Collections.<String, Object> emptyMap());
 		}
 
-		return EcoreUtil.copy(detailView);
+		return detailView;
 	}
 
 	@Override
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.classpath b/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.classpath
deleted file mode 100644
index ad32c83..0000000
--- a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?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.template.controls.swt/.project b/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.project
deleted file mode 100644
index 366e9a8..0000000
--- a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.project
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.emf.ecp.view.template.controls.swt</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/bundles/org.eclipse.emf.ecp.view.template.controls.swt/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.template.controls.swt/META-INF/MANIFEST.MF
deleted file mode 100644
index e6f5250..0000000
--- a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,19 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Template Controls SWT
-Bundle-SymbolicName: org.eclipse.emf.ecp.view.template.controls.swt;singleton:=true
-Bundle-Version: 1.5.1.qualifier
-Bundle-Activator: org.eclipse.emf.ecp.view.template.controls.swt.Activator
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.edit.swt;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.ui;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.ui.ide;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.core.resources;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.jface.databinding;bundle-version="[1.4.0,2.0.0)"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Bundle-ActivationPolicy: lazy
-Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.template.controls.swt;version
- ="1.5.1";x-internal:=true
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/about.properties b/bundles/org.eclipse.emf.ecp.view.template.controls.swt/about.properties
deleted file mode 100644
index 60965de..0000000
--- a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/about.properties
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright (c) 2011, 2014 Eclipsesource Munich GmbH and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#    EclipseSource - initial API and implementation
-   
-# NLS_MESSAGEFORMAT_VAR
-
-# ==============================================================================
-# Do not change the properties between this line and the last line containing:
-# %%% END OF TRANSLATED PROPERTIES %%%
-# Instead, either redefine an existing property, or create a new property,
-# append it to the end of the file, and change the code to use the new name.
-# ==============================================================================
-
-featureName = ECP EMF Client Platform
-featureText = ECP EMF Client Platform\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-Copyright (c) 2011, 2014 Eclipsesource Munich GmbH and others. All rights reserved.\n\
-\n\
-Visit http://www.eclipse.org/ecp
-
-# ==============================================================================
-# %%% END OF TRANSLATED PROPERTIES %%%
-# The above properties have been shipped for translation.
-# ==============================================================================
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/build.properties b/bundles/org.eclipse.emf.ecp.view.template.controls.swt/build.properties
deleted file mode 100644
index bb8af2b..0000000
--- a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/build.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               about.html,\
-               about.ini,\
-               about.mappings,\
-               about.properties,\
-               modeling32.png
-src.includes = about.html
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/plugin.xml b/bundles/org.eclipse.emf.ecp.view.template.controls.swt/plugin.xml
deleted file mode 100644
index 63a9a96..0000000
--- a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/plugin.xml
+++ /dev/null
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         point="org.eclipse.emf.ecp.edit.controls">
-      <control
-            class="org.eclipse.emf.ecp.view.template.controls.swt.TemplateColorControl"
-            id="org.eclipse.emf.ecp.view.template.controls.swt.color">
-         <staticTest
-               priority="3"
-               singleValue="true"
-               supportedClassType="java.lang.String"
-               supportedEObject="org.eclipse.emf.ecp.view.template.model.VTControlValidationTemplate"
-               supportedFeature="okColorHEX">
-         </staticTest>
-         <staticTest
-               priority="3"
-               singleValue="true"
-               supportedClassType="java.lang.String"
-               supportedEObject="org.eclipse.emf.ecp.view.template.model.VTControlValidationTemplate"
-               supportedFeature="infoColorHEX">
-         </staticTest>
-         <staticTest
-               priority="3"
-               singleValue="true"
-               supportedClassType="java.lang.String"
-               supportedEObject="org.eclipse.emf.ecp.view.template.model.VTControlValidationTemplate"
-               supportedFeature="warningColorHEX">
-         </staticTest>
-         <staticTest
-               priority="3"
-               singleValue="true"
-               supportedClassType="java.lang.String"
-               supportedEObject="org.eclipse.emf.ecp.view.template.model.VTControlValidationTemplate"
-               supportedFeature="errorColorHEX">
-         </staticTest>
-         <staticTest
-               priority="3"
-               singleValue="true"
-               supportedClassType="java.lang.String"
-               supportedEObject="org.eclipse.emf.ecp.view.template.model.VTControlValidationTemplate"
-               supportedFeature="cancelColorHEX">
-         </staticTest>
-      </control>
-      <control
-            class="org.eclipse.emf.ecp.view.template.controls.swt.TemplateIconControl"
-            id="org.eclipse.emf.ecp.view.template.controls.swt.icon">
-         <staticTest
-               priority="3"
-               singleValue="true"
-               supportedClassType="java.lang.String"
-               supportedEObject="org.eclipse.emf.ecp.view.template.model.VTControlValidationTemplate"
-               supportedFeature="okImageURL">
-         </staticTest>
-         <staticTest
-               priority="3"
-               singleValue="true"
-               supportedClassType="java.lang.String"
-               supportedEObject="org.eclipse.emf.ecp.view.template.model.VTControlValidationTemplate"
-               supportedFeature="infoImageURL">
-         </staticTest>
-         <staticTest
-               priority="3"
-               singleValue="true"
-               supportedClassType="java.lang.String"
-               supportedEObject="org.eclipse.emf.ecp.view.template.model.VTControlValidationTemplate"
-               supportedFeature="warningImageURL">
-         </staticTest>
-         <staticTest
-               priority="3"
-               singleValue="true"
-               supportedClassType="java.lang.String"
-               supportedEObject="org.eclipse.emf.ecp.view.template.model.VTControlValidationTemplate"
-               supportedFeature="errorImageURL">
-         </staticTest>
-         <staticTest
-               priority="3"
-               singleValue="true"
-               supportedClassType="java.lang.String"
-               supportedEObject="org.eclipse.emf.ecp.view.template.model.VTControlValidationTemplate"
-               supportedFeature="cancelImageURL">
-         </staticTest>
-      </control>
-   </extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/pom.xml b/bundles/org.eclipse.emf.ecp.view.template.controls.swt/pom.xml
deleted file mode 100644
index 56d20f0..0000000
--- a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/pom.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?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.5.1-SNAPSHOT</version>

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

-  </parent>

-

-  <artifactId>org.eclipse.emf.ecp.view.template.controls.swt</artifactId>

-  <packaging>eclipse-plugin</packaging>

-  <version>1.5.1-SNAPSHOT</version>

-

-</project>

diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/src/org/eclipse/emf/ecp/view/template/controls/swt/Activator.java b/bundles/org.eclipse.emf.ecp.view.template.controls.swt/src/org/eclipse/emf/ecp/view/template/controls/swt/Activator.java
deleted file mode 100644
index 4c5495e..0000000
--- a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/src/org/eclipse/emf/ecp/view/template/controls/swt/Activator.java
+++ /dev/null
@@ -1,56 +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 v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- * EclipseSource Munich - initial API and implementation

- */

-package org.eclipse.emf.ecp.view.template.controls.swt;

-

-import org.osgi.framework.BundleActivator;

-import org.osgi.framework.BundleContext;

-

-/**

- * The Activator.

- *

- * @author Eugen Neufeld

- *

- */

-public class Activator implements BundleActivator {

-

-	private static BundleContext context;

-

-	/**

-	 * The BundleContext.

-	 *

-	 * @return The {@link BundleContext}

-	 */

-	static BundleContext getContext() {

-		return context;

-	}

-

-	/**

-	 * {@inheritDoc}

-	 *

-	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)

-	 */

-	@Override

-	public void start(BundleContext bundleContext) throws Exception {

-		Activator.context = bundleContext;

-	}

-

-	/**

-	 * {@inheritDoc}

-	 *

-	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)

-	 */

-	@Override

-	public void stop(BundleContext bundleContext) throws Exception {

-		Activator.context = null;

-	}

-

-}

diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/src/org/eclipse/emf/ecp/view/template/controls/swt/Messages.java b/bundles/org.eclipse.emf.ecp.view.template.controls.swt/src/org/eclipse/emf/ecp/view/template/controls/swt/Messages.java
deleted file mode 100644
index 49ef430..0000000
--- a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/src/org/eclipse/emf/ecp/view/template/controls/swt/Messages.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Jonas - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.template.controls.swt;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * @author Jonas
- * @generated
- *
- */
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.emf.ecp.view.template.controls.swt.messages"; //$NON-NLS-1$
-	public static String TemplateColorControl_NoColorSet;
-	public static String TemplateColorControl_PressToSelectColor;
-	public static String TemplateColorControl_SelectColor;
-	public static String TemplateColorControl_UnsetColor;
-	public static String TemplateIconControl_ExternalFile;
-	public static String TemplateIconControl_NoIconSet;
-	public static String TemplateIconControl_PluginFile;
-	public static String TemplateIconControl_UnsetIcon;
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	private Messages() {
-	}
-}
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/src/org/eclipse/emf/ecp/view/template/controls/swt/TemplateColorControl.java b/bundles/org.eclipse.emf.ecp.view.template.controls.swt/src/org/eclipse/emf/ecp/view/template/controls/swt/TemplateColorControl.java
deleted file mode 100644
index e309f87..0000000
--- a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/src/org/eclipse/emf/ecp/view/template/controls/swt/TemplateColorControl.java
+++ /dev/null
@@ -1,159 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.view.template.controls.swt;
-
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-import org.eclipse.core.databinding.UpdateValueStrategy;
-import org.eclipse.emf.ecp.edit.internal.swt.controls.AbstractTextControl;
-import org.eclipse.jface.databinding.swt.ISWTObservableValue;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.ColorDialog;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-
-/**
- * Control for selecting a color.
- *
- * @author Eugen Neufeld
- *
- */
-@SuppressWarnings({ "restriction", "deprecation" })
-public class TemplateColorControl extends AbstractTextControl {
-
-	private final Map<String, Color> colors = new LinkedHashMap<String, Color>();
-
-	@Override
-	protected void fillControlComposite(final Composite composite) {
-		final Composite main = new Composite(composite, SWT.NONE);
-		GridLayoutFactory.fillDefaults().numColumns(3).applyTo(main);
-		GridDataFactory.fillDefaults().grab(true, false).align(SWT.FILL, SWT.BEGINNING).applyTo(main);
-		super.fillControlComposite(main);
-
-		final Label color = new Label(main, SWT.BORDER);
-		GridDataFactory.fillDefaults().grab(true, false).align(SWT.FILL, SWT.FILL).applyTo(color);
-		color.setText(Messages.TemplateColorControl_SelectColor);
-		color.addMouseListener(new MouseListener() {
-
-			@Override
-			public void mouseUp(MouseEvent e) {
-				final ColorDialog cd = new ColorDialog(composite.getShell());
-				cd.setText(Messages.TemplateColorControl_SelectColor);
-				cd.setRGB(colors.get(getDomainModelReference().getIterator().next()).getRGB());
-				final RGB rgb = cd.open();
-				if (rgb == null) {
-					return;
-				}
-
-				final String red = Integer.toHexString(0x100 | rgb.red).substring(1);
-				final String green = Integer.toHexString(0x100 | rgb.green).substring(1);
-				final String blue = Integer.toHexString(0x100 | rgb.blue).substring(1);
-				final String result = red + green + blue;
-				getDomainModelReference().getIterator().next().set(result);
-			}
-
-			@Override
-			public void mouseDown(MouseEvent e) {
-				// Do nothing
-			}
-
-			@Override
-			public void mouseDoubleClick(MouseEvent e) {
-				// Do nothing
-			}
-		});
-		final ISWTObservableValue observeBackground = SWTObservables.observeBackground(color);
-		getDataBindingContext().bindValue(observeBackground, getModelValue(), new UpdateValueStrategy() {
-			// targetToModel
-			/**
-			 * {@inheritDoc}
-			 *
-			 * @see org.eclipse.core.databinding.UpdateValueStrategy#convert(java.lang.Object)
-			 */
-			@Override
-			public Object convert(Object value) {
-				if (value == null) {
-					return ""; //$NON-NLS-1$
-				}
-				final Color color = (Color) value;
-				final String red = Integer.toHexString(0x100 | color.getRed()).substring(1);
-				final String green = Integer.toHexString(0x100 | color.getGreen()).substring(1);
-				final String blue = Integer.toHexString(0x100 | color.getBlue()).substring(1);
-				return red + green + blue;
-			}
-
-		}, new UpdateValueStrategy() {
-			// ModelToTarget
-			/**
-			 * {@inheritDoc}
-			 *
-			 * @see org.eclipse.core.databinding.UpdateValueStrategy#convert(java.lang.Object)
-			 */
-			@Override
-			public Object convert(Object value) {
-				if (value == null) {
-					return null;
-				}
-				final String colorHex = (String) value;
-				if (!colors.containsKey(value)) {
-					final String redString = colorHex.substring(0, 2);
-					final String greenString = colorHex.substring(2, 4);
-					final String blueString = colorHex.substring(4, 6);
-					final int red = Integer.parseInt(redString, 16);
-					final int green = Integer.parseInt(greenString, 16);
-					final int blue = Integer.parseInt(blueString, 16);
-					colors.put(colorHex, new Color(Display.getDefault(), red, green, blue));
-				}
-				return colors.get(colorHex);
-			}
-		});
-		color.setToolTipText(Messages.TemplateColorControl_PressToSelectColor);
-	}
-
-	@Override
-	protected String getTextVariantID() {
-		return "org_eclipse_emf_ecp_view_template_control_color"; //$NON-NLS-1$
-	}
-
-	@Override
-	protected String getUnsetLabelText() {
-		return Messages.TemplateColorControl_NoColorSet;
-	}
-
-	@Override
-	protected String getUnsetButtonTooltip() {
-		return Messages.TemplateColorControl_UnsetColor;
-	}
-
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.edit.internal.swt.controls.AbstractTextControl#dispose()
-	 */
-	@Override
-	public void dispose() {
-		for (final Color color : colors.values()) {
-			color.dispose();
-		}
-		super.dispose();
-	}
-
-}
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/src/org/eclipse/emf/ecp/view/template/controls/swt/TemplateIconControl.java b/bundles/org.eclipse.emf.ecp.view.template.controls.swt/src/org/eclipse/emf/ecp/view/template/controls/swt/TemplateIconControl.java
deleted file mode 100644
index 4a9e9dc..0000000
--- a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/src/org/eclipse/emf/ecp/view/template/controls/swt/TemplateIconControl.java
+++ /dev/null
@@ -1,236 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.view.template.controls.swt;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.util.Enumeration;
-import java.util.LinkedHashSet;
-import java.util.Set;
-
-import org.eclipse.emf.ecp.edit.internal.swt.controls.AbstractTextControl;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.ui.dialogs.ElementTreeSelectionDialog;
-import org.osgi.framework.Bundle;
-
-/**
- * Control for setting the url of an icon.
- *
- * @author Eugen Neufeld
- *
- */
-@SuppressWarnings("restriction")
-public class TemplateIconControl extends AbstractTextControl {
-
-	@Override
-	protected void fillControlComposite(final Composite composite) {
-		final Composite main = new Composite(composite, SWT.NONE);
-		GridLayoutFactory.fillDefaults().numColumns(3).applyTo(main);
-		GridDataFactory.fillDefaults().grab(true, false).align(SWT.FILL, SWT.BEGINNING).applyTo(main);
-		super.fillControlComposite(main);
-
-		final Button selectExternalFile = new Button(main, SWT.PUSH);
-		selectExternalFile.setText(Messages.TemplateIconControl_ExternalFile);
-
-		selectExternalFile.addSelectionListener(new SelectionAdapter() {
-
-			@Override
-			public void widgetSelected(SelectionEvent e) {
-				final FileDialog fd = new FileDialog(composite.getShell(), SWT.OPEN);
-				final String filePath = fd.open();
-				if (filePath == null) {
-					return;
-				}
-				try {
-					final String url = new File(filePath).toURL().toExternalForm();
-					getDomainModelReference().getIterator().next().set(url);
-				} catch (final MalformedURLException ex) {
-
-				}
-			}
-
-		});
-		final Button selectFileFromPlugin = new Button(main, SWT.PUSH);
-		selectFileFromPlugin.setText(Messages.TemplateIconControl_PluginFile);
-
-		selectFileFromPlugin.addSelectionListener(new SelectFileFromPluginAdapter(composite));
-	}
-
-	@Override
-	protected String getTextVariantID() {
-		return "org_eclipse_emf_ecp_view_template_control_icon"; //$NON-NLS-1$
-	}
-
-	@Override
-	protected String getUnsetLabelText() {
-		return Messages.TemplateIconControl_NoIconSet;
-	}
-
-	@Override
-	protected String getUnsetButtonTooltip() {
-		return Messages.TemplateIconControl_UnsetIcon;
-	}
-
-	/**
-	 * @author Jonas
-	 *
-	 */
-	private final class SelectFileFromPluginAdapter extends SelectionAdapter {
-		private final Composite composite;
-
-		/**
-		 * @param composite
-		 */
-		private SelectFileFromPluginAdapter(Composite composite) {
-			this.composite = composite;
-		}
-
-		@Override
-		public void widgetSelected(SelectionEvent e) {
-			final IconTreeContentProvider iconTreeContentProvider = new IconTreeContentProvider();
-			final ElementTreeSelectionDialog etsd = new ElementTreeSelectionDialog(composite.getShell(),
-				new LabelProvider() {
-
-					/**
-					 * {@inheritDoc}
-					 *
-					 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
-					 */
-					@Override
-					public String getText(Object element) {
-						if (Bundle.class.isInstance(element)) {
-							return ((Bundle) element).getSymbolicName();
-						}
-						return super.getText(element);
-					}
-
-				}, iconTreeContentProvider);
-
-			etsd.setInput(Activator.getContext().getBundles());
-			final int result = etsd.open();
-			if (Window.OK != result) {
-				return;
-			}
-			final Object selectedResult = etsd.getFirstResult();
-			if (!String.class.isInstance(selectedResult)) {
-				return;
-			}
-			final String file = (String) selectedResult;
-			if (file.endsWith("png") || file.endsWith("gif") || file.endsWith("jpg")) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				getDomainModelReference()
-					.getIterator()
-					.next()
-					.set(
-						"platform:/plugin/" + iconTreeContentProvider.getLastBundle().getSymbolicName() + "/" //$NON-NLS-1$ //$NON-NLS-2$
-							+ file);
-			}
-		}
-	}
-
-	/**
-	 * The tree content provider for selecting the icon url.
-	 *
-	 * @author Eugen Neufeld
-	 *
-	 */
-	private class IconTreeContentProvider implements ITreeContentProvider {
-
-		private Bundle lastBundle;
-
-		@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 (element.getClass().isArray()) {
-				final Object[] array = (Object[]) element;
-				return array.length > 0;
-			}
-			if (Bundle.class.isInstance(element)) {
-				final Bundle bundle = (Bundle) element;
-				return bundle.getEntryPaths("/").hasMoreElements(); //$NON-NLS-1$
-			}
-			if (String.class.isInstance(element) && lastBundle != null) {
-				if (!((String) element).endsWith("/")) { //$NON-NLS-1$
-					return false;
-				}
-				return lastBundle.getEntryPaths((String) element).hasMoreElements();
-			}
-			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 (parentElement.getClass().isArray()) {
-				return (Object[]) parentElement;
-			}
-			if (Bundle.class.isInstance(parentElement)) {
-				lastBundle = (Bundle) parentElement;
-				final Set<String> result = new LinkedHashSet<String>();
-				final Enumeration<String> resources = lastBundle.getEntryPaths("/"); //$NON-NLS-1$
-				while (resources.hasMoreElements()) {
-					result.add(resources.nextElement());
-				}
-
-				return result.toArray();
-			}
-			if (String.class.isInstance(parentElement) && lastBundle != null) {
-				final Set<String> result = new LinkedHashSet<String>();
-				final Enumeration<String> resources = lastBundle.getEntryPaths((String) parentElement);
-				while (resources.hasMoreElements()) {
-					result.add(resources.nextElement());
-				}
-
-				return result.toArray();
-			}
-			return null;
-		}
-
-		/**
-		 * @return the lastBundle
-		 */
-		public Bundle getLastBundle() {
-			return lastBundle;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/src/org/eclipse/emf/ecp/view/template/controls/swt/messages.properties b/bundles/org.eclipse.emf.ecp.view.template.controls.swt/src/org/eclipse/emf/ecp/view/template/controls/swt/messages.properties
deleted file mode 100644
index b86deae..0000000
--- a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/src/org/eclipse/emf/ecp/view/template/controls/swt/messages.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-TemplateColorControl_NoColorSet=No Color set
-TemplateColorControl_PressToSelectColor=Press to select the color
-TemplateColorControl_SelectColor=Select Color
-TemplateColorControl_UnsetColor=Unset Color
-TemplateIconControl_ExternalFile=External File
-TemplateIconControl_NoIconSet=No Icon URL set
-TemplateIconControl_PluginFile=Plugin File
-TemplateIconControl_UnsetIcon=Unset Icon URL
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model.edit/.gitignore b/bundles/org.eclipse.emf.ecp.view.template.model.edit/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.template.model.edit/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model.edit/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.template.model.edit/.settings/.api_filters
index f97ecde..6bd7fbf 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model.edit/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.template.model.edit/.settings/.api_filters
@@ -1,10 +1,34 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.emf.ecp.view.template.model.edit" version="2">
     <resource path="META-INF/MANIFEST.MF">
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model.edit"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.template.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.template.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.template.model.edit_1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
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 52c87f0..af43ed7 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,26 +2,22 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.template.model.edit;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.template.model.provider.TemplateEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.ecp.view.template.model.provider;versi
- on="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.template.selecto
- r.domainmodelreference.model.provider;version="1.5.1";x-internal:=tru
- e,org.eclipse.emf.ecp.view.template.selector.viewModelElement.model.p
- rovider;version="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.tem
- plate.style.alignment.model.provider;version="1.5.1";x-internal:=true
- ,org.eclipse.emf.ecp.view.template.style.fontProperties.model.provide
- r;version="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.template.
- style.mandatory.model.provider;version="1.5.1";x-internal:=true,org.e
- clipse.emf.ecp.view.template.style.tableValidation.model.provider;ver
- sion="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.template.style
- .textControlEnablement.model.provider;version="1.5.1";x-internal:=tru
- e,org.eclipse.emf.ecp.view.template.style.validation.model.provider;v
- ersion="1.5.1";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.template.model.provider;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model.provider;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.selector.viewModelElement.model.provider;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.alignment.model.provider;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.background.model.provider;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.fontProperties.model.provider;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.mandatory.model.provider;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.tableValidation.model.provider;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.textControlEnablement.model.provider;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.validation.model.provider;version="1.6.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.5.0,2.0.0)";visibility:=reexport,
  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model.edit/icons/full/ctool16/CreateStyle_properties_BackgroundStyleProperty.gif b/bundles/org.eclipse.emf.ecp.view.template.model.edit/icons/full/ctool16/CreateStyle_properties_BackgroundStyleProperty.gif
new file mode 100644
index 0000000..30f3614
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.template.model.edit/icons/full/ctool16/CreateStyle_properties_BackgroundStyleProperty.gif
Binary files differ
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model.edit/icons/full/obj16/BackgroundStyleProperty.gif b/bundles/org.eclipse.emf.ecp.view.template.model.edit/icons/full/obj16/BackgroundStyleProperty.gif
new file mode 100644
index 0000000..522d80c
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.template.model.edit/icons/full/obj16/BackgroundStyleProperty.gif
Binary files differ
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model.edit/plugin.properties b/bundles/org.eclipse.emf.ecp.view.template.model.edit/plugin.properties
index 3d17b49..ea415dd 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model.edit/plugin.properties
+++ b/bundles/org.eclipse.emf.ecp.view.template.model.edit/plugin.properties
@@ -194,3 +194,5 @@
 _UI_MandatoryStyleProperty_mandatoryMarker_feature = Mandatory Marker
 _UI_TextControlEnablementStyleProperty_type = Style Property
 _UI_TextControlEnablementStyleProperty_RenderDisableAsEditable_feature = Render Disable As Editable
+_UI_BackgroundStyleProperty_type = Background Style Property
+_UI_BackgroundStyleProperty_color_feature = Color
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model.edit/plugin.xml b/bundles/org.eclipse.emf.ecp.view.template.model.edit/plugin.xml
index d2ce964..a82b055 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model.edit/plugin.xml
+++ b/bundles/org.eclipse.emf.ecp.view.template.model.edit/plugin.xml
@@ -185,4 +185,23 @@
             uri="http://org/eclipse/emf/ecp/view/template/model"
             class="org.eclipse.emf.ecp.view.template.style.textControlEnablement.model.provider.TextControlEnablementItemProviderAdapterFactory$TemplateChildCreationExtender"/>
    </extension>
+   <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+      <!-- @generated backgroundStyle -->
+      <factory
+            uri="http://www.eclipse.org/emf/ecp/view/template/style/background/model"
+            class="org.eclipse.emf.ecp.view.template.style.background.model.provider.BackgroundItemProviderAdapterFactory"
+            supportedTypes=
+              "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+               org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+               org.eclipse.emf.edit.provider.ITreeItemContentProvider
+               org.eclipse.emf.edit.provider.IItemLabelProvider
+               org.eclipse.emf.edit.provider.IItemPropertySource"/>
+   </extension>
+
+   <extension point="org.eclipse.emf.edit.childCreationExtenders">
+      <!-- @generated backgroundStyle -->
+      <extender
+            uri="http://org/eclipse/emf/ecp/view/template/model"
+            class="org.eclipse.emf.ecp.view.template.style.background.model.provider.BackgroundItemProviderAdapterFactory$TemplateChildCreationExtender"/>
+   </extension>
 </plugin>
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 1231251..24ea559 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.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.0-SNAPSHOT</version>

 

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.template.model.edit/src/org/eclipse/emf/ecp/view/template/style/background/model/provider/BackgroundEditPlugin.java b/bundles/org.eclipse.emf.ecp.view.template.model.edit/src/org/eclipse/emf/ecp/view/template/style/background/model/provider/BackgroundEditPlugin.java
new file mode 100644
index 0000000..bbb03f9
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.template.model.edit/src/org/eclipse/emf/ecp/view/template/style/background/model/provider/BackgroundEditPlugin.java
@@ -0,0 +1,113 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource Munich - initial API and implementation
+ */
+package org.eclipse.emf.ecp.view.template.style.background.model.provider;
+
+import org.eclipse.emf.common.EMFPlugin;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecp.view.template.model.provider.TemplateEditPlugin;
+
+/**
+ * This is the central singleton for the Background edit plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public final class BackgroundEditPlugin extends EMFPlugin
+{
+	/**
+	 * Keep track of the singleton.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public static final BackgroundEditPlugin INSTANCE = new BackgroundEditPlugin();
+
+	/**
+	 * Keep track of the singleton.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private static Implementation plugin;
+
+	/**
+	 * Create the instance.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public BackgroundEditPlugin()
+	{
+		super(new ResourceLocator[]
+		{
+			TemplateEditPlugin.INSTANCE,
+		});
+	}
+
+	/**
+	 * Returns the singleton instance of the Eclipse plugin.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the singleton instance.
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getPluginResourceLocator()
+	{
+		return plugin;
+	}
+
+	/**
+	 * Returns the singleton instance of the Eclipse plugin.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the singleton instance.
+	 * @generated
+	 */
+	public static Implementation getPlugin()
+	{
+		return plugin;
+	}
+
+	/**
+	 * The actual implementation of the Eclipse <b>Plugin</b>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public static class Implementation extends EclipsePlugin
+	{
+		/**
+		 * Creates an instance.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		public Implementation()
+		{
+			super();
+
+			// Remember the static instance.
+			//
+			plugin = this;
+		}
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model.edit/src/org/eclipse/emf/ecp/view/template/style/background/model/provider/BackgroundItemProviderAdapterFactory.java b/bundles/org.eclipse.emf.ecp.view.template.model.edit/src/org/eclipse/emf/ecp/view/template/style/background/model/provider/BackgroundItemProviderAdapterFactory.java
new file mode 100644
index 0000000..10f754c
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.template.model.edit/src/org/eclipse/emf/ecp/view/template/style/background/model/provider/BackgroundItemProviderAdapterFactory.java
@@ -0,0 +1,413 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource Munich - initial API and implementation
+ */
+package org.eclipse.emf.ecp.view.template.style.background.model.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.template.model.VTStyle;
+import org.eclipse.emf.ecp.view.template.model.VTTemplatePackage;
+import org.eclipse.emf.ecp.view.template.model.util.TemplateSwitch;
+import org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundFactory;
+import org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundPackage;
+import org.eclipse.emf.ecp.view.template.style.background.model.util.BackgroundAdapterFactory;
+import org.eclipse.emf.edit.command.CommandParameter;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ChildCreationExtenderManager;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged
+ * fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class BackgroundItemProviderAdapterFactory extends BackgroundAdapterFactory implements
+	ComposeableAdapterFactory, IChangeNotifier, IDisposable, IChildCreationExtender
+{
+	/**
+	 * This keeps track of the root adapter factory that delegates to this adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected ComposedAdapterFactory parentAdapterFactory;
+
+	/**
+	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+	/**
+	 * This helps manage the child creation extenders.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected ChildCreationExtenderManager childCreationExtenderManager = new ChildCreationExtenderManager(
+		BackgroundEditPlugin.INSTANCE, VTBackgroundPackage.eNS_URI);
+
+	/**
+	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected Collection<Object> supportedTypes = new ArrayList<Object>();
+
+	/**
+	 * This constructs an instance.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public BackgroundItemProviderAdapterFactory()
+	{
+		supportedTypes.add(IEditingDomainItemProvider.class);
+		supportedTypes.add(IStructuredItemContentProvider.class);
+		supportedTypes.add(ITreeItemContentProvider.class);
+		supportedTypes.add(IItemLabelProvider.class);
+		supportedTypes.add(IItemPropertySource.class);
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all
+	 * {@link org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundStyleProperty} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected BackgroundStylePropertyItemProvider backgroundStylePropertyItemProvider;
+
+	/**
+	 * This creates an adapter for a
+	 * {@link org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundStyleProperty}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Adapter createBackgroundStylePropertyAdapter()
+	{
+		if (backgroundStylePropertyItemProvider == null)
+		{
+			backgroundStylePropertyItemProvider = new BackgroundStylePropertyItemProvider(this);
+		}
+
+		return backgroundStylePropertyItemProvider;
+	}
+
+	/**
+	 * This returns the root adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public ComposeableAdapterFactory getRootAdapterFactory()
+	{
+		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+	}
+
+	/**
+	 * This sets the composed adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory)
+	{
+		this.parentAdapterFactory = parentAdapterFactory;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object type)
+	{
+		return supportedTypes.contains(type) || super.isFactoryForType(type);
+	}
+
+	/**
+	 * This implementation substitutes the factory itself as the key for the adapter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Adapter adapt(Notifier notifier, Object type)
+	{
+		return super.adapt(notifier, this);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object adapt(Object object, Object type)
+	{
+		if (isFactoryForType(type))
+		{
+			final Object adapter = super.adapt(object, type);
+			if (!(type instanceof Class<?>) || ((Class<?>) type).isInstance(adapter))
+			{
+				return adapter;
+			}
+		}
+
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public List<IChildCreationExtender> getChildCreationExtenders()
+	{
+		return childCreationExtenderManager.getChildCreationExtenders();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Collection<?> getNewChildDescriptors(Object object, EditingDomain editingDomain)
+	{
+		return childCreationExtenderManager.getNewChildDescriptors(object, editingDomain);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator()
+	{
+		return childCreationExtenderManager;
+	}
+
+	/**
+	 * This adds a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void addListener(INotifyChangedListener notifyChangedListener)
+	{
+		changeNotifier.addListener(notifyChangedListener);
+	}
+
+	/**
+	 * This removes a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void removeListener(INotifyChangedListener notifyChangedListener)
+	{
+		changeNotifier.removeListener(notifyChangedListener);
+	}
+
+	/**
+	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void fireNotifyChanged(Notification notification)
+	{
+		changeNotifier.fireNotifyChanged(notification);
+
+		if (parentAdapterFactory != null)
+		{
+			parentAdapterFactory.fireNotifyChanged(notification);
+		}
+	}
+
+	/**
+	 * This disposes all of the item providers created by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void dispose()
+	{
+		if (backgroundStylePropertyItemProvider != null) {
+			backgroundStylePropertyItemProvider.dispose();
+		}
+	}
+
+	/**
+	 * A child creation extender for the {@link VTTemplatePackage}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public static class TemplateChildCreationExtender implements IChildCreationExtender
+	{
+		/**
+		 * The switch for creating child descriptors specific to each extended class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		protected static class CreationSwitch extends TemplateSwitch<Object>
+		{
+			/**
+			 * The child descriptors being populated.
+			 * <!-- begin-user-doc -->
+			 * <!-- end-user-doc -->
+			 *
+			 * @generated
+			 */
+			protected List<Object> newChildDescriptors;
+
+			/**
+			 * The domain in which to create the children.
+			 * <!-- begin-user-doc -->
+			 * <!-- end-user-doc -->
+			 *
+			 * @generated
+			 */
+			protected EditingDomain editingDomain;
+
+			/**
+			 * Creates the a switch for populating child descriptors in the given domain.
+			 * <!-- begin-user-doc -->
+			 * <!-- end-user-doc -->
+			 *
+			 * @generated
+			 */
+			CreationSwitch(List<Object> newChildDescriptors, EditingDomain editingDomain)
+			{
+				this.newChildDescriptors = newChildDescriptors;
+				this.editingDomain = editingDomain;
+			}
+
+			/**
+			 * <!-- begin-user-doc -->
+			 * <!-- end-user-doc -->
+			 *
+			 * @generated
+			 */
+			@Override
+			public Object caseStyle(VTStyle object)
+			{
+				newChildDescriptors.add
+					(createChildParameter
+					(VTTemplatePackage.Literals.STYLE__PROPERTIES,
+						VTBackgroundFactory.eINSTANCE.createBackgroundStyleProperty()));
+
+				return null;
+			}
+
+			/**
+			 * <!-- begin-user-doc -->
+			 * <!-- end-user-doc -->
+			 *
+			 * @generated
+			 */
+			protected CommandParameter createChildParameter(Object feature, Object child)
+			{
+				return new CommandParameter(null, feature, child);
+			}
+
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		@Override
+		public Collection<Object> getNewChildDescriptors(Object object, EditingDomain editingDomain)
+		{
+			final ArrayList<Object> result = new ArrayList<Object>();
+			new CreationSwitch(result, editingDomain).doSwitch((EObject) object);
+			return result;
+		}
+
+		/**
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		@Override
+		public ResourceLocator getResourceLocator()
+		{
+			return BackgroundEditPlugin.INSTANCE;
+		}
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model.edit/src/org/eclipse/emf/ecp/view/template/style/background/model/provider/BackgroundStylePropertyItemProvider.java b/bundles/org.eclipse.emf.ecp.view.template.model.edit/src/org/eclipse/emf/ecp/view/template/style/background/model/provider/BackgroundStylePropertyItemProvider.java
new file mode 100644
index 0000000..aeaae27
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.template.model.edit/src/org/eclipse/emf/ecp/view/template/style/background/model/provider/BackgroundStylePropertyItemProvider.java
@@ -0,0 +1,186 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource Munich - initial API and implementation
+ */
+package org.eclipse.emf.ecp.view.template.style.background.model.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundPackage;
+import org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundStyleProperty;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+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.template.style.background.model.VTBackgroundStyleProperty} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class BackgroundStylePropertyItemProvider
+	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 BackgroundStylePropertyItemProvider(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);
+
+			addColorPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Color feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected void addColorPropertyDescriptor(Object object)
+	{
+		itemPropertyDescriptors
+			.add
+			(createItemPropertyDescriptor
+			(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+				getResourceLocator(),
+				getString("_UI_BackgroundStyleProperty_color_feature"), //$NON-NLS-1$
+				getString(
+					"_UI_PropertyDescriptor_description", "_UI_BackgroundStyleProperty_color_feature", "_UI_BackgroundStyleProperty_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				VTBackgroundPackage.Literals.BACKGROUND_STYLE_PROPERTY__COLOR,
+				true,
+				false,
+				false,
+				ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				null,
+				null));
+	}
+
+	/**
+	 * This returns BackgroundStyleProperty.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object)
+	{
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/BackgroundStyleProperty")); //$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 String label = ((VTBackgroundStyleProperty) object).getColor();
+		return label == null || label.length() == 0 ?
+			getString("_UI_BackgroundStyleProperty_type") : //$NON-NLS-1$
+			getString("_UI_BackgroundStyleProperty_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(VTBackgroundStyleProperty.class))
+		{
+		case VTBackgroundPackage.BACKGROUND_STYLE_PROPERTY__COLOR:
+			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 ((IChildCreationExtender) adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/.gitignore b/bundles/org.eclipse.emf.ecp.view.template.model/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/.gitignore
@@ -0,0 +1 @@
+/bin/
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 08c975a..1f2156e 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
@@ -1,10 +1,34 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.emf.ecp.view.template.model" version="2">
     <resource path="META-INF/MANIFEST.MF">
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.template.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.template.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.template.model_1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
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 251853e..029bd04 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,51 +2,47 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.template.model;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.ecp.view.template.model;version="1.5.1
- ",org.eclipse.emf.ecp.view.template.model.impl;version="1.5.1";x-inte
- rnal:=true,org.eclipse.emf.ecp.view.template.model.util;version="1.5.
- 1";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",org.ecli
- pse.emf.ecp.view.template.selector.domainmodelreference.model;version
- ="1.5.1",org.eclipse.emf.ecp.view.template.selector.domainmodelrefere
- nce.model.impl;version="1.5.1";x-internal:=true,org.eclipse.emf.ecp.v
- iew.template.selector.domainmodelreference.model.util;version="1.5.1"
- ;x-friends:="org.eclipse.emf.ecp.view.template.model.edit",org.eclips
- e.emf.ecp.view.template.selector.viewModelElement.model;version="1.5.
- 1",org.eclipse.emf.ecp.view.template.selector.viewModelElement.model.
- impl;version="1.5.1",org.eclipse.emf.ecp.view.template.selector.viewM
- odelElement.model.util;version="1.5.1",org.eclipse.emf.ecp.view.templ
- ate.style.alignment.model;version="1.5.1",org.eclipse.emf.ecp.view.te
- mplate.style.alignment.model.impl;version="1.5.1";x-internal:=true,or
- g.eclipse.emf.ecp.view.template.style.alignment.model.util;version="1
- .5.1";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",org.e
- clipse.emf.ecp.view.template.style.fontProperties.model;version="1.5.
- 1",org.eclipse.emf.ecp.view.template.style.fontProperties.model.impl;
- version="1.5.1",org.eclipse.emf.ecp.view.template.style.fontPropertie
- s.model.util;version="1.5.1",org.eclipse.emf.ecp.view.template.style.
- mandatory.model;version="1.5.1",org.eclipse.emf.ecp.view.template.sty
- le.mandatory.model.impl;version="1.5.1";x-internal:=true,org.eclipse.
- emf.ecp.view.template.style.mandatory.model.util;version="1.5.1";x-fr
- iends:="org.eclipse.emf.ecp.view.template.model.edit",org.eclipse.emf
- .ecp.view.template.style.tableValidation.model;version="1.5.1",org.ec
- lipse.emf.ecp.view.template.style.tableValidation.model.impl;version=
- "1.5.1",org.eclipse.emf.ecp.view.template.style.tableValidation.model
- .util;version="1.5.1",org.eclipse.emf.ecp.view.template.style.textCon
- trolEnablement.model;version="1.5.1",org.eclipse.emf.ecp.view.templat
- e.style.textControlEnablement.model.impl;version="1.5.1";x-internal:=
- true,org.eclipse.emf.ecp.view.template.style.textControlEnablement.mo
- del.util;version="1.5.1";x-friends:="org.eclipse.emf.ecp.view.templat
- e.model.edit",org.eclipse.emf.ecp.view.template.style.validation.mode
- l;version="1.5.1",org.eclipse.emf.ecp.view.template.style.validation.
- model.impl;version="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.
- template.style.validation.model.util;version="1.5.1";x-friends:="org.
- eclipse.emf.ecp.view.template.model.edit"
+Export-Package: org.eclipse.emf.ecp.internal.view.template.model;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.model;version="1.6.0",
+ org.eclipse.emf.ecp.view.template.model.impl;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.model.util;version="1.6.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
+ org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model;version="1.6.0",
+ org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model.impl;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model.util;version="1.6.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
+ org.eclipse.emf.ecp.view.template.selector.viewModelElement.model;version="1.6.0",
+ org.eclipse.emf.ecp.view.template.selector.viewModelElement.model.impl;version="1.6.0",
+ org.eclipse.emf.ecp.view.template.selector.viewModelElement.model.util;version="1.6.0",
+ org.eclipse.emf.ecp.view.template.style.alignment.model;version="1.6.0",
+ org.eclipse.emf.ecp.view.template.style.alignment.model.impl;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.alignment.model.util;version="1.6.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
+ org.eclipse.emf.ecp.view.template.style.background.model;version="1.6.0",
+ org.eclipse.emf.ecp.view.template.style.background.model.impl;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.background.model.util;version="1.6.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
+ org.eclipse.emf.ecp.view.template.style.fontProperties.model;version="1.6.0",
+ org.eclipse.emf.ecp.view.template.style.fontProperties.model.impl;version="1.6.0",
+ org.eclipse.emf.ecp.view.template.style.fontProperties.model.util;version="1.6.0",
+ org.eclipse.emf.ecp.view.template.style.mandatory.model;version="1.6.0",
+ org.eclipse.emf.ecp.view.template.style.mandatory.model.impl;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.mandatory.model.util;version="1.6.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
+ org.eclipse.emf.ecp.view.template.style.tableValidation.model;version="1.6.0",
+ org.eclipse.emf.ecp.view.template.style.tableValidation.model.impl;version="1.6.0",
+ org.eclipse.emf.ecp.view.template.style.tableValidation.model.util;version="1.6.0",
+ org.eclipse.emf.ecp.view.template.style.textControlEnablement.model;version="1.6.0",
+ org.eclipse.emf.ecp.view.template.style.textControlEnablement.model.impl;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.textControlEnablement.model.util;version="1.6.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
+ org.eclipse.emf.ecp.view.template.style.validation.model;version="1.6.0",
+ org.eclipse.emf.ecp.view.template.style.validation.model.impl;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.validation.model.util;version="1.6.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
  org.eclipse.emf.ecp.view.model;bundle-version="[1.5.0,2.0.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.context;bundle-version="[1.5.0,2.0.0)"
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.6.0,2.0.0)"
+Bundle-Activator: org.eclipse.emf.ecp.internal.view.template.model.Activator
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/model/backgroundStyle.ecore b/bundles/org.eclipse.emf.ecp.view.template.model/model/backgroundStyle.ecore
new file mode 100644
index 0000000..0472f95
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/model/backgroundStyle.ecore
@@ -0,0 +1,8 @@
+<?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="background" nsURI="http://www.eclipse.org/emf/ecp/view/template/style/background/model"
+    nsPrefix="org.eclipse.emf.ecp.view.template.style.background.model">
+  <eClassifiers xsi:type="ecore:EClass" name="BackgroundStyleProperty" eSuperTypes="template.ecore#//StyleProperty">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="color" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+</ecore:EPackage>
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/model/backgroundStyle.genmodel b/bundles/org.eclipse.emf.ecp.view.template.model/model/backgroundStyle.genmodel
new file mode 100644
index 0000000..0682a86
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/model/backgroundStyle.genmodel
@@ -0,0 +1,20 @@
+<?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-2015 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 Munich - initial API and implementation"
+    modelDirectory="/org.eclipse.emf.ecp.view.template.model/src" modelPluginID="org.eclipse.emf.ecp.view.template.model"
+    modelName="Background" nonNLSMarkers="true" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+    codeFormatting="true" commentFormatting="true" importerID="org.eclipse.emf.importer.ecore"
+    complianceLevel="6.0" copyrightFields="false" usedGenPackages="template.genmodel#//template"
+    interfaceNamePattern="VT{0}" classNamePattern="VT{0}Impl" operationReflection="true"
+    importOrganizing="true">
+  <foreignModel>backgroundStyle.ecore</foreignModel>
+  <genPackages prefix="Background" basePackage="org.eclipse.emf.ecp.view.template.style"
+      disposableProviderFactory="true" interfacePackageSuffix="model" metaDataPackageSuffix="model"
+      classPackageSuffix="model.impl" utilityPackageSuffix="model.util" providerPackageSuffix="model.provider"
+      presentationPackageSuffix="model.presentation" testsPackageSuffix="model.tests"
+      extensibleProviderFactory="true" childCreationExtenders="true" ecorePackage="backgroundStyle.ecore#/">
+    <genClasses ecoreClass="backgroundStyle.ecore#//BackgroundStyleProperty">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute backgroundStyle.ecore#//BackgroundStyleProperty/color"/>
+    </genClasses>
+  </genPackages>
+</genmodel:GenModel>
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/plugin.xml b/bundles/org.eclipse.emf.ecp.view.template.model/plugin.xml
index d541e0e..a052e07 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model/plugin.xml
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/plugin.xml
@@ -89,4 +89,12 @@
             genModel="model/textControlEnablementStyle.genmodel"/>
    </extension>
 
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <!-- @generated backgroundStyle -->
+      <package
+            uri="http://www.eclipse.org/emf/ecp/view/template/style/background/model"
+            class="org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundPackage"
+            genModel="model/backgroundStyle.genmodel"/>
+   </extension>
+
 </plugin>
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 a7bf856..6d1a43d 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.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.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
new file mode 100644
index 0000000..8d3a892
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/internal/view/template/model/Activator.java
@@ -0,0 +1,108 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.internal.view.template.model;
+
+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.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * The Class Activator.
+ *
+ * @author Lucas Koehler
+ * @since 1.6
+ */
+public class Activator extends Plugin {
+
+	/**
+	 * The constant holding the id of this plugin.
+	 */
+	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
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.core.runtime.Plugin#start(org.osgi.framework.BundleContext)
+	 */
+	@Override
+	public void start(BundleContext bundleContext) throws Exception {
+		super.start(bundleContext);
+		plugin = this;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
+	 */
+	@Override
+	public void stop(BundleContext bundleContext) throws Exception {
+		plugin = null;
+		super.stop(bundleContext);
+	}
+
+	// END SUPRESS CATCH EXCEPTION
+	/**
+	 * Returns the instance of this Activator.
+	 *
+	 * @return the saved instance
+	 */
+	public static Activator getDefault() {
+		return plugin;
+	}
+
+	/**
+	 * Logs a {@link Throwable}.
+	 *
+	 * @param t the {@link Throwable} to log
+	 */
+	public static void log(Throwable t) {
+		getDefault().getLog().log(new Status(IStatus.ERROR, PLUGIN_ID, t.getMessage(), t));
+	}
+
+	/**
+	 * Returns the {@link ReportService}.
+	 *
+	 * @return the {@link ReportService}
+	 */
+	public ReportService getReportService() {
+		if (reportServiceReference == null) {
+			reportServiceReference = plugin.getBundle().getBundleContext()
+				.getServiceReference(ReportService.class);
+		}
+		return plugin.getBundle().getBundleContext().getService(reportServiceReference);
+	}
+
+	/**
+	 * Returns the {@link EMFFormsDatabinding} service.
+	 *
+	 * @return The {@link EMFFormsDatabinding}
+	 */
+	public EMFFormsDatabinding getEMFFormsDatabinding() {
+		final ServiceReference<EMFFormsDatabinding> serviceReference = plugin.getBundle().getBundleContext()
+			.getServiceReference(EMFFormsDatabinding.class);
+
+		final EMFFormsDatabinding service = plugin.getBundle().getBundleContext()
+			.getService(serviceReference);
+		plugin.getBundle().getBundleContext().ungetService(serviceReference);
+
+		return service;
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/selector/domainmodelreference/model/impl/VTDomainModelReferenceSelectorImpl.java b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/selector/domainmodelreference/model/impl/VTDomainModelReferenceSelectorImpl.java
index 1afe951..e0754c6 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/selector/domainmodelreference/model/impl/VTDomainModelReferenceSelectorImpl.java
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/selector/domainmodelreference/model/impl/VTDomainModelReferenceSelectorImpl.java
@@ -11,22 +11,26 @@
  */
 package org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model.impl;
 
-import java.util.Iterator;
-
+import org.eclipse.core.databinding.observable.IObserving;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
 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.EStructuralFeature.Setting;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
 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.common.spi.UniqueSetting;
+import org.eclipse.emf.ecp.internal.view.template.model.Activator;
 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.template.selector.domainmodelreference.model.VTDomainModelReferenceSelector;
 import org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model.VTDomainmodelreferencePackage;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 
 /**
  * <!-- begin-user-doc -->
@@ -251,26 +255,29 @@
 		if (controlDomainModelReference == null) {
 			return NOT_APPLICABLE;
 		}
-		final boolean resolve = getDomainModelReference().init(viewModelContext.getDomainModel());
-		if (!resolve) {
+
+		IObservableValue controlObservableValue;
+		IObservableValue selectorObservableValue;
+		try {
+			controlObservableValue = Activator.getDefault().getEMFFormsDatabinding()
+				.getObservableValue(controlDomainModelReference, viewModelContext.getDomainModel());
+			selectorObservableValue = Activator.getDefault().getEMFFormsDatabinding()
+				.getObservableValue(getDomainModelReference(), viewModelContext.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
 			return NOT_APPLICABLE;
 		}
-		final Iterator<Setting> controlSettings = controlDomainModelReference.getIterator();
-		final Iterator<Setting> selectorSettings = getDomainModelReference().getIterator();
+		final EObject controlEObject = (EObject) ((IObserving) controlObservableValue).getObserved();
+		final EStructuralFeature controlStructuralFeature = (EStructuralFeature) controlObservableValue.getValueType();
+		final EObject selectorEObject = (EObject) ((IObserving) selectorObservableValue).getObserved();
+		final EStructuralFeature selectorStructuralFeature = (EStructuralFeature) selectorObservableValue
+			.getValueType();
+		controlObservableValue.dispose();
+		selectorObservableValue.dispose();
 
-		while (selectorSettings.hasNext()) {
-			final Setting selectorSetting = selectorSettings.next();
-			if (!controlSettings.hasNext()) {
-				return NOT_APPLICABLE;
-			}
-			final Setting controlSetting = controlSettings.next();
-			final boolean equal = UniqueSetting.createSetting(selectorSetting).equals(
-				UniqueSetting.createSetting(controlSetting));
-			if (!equal) {
-				return NOT_APPLICABLE;
-			}
-		}
-		if (controlSettings.hasNext()) {
+		final boolean equal = UniqueSetting.createSetting(selectorEObject, selectorStructuralFeature).equals(
+			UniqueSetting.createSetting(controlEObject, controlStructuralFeature));
+		if (!equal) {
 			return NOT_APPLICABLE;
 		}
 
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/background/model/VTBackgroundFactory.java b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/background/model/VTBackgroundFactory.java
new file mode 100644
index 0000000..cb5c862
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/background/model/VTBackgroundFactory.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource Munich - initial API and implementation
+ */
+package org.eclipse.emf.ecp.view.template.style.background.model;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ *
+ * @since 1.6
+ *        <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundPackage
+ * @generated
+ */
+public interface VTBackgroundFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	VTBackgroundFactory eINSTANCE = org.eclipse.emf.ecp.view.template.style.background.model.impl.VTBackgroundFactoryImpl
+		.init();
+
+	/**
+	 * Returns a new object of class '<em>Style Property</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return a new object of class '<em>Style Property</em>'.
+	 * @generated
+	 */
+	VTBackgroundStyleProperty createBackgroundStyleProperty();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	VTBackgroundPackage getBackgroundPackage();
+
+} // VTBackgroundFactory
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/background/model/VTBackgroundPackage.java b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/background/model/VTBackgroundPackage.java
new file mode 100644
index 0000000..da38c4b
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/background/model/VTBackgroundPackage.java
@@ -0,0 +1,195 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource Munich - initial API and implementation
+ */
+package org.eclipse.emf.ecp.view.template.style.background.model;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecp.view.template.model.VTTemplatePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ *
+ * @since 1.6
+ *        <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface VTBackgroundPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	String eNAME = "background"; //$NON-NLS-1$
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	String eNS_URI = "http://www.eclipse.org/emf/ecp/view/template/style/background/model"; //$NON-NLS-1$
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	String eNS_PREFIX = "org.eclipse.emf.ecp.view.template.style.background.model"; //$NON-NLS-1$
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	VTBackgroundPackage eINSTANCE = org.eclipse.emf.ecp.view.template.style.background.model.impl.VTBackgroundPackageImpl
+		.init();
+
+	/**
+	 * The meta object id for the '
+	 * {@link org.eclipse.emf.ecp.view.template.style.background.model.impl.VTBackgroundStylePropertyImpl
+	 * <em>Style Property</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.emf.ecp.view.template.style.background.model.impl.VTBackgroundStylePropertyImpl
+	 * @see org.eclipse.emf.ecp.view.template.style.background.model.impl.VTBackgroundPackageImpl#getBackgroundStyleProperty()
+	 * @generated
+	 */
+	int BACKGROUND_STYLE_PROPERTY = 0;
+
+	/**
+	 * The feature id for the '<em><b>Color</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int BACKGROUND_STYLE_PROPERTY__COLOR = VTTemplatePackage.STYLE_PROPERTY_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Style Property</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int BACKGROUND_STYLE_PROPERTY_FEATURE_COUNT = VTTemplatePackage.STYLE_PROPERTY_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of operations of the '<em>Style Property</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int BACKGROUND_STYLE_PROPERTY_OPERATION_COUNT = VTTemplatePackage.STYLE_PROPERTY_OPERATION_COUNT + 0;
+
+	/**
+	 * Returns the meta object for class '
+	 * {@link org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundStyleProperty
+	 * <em>Style Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for class '<em>Style Property</em>'.
+	 * @see org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundStyleProperty
+	 * @generated
+	 */
+	EClass getBackgroundStyleProperty();
+
+	/**
+	 * Returns the meta object for the attribute '
+	 * {@link org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundStyleProperty#getColor
+	 * <em>Color</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Color</em>'.
+	 * @see org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundStyleProperty#getColor()
+	 * @see #getBackgroundStyleProperty()
+	 * @generated
+	 */
+	EAttribute getBackgroundStyleProperty_Color();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	VTBackgroundFactory getBackgroundFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 * <li>each class,</li>
+	 * <li>each feature of each class,</li>
+	 * <li>each operation of each class,</li>
+	 * <li>each enum,</li>
+	 * <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	interface Literals {
+		/**
+		 * The meta object literal for the '
+		 * {@link org.eclipse.emf.ecp.view.template.style.background.model.impl.VTBackgroundStylePropertyImpl
+		 * <em>Style Property</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @see org.eclipse.emf.ecp.view.template.style.background.model.impl.VTBackgroundStylePropertyImpl
+		 * @see org.eclipse.emf.ecp.view.template.style.background.model.impl.VTBackgroundPackageImpl#getBackgroundStyleProperty()
+		 * @generated
+		 */
+		EClass BACKGROUND_STYLE_PROPERTY = eINSTANCE.getBackgroundStyleProperty();
+
+		/**
+		 * The meta object literal for the '<em><b>Color</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute BACKGROUND_STYLE_PROPERTY__COLOR = eINSTANCE.getBackgroundStyleProperty_Color();
+
+	}
+
+} // VTBackgroundPackage
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/background/model/VTBackgroundStyleProperty.java b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/background/model/VTBackgroundStyleProperty.java
new file mode 100644
index 0000000..aa6ab8c
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/background/model/VTBackgroundStyleProperty.java
@@ -0,0 +1,66 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource Munich - initial API and implementation
+ */
+package org.eclipse.emf.ecp.view.template.style.background.model;
+
+import org.eclipse.emf.ecp.view.template.model.VTStyleProperty;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Style Property</b></em>'.
+ *
+ * @since 1.6
+ *        <!-- end-user-doc -->
+ *
+ *        <p>
+ *        The following features are supported:
+ *        <ul>
+ *        <li>{@link org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundStyleProperty#getColor <em>
+ *        Color </em>}</li>
+ *        </ul>
+ *        </p>
+ *
+ * @see org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundPackage#getBackgroundStyleProperty()
+ * @model
+ * @generated
+ */
+public interface VTBackgroundStyleProperty extends VTStyleProperty {
+	/**
+	 * Returns the value of the '<em><b>Color</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Color</em>' attribute isn't clear, there really should be more of a description
+	 * here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Color</em>' attribute.
+	 * @see #setColor(String)
+	 * @see org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundPackage#getBackgroundStyleProperty_Color()
+	 * @model
+	 * @generated
+	 */
+	String getColor();
+
+	/**
+	 * Sets the value of the '
+	 * {@link org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundStyleProperty#getColor
+	 * <em>Color</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value the new value of the '<em>Color</em>' attribute.
+	 * @see #getColor()
+	 * @generated
+	 */
+	void setColor(String value);
+
+} // VTBackgroundStyleProperty
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/background/model/impl/VTBackgroundFactoryImpl.java b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/background/model/impl/VTBackgroundFactoryImpl.java
new file mode 100644
index 0000000..df83183
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/background/model/impl/VTBackgroundFactoryImpl.java
@@ -0,0 +1,115 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource Munich - initial API and implementation
+ */
+package org.eclipse.emf.ecp.view.template.style.background.model.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+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.template.style.background.model.VTBackgroundFactory;
+import org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundPackage;
+import org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundStyleProperty;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ *
+ * @since 1.5
+ *        <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class VTBackgroundFactoryImpl extends EFactoryImpl implements VTBackgroundFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public static VTBackgroundFactory init() {
+		try {
+			final VTBackgroundFactory theBackgroundFactory = (VTBackgroundFactory) EPackage.Registry.INSTANCE
+				.getEFactory(VTBackgroundPackage.eNS_URI);
+			if (theBackgroundFactory != null) {
+				return theBackgroundFactory;
+			}
+		} catch (final Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new VTBackgroundFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public VTBackgroundFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+		case VTBackgroundPackage.BACKGROUND_STYLE_PROPERTY:
+			return createBackgroundStyleProperty();
+		default:
+			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
+	public VTBackgroundStyleProperty createBackgroundStyleProperty() {
+		final VTBackgroundStylePropertyImpl backgroundStyleProperty = new VTBackgroundStylePropertyImpl();
+		return backgroundStyleProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public VTBackgroundPackage getBackgroundPackage() {
+		return (VTBackgroundPackage) getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static VTBackgroundPackage getPackage() {
+		return VTBackgroundPackage.eINSTANCE;
+	}
+
+} // VTBackgroundFactoryImpl
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/background/model/impl/VTBackgroundPackageImpl.java b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/background/model/impl/VTBackgroundPackageImpl.java
new file mode 100644
index 0000000..120d589
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/background/model/impl/VTBackgroundPackageImpl.java
@@ -0,0 +1,220 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource Munich - initial API and implementation
+ */
+package org.eclipse.emf.ecp.view.template.style.background.model.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.ecp.view.template.model.VTTemplatePackage;
+import org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundFactory;
+import org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundPackage;
+import org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundStyleProperty;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ *
+ * @since 1.5
+ *        <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class VTBackgroundPackageImpl extends EPackageImpl implements VTBackgroundPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private EClass backgroundStylePropertyEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
+	 * EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>
+	 * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
+	 * performs initialization of the package, or returns the registered package, if one already exists. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private VTBackgroundPackageImpl() {
+		super(eNS_URI, VTBackgroundFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 *
+	 * <p>
+	 * This method is used to initialize {@link VTBackgroundPackage#eINSTANCE} when that field is accessed. 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()
+	 * @generated
+	 */
+	public static VTBackgroundPackage init() {
+		if (isInited) {
+			return (VTBackgroundPackage) EPackage.Registry.INSTANCE.getEPackage(VTBackgroundPackage.eNS_URI);
+		}
+
+		// Obtain or create and register package
+		final VTBackgroundPackageImpl theBackgroundPackage = (VTBackgroundPackageImpl) (EPackage.Registry.INSTANCE
+			.get(eNS_URI) instanceof VTBackgroundPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI)
+				: new VTBackgroundPackageImpl());
+
+		isInited = true;
+
+		// Initialize simple dependencies
+		VTTemplatePackage.eINSTANCE.eClass();
+
+		// Create package meta-data objects
+		theBackgroundPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theBackgroundPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theBackgroundPackage.freeze();
+
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(VTBackgroundPackage.eNS_URI, theBackgroundPackage);
+		return theBackgroundPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EClass getBackgroundStyleProperty() {
+		return backgroundStylePropertyEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getBackgroundStyleProperty_Color() {
+		return (EAttribute) backgroundStylePropertyEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public VTBackgroundFactory getBackgroundFactory() {
+		return (VTBackgroundFactory) getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package. This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) {
+			return;
+		}
+		isCreated = true;
+
+		// Create classes and their features
+		backgroundStylePropertyEClass = createEClass(BACKGROUND_STYLE_PROPERTY);
+		createEAttribute(backgroundStylePropertyEClass, BACKGROUND_STYLE_PROPERTY__COLOR);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model. This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) {
+			return;
+		}
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		final VTTemplatePackage theTemplatePackage = (VTTemplatePackage) EPackage.Registry.INSTANCE
+			.getEPackage(VTTemplatePackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+		backgroundStylePropertyEClass.getESuperTypes().add(theTemplatePackage.getStyleProperty());
+
+		// Initialize classes, features, and operations; add parameters
+		initEClass(backgroundStylePropertyEClass, VTBackgroundStyleProperty.class,
+			"BackgroundStyleProperty", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(
+			getBackgroundStyleProperty_Color(),
+			ecorePackage.getEString(),
+			"color", null, 0, 1, VTBackgroundStyleProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, //$NON-NLS-1$
+			!IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} // VTBackgroundPackageImpl
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/background/model/impl/VTBackgroundStylePropertyImpl.java b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/background/model/impl/VTBackgroundStylePropertyImpl.java
new file mode 100644
index 0000000..7ec8827
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/background/model/impl/VTBackgroundStylePropertyImpl.java
@@ -0,0 +1,214 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource Munich - initial API and implementation
+ */
+package org.eclipse.emf.ecp.view.template.style.background.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.template.model.VTStyleProperty;
+import org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundPackage;
+import org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundStyleProperty;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Style Property</b></em>'.
+ *
+ * @since 1.5
+ *        <!-- end-user-doc -->
+ *        <p>
+ *        The following features are implemented:
+ *        <ul>
+ *        <li>
+ *        {@link org.eclipse.emf.ecp.view.template.style.background.model.impl.VTBackgroundStylePropertyImpl#getColor
+ *        <em> Color</em>}</li>
+ *        </ul>
+ *        </p>
+ *
+ * @generated
+ */
+public class VTBackgroundStylePropertyImpl extends MinimalEObjectImpl.Container implements VTBackgroundStyleProperty {
+	/**
+	 * The default value of the '{@link #getColor() <em>Color</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getColor()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String COLOR_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getColor() <em>Color</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getColor()
+	 * @generated
+	 * @ordered
+	 */
+	protected String color = COLOR_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected VTBackgroundStylePropertyImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return VTBackgroundPackage.Literals.BACKGROUND_STYLE_PROPERTY;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String getColor() {
+		return color;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setColor(String newColor) {
+		final String oldColor = color;
+		color = newColor;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, VTBackgroundPackage.BACKGROUND_STYLE_PROPERTY__COLOR,
+				oldColor, color));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case VTBackgroundPackage.BACKGROUND_STYLE_PROPERTY__COLOR:
+			return getColor();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case VTBackgroundPackage.BACKGROUND_STYLE_PROPERTY__COLOR:
+			setColor((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case VTBackgroundPackage.BACKGROUND_STYLE_PROPERTY__COLOR:
+			setColor(COLOR_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case VTBackgroundPackage.BACKGROUND_STYLE_PROPERTY__COLOR:
+			return COLOR_EDEFAULT == null ? color != null : !COLOR_EDEFAULT.equals(color);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) {
+			return super.toString();
+		}
+
+		final StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (color: "); //$NON-NLS-1$
+		result.append(color);
+		result.append(')');
+		return result.toString();
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.template.model.VTStyleProperty#equalStyles(org.eclipse.emf.ecp.view.template.model.VTStyleProperty)
+	 */
+	@Override
+	public boolean equalStyles(VTStyleProperty styleProperty) {
+		if (styleProperty == null) {
+			return false;
+		}
+		if (eClass() != styleProperty.eClass()) {
+			return false;
+		}
+		final VTBackgroundStyleProperty backgroundStyleProperty = VTBackgroundStyleProperty.class.cast(styleProperty);
+		if (getColor() == null && backgroundStyleProperty.getColor() == null) {
+			return true;
+		}
+		if (getColor() == null && backgroundStyleProperty.getColor() != null) {
+			return false;
+		}
+		return getColor().equalsIgnoreCase(backgroundStyleProperty.getColor());
+	}
+
+} // VTBackgroundStylePropertyImpl
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/background/model/util/BackgroundAdapterFactory.java b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/background/model/util/BackgroundAdapterFactory.java
new file mode 100644
index 0000000..b702360
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/background/model/util/BackgroundAdapterFactory.java
@@ -0,0 +1,161 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource Munich - initial API and implementation
+ */
+package org.eclipse.emf.ecp.view.template.style.background.model.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+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.template.model.VTStyleProperty;
+import org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundPackage;
+import org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundStyleProperty;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ *
+ * @since 1.5
+ *        <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundPackage
+ * @generated
+ */
+public class BackgroundAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected static VTBackgroundPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public BackgroundAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = VTBackgroundPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * 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
+	 */
+	@Override
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject) object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected BackgroundSwitch<Adapter> modelSwitch = new BackgroundSwitch<Adapter>() {
+		@Override
+		public Adapter caseBackgroundStyleProperty(VTBackgroundStyleProperty object) {
+			return createBackgroundStylePropertyAdapter();
+		}
+
+		@Override
+		public Adapter caseStyleProperty(VTStyleProperty object) {
+			return createStylePropertyAdapter();
+		}
+
+		@Override
+		public Adapter defaultCase(EObject object) {
+			return createEObjectAdapter();
+		}
+	};
+
+	/**
+	 * 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
+	 */
+	@Override
+	public Adapter createAdapter(Notifier target) {
+		return modelSwitch.doSwitch((EObject) target);
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '
+	 * {@link org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundStyleProperty
+	 * <em>Style Property</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.template.style.background.model.VTBackgroundStyleProperty
+	 * @generated
+	 */
+	public Adapter createBackgroundStylePropertyAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecp.view.template.model.VTStyleProperty
+	 * <em>Style Property</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.template.model.VTStyleProperty
+	 * @generated
+	 */
+	public Adapter createStylePropertyAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} // BackgroundAdapterFactory
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/background/model/util/BackgroundSwitch.java b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/background/model/util/BackgroundSwitch.java
new file mode 100644
index 0000000..f65cc9c
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/background/model/util/BackgroundSwitch.java
@@ -0,0 +1,151 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource Munich - initial API and implementation
+ */
+package org.eclipse.emf.ecp.view.template.style.background.model.util;
+
+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.template.model.VTStyleProperty;
+import org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundPackage;
+import org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundStyleProperty;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)} to invoke the <code>caseXXX</code> method for each
+ * class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ *
+ * @since 1.5
+ *        <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundPackage
+ * @generated
+ */
+public class BackgroundSwitch<T> extends Switch<T> {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected static VTBackgroundPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public BackgroundSwitch() {
+		if (modelPackage == null) {
+			modelPackage = VTBackgroundPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Checks whether this is a switch for the given package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @parameter ePackage the package in question.
+	 * @return whether this is a switch for the given package.
+	 * @generated
+	 */
+	@Override
+	protected boolean isSwitchFor(EPackage ePackage) {
+		return ePackage == modelPackage;
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that
+	 * result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	@Override
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+		case VTBackgroundPackage.BACKGROUND_STYLE_PROPERTY: {
+			final VTBackgroundStyleProperty backgroundStyleProperty = (VTBackgroundStyleProperty) theEObject;
+			T result = caseBackgroundStyleProperty(backgroundStyleProperty);
+			if (result == null) {
+				result = caseStyleProperty(backgroundStyleProperty);
+			}
+			if (result == null) {
+				result = defaultCase(theEObject);
+			}
+			return result;
+		}
+		default:
+			return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Style Property</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>Style Property</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseBackgroundStyleProperty(VTBackgroundStyleProperty object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Style Property</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>Style Property</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseStyleProperty(VTStyleProperty object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * 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)
+	 * @generated
+	 */
+	@Override
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} // BackgroundSwitch
diff --git a/bundles/org.eclipse.emf.ecp.view.template.service/.gitignore b/bundles/org.eclipse.emf.ecp.view.template.service/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.template.service/.gitignore
@@ -0,0 +1 @@
+/bin/
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 161b020..31d5b46 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ViewTemplate Service
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.template.service;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.template.service.Activator
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.5.0,2.0.0)",
@@ -11,6 +11,6 @@
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
 Service-Component: OSGI-INF/viewTemplate.xml
-Export-Package: org.eclipse.emf.ecp.view.template.service;version="1.5
- .1";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.template.service;version="1.6
+ .0";x-internal:=true
 Bundle-Vendor: Eclipse Modeling Project
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 c529d5f..6ccd4d3 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.service/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.template.service/pom.xml
@@ -7,12 +7,12 @@
   <parent>

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

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

-    <version>1.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.0-SNAPSHOT</version>

 

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.template.tooling/.gitignore b/bundles/org.eclipse.emf.ecp.view.template.tooling/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.template.tooling/.gitignore
@@ -0,0 +1 @@
+/bin/
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 e9e5153..d022052 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Template Tooling
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.template.tooling;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 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)",
@@ -19,15 +19,21 @@
  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.ide.util;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.model.editor;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.5.0,2.0.0)"
+ org.eclipse.emf.ecp.edit;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.view.template.internal.tooling;ver
- sion="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.template.inter
- nal.tooling.controls;version="1.5.1";x-internal:=true,org.eclipse.emf
- .ecp.view.template.internal.tooling.util;version="1.5.1";x-internal:=
- true,org.eclipse.emf.ecp.view.template.tooling;version="1.5.1";x-inte
+ sion="1.6.0";x-internal:=true,org.eclipse.emf.ecp.view.template.inter
+ nal.tooling.controls;version="1.6.0";x-internal:=true,org.eclipse.emf
+ .ecp.view.template.internal.tooling.util;version="1.6.0";x-internal:=
+ true,org.eclipse.emf.ecp.view.template.tooling;version="1.6.0";x-inte
  rnal:=true,org.eclipse.emf.ecp.view.template.tooling.editor;version="
- 1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.template.tooling.wiz
- ards;version="1.5.1";x-internal:=true
+ 1.6.0";x-internal:=true,org.eclipse.emf.ecp.view.template.tooling.wiz
+ ards;version="1.6.0";x-internal:=true
 Import-Package: org.eclipse.emf.edit.ui.provider;version="0.0.0",
+ org.eclipse.emfforms.spi.common.report;version="1.6.0",
  org.eclipse.jface.databinding.swt;version="0.0.0"
+Bundle-ActivationPolicy: lazy
+Bundle-Activator: org.eclipse.emf.ecp.view.template.internal.tooling.Activator
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 7bd8d22..3db2d5f 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.5.1-SNAPSHOT</version>
+    <version>1.6.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/Activator.java b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/Activator.java
index 9eb6ee1..6e1f778 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/Activator.java
+++ b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/Activator.java
@@ -13,7 +13,8 @@
 
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
-import org.eclipse.emf.ecp.view.spi.model.reporting.ReportService;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
 import org.eclipse.ui.plugin.AbstractUIPlugin;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
@@ -84,4 +85,21 @@
 		}
 		return plugin.getBundle().getBundleContext().getService(reportServiceReference);
 	}
+
+	/**
+	 * Returns the {@link EMFFormsDatabinding} service.
+	 *
+	 * @return The {@link EMFFormsDatabinding}
+	 */
+	public EMFFormsDatabinding getEMFFormsDatabinding() {
+		final ServiceReference<EMFFormsDatabinding> serviceReference = plugin.getBundle().getBundleContext()
+			.getServiceReference(EMFFormsDatabinding.class);
+
+		final EMFFormsDatabinding service = plugin.getBundle().getBundleContext()
+			.getService(serviceReference);
+		plugin.getBundle().getBundleContext().ungetService(serviceReference);
+
+		return service;
+	}
+
 }
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 2b49ea5..1629932 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
@@ -43,6 +43,7 @@
 	public static String EMFFormsTemplateWizardPage_fileSelection;
 	public static String EMFFormsTemplateWizardPage_title;
 	public static String HexColorSelectionControlSWTRenderer_SelectColorBtn;
+	public static String HexColorSelectionControlSWTRenderer_UnsetColorBtn;
 	public static String URLSelectionControlSWTRenderer_SelectExternalFileBtn;
 	public static String URLSelectionControlSWTRenderer_SelectWorkspaceFileBtn;
 	public static String URLSelectionControlSWTRenderer_UnsetText;
diff --git a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/AttributeSelectControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/AttributeSelectControlSWTRenderer.java
index e655779..01ee29f 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/AttributeSelectControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/AttributeSelectControlSWTRenderer.java
@@ -11,16 +11,24 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.template.internal.tooling.controls;
 
+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.ecore.EStructuralFeature.Setting;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecp.view.internal.editor.controls.EditableEReferenceLabelControlSWTRenderer;
 import org.eclipse.emf.ecp.view.model.common.edit.provider.CustomReflectiveItemProviderAdapterFactory;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+import org.eclipse.emf.ecp.view.template.internal.tooling.Activator;
 import org.eclipse.emf.ecp.view.template.selector.viewModelElement.model.VTViewModelElementSelector;
 import org.eclipse.emf.edit.command.SetCommand;
 import org.eclipse.emf.edit.domain.EditingDomain;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
 import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
 import org.eclipse.jface.viewers.ArrayContentProvider;
 import org.eclipse.jface.window.Window;
 import org.eclipse.swt.widgets.Shell;
@@ -36,13 +44,35 @@
 public class AttributeSelectControlSWTRenderer extends EditableEReferenceLabelControlSWTRenderer {
 
 	/**
+	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 */
+	public AttributeSelectControlSWTRenderer(VControl vElement, ViewModelContext viewContext,
+		ReportService reportService) {
+		super(vElement, viewContext, reportService);
+	}
+
+	/**
 	 * {@inheritDoc}
 	 *
 	 * @see org.eclipse.emf.ecp.view.internal.editor.controls.EditableEReferenceLabelControlSWTRenderer#linkValue(org.eclipse.swt.widgets.Shell)
 	 */
 	@Override
 	protected void linkValue(Shell shell) {
-		final Setting setting = getVElement().getDomainModelReference().getIterator().next();
+		IObservableValue observableValue;
+		try {
+			observableValue = Activator.getDefault().getEMFFormsDatabinding()
+				.getObservableValue(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			showLinkValueFailedMessageDialog(shell, ex);
+			return;
+		}
+		final EObject eObject = (EObject) ((IObserving) observableValue).getObserved();
+		final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+		observableValue.dispose();
 
 		final ComposedAdapterFactory adapterFactory = new ComposedAdapterFactory(new AdapterFactory[] {
 			new CustomReflectiveItemProviderAdapterFactory(),
@@ -52,7 +82,7 @@
 		final ListDialog ld = new ListDialog(shell);
 		ld.setLabelProvider(labelProvider);
 		ld.setContentProvider(ArrayContentProvider.getInstance());
-		ld.setInput(VTViewModelElementSelector.class.cast(setting.getEObject()).getClassType().getEAllAttributes());
+		ld.setInput(VTViewModelElementSelector.class.cast(eObject).getClassType().getEAllAttributes());
 		ld.setBlockOnOpen(true);
 		final int open = ld.open();
 		adapterFactory.dispose();
@@ -63,9 +93,8 @@
 
 		final Object result = ld.getResult()[0];
 
-		final EditingDomain editingDomain = getEditingDomain(setting);
-		final Command command = SetCommand.create(editingDomain, setting.getEObject(), setting.getEStructuralFeature(),
-			result);
+		final EditingDomain editingDomain = getEditingDomain(eObject);
+		final Command command = SetCommand.create(editingDomain, eObject, structuralFeature, result);
 		editingDomain.getCommandStack().execute(command);
 	}
 
diff --git a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/AttributeSelectControlTester.java b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/AttributeSelectControlTester.java
index 8fe25b7..b4ecc12 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/AttributeSelectControlTester.java
+++ b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/AttributeSelectControlTester.java
@@ -11,15 +11,17 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.template.internal.tooling.controls;
 
-import java.util.Iterator;
-
+import org.eclipse.core.databinding.property.value.IValueProperty;
 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.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.template.internal.tooling.Activator;
 import org.eclipse.emf.ecp.view.template.selector.viewModelElement.model.VTViewModelElementPackage;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 
 /**
  * The tester for the {@link ViewModelSelectControlSWTRenderer}.
@@ -38,17 +40,16 @@
 		if (dmr == null) {
 			return NOT_APPLICABLE;
 		}
-		final Iterator<EStructuralFeature> iterator = dmr.getEStructuralFeatureIterator();
-		if (iterator == null) {
+		final VControl control = (VControl) vElement;
+		IValueProperty valueProperty;
+		try {
+			valueProperty = Activator.getDefault().getEMFFormsDatabinding()
+				.getValueProperty(control.getDomainModelReference(), viewModelContext.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
 			return NOT_APPLICABLE;
 		}
-		if (!iterator.hasNext()) {
-			return NOT_APPLICABLE;
-		}
-		final EStructuralFeature feature = iterator.next();
-		if (feature == null) {
-			return NOT_APPLICABLE;
-		}
+		final EStructuralFeature feature = (EStructuralFeature) valueProperty.getValueType();
 		if (VTViewModelElementPackage.eINSTANCE.getViewModelElementSelector_Attribute().equals(feature)) {
 			return 5;
 		}
diff --git a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/AttributeValueControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/AttributeValueControlSWTRenderer.java
index 2aa61d9..f74f8e1 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/AttributeValueControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/AttributeValueControlSWTRenderer.java
@@ -13,14 +13,26 @@
 
 import org.eclipse.core.databinding.Binding;
 import org.eclipse.core.databinding.UpdateValueStrategy;
+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.ecore.EStructuralFeature.Setting;
+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.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+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.ValueSelectionHelper;
+import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
 import org.eclipse.emf.ecp.view.template.selector.viewModelElement.model.VTViewModelElementSelector;
 import org.eclipse.emf.edit.command.SetCommand;
 import org.eclipse.emf.edit.domain.EditingDomain;
+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.DatabindingFailedReport;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
 import org.eclipse.jface.databinding.swt.SWTObservables;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.layout.GridLayoutFactory;
@@ -31,6 +43,9 @@
 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.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
 
 /**
  * Renderer for the
@@ -42,6 +57,36 @@
  */
 public class AttributeValueControlSWTRenderer extends SimpleControlSWTControlSWTRenderer {
 
+	private static final EMFFormsDatabinding emfFormsDatabinding;
+	private static final EMFFormsLabelProvider emfFormsLabelProvider;
+	private static final VTViewTemplateProvider vtViewTemplateProvider;
+
+	static {
+		final BundleContext bundleContext = FrameworkUtil.getBundle(AttributeValueControlSWTRenderer.class)
+			.getBundleContext();
+		final ServiceReference<EMFFormsDatabinding> emfFormsDatabindingServiceReference = bundleContext
+			.getServiceReference(EMFFormsDatabinding.class);
+		emfFormsDatabinding = bundleContext.getService(emfFormsDatabindingServiceReference);
+		final ServiceReference<EMFFormsLabelProvider> emfFormsLabelProviderServiceReference = bundleContext
+			.getServiceReference(EMFFormsLabelProvider.class);
+		emfFormsLabelProvider = bundleContext.getService(emfFormsLabelProviderServiceReference);
+		final ServiceReference<VTViewTemplateProvider> vtViewTemplateProviderServiceReference = bundleContext
+			.getServiceReference(VTViewTemplateProvider.class);
+		vtViewTemplateProvider = bundleContext.getService(vtViewTemplateProviderServiceReference);
+	}
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService The {@link ReportService}
+	 */
+	public AttributeValueControlSWTRenderer(VControl vElement, ViewModelContext viewContext,
+		ReportService reportService) {
+		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider);
+	}
+
 	/**
 	 * {@inheritDoc}
 	 *
@@ -49,10 +94,10 @@
 	 *      org.eclipse.emf.ecore.EStructuralFeature.Setting)
 	 */
 	@Override
-	protected Binding[] createBindings(Control control, Setting setting) {
+	protected Binding[] createBindings(Control control) throws DatabindingFailedException {
 		final Label label = (Label) Composite.class.cast(control).getChildren()[0];
 		final Binding binding = getDataBindingContext().bindValue(SWTObservables.observeText(label),
-			getModelValue(setting), new UpdateValueStrategy(), new UpdateValueStrategy() {
+			getModelValue(), new UpdateValueStrategy(), new UpdateValueStrategy() {
 
 				/**
 				 * {@inheritDoc}
@@ -75,7 +120,7 @@
 	 *      org.eclipse.emf.ecore.EStructuralFeature.Setting)
 	 */
 	@Override
-	protected Control createSWTControl(final Composite parent, Setting setting) {
+	protected Control createSWTControl(final Composite parent) {
 		final Composite composite = new Composite(parent, SWT.NONE);
 		composite.setBackgroundMode(SWT.INHERIT_FORCE);
 		GridLayoutFactory.fillDefaults().numColumns(2).equalWidth(false).applyTo(composite);
@@ -87,24 +132,33 @@
 		GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.BEGINNING).grab(false, false).applyTo(button);
 
 		button.addSelectionListener(new SelectionAdapter() {
-
 			/**
 			 * {@inheritDoc}
 			 *
 			 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
 			 */
-
 			@Override
 			public void widgetSelected(SelectionEvent e) {
 				super.widgetSelected(e);
-				final Setting setting = getVElement().getDomainModelReference().getIterator().next();
-				final Object result = ValueSelectionHelper.getValueSelectionDialog(parent.getShell(),
-					VTViewModelElementSelector.class.cast(setting.getEObject()).getAttribute());
+				IObservableValue observableValue;
+				try {
+					observableValue = Activator
+						.getDefault()
+						.getEMFFormsDatabinding()
+						.getObservableValue(getVElement().getDomainModelReference(),
+							getViewModelContext().getDomainModel());
+				} catch (final DatabindingFailedException ex) {
+					Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+					return;
+				}
+				final EObject eObject = (EObject) ((IObserving) observableValue).getObserved();
+				final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+				observableValue.dispose();
 
-				final EditingDomain editingDomain = getEditingDomain(setting);
-				final Command command = SetCommand.create(editingDomain, setting.getEObject(),
-					setting.getEStructuralFeature(),
-					result);
+				final Object result = ValueSelectionHelper.getValueSelectionDialog(parent.getShell(),
+					VTViewModelElementSelector.class.cast(eObject).getAttribute());
+				final EditingDomain editingDomain = getEditingDomain(eObject);
+				final Command command = SetCommand.create(editingDomain, eObject, structuralFeature, result);
 				editingDomain.getCommandStack().execute(command);
 			}
 		});
diff --git a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/AttributeValueControlTester.java b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/AttributeValueControlTester.java
index 86f50bc..c93cf11 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/AttributeValueControlTester.java
+++ b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/AttributeValueControlTester.java
@@ -11,15 +11,17 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.template.internal.tooling.controls;
 
-import java.util.Iterator;
-
+import org.eclipse.core.databinding.property.value.IValueProperty;
 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.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.template.internal.tooling.Activator;
 import org.eclipse.emf.ecp.view.template.selector.viewModelElement.model.VTViewModelElementPackage;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 
 /**
  * The tester for the {@link ViewModelSelectControlSWTRenderer}.
@@ -38,17 +40,16 @@
 		if (dmr == null) {
 			return NOT_APPLICABLE;
 		}
-		final Iterator<EStructuralFeature> iterator = dmr.getEStructuralFeatureIterator();
-		if (iterator == null) {
+		final VControl control = (VControl) vElement;
+		IValueProperty valueProperty;
+		try {
+			valueProperty = Activator.getDefault().getEMFFormsDatabinding()
+				.getValueProperty(control.getDomainModelReference(), viewModelContext.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
 			return NOT_APPLICABLE;
 		}
-		if (!iterator.hasNext()) {
-			return NOT_APPLICABLE;
-		}
-		final EStructuralFeature feature = iterator.next();
-		if (feature == null) {
-			return NOT_APPLICABLE;
-		}
+		final EStructuralFeature feature = (EStructuralFeature) valueProperty.getValueType();
 		if (VTViewModelElementPackage.eINSTANCE.getViewModelElementSelector_AttributeValue().equals(feature)) {
 			return 5;
 		}
diff --git a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/DMRSelectorControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/DMRSelectorControlSWTRenderer.java
index f554284..6d11c54 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/DMRSelectorControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/DMRSelectorControlSWTRenderer.java
@@ -13,15 +13,18 @@
 
 import java.io.IOException;
 
+import org.eclipse.core.databinding.observable.IObserving;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.emf.common.command.Command;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
 import org.eclipse.emf.ecp.internal.ide.util.EcoreHelper;
 import org.eclipse.emf.ecp.view.internal.editor.controls.EditableEReferenceLabelControlSWTRenderer;
+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.VFeaturePathDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
 import org.eclipse.emf.ecp.view.template.internal.tooling.Activator;
@@ -29,6 +32,8 @@
 import org.eclipse.emf.ecp.view.template.model.VTViewTemplate;
 import org.eclipse.emf.edit.command.SetCommand;
 import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
 import org.eclipse.jface.window.Window;
 import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.widgets.Shell;
@@ -42,6 +47,15 @@
 @SuppressWarnings("restriction")
 public class DMRSelectorControlSWTRenderer extends EditableEReferenceLabelControlSWTRenderer {
 
+	/**
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 */
+	public DMRSelectorControlSWTRenderer(VControl vElement, ViewModelContext viewContext, ReportService reportService) {
+		super(vElement, viewContext, reportService);
+	}
+
 	@Override
 	protected void linkValue(Shell shell) {
 		final DMRCreationWizard dmrWizard = new DMRCreationWizard();
@@ -68,13 +82,23 @@
 			}
 		}
 
-		final Setting setting = getVElement().getDomainModelReference().getIterator().next();
+		IObservableValue observableValue;
+		try {
+			observableValue = Activator.getDefault().getEMFFormsDatabinding()
+				.getObservableValue(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			showLinkValueFailedMessageDialog(shell, ex);
+			return;
+		}
+		final EObject eObject = (EObject) ((IObserving) observableValue).getObserved();
+		final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+		observableValue.dispose();
 
 		final VFeaturePathDomainModelReference value = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
 		value.setDomainModelEFeature(featureToSet);
 
-		final EditingDomain editingDomain = getEditingDomain(setting);
-		final Command command = SetCommand.create(editingDomain, setting.getEObject(), setting.getEStructuralFeature(),
+		final EditingDomain editingDomain = getEditingDomain(eObject);
+		final Command command = SetCommand.create(editingDomain, eObject, structuralFeature,
 			value);
 		editingDomain.getCommandStack().execute(command);
 
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 8cecd12..23c5359 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
@@ -11,15 +11,17 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.template.internal.tooling.controls;
 
-import java.util.Iterator;
-
+import org.eclipse.core.databinding.property.value.IValueProperty;
 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.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.template.internal.tooling.Activator;
 import org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model.VTDomainmodelreferencePackage;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 
 /**
  * The tester for the {@link ViewModelSelectControlSWTRenderer}.
@@ -38,17 +40,16 @@
 		if (dmr == null) {
 			return NOT_APPLICABLE;
 		}
-		final Iterator<EStructuralFeature> iterator = dmr.getEStructuralFeatureIterator();
-		if (iterator == null) {
+		final VControl control = (VControl) vElement;
+		IValueProperty valueProperty;
+		try {
+			valueProperty = Activator.getDefault().getEMFFormsDatabinding()
+				.getValueProperty(control.getDomainModelReference(), viewModelContext.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
 			return NOT_APPLICABLE;
 		}
-		if (!iterator.hasNext()) {
-			return NOT_APPLICABLE;
-		}
-		final EStructuralFeature feature = iterator.next();
-		if (feature == null) {
-			return NOT_APPLICABLE;
-		}
+		final EStructuralFeature feature = (EStructuralFeature) valueProperty.getValueType();
 		if (VTDomainmodelreferencePackage.eINSTANCE.getDomainModelReferenceSelector_DomainModelReference().equals(
 			feature)) {
 			return 5;
diff --git a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/HexColorSelectionControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/HexColorSelectionControlSWTRenderer.java
index d046ec8..615230f 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/HexColorSelectionControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/HexColorSelectionControlSWTRenderer.java
@@ -13,13 +13,24 @@
 
 import org.eclipse.core.databinding.Binding;
 import org.eclipse.core.databinding.UpdateValueStrategy;
+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.ecore.EStructuralFeature.Setting;
+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.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+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.model.VTViewTemplateProvider;
 import org.eclipse.emf.edit.command.SetCommand;
 import org.eclipse.emf.edit.domain.EditingDomain;
+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.DatabindingFailedReport;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
 import org.eclipse.jface.databinding.swt.SWTObservables;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.layout.GridLayoutFactory;
@@ -34,6 +45,9 @@
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Label;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
 
 /**
  * @author Eugen
@@ -41,6 +55,36 @@
  */
 public class HexColorSelectionControlSWTRenderer extends SimpleControlSWTControlSWTRenderer {
 
+	private static final EMFFormsDatabinding emfFormsDatabinding;
+	private static final EMFFormsLabelProvider emfFormsLabelProvider;
+	private static final VTViewTemplateProvider vtViewTemplateProvider;
+
+	static {
+		final BundleContext bundleContext = FrameworkUtil.getBundle(HexColorSelectionControlSWTRenderer.class)
+			.getBundleContext();
+		final ServiceReference<EMFFormsDatabinding> emfFormsDatabindingServiceReference = bundleContext
+			.getServiceReference(EMFFormsDatabinding.class);
+		emfFormsDatabinding = bundleContext.getService(emfFormsDatabindingServiceReference);
+		final ServiceReference<EMFFormsLabelProvider> emfFormsLabelProviderServiceReference = bundleContext
+			.getServiceReference(EMFFormsLabelProvider.class);
+		emfFormsLabelProvider = bundleContext.getService(emfFormsLabelProviderServiceReference);
+		final ServiceReference<VTViewTemplateProvider> vtViewTemplateProviderServiceReference = bundleContext
+			.getServiceReference(VTViewTemplateProvider.class);
+		vtViewTemplateProvider = bundleContext.getService(vtViewTemplateProviderServiceReference);
+	}
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService The {@link ReportService}
+	 */
+	public HexColorSelectionControlSWTRenderer(VControl vElement, ViewModelContext viewContext,
+		ReportService reportService) {
+		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider);
+	}
+
 	/**
 	 * {@inheritDoc}
 	 *
@@ -48,11 +92,11 @@
 	 *      org.eclipse.emf.ecore.EStructuralFeature.Setting)
 	 */
 	@Override
-	protected Binding[] createBindings(Control control, Setting setting) {
+	protected Binding[] createBindings(Control control) throws DatabindingFailedException {
 		final Composite composite = Composite.class.cast(control);
 		final Control childControl = composite.getChildren()[0];
 		final IObservableValue value = SWTObservables.observeBackground(childControl);
-		final Binding binding = getDataBindingContext().bindValue(value, getModelValue(setting),
+		final Binding binding = getDataBindingContext().bindValue(value, getModelValue(),
 			new UpdateValueStrategy() {
 				@Override
 				public Object convert(Object value) {
@@ -77,20 +121,19 @@
 
 			});
 		final IObservableValue textValue = SWTObservables.observeTooltipText(childControl);
-		final Binding textBinding = getDataBindingContext().bindValue(textValue, getModelValue(setting));
+		final Binding textBinding = getDataBindingContext().bindValue(textValue, getModelValue());
 		return new Binding[] { binding, textBinding };
 	}
 
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer#createSWTControl(org.eclipse.swt.widgets.Composite,
-	 *      org.eclipse.emf.ecore.EStructuralFeature.Setting)
+	 * @see org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer#createSWTControl(org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
-	protected Control createSWTControl(final Composite parent, final Setting setting) {
+	protected Control createSWTControl(final Composite parent) {
 		final Composite composite = new Composite(parent, SWT.NONE);
-		GridLayoutFactory.fillDefaults().numColumns(2).equalWidth(false).applyTo(composite);
+		GridLayoutFactory.fillDefaults().numColumns(3).equalWidth(false).applyTo(composite);
 		final Label colorExample = new Label(composite, SWT.BORDER);
 		GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.FILL).grab(false, false).hint(40, SWT.DEFAULT)
 			.applyTo(colorExample);
@@ -109,25 +152,50 @@
 				super.widgetSelected(e);
 				final ColorDialog cd = new ColorDialog(parent.getShell());
 				final RGB rgb = cd.open();
-
-				setValue(getString(rgb), setting);
+				if (rgb != null) {
+					setValue(getString(rgb));
+				}
 			}
 
 		});
+		final Button unsetColorBtn = new Button(composite, SWT.PUSH);
+		GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.FILL).grab(false, false).applyTo(unsetColorBtn);
+		unsetColorBtn.setText(Messages.HexColorSelectionControlSWTRenderer_UnsetColorBtn);
+		unsetColorBtn.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				setValue(null);
+			}
+		});
+
 		return composite;
 	}
 
 	private String getString(RGB rgb) {
+		if (rgb == null) {
+			return null;
+		}
 		final String red = Integer.toHexString(0x100 | rgb.red).substring(1);
 		final String green = Integer.toHexString(0x100 | rgb.green).substring(1);
 		final String blue = Integer.toHexString(0x100 | rgb.blue).substring(1);
 		return red + green + blue;
 	}
 
-	private void setValue(String hexColor, Setting setting) {
-		final EditingDomain editingDomain = getEditingDomain(setting);
-		final Command command = SetCommand.create(editingDomain, setting.getEObject(), setting.getEStructuralFeature(),
-			hexColor);
+	private void setValue(String hexColor) {
+		IObservableValue observableValue;
+		try {
+			observableValue = Activator.getDefault().getEMFFormsDatabinding()
+				.getObservableValue(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+			return;
+		}
+		final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+		final EObject eObject = (EObject) ((IObserving) observableValue).getObserved();
+		observableValue.dispose();
+
+		final EditingDomain editingDomain = getEditingDomain(eObject);
+		final Command command = SetCommand.create(editingDomain, eObject, structuralFeature, hexColor);
 		editingDomain.getCommandStack().execute(command);
 	}
 
diff --git a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/TemplateColorHexControlTester.java b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/TemplateColorHexControlTester.java
index bc91019..bd04354 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/TemplateColorHexControlTester.java
+++ b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/TemplateColorHexControlTester.java
@@ -11,17 +11,20 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.template.internal.tooling.controls;
 
-import java.util.Iterator;
-
+import org.eclipse.core.databinding.property.value.IValueProperty;
 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.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.template.internal.tooling.Activator;
 import org.eclipse.emf.ecp.view.template.model.VTTemplatePackage;
+import org.eclipse.emf.ecp.view.template.style.background.model.VTBackgroundPackage;
 import org.eclipse.emf.ecp.view.template.style.fontProperties.model.VTFontPropertiesPackage;
 import org.eclipse.emf.ecp.view.template.style.validation.model.VTValidationPackage;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 
 /**
  * The tester for the
@@ -42,17 +45,16 @@
 		if (dmr == null) {
 			return NOT_APPLICABLE;
 		}
-		final Iterator<EStructuralFeature> iterator = dmr.getEStructuralFeatureIterator();
-		if (iterator == null) {
+		final VControl control = (VControl) vElement;
+		IValueProperty valueProperty;
+		try {
+			valueProperty = Activator.getDefault().getEMFFormsDatabinding()
+				.getValueProperty(control.getDomainModelReference(), viewModelContext.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
 			return NOT_APPLICABLE;
 		}
-		if (!iterator.hasNext()) {
-			return NOT_APPLICABLE;
-		}
-		final EStructuralFeature feature = iterator.next();
-		if (feature == null) {
-			return NOT_APPLICABLE;
-		}
+		final EStructuralFeature feature = (EStructuralFeature) valueProperty.getValueType();
 		if (VTFontPropertiesPackage.eINSTANCE.getFontPropertiesStyleProperty_ColorHEX().equals(feature)) {
 			return 5;
 		}
@@ -89,6 +91,10 @@
 		if (VTTemplatePackage.eINSTANCE.getControlValidationTemplate_CancelColorHEX().equals(feature)) {
 			return 5;
 		}
+		// background
+		if (VTBackgroundPackage.eINSTANCE.getBackgroundStyleProperty_Color().equals(feature)) {
+			return 5;
+		}
 
 		return NOT_APPLICABLE;
 	}
diff --git a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/TemplateImagePathControlTester.java b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/TemplateImagePathControlTester.java
index 0c87dac..096f834 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/TemplateImagePathControlTester.java
+++ b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/TemplateImagePathControlTester.java
@@ -11,17 +11,19 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.template.internal.tooling.controls;
 
-import java.util.Iterator;
-
+import org.eclipse.core.databinding.property.value.IValueProperty;
 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.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.template.internal.tooling.Activator;
 import org.eclipse.emf.ecp.view.template.model.VTTemplatePackage;
 import org.eclipse.emf.ecp.view.template.style.tableValidation.model.VTTableValidationPackage;
 import org.eclipse.emf.ecp.view.template.style.validation.model.VTValidationPackage;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 
 /**
  * The tester for the
@@ -42,17 +44,16 @@
 		if (dmr == null) {
 			return NOT_APPLICABLE;
 		}
-		final Iterator<EStructuralFeature> iterator = dmr.getEStructuralFeatureIterator();
-		if (iterator == null) {
+		final VControl control = (VControl) vElement;
+		IValueProperty valueProperty;
+		try {
+			valueProperty = Activator.getDefault().getEMFFormsDatabinding()
+				.getValueProperty(control.getDomainModelReference(), viewModelContext.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
 			return NOT_APPLICABLE;
 		}
-		if (!iterator.hasNext()) {
-			return NOT_APPLICABLE;
-		}
-		final EStructuralFeature feature = iterator.next();
-		if (feature == null) {
-			return NOT_APPLICABLE;
-		}
+		final EStructuralFeature feature = (EStructuralFeature) valueProperty.getValueType();
 		// tablevalidation
 		if (VTTableValidationPackage.eINSTANCE.getTableValidationStyleProperty_ImagePath().equals(feature)) {
 			return 5;
diff --git a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/URLSelectionControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/URLSelectionControlSWTRenderer.java
index 1f65b7a..6859583 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/URLSelectionControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/URLSelectionControlSWTRenderer.java
@@ -15,16 +15,26 @@
 import java.net.MalformedURLException;
 
 import org.eclipse.core.databinding.Binding;
+import org.eclipse.core.databinding.observable.IObserving;
 import org.eclipse.core.databinding.observable.value.IObservableValue;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.emf.common.command.Command;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+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.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
 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.model.VTViewTemplateProvider;
 import org.eclipse.emf.edit.command.SetCommand;
 import org.eclipse.emf.edit.domain.EditingDomain;
+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.DatabindingFailedReport;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
 import org.eclipse.jface.databinding.swt.SWTObservables;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.layout.GridLayoutFactory;
@@ -42,6 +52,9 @@
 import org.eclipse.ui.dialogs.ElementTreeSelectionDialog;
 import org.eclipse.ui.model.WorkbenchContentProvider;
 import org.eclipse.ui.model.WorkbenchLabelProvider;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
 
 /**
  * Control for selecting a file and saving the path as url.
@@ -51,6 +64,36 @@
  */
 public class URLSelectionControlSWTRenderer extends SimpleControlSWTControlSWTRenderer {
 
+	private static final EMFFormsDatabinding emfFormsDatabinding;
+	private static final EMFFormsLabelProvider emfFormsLabelProvider;
+	private static final VTViewTemplateProvider vtViewTemplateProvider;
+
+	static {
+		final BundleContext bundleContext = FrameworkUtil.getBundle(URLSelectionControlSWTRenderer.class)
+			.getBundleContext();
+		final ServiceReference<EMFFormsDatabinding> emfFormsDatabindingServiceReference = bundleContext
+			.getServiceReference(EMFFormsDatabinding.class);
+		emfFormsDatabinding = bundleContext.getService(emfFormsDatabindingServiceReference);
+		final ServiceReference<EMFFormsLabelProvider> emfFormsLabelProviderServiceReference = bundleContext
+			.getServiceReference(EMFFormsLabelProvider.class);
+		emfFormsLabelProvider = bundleContext.getService(emfFormsLabelProviderServiceReference);
+		final ServiceReference<VTViewTemplateProvider> vtViewTemplateProviderServiceReference = bundleContext
+			.getServiceReference(VTViewTemplateProvider.class);
+		vtViewTemplateProvider = bundleContext.getService(vtViewTemplateProviderServiceReference);
+	}
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService The {@link ReportService}
+	 */
+	public URLSelectionControlSWTRenderer(VControl vElement, ViewModelContext viewContext,
+		ReportService reportService) {
+		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider);
+	}
+
 	/**
 	 * {@inheritDoc}
 	 *
@@ -58,25 +101,24 @@
 	 *      org.eclipse.emf.ecore.EStructuralFeature.Setting)
 	 */
 	@Override
-	protected Binding[] createBindings(Control control, Setting setting) {
+	protected Binding[] createBindings(Control control) throws DatabindingFailedException {
 		final Composite composite = Composite.class.cast(control);
 		final Control childControl = composite.getChildren()[0];
 		final IObservableValue value = SWTObservables.observeText(childControl);
-		final Binding binding = getDataBindingContext().bindValue(value, getModelValue(setting));
+		final Binding binding = getDataBindingContext().bindValue(value, getModelValue());
 
 		final IObservableValue toolTip = SWTObservables.observeTooltipText(childControl);
-		final Binding tooltipBinding = getDataBindingContext().bindValue(toolTip, getModelValue(setting));
+		final Binding tooltipBinding = getDataBindingContext().bindValue(toolTip, getModelValue());
 		return new Binding[] { binding, tooltipBinding };
 	}
 
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer#createSWTControl(org.eclipse.swt.widgets.Composite,
-	 *      org.eclipse.emf.ecore.EStructuralFeature.Setting)
+	 * @see org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer#createSWTControl(org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
-	protected Control createSWTControl(Composite parent, final Setting setting) {
+	protected Control createSWTControl(Composite parent) {
 		final Composite composite = new Composite(parent, SWT.NONE);
 		composite.setBackgroundMode(SWT.INHERIT_FORCE);
 		GridLayoutFactory.fillDefaults().numColumns(3).equalWidth(false).applyTo(composite);
@@ -108,7 +150,7 @@
 				} catch (final MalformedURLException ex) {
 					Activator.log(ex);
 				}
-				setValue(selectedURL, setting);
+				setValue(selectedURL);
 			}
 
 		});
@@ -140,17 +182,28 @@
 
 				final String selectedURL = "platform:/plugin" + resource.getFullPath().toString(); //$NON-NLS-1$
 
-				setValue(selectedURL, setting);
+				setValue(selectedURL);
 			}
 
 		});
 		return composite;
 	}
 
-	private void setValue(String selectedURL, Setting setting) {
-		final EditingDomain editingDomain = getEditingDomain(setting);
-		final Command command = SetCommand.create(editingDomain, setting.getEObject(), setting.getEStructuralFeature(),
-			selectedURL);
+	private void setValue(String selectedURL) {
+		IObservableValue observableValue;
+		try {
+			observableValue = Activator.getDefault().getEMFFormsDatabinding()
+				.getObservableValue(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+			return;
+		}
+		final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+		final EObject eObject = (EObject) ((IObserving) observableValue).getObserved();
+		observableValue.dispose();
+
+		final EditingDomain editingDomain = getEditingDomain(eObject);
+		final Command command = SetCommand.create(editingDomain, eObject, structuralFeature, selectedURL);
 		editingDomain.getCommandStack().execute(command);
 	}
 
diff --git a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/ViewModelSelectControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/ViewModelSelectControlSWTRenderer.java
index 125fab6..2d6264d 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/ViewModelSelectControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/ViewModelSelectControlSWTRenderer.java
@@ -11,21 +11,29 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.template.internal.tooling.controls;
 
+import org.eclipse.core.databinding.observable.IObserving;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.emf.common.command.Command;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+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.view.internal.editor.controls.EditableEReferenceLabelControlSWTRenderer;
 import org.eclipse.emf.ecp.view.model.common.edit.provider.CustomReflectiveItemProviderAdapterFactory;
+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.template.internal.tooling.Activator;
 import org.eclipse.emf.ecp.view.template.internal.tooling.Messages;
 import org.eclipse.emf.edit.command.SetCommand;
 import org.eclipse.emf.edit.domain.EditingDomain;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
 import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
 import org.eclipse.jface.window.Window;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.dialogs.ElementListSelectionDialog;
@@ -42,6 +50,18 @@
 @SuppressWarnings("restriction")
 public class ViewModelSelectControlSWTRenderer extends EditableEReferenceLabelControlSWTRenderer {
 
+	/**
+	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 */
+	public ViewModelSelectControlSWTRenderer(VControl vElement, ViewModelContext viewContext,
+		ReportService reportService) {
+		super(vElement, viewContext, reportService);
+	}
+
 	private static final String PLUGIN_ID = "org.eclipse.emf.ecp.view.template.tooling"; //$NON-NLS-1$
 
 	/**
@@ -89,12 +109,21 @@
 			return;
 		}
 		final Object result = elsd.getFirstResult();
-		final Setting setting = getVElement().getDomainModelReference().getIterator().next();
-		final EditingDomain editingDomain = getEditingDomain(setting);
-		final Command command = SetCommand.create(editingDomain, setting.getEObject(), setting.getEStructuralFeature(),
-			result);
-		editingDomain.getCommandStack().execute(command);
 
+		final IObservableValue observableValue;
+		try {
+			observableValue = Activator.getDefault().getEMFFormsDatabinding()
+				.getObservableValue(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			showLinkValueFailedMessageDialog(shell, ex);
+			return;
+		}
+		final EObject eObject = (EObject) ((IObserving) observableValue).getObserved();
+		final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+		observableValue.dispose();
+		final EditingDomain editingDomain = getEditingDomain(eObject);
+		final Command command = SetCommand.create(editingDomain, eObject, structuralFeature, result);
+		editingDomain.getCommandStack().execute(command);
 	}
 
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/ViewModelSelectControlTester.java b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/ViewModelSelectControlTester.java
index 2724e2e..44edd29 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/ViewModelSelectControlTester.java
+++ b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/internal/tooling/controls/ViewModelSelectControlTester.java
@@ -11,15 +11,17 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.template.internal.tooling.controls;
 
-import java.util.Iterator;
-
+import org.eclipse.core.databinding.property.value.IValueProperty;
 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.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.template.internal.tooling.Activator;
 import org.eclipse.emf.ecp.view.template.selector.viewModelElement.model.VTViewModelElementPackage;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 
 /**
  * The tester for the {@link ViewModelSelectControlSWTRenderer}.
@@ -38,17 +40,16 @@
 		if (dmr == null) {
 			return NOT_APPLICABLE;
 		}
-		final Iterator<EStructuralFeature> iterator = dmr.getEStructuralFeatureIterator();
-		if (iterator == null) {
+		final VControl control = (VControl) vElement;
+		IValueProperty valueProperty;
+		try {
+			valueProperty = Activator.getDefault().getEMFFormsDatabinding()
+				.getValueProperty(control.getDomainModelReference(), viewModelContext.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
 			return NOT_APPLICABLE;
 		}
-		if (!iterator.hasNext()) {
-			return NOT_APPLICABLE;
-		}
-		final EStructuralFeature feature = iterator.next();
-		if (feature == null) {
-			return NOT_APPLICABLE;
-		}
+		final EStructuralFeature feature = (EStructuralFeature) valueProperty.getValueType();
 		if (VTViewModelElementPackage.eINSTANCE.getViewModelElementSelector_ClassType().equals(feature)) {
 			return 5;
 		}
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 68b208d..6771142 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
@@ -22,6 +22,7 @@
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecp.edit.spi.EMFDeleteServiceImpl;
 import org.eclipse.emf.ecp.internal.ide.util.EcoreHelper;
 import org.eclipse.emf.ecp.ui.view.ECPRendererException;
 import org.eclipse.emf.ecp.ui.view.swt.DefaultReferenceService;
@@ -95,23 +96,17 @@
 		super.setPartName(input.getName());
 
 		basicCommandStack = new BasicCommandStack();
-		basicCommandStack.addCommandStackListener
-			(new CommandStackListener()
-			{
-				@Override
-				public void commandStackChanged(final EventObject event)
-				{
-					parent.getDisplay().asyncExec
-						(new Runnable()
-						{
-							@Override
-							public void run()
-							{
-								firePropertyChange(IEditorPart.PROP_DIRTY);
-							}
-						});
-				}
-			});
+		basicCommandStack.addCommandStackListener(new CommandStackListener() {
+			@Override
+			public void commandStackChanged(final EventObject event) {
+				parent.getDisplay().asyncExec(new Runnable() {
+					@Override
+					public void run() {
+						firePropertyChange(IEditorPart.PROP_DIRTY);
+					}
+				});
+			}
+		});
 
 		final FileEditorInput fei = (FileEditorInput) getEditorInput();
 
@@ -156,7 +151,7 @@
 		parent.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WHITE));
 		final VView view = ViewProviderHelper.getView(template, null);
 		final ViewModelContext viewContext = ViewModelContextFactory.INSTANCE.createViewModelContext(view,
-			template, new DefaultReferenceService());
+			template, new DefaultReferenceService(), new EMFDeleteServiceImpl());
 		try {
 			ECPSWTViewRenderer.INSTANCE.render(parent, viewContext);
 		} catch (final ECPRendererException ex) {
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 8b85574..2ff33d0 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
@@ -18,6 +18,7 @@
 EMFFormsTemplateWizardPage_fileSelection=&File name:
 EMFFormsTemplateWizardPage_title=Multi-page Editor File
 HexColorSelectionControlSWTRenderer_SelectColorBtn=Select color
+HexColorSelectionControlSWTRenderer_UnsetColorBtn=Unset color
 URLSelectionControlSWTRenderer_SelectExternalFileBtn=Select external File 
 URLSelectionControlSWTRenderer_SelectWorkspaceFileBtn=Select workspace File 
 URLSelectionControlSWTRenderer_UnsetText=No file selected\!
diff --git a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model.edit/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model.edit/.settings/.api_filters
index b7bcad2..9f3c9d4 100644
--- a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model.edit/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model.edit/.settings/.api_filters
@@ -1,10 +1,34 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.emf.ecp.view.treemasterdetail.model.edit" version="2">
     <resource path="META-INF/MANIFEST.MF">
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model.edit"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.treemasterdetail.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.treemasterdetail.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.treemasterdetail.model.edit_1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
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 e0c2cc6..b056975 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,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.treemasterdetail.model.edit;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.treemasterdetail.model.provider.TreeMasterDetailEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.view.treemasterdetail.model.provid
- er;version="1.5.1";x-internal:=true
+ er;version="1.6.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;visibility:=reexport;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.edit;visibility:=reexport;bundle-version="[2.5.0,3.0.0)",
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 c5fb6c6..9bffc7c 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model.edit/src/org/eclipse/emf/ecp/view/treemasterdetail/model/provider/TreeMasterDetailItemProvider.java b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model.edit/src/org/eclipse/emf/ecp/view/treemasterdetail/model/provider/TreeMasterDetailItemProvider.java
index 992e9e4..ccddee8 100644
--- a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model.edit/src/org/eclipse/emf/ecp/view/treemasterdetail/model/provider/TreeMasterDetailItemProvider.java
+++ b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model.edit/src/org/eclipse/emf/ecp/view/treemasterdetail/model/provider/TreeMasterDetailItemProvider.java
@@ -17,6 +17,8 @@
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emf.ecp.view.spi.model.VElementUtil;
 import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
 import org.eclipse.emf.ecp.view.spi.model.provider.ContainedElementItemProvider;
 import org.eclipse.emf.ecp.view.treemasterdetail.model.VTreeMasterDetail;
@@ -114,11 +116,14 @@
 	 * <!-- begin-user-doc
 	 * --> <!-- end-user-doc -->
 	 *
-	 * @generated
+	 * @generated NOT
 	 */
 	@Override
 	public String getText(Object object) {
-		final String label = ((VTreeMasterDetail) object).getName();
+		String label = ((VTreeMasterDetail) object).getName();
+		if (label == null) {
+			label = VElementUtil.getCleanName(VElement.class.cast(object));
+		}
 		return label == null || label.length() == 0 ?
 			getString("_UI_TreeMasterDetail_type") : //$NON-NLS-1$
 			getString("_UI_TreeMasterDetail_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
diff --git a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model/.gitignore b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model/.settings/.api_filters
index 4a2baf7..7923b24 100644
--- a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model/.settings/.api_filters
@@ -1,10 +1,34 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.emf.ecp.view.treemasterdetail.model" version="2">
     <resource path="META-INF/MANIFEST.MF">
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.treemasterdetail.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.treemasterdetail.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.treemasterdetail.model_1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
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 78a76b6..9ddd04a 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,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.treemasterdetail.model;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.view.treemasterdetail.model;versio
- n="1.5.1";x-friends:="org.eclipse.emf.ecp.view.treemasterdetail.model
+ n="1.6.0";x-friends:="org.eclipse.emf.ecp.view.treemasterdetail.model
  .edit,org.eclipse.emf.ecp.view.treemasterdetail.ui.swt",org.eclipse.e
- mf.ecp.view.treemasterdetail.model.impl;version="1.5.1";x-internal:=t
- rue,org.eclipse.emf.ecp.view.treemasterdetail.model.util;version="1.5
- .1";x-friends:="org.eclipse.emf.ecp.view.treemasterdetail.model.edit"
+ mf.ecp.view.treemasterdetail.model.impl;version="1.6.0";x-internal:=t
+ rue,org.eclipse.emf.ecp.view.treemasterdetail.model.util;version="1.6
+ .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;visibility:=reexport;bundle-version="[2.7.0,3.0.0)",
  org.eclipse.emf.ecp.view.model;visibility:=reexport;bundle-version="[1.5.0,2.0.0)"
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 41c6398..0afc0b8 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/.settings/.api_filters
new file mode 100644
index 0000000..2a4d340
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/.settings/.api_filters
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<component id="org.eclipse.emf.ecp.view.treemasterdetail.ui.swt" version="2">
+    <resource path="META-INF/MANIFEST.MF">
+        <filter comment="SPI Change in 1.6" id="923795461">
+            <message_arguments>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/treemasterdetail/ui/swt/TreeMasterDetailSWTRenderer.java" type="org.eclipse.emf.ecp.view.spi.treemasterdetail.ui.swt.TreeMasterDetailSWTRenderer">
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.treemasterdetail.ui.swt.TreeMasterDetailSWTRenderer"/>
+                <message_argument value="TreeMasterDetailSWTRenderer()"/>
+            </message_arguments>
+        </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.treemasterdetail.ui.swt.TreeMasterDetailSWTRenderer"/>
+                <message_argument value="getGridDescription(SWTGridDescription)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.treemasterdetail.ui.swt.TreeMasterDetailSWTRenderer"/>
+                <message_argument value="renderControl(SWTGridCell, Composite)"/>
+            </message_arguments>
+        </filter>
+    </resource>
+</component>
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 3c6019a..dd24b64 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,7 +2,7 @@
 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.emf.ecp.edit;bundle-version="[1.5.0,2.0.0)",
@@ -11,17 +11,20 @@
  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.view.validation;bundle-version="[1.5.0,2.0.0)"
+ org.eclipse.emf.ecp.view.validation;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.emf.ecp.view.internal.treemasterdetail.ui.
- swt;version="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.spi.tre
- emasterdetail.ui.swt;version="1.5.1",org.eclipse.emf.ecp.view.treemas
- terdetail.ui.swt.internal;version="1.5.1";x-internal:=true,org.eclips
- e.emf.edit.ui.action.ecp;version="1.5.1";x-internal:=true
+ swt;version="1.6.0";x-internal:=true,org.eclipse.emf.ecp.view.spi.tre
+ emasterdetail.ui.swt;version="1.6.0",org.eclipse.emf.ecp.view.treemas
+ terdetail.ui.swt.internal;version="1.6.0";x-internal:=true,org.eclips
+ e.emf.edit.ui.action.ecp;version="1.6.0";x-internal:=true
 Import-Package: org.eclipse.core.commands;version="0.0.0",
  org.eclipse.emf.edit.ui.dnd;version="0.0.0",
  org.eclipse.emf.edit.ui.provider;version="0.0.0",
+ org.eclipse.emfforms.spi.common.report;version="1.6.0",
+ org.eclipse.emfforms.spi.swt.core;version="1.6.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",
diff --git a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/build.properties b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/build.properties
index 461e561..9b54cf4 100644
--- a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/build.properties
+++ b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/build.properties
@@ -4,5 +4,6 @@
                .,\
                plugin.xml,\
                icons/,\
-               about.html
+               about.html,\
+               schema/
 src.includes = about.html
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 abc15f2..27c488d 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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/internal/treemasterdetail/ui/swt/Activator.java b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/src/org/eclipse/emf/ecp/view/internal/treemasterdetail/ui/swt/Activator.java
index 3fc71ae..4ea73c1 100644
--- a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/src/org/eclipse/emf/ecp/view/internal/treemasterdetail/ui/swt/Activator.java
+++ b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/src/org/eclipse/emf/ecp/view/internal/treemasterdetail/ui/swt/Activator.java
@@ -12,7 +12,8 @@
 package org.eclipse.emf.ecp.view.internal.treemasterdetail.ui.swt;
 
 import org.eclipse.core.runtime.Plugin;
-import org.eclipse.emf.ecp.view.spi.model.reporting.ReportService;
+import org.eclipse.emf.ecp.view.spi.swt.SWTRendererFactory;
+import org.eclipse.emfforms.spi.common.report.ReportService;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
 
@@ -51,9 +52,9 @@
 	}
 
 	/**
-	 * Returns the {@link ReportService}.
+	 * Returns the {@link SWTRendererFactory}.
 	 *
-	 * @return the {@link ReportService}
+	 * @return the {@link SWTRendererFactory}
 	 */
 	public ReportService getReportService() {
 		if (reportServiceReference == null) {
diff --git a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/src/org/eclipse/emf/ecp/view/spi/treemasterdetail/ui/swt/MasterDetailAction.java b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/src/org/eclipse/emf/ecp/view/spi/treemasterdetail/ui/swt/MasterDetailAction.java
index 7d01147..d29d068 100644
--- a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/src/org/eclipse/emf/ecp/view/spi/treemasterdetail/ui/swt/MasterDetailAction.java
+++ b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/src/org/eclipse/emf/ecp/view/spi/treemasterdetail/ui/swt/MasterDetailAction.java
@@ -13,6 +13,7 @@
 
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.viewers.TreeViewer;
 
 /**
  * @author Alexandra Buzila
@@ -21,6 +22,7 @@
  */
 public abstract class MasterDetailAction extends AbstractHandler {
 	private String label, imagePath;
+	private TreeViewer treeviewer;
 
 	/**
 	 * @param eObject the {@link EObject} on which to test if the action can be executed
@@ -60,4 +62,23 @@
 	void setImagePath(String imagePath) {
 		this.imagePath = imagePath;
 	}
+
+	/**
+	 * Sets the treeviewer of the tree master detail renderer.
+	 *
+	 * @param treeviewer the tree
+	 */
+	void setTreeViewer(TreeViewer treeviewer) {
+		this.treeviewer = treeviewer;
+	}
+
+	/**
+	 * Returns the treeviewer renderered by the tree master detail renderer.
+	 *
+	 * @return the tree
+	 * @since 1.6
+	 */
+	protected TreeViewer getTreeViewer() {
+		return treeviewer;
+	}
 }
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 7de9fc8..7e57c81 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
@@ -33,6 +33,8 @@
 import org.eclipse.emf.ecore.impl.DynamicEObjectImpl;
 import org.eclipse.emf.ecp.common.spi.ChildrenDescriptorCollector;
 import org.eclipse.emf.ecp.edit.internal.swt.util.OverlayImageDescriptor;
+import org.eclipse.emf.ecp.edit.spi.DeleteService;
+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;
@@ -48,16 +50,11 @@
 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.AbstractSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.swt.layout.GridDescriptionFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
 import org.eclipse.emf.ecp.view.treemasterdetail.model.VTreeMasterDetail;
 import org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.internal.RootObject;
 import org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.internal.TreeMasterDetailSelectionManipulatorHelper;
 import org.eclipse.emf.edit.command.AddCommand;
 import org.eclipse.emf.edit.command.CommandParameter;
-import org.eclipse.emf.edit.command.RemoveCommand;
 import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
 import org.eclipse.emf.edit.domain.EditingDomain;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
@@ -67,6 +64,11 @@
 import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;
 import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
 import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+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.jface.action.Action;
 import org.eclipse.jface.action.IMenuListener;
 import org.eclipse.jface.action.IMenuManager;
@@ -77,6 +79,7 @@
 import org.eclipse.jface.layout.GridLayoutFactory;
 import org.eclipse.jface.resource.ImageDescriptor;
 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;
@@ -117,6 +120,19 @@
 public class TreeMasterDetailSWTRenderer extends AbstractSWTRenderer<VTreeMasterDetail> {
 
 	/**
+	 * Default Constructor.
+	 *
+	 * @param vElement the view element to be rendered
+	 * @param viewContext The view model context
+	 * @param reportService the ReportService to use
+	 * @since 1.6
+	 */
+	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$
@@ -222,7 +238,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#dispose()
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#dispose()
 	 */
 	@Override
 	protected void dispose() {
@@ -233,7 +249,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#getGridDescription(SWTGridDescription)
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#getGridDescription(SWTGridDescription)
 	 */
 	@Override
 	public SWTGridDescription getGridDescription(SWTGridDescription gridDescription) {
@@ -246,7 +262,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#renderControl(org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell,
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#renderControl(org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell,
 	 *      org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
@@ -681,6 +697,7 @@
 				final MasterDetailAction command = (MasterDetailAction) e.createExecutableExtension("command"); //$NON-NLS-1$
 				command.setLabel(label);
 				command.setImagePath(imagePath);
+				command.setTreeViewer(treeViewer);
 
 				commands.add(command);
 
@@ -750,10 +767,16 @@
 			@Override
 			public void run() {
 				super.run();
-				for (final Object obj : selection.toList())
-				{
-					editingDomain.getCommandStack().execute(
-						RemoveCommand.create(editingDomain, obj));
+				DeleteService deleteService = getViewModelContext().getService(DeleteService.class);
+				if (deleteService == null) {
+					/*
+					 * #getService(Class<?>) will report to the reportservice if it could not be found
+					 * Use Default
+					 */
+					deleteService = new EMFDeleteServiceImpl();
+				}
+				for (final Object obj : selection.toList()) {
+					deleteService.deleteElement(obj);
 				}
 				treeViewer.setSelection(new StructuredSelection(getViewModelContext().getDomainModel()));
 			}
@@ -790,8 +813,7 @@
 			// TODO refactor
 			if (getViewModelContext().hasService(ReferenceService.class)) {
 				referenceService = getViewModelContext().getService(ReferenceService.class);
-			}
-			else {
+			} else {
 				referenceService = new DefaultReferenceService();
 			}
 		}
@@ -809,9 +831,8 @@
 					}
 					childComposite = createComposite();
 
-					final Object root = manipulateSelection(((RootObject) ((TreeViewer)
-						event.getSource()).getInput())
-							.getRoot());
+					final Object root = manipulateSelection(((RootObject) ((TreeViewer) event.getSource()).getInput())
+						.getRoot());
 					final Map<String, Object> context = new LinkedHashMap<String, Object>();
 					context.put(DETAIL_KEY, true);
 
@@ -822,9 +843,11 @@
 						if (vView.getChildren().isEmpty()) {
 							vView = ViewProviderHelper.getView((EObject) selected, context);
 						}
-
+						final ReferenceService referenceService = getViewModelContext().getService(
+							ReferenceService.class);
 						final ViewModelContext childContext = getViewModelContext()
-							.getChildContext((EObject) selected, getVElement(), vView);
+							.getChildContext((EObject) selected, getVElement(), vView,
+								new TreeMasterDetailReferenceService(referenceService));
 
 						manipulateViewContext(childContext);
 
@@ -834,8 +857,10 @@
 					/* child selected */
 					else {
 						final VView view = ViewProviderHelper.getView((EObject) selected, context);
+						final ReferenceService referenceService = getViewModelContext().getService(
+							ReferenceService.class);
 						final ViewModelContext childContext = getViewModelContext().getChildContext((EObject) selected,
-							getVElement(), view);
+							getVElement(), view, new TreeMasterDetailReferenceService(referenceService));
 
 						manipulateViewContext(childContext);
 						ECPSWTViewRenderer.INSTANCE.render(childComposite, childContext);
@@ -950,7 +975,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer#applyValidation()
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#applyValidation()
 	 */
 	@Override
 	protected void applyValidation() {
@@ -969,7 +994,94 @@
 				treeViewer.refresh();
 			}
 		});
+	}
 
+	private class TreeMasterDetailReferenceService implements ReferenceService {
+
+		private final ReferenceService delegate;
+
+		public TreeMasterDetailReferenceService(ReferenceService delegate) {
+			this.delegate = delegate;
+		}
+
+		/**
+		 * {@inheritDoc}
+		 *
+		 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelService#instantiate(org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
+		 */
+		@Override
+		public void instantiate(ViewModelContext context) {
+			// no op
+		}
+
+		/**
+		 * {@inheritDoc}
+		 *
+		 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelService#dispose()
+		 */
+		@Override
+		public void dispose() {
+			// no op
+		}
+
+		/**
+		 * {@inheritDoc}
+		 *
+		 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelService#getPriority()
+		 */
+		@Override
+		public int getPriority() {
+			if (delegate == null) {
+				return 0;
+			}
+			return delegate.getPriority() - 1;
+		}
+
+		/**
+		 * {@inheritDoc}
+		 *
+		 * @see org.eclipse.emf.ecp.edit.spi.ReferenceService#addNewModelElements(org.eclipse.emf.ecore.EObject,
+		 *      org.eclipse.emf.ecore.EReference)
+		 */
+		@Override
+		public void addNewModelElements(EObject eObject, EReference eReference) {
+			if (delegate == null) {
+				return;
+			}
+			delegate.addNewModelElements(eObject, eReference);
+		}
+
+		/**
+		 * {@inheritDoc}
+		 *
+		 * @see org.eclipse.emf.ecp.edit.spi.ReferenceService#addExistingModelElements(org.eclipse.emf.ecore.EObject,
+		 *      org.eclipse.emf.ecore.EReference)
+		 */
+		@Override
+		public void addExistingModelElements(EObject eObject, EReference eReference) {
+			if (delegate == null) {
+				return;
+			}
+			delegate.addExistingModelElements(eObject, eReference);
+		}
+
+		/**
+		 * {@inheritDoc}
+		 *
+		 * @see org.eclipse.emf.ecp.edit.spi.ReferenceService#openInNewContext(org.eclipse.emf.ecore.EObject)
+		 */
+		@Override
+		public void openInNewContext(EObject eObject) {
+			treeViewer.setSelection(new StructuredSelection(eObject), true);
+			final ISelection selection = treeViewer.getSelection();
+			if (!selection.isEmpty()) {
+				return;
+			}
+			if (delegate == null) {
+				return;
+			}
+			delegate.openInNewContext(eObject);
+		}
 	}
 
 }
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 5e7de65..f2df4d0 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,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms TreeMasterDetail Services
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.treemasterdetail.validation;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
 Require-Bundle: org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.context;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.ui.view;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.edit;bundle-version="[2.10.0,3.0.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.5.0,2.0.0)"
 Import-Package: org.eclipse.emf.edit.ui.provider;version="0.0.0",
  org.eclipse.jface.viewers;version="0.0.0"
 Export-Package: org.eclipse.emf.ecp.view.treemasterdetail.internal.val
- idation;version="1.5.1";x-internal:=true
+ idation;version="1.6.0";x-internal:=true
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 eabe971..1bc8d8a 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
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 05485b0..3a15396 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,12 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Unset Service
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.unset;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.5.0,2.0.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.5.0,2.0.0)"
-Export-Package: org.eclipse.emf.ecp.view.internal.unset;version="1.5.1
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)"
+Export-Package: org.eclipse.emf.ecp.view.internal.unset;version="1.6.0
  ";x-friends:="org.eclipse.emf.ecp.view.unset.test"
+Bundle-Activator: org.eclipse.emf.ecp.view.internal.unset.Activator
+Bundle-ActivationPolicy: lazy
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.6.0,2.0.0)"
diff --git a/bundles/org.eclipse.emf.ecp.view.unset/pom.xml b/bundles/org.eclipse.emf.ecp.view.unset/pom.xml
index 1d2c222..03e860c 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.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.0-SNAPSHOT</version>

 

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

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.unset/src/org/eclipse/emf/ecp/view/internal/unset/Activator.java b/bundles/org.eclipse.emf.ecp.view.unset/src/org/eclipse/emf/ecp/view/internal/unset/Activator.java
new file mode 100644
index 0000000..b1752c9
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.unset/src/org/eclipse/emf/ecp/view/internal/unset/Activator.java
@@ -0,0 +1,105 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.unset;
+
+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.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * The Class Activator.
+ */
+public class Activator extends Plugin {
+
+	/**
+	 * The constant holding the id of this plugin.
+	 */
+	public static final String PLUGIN_ID = "org.eclipse.emf.ecp.view.unset"; //$NON-NLS-1$
+
+	private static Activator plugin;
+	private ServiceReference<ReportService> reportServiceReference;
+
+	// BEGIN SUPRESS CATCH EXCEPTION
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.core.runtime.Plugin#start(org.osgi.framework.BundleContext)
+	 */
+	@Override
+	public void start(BundleContext bundleContext) throws Exception {
+		super.start(bundleContext);
+		plugin = this;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
+	 */
+	@Override
+	public void stop(BundleContext bundleContext) throws Exception {
+		plugin = null;
+		super.stop(bundleContext);
+	}
+
+	// END SUPRESS CATCH EXCEPTION
+	/**
+	 * Returns the instance of this Activator.
+	 *
+	 * @return the saved instance
+	 */
+	public static Activator getDefault() {
+		return plugin;
+	}
+
+	/**
+	 * Logs a {@link Throwable}.
+	 *
+	 * @param t the {@link Throwable} to log
+	 */
+	public static void log(Throwable t) {
+		getDefault().getLog().log(new Status(IStatus.ERROR, PLUGIN_ID, t.getMessage(), t));
+	}
+
+	/**
+	 * Returns the {@link ReportService}.
+	 *
+	 * @return the {@link ReportService}
+	 */
+	public ReportService getReportService() {
+		if (reportServiceReference == null) {
+			reportServiceReference = plugin.getBundle().getBundleContext()
+				.getServiceReference(ReportService.class);
+		}
+		return plugin.getBundle().getBundleContext().getService(reportServiceReference);
+	}
+
+	/**
+	 * Returns the {@link EMFFormsDatabinding} service.
+	 *
+	 * @return The {@link EMFFormsDatabinding}
+	 */
+	public EMFFormsDatabinding getEMFFormsDatabinding() {
+		final ServiceReference<EMFFormsDatabinding> serviceReference = plugin.getBundle().getBundleContext()
+			.getServiceReference(EMFFormsDatabinding.class);
+
+		final EMFFormsDatabinding service = plugin.getBundle().getBundleContext()
+			.getService(serviceReference);
+		plugin.getBundle().getBundleContext().ungetService(serviceReference);
+
+		return service;
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.view.unset/src/org/eclipse/emf/ecp/view/internal/unset/UnsetService.java b/bundles/org.eclipse.emf.ecp.view.unset/src/org/eclipse/emf/ecp/view/internal/unset/UnsetService.java
index ee8304c..e8ba8bf 100644
--- a/bundles/org.eclipse.emf.ecp.view.unset/src/org/eclipse/emf/ecp/view/internal/unset/UnsetService.java
+++ b/bundles/org.eclipse.emf.ecp.view.unset/src/org/eclipse/emf/ecp/view/internal/unset/UnsetService.java
@@ -11,27 +11,29 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.unset;
 
-import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
 import java.util.Map;
 import java.util.Set;
 
+import org.eclipse.core.databinding.observable.IObserving;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.Notifier;
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.common.util.TreeIterator;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
 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.ModelChangeAddRemoveListener;
 import org.eclipse.emf.ecp.view.spi.model.ModelChangeNotification;
 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.model.VViewPackage;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 
 /**
  * Unset service that, once instantiated, synchronizes the visible state of a
@@ -148,14 +150,22 @@
 	}
 
 	private void addControlToMap(VControl control) {
-		final Setting lastSetting = getSetting(control);
-		if (lastSetting == null) {
+		if (control.getDomainModelReference() == null) {
+			Activator.getDefault().getReportService().report(
+				new AbstractReport(String.format("The provided control [%1$s] has no defined DMR.", control), 1)); //$NON-NLS-1$
 			return;
 		}
-		final EObject eObject = lastSetting.getEObject();
-		final EStructuralFeature eStructuralFeature = lastSetting
-			.getEStructuralFeature();
-
+		IObservableValue observableValue;
+		try {
+			observableValue = Activator.getDefault().getEMFFormsDatabinding()
+				.getObservableValue(control.getDomainModelReference(), context.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+			return;
+		}
+		final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+		final EObject eObject = (EObject) ((IObserving) observableValue).getObserved();
+		observableValue.dispose();
 		if (!objectToFeatureMap.containsKey(eObject)) {
 			objectToFeatureMap
 				.put(eObject, new LinkedHashSet<FeatureWrapper>());
@@ -163,13 +173,13 @@
 		final Set<FeatureWrapper> features = objectToFeatureMap.get(eObject);
 		FeatureWrapper wrapper = null;
 		for (final FeatureWrapper w : features) {
-			if (w.isWrapperFor(eStructuralFeature)) {
+			if (w.isWrapperFor(structuralFeature)) {
 				wrapper = w;
 				break;
 			}
 		}
 		if (wrapper == null) {
-			wrapper = new FeatureWrapper(eStructuralFeature);
+			wrapper = new FeatureWrapper(structuralFeature);
 			features.add(wrapper);
 		}
 
@@ -180,13 +190,17 @@
 	}
 
 	private void removeControlFromMapAndUnsetIfNeeded(VControl control) {
-		final Setting lastSetting = getSetting(control);
-		if (lastSetting == null) {
+		IObservableValue observableValue;
+		try {
+			observableValue = Activator.getDefault().getEMFFormsDatabinding()
+				.getObservableValue(control.getDomainModelReference(), context.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
 			return;
 		}
-		final EObject eObject = lastSetting.getEObject();
-		final EStructuralFeature eStructuralFeature = lastSetting
-			.getEStructuralFeature();
+		final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+		final EObject eObject = (EObject) ((IObserving) observableValue).getObserved();
+		observableValue.dispose();
 		final Set<FeatureWrapper> wrappers = objectToFeatureMap
 			.get(eObject);
 		FeatureWrapper wrapper = null;
@@ -194,7 +208,7 @@
 			return;
 		}
 		for (final FeatureWrapper w : wrappers) {
-			if (w.isWrapperFor(eStructuralFeature)) {
+			if (w.isWrapperFor(structuralFeature)) {
 				wrapper = w;
 			}
 		}
@@ -203,7 +217,7 @@
 			.get(wrapper);
 		visibleControls.remove(control);
 		if (visibleControls.isEmpty()) {
-			eObject.eUnset(eStructuralFeature);
+			eObject.eUnset(structuralFeature);
 		}
 	}
 
@@ -260,23 +274,6 @@
 		}
 	}
 
-	private Setting getSetting(VControl control) {
-		final VDomainModelReference domainModelReference = control
-			.getDomainModelReference();
-		if (domainModelReference == null) {
-			return null;
-		}
-		final Iterator<Setting> settings = domainModelReference.getIterator();
-		Setting firstSetting = null;
-		while (settings.hasNext()) {
-			final Setting setting = settings.next();
-			if (firstSetting == null) {
-				firstSetting = setting;
-			}
-		}
-		return firstSetting;
-	}
-
 	/**
 	 * {@inheritDoc}
 	 *
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 52fd980..1e55e63 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,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms SWT Util RAP
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.util.swt.rap
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emf.ecp.view.internal.util.swt.rap;version
- ="1.5.1";x-internal:=true
+ ="1.6.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.5.0,2.0.0)",
- org.eclipse.rap.rwt;bundle-version="[2.2.0,3.0.0)"
+ org.eclipse.rap.rwt;bundle-version="[2.2.0,4.0.0)"
 Import-Package: org.osgi.framework;version="1.3.0"
 Bundle-Activator: org.eclipse.emf.ecp.view.internal.util.swt.rap.Activator
 Bundle-ActivationPolicy: lazy
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 0177a7c..3c28d65 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.util.swt/.gitignore b/bundles/org.eclipse.emf.ecp.view.util.swt/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.util.swt/.gitignore
@@ -0,0 +1 @@
+/bin/
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 a3b0a0d..2680266 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms SWT Util
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.util.swt
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Import-Package: org.eclipse.jface.resource;version="0.0.0",
@@ -11,5 +11,5 @@
 Service-Component: OSGI-INF/rcpImageRegistry.xml
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.emf.ecp.view.internal.util.swt;version="1.
- 5.1";x-internal:=true,org.eclipse.emf.ecp.view.spi.util.swt;version="
- 1.5.1"
+ 6.0";x-internal:=true,org.eclipse.emf.ecp.view.spi.util.swt;version="
+ 1.6.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 7a7aadc..56c590e 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.validation.bean.default/.gitignore b/bundles/org.eclipse.emf.ecp.view.validation.bean.default/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.validation.bean.default/.gitignore
@@ -0,0 +1 @@
+/bin/
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 16de134..0f8837f 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Default Bean Validation
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.validation.bean.default;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
@@ -11,4 +11,4 @@
  org.eclipse.emf.ecore;bundle-version="[2.9.0,3.0.0)"
 Import-Package: javax.validation
 Export-Package: org.eclipse.emf.ecp.view.internal.validation.bean;vers
- ion="1.5.1";x-internal:=true
+ ion="1.6.0";x-internal:=true
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 b9f27b8..b7b025e 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.validation.bean/.gitignore b/bundles/org.eclipse.emf.ecp.view.validation.bean/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.validation.bean/.gitignore
@@ -0,0 +1 @@
+/bin/
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 5d622c1..037e7bd 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms BeanValidation
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.validation.bean;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
@@ -13,6 +13,6 @@
  javax.validation.bootstrap,
  org.apache.commons.logging
 Export-Package: org.eclipse.emf.ecp.view.internal.validation.bean;vers
- ion="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.validation.bean
- ;version="1.5.1"
+ ion="1.6.0";x-internal:=true,org.eclipse.emf.ecp.view.validation.bean
+ ;version="1.6.0"
 Bundle-Activator: org.eclipse.emf.ecp.view.internal.validation.bean.Activator
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 087742d..cd84621 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.validation/.gitignore b/bundles/org.eclipse.emf.ecp.view.validation/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.validation/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.view.validation/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.validation/.settings/.api_filters
new file mode 100644
index 0000000..e7e2816
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.validation/.settings/.api_filters
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<component id="org.eclipse.emf.ecp.view.validation" version="2">
+    <resource path="META-INF/MANIFEST.MF">
+        <filter comment="EMFForms 1.6 SPI Change" id="923795461">
+            <message_arguments>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/validation/ValidationService.java" type="org.eclipse.emf.ecp.view.spi.validation.ValidationService">
+        <filter comment="EMFForms 1.6 SPI Change" id="403804204">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.validation.ValidationService"/>
+                <message_argument value="addValidationProvider(ValidationProvider, boolean)"/>
+            </message_arguments>
+        </filter>
+        <filter comment="EMFForms 1.6 SPI Change" id="403804204">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.validation.ValidationService"/>
+                <message_argument value="removeValidationProvider(ValidationProvider, boolean)"/>
+            </message_arguments>
+        </filter>
+    </resource>
+</component>
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 dc25c9a..683596d 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,19 +2,22 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Validation Service
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.validation;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.internal.validation.Activator
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.emf.ecp.view.context;bundle-version="[1.5.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.5.0,2.0.0)",
  org.eclipse.emf.ecp.common;bundle-version="[1.5.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.core.databinding.observable;bundle-version="[1.4.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emf.ecp.view.internal.validation;version="
- 1.5.1"; x-friends:="org.eclipse.emf.ecp.view.table.ui,  org.eclipse.e
+ 1.6.0"; x-friends:="org.eclipse.emf.ecp.view.table.ui,  org.eclipse.e
  mf.ecp.view.custom.ui,  org.eclipse.emf.ecp.edit.swt,  org.eclipse.em
  f.ecp.test.model",org.eclipse.emf.ecp.view.spi.validation;version="1.
- 5.1"
+ 6.0"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="1.6.0"
diff --git a/bundles/org.eclipse.emf.ecp.view.validation/pom.xml b/bundles/org.eclipse.emf.ecp.view.validation/pom.xml
index 7ee0ef7..04a6672 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.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.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/Activator.java b/bundles/org.eclipse.emf.ecp.view.validation/src/org/eclipse/emf/ecp/view/internal/validation/Activator.java
index a98bb18..cc0b58f 100644
--- a/bundles/org.eclipse.emf.ecp.view.validation/src/org/eclipse/emf/ecp/view/internal/validation/Activator.java
+++ b/bundles/org.eclipse.emf.ecp.view.validation/src/org/eclipse/emf/ecp/view/internal/validation/Activator.java
@@ -14,7 +14,10 @@
 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.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;

 import org.osgi.framework.BundleContext;

+import org.osgi.framework.ServiceReference;

 

 /**

  * The bundle activator.

@@ -71,4 +74,31 @@
 			new Status(IStatus.ERROR, Activator.getDefault().getBundle().getSymbolicName(), e.getMessage(), e));

 	}

 

+	/**

+	 * Returns the {@link ReportService}.

+	 *

+	 * @return the {@link ReportService}

+	 */

+	public ReportService getReportService() {

+		final BundleContext bundleContext = getBundle().getBundleContext();

+		final ServiceReference<ReportService> serviceReference =

+			bundleContext.getServiceReference(ReportService.class);

+		return bundleContext.getService(serviceReference);

+	}

+

+	/**

+	 * Returns the {@link EMFFormsDatabinding} service.

+	 *

+	 * @return The {@link EMFFormsDatabinding}

+	 */

+	public EMFFormsDatabinding getEMFFormsDatabinding() {

+		final ServiceReference<EMFFormsDatabinding> serviceReference = plugin.getBundle().getBundleContext()

+			.getServiceReference(EMFFormsDatabinding.class);

+

+		final EMFFormsDatabinding service = plugin.getBundle().getBundleContext()

+			.getService(serviceReference);

+		plugin.getBundle().getBundleContext().ungetService(serviceReference);

+

+		return service;

+	}

 }

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 56872c8..2a6a2e1 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
@@ -14,7 +14,6 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
 import java.util.LinkedList;
@@ -23,6 +22,8 @@
 import java.util.Queue;
 import java.util.Set;
 
+import org.eclipse.core.databinding.observable.IObserving;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.IExtensionRegistry;
@@ -58,6 +59,8 @@
 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.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 
 /**
  * Validation service that, once instantiated, synchronizes the validation result of a model element with its
@@ -91,14 +94,31 @@
 					if (domainModelReference == null) {
 						return;
 					}
-					final Iterator<Setting> settings = domainModelReference.getIterator();
+					IObservableValue observableValue;
+					try {
+						observableValue = Activator.getDefault().getEMFFormsDatabinding()
+							.getObservableValue(domainModelReference, context.getDomainModel());
+					} catch (final DatabindingFailedException ex) {
+						Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+						return;
+					}
+					final EObject observed = (EObject) ((IObserving) observableValue).getObserved();
+					validate(observed);
+					// TODO: add test case fo this
 					final Set<EObject> eObjectsToValidate = new LinkedHashSet<EObject>();
-					while (settings.hasNext()) {
-						eObjectsToValidate.add(settings.next().getEObject());
+					eObjectsToValidate.add(observed);
+					final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+					if (EReference.class.isInstance(structuralFeature)) {
+						if (structuralFeature.isMany()) {
+							@SuppressWarnings("unchecked")
+							final List<EObject> list = (List<EObject>) observableValue.getValue();
+							eObjectsToValidate.addAll(list);
+						} else {
+							eObjectsToValidate.add((EObject) observableValue.getValue());
+						}
 					}
-					for (final EObject eObject : eObjectsToValidate) {
-						validate(eObject);
-					}
+					validate(eObjectsToValidate);
+					observableValue.dispose();
 				}
 			}
 			if (!VElement.class.isInstance(notification.getNotifier())) {
@@ -123,14 +143,31 @@
 				if (domainModelReference == null) {
 					return;
 				}
-				final Iterator<Setting> settings = domainModelReference.getIterator();
+
+				IObservableValue observableValue;
+				try {
+					observableValue = Activator.getDefault().getEMFFormsDatabinding()
+						.getObservableValue(domainModelReference, context.getDomainModel());
+				} catch (final DatabindingFailedException ex) {
+					Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
+					return;
+				}
+				final EObject observed = (EObject) ((IObserving) observableValue).getObserved();
+				validate(observed);
 				final Set<EObject> eObjectsToValidate = new LinkedHashSet<EObject>();
-				while (settings.hasNext()) {
-					eObjectsToValidate.add(settings.next().getEObject());
+				eObjectsToValidate.add(observed);
+				final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+				if (EReference.class.isInstance(structuralFeature)) {
+					if (structuralFeature.isMany()) {
+						@SuppressWarnings("unchecked")
+						final List<EObject> list = (List<EObject>) observableValue.getValue();
+						eObjectsToValidate.addAll(list);
+					} else {
+						eObjectsToValidate.add((EObject) observableValue.getValue());
+					}
 				}
-				for (final EObject eObject : eObjectsToValidate) {
-					validate(eObject);
-				}
+				validate(eObjectsToValidate);
+				observableValue.dispose();
 			}
 		}
 
@@ -594,8 +631,21 @@
 	 */
 	@Override
 	public void addValidationProvider(ValidationProvider validationProvider) {
+		addValidationProvider(validationProvider, true);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.validation.ValidationService#addValidationProvider(org.eclipse.emf.ecp.view.spi.validation.ValidationProvider,
+	 *      boolean)
+	 */
+	@Override
+	public void addValidationProvider(ValidationProvider validationProvider, boolean revalidate) {
 		validationProviders.add(validationProvider);
-		validate(getAllEObjects(context.getDomainModel()));
+		if (revalidate) {
+			validate(getAllEObjects(context.getDomainModel()));
+		}
 	}
 
 	/**
@@ -606,8 +656,21 @@
 	 */
 	@Override
 	public void removeValidationProvider(ValidationProvider validationProvider) {
+		removeValidationProvider(validationProvider, true);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.validation.ValidationService#removeValidationProvider(org.eclipse.emf.ecp.view.spi.validation.ValidationProvider,
+	 *      boolean)
+	 */
+	@Override
+	public void removeValidationProvider(ValidationProvider validationProvider, boolean revalidate) {
 		validationProviders.remove(validationProvider);
-		validate(getAllEObjects(context.getDomainModel()));
+		if (revalidate) {
+			validate(getAllEObjects(context.getDomainModel()));
+		}
 	}
 
 	private final Set<ViewValidationListener> validationListeners = new LinkedHashSet<ViewValidationListener>();
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 f01d6e3..857d4ae 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
@@ -23,13 +23,23 @@
  */
 public interface ValidationService extends GlobalViewModelService {
 	/**
-	 * Adds a validation provider to the list of known validation providers.
+	 * Adds a validation provider to the list of known validation providers. The domain model will be revalidated after
+	 * the provider has been added.
 	 *
 	 * @param validationProvider the {@link ValidationProvider} to add
 	 */
 	void addValidationProvider(ValidationProvider validationProvider);
 
 	/**
+	 * Adds a validation provider to the list of known validation providers.
+	 *
+	 * @param validationProvider the {@link ValidationProvider} to add
+	 * @param revalidate whether to revalidate the domain model after the provider has been added
+	 * @since 1.6
+	 */
+	void addValidationProvider(ValidationProvider validationProvider, boolean revalidate);
+
+	/**
 	 * Removes a validation provider from the list of known validation providers.
 	 *
 	 * @param validationProvider the {@link ValidationProvider} to remove
@@ -37,6 +47,16 @@
 	void removeValidationProvider(ValidationProvider validationProvider);
 
 	/**
+	 * Removes a validation provider from the list of known validation providers. The domain model will be revalidated
+	 * after the provider has been removed
+	 *
+	 * @param validationProvider the {@link ValidationProvider} to remove
+	 * @param revalidate whether to revalidate the domain model after the provider has been removed
+	 * @since 1.6
+	 */
+	void removeValidationProvider(ValidationProvider validationProvider, boolean revalidate);
+
+	/**
 	 * Registers a listener that will receive {@link org.eclipse.emf.common.util.Diagnostic Diagnostic}s with severity
 	 * higher than {@link org.eclipse.emf.common.util.Diagnostic Diagnostic#OK}. After
 	 * registration the listener's {@link ViewValidationListener#onNewValidation(java.util.Set)} will be called with
diff --git a/bundles/org.eclipse.emf.ecp.view.vertical.model.edit/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.vertical.model.edit/.settings/.api_filters
index 7eabff3..126debc 100644
--- a/bundles/org.eclipse.emf.ecp.view.vertical.model.edit/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.vertical.model.edit/.settings/.api_filters
@@ -1,6 +1,12 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.emf.ecp.view.vertical.model.edit" version="2">
     <resource path="META-INF/MANIFEST.MF">
+        <filter comment="SPI Change in 1.6" id="923795461">
+            <message_arguments>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </message_arguments>
+        </filter>
         <filter comment="Change just synched versions" id="927989779">
             <message_arguments>
                 <message_argument value="1.4.0"/>
@@ -14,4 +20,28 @@
             </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.vertical.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.vertical.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.vertical.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
 </component>
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 cbb7436..729cfdd 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,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.vertical.model.edit;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.spi.vertical.model.provider.VerticalEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.view.spi.vertical.model.provider;v
- ersion="1.5.1"
+ ersion="1.6.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.5.0,2.0.0)";visibility:=reexport,
  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
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 b7cec86..155720e 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <groupId>org.eclipse.emf.ecp</groupId>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.vertical.model.edit/src/org/eclipse/emf/ecp/view/spi/vertical/model/provider/VerticalLayoutItemProvider.java b/bundles/org.eclipse.emf.ecp.view.vertical.model.edit/src/org/eclipse/emf/ecp/view/spi/vertical/model/provider/VerticalLayoutItemProvider.java
index 1710521..cae0b0e 100644
--- a/bundles/org.eclipse.emf.ecp.view.vertical.model.edit/src/org/eclipse/emf/ecp/view/spi/vertical/model/provider/VerticalLayoutItemProvider.java
+++ b/bundles/org.eclipse.emf.ecp.view.vertical.model.edit/src/org/eclipse/emf/ecp/view/spi/vertical/model/provider/VerticalLayoutItemProvider.java
@@ -16,6 +16,8 @@
 
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emf.ecp.view.spi.model.VElementUtil;
 import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
 import org.eclipse.emf.ecp.view.spi.model.provider.ContainedContainerItemProvider;
 import org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalFactory;
@@ -83,12 +85,15 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 *
-	 * @generated
+	 * @generated NOT
 	 */
 	@Override
 	public String getText(Object object)
 	{
-		final String label = ((VVerticalLayout) object).getName();
+		String label = ((VVerticalLayout) object).getName();
+		if (label == null) {
+			label = VElementUtil.getCleanName(VElement.class.cast(object));
+		}
 		return label == null || label.length() == 0 ?
 			getString("_UI_VerticalLayout_type") : //$NON-NLS-1$
 			getString("_UI_VerticalLayout_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
diff --git a/bundles/org.eclipse.emf.ecp.view.vertical.model/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.vertical.model/.settings/.api_filters
index d148fd4..c19b072 100644
--- a/bundles/org.eclipse.emf.ecp.view.vertical.model/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.vertical.model/.settings/.api_filters
@@ -1,10 +1,85 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.emf.ecp.view.vertical.model" version="2">
     <resource path="META-INF/MANIFEST.MF">
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.vertical.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.vertical.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.vertical.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/vertical/model/VVerticalPackage.java" type="org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalPackage">
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalPackage"/>
+                <message_argument value="VERTICAL_LAYOUT_FEATURE_COUNT"/>
+                <message_argument value="7"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalPackage"/>
+                <message_argument value="VERTICAL_LAYOUT__ATTACHMENTS"/>
+                <message_argument value="5"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalPackage"/>
+                <message_argument value="VERTICAL_LAYOUT__CHILDREN"/>
+                <message_argument value="6"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalPackage"/>
+                <message_argument value="VERTICAL_LAYOUT__DIAGNOSTIC"/>
+                <message_argument value="4"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalPackage"/>
+                <message_argument value="VERTICAL_LAYOUT__ENABLED"/>
+                <message_argument value="2"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalPackage"/>
+                <message_argument value="VERTICAL_LAYOUT__READONLY"/>
+                <message_argument value="3"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalPackage"/>
+                <message_argument value="VERTICAL_LAYOUT__VISIBLE"/>
+                <message_argument value="1"/>
             </message_arguments>
         </filter>
     </resource>
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 6e697e5..1b7e5b0 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,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.vertical.model;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.view.spi.vertical.model;version="1
- .5.1",org.eclipse.emf.ecp.view.spi.vertical.model.impl;version="1.5.1
- ",org.eclipse.emf.ecp.view.spi.vertical.model.util;version="1.5.1"
+ .6.0",org.eclipse.emf.ecp.view.spi.vertical.model.impl;version="1.6.0
+ ",org.eclipse.emf.ecp.view.spi.vertical.model.util;version="1.6.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.5.0,2.0.0)";visibility:=reexport
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 089a02c..9c19e2a 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <groupId>org.eclipse.emf.ecp</groupId>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/.project b/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/.project
index 785e0d6..4af809e 100644
--- a/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/.project
+++ b/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/.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.vertical.ui.swt/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/.settings/.api_filters
index fef53f3..0b17c0d 100644
--- a/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/.settings/.api_filters
@@ -7,8 +7,20 @@
                 <message_argument value="1.2.1"/>
             </message_arguments>
         </filter>
+        <filter comment="SPI Change in 1.6" id="923795461">
+            <message_arguments>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/emf/ecp/view/spi/vertical/swt/VerticalLayoutSWTRenderer.java" type="org.eclipse.emf.ecp.view.spi.vertical.swt.VerticalLayoutSWTRenderer">
+        <filter comment="SPI Change in 1.6" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.vertical.swt.VerticalLayoutSWTRenderer"/>
+                <message_argument value="VerticalLayoutSWTRenderer()"/>
+            </message_arguments>
+        </filter>
         <filter comment="This is SPI" id="338792546">
             <message_arguments>
                 <message_argument value="org.eclipse.emf.ecp.view.spi.vertical.swt.VerticalLayoutSWTRenderer"/>
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 67778ab..357fa0d 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
@@ -1,18 +1,23 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Vertical UI SWT
-Bundle-SymbolicName: org.eclipse.emf.ecp.view.vertical.ui.swt;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-SymbolicName: org.eclipse.emf.ecp.view.vertical.ui.swt
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.edit;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.5.0,2.0.0)"
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.6.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emf.ecp.view.spi.vertical.swt;version="1.5
- .1"
-Import-Package: org.eclipse.jface.layout;version="0.0.0",
+Export-Package: org.eclipse.emf.ecp.view.internal.vertical.swt;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.vertical.swt;version="1.6.0"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="1.6.0",
+ org.eclipse.emfforms.spi.core.services.databinding;version="1.6.0",
+ org.eclipse.jface.layout;version="0.0.0",
  org.eclipse.swt;version="0.0.0",
  org.eclipse.swt.widgets;version="0.0.0"
+Service-Component: OSGI-INF/verticalLayoutRendererService.xml
diff --git a/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/OSGI-INF/verticalLayoutRendererService.xml b/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/OSGI-INF/verticalLayoutRendererService.xml
new file mode 100644
index 0000000..4628bb9
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/OSGI-INF/verticalLayoutRendererService.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emf.ecp.view.vertical.ui.swt.rendererService">
+   <implementation class="org.eclipse.emf.ecp.view.internal.vertical.swt.VerticalLayoutSWTRendererService"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService"/>
+   </service>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/build.properties b/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/build.properties
index e5a949c..5689bc7 100644
--- a/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/build.properties
+++ b/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/build.properties
@@ -1,7 +1,7 @@
-source.. = src/
 output.. = bin/
 bin.includes = META-INF/,\
                .,\
-               plugin.xml,\
-               about.html
+               about.html,\
+               OSGI-INF/
 src.includes = about.html
+source.. = src/
diff --git a/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/plugin.xml b/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/plugin.xml
deleted file mode 100644
index 53855b8..0000000
--- a/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/plugin.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         point="org.eclipse.emf.ecp.ui.view.swt.renderers">
-      <renderer
-            renderer="org.eclipse.emf.ecp.view.spi.vertical.swt.VerticalLayoutSWTRenderer">
-         <staticTest
-               element="org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalLayout"
-               priority="1">
-         </staticTest>
-      </renderer>
-   </extension>
-
-</plugin>
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 1772810..223c09c 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.5.1-SNAPSHOT</version>
+    <version>1.6.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/src/org/eclipse/emf/ecp/view/internal/vertical/swt/VerticalLayoutSWTRendererService.java b/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/src/org/eclipse/emf/ecp/view/internal/vertical/swt/VerticalLayoutSWTRendererService.java
new file mode 100644
index 0000000..73ee66e
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/src/org/eclipse/emf/ecp/view/internal/vertical/swt/VerticalLayoutSWTRendererService.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.vertical.swt;
+
+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.vertical.model.VVerticalLayout;
+import org.eclipse.emf.ecp.view.spi.vertical.swt.VerticalLayoutSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+
+/**
+ * VerticalLayoutSWTRendererService which provides the VerticalLayoutSWTRenderer.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class VerticalLayoutSWTRendererService implements EMFFormsDIRendererService<VVerticalLayout> {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (!VVerticalLayout.class.isInstance(vElement)) {
+			return NOT_APPLICABLE;
+		}
+		return 1d;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 * 
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#getRendererClass()
+	 */
+	@Override
+	public Class<? extends AbstractSWTRenderer<VVerticalLayout>> getRendererClass() {
+		return VerticalLayoutSWTRenderer.class;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/src/org/eclipse/emf/ecp/view/spi/vertical/swt/VerticalLayoutSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/src/org/eclipse/emf/ecp/view/spi/vertical/swt/VerticalLayoutSWTRenderer.java
index 4e79129..0c5a605 100644
--- a/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/src/org/eclipse/emf/ecp/view/spi/vertical/swt/VerticalLayoutSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/src/org/eclipse/emf/ecp/view/spi/vertical/swt/VerticalLayoutSWTRenderer.java
@@ -1,52 +1,75 @@
-/*******************************************************************************

- * 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 v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- * Edagr Mueller - initial API and implementation

- * Eugen Neufeld - Refactoring

- ******************************************************************************/

-package org.eclipse.emf.ecp.view.spi.vertical.swt;

-

-import java.util.Collection;

-

-import org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer;

-import org.eclipse.emf.ecp.view.spi.model.VContainedElement;

-import org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalLayout;

-

-/**

- * The SWT Renderer for the {@link VVerticalLayout}. It renders all elements under each other.

- *

- * @author Eugen Neufeld

- * @since 1.2

- *

- */

-public class VerticalLayoutSWTRenderer extends ContainerSWTRenderer<VVerticalLayout> {

-

-	private static final String CONTROL_COLUMN = "org_eclipse_emf_ecp_ui_layout_vertical"; //$NON-NLS-1$

-

-	/**

-	 * {@inheritDoc}

-	 *

-	 * @see org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer#getChildren()

-	 */

-	@Override

-	protected Collection<VContainedElement> getChildren() {

-		return getVElement().getChildren();

-	}

-

-	/**

-	 * {@inheritDoc}

-	 *

-	 * @see org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer#getCustomVariant()

-	 */

-	@Override

-	protected String getCustomVariant() {

-		return CONTROL_COLUMN;

-	}

-

-}

+/*******************************************************************************
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Edagr Mueller - initial API and implementation
+ * Eugen Neufeld - Refactoring
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.vertical.swt;
+
+import java.util.Collection;
+
+import javax.inject.Inject;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer;
+import org.eclipse.emf.ecp.view.spi.model.VContainedElement;
+import org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalLayout;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
+
+/**
+ * The SWT Renderer for the {@link VVerticalLayout}. It renders all elements under each other.
+ *
+ * @author Eugen Neufeld
+ * @since 1.2
+ *
+ */
+public class VerticalLayoutSWTRenderer extends ContainerSWTRenderer<VVerticalLayout> {
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 * @param factory the {@link EMFFormsRendererFactory}
+	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
+	 * @since 1.6
+	 */
+	@Inject
+	public VerticalLayoutSWTRenderer(VVerticalLayout vElement, ViewModelContext viewContext,
+		ReportService reportService,
+		EMFFormsRendererFactory factory, EMFFormsDatabinding emfFormsDatabinding) {
+		super(vElement, viewContext, reportService, factory, emfFormsDatabinding);
+	}
+
+	private static final String CONTROL_COLUMN = "org_eclipse_emf_ecp_ui_layout_vertical"; //$NON-NLS-1$
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer#getChildren()
+	 */
+	@Override
+	protected Collection<VContainedElement> getChildren() {
+		return getVElement().getChildren();
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer#getCustomVariant()
+	 */
+	@Override
+	protected String getCustomVariant() {
+		return CONTROL_COLUMN;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.viewproxy.model.edit/.gitignore b/bundles/org.eclipse.emf.ecp.view.viewproxy.model.edit/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.viewproxy.model.edit/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.view.viewproxy.model.edit/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.viewproxy.model.edit/.settings/.api_filters
index 643f270..0c0c51a 100644
--- a/bundles/org.eclipse.emf.ecp.view.viewproxy.model.edit/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.viewproxy.model.edit/.settings/.api_filters
@@ -1,10 +1,34 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.emf.ecp.view.viewproxy.model.edit" version="2">
     <resource path="META-INF/MANIFEST.MF">
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model.edit"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.viewproxy.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.viewproxy.model.edit_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.viewproxy.model.edit_1.5.0"/>
             </message_arguments>
         </filter>
     </resource>
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 a28e666..3043e93 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,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.viewproxy.model.edit;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.internal.viewproxy.model.provider.ViewproxyEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.view.internal.viewproxy.model.prov
- ider;version="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.spi.vi
- ewproxy.model.provider;version="1.5.1"
+ ider;version="1.6.0";x-internal:=true,org.eclipse.emf.ecp.view.spi.vi
+ ewproxy.model.provider;version="1.6.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.5.0,2.0.0)";visibility:=reexport,
  org.eclipse.emf.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
diff --git a/bundles/org.eclipse.emf.ecp.view.viewproxy.model.edit/plugin.properties b/bundles/org.eclipse.emf.ecp.view.viewproxy.model.edit/plugin.properties
index 1a5781f..3c64256 100644
--- a/bundles/org.eclipse.emf.ecp.view.viewproxy.model.edit/plugin.properties
+++ b/bundles/org.eclipse.emf.ecp.view.viewproxy.model.edit/plugin.properties
@@ -9,7 +9,7 @@
 # Johannes Faltermeier - initial API and implementation
 
 pluginName = Viewproxy Edit Support
-providerName = www.example.org
+providerName = Eclipse Modeling Project
 
 _UI_CreateChild_text = {0}
 _UI_CreateChild_text2 = {1} {0}
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 396dd49..b7cc63a 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.5.1-SNAPSHOT</version>
+    <version>1.6.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.viewproxy.model/.gitignore b/bundles/org.eclipse.emf.ecp.view.viewproxy.model/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.viewproxy.model/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emf.ecp.view.viewproxy.model/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.viewproxy.model/.settings/.api_filters
index 59b2dd0..561a733 100644
--- a/bundles/org.eclipse.emf.ecp.view.viewproxy.model/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.viewproxy.model/.settings/.api_filters
@@ -1,10 +1,88 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.emf.ecp.view.viewproxy.model" version="2">
     <resource path="META-INF/MANIFEST.MF">
-        <filter comment="There was no change that would require us to update the minor version.." id="929038356">
+        <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
-                <message_argument value="1.5.1"/>
-                <message_argument value="org.eclipse.emf.ecp.view.model"/>
+                <message_argument value="1.6.0"/>
+                <message_argument value="1.5.0"/>
+            </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">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.AbstractReport"/>
+                <message_argument value="org.eclipse.emf.ecp.view.viewproxy.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportService"/>
+                <message_argument value="org.eclipse.emf.ecp.view.viewproxy.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="META-INF/MANIFEST.MF" type="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer">
+        <filter comment="SPI Change in 1.6" id="305422471">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.model.reporting.ReportServiceConsumer"/>
+                <message_argument value="org.eclipse.emf.ecp.view.viewproxy.model_1.5.0"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/viewproxy/model/VViewproxyPackage.java">
+        <filter comment="Changes due to new label field in 1.6" id="0"/>
+    </resource>
+    <resource path="src/org/eclipse/emf/ecp/view/spi/viewproxy/model/VViewproxyPackage.java" type="org.eclipse.emf.ecp.view.spi.viewproxy.model.VViewproxyPackage">
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.viewproxy.model.VViewproxyPackage"/>
+                <message_argument value="VIEW_PROXY_FEATURE_COUNT"/>
+                <message_argument value="7"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.viewproxy.model.VViewproxyPackage"/>
+                <message_argument value="VIEW_PROXY__ATTACHMENTS"/>
+                <message_argument value="5"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.viewproxy.model.VViewproxyPackage"/>
+                <message_argument value="VIEW_PROXY__DIAGNOSTIC"/>
+                <message_argument value="4"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.viewproxy.model.VViewproxyPackage"/>
+                <message_argument value="VIEW_PROXY__ENABLED"/>
+                <message_argument value="2"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.viewproxy.model.VViewproxyPackage"/>
+                <message_argument value="VIEW_PROXY__ID"/>
+                <message_argument value="6"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.viewproxy.model.VViewproxyPackage"/>
+                <message_argument value="VIEW_PROXY__READONLY"/>
+                <message_argument value="3"/>
+            </message_arguments>
+        </filter>
+        <filter comment="Changes due to new label field in 1.6" id="388194388">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.viewproxy.model.VViewproxyPackage"/>
+                <message_argument value="VIEW_PROXY__VISIBLE"/>
+                <message_argument value="1"/>
             </message_arguments>
         </filter>
     </resource>
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 228835f..dec01fd 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,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.viewproxy.model;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.view.internal.viewproxy.resolver;v
- ersion="1.5.1",org.eclipse.emf.ecp.view.spi.viewproxy.model;version="
- 1.5.1",org.eclipse.emf.ecp.view.spi.viewproxy.model.impl;version="1.5
- .1",org.eclipse.emf.ecp.view.spi.viewproxy.model.util;version="1.5.1"
- ,org.eclipse.emf.ecp.view.spi.viewproxy.resolver;version="1.5.1"
+ ersion="1.6.0",org.eclipse.emf.ecp.view.spi.viewproxy.model;version="
+ 1.6.0",org.eclipse.emf.ecp.view.spi.viewproxy.model.impl;version="1.6
+ .0",org.eclipse.emf.ecp.view.spi.viewproxy.model.util;version="1.6.0"
+ ,org.eclipse.emf.ecp.view.spi.viewproxy.resolver;version="1.6.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.5.0,2.0.0)";visibility:=reexport,
diff --git a/bundles/org.eclipse.emf.ecp.view.viewproxy.model/plugin.properties b/bundles/org.eclipse.emf.ecp.view.viewproxy.model/plugin.properties
index 4f7ec5a..e1ea8f9 100644
--- a/bundles/org.eclipse.emf.ecp.view.viewproxy.model/plugin.properties
+++ b/bundles/org.eclipse.emf.ecp.view.viewproxy.model/plugin.properties
@@ -9,4 +9,4 @@
 # Johannes Faltermeier - initial API and implementation
 
 pluginName = Viewproxy Model
-providerName = www.example.org
+providerName = Eclipse Modeling Project
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 d9832fd..2e23980 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.5.1-SNAPSHOT</version>
+    <version>1.6.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.workspace.core/.gitignore b/bundles/org.eclipse.emf.ecp.workspace.core/.gitignore
index 934e0e0..bf56436 100644
--- a/bundles/org.eclipse.emf.ecp.workspace.core/.gitignore
+++ b/bundles/org.eclipse.emf.ecp.workspace.core/.gitignore
@@ -1,2 +1,3 @@
 /bin
 /target
+/bin/
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 6e3d282..651d64d 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Workspace Integration Core
 Bundle-SymbolicName: org.eclipse.emf.ecp.workspace.core;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.workspace.internal.core.Activator
 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)",
@@ -11,6 +11,6 @@
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.workspace.internal.core;version="1
- .5.1";x-friends:="org.eclipse.emf.ecp.workspace.ui,org.eclipse.emf.ec
+ .6.0";x-friends:="org.eclipse.emf.ecp.workspace.ui,org.eclipse.emf.ec
  p.ui.view.editor.controls"
 Bundle-Vendor: Eclipse Modeling Project
diff --git a/bundles/org.eclipse.emf.ecp.workspace.core/pom.xml b/bundles/org.eclipse.emf.ecp.workspace.core/pom.xml
index e5c7711..f24829c 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.workspace.core/src/org/eclipse/emf/ecp/workspace/internal/core/WorkspaceProvider.java b/bundles/org.eclipse.emf.ecp.workspace.core/src/org/eclipse/emf/ecp/workspace/internal/core/WorkspaceProvider.java
index 294c682..3780593 100644
--- a/bundles/org.eclipse.emf.ecp.workspace.core/src/org/eclipse/emf/ecp/workspace/internal/core/WorkspaceProvider.java
+++ b/bundles/org.eclipse.emf.ecp.workspace.core/src/org/eclipse/emf/ecp/workspace/internal/core/WorkspaceProvider.java
@@ -66,7 +66,13 @@
 	/** Root URI Property Name. */

 	public static final String PROP_ROOT_URI = "rootURI"; //$NON-NLS-1$

 

-	/** The Workspace Provider Instance. */

+	/**

+	 * The Workspace Provider Instance.

+	 *

+	 * @deprecated use ECPUtil.getECPProviderRegistry().getProvider(WorkspaceProvider.NAME) instead

+	 *

+	 */

+	@Deprecated

 	static WorkspaceProvider INSTANCE;

 

 	/**

diff --git a/bundles/org.eclipse.emf.ecp.workspace.ui/.gitignore b/bundles/org.eclipse.emf.ecp.workspace.ui/.gitignore
index 934e0e0..bf56436 100644
--- a/bundles/org.eclipse.emf.ecp.workspace.ui/.gitignore
+++ b/bundles/org.eclipse.emf.ecp.workspace.ui/.gitignore
@@ -1,2 +1,3 @@
 /bin
 /target
+/bin/
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 7eb4589..ab21881 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,7 +2,7 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: ECP Workspace Integration UI

 Bundle-SymbolicName: org.eclipse.emf.ecp.workspace.ui;singleton:=true

-Bundle-Version: 1.5.1.qualifier

+Bundle-Version: 1.6.0.qualifier

 Bundle-Activator: org.eclipse.emf.ecp.workspace.internal.ui.Activator

 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)",

@@ -14,8 +14,8 @@
  org.eclipse.emf.ecp.common.ui;bundle-version="[1.5.0,2.0.0)"

 Bundle-ActivationPolicy: lazy

 Bundle-RequiredExecutionEnvironment: JavaSE-1.6

-Export-Package: org.eclipse.emf.ecp.workspace.internal.ui;version="1.5

- .1";x-internal:=true

+Export-Package: org.eclipse.emf.ecp.workspace.internal.ui;version="1.6

+ .0";x-internal:=true

 Import-Package: org.eclipse.core.commands;version="0.0.0",

  org.eclipse.jface.action;version="0.0.0",

  org.eclipse.jface.dialogs;version="0.0.0",

diff --git a/bundles/org.eclipse.emf.ecp.workspace.ui/pom.xml b/bundles/org.eclipse.emf.ecp.workspace.ui/pom.xml
index a33303f..d6689b7 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.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.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/.gitignore b/bundles/org.eclipse.emf.rap.edit.ui.minimal/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emf.rap.edit.ui.minimal/.gitignore
@@ -0,0 +1 @@
+/bin/
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 7517ea9..9caa0a5 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
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 de3d901..e118de9 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.checkstyle b/bundles/org.eclipse.emfforms.common/.checkstyle
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.checkstyle
copy to bundles/org.eclipse.emfforms.common/.checkstyle
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.classpath b/bundles/org.eclipse.emfforms.common/.classpath
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.classpath
copy to bundles/org.eclipse.emfforms.common/.classpath
diff --git a/bundles/org.eclipse.emfforms.common/.gitignore b/bundles/org.eclipse.emfforms.common/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.common/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emfforms.common/.project b/bundles/org.eclipse.emfforms.common/.project
new file mode 100644
index 0000000..23b6241
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.common/.project
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.common</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>com.wuetherich.osgi.ds.annotations.dsAnnotationBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<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.api.tools.apiAnalysisBuilder</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>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.view.table.editor/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.emfforms.common/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.resources.prefs
copy to bundles/org.eclipse.emfforms.common/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.emfforms.common/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.runtime.prefs
copy to bundles/org.eclipse.emfforms.common/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emfforms.common/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.common/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..66c53c1
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.common/.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.editor/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.emfforms.common/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.launching.prefs
copy to bundles/org.eclipse.emfforms.common/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.emfforms.common/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.ui.prefs
rename to bundles/org.eclipse.emfforms.common/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.emfforms.common/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to bundles/org.eclipse.emfforms.common/.settings/org.eclipse.ltk.core.refactoring.prefs
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
new file mode 100644
index 0000000..cc2c025
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.common/.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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.emfforms.common/.settings/org.eclipse.pde.core.prefs
similarity index 100%
rename from examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.pde.core.prefs
rename to bundles/org.eclipse.emfforms.common/.settings/org.eclipse.pde.core.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.emfforms.common/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.prefs
copy to bundles/org.eclipse.emfforms.common/.settings/org.eclipse.pde.prefs
diff --git a/bundles/org.eclipse.emfforms.common/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.common/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..c13015b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.common/META-INF/MANIFEST.MF
@@ -0,0 +1,13 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMFForms Common
+Bundle-SymbolicName: org.eclipse.emfforms.common
+Bundle-Version: 1.6.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Export-Package: org.eclipse.emfforms.internal.common.report;version="1.6.0";x-internal:=true,
+ org.eclipse.emfforms.spi.common.locale;version="1.6.0",
+ org.eclipse.emfforms.spi.common.report;version="1.6.0"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Service-Component: OSGI-INF/org.eclipse.emfforms.internal.common.report.ReportServiceImpl.xml
+Import-Package: org.osgi.service.component.annotations;version="[1.1.0,2.0.0)";resolution:=optional
+Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emfforms.common/OSGI-INF/org.eclipse.emfforms.internal.common.report.ReportServiceImpl.xml b/bundles/org.eclipse.emfforms.common/OSGI-INF/org.eclipse.emfforms.internal.common.report.ReportServiceImpl.xml
new file mode 100644
index 0000000..3b7dabe
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.common/OSGI-INF/org.eclipse.emfforms.internal.common.report.ReportServiceImpl.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--Generated by DS Annotation Builder [src/org/eclipse/emfforms/internal/common/report/ReportServiceImpl.java]-->
+<scr:component name="org.eclipse.emfforms.internal.common.report.ReportServiceImpl" xmlns:scr="http://www.osgi.org/xmlns/scr/v1.0.0">
+    <implementation class="org.eclipse.emfforms.internal.common.report.ReportServiceImpl"/>
+    <service>
+        <provide interface="org.eclipse.emfforms.spi.common.report.ReportService"/>
+    </service>
+    <reference name="Consumer" interface="org.eclipse.emfforms.spi.common.report.ReportServiceConsumer" cardinality="0..n" policy="dynamic" bind="addConsumer" unbind="removeConsumer"/>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/about.html b/bundles/org.eclipse.emfforms.common/about.html
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/about.html
copy to bundles/org.eclipse.emfforms.common/about.html
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/build.properties b/bundles/org.eclipse.emfforms.common/build.properties
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/build.properties
rename to bundles/org.eclipse.emfforms.common/build.properties
diff --git a/bundles/org.eclipse.emfforms.common/pom.xml b/bundles/org.eclipse.emfforms.common/pom.xml
new file mode 100644
index 0000000..99769a4
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.common/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.6.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.6.0-SNAPSHOT</version>
+  <packaging>eclipse-plugin</packaging>
+
+</project>
diff --git a/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/internal/common/report/ReportServiceImpl.java b/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/internal/common/report/ReportServiceImpl.java
new file mode 100644
index 0000000..d8c0d7c
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/internal/common/report/ReportServiceImpl.java
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Edgar Mueller - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.common.report;
+
+import java.util.ArrayList;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.common.report.ReportServiceConsumer;
+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;
+
+/**
+ * Implementation of a {@link ReportService}.
+ *
+ * @author emueller
+ */
+@Component
+public class ReportServiceImpl implements ReportService {
+
+	private final List<AbstractReport> reports;
+	private final Set<ReportServiceConsumer> consumers;
+
+	/**
+	 * Constructor.
+	 */
+	public ReportServiceImpl() {
+		reports = new ArrayList<AbstractReport>();
+		consumers = new LinkedHashSet<ReportServiceConsumer>();
+	}
+
+	/**
+	 * Report an {@link AbstractReport} to the service.
+	 *
+	 * @param reportEntity
+	 *            the report entity
+	 */
+	@Override
+	public void report(AbstractReport reportEntity) {
+		reports.add(reportEntity);
+		for (final ReportServiceConsumer consumer : consumers) {
+			consumer.reported(reportEntity);
+		}
+	}
+
+	/**
+	 * Returns all ReportEntities.
+	 *
+	 * @return all ReportEntities
+	 */
+	@Override
+	public List<AbstractReport> getReports() {
+		return reports;
+	}
+
+	/**
+	 * Discards all ReportEntities.
+	 */
+	@Override
+	public void clearReports() {
+		reports.clear();
+	}
+
+	/**
+	 *
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.common.report.ReportService#addConsumer(org.eclipse.emfforms.spi.common.report.ReportServiceConsumer)
+	 */
+	@Override
+	@Reference(cardinality = ReferenceCardinality.MULTIPLE, policy = ReferencePolicy.DYNAMIC)
+	public void addConsumer(ReportServiceConsumer consumer) {
+		consumers.add(consumer);
+	}
+
+	/**
+	 *
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.common.report.ReportService#removeConsumer(org.eclipse.emfforms.spi.common.report.ReportServiceConsumer)
+	 */
+	@Override
+	public void removeConsumer(ReportServiceConsumer consumer) {
+		consumers.remove(consumer);
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/spi/common/locale/AbstractEMFFormsLocaleProvider.java b/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/spi/common/locale/AbstractEMFFormsLocaleProvider.java
new file mode 100644
index 0000000..b0354d9
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/spi/common/locale/AbstractEMFFormsLocaleProvider.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.common.locale;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+
+/**
+ * Abstract implementation of the EMF Forms provider for {@link java.util.Locale Locales}.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public abstract class AbstractEMFFormsLocaleProvider implements EMFFormsLocaleProvider {
+
+	private final Set<EMFFormsLocaleChangeListener> listeners = new LinkedHashSet<EMFFormsLocaleChangeListener>();
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleProvider#addEMFFormsLocaleChangeListener(org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleChangeListener)
+	 */
+	@Override
+	public void addEMFFormsLocaleChangeListener(EMFFormsLocaleChangeListener listener) {
+		listeners.add(listener);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleProvider#removeEMFFormsLocaleChangeListener(org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleChangeListener)
+	 */
+	@Override
+	public void removeEMFFormsLocaleChangeListener(EMFFormsLocaleChangeListener listener) {
+		listeners.remove(listener);
+	}
+
+	/**
+	 * Notify listeners about a locale change.
+	 */
+	protected void notifyListeners() {
+		for (final EMFFormsLocaleChangeListener localeChangeListener : listeners) {
+			localeChangeListener.notifyLocaleChange();
+		}
+	}
+}
diff --git a/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/spi/common/locale/EMFFormsLocaleChangeListener.java b/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/spi/common/locale/EMFFormsLocaleChangeListener.java
new file mode 100644
index 0000000..52eb305
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/spi/common/locale/EMFFormsLocaleChangeListener.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.common.locale;
+
+
+/**
+ * EMF Forms locale change listener.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public interface EMFFormsLocaleChangeListener {
+
+	/**
+	 * Notify about a locale change.
+	 */
+	void notifyLocaleChange();
+}
diff --git a/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/spi/common/locale/EMFFormsLocaleProvider.java b/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/spi/common/locale/EMFFormsLocaleProvider.java
new file mode 100644
index 0000000..a658226
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/spi/common/locale/EMFFormsLocaleProvider.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.common.locale;
+
+import java.util.Locale;
+
+/**
+ * EMF Forms provider for {@link Locale Locales}.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public interface EMFFormsLocaleProvider {
+
+	/**
+	 * Returns the current locale service.
+	 *
+	 * @return the current {@link Locale}
+	 */
+	Locale getLocale();
+
+	/**
+	 * Add an EMFFormsLocaleChangeListener that gets notified about locale changes.
+	 * 
+	 * @param listener The EMFFormsLocaleChangeListener to add
+	 */
+	void addEMFFormsLocaleChangeListener(EMFFormsLocaleChangeListener listener);
+
+	/**
+	 * Remove an EMFFormsLocaleChangeListener.
+	 * 
+	 * @param listener The EMFFormsLocaleChangeListener to remove
+	 */
+	void removeEMFFormsLocaleChangeListener(EMFFormsLocaleChangeListener listener);
+}
diff --git a/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/spi/common/report/AbstractReport.java b/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/spi/common/report/AbstractReport.java
new file mode 100644
index 0000000..58dd595
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/spi/common/report/AbstractReport.java
@@ -0,0 +1,178 @@
+/*******************************************************************************

+ * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.

+ *

+ * All rights reserved. This program and the accompanying materials

+ * are made available under the terms of the Eclipse Public License v1.0

+ * which accompanies this distribution, and is available at

+ * http://www.eclipse.org/legal/epl-v10.html

+ *

+ * Contributors:

+ * Edgar Mueller - initial API and implementation

+ ******************************************************************************/

+package org.eclipse.emfforms.spi.common.report;

+

+/**

+ * Common base type for reports that may be reported.

+ *

+ * @author emueller

+ * @since 1.5

+ *

+ */

+public class AbstractReport {

+

+	private Throwable exception;

+	private String message;

+	private final int severity;

+

+	/**

+	 * <p>

+	 * Default constructor.

+	 * </p>

+	 *

+	 * Sets the severity to <code>IStatus.ERROR</code>.

+	 */

+	public AbstractReport() {

+		exception = null;

+		severity = 4; // == IStatus.ERROR

+	}

+

+	/**

+	 * <p>

+	 * Constructor.

+	 * </p>

+	 *

+	 * Sets the severity to <code>IStatus.ERROR</code>.

+	 *

+	 * @param exception

+	 *            the exception this report is based on

+	 */

+	public AbstractReport(Throwable exception) {

+		this.exception = exception;

+		severity = 4; // == IStatus.ERROR

+	}

+

+	/**

+	 * <p>

+	 * Constructor.

+	 * </p>

+	 *

+	 * Sets the severity to <code>IStatus.ERROR</code>.

+	 *

+	 * @param message

+	 *            the report message

+	 */

+	public AbstractReport(String message) {

+		this.message = message;

+		severity = 4; // == IStatus.ERROR

+	}

+

+	/**

+	 * <p>

+	 * Constructor.

+	 * </p>

+	 *

+	 * Sets the severity to <code>IStatus.ERROR</code>.

+	 *

+	 * @param message

+	 *            the report message

+	 * @param severity

+	 *            the severity of the report

+	 */

+	public AbstractReport(String message, int severity) {

+		this.message = message;

+		this.severity = severity;

+	}

+

+	/**

+	 * <p>

+	 * Constructor.

+	 * </p>

+	 *

+	 * Sets the severity to <code>IStatus.ERROR</code>.

+	 *

+	 * @param exception

+	 *            the exception this report is based on

+	 * @param message

+	 *            the report message

+	 */

+	public AbstractReport(Throwable exception, String message) {

+		this.exception = exception;

+		this.message = message;

+		severity = 4; // == IStatus.ERROR

+	}

+

+	/**

+	 * Constructor.

+	 *

+	 * @param exception

+	 *            the exception this report is based on

+	 * @param severity

+	 *            the severity of the report

+	 */

+	public AbstractReport(Throwable exception, int severity) {

+		this.exception = exception;

+		this.severity = severity;

+	}

+

+	/**

+	 * Returns the report message.

+	 *

+	 * @return the report message

+	 */

+	public String getMessage() {

+		return message;

+	}

+

+	/**

+	 * Whether this report is based upon an exception.

+	 *

+	 * @return {@code true}, if this report is based upon an exception, {@code false} otherwise

+	 */

+	public boolean hasException() {

+		return getException() != null;

+	}

+

+	/**

+	 * Returns the exception this report is based on, if any.

+	 *

+	 * @return the exception this report is based on, if any, otherwise {@code null}

+	 *

+	 *

+	 * @see #hasException()

+	 */

+	public Throwable getException() {

+		return exception;

+	}

+

+	/**

+	 * Returns the status of this report.

+	 *

+	 * @return the status of this report

+	 *

+	 */

+	public int getSeverity() {

+		return severity;

+	}

+

+	/**

+	 * Sets the exception this report is based on.

+	 *

+	 * @param exception

+	 *            the exception this report is based on

+	 *

+	 * @see #hasException()

+	 */

+	protected void setException(Throwable exception) {

+		this.exception = exception;

+	}

+

+	/**

+	 * Sets the report' message.

+	 *

+	 * @param message

+	 *            the report message to set

+	 */

+	protected void setMessage(String message) {

+		this.message = message;

+	}

+}

diff --git a/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/spi/common/report/ReportService.java b/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/spi/common/report/ReportService.java
new file mode 100644
index 0000000..657d3d7
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/spi/common/report/ReportService.java
@@ -0,0 +1,60 @@
+/*******************************************************************************

+ * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.

+ *

+ * All rights reserved. This program and the accompanying materials

+ * are made available under the terms of the Eclipse Public License v1.0

+ * which accompanies this distribution, and is available at

+ * http://www.eclipse.org/legal/epl-v10.html

+ *

+ * Contributors:

+ * Edgar Mueller - initial API and implementation

+ ******************************************************************************/

+package org.eclipse.emfforms.spi.common.report;

+

+import java.util.List;

+

+/**

+ * Service for reporting and aggregating errors.

+ *

+ * @author emueller

+ * @since 1.5

+ */

+public interface ReportService {

+

+	/**

+	 * Report an {@link AbstractReport} to the service.

+	 *

+	 * @param reportEntity

+	 *            the report entity

+	 */

+	void report(AbstractReport reportEntity);

+

+	/**

+	 * Returns all ReportEntities.

+	 *

+	 * @return all ReportEntities

+	 */

+	List<AbstractReport> getReports();

+

+	/**

+	 * Discards all ReportEntities.

+	 */

+	void clearReports();

+

+	/**

+	 * Adds a {@link ReportServiceConsumer} that consumes {@code ReportEntities}.

+	 *

+	 * @param consumer

+	 *            a {@link ReportServiceConsumer}

+	 */

+	void addConsumer(ReportServiceConsumer consumer);

+

+	/**

+	 * Removes a {@link ReportServiceConsumer}.

+	 *

+	 * @param consumer

+	 *            the consumer to be removed

+	 */

+	void removeConsumer(ReportServiceConsumer consumer);

+

+}

diff --git a/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/spi/common/report/ReportServiceConsumer.java b/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/spi/common/report/ReportServiceConsumer.java
new file mode 100644
index 0000000..b08a233
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/spi/common/report/ReportServiceConsumer.java
@@ -0,0 +1,33 @@
+/*******************************************************************************

+ * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.

+ *

+ * All rights reserved. This program and the accompanying materials

+ * are made available under the terms of the Eclipse Public License v1.0

+ * which accompanies this distribution, and is available at

+ * http://www.eclipse.org/legal/epl-v10.html

+ *

+ * Contributors:

+ * Edgar Mueller - initial API and implementation

+ ******************************************************************************/

+package org.eclipse.emfforms.spi.common.report;

+

+

+/**

+ * Common base types for any {@link AbstractReport} consumer that may

+ * be added to the {@link ReportService} in order to be notified.

+ *

+ * @author emueller

+ * @since 1.5

+ */

+public interface ReportServiceConsumer {

+

+	/**

+	 * Called when a {@link AbstractReport} has been received

+	 * by the {@link ReportService}.

+	 *

+	 * @param reportEntity

+	 *            the received {@link AbstractReport}

+	 */

+	void reported(AbstractReport reportEntity);

+

+}

diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.checkstyle b/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/.checkstyle
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.checkstyle
copy to bundles/org.eclipse.emfforms.core.services.databinding.featurepath/.checkstyle
diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/.classpath b/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/.classpath
new file mode 100644
index 0000000..8a8f166
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/.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.emfforms.core.services.databinding.featurepath/.gitignore b/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/.project b/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/.project
new file mode 100644
index 0000000..abcd1ba
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/.project
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>org.eclipse.emfforms.core.services.databinding.featurepath</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>

+		<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/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
copy to bundles/org.eclipse.emfforms.core.services.databinding.featurepath/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to bundles/org.eclipse.emfforms.core.services.databinding.featurepath/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..1a6b22b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/.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.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
copy to bundles/org.eclipse.emfforms.core.services.databinding.featurepath/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs
copy to bundles/org.eclipse.emfforms.core.services.databinding.featurepath/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to bundles/org.eclipse.emfforms.core.services.databinding.featurepath/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
copy to bundles/org.eclipse.emfforms.core.services.databinding.featurepath/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
copy to bundles/org.eclipse.emfforms.core.services.databinding.featurepath/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..03681a4
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/META-INF/MANIFEST.MF
@@ -0,0 +1,14 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Featurepath Databinding Services
+Bundle-SymbolicName: org.eclipse.emfforms.core.services.databinding.featurepath
+Bundle-Version: 1.6.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)"
+Export-Package: org.eclipse.emfforms.core.services.databinding.feature
+ path;version="1.6.0";x-internal:=true
+Service-Component: OSGI-INF/featurePathDomainModelReferenceConverterService.xml
+Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/OSGI-INF/featurePathDomainModelReferenceConverterService.xml b/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/OSGI-INF/featurePathDomainModelReferenceConverterService.xml
new file mode 100644
index 0000000..8ae6e81
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/OSGI-INF/featurePathDomainModelReferenceConverterService.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emfforms.core.services.databinding.featurepath">

+   <implementation class="org.eclipse.emfforms.core.services.databinding.featurepath.FeaturePathDomainModelReferenceConverter"/>

+   <service>

+      <provide interface="org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter"/>

+   </service>

+</scr:component>

diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/about.html b/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/about.html
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/about.html
copy to bundles/org.eclipse.emfforms.core.services.databinding.featurepath/about.html
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/build.properties b/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/build.properties
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/build.properties
copy to bundles/org.eclipse.emfforms.core.services.databinding.featurepath/build.properties
diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/pom.xml b/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/pom.xml
new file mode 100644
index 0000000..0a1d583
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/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.6.0-SNAPSHOT</version>

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

+  </parent>

+

+  <artifactId>org.eclipse.emfforms.core.services.databinding.featurepath</artifactId>

+  <packaging>eclipse-plugin</packaging>

+

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

+  <version>1.6.0-SNAPSHOT</version>

+</project>

diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/src/org/eclipse/emfforms/core/services/databinding/featurepath/FeaturePathDomainModelReferenceConverter.java b/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/src/org/eclipse/emfforms/core/services/databinding/featurepath/FeaturePathDomainModelReferenceConverter.java
new file mode 100644
index 0000000..de4f308
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/src/org/eclipse/emfforms/core/services/databinding/featurepath/FeaturePathDomainModelReferenceConverter.java
@@ -0,0 +1,129 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.core.services.databinding.featurepath;
+
+import java.util.List;
+
+import org.eclipse.core.databinding.property.list.IListProperty;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.emf.databinding.IEMFValueProperty;
+import org.eclipse.emf.databinding.edit.EMFEditProperties;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter;
+
+/**
+ * An implementation of {@link DomainModelReferenceConverter} that converts {@link VFeaturePathDomainModelReference}s.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class FeaturePathDomainModelReferenceConverter implements DomainModelReferenceConverter {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter#isApplicable(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference)
+	 */
+	@Override
+	public double isApplicable(VDomainModelReference domainModelReference) {
+		if (domainModelReference == null) {
+			throw new IllegalArgumentException("The given VDomainModelReference must not be null."); //$NON-NLS-1$
+		}
+		if (domainModelReference instanceof VFeaturePathDomainModelReference) {
+			return 0;
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter#convertToValueProperty(VDomainModelReference,EObject)
+	 */
+	@Override
+	public IValueProperty convertToValueProperty(VDomainModelReference domainModelReference, EObject object)
+		throws DatabindingFailedException {
+		if (domainModelReference == null) {
+			throw new IllegalArgumentException("The given VDomainModelReference must not be null."); //$NON-NLS-1$
+		}
+		if (!VFeaturePathDomainModelReference.class.isInstance(domainModelReference)) {
+			throw new IllegalArgumentException(
+				"DomainModelReference must be an instance of VFeaturePathDomainModelReference."); //$NON-NLS-1$
+		}
+
+		final VFeaturePathDomainModelReference featurePathReference = (VFeaturePathDomainModelReference) domainModelReference;
+		if (featurePathReference.getDomainModelEFeature() == null) {
+			throw new DatabindingFailedException(
+				"The field domainModelEFeature of the given VFeaturePathDomainModelReference must not be null."); //$NON-NLS-1$
+		}
+
+		final List<EReference> referencePath = featurePathReference.getDomainModelEReferencePath();
+		final EditingDomain editingDomain = getEditingDomain(object);
+		if (referencePath.isEmpty()) {
+			return EMFEditProperties.value(editingDomain, featurePathReference.getDomainModelEFeature());
+		}
+
+		IEMFValueProperty emfValueProperty = EMFEditProperties.value(editingDomain, referencePath.get(0));
+		for (int i = 1; i < referencePath.size(); i++) {
+			emfValueProperty = emfValueProperty.value(referencePath.get(i));
+		}
+		return emfValueProperty.value(featurePathReference.getDomainModelEFeature());
+	}
+
+	private EditingDomain getEditingDomain(EObject object) throws DatabindingFailedException {
+		return AdapterFactoryEditingDomain.getEditingDomainFor(object);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @throws DatabindingFailedException
+	 *
+	 * @see org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter#convertToListProperty(VDomainModelReference,EObject)
+	 */
+	@Override
+	public IListProperty convertToListProperty(VDomainModelReference domainModelReference, EObject object)
+		throws DatabindingFailedException {
+		if (domainModelReference == null) {
+			throw new IllegalArgumentException("The given VDomainModelReference must not be null."); //$NON-NLS-1$
+		}
+		if (!VFeaturePathDomainModelReference.class.isInstance(domainModelReference)) {
+			throw new IllegalArgumentException(
+				"DomainModelReference must be an instance of VFeaturePathDomainModelReference."); //$NON-NLS-1$
+		}
+
+		final VFeaturePathDomainModelReference featurePathReference = (VFeaturePathDomainModelReference) domainModelReference;
+		if (featurePathReference.getDomainModelEFeature() == null) {
+			throw new DatabindingFailedException(
+				"The field domainModelEFeature of the given VFeaturePathDomainModelReference must not be null."); //$NON-NLS-1$
+		}
+
+		final List<EReference> referencePath = featurePathReference.getDomainModelEReferencePath();
+		final EditingDomain editingDomain = getEditingDomain(object);
+		if (referencePath.isEmpty()) {
+			return EMFEditProperties.list(editingDomain, featurePathReference.getDomainModelEFeature());
+		}
+
+		IEMFValueProperty emfValueProperty = EMFEditProperties.value(editingDomain, referencePath.get(0));
+		for (int i = 1; i < referencePath.size(); i++) {
+			emfValueProperty = emfValueProperty.value(referencePath.get(i));
+		}
+		return emfValueProperty.list(featurePathReference.getDomainModelEFeature());
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.checkstyle b/bundles/org.eclipse.emfforms.core.services.databinding.index/.checkstyle
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.checkstyle
copy to bundles/org.eclipse.emfforms.core.services.databinding.index/.checkstyle
diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.index/.classpath b/bundles/org.eclipse.emfforms.core.services.databinding.index/.classpath
new file mode 100644
index 0000000..8a8f166
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.index/.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.emfforms.core.services.databinding.index/.project b/bundles/org.eclipse.emfforms.core.services.databinding.index/.project
new file mode 100644
index 0000000..b9afb0f
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.index/.project
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>org.eclipse.emfforms.core.services.databinding.index</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>

+		<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/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.emfforms.core.services.databinding.index/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
copy to bundles/org.eclipse.emfforms.core.services.databinding.index/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.emfforms.core.services.databinding.index/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to bundles/org.eclipse.emfforms.core.services.databinding.index/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.index/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.core.services.databinding.index/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..1a6b22b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.index/.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.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.emfforms.core.services.databinding.index/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
copy to bundles/org.eclipse.emfforms.core.services.databinding.index/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.emfforms.core.services.databinding.index/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs
copy to bundles/org.eclipse.emfforms.core.services.databinding.index/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.emfforms.core.services.databinding.index/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to bundles/org.eclipse.emfforms.core.services.databinding.index/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.databinding.index/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
copy to bundles/org.eclipse.emfforms.core.services.databinding.index/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.emfforms.core.services.databinding.index/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
copy to bundles/org.eclipse.emfforms.core.services.databinding.index/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..86bcfe6
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.index/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Index DMR Converter
+Bundle-SymbolicName: org.eclipse.emfforms.core.services.databinding.index
+Bundle-Version: 1.6.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)"
+Export-Package: org.eclipse.emfforms.internal.core.services.databinding.index;version="1.6.0";x-internal:=true
+Bundle-ActivationPolicy: lazy
+Service-Component: OSGI-INF/indexDomainModelReferenceConverter.xml
+Import-Package: org.osgi.framework;version="[1.3.0,2.0.0)"
diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.index/OSGI-INF/indexDomainModelReferenceConverter.xml b/bundles/org.eclipse.emfforms.core.services.databinding.index/OSGI-INF/indexDomainModelReferenceConverter.xml
new file mode 100644
index 0000000..3a133e0
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.index/OSGI-INF/indexDomainModelReferenceConverter.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emfforms.core.services.databinding.index">

+   <implementation class="org.eclipse.emfforms.internal.core.services.databinding.index.IndexDomainModelReferenceConverter"/>

+   <service>

+      <provide interface="org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter"/>

+   </service>
+</scr:component>

diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/build.properties b/bundles/org.eclipse.emfforms.core.services.databinding.index/build.properties
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/build.properties
copy to bundles/org.eclipse.emfforms.core.services.databinding.index/build.properties
diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.index/pom.xml b/bundles/org.eclipse.emfforms.core.services.databinding.index/pom.xml
new file mode 100644
index 0000000..3038bce
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.index/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.6.0-SNAPSHOT</version>

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

+  </parent>

+

+  <artifactId>org.eclipse.emfforms.core.services.databinding.index</artifactId>

+  <packaging>eclipse-plugin</packaging>

+

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

+  <version>1.6.0-SNAPSHOT</version>

+</project>

diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.index/src/org/eclipse/emfforms/internal/core/services/databinding/index/EMFIndexedValueProperty.java b/bundles/org.eclipse.emfforms.core.services.databinding.index/src/org/eclipse/emfforms/internal/core/services/databinding/index/EMFIndexedValueProperty.java
new file mode 100644
index 0000000..6d4099b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.index/src/org/eclipse/emfforms/internal/core/services/databinding/index/EMFIndexedValueProperty.java
@@ -0,0 +1,89 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ * Lucas Koehler - moved, adjusted comments
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.databinding.index;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.databinding.internal.EMFValueProperty;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.command.AddCommand;
+import org.eclipse.emf.edit.command.SetCommand;
+import org.eclipse.emf.edit.domain.EditingDomain;
+
+/**
+ * This class provides a ValueProperty that supports addressing specific elements of a list by an index.
+ *
+ * @author Eugen Neufeld
+ * @author Lucas Koehler
+ *
+ */
+@SuppressWarnings("restriction")
+public class EMFIndexedValueProperty extends EMFValueProperty {
+
+	private final int index;
+	private final EditingDomain editingDomain;
+
+	/**
+	 * Constructor for an Index ValueProperty.
+	 *
+	 * @param editingDomain The {@link EditingDomain}
+	 * @param index The index
+	 * @param eStructuralFeature
+	 *            the {@link EStructuralFeature} of the indexed feature
+	 */
+	public EMFIndexedValueProperty(EditingDomain editingDomain, int index,
+		EStructuralFeature eStructuralFeature) {
+		super(eStructuralFeature);
+		this.editingDomain = editingDomain;
+		if (index < 0) {
+			throw new IllegalArgumentException(
+				"\t \t \t \t \t Who thinks it's a good idea to use a negative list index?!"); //$NON-NLS-1$
+		}
+		this.index = index;
+	}
+
+	@SuppressWarnings("unchecked")
+	@Override
+	protected Object doGetValue(Object source) {
+		final Object result = super.doGetValue(source);
+		final EList<Object> list = (EList<Object>) result;
+		if (list == null || index >= list.size()) {
+			return null;
+		}
+		return list.get(index);
+	}
+
+	@Override
+	protected void doSetValue(Object source, Object value) {
+		final EObject eObject = (EObject) source;
+		final Object result = super.doGetValue(source);
+		final EList<Object> list = (EList<Object>) result;
+		Command command;
+		// FIXME allow add?
+		if (index == list.size()) {
+			command = AddCommand.create(editingDomain, eObject, getFeature(), value, index);
+		}
+		else {
+			command = SetCommand.create(editingDomain, eObject, getFeature(), value, index);
+		}
+		editingDomain.getCommandStack().execute(command);
+	}
+
+	@Override
+	public String toString() {
+		String s = super.toString();
+		s += " index " + index; //$NON-NLS-1$
+		return s;
+	}
+}
diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.index/src/org/eclipse/emfforms/internal/core/services/databinding/index/IllegalListTypeException.java b/bundles/org.eclipse.emfforms.core.services.databinding.index/src/org/eclipse/emfforms/internal/core/services/databinding/index/IllegalListTypeException.java
new file mode 100644
index 0000000..9b3e615
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.index/src/org/eclipse/emfforms/internal/core/services/databinding/index/IllegalListTypeException.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.databinding.index;
+
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+
+/**
+ * An {@link IllegalListTypeException} is thrown by an {@link IndexDomainModelReferenceConverter} when the domain model
+ * e feature of a {@link org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexDomainModelReference
+ * VIndexDomainModelReference} referencing a list is not of the type {@link org.eclipse.emf.ecore.EReference EReference}
+ * .
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class IllegalListTypeException extends DatabindingFailedException {
+
+	/**
+	 * Creates a new {@link IllegalListTypeException} with the given message.
+	 *
+	 * @param message The message text of the exception
+	 */
+	public IllegalListTypeException(String message) {
+		super(message);
+	}
+
+	private static final long serialVersionUID = -7882225641484854585L;
+
+}
diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.index/src/org/eclipse/emfforms/internal/core/services/databinding/index/IndexDomainModelReferenceConverter.java b/bundles/org.eclipse.emfforms.core.services.databinding.index/src/org/eclipse/emfforms/internal/core/services/databinding/index/IndexDomainModelReferenceConverter.java
new file mode 100644
index 0000000..7d11b86
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.index/src/org/eclipse/emfforms/internal/core/services/databinding/index/IndexDomainModelReferenceConverter.java
@@ -0,0 +1,230 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.databinding.index;
+
+import java.util.List;
+
+import org.eclipse.core.databinding.property.list.IListProperty;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.emf.databinding.IEMFValueProperty;
+import org.eclipse.emf.databinding.edit.EMFEditProperties;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * An implementation of {@link DomainModelReferenceConverter} that converts {@link VIndexDomainModelReference
+ * VIndexDomainModelReferences}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class IndexDomainModelReferenceConverter implements DomainModelReferenceConverter {
+	private EMFFormsDatabinding emfFormsDatabinding;
+	private ServiceReference<EMFFormsDatabinding> databindingServiceReference;
+
+	/**
+	 * Sets the {@link EMFFormsDatabinding}.
+	 *
+	 * @param emfFormsDatabinding the emfFormsDatabinding to set
+	 */
+	void setEMFFormsDatabinding(EMFFormsDatabinding emfFormsDatabinding) {
+		this.emfFormsDatabinding = emfFormsDatabinding;
+	}
+
+	/**
+	 * Unsets the {@link EMFFormsDatabinding}.
+	 */
+	void unsetEMFFormsDatabinding() {
+		emfFormsDatabinding = null;
+	}
+
+	/**
+	 * This method is called by the OSGI framework when this {@link DomainModelReferenceConverter} is activated. It
+	 * retrieves the {@link EMFFormsDatabinding EMF Forms databinding service}.
+	 *
+	 * @param bundleContext The {@link BundleContext} of this classes bundle.
+	 */
+	protected final void activate(BundleContext bundleContext) {
+		databindingServiceReference = bundleContext.getServiceReference(EMFFormsDatabinding.class);
+		setEMFFormsDatabinding(bundleContext.getService(databindingServiceReference));
+
+	}
+
+	/**
+	 * This method is called by the OSGI framework when this {@link DomainModelReferenceConverter} is deactivated.
+	 * It frees the {@link EMFFormsDatabinding EMF Forms databinding service}.
+	 *
+	 * @param bundleContext The {@link BundleContext} of this classes bundle.
+	 */
+	protected final void deactivate(BundleContext bundleContext) {
+		unsetEMFFormsDatabinding();
+		bundleContext.ungetService(databindingServiceReference);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter#isApplicable(VDomainModelReference)
+	 */
+	@Override
+	public double isApplicable(VDomainModelReference domainModelReference) {
+		if (domainModelReference == null) {
+			throw new IllegalArgumentException("The given VDomainModelReference must not be null."); //$NON-NLS-1$
+		}
+		if (domainModelReference instanceof VIndexDomainModelReference) {
+			return 10d;
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter#convertToValueProperty(VDomainModelReference,EObject)
+	 */
+	@Override
+	public IValueProperty convertToValueProperty(VDomainModelReference domainModelReference, EObject object)
+		throws DatabindingFailedException {
+		if (domainModelReference == null) {
+			throw new IllegalArgumentException("The given VDomainModelReference must not be null."); //$NON-NLS-1$
+		}
+		if (!VIndexDomainModelReference.class.isInstance(domainModelReference)) {
+			throw new IllegalArgumentException(
+				"DomainModelReference must be an instance of VIndexDomainModelReference."); //$NON-NLS-1$
+		}
+
+		final VIndexDomainModelReference indexReference = VIndexDomainModelReference.class.cast(domainModelReference);
+
+		IValueProperty valueProperty;
+
+		if (indexReference.getPrefixDMR() != null) {
+			final IValueProperty prefixProperty = emfFormsDatabinding.getValueProperty(indexReference.getPrefixDMR(),
+				object);
+			valueProperty = new EMFIndexedValueProperty(getEditingDomain(object), indexReference.getIndex(),
+				EStructuralFeature.class.cast(prefixProperty.getValueType()));
+		}
+		else {
+			if (indexReference.getDomainModelEFeature() == null) {
+				throw new DatabindingFailedException(
+					"The field domainModelEFeature of the given VIndexDomainModelReference must not be null."); //$NON-NLS-1$
+			}
+
+			checkListType(indexReference.getDomainModelEFeature());
+
+			final List<EReference> referencePath = indexReference.getDomainModelEReferencePath();
+
+			if (referencePath.isEmpty()) {
+				valueProperty = new EMFIndexedValueProperty(getEditingDomain(object), indexReference.getIndex(),
+					indexReference.getDomainModelEFeature());
+			} else {
+				IEMFValueProperty emfValueProperty = EMFEditProperties
+					.value(getEditingDomain(object), referencePath.get(0));
+				for (int i = 1; i < referencePath.size(); i++) {
+					emfValueProperty = emfValueProperty.value(referencePath.get(i));
+				}
+				final EMFIndexedValueProperty indexedValueProperty = new EMFIndexedValueProperty(
+					getEditingDomain(object),
+					indexReference.getIndex(),
+					indexReference.getDomainModelEFeature());
+				valueProperty = emfValueProperty.value(indexedValueProperty);
+			}
+		}
+		return valueProperty.value(emfFormsDatabinding.getValueProperty(indexReference.getTargetDMR(), object));
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter#convertToListProperty(VDomainModelReference,EObject)
+	 */
+	@Override
+	public IListProperty convertToListProperty(VDomainModelReference domainModelReference, EObject object)
+		throws DatabindingFailedException {
+		if (domainModelReference == null) {
+			throw new IllegalArgumentException("The given VDomainModelReference must not be null."); //$NON-NLS-1$
+		}
+		if (!VIndexDomainModelReference.class.isInstance(domainModelReference)) {
+			throw new IllegalArgumentException(
+				"DomainModelReference must be an instance of VIndexDomainModelReference."); //$NON-NLS-1$
+		}
+
+		final VIndexDomainModelReference indexReference = VIndexDomainModelReference.class.cast(domainModelReference);
+
+		IValueProperty valueProperty;
+
+		if (indexReference.getPrefixDMR() != null) {
+			final IValueProperty prefixProperty = emfFormsDatabinding.getValueProperty(indexReference.getPrefixDMR(),
+				object);
+			valueProperty = new EMFIndexedValueProperty(getEditingDomain(object), indexReference.getIndex(),
+				EStructuralFeature.class.cast(prefixProperty.getValueType()));
+		}
+		else {
+			if (indexReference.getDomainModelEFeature() == null) {
+				throw new DatabindingFailedException(
+					"The field domainModelEFeature of the given VIndexDomainModelReference must not be null."); //$NON-NLS-1$
+			}
+
+			checkListType(indexReference.getDomainModelEFeature());
+
+			final List<EReference> referencePath = indexReference.getDomainModelEReferencePath();
+
+			if (referencePath.isEmpty()) {
+				valueProperty = new EMFIndexedValueProperty(getEditingDomain(object), indexReference.getIndex(),
+					indexReference.getDomainModelEFeature());
+			} else {
+				IEMFValueProperty emfValueProperty = EMFEditProperties
+					.value(getEditingDomain(object), referencePath.get(0));
+				for (int i = 1; i < referencePath.size(); i++) {
+					emfValueProperty = emfValueProperty.value(referencePath.get(i));
+				}
+				final EMFIndexedValueProperty indexedValueProperty = new EMFIndexedValueProperty(
+					getEditingDomain(object),
+					indexReference.getIndex(),
+					indexReference.getDomainModelEFeature());
+				valueProperty = emfValueProperty.value(indexedValueProperty);
+			}
+		}
+
+		return valueProperty.list(emfFormsDatabinding.getListProperty(indexReference.getTargetDMR(), object));
+	}
+
+	/**
+	 * Checks whether the given structural feature references a proper list to generate a value or list property.
+	 *
+	 * @param structuralFeature The feature to check
+	 * @throws IllegalListTypeException if the structural feature doesn't reference a proper list.
+	 */
+	private void checkListType(EStructuralFeature structuralFeature) throws IllegalListTypeException {
+		if (!structuralFeature.isMany()) {
+			throw new IllegalListTypeException(
+				"The VIndexDomainModelReference's domainModelEFeature must reference a list."); //$NON-NLS-1$
+		}
+		if (!EReference.class.isInstance(structuralFeature)) {
+			throw new IllegalListTypeException(
+				"The VIndexDomainModelReference's domainModelEFeature must reference a list of EObjects."); //$NON-NLS-1$
+		}
+	}
+
+	private EditingDomain getEditingDomain(EObject object) throws DatabindingFailedException {
+		return AdapterFactoryEditingDomain.getEditingDomainFor(object);
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.checkstyle b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/.checkstyle
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.checkstyle
rename to bundles/org.eclipse.emfforms.core.services.databinding.mapping/.checkstyle
diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.mapping/.classpath b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/.classpath
new file mode 100644
index 0000000..8a8f166
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/.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.emfforms.core.services.databinding.mapping/.project b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/.project
new file mode 100644
index 0000000..068879b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/.project
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>org.eclipse.emfforms.core.services.databinding.mapping</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>

+		<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/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/.settings/org.eclipse.core.resources.prefs
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
rename to bundles/org.eclipse.emfforms.core.services.databinding.mapping/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
rename to bundles/org.eclipse.emfforms.core.services.databinding.mapping/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.mapping/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..1a6b22b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/.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.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
rename to bundles/org.eclipse.emfforms.core.services.databinding.mapping/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs
copy to bundles/org.eclipse.emfforms.core.services.databinding.mapping/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
rename to bundles/org.eclipse.emfforms.core.services.databinding.mapping/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
rename to bundles/org.eclipse.emfforms.core.services.databinding.mapping/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/.settings/org.eclipse.pde.prefs
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
rename to bundles/org.eclipse.emfforms.core.services.databinding.mapping/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..ac8f1e7
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/META-INF/MANIFEST.MF
@@ -0,0 +1,14 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Mapping DMR Converter
+Bundle-SymbolicName: org.eclipse.emfforms.core.services.databinding.mapping
+Bundle-Version: 1.6.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.mappingdmr.model;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)"
+Export-Package: org.eclipse.emfforms.internal.core.services.databinding.mapping;version="1.6.0";x-internal:=true
+Service-Component: OSGI-INF/mappingDomainModelReferenceConverter.xml
+Import-Package: org.osgi.framework;version="[1.3.0,2.0.0)"
diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.mapping/OSGI-INF/mappingDomainModelReferenceConverter.xml b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/OSGI-INF/mappingDomainModelReferenceConverter.xml
new file mode 100644
index 0000000..b7addb0
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/OSGI-INF/mappingDomainModelReferenceConverter.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emfforms.core.services.databinding.mapping">

+   <implementation class="org.eclipse.emfforms.internal.core.services.databinding.mapping.MappingDomainModelReferenceConverter"/>

+   <service>

+      <provide interface="org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter"/>

+   </service>
+</scr:component>

diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/build.properties b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/build.properties
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/build.properties
rename to bundles/org.eclipse.emfforms.core.services.databinding.mapping/build.properties
diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.mapping/pom.xml b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/pom.xml
new file mode 100644
index 0000000..232b038
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/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.6.0-SNAPSHOT</version>

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

+  </parent>

+

+  <artifactId>org.eclipse.emfforms.core.services.databinding.mapping</artifactId>

+  <packaging>eclipse-plugin</packaging>

+

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

+  <version>1.6.0-SNAPSHOT</version>

+</project>

diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.mapping/src/org/eclipse/emfforms/internal/core/services/databinding/mapping/EMFMappingValueProperty.java b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/src/org/eclipse/emfforms/internal/core/services/databinding/mapping/EMFMappingValueProperty.java
new file mode 100644
index 0000000..09bc374
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/src/org/eclipse/emfforms/internal/core/services/databinding/mapping/EMFMappingValueProperty.java
@@ -0,0 +1,80 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ * Lucas Koehler - moved/copied here from org.eclipse.emf.ecp.view.mappingdmr.databinding
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.databinding.mapping;
+
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.databinding.internal.EMFValueProperty;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.command.ChangeCommand;
+import org.eclipse.emf.edit.domain.EditingDomain;
+
+/**
+ * This class provides a ValueProperty for EClass Mappings.
+ *
+ * @author Eugen Neufeld
+ * @author Lucas Koehler
+ *
+ */
+@SuppressWarnings("restriction")
+public class EMFMappingValueProperty extends EMFValueProperty {
+
+	private final EClass mappedEClass;
+	private final EditingDomain editingDomain;
+
+	/**
+	 * Constructor for a EClassMapping ValueProperty.
+	 *
+	 * @param editingDomain The {@link EditingDomain}
+	 * @param mappedEClass the EClass being mapped
+	 * @param eStructuralFeature the {@link EStructuralFeature} of the map
+	 */
+	public EMFMappingValueProperty(EditingDomain editingDomain, EClass mappedEClass,
+		EStructuralFeature eStructuralFeature) {
+		super(eStructuralFeature);
+		this.editingDomain = editingDomain;
+		this.mappedEClass = mappedEClass;
+	}
+
+	@SuppressWarnings("unchecked")
+	@Override
+	protected Object doGetValue(Object source) {
+		final Object result = super.doGetValue(source);
+		final EMap<EClass, Object> map = (EMap<EClass, Object>) result;
+		return map.get(mappedEClass);
+	}
+
+	@SuppressWarnings("unchecked")
+	@Override
+	protected void doSetValue(Object source, final Object value) {
+		final Object result = super.doGetValue(source);
+		final EObject eObject = (EObject) source;
+		final ChangeCommand command = new ChangeCommand(eObject) {
+
+			@Override
+			protected void doExecute() {
+				final EMap<EClass, Object> map = (EMap<EClass, Object>) result;
+				map.put(mappedEClass, value);
+			}
+		};
+		editingDomain.getCommandStack().execute(command);
+	}
+
+	@Override
+	public String toString() {
+		String s = super.toString();
+		s += " mapping " + mappedEClass.getName(); //$NON-NLS-1$
+		return s;
+	}
+}
diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.mapping/src/org/eclipse/emfforms/internal/core/services/databinding/mapping/IllegalMapTypeException.java b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/src/org/eclipse/emfforms/internal/core/services/databinding/mapping/IllegalMapTypeException.java
new file mode 100644
index 0000000..713fd24
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/src/org/eclipse/emfforms/internal/core/services/databinding/mapping/IllegalMapTypeException.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.databinding.mapping;
+
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+
+/**
+ * A checked {@link Exception} that is thrown when a
+ * {@link org.eclipse.emf.ecp.view.spi.mappingdmr.model.VMappingDomainModelReference VMappingDomainModelReference}
+ * should be converted to a property and the referenced map's values are no {@link org.eclipse.emf.ecore.EObject
+ * EObjects}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class IllegalMapTypeException extends DatabindingFailedException {
+
+	private static final long serialVersionUID = 4729660645033802593L;
+
+	/**
+	 * Creates a new {@link IllegalMapTypeException}.
+	 *
+	 * @param message The message of the Exception
+	 */
+	public IllegalMapTypeException(String message) {
+		super(message);
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.mapping/src/org/eclipse/emfforms/internal/core/services/databinding/mapping/MappingDomainModelReferenceConverter.java b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/src/org/eclipse/emfforms/internal/core/services/databinding/mapping/MappingDomainModelReferenceConverter.java
new file mode 100644
index 0000000..3ea289a
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/src/org/eclipse/emfforms/internal/core/services/databinding/mapping/MappingDomainModelReferenceConverter.java
@@ -0,0 +1,232 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.databinding.mapping;
+
+import java.util.List;
+
+import org.eclipse.core.databinding.property.list.IListProperty;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.emf.databinding.IEMFValueProperty;
+import org.eclipse.emf.databinding.edit.EMFEditProperties;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.view.spi.mappingdmr.model.VMappingDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * Implementation of {@link DomainModelReferenceConverter} that converts {@link VMappingDomainModelReference
+ * VMappingDomainModelReferences}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class MappingDomainModelReferenceConverter implements DomainModelReferenceConverter {
+	private EMFFormsDatabinding emfFormsDatabinding;
+	private ServiceReference<EMFFormsDatabinding> databindingServiceReference;
+
+	/**
+	 * Sets the {@link EMFFormsDatabinding}.
+	 *
+	 * @param emfFormsDatabinding the emfFormsDatabinding to set
+	 */
+	void setEMFFormsDatabinding(EMFFormsDatabinding emfFormsDatabinding) {
+		this.emfFormsDatabinding = emfFormsDatabinding;
+	}
+
+	/**
+	 * Unsets the {@link EMFFormsDatabinding}.
+	 */
+	void unsetEMFFormsDatabinding() {
+		emfFormsDatabinding = null;
+	}
+
+	/**
+	 * This method is called by the OSGI framework when this {@link DomainModelReferenceConverter} is activated. It
+	 * retrieves the {@link EMFFormsDatabinding EMF Forms databinding service}.
+	 *
+	 * @param bundleContext The {@link BundleContext} of this classes bundle.
+	 */
+	protected final void activate(BundleContext bundleContext) {
+		databindingServiceReference = bundleContext.getServiceReference(EMFFormsDatabinding.class);
+		setEMFFormsDatabinding(bundleContext.getService(databindingServiceReference));
+
+	}
+
+	/**
+	 * This method is called by the OSGI framework when this {@link DomainModelReferenceConverter} is deactivated.
+	 * It frees the {@link EMFFormsDatabinding EMF Forms databinding service}.
+	 *
+	 * @param bundleContext The {@link BundleContext} of this classes bundle.
+	 */
+	protected final void deactivate(BundleContext bundleContext) {
+		unsetEMFFormsDatabinding();
+		bundleContext.ungetService(databindingServiceReference);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter#isApplicable(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference)
+	 */
+	@Override
+	public double isApplicable(VDomainModelReference domainModelReference) {
+		if (domainModelReference == null) {
+			throw new IllegalArgumentException("The given VDomainModelReference must not be null."); //$NON-NLS-1$
+		}
+		if (VMappingDomainModelReference.class.isInstance(domainModelReference)) {
+			return 10d;
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter#convertToValueProperty(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference,EObject)
+	 */
+	@Override
+	public IValueProperty convertToValueProperty(VDomainModelReference domainModelReference, EObject object)
+		throws DatabindingFailedException {
+		if (domainModelReference == null) {
+			throw new IllegalArgumentException("The given VDomainModelReference must not be null."); //$NON-NLS-1$
+		}
+		if (!VMappingDomainModelReference.class.isInstance(domainModelReference)) {
+			throw new IllegalArgumentException(
+				"DomainModelReference must be an instance of VMappingDomainModelReference."); //$NON-NLS-1$
+		}
+
+		final VMappingDomainModelReference mappingReference = VMappingDomainModelReference.class
+			.cast(domainModelReference);
+		if (mappingReference.getDomainModelEFeature() == null) {
+			throw new DatabindingFailedException(
+				"The field domainModelEFeature of the given VMappingDomainModelReference must not be null."); //$NON-NLS-1$
+		}
+
+		checkMapType(mappingReference.getDomainModelEFeature());
+
+		final List<EReference> referencePath = mappingReference.getDomainModelEReferencePath();
+		IValueProperty valueProperty;
+		if (referencePath.isEmpty()) {
+			valueProperty = new EMFMappingValueProperty(getEditingDomain(object), mappingReference.getMappedClass(),
+				mappingReference.getDomainModelEFeature());
+		} else {
+			IEMFValueProperty emfValueProperty = EMFEditProperties
+				.value(getEditingDomain(object), referencePath.get(0));
+			for (int i = 1; i < referencePath.size(); i++) {
+				emfValueProperty = emfValueProperty.value(referencePath.get(i));
+			}
+			final EMFMappingValueProperty mappingValueProperty = new EMFMappingValueProperty(getEditingDomain(object),
+				mappingReference.getMappedClass(),
+				mappingReference.getDomainModelEFeature());
+			valueProperty = emfValueProperty.value(mappingValueProperty);
+		}
+
+		return valueProperty.value(emfFormsDatabinding.getValueProperty(mappingReference.getDomainModelReference(),
+			object));
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter#convertToListProperty(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference,EObject)
+	 */
+	@Override
+	public IListProperty convertToListProperty(VDomainModelReference domainModelReference, EObject object)
+		throws DatabindingFailedException {
+		if (domainModelReference == null) {
+			throw new IllegalArgumentException("The given VDomainModelReference must not be null."); //$NON-NLS-1$
+		}
+		if (!VMappingDomainModelReference.class.isInstance(domainModelReference)) {
+			throw new IllegalArgumentException(
+				"DomainModelReference must be an instance of VMappingDomainModelReference."); //$NON-NLS-1$
+		}
+
+		final VMappingDomainModelReference mappingReference = VMappingDomainModelReference.class
+			.cast(domainModelReference);
+		if (mappingReference.getDomainModelEFeature() == null) {
+			throw new DatabindingFailedException(
+				"The field domainModelEFeature of the given VMappingDomainModelReference must not be null."); //$NON-NLS-1$
+		}
+
+		checkMapType(mappingReference.getDomainModelEFeature());
+
+		final List<EReference> referencePath = mappingReference.getDomainModelEReferencePath();
+		IValueProperty valueProperty;
+		if (referencePath.isEmpty()) {
+			valueProperty = new EMFMappingValueProperty(getEditingDomain(object), mappingReference.getMappedClass(),
+				mappingReference.getDomainModelEFeature());
+		} else {
+			IEMFValueProperty emfValueProperty = EMFEditProperties
+				.value(getEditingDomain(object), referencePath.get(0));
+			for (int i = 1; i < referencePath.size(); i++) {
+				emfValueProperty = emfValueProperty.value(referencePath.get(i));
+			}
+			final EMFMappingValueProperty mappingValueProperty = new EMFMappingValueProperty(getEditingDomain(object),
+				mappingReference.getMappedClass(),
+				mappingReference.getDomainModelEFeature());
+			valueProperty = emfValueProperty.value(mappingValueProperty);
+		}
+
+		return valueProperty.list(emfFormsDatabinding.getListProperty(mappingReference.getDomainModelReference(),
+			object));
+	}
+
+	/**
+	 * Checks whether the given structural feature references a proper map to generate a value or list property.
+	 *
+	 * @param structuralFeature The feature to check
+	 * @throws IllegalMapTypeException if the structural feature doesn't reference a proper map.
+	 */
+	private void checkMapType(EStructuralFeature structuralFeature) throws IllegalMapTypeException {
+		if (!structuralFeature.getEType().getInstanceClassName().equals("java.util.Map$Entry")) { //$NON-NLS-1$
+			throw new IllegalMapTypeException(
+				"The VMappingDomainModelReference's domainModelEFeature must reference a map."); //$NON-NLS-1$
+		}
+		if (structuralFeature.getLowerBound() != 0 || structuralFeature.getUpperBound() != -1) {
+			throw new IllegalMapTypeException(
+				"The VMappingDomainModelReference's domainModelEFeature must reference a map."); //$NON-NLS-1$
+		}
+
+		final EClass eClass = (EClass) structuralFeature.getEType();
+		final EStructuralFeature keyFeature = eClass.getEStructuralFeature("key"); //$NON-NLS-1$
+		final EStructuralFeature valueFeature = eClass.getEStructuralFeature("value"); //$NON-NLS-1$
+		if (keyFeature == null || valueFeature == null) {
+			throw new IllegalMapTypeException(
+				"The VMappingDomainModelReference's domainModelEFeature must reference a map."); //$NON-NLS-1$
+		}
+		if (!EReference.class.isInstance(valueFeature)) {
+			throw new IllegalMapTypeException(
+				"The values of the map referenced by the VMappingDomainModelReference's domainModelEFeature must be referenced EObjects."); //$NON-NLS-1$
+		}
+		if (!EReference.class.isInstance(keyFeature)) {
+			throw new IllegalMapTypeException(
+				"The keys of the map referenced by the VMappingDomainModelReference's domainModelEFeature must be referenced EClasses."); //$NON-NLS-1$
+		}
+		if (!EClass.class.isAssignableFrom(((EReference) keyFeature).getEReferenceType().getInstanceClass())) {
+			throw new IllegalMapTypeException(
+				"The keys of the map referenced by the VMappingDomainModelReference's domainModelEFeature must be referenced EClasses."); //$NON-NLS-1$
+		}
+	}
+
+	private EditingDomain getEditingDomain(EObject object) throws DatabindingFailedException {
+		return AdapterFactoryEditingDomain.getEditingDomainFor(object);
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.checkstyle b/bundles/org.eclipse.emfforms.core.services.editsupport/.checkstyle
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.checkstyle
copy to bundles/org.eclipse.emfforms.core.services.editsupport/.checkstyle
diff --git a/bundles/org.eclipse.emfforms.core.services.editsupport/.classpath b/bundles/org.eclipse.emfforms.core.services.editsupport/.classpath
new file mode 100644
index 0000000..8a8f166
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.editsupport/.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.emfforms.core.services.editsupport/.gitignore b/bundles/org.eclipse.emfforms.core.services.editsupport/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.editsupport/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emfforms.core.services.editsupport/.project b/bundles/org.eclipse.emfforms.core.services.editsupport/.project
new file mode 100644
index 0000000..26fcfe2
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.editsupport/.project
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>org.eclipse.emfforms.core.services.editsupport</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>

+		<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/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.emfforms.core.services.editsupport/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.core.resources.prefs
copy to bundles/org.eclipse.emfforms.core.services.editsupport/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.emfforms.core.services.editsupport/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.core.runtime.prefs
copy to bundles/org.eclipse.emfforms.core.services.editsupport/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emfforms.core.services.editsupport/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.core.services.editsupport/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..1a6b22b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.editsupport/.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.template.controls.swt/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.emfforms.core.services.editsupport/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.launching.prefs
copy to bundles/org.eclipse.emfforms.core.services.editsupport/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.emfforms.core.services.editsupport/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs
copy to bundles/org.eclipse.emfforms.core.services.editsupport/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.emfforms.core.services.editsupport/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to bundles/org.eclipse.emfforms.core.services.editsupport/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.editsupport/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.pde.api.tools.prefs
copy to bundles/org.eclipse.emfforms.core.services.editsupport/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.emfforms.core.services.editsupport/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.pde.prefs
copy to bundles/org.eclipse.emfforms.core.services.editsupport/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..802dd38
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.editsupport/META-INF/MANIFEST.MF
@@ -0,0 +1,20 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMFForms Edit Support
+Bundle-SymbolicName: org.eclipse.emfforms.core.services.editsupport
+Bundle-Version: 1.6.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.core.services.emfspecificservice;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.5.0,2.0.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)"
+Export-Package: org.eclipse.emfforms.internal.core.services.editsuppor
+ t;version="1.6.0";x-internal:=true,org.eclipse.emfforms.spi.core.serv
+ ices.editsupport;version="1.6.0"
+Bundle-ActivationPolicy: lazy
+Service-Component: OSGI-INF/emfFormsEditSupport.xml
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.6.0,2.0.0)"
diff --git a/bundles/org.eclipse.emfforms.core.services.editsupport/OSGI-INF/emfFormsEditSupport.xml b/bundles/org.eclipse.emfforms.core.services.editsupport/OSGI-INF/emfFormsEditSupport.xml
new file mode 100644
index 0000000..e8673ba
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.editsupport/OSGI-INF/emfFormsEditSupport.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emfforms.core.services.editsupport">
+   <implementation class="org.eclipse.emfforms.internal.core.services.editsupport.EMFFormsEditSupportImpl"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.core.services.editsupport.EMFFormsEditSupport"/>
+   </service>
+   <reference bind="setEMFFormsDatabinding" cardinality="1..1" interface="org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding" name="EMFFormsDatabinding" policy="static" />
+   <reference bind="setReportService" cardinality="1..1" interface="org.eclipse.emfforms.spi.common.report.ReportService" name="ReportService" policy="static" />
+   <reference bind="setEMFSpecificService" cardinality="1..1" interface="org.eclipse.emfforms.spi.core.services.emfspecificservice.EMFSpecificService" name="EMFSpecificService" policy="static" />
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/about.html b/bundles/org.eclipse.emfforms.core.services.editsupport/about.html
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.template.controls.swt/about.html
rename to bundles/org.eclipse.emfforms.core.services.editsupport/about.html
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/build.properties b/bundles/org.eclipse.emfforms.core.services.editsupport/build.properties
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/build.properties
copy to bundles/org.eclipse.emfforms.core.services.editsupport/build.properties
diff --git a/bundles/org.eclipse.emfforms.core.services.editsupport/pom.xml b/bundles/org.eclipse.emfforms.core.services.editsupport/pom.xml
new file mode 100644
index 0000000..c50c717
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.editsupport/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.6.0-SNAPSHOT</version>

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

+  </parent>

+

+  <artifactId>org.eclipse.emfforms.core.services.editsupport</artifactId>

+  <packaging>eclipse-plugin</packaging>

+

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

+  <version>1.6.0-SNAPSHOT</version>

+</project>

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
new file mode 100644
index 0000000..f09ef49
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.editsupport/src/org/eclipse/emfforms/internal/core/services/editsupport/EMFFormsEditSupportImpl.java
@@ -0,0 +1,215 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.editsupport;
+
+import org.eclipse.core.databinding.observable.IObserving;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.ecore.EObject;
+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.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+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.DatabindingFailedReport;
+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.emfspecificservice.EMFSpecificService;
+
+/**
+ * EMF implementation of {@link EMFFormsEditSupport}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class EMFFormsEditSupportImpl implements EMFFormsEditSupport {
+	private EMFFormsDatabinding emfFormsDatabinding;
+	private EMFSpecificService emfSpecificService;
+	private ReportService reportService;
+
+	/**
+	 * Sets the {@link EMFFormsDatabinding} service.
+	 *
+	 * @param emfFormsDatabinding The databinding service.
+	 */
+	protected void setEMFFormsDatabinding(EMFFormsDatabinding emfFormsDatabinding) {
+		this.emfFormsDatabinding = emfFormsDatabinding;
+	}
+
+	/**
+	 * Sets the {@link EMFSpecificService}.
+	 *
+	 * @param emfSpecificService The {@link EMFSpecificService}
+	 */
+	protected void setEMFSpecificService(EMFSpecificService emfSpecificService) {
+		this.emfSpecificService = emfSpecificService;
+	}
+
+	/**
+	 * Sets the {@link ReportService}.
+	 *
+	 * @param reportService The {@link ReportService}
+	 */
+	protected void setReportService(ReportService reportService) {
+		this.reportService = reportService;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.core.services.editsupport.EMFFormsEditSupport#isMultiLine(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference,
+	 *      org.eclipse.emf.ecore.EObject)
+	 */
+	@Override
+	public boolean isMultiLine(VDomainModelReference domainModelReference, EObject rootObject) {
+		Assert.create(domainModelReference).notNull();
+		Assert.create(rootObject).notNull();
+
+		IObservableValue observableValue;
+		try {
+			observableValue = emfFormsDatabinding.getObservableValue(domainModelReference,
+				rootObject);
+		} catch (final DatabindingFailedException ex) {
+			reportService.report(new DatabindingFailedReport(ex));
+			return false;
+		}
+		final IObserving observing = (IObserving) observableValue;
+		final EObject value = (EObject) observing.getObserved();
+		final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+		observableValue.dispose();
+
+		final IItemPropertyDescriptor itemPropertyDescriptor = emfSpecificService.getIItemPropertyDescriptor(value,
+			structuralFeature);
+		if (itemPropertyDescriptor == null) {
+			reportMissingPropertyDescriptor(value, structuralFeature);
+			return false;
+		}
+
+		return itemPropertyDescriptor.isMultiLine(value);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.core.services.editsupport.EMFFormsEditSupport#canSetProperty(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference,
+	 *      org.eclipse.emf.ecore.EObject)
+	 */
+	@Override
+	public boolean canSetProperty(VDomainModelReference domainModelReference, EObject rootObject) {
+		Assert.create(domainModelReference).notNull();
+		Assert.create(rootObject).notNull();
+
+		IObservableValue observableValue;
+		try {
+			observableValue = emfFormsDatabinding.getObservableValue(domainModelReference,
+				rootObject);
+		} catch (final DatabindingFailedException ex) {
+			reportService.report(new DatabindingFailedReport(ex));
+			return false;
+		}
+		final IObserving observing = (IObserving) observableValue;
+		final EObject value = (EObject) observing.getObserved();
+		final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+		observableValue.dispose();
+
+		final IItemPropertyDescriptor itemPropertyDescriptor = emfSpecificService.getIItemPropertyDescriptor(value,
+			structuralFeature);
+		if (itemPropertyDescriptor == null) {
+			reportMissingPropertyDescriptor(value, structuralFeature);
+			return false;
+		}
+		return itemPropertyDescriptor.canSetProperty(value);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.core.services.editsupport.EMFFormsEditSupport#getText(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference,
+	 *      org.eclipse.emf.ecore.EObject, java.lang.Object)
+	 */
+	@Override
+	public String getText(VDomainModelReference domainModelReference, EObject rootObject, Object element) {
+		Assert.create(domainModelReference).notNull();
+		Assert.create(rootObject).notNull();
+		Assert.create(element).notNull();
+
+		IObservableValue observableValue;
+		try {
+			observableValue = emfFormsDatabinding.getObservableValue(domainModelReference,
+				rootObject);
+		} catch (final DatabindingFailedException ex) {
+			reportService.report(new DatabindingFailedReport(ex));
+			return ex.getMessage();
+		}
+		final IObserving observing = (IObserving) observableValue;
+		final EObject value = (EObject) observing.getObserved();
+		final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+		observableValue.dispose();
+
+		final IItemPropertyDescriptor itemPropertyDescriptor = emfSpecificService.getIItemPropertyDescriptor(value,
+			structuralFeature);
+		if (itemPropertyDescriptor == null) {
+			reportMissingPropertyDescriptor(value, structuralFeature);
+			return null;
+		}
+		final IItemLabelProvider labelProvider = itemPropertyDescriptor.getLabelProvider(rootObject);
+
+		return labelProvider.getText(element);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.core.services.editsupport.EMFFormsEditSupport#getImage(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference,
+	 *      org.eclipse.emf.ecore.EObject, java.lang.Object)
+	 */
+	@Override
+	public Object getImage(VDomainModelReference domainModelReference, EObject rootObject, Object element) {
+		Assert.create(domainModelReference).notNull();
+		Assert.create(rootObject).notNull();
+		// Assert.create(element).notNull();
+
+		IObservableValue observableValue;
+		try {
+			observableValue = emfFormsDatabinding.getObservableValue(domainModelReference,
+				rootObject);
+		} catch (final DatabindingFailedException ex) {
+			reportService.report(new DatabindingFailedReport(ex));
+			return ex.getMessage();
+		}
+		final IObserving observing = (IObserving) observableValue;
+		final EObject value = (EObject) observing.getObserved();
+		final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+		observableValue.dispose();
+
+		final IItemPropertyDescriptor itemPropertyDescriptor = emfSpecificService.getIItemPropertyDescriptor(value,
+			structuralFeature);
+		if (itemPropertyDescriptor == null) {
+			reportMissingPropertyDescriptor(value, structuralFeature);
+			return null;
+		}
+		final IItemLabelProvider labelProvider = itemPropertyDescriptor.getLabelProvider(rootObject);
+
+		return labelProvider.getImage(element);
+	}
+
+	private void reportMissingPropertyDescriptor(final EObject value, final EStructuralFeature structuralFeature) {
+		reportService
+			.report(new AbstractReport(
+				String
+					.format(
+						"No IItemPropertyDescriptor for feature %2$s in EClass %1$s found.", value.eClass().getName(), //$NON-NLS-1$
+						structuralFeature.getName())));
+	}
+}
diff --git a/bundles/org.eclipse.emfforms.core.services.editsupport/src/org/eclipse/emfforms/spi/core/services/editsupport/EMFFormsEditSupport.java b/bundles/org.eclipse.emfforms.core.services.editsupport/src/org/eclipse/emfforms/spi/core/services/editsupport/EMFFormsEditSupport.java
new file mode 100644
index 0000000..1a90a33
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.editsupport/src/org/eclipse/emfforms/spi/core/services/editsupport/EMFFormsEditSupport.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.core.services.editsupport;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+
+/**
+ * The {@link EMFFormsEditSupport} provides methods to get information about a property described by a
+ * {@link VDomainModelReference} and the corresponding root {@link EObject}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public interface EMFFormsEditSupport {
+
+	/**
+	 * Returns whether the property is multi line.
+	 *
+	 * @param domainModelReference The {@link VDomainModelReference}
+	 * @param rootObject The root {@link EObject} of the {@link VDomainModelReference}
+	 * @return true if the property is multi line, false otherwise
+	 */
+	boolean isMultiLine(VDomainModelReference domainModelReference, EObject rootObject);
+
+	/**
+	 * Returns whether the property can be set.
+	 *
+	 * @param domainModelReference The {@link VDomainModelReference}
+	 * @param rootObject The root {@link EObject} of the {@link VDomainModelReference}
+	 * @return true if the property can be set, false otherwise
+	 */
+	boolean canSetProperty(VDomainModelReference domainModelReference, EObject rootObject);
+
+	/**
+	 * Returns the label text for the given element.
+	 *
+	 * @param domainModelReference The {@link VDomainModelReference}
+	 * @param rootObject The root {@link EObject} of the {@link VDomainModelReference}
+	 * @param element The element for which the label text should be retrieved
+	 * @return The label text
+	 */
+	String getText(VDomainModelReference domainModelReference, EObject rootObject, Object element);
+
+	/**
+	 * Returns the label image for the given element.
+	 *
+	 * @param domainModelReference The {@link VDomainModelReference}
+	 * @param rootObject The root {@link EObject} of the {@link VDomainModelReference}
+	 * @param element The element for which the label image should be retrieved
+	 * @return The label image
+	 */
+	Object getImage(VDomainModelReference domainModelReference, EObject rootObject, Object element);
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.checkstyle b/bundles/org.eclipse.emfforms.core.services.emf/.checkstyle
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.checkstyle
copy to bundles/org.eclipse.emfforms.core.services.emf/.checkstyle
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.classpath b/bundles/org.eclipse.emfforms.core.services.emf/.classpath
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.classpath
copy to bundles/org.eclipse.emfforms.core.services.emf/.classpath
diff --git a/bundles/org.eclipse.emfforms.core.services.emf/.gitignore b/bundles/org.eclipse.emfforms.core.services.emf/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.emf/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emfforms.core.services.emf/.project b/bundles/org.eclipse.emfforms.core.services.emf/.project
new file mode 100644
index 0000000..ae9b559
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.emf/.project
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.core.services.emf</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.api.tools.apiAnalysisBuilder</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>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
+		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
+	</natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.emfforms.core.services.emf/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.resources.prefs
copy to bundles/org.eclipse.emfforms.core.services.emf/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.emfforms.core.services.emf/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.runtime.prefs
copy to bundles/org.eclipse.emfforms.core.services.emf/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emfforms.core.services.emf/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.core.services.emf/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..66c53c1
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.emf/.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.editor/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.emfforms.core.services.emf/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.launching.prefs
copy to bundles/org.eclipse.emfforms.core.services.emf/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.emfforms.core.services.emf/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.ui.prefs
copy to bundles/org.eclipse.emfforms.core.services.emf/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.emfforms.core.services.emf/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to bundles/org.eclipse.emfforms.core.services.emf/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.emf/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.api.tools.prefs
copy to bundles/org.eclipse.emfforms.core.services.emf/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.emfforms.core.services.emf/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.prefs
copy to bundles/org.eclipse.emfforms.core.services.emf/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..ad02aab
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.emf/META-INF/MANIFEST.MF
@@ -0,0 +1,26 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMFForms Core Services EMF
+Bundle-SymbolicName: org.eclipse.emfforms.core.services.emf
+Bundle-Version: 1.6.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.6.0,2.0.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)"
+Import-Package: org.eclipse.core.databinding.observable;version="0.0.0",
+ org.eclipse.core.databinding.observable.list;version="0.0.0",
+ org.eclipse.core.databinding.observable.value;version="0.0.0",
+ org.eclipse.core.runtime;version="0.0.0",
+ org.eclipse.emfforms.spi.common.locale;version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.spi.core.services.emfspecificservice;version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.spi.core.services.label;version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.spi.localization;version="[1.6.0,2.0.0)",
+ org.osgi.framework;version="[1.6.0,2.0.0)"
+Export-Package: org.eclipse.emfforms.internal.core.services.databinding;version="1.6.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.label;version="1.6.0";x-internal:=true
+Service-Component: OSGI-INF/emfLabelProvider.xml, OSGI-INF/emfLabelProviderDefault.xml, OSGI-INF/databindingService.xml
diff --git a/bundles/org.eclipse.emfforms.core.services.emf/OSGI-INF/databindingService.xml b/bundles/org.eclipse.emfforms.core.services.emf/OSGI-INF/databindingService.xml
new file mode 100644
index 0000000..71bf307
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.emf/OSGI-INF/databindingService.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="EMFFormsDatabinding">

+   <implementation class="org.eclipse.emfforms.internal.core.services.databinding.EMFFormsDatabindingImpl"/>

+   <service>

+      <provide interface="org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding"/>

+   </service>

+   <reference bind="addDomainModelReferenceConverter" cardinality="0..n" interface="org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter" name="DomainModelReferenceConverter" policy="dynamic" unbind="removeDomainModelReferenceConverter"/>

+</scr:component>

diff --git a/bundles/org.eclipse.emfforms.core.services.emf/OSGI-INF/emfLabelProvider.xml b/bundles/org.eclipse.emfforms.core.services.emf/OSGI-INF/emfLabelProvider.xml
new file mode 100644
index 0000000..8aeb16e
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.emf/OSGI-INF/emfLabelProvider.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emfforms.core.services.emf.label">
+   <implementation class="org.eclipse.emfforms.internal.core.services.label.EMFFormsLabelProviderImpl"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider"/>
+   </service>
+   <reference bind="setReportService" cardinality="1..1" interface="org.eclipse.emfforms.spi.common.report.ReportService" name="ReportService" policy="static" />
+   <reference bind="setEMFFormsDatabinding" cardinality="1..1" interface="org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding" name="EMFFormsDatabinding" policy="static" />
+   <reference bind="setEMFFormsLocaleProvider" cardinality="1..1" interface="org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleProvider" name="EMFFormsLocaleProvider" policy="static" />
+   <reference bind="setEMFFormsLocalizationService" cardinality="1..1" interface="org.eclipse.emfforms.spi.localization.EMFFormsLocalizationService" name="EMFFormsLocalizationService" policy="static" />
+   <property name="service.ranking" type="Integer" value="2"/>
+</scr:component>
diff --git a/bundles/org.eclipse.emfforms.core.services.emf/OSGI-INF/emfLabelProviderDefault.xml b/bundles/org.eclipse.emfforms.core.services.emf/OSGI-INF/emfLabelProviderDefault.xml
new file mode 100644
index 0000000..7b1ac1a
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.emf/OSGI-INF/emfLabelProviderDefault.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emfforms.core.services.emf.label.default">
+   <implementation class="org.eclipse.emfforms.internal.core.services.label.EMFFormsLabelProviderDefaultImpl"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider"/>
+   </service>
+   <reference bind="setReportService" cardinality="1..1" interface="org.eclipse.emfforms.spi.common.report.ReportService" name="ReportService" policy="static" />
+   <reference bind="setEMFSpecificService" cardinality="1..1" interface="org.eclipse.emfforms.spi.core.services.emfspecificservice.EMFSpecificService" name="EMFSpecificService" policy="static" />
+   <reference bind="setEMFFormsDatabinding" cardinality="1..1" interface="org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding" name="EMFFormsDatabinding" policy="static" />
+   <property name="service.ranking" type="Integer" value="1"/>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/about.html b/bundles/org.eclipse.emfforms.core.services.emf/about.html
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/about.html
copy to bundles/org.eclipse.emfforms.core.services.emf/about.html
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/build.properties b/bundles/org.eclipse.emfforms.core.services.emf/build.properties
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/build.properties
copy to bundles/org.eclipse.emfforms.core.services.emf/build.properties
diff --git a/bundles/org.eclipse.emfforms.core.services.emf/pom.xml b/bundles/org.eclipse.emfforms.core.services.emf/pom.xml
new file mode 100644
index 0000000..e35fde7
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.emf/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.6.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.6.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/databinding/EMFFormsDatabindingImpl.java b/bundles/org.eclipse.emfforms.core.services.emf/src/org/eclipse/emfforms/internal/core/services/databinding/EMFFormsDatabindingImpl.java
new file mode 100644
index 0000000..8484267
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.emf/src/org/eclipse/emfforms/internal/core/services/databinding/EMFFormsDatabindingImpl.java
@@ -0,0 +1,156 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.databinding;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+
+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.EObject;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+
+/**
+ * EMF implementation of {@link EMFFormsDatabinding}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class EMFFormsDatabindingImpl implements EMFFormsDatabinding {
+
+	private final Set<DomainModelReferenceConverter> referenceConverters = new LinkedHashSet<DomainModelReferenceConverter>();
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding#getObservableValue(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference,
+	 *      org.eclipse.emf.ecore.EObject)
+	 */
+	@Override
+	public IObservableValue getObservableValue(VDomainModelReference domainModelReference, EObject object)
+		throws DatabindingFailedException {
+		if (domainModelReference == null) {
+			throw new IllegalArgumentException("The given VDomainModelReference must not be null."); //$NON-NLS-1$
+		}
+		if (object == null) {
+			throw new IllegalArgumentException("The given EObject must not be null."); //$NON-NLS-1$
+		}
+
+		final IValueProperty valueProperty = getValueProperty(domainModelReference, object);
+		return valueProperty.observe(object);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding#getValueProperty(VDomainModelReference,EObject)
+	 */
+	@Override
+	public IValueProperty getValueProperty(VDomainModelReference domainModelReference, EObject object)
+		throws DatabindingFailedException {
+		final DomainModelReferenceConverter bestConverter = getBestDomainModelReferenceConverter(domainModelReference);
+
+		if (bestConverter != null) {
+			return bestConverter.convertToValueProperty(domainModelReference, object);
+		}
+
+		throw new DatabindingFailedException(
+			String
+				.format(
+					"No applicable DomainModelReferenceConverter could be found for %1$s .", domainModelReference.eClass().getName())); //$NON-NLS-1$
+	}
+
+	/**
+	 * Adds the given {@link DomainModelReferenceConverter} to the Set of reference converters.
+	 *
+	 * @param converter The {@link DomainModelReferenceConverter} to add
+	 */
+	protected void addDomainModelReferenceConverter(DomainModelReferenceConverter converter) {
+		referenceConverters.add(converter);
+	}
+
+	/**
+	 * Removes the given {@link DomainModelReferenceConverter} to the Set of reference converters.
+	 *
+	 * @param converter The {@link DomainModelReferenceConverter} to remove
+	 */
+	protected void removeDomainModelReferenceConverter(DomainModelReferenceConverter converter) {
+		referenceConverters.remove(converter);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding#getObservableList(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference,
+	 *      org.eclipse.emf.ecore.EObject)
+	 */
+	@Override
+	public IObservableList getObservableList(VDomainModelReference domainModelReference, EObject object)
+		throws DatabindingFailedException {
+		if (domainModelReference == null) {
+			throw new IllegalArgumentException("The given VDomainModelReference must not be null."); //$NON-NLS-1$
+		}
+		if (object == null) {
+			throw new IllegalArgumentException("The given EObject must not be null."); //$NON-NLS-1$
+		}
+
+		final IListProperty listProperty = getListProperty(domainModelReference, object);
+		return listProperty.observe(object);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding#getListProperty(VDomainModelReference,EObject)
+	 */
+	@Override
+	public IListProperty getListProperty(VDomainModelReference domainModelReference, EObject object)
+		throws DatabindingFailedException {
+		final DomainModelReferenceConverter bestConverter = getBestDomainModelReferenceConverter(domainModelReference);
+
+		if (bestConverter != null) {
+			return bestConverter.convertToListProperty(domainModelReference, object);
+		}
+
+		throw new DatabindingFailedException("No applicable DomainModelReferenceConverter could be found."); //$NON-NLS-1$
+	}
+
+	/**
+	 * Returns the most suitable {@link DomainModelReferenceConverter}, that is registered to this
+	 * {@link EMFFormsDatabindingImpl}, for the given {@link VDomainModelReference}.
+	 *
+	 * @param domainModelReference The {@link VDomainModelReference} for which a {@link DomainModelReferenceConverter}
+	 *            is needed
+	 * @return The most suitable {@link DomainModelReferenceConverter}
+	 */
+	private DomainModelReferenceConverter getBestDomainModelReferenceConverter(
+		VDomainModelReference domainModelReference) {
+		if (domainModelReference == null) {
+			throw new IllegalArgumentException("The given VDomainModelReference must not be null."); //$NON-NLS-1$
+		}
+		double highestPriority = DomainModelReferenceConverter.NOT_APPLICABLE;
+		DomainModelReferenceConverter bestConverter = null;
+		for (final DomainModelReferenceConverter converter : referenceConverters) {
+			final double priority = converter.isApplicable(domainModelReference);
+			if (priority > highestPriority) {
+				highestPriority = priority;
+				bestConverter = converter;
+			}
+		}
+		return bestConverter;
+	}
+}
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.core.services.emf/src/org/eclipse/emfforms/internal/core/services/label/BundleResolver.java
new file mode 100644
index 0000000..a2e5cef
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.emf/src/org/eclipse/emfforms/internal/core/services/label/BundleResolver.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.label;
+
+import org.eclipse.emf.ecore.EClass;
+import org.osgi.framework.Bundle;
+
+/**
+ * Class to resolve an EClass to a Bundle.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public interface BundleResolver {
+
+	/**
+	 * Exception that is used if a bundle could not be found.
+	 *
+	 * @author Eugen Neufeld
+	 *
+	 */
+	public static class NoBundleFoundException extends Exception {
+		private static final long serialVersionUID = 1L;
+
+		/**
+		 * Default Constructor.
+		 * 
+		 * @param eClass The EClass to log for.
+		 */
+		public NoBundleFoundException(EClass eClass) {
+			super(String.format("No Bundle could not be found for %1$s.", eClass.getName())); //$NON-NLS-1$
+		}
+	}
+
+	/**
+	 * Retrieve the edit bundle for the passed EClass.
+	 *
+	 * @param eClass The EClass to get the edit bundle for
+	 * @return the Bundle , never null
+	 * @throws NoBundleFoundException if no bundle could be found
+	 */
+	Bundle getEditBundle(EClass eClass) throws NoBundleFoundException;
+}
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.core.services.emf/src/org/eclipse/emfforms/internal/core/services/label/BundleResolverImpl.java
new file mode 100644
index 0000000..d1cb4d4
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.emf/src/org/eclipse/emfforms/internal/core/services/label/BundleResolverImpl.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.label;
+
+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.EClass;
+import org.osgi.framework.Bundle;
+
+/**
+ * Implementation of the BundleResolver.
+ * 
+ * @author Eugen Neufeld
+ */
+public class BundleResolverImpl implements BundleResolver {
+
+	/**
+	 * {@inheritDoc}
+	 * 
+	 * @see org.eclipse.emfforms.internal.core.services.label.BundleResolver#getEditBundle(org.eclipse.emf.ecore.EClass)
+	 */
+	@Override
+	public Bundle getEditBundle(EClass eClass) throws NoBundleFoundException {
+		final IExtensionPoint extensionPoint = Platform.getExtensionRegistry()
+			.getExtensionPoint("org.eclipse.emf.edit.itemProviderAdapterFactories"); //$NON-NLS-1$
+
+		for (final IExtension extension : extensionPoint.getExtensions()) {
+			for (final IConfigurationElement configurationElement : extension.getConfigurationElements()) {
+				if (configurationElement.getAttribute("uri").equals(eClass.getEPackage().getNsURI())) { //$NON-NLS-1$
+					return Platform.getBundle(configurationElement.getContributor().getName());
+				}
+			}
+		}
+		throw new NoBundleFoundException(eClass);
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.core.services.emf/src/org/eclipse/emfforms/internal/core/services/label/EMFFormsLabelProviderDefaultImpl.java b/bundles/org.eclipse.emfforms.core.services.emf/src/org/eclipse/emfforms/internal/core/services/label/EMFFormsLabelProviderDefaultImpl.java
new file mode 100644
index 0000000..a1d6f0a
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.emf/src/org/eclipse/emfforms/internal/core/services/label/EMFFormsLabelProviderDefaultImpl.java
@@ -0,0 +1,209 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.label;
+
+import org.eclipse.core.databinding.observable.IObserving;
+import org.eclipse.core.databinding.observable.Observables;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+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.common.spi.asserts.Assert;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+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.DatabindingFailedReport;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.core.services.emfspecificservice.EMFSpecificService;
+import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
+
+/**
+ * Implementation of {@link EMFFormsLabelProvider}. It provides a label service that delivers the display name and
+ * description for a domain model reference and optionally an EObject.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class EMFFormsLabelProviderDefaultImpl implements EMFFormsLabelProvider {
+	private EMFFormsDatabinding emfFormsDatabinding;
+	private EMFSpecificService emfSpecificService;
+	private ReportService reportService;
+
+	/**
+	 * Sets the {@link EMFFormsDatabinding} service.
+	 *
+	 * @param emfFormsDatabinding The databinding service.
+	 */
+	protected void setEMFFormsDatabinding(EMFFormsDatabinding emfFormsDatabinding) {
+		this.emfFormsDatabinding = emfFormsDatabinding;
+	}
+
+	/**
+	 * Sets the {@link EMFSpecificService}.
+	 *
+	 * @param emfSpecificService The {@link EMFSpecificService}
+	 */
+	protected void setEMFSpecificService(EMFSpecificService emfSpecificService) {
+		this.emfSpecificService = emfSpecificService;
+	}
+
+	/**
+	 * Sets the {@link ReportService}.
+	 *
+	 * @param reportService The {@link ReportService}
+	 */
+	protected void setReportService(ReportService reportService) {
+		this.reportService = reportService;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider#getDisplayName(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference)
+	 */
+	@Override
+	public IObservableValue getDisplayName(VDomainModelReference domainModelReference) {
+		Assert.create(domainModelReference).notNull();
+
+		IValueProperty valueProperty;
+		try {
+			valueProperty = emfFormsDatabinding.getValueProperty(domainModelReference, null);
+		} catch (final DatabindingFailedException ex) {
+			reportService.report(new DatabindingFailedReport(ex));
+			return getConstantObservableValue(ex.getMessage());
+		}
+		final EStructuralFeature structuralFeature = (EStructuralFeature) valueProperty.getValueType();
+		final EClass eContainingClass = structuralFeature.getEContainingClass();
+		if (eContainingClass.isAbstract() || eContainingClass.isInterface()) {
+			return getConstantObservableValue(getFallbackLabel(structuralFeature));
+		}
+		final EObject tempInstance = EcoreUtil.create(eContainingClass);
+		final IItemPropertyDescriptor itemPropertyDescriptor = emfSpecificService.getIItemPropertyDescriptor(
+			tempInstance, structuralFeature);
+
+		return getConstantObservableValue(itemPropertyDescriptor.getDisplayName(tempInstance));
+	}
+
+	/**
+	 * Creates a fall back label from a {@link EStructuralFeature}.
+	 *
+	 * @param structuralFeature The {@link EStructuralFeature}
+	 * @return The fall back label
+	 */
+	private String getFallbackLabel(final EStructuralFeature structuralFeature) {
+		final String[] split = structuralFeature.getName().split("(?<!(^|[A-Z]))(?=[A-Z])|(?<!^)(?=[A-Z][a-z])"); //$NON-NLS-1$
+		final char[] charArray = split[0].toCharArray();
+		charArray[0] = Character.toUpperCase(charArray[0]);
+		split[0] = new String(charArray);
+		final StringBuilder sb = new StringBuilder();
+		for (final String str : split) {
+			sb.append(str);
+			sb.append(" "); //$NON-NLS-1$
+		}
+		return sb.toString().trim();
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider#getDisplayName(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference,
+	 *      org.eclipse.emf.ecore.EObject)
+	 */
+	@Override
+	public IObservableValue getDisplayName(VDomainModelReference domainModelReference, EObject rootObject) {
+		Assert.create(domainModelReference).notNull();
+		Assert.create(rootObject).notNull();
+
+		IObservableValue observableValue;
+		try {
+			observableValue = emfFormsDatabinding.getObservableValue(domainModelReference,
+				rootObject);
+		} catch (final DatabindingFailedException ex) {
+			reportService.report(new DatabindingFailedReport(ex));
+			return getConstantObservableValue(ex.getMessage());
+		}
+		final IObserving observing = (IObserving) observableValue;
+		final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+		final EObject value = (EObject) observing.getObserved();
+		observableValue.dispose();
+		final IItemPropertyDescriptor itemPropertyDescriptor = emfSpecificService.getIItemPropertyDescriptor(value,
+			structuralFeature);
+
+		return getConstantObservableValue(itemPropertyDescriptor.getDisplayName(value));
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider#getDescription(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference)
+	 */
+	@Override
+	public IObservableValue getDescription(VDomainModelReference domainModelReference) {
+		Assert.create(domainModelReference).notNull();
+
+		IValueProperty valueProperty;
+		try {
+			valueProperty = emfFormsDatabinding.getValueProperty(domainModelReference, null);
+		} catch (final DatabindingFailedException ex) {
+			reportService.report(new DatabindingFailedReport(ex));
+			return getConstantObservableValue(ex.getMessage());
+		}
+		final EStructuralFeature structuralFeature = (EStructuralFeature) valueProperty.getValueType();
+		final EClass eContainingClass = structuralFeature.getEContainingClass();
+		if (eContainingClass.isAbstract() || eContainingClass.isInterface()) {
+			return getConstantObservableValue(getFallbackLabel(structuralFeature));
+		}
+		final EObject tempInstance = EcoreUtil.create(eContainingClass);
+		final IItemPropertyDescriptor itemPropertyDescriptor = emfSpecificService.getIItemPropertyDescriptor(
+			tempInstance, structuralFeature);
+
+		return getConstantObservableValue(itemPropertyDescriptor.getDescription(tempInstance));
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider#getDescription(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference,
+	 *      org.eclipse.emf.ecore.EObject)
+	 */
+	@Override
+	public IObservableValue getDescription(VDomainModelReference domainModelReference, EObject rootObject) {
+		Assert.create(domainModelReference).notNull();
+		Assert.create(rootObject).notNull();
+
+		IObservableValue observableValue;
+		try {
+			observableValue = emfFormsDatabinding.getObservableValue(domainModelReference,
+				rootObject);
+		} catch (final DatabindingFailedException ex) {
+			reportService.report(new DatabindingFailedReport(ex));
+			return getConstantObservableValue(ex.getMessage());
+		}
+		final IObserving observing = (IObserving) observableValue;
+		final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
+		final EObject value = (EObject) observing.getObserved();
+		observableValue.dispose();
+
+		final IItemPropertyDescriptor itemPropertyDescriptor = emfSpecificService.getIItemPropertyDescriptor(value,
+			structuralFeature);
+
+		return getConstantObservableValue(itemPropertyDescriptor.getDescription(value));
+	}
+
+	private IObservableValue getConstantObservableValue(String value) {
+		return Observables.constantObservableValue(value, String.class);
+	}
+
+}
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
new file mode 100644
index 0000000..5c28fd2
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.emf/src/org/eclipse/emfforms/internal/core/services/label/EMFFormsLabelProviderImpl.java
@@ -0,0 +1,365 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.label;
+
+import java.text.MessageFormat;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.observable.value.WritableValue;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+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.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.locale.EMFFormsLocaleChangeListener;
+import org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleProvider;
+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.DatabindingFailedReport;
+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.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * Implementation of {@link EMFFormsLabelProvider}. It provides a label service that delivers the display name and
+ * description for a domain model reference and optionally an EObject.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class EMFFormsLabelProviderImpl implements EMFFormsLabelProvider, EMFFormsLocaleChangeListener {
+
+	/**
+	 * Key for the map of displayname observables.
+	 *
+	 * @author Eugen Neufeld
+	 */
+	private static class DisplayNameKey {
+		private final String key;
+		private final Bundle bundle;
+
+		public DisplayNameKey(String key, Bundle bundle) {
+			super();
+			this.key = key;
+			this.bundle = bundle;
+		}
+
+		String getKey() {
+			return key;
+		}
+
+		Bundle getBundle() {
+			return bundle;
+		}
+	}
+
+	/**
+	 * Key for the map of description observables.
+	 *
+	 * @author Eugen Neufeld
+	 */
+	private static class DescriptionKey {
+		private final String eClassName;
+		private final String featureName;
+		private final Bundle bundle;
+
+		public DescriptionKey(String eClassName, String featureName, Bundle bundle) {
+			super();
+			this.eClassName = eClassName;
+			this.featureName = featureName;
+			this.bundle = bundle;
+		}
+
+		Bundle getBundle() {
+			return bundle;
+		}
+
+		String geteClassName() {
+			return eClassName;
+		}
+
+		String getFeatureName() {
+			return featureName;
+		}
+	}
+
+	private static final String DISPLAY_NAME = "_UI_%1$s_%2$s_feature"; //$NON-NLS-1$
+	private static final String DESCRIPTION = "_UI_%1$s_%2$s_description"; //$NON-NLS-1$
+	private static final String DESCRIPTION_COMPOSITE = "_UI_PropertyDescriptor_description"; //$NON-NLS-1$
+	private static final String TYPE = "_UI_%1$s_type"; //$NON-NLS-1$
+
+	private EMFFormsDatabinding emfFormsDatabinding;
+	private EMFFormsLocalizationService localizationService;
+	private ReportService reportService;
+	private BundleResolver bundleResolver = new BundleResolverImpl();
+
+	private final Map<DisplayNameKey, WritableValue> displayKeyObservableMap = new LinkedHashMap<DisplayNameKey, WritableValue>();
+	private final Map<DescriptionKey, WritableValue> descriptionKeyObservableMap = new LinkedHashMap<DescriptionKey, WritableValue>();
+	private EMFFormsLocaleProvider localeProvider;
+	private ServiceReference<EMFFormsLabelProvider> defaultLabelProviderReference;
+	private EMFFormsLabelProvider labelProviderDefault;
+
+	/**
+	 * Sets the {@link ReportService} service.
+	 *
+	 * @param reportService The ReportService service.
+	 */
+	protected void setReportService(ReportService reportService) {
+		this.reportService = reportService;
+	}
+
+	/**
+	 * Sets the {@link EMFFormsDatabinding} service.
+	 *
+	 * @param emfFormsDatabinding The databinding service.
+	 */
+	protected void setEMFFormsDatabinding(EMFFormsDatabinding emfFormsDatabinding) {
+		this.emfFormsDatabinding = emfFormsDatabinding;
+	}
+
+	/**
+	 * Sets the {@link EMFFormsLocalizationService}.
+	 *
+	 * @param localizationService The {@link EMFFormsLocalizationService}
+	 */
+	protected void setEMFFormsLocalizationService(EMFFormsLocalizationService localizationService) {
+		this.localizationService = localizationService;
+	}
+
+	/**
+	 * Sets the {@link EMFFormsLocaleProvider}.
+	 *
+	 * @param localeProvider The {@link EMFFormsLocaleProvider}
+	 */
+	protected void setEMFFormsLocaleProvider(EMFFormsLocaleProvider localeProvider) {
+		this.localeProvider = localeProvider;
+		this.localeProvider.addEMFFormsLocaleChangeListener(this);
+	}
+
+	/**
+	 * Sets the {@link BundleResolver}.
+	 *
+	 * @param bundleResolver The {@link BundleResolver}
+	 */
+	protected void setBundleResolver(BundleResolver bundleResolver) {
+		this.bundleResolver = bundleResolver;
+	}
+
+	/**
+	 * Called by the Framework during startup to retrieve a fallback label provider.
+	 *
+	 * @param bundleContext The {@link BundleContext} to use
+	 * @throws InvalidSyntaxException thrown if the filter string is incorrect
+	 */
+	protected void activate(BundleContext bundleContext) throws InvalidSyntaxException {
+		defaultLabelProviderReference = bundleContext
+			.getServiceReferences(EMFFormsLabelProvider.class, "(service.ranking=1)").iterator().next(); //$NON-NLS-1$
+		labelProviderDefault = bundleContext.getService(defaultLabelProviderReference);
+	}
+
+	/**
+	 * Called by the framework during tear down. Ungets the fallback label provider.
+	 *
+	 * @param bundleContext The {@link BundleContext} to use
+	 */
+	protected void deactivate(BundleContext bundleContext) {
+		bundleContext.ungetService(defaultLabelProviderReference);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see EMFFormsLabelProvider#getDisplayName(VDomainModelReference)
+	 */
+	@Override
+	public IObservableValue getDisplayName(VDomainModelReference domainModelReference) throws NoLabelFoundException {
+		Assert.create(domainModelReference).notNull();
+
+		IValueProperty valueProperty;
+		try {
+			valueProperty = emfFormsDatabinding.getValueProperty(domainModelReference, null);
+		} catch (final DatabindingFailedException ex) {
+			reportService.report(new DatabindingFailedReport(ex));
+			throw new NoLabelFoundException(ex);
+		}
+		final EStructuralFeature structuralFeature = (EStructuralFeature) valueProperty.getValueType();
+		final EClass eContainingClass = structuralFeature.getEContainingClass();
+		Bundle bundle;
+		try {
+			bundle = bundleResolver.getEditBundle(eContainingClass);
+		} catch (final NoBundleFoundException ex) {
+			reportService.report(new AbstractReport(ex, 1));
+			reportService.report(new AbstractReport("Using fallback", 1)); //$NON-NLS-1$
+			return labelProviderDefault.getDisplayName(domainModelReference);
+		}
+		final String key = String.format(DISPLAY_NAME, eContainingClass.getName(),
+			structuralFeature.getName());
+		final WritableValue value = getObservableValue(getDisplayName(bundle, key));
+		displayKeyObservableMap.put(new DisplayNameKey(key, bundle), value);
+		return value;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see EMFFormsLabelProvider#getDisplayName(VDomainModelReference,EObject)
+	 */
+	@Override
+	public IObservableValue getDisplayName(VDomainModelReference domainModelReference, EObject rootObject)
+		throws NoLabelFoundException {
+		Assert.create(domainModelReference).notNull();
+		Assert.create(rootObject).notNull();
+
+		IValueProperty valueProperty;
+		try {
+			valueProperty = emfFormsDatabinding.getValueProperty(domainModelReference, rootObject);
+		} catch (final DatabindingFailedException ex) {
+			reportService.report(new DatabindingFailedReport(ex));
+			throw new NoLabelFoundException(ex);
+		}
+		final EStructuralFeature structuralFeature = (EStructuralFeature) valueProperty.getValueType();
+
+		Bundle bundle;
+		try {
+			bundle = bundleResolver.getEditBundle(structuralFeature.getEContainingClass());
+		} catch (final NoBundleFoundException ex) {
+			reportService.report(new AbstractReport(ex, 1));
+			reportService.report(new AbstractReport("Using fallback", 1)); //$NON-NLS-1$
+			return labelProviderDefault.getDisplayName(domainModelReference, rootObject);
+		}
+		final String key = String.format(DISPLAY_NAME, structuralFeature.getEContainingClass().getName(),
+			structuralFeature.getName());
+		final WritableValue displayObserveValue = getObservableValue(getDisplayName(bundle, key));
+		displayKeyObservableMap.put(new DisplayNameKey(key, bundle), displayObserveValue);
+		return displayObserveValue;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see EMFFormsLabelProvider#getDescription(VDomainModelReference)
+	 */
+	@Override
+	public IObservableValue getDescription(VDomainModelReference domainModelReference) throws NoLabelFoundException {
+		Assert.create(domainModelReference).notNull();
+
+		IValueProperty valueProperty;
+		try {
+			valueProperty = emfFormsDatabinding.getValueProperty(domainModelReference, null);
+		} catch (final DatabindingFailedException ex) {
+			reportService.report(new DatabindingFailedReport(ex));
+			throw new NoLabelFoundException(ex);
+		}
+		final EStructuralFeature structuralFeature = (EStructuralFeature) valueProperty.getValueType();
+		final EClass eContainingClass = structuralFeature.getEContainingClass();
+		Bundle bundle;
+		try {
+			bundle = bundleResolver.getEditBundle(eContainingClass);
+		} catch (final NoBundleFoundException ex) {
+			reportService.report(new AbstractReport(ex, 1));
+			reportService.report(new AbstractReport("Using fallback", 1)); //$NON-NLS-1$
+			return labelProviderDefault.getDescription(domainModelReference);
+		}
+		final WritableValue writableValue = getObservableValue(getDescription(eContainingClass
+			.getName(),
+			structuralFeature.getName(), bundle));
+		descriptionKeyObservableMap.put(new DescriptionKey(eContainingClass.getName(),
+			structuralFeature.getName(), bundle), writableValue);
+		return writableValue;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see EMFFormsLabelProvider#getDescription(VDomainModelReference,EObject)
+	 */
+	@Override
+	public IObservableValue getDescription(VDomainModelReference domainModelReference, EObject rootObject)
+		throws NoLabelFoundException {
+		Assert.create(domainModelReference).notNull();
+		Assert.create(rootObject).notNull();
+
+		IValueProperty valueProperty;
+		try {
+			valueProperty = emfFormsDatabinding.getValueProperty(domainModelReference, rootObject);
+		} catch (final DatabindingFailedException ex) {
+			reportService.report(new DatabindingFailedReport(ex));
+			throw new NoLabelFoundException(ex);
+		}
+		final EStructuralFeature structuralFeature = (EStructuralFeature) valueProperty.getValueType();
+		Bundle bundle;
+		try {
+			bundle = bundleResolver.getEditBundle(structuralFeature.getEContainingClass());
+		} catch (final NoBundleFoundException ex) {
+			reportService.report(new AbstractReport(ex, 1));
+			reportService.report(new AbstractReport("Using fallback", 1)); //$NON-NLS-1$
+			return labelProviderDefault.getDescription(domainModelReference, rootObject);
+		}
+		final WritableValue writableValue = getObservableValue(getDescription(structuralFeature.getEContainingClass()
+			.getName(),
+			structuralFeature.getName(), bundle));
+		descriptionKeyObservableMap.put(new DescriptionKey(structuralFeature.getEContainingClass().getName(),
+			structuralFeature.getName(), bundle), writableValue);
+		return writableValue;
+	}
+
+	private WritableValue getObservableValue(String value) {
+		return new WritableValue(value, String.class);
+	}
+
+	private String getDisplayName(Bundle bundle, String key) {
+		return localizationService.getString(bundle, key);
+	}
+
+	private String getDescription(String eClassName, String featureName, Bundle bundle) {
+		final String keyDefault = String.format(DESCRIPTION, eClassName, featureName);
+		if (localizationService.hasKey(bundle, keyDefault)) {
+			return localizationService.getString(bundle,
+				keyDefault);
+		}
+		final String descriptionWithSubstitution = localizationService.getString(bundle,
+			DESCRIPTION_COMPOSITE);
+		final String key = String.format(DISPLAY_NAME, eClassName, featureName);
+		final String featureSubstitution = getDisplayName(bundle, key);
+		final String eObjectSubstitution = localizationService.getString(bundle,
+			String.format(TYPE, eClassName));
+		return MessageFormat.format(descriptionWithSubstitution, featureSubstitution, eObjectSubstitution);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleChangeListener#notifyLocaleChange()
+	 */
+	@Override
+	public void notifyLocaleChange() {
+		for (final DisplayNameKey displayNameKey : displayKeyObservableMap.keySet()) {
+			final WritableValue writableValue = displayKeyObservableMap.get(displayNameKey);
+			writableValue.setValue(getDisplayName(displayNameKey.getBundle(), displayNameKey.getKey()));
+		}
+		for (final DescriptionKey descriptionKey : descriptionKeyObservableMap.keySet()) {
+			final WritableValue writableValue = descriptionKeyObservableMap.get(descriptionKey);
+			writableValue.setValue(getDescription(descriptionKey.geteClassName(), descriptionKey.getFeatureName(),
+				descriptionKey.getBundle()));
+		}
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.checkstyle b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/.checkstyle
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.checkstyle
copy to bundles/org.eclipse.emfforms.core.services.emfspecificservice/.checkstyle
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/.classpath
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath
copy to bundles/org.eclipse.emfforms.core.services.emfspecificservice/.classpath
diff --git a/bundles/org.eclipse.emfforms.core.services.emfspecificservice/.project b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/.project
new file mode 100644
index 0000000..c9d8557
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/.project
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.core.services.emfspecificservice</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>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>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
+	</natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
copy to bundles/org.eclipse.emfforms.core.services.emfspecificservice/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to bundles/org.eclipse.emfforms.core.services.emfspecificservice/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emfforms.core.services.emfspecificservice/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..66c53c1
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/.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.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
copy to bundles/org.eclipse.emfforms.core.services.emfspecificservice/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.ui.prefs
copy to bundles/org.eclipse.emfforms.core.services.emfspecificservice/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to bundles/org.eclipse.emfforms.core.services.emfspecificservice/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
copy to bundles/org.eclipse.emfforms.core.services.emfspecificservice/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
copy to bundles/org.eclipse.emfforms.core.services.emfspecificservice/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..c33fc65
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/META-INF/MANIFEST.MF
@@ -0,0 +1,12 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Emf Specific Service
+Bundle-SymbolicName: org.eclipse.emfforms.core.services.emfspecificservice
+Bundle-Version: 1.6.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)"
+Bundle-ActivationPolicy: lazy
+Service-Component: OSGI-INF/emfSpecificService.xml
+Export-Package: org.eclipse.emfforms.internal.core.services.emfspecificservice;version="1.6.0";x-internal:=true,
+ org.eclipse.emfforms.spi.core.services.emfspecificservice;version="1.6.0"
diff --git a/bundles/org.eclipse.emfforms.core.services.emfspecificservice/OSGI-INF/emfSpecificService.xml b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/OSGI-INF/emfSpecificService.xml
new file mode 100644
index 0000000..c1e27d4
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/OSGI-INF/emfSpecificService.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emf.emfforms.core.services.emfspecificservice">
+   <implementation class="org.eclipse.emfforms.internal.core.services.emfspecificservice.EMFSpecificServiceImpl"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.core.services.emfspecificservice.EMFSpecificService"/>
+   </service>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/about.html b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/about.html
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/about.html
copy to bundles/org.eclipse.emfforms.core.services.emfspecificservice/about.html
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/build.properties b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/build.properties
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/build.properties
copy to bundles/org.eclipse.emfforms.core.services.emfspecificservice/build.properties
diff --git a/bundles/org.eclipse.emfforms.core.services.emfspecificservice/pom.xml b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/pom.xml
new file mode 100644
index 0000000..5b6ab49
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/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.6.0-SNAPSHOT</version>

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

+  </parent>

+

+  <artifactId>org.eclipse.emfforms.core.services.emfspecificservice</artifactId>

+  <packaging>eclipse-plugin</packaging>

+

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

+  <version>1.6.0-SNAPSHOT</version>

+</project>

diff --git a/bundles/org.eclipse.emfforms.core.services.emfspecificservice/src/org/eclipse/emfforms/internal/core/services/emfspecificservice/EMFSpecificServiceImpl.java b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/src/org/eclipse/emfforms/internal/core/services/emfspecificservice/EMFSpecificServiceImpl.java
new file mode 100644
index 0000000..eaf1b1a
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/src/org/eclipse/emfforms/internal/core/services/emfspecificservice/EMFSpecificServiceImpl.java
@@ -0,0 +1,119 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.emfspecificservice;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+import org.eclipse.emfforms.spi.core.services.emfspecificservice.EMFSpecificService;
+
+/**
+ * Implementation of {@link EMFSpecificService}.
+ *
+ * @author Lucas Koehler
+ * @noextend This interface is not intended to be extended by clients.
+ * @noreference This method is not intended to be referenced by clients.
+ */
+public class EMFSpecificServiceImpl implements EMFSpecificService {
+
+	// private ComposedAdapterFactory composedAdapterFactory; // TODO: discuss: need dispose?
+	//
+	// /**
+	// * {@inheritDoc}
+	// *
+	// * @see
+	// org.eclipse.emfforms.spi.core.services.emfspecificservice.EMFSpecificService#getComposedAdapterFactory()
+	// */
+	// @Override
+	// public ComposedAdapterFactory getComposedAdapterFactory() {
+	// if (composedAdapterFactory == null) {
+	// composedAdapterFactory = new ComposedAdapterFactory(new AdapterFactory[] {
+	// new ReflectiveItemProviderAdapterFactory(),
+	// new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE) });
+	// }
+	// return composedAdapterFactory;
+	// }
+	//
+	// /**
+	// * {@inheritDoc}
+	// *
+	// * @see
+	// org.eclipse.emfforms.spi.core.services.emfspecificservice.EMFSpecificService#getAdapterFactoryItemDelegator()
+	// */
+	// @Override
+	// public AdapterFactoryItemDelegator getAdapterFactoryItemDelegator() {
+	// return new AdapterFactoryItemDelegator(getComposedAdapterFactory());
+	// }
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see EMFSpecificService#getIItemPropertyDescriptor(EObject, EStructuralFeature)
+	 */
+	@Override
+	public IItemPropertyDescriptor getIItemPropertyDescriptor(EObject eObject, EStructuralFeature eStructuralFeature) {
+		final EditingDomain editingDomain = AdapterFactoryEditingDomain.getEditingDomainFor(eObject);
+		AdapterFactoryItemDelegator itemDelegator;
+		if (editingDomain != null && AdapterFactoryEditingDomain.class.isInstance(editingDomain)) {
+			itemDelegator = getAdapterFactoryItemDelegator(AdapterFactoryEditingDomain.class.cast(editingDomain)
+				.getAdapterFactory());
+		} else {
+			final ComposedAdapterFactory composedAdapterFactory = new ComposedAdapterFactory(new AdapterFactory[] {
+				new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE),
+				// new CustomReflectiveItemProvider(), <-- move to common bundle,
+				// then remove the ReflectiveItemProviderAdapterFactory
+				new ReflectiveItemProviderAdapterFactory()
+			});
+			itemDelegator = getAdapterFactoryItemDelegator(composedAdapterFactory);
+			composedAdapterFactory.dispose();
+		}
+
+		return itemDelegator.getPropertyDescriptor(eObject, eStructuralFeature);
+	}
+
+	private AdapterFactoryItemDelegator getAdapterFactoryItemDelegator(AdapterFactory adapterFactory) {
+		return new AdapterFactoryItemDelegator(adapterFactory);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.core.services.emfspecificservice.EMFSpecificService#getIItemPropertySource(org.eclipse.emf.ecore.EObject)
+	 */
+	@Override
+	public IItemPropertySource getIItemPropertySource(EObject eObject) {
+		final EditingDomain editingDomain = AdapterFactoryEditingDomain.getEditingDomainFor(eObject);
+		IItemPropertySource propertySource;
+		if (editingDomain != null && AdapterFactoryEditingDomain.class.isInstance(editingDomain)) {
+			propertySource = (IItemPropertySource) AdapterFactoryEditingDomain.class.cast(editingDomain)
+				.getAdapterFactory().adapt(eObject, IItemPropertySource.class);
+		} else {
+			final ComposedAdapterFactory composedAdapterFactory = new ComposedAdapterFactory(new AdapterFactory[] {
+				new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE),
+				// new CustomReflectiveItemProvider(), <-- move to common bundle,
+				// then remove the ReflectiveItemProviderAdapterFactory
+				new ReflectiveItemProviderAdapterFactory()
+			});
+			propertySource = (IItemPropertySource) composedAdapterFactory.adapt(eObject, IItemPropertySource.class);
+			composedAdapterFactory.dispose();
+		}
+
+		return propertySource;
+	}
+}
diff --git a/bundles/org.eclipse.emfforms.core.services.emfspecificservice/src/org/eclipse/emfforms/spi/core/services/emfspecificservice/EMFSpecificService.java b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/src/org/eclipse/emfforms/spi/core/services/emfspecificservice/EMFSpecificService.java
new file mode 100644
index 0000000..4379bf6
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/src/org/eclipse/emfforms/spi/core/services/emfspecificservice/EMFSpecificService.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.core.services.emfspecificservice;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+
+/**
+ * The {@link EMFSpecificService} offers EMF specific functionality. Thereby, it provides the following things:
+ * <ul>
+ * <li>{@link AdapterFactoryItemDelegator}</li>
+ * <li>{@link ComposedAdapterFactory}</li>
+ * <ul>
+ *
+ * @author Lucas Koehler
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ * @noreference This method is not intended to be referenced by clients.
+ */
+public interface EMFSpecificService {
+	// /**
+	// * Returns a {@link ComposedAdapterFactory}.
+	// *
+	// * @return The {@link ComposedAdapterFactory}
+	// */
+	// ComposedAdapterFactory getComposedAdapterFactory();
+	//
+	// /**
+	// * Returns a {@link AdapterFactoryItemDelegator}.
+	// *
+	// * @return The {@link AdapterFactoryItemDelegator}
+	// */
+	// AdapterFactoryItemDelegator getAdapterFactoryItemDelegator();
+
+	IItemPropertyDescriptor getIItemPropertyDescriptor(EObject eObject, EStructuralFeature eStructuralFeature);
+
+	IItemPropertySource getIItemPropertySource(EObject eObject);
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.checkstyle b/bundles/org.eclipse.emfforms.core.services.locale.default/.checkstyle
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.checkstyle
copy to bundles/org.eclipse.emfforms.core.services.locale.default/.checkstyle
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath b/bundles/org.eclipse.emfforms.core.services.locale.default/.classpath
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath
rename to bundles/org.eclipse.emfforms.core.services.locale.default/.classpath
diff --git a/bundles/org.eclipse.emfforms.core.services.locale.default/.project b/bundles/org.eclipse.emfforms.core.services.locale.default/.project
new file mode 100644
index 0000000..675cce9
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.locale.default/.project
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.core.services.locale.default</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.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.emfforms.core.services.locale.default/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
copy to bundles/org.eclipse.emfforms.core.services.locale.default/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.emfforms.core.services.locale.default/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to bundles/org.eclipse.emfforms.core.services.locale.default/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.core.services.locale.default/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.core.prefs
copy to bundles/org.eclipse.emfforms.core.services.locale.default/.settings/org.eclipse.jdt.core.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.emfforms.core.services.locale.default/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
copy to bundles/org.eclipse.emfforms.core.services.locale.default/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.emfforms.core.services.locale.default/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.ui.prefs
rename to bundles/org.eclipse.emfforms.core.services.locale.default/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.emfforms.core.services.locale.default/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to bundles/org.eclipse.emfforms.core.services.locale.default/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services.locale.default/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
copy to bundles/org.eclipse.emfforms.core.services.locale.default/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.emfforms.core.services.locale.default/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
copy to bundles/org.eclipse.emfforms.core.services.locale.default/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..40c5dfe
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.locale.default/META-INF/MANIFEST.MF
@@ -0,0 +1,12 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMFForms Default Locale Provider
+Bundle-SymbolicName: org.eclipse.emfforms.core.services.locale.default
+Bundle-Version: 1.6.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-ActivationPolicy: lazy
+Service-Component: OSGI-INF/defaultLocalizationService.xml
+Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)"
+Export-Package: org.eclipse.emfforms.internal.core.services.locale.defaultlocale;version="1.6.0"
+Import-Package: org.eclipse.emfforms.spi.common.locale;version="[1.6.0,2.0.0)"
diff --git a/bundles/org.eclipse.emfforms.core.services.locale.default/OSGI-INF/defaultLocalizationService.xml b/bundles/org.eclipse.emfforms.core.services.locale.default/OSGI-INF/defaultLocalizationService.xml
new file mode 100644
index 0000000..99dafd4
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.locale.default/OSGI-INF/defaultLocalizationService.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emfforms.localization.default">
+   <implementation class="org.eclipse.emfforms.internal.core.services.locale.defaultlocale.DefaultLocaleProvider"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleProvider"/>
+   </service>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/about.html b/bundles/org.eclipse.emfforms.core.services.locale.default/about.html
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/about.html
rename to bundles/org.eclipse.emfforms.core.services.locale.default/about.html
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/build.properties b/bundles/org.eclipse.emfforms.core.services.locale.default/build.properties
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/build.properties
copy to bundles/org.eclipse.emfforms.core.services.locale.default/build.properties
diff --git a/bundles/org.eclipse.emfforms.core.services.locale.default/pom.xml b/bundles/org.eclipse.emfforms.core.services.locale.default/pom.xml
new file mode 100644
index 0000000..5d33346
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.locale.default/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.6.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.6.0-SNAPSHOT</version>
+  <packaging>eclipse-plugin</packaging>
+
+</project>
diff --git a/bundles/org.eclipse.emfforms.core.services.locale.default/src/org/eclipse/emfforms/internal/core/services/locale/defaultlocale/DefaultLocaleProvider.java b/bundles/org.eclipse.emfforms.core.services.locale.default/src/org/eclipse/emfforms/internal/core/services/locale/defaultlocale/DefaultLocaleProvider.java
new file mode 100644
index 0000000..2ad087f
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services.locale.default/src/org/eclipse/emfforms/internal/core/services/locale/defaultlocale/DefaultLocaleProvider.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.locale.defaultlocale;
+
+import java.util.Locale;
+
+import org.eclipse.emfforms.spi.common.locale.AbstractEMFFormsLocaleProvider;
+
+/**
+ * EMFFormsLocaleProvider that works on the default {@link Locale}.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class DefaultLocaleProvider extends AbstractEMFFormsLocaleProvider {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleProvider#getLocale()
+	 */
+	@Override
+	public Locale getLocale() {
+		return Locale.getDefault();
+	}
+
+	/**
+	 * Method to update the locale.
+	 * 
+	 * @param newLocale The new Locale
+	 */
+	public void setLocale(Locale newLocale) {
+		Locale.setDefault(newLocale);
+		notifyListeners();
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.checkstyle b/bundles/org.eclipse.emfforms.core.services/.checkstyle
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.checkstyle
copy to bundles/org.eclipse.emfforms.core.services/.checkstyle
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.classpath b/bundles/org.eclipse.emfforms.core.services/.classpath
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.classpath
copy to bundles/org.eclipse.emfforms.core.services/.classpath
diff --git a/bundles/org.eclipse.emfforms.core.services/.gitignore b/bundles/org.eclipse.emfforms.core.services/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emfforms.core.services/.project b/bundles/org.eclipse.emfforms.core.services/.project
new file mode 100644
index 0000000..e9e2a9b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/.project
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.core.services</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.api.tools.apiAnalysisBuilder</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>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
+		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
+	</natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.emfforms.core.services/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.resources.prefs
copy to bundles/org.eclipse.emfforms.core.services/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.emfforms.core.services/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.runtime.prefs
copy to bundles/org.eclipse.emfforms.core.services/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emfforms.core.services/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.core.services/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..66c53c1
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/.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.editor/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.emfforms.core.services/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.launching.prefs
copy to bundles/org.eclipse.emfforms.core.services/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.emfforms.core.services/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.ui.prefs
copy to bundles/org.eclipse.emfforms.core.services/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.emfforms.core.services/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to bundles/org.eclipse.emfforms.core.services/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.core.services/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.api.tools.prefs
copy to bundles/org.eclipse.emfforms.core.services/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.emfforms.core.services/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.prefs
copy to bundles/org.eclipse.emfforms.core.services/.settings/org.eclipse.pde.prefs
diff --git a/bundles/org.eclipse.emfforms.core.services/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.services/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..c1e926c
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/META-INF/MANIFEST.MF
@@ -0,0 +1,22 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMFForms Core Services
+Bundle-SymbolicName: org.eclipse.emfforms.core.services
+Bundle-Version: 1.6.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.emfforms.spi.core.services.databinding;version="1.6.0",
+ org.eclipse.emfforms.spi.core.services.label;version="1.6.0"
+Import-Package: org.eclipse.core.databinding.observable.list;version="0.0.0",
+ org.eclipse.core.databinding.observable.value;version="0.0.0",
+ org.eclipse.core.databinding.property.list;version="0.0.0",
+ org.eclipse.core.databinding.property.value;version="0.0.0",
+ org.eclipse.emf.ecore;version="0.0.0",
+ org.eclipse.emf.ecp.view.spi.model;version="[1.5.0,2.0.0)",
+ org.eclipse.emfforms.spi.common.report;version="1.6.0"
+Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.6.0,2.0.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.6.0,2.0.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)";visibility:=reexport
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/about.html b/bundles/org.eclipse.emfforms.core.services/about.html
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/about.html
copy to bundles/org.eclipse.emfforms.core.services/about.html
diff --git a/bundles/org.eclipse.emfforms.core.services/build.properties b/bundles/org.eclipse.emfforms.core.services/build.properties
new file mode 100644
index 0000000..9cbab3c
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/build.properties
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               about.html
+src.includes = about.html
diff --git a/bundles/org.eclipse.emfforms.core.services/pom.xml b/bundles/org.eclipse.emfforms.core.services/pom.xml
new file mode 100644
index 0000000..cb31049
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/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.6.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.6.0-SNAPSHOT</version>
+  <packaging>eclipse-plugin</packaging>
+
+</project>
diff --git a/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/databinding/DatabindingFailedException.java b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/databinding/DatabindingFailedException.java
new file mode 100644
index 0000000..cb6bbfc
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/databinding/DatabindingFailedException.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.core.services.databinding;
+
+/**
+ * A checked {@link Exception} that is thrown by the {@link EMFFormsDatabinding databinding service} when the
+ * databinding fails.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class DatabindingFailedException extends Exception {
+
+	private static final long serialVersionUID = -6546814649353012826L;
+
+	/**
+	 * Creates a new {@link DatabindingFailedException}.
+	 *
+	 * @param message The message of the Exception
+	 */
+	public DatabindingFailedException(String message) {
+		super(message);
+	}
+}
diff --git a/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/databinding/DatabindingFailedReport.java b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/databinding/DatabindingFailedReport.java
new file mode 100644
index 0000000..53069c9
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/databinding/DatabindingFailedReport.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.core.services.databinding;
+
+import java.text.MessageFormat;
+
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
+
+/**
+ * A rendering report indicating that the databinding is not possible due to an exception.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class DatabindingFailedReport extends AbstractReport {
+
+	/**
+	 * Constructor.
+	 *
+	 * @param exception
+	 *            the underlying exception
+	 */
+	public DatabindingFailedReport(Throwable exception) {
+		super(exception,
+			MessageFormat.format("Databinding not possible due to: {0}.", //$NON-NLS-1$
+				exception.getMessage()));
+	}
+}
diff --git a/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/databinding/DomainModelReferenceConverter.java b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/databinding/DomainModelReferenceConverter.java
new file mode 100644
index 0000000..75d801c
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/databinding/DomainModelReferenceConverter.java
@@ -0,0 +1,67 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.core.services.databinding;
+
+import org.eclipse.core.databinding.property.list.IListProperty;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+
+/**
+ * Converts a {@link VDomainModelReference} to a {@link IValueProperty}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public interface DomainModelReferenceConverter {
+
+	/**
+	 * The constant defining the priority that a {@link DomainModelReferenceConverter} is not for a
+	 * {@link VDomainModelReference}.
+	 */
+	double NOT_APPLICABLE = Double.NEGATIVE_INFINITY;
+
+	/**
+	 * Checks whether the given {@link VDomainModelReference} can be converted by this
+	 * {@link DomainModelReferenceConverter} to a {@link IValueProperty}. The return value is the priority of this
+	 * converter. The higher the priority, the better suits the converter the given {@link VDomainModelReference}.
+	 *
+	 * @param domainModelReference The {@link VDomainModelReference} whose priority is wanted.
+	 * @return The priority of the given {@link VDomainModelReference}; negative infinity if this converter is not
+	 *         applicable.
+	 */
+	double isApplicable(VDomainModelReference domainModelReference);
+
+	/**
+	 * Converts a {@link VDomainModelReference} to a {@link IValueProperty}.
+	 *
+	 * @param domainModelReference The {@link VDomainModelReference} that will be converted to a {@link IValueProperty}
+	 * @param object The root object of the rendered form
+	 * @return The created {@link IValueProperty}, does not return <code>null</code>.
+	 * @throws DatabindingFailedException if no value property could be created due to an invalid
+	 *             {@link VDomainModelReference}.
+	 */
+	IValueProperty convertToValueProperty(VDomainModelReference domainModelReference, EObject object)
+		throws DatabindingFailedException;
+
+	/**
+	 * Converts a {@link VDomainModelReference} to an {@link IListProperty}.
+	 *
+	 * @param domainModelReference The {@link VDomainModelReference} that will be converted to an {@link IListProperty}
+	 * @param object The root object of the rendered form
+	 * @return The created {@link IListProperty}, does not return <code>null</code>.
+	 * @throws DatabindingFailedException if no value property could be created due to an invalid
+	 *             {@link VDomainModelReference}.
+	 */
+	IListProperty convertToListProperty(VDomainModelReference domainModelReference, EObject object)
+		throws DatabindingFailedException;
+}
diff --git a/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/databinding/EMFFormsDatabinding.java b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/databinding/EMFFormsDatabinding.java
new file mode 100644
index 0000000..efe2697
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/databinding/EMFFormsDatabinding.java
@@ -0,0 +1,76 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.core.services.databinding;
+
+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.EObject;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+
+/**
+ * {@link EMFFormsDatabinding} provides a databinding service. It provides four methods for getting an
+ * {@link IValueProperty} or an {@link IListProperty} from a {@link VDomainModelReference} and getting an
+ * {@link IObservableValue} or an {@link IObservableList} from a {@link VDomainModelReference} and an {@link EObject}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public interface EMFFormsDatabinding {
+
+	/**
+	 * Returns an {@link IObservableValue} by observing the value described by the given {@link VDomainModelReference}
+	 * of the given {@link EObject}.
+	 *
+	 * @param domainModelReference The domain model reference pointing to the desired value
+	 * @param object The object containing the value of the reference
+	 * @return The resulting {@link IObservableValue}, does not return <code>null</code>.
+	 * @throws DatabindingFailedException if the databinding could not be executed successfully.
+	 */
+	IObservableValue getObservableValue(VDomainModelReference domainModelReference, EObject object)
+		throws DatabindingFailedException;
+
+	/**
+	 * Returns an {@link IObservableList} by observing the list described by the given {@link VDomainModelReference} of
+	 * the given {@link EObject}.
+	 *
+	 * @param domainModelReference The domain model reference pointing to the desired list
+	 * @param object The object containing the values of the reference
+	 * @return The resulting {@link IObservableList}, does not return <code>null</code>
+	 * @throws DatabindingFailedException if the databinding could not be executed successfully.
+	 */
+	IObservableList getObservableList(VDomainModelReference domainModelReference, EObject object)
+		throws DatabindingFailedException;
+
+	/**
+	 * Returns an {@link IValueProperty} described by the given {@link VDomainModelReference}.
+	 *
+	 * @param domainModelReference The domain model reference pointing to the desired value
+	 * @param object The root object of the rendered form
+	 * @return The resulting {@link IValueProperty}, does not return <code>null</code>.
+	 * @throws DatabindingFailedException if the databinding could not be executed successfully.
+	 */
+	IValueProperty getValueProperty(VDomainModelReference domainModelReference, EObject object)
+		throws DatabindingFailedException;
+
+	/**
+	 * Returns an {@link IListProperty} described by the given {@link VDomainModelReference}.
+	 *
+	 * @param domainModelReference The domain model reference pointing to the desired list
+	 * @param object The root object of the rendered form
+	 * @return The resulting {@link IListProperty}, does not return <code>null</code>.
+	 * @throws DatabindingFailedException if the databinding could not be executed successfully.
+	 */
+	IListProperty getListProperty(VDomainModelReference domainModelReference, EObject object)
+		throws DatabindingFailedException;
+}
diff --git a/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/label/EMFFormsLabelProvider.java b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/label/EMFFormsLabelProvider.java
new file mode 100644
index 0000000..99b29ba
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/label/EMFFormsLabelProvider.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.core.services.label;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+
+/**
+ * The {@link EMFFormsLabelProvider} offers methods to get the display name and the description
+ * for a model object referenced by a {@link VDomainModelReference} as an IObservableValue. The reference can optionally
+ * be complemented by an {@link EObject} which is the root object of the {@link VDomainModelReference}. This enables to
+ * get the texts for a
+ * concrete instance.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public interface EMFFormsLabelProvider {
+
+	/**
+	 * Returns the display name of the referenced domain object.
+	 *
+	 * @param domainModelReference The {@link VDomainModelReference} referencing the domain object
+	 * @return The display name as an {@link IObservableValue}
+	 * @throws NoLabelFoundException if the display name cannot be retrieved
+	 */
+	IObservableValue getDisplayName(VDomainModelReference domainModelReference) throws NoLabelFoundException;
+
+	/**
+	 * Returns the display name of the referenced domain object resolved for the given root {@link EObject}.
+	 *
+	 * @param domainModelReference The {@link VDomainModelReference} referencing the domain object
+	 * @param rootObject The root {@link EObject} which is used to resolve the given {@link VDomainModelReference}
+	 * @return The display name as an {@link IObservableValue}
+	 * @throws NoLabelFoundException if the display name cannot be retrieved
+	 */
+	IObservableValue getDisplayName(VDomainModelReference domainModelReference, EObject rootObject)
+		throws NoLabelFoundException;
+
+	/**
+	 * Returns the description of the referenced domain object.
+	 *
+	 * @param domainModelReference The {@link VDomainModelReference} referencing the model object
+	 * @return The description as an {@link IObservableValue}
+	 * @throws NoLabelFoundException if the description cannot be retrieved
+	 */
+	IObservableValue getDescription(VDomainModelReference domainModelReference) throws NoLabelFoundException;
+
+	/**
+	 * Returns the description of the referenced domain object resolved for the given root {@link EObject}.
+	 *
+	 * @param domainModelReference The {@link VDomainModelReference} referencing the model object
+	 * @param rootObject The root {@link EObject} which is used to resolve the given {@link VDomainModelReference}
+	 * @return The description as an {@link IObservableValue}
+	 * @throws NoLabelFoundException if the description cannot be retrieved
+	 */
+	IObservableValue getDescription(VDomainModelReference domainModelReference, EObject rootObject)
+		throws NoLabelFoundException;
+}
diff --git a/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/label/NoLabelFoundException.java b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/label/NoLabelFoundException.java
new file mode 100644
index 0000000..97df735
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/label/NoLabelFoundException.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.core.services.label;
+
+/**
+ * Exception used when no label could be found.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class NoLabelFoundException extends Exception {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param exception The root {@link Exception}.
+	 */
+	public NoLabelFoundException(Exception exception) {
+		super(exception.getMessage(), exception);
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.checkstyle b/bundles/org.eclipse.emfforms.localization/.checkstyle
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.checkstyle
copy to bundles/org.eclipse.emfforms.localization/.checkstyle
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.classpath b/bundles/org.eclipse.emfforms.localization/.classpath
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.classpath
copy to bundles/org.eclipse.emfforms.localization/.classpath
diff --git a/bundles/org.eclipse.emfforms.localization/.project b/bundles/org.eclipse.emfforms.localization/.project
new file mode 100644
index 0000000..0954e51
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.localization/.project
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.localization</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>com.wuetherich.osgi.ds.annotations.dsAnnotationBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<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>
+		<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>com.wuetherich.osgi.ds.annotations.dsAnnotationNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
+	</natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.emfforms.localization/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.resources.prefs
copy to bundles/org.eclipse.emfforms.localization/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.emfforms.localization/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.runtime.prefs
copy to bundles/org.eclipse.emfforms.localization/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.localization/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.core.prefs
copy to bundles/org.eclipse.emfforms.localization/.settings/org.eclipse.jdt.core.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.emfforms.localization/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.launching.prefs
copy to bundles/org.eclipse.emfforms.localization/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.emfforms.localization/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.ui.prefs
copy to bundles/org.eclipse.emfforms.localization/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.emfforms.localization/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to bundles/org.eclipse.emfforms.localization/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.localization/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.api.tools.prefs
copy to bundles/org.eclipse.emfforms.localization/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.emfforms.localization/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.prefs
copy to bundles/org.eclipse.emfforms.localization/.settings/org.eclipse.pde.prefs
diff --git a/bundles/org.eclipse.emfforms.localization/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.localization/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..a3248d5
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.localization/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMF Forms Localization
+Bundle-SymbolicName: org.eclipse.emfforms.localization
+Bundle-Version: 1.6.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-ActivationPolicy: lazy
+Import-Package: org.eclipse.emfforms.spi.common.locale;version="1.6.0",
+ org.eclipse.emfforms.spi.common.report;version="1.6.0",
+ org.eclipse.osgi.service.localization;version="[1.1.0,2.0.0)",
+ org.osgi.framework;version="[1.3.0,2.0.0)",
+ org.osgi.service.component.annotations;version="1.2.0",
+ org.osgi.service.log;version="[1.3.0,2.0.0)"
+Export-Package: org.eclipse.emfforms.internal.localization;version="1.6.0";x-internal:=true,
+ org.eclipse.emfforms.spi.localization;version="1.6.0"
+Service-Component: OSGI-INF/localizationService.xml
diff --git a/bundles/org.eclipse.emfforms.localization/OSGI-INF/localizationService.xml b/bundles/org.eclipse.emfforms.localization/OSGI-INF/localizationService.xml
new file mode 100644
index 0000000..0be2549
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.localization/OSGI-INF/localizationService.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--Generated by DS Annotation Builder [src/org/eclipse/emfforms/internal/localization/EMFFormsLocalizationServiceImpl.java]-->
+<scr:component name="localizationService" xmlns:scr="http://www.osgi.org/xmlns/scr/v1.0.0">
+    <implementation class="org.eclipse.emfforms.internal.localization.EMFFormsLocalizationServiceImpl"/>
+    <service>
+        <provide interface="org.eclipse.emfforms.spi.localization.EMFFormsLocalizationService"/>
+    </service>
+    <reference name="EMFFormsLocaleProvider" interface="org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleProvider" cardinality="0..1" policy="dynamic" bind="setEMFFormsLocaleProvider" unbind="unsetEMFFormsLocaleProvider"/>
+    <reference name="BundleLocalization" interface="org.eclipse.osgi.service.localization.BundleLocalization" bind="setBundleLocalization"/>
+    <reference name="ReportService" interface="org.eclipse.emfforms.spi.common.report.ReportService" bind="setReportService"/>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/about.html b/bundles/org.eclipse.emfforms.localization/about.html
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/about.html
copy to bundles/org.eclipse.emfforms.localization/about.html
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/build.properties b/bundles/org.eclipse.emfforms.localization/build.properties
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/build.properties
copy to bundles/org.eclipse.emfforms.localization/build.properties
diff --git a/bundles/org.eclipse.emfforms.localization/pom.xml b/bundles/org.eclipse.emfforms.localization/pom.xml
new file mode 100644
index 0000000..d40af68
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.localization/pom.xml
@@ -0,0 +1,16 @@
+<?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.6.0-SNAPSHOT</version>
+    <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
+  </parent>
+
+  <artifactId>org.eclipse.emfforms.localization</artifactId>
+<packaging>eclipse-plugin</packaging>
+</project>
diff --git a/bundles/org.eclipse.emfforms.localization/src/org/eclipse/emfforms/internal/localization/EMFFormsLocalizationServiceImpl.java b/bundles/org.eclipse.emfforms.localization/src/org/eclipse/emfforms/internal/localization/EMFFormsLocalizationServiceImpl.java
new file mode 100644
index 0000000..f8067da
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.localization/src/org/eclipse/emfforms/internal/localization/EMFFormsLocalizationServiceImpl.java
@@ -0,0 +1,165 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.localization;
+
+import java.util.Locale;
+import java.util.ResourceBundle;
+
+import org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleProvider;
+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.osgi.service.localization.BundleLocalization;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.FrameworkUtil;
+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;
+
+/**
+ * Service Implementation for retrieving translated Strings.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+@Component(name = "localizationService")
+public class EMFFormsLocalizationServiceImpl implements EMFFormsLocalizationService {
+
+	private EMFFormsLocaleProvider localeProvider;
+	private BundleLocalization bundleLocalization;
+	private ReportService reportService;
+
+	/**
+	 * Called by the framework to set the EMFFormsLocaleProvider.
+	 *
+	 * @param localeProvider The {@link EMFFormsLocaleProvider}
+	 */
+	@Reference(cardinality = ReferenceCardinality.OPTIONAL, policy = ReferencePolicy.DYNAMIC)
+	protected void setEMFFormsLocaleProvider(EMFFormsLocaleProvider localeProvider) {
+		this.localeProvider = localeProvider;
+	}
+
+	/**
+	 * Called by the framework to unset the EMFFormsLocaleProvider.
+	 *
+	 * @param localeProvider The {@link EMFFormsLocaleProvider}
+	 */
+	protected void unsetEMFFormsLocaleProvider(EMFFormsLocaleProvider localeProvider) {
+		this.localeProvider = null;
+	}
+
+	/**
+	 * Called by the framework to set the BundleLocalization.
+	 *
+	 * @param bundleLocalization The {@link BundleLocalization}
+	 */
+	@Reference
+	protected void setBundleLocalization(BundleLocalization bundleLocalization) {
+		this.bundleLocalization = bundleLocalization;
+	}
+
+	/**
+	 * Called by the framework to set the ReportService.
+	 *
+	 * @param reportService The {@link ReportService}
+	 */
+	@Reference
+	protected void setReportService(ReportService reportService) {
+		this.reportService = reportService;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.localization.EMFFormsLocalizationService#getString(java.lang.Class,
+	 *      java.lang.String)
+	 */
+	@Override
+	public String getString(Class<?> clazz, String key) {
+		return getString(FrameworkUtil.getBundle(clazz), key);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.localization.EMFFormsLocalizationService#getString(org.osgi.framework.Bundle,
+	 *      java.lang.String)
+	 */
+	@Override
+	public String getString(Bundle bundle, String key) {
+		return getString(bundle, getLocale(), key);
+	}
+
+	private String getLocale() {
+		if (localeProvider == null) {
+			return null;
+		}
+		final Locale result = localeProvider.getLocale();
+		return result.getLanguage();
+	}
+
+	private String getString(Bundle bundle, String localeLanguage, String key) {
+		final ResourceBundle resourceBundle = bundleLocalization.getLocalization(bundle, localeLanguage);
+		if (resourceBundle == null) {
+			reportService
+				.report(new AbstractReport(
+					String
+						.format(
+							"No ResourceBundle found for Language '%1$s' in Bundle %2$s with Version %3$s.", localeLanguage, bundle.getSymbolicName(), bundle.getVersion().toString()))); //$NON-NLS-1$
+			return key;
+		}
+		if (!resourceBundle.containsKey(key)) {
+			reportService
+				.report(new AbstractReport(
+					String
+						.format(
+							"The ResourceBundle for Language '%1$s' in Bundle %2$s with Version %3$s doesn't contain the key '%4$s'.", localeLanguage, bundle.getSymbolicName(), bundle.getVersion().toString(), key))); //$NON-NLS-1$
+			return key;
+		}
+		return resourceBundle.getString(key);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.localization.EMFFormsLocalizationService#hasKey(org.osgi.framework.Bundle,
+	 *      java.lang.String)
+	 */
+	@Override
+	public boolean hasKey(Bundle bundle, String key) {
+		return hasKey(bundle, getLocale(), key);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.localization.EMFFormsLocalizationService#hasKey(java.lang.Class, java.lang.String)
+	 */
+	@Override
+	public boolean hasKey(Class<?> clazz, String key) {
+		return hasKey(FrameworkUtil.getBundle(clazz), key);
+	}
+
+	private boolean hasKey(Bundle bundle, String localeLanguage, String key) {
+		final ResourceBundle resourceBundle = bundleLocalization.getLocalization(bundle, localeLanguage);
+		if (resourceBundle == null) {
+			reportService
+				.report(new AbstractReport(
+					String
+						.format(
+							"No ResourceBundle found for Language '%1$s' in Bundle %2$s with Version %3$s.", localeLanguage, bundle.getSymbolicName(), bundle.getVersion().toString()))); //$NON-NLS-1$
+			return false;
+		}
+		return resourceBundle.containsKey(key);
+	}
+}
diff --git a/bundles/org.eclipse.emfforms.localization/src/org/eclipse/emfforms/spi/localization/EMFFormsLocalizationService.java b/bundles/org.eclipse.emfforms.localization/src/org/eclipse/emfforms/spi/localization/EMFFormsLocalizationService.java
new file mode 100644
index 0000000..c5d6a2d
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.localization/src/org/eclipse/emfforms/spi/localization/EMFFormsLocalizationService.java
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.localization;
+
+import org.osgi.framework.Bundle;
+
+/**
+ * Service for retrieving translated Strings.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public interface EMFFormsLocalizationService {
+	/**
+	 * Return the String for the provided key.
+	 *
+	 * @param bundle The bundle which provides the translated strings
+	 * @param key The key of the string
+	 * @return The translated key
+	 */
+	String getString(Bundle bundle, String key);
+
+	/**
+	 * Return the String for the provided key.
+	 *
+	 * @param clazz The class which needs a translated string
+	 * @param key The key of the string
+	 * @return The translated key
+	 */
+	String getString(Class<?> clazz, String key);
+
+	/**
+	 * Return whether the key in question is available.
+	 *
+	 * @param bundle The bundle in which to search for the key
+	 * @param key The key to search
+	 * @return true if the key is available in the bundle, false otherwise
+	 */
+	boolean hasKey(Bundle bundle, String key);
+
+	/**
+	 * Return whether the key in question is available.
+	 *
+	 * @param clazz The class in whose bundle to search for the key
+	 * @param key The key to search
+	 * @return true if the key is available in the bundle, false otherwise
+	 */
+	boolean hasKey(Class<?> clazz, String key);
+}
diff --git a/bundles/org.eclipse.emfforms.localization/src/org/eclipse/emfforms/spi/localization/LocalizationServiceHelper.java b/bundles/org.eclipse.emfforms.localization/src/org/eclipse/emfforms/spi/localization/LocalizationServiceHelper.java
new file mode 100644
index 0000000..2cf3c9b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.localization/src/org/eclipse/emfforms/spi/localization/LocalizationServiceHelper.java
@@ -0,0 +1,87 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.localization;
+
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * Helper class for retrieving translated strings.
+ *
+ * @author Eugen Neufeld
+ */
+public final class LocalizationServiceHelper {
+
+	private static LocalizationServiceHelper instance;
+
+	private static LocalizationServiceHelper getInstance() {
+		if (instance == null) {
+			instance = new LocalizationServiceHelper();
+		}
+		return instance;
+	}
+
+	private final BundleContext bundleContext;
+
+	private LocalizationServiceHelper() {
+		bundleContext = FrameworkUtil.getBundle(LocalizationServiceHelper.class)
+			.getBundleContext();
+	}
+
+	private String innerGetString(Bundle bundle, String key) {
+		final ServiceReference<EMFFormsLocalizationService> serviceReference = bundleContext
+			.getServiceReference(EMFFormsLocalizationService.class);
+		if (serviceReference == null) {
+			return null;
+		}
+		final EMFFormsLocalizationService localeProvider = bundleContext.getService(serviceReference);
+		final String result = localeProvider.getString(bundle, key);
+		bundleContext.ungetService(serviceReference);
+		return result;
+	}
+
+	private String innerGetString(Class<?> clazz, String key) {
+		final ServiceReference<EMFFormsLocalizationService> serviceReference = bundleContext
+			.getServiceReference(EMFFormsLocalizationService.class);
+		if (serviceReference == null) {
+			return null;
+		}
+		final EMFFormsLocalizationService localeProvider = bundleContext.getService(serviceReference);
+		final String result = localeProvider.getString(clazz, key);
+		bundleContext.ungetService(serviceReference);
+		return result;
+	}
+
+	/**
+	 * Return the String for the provided key.
+	 *
+	 * @param bundle The bundle which provides the translated strings
+	 * @param key The key of the string
+	 * @return The translated key
+	 */
+	public static String getString(Bundle bundle, String key) {
+		return getInstance().innerGetString(bundle, key);
+	}
+
+	/**
+	 * Return the String for the provided key.
+	 *
+	 * @param clazz The class which needs a translated string
+	 * @param key The key of the string
+	 * @return The translated key
+	 */
+	public static String getString(Class<?> clazz, String key) {
+		return getInstance().innerGetString(clazz, key);
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.checkstyle b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/.checkstyle
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.checkstyle
copy to bundles/org.eclipse.emfforms.swt.control.text.autocomplete/.checkstyle
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/.classpath
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath
copy to bundles/org.eclipse.emfforms.swt.control.text.autocomplete/.classpath
diff --git a/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/.project b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/.project
new file mode 100644
index 0000000..85a96ee
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/.project
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.swt.control.text.autocomplete</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>com.wuetherich.osgi.ds.annotations.dsAnnotationBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<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>
+		<nature>com.wuetherich.osgi.ds.annotations.dsAnnotationNature</nature>
+	</natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
copy to bundles/org.eclipse.emfforms.swt.control.text.autocomplete/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to bundles/org.eclipse.emfforms.swt.control.text.autocomplete/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..66c53c1
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/.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.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
copy to bundles/org.eclipse.emfforms.swt.control.text.autocomplete/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.ui.prefs
copy to bundles/org.eclipse.emfforms.swt.control.text.autocomplete/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to bundles/org.eclipse.emfforms.swt.control.text.autocomplete/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
copy to bundles/org.eclipse.emfforms.swt.control.text.autocomplete/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
copy to bundles/org.eclipse.emfforms.swt.control.text.autocomplete/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..6598712
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/META-INF/MANIFEST.MF
@@ -0,0 +1,31 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMFForms SWT Text Control with Autocomplete
+Bundle-SymbolicName: org.eclipse.emfforms.swt.control.text.autocomplete
+Bundle-Version: 1.6.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Export-Package: org.eclipse.emfforms.internal.swt.control.text.autocomplete;version="1.6.0";x-internal:=true,
+ org.eclipse.emfforms.internal.swt.control.text.autocomplete.renderer;version="1.6.0";x-internal:=true,
+ org.eclipse.emfforms.spi.swt.control.text.autocomplete.viewservice;version="1.6.0"
+Require-Bundle: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.6.0,2.0.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Service-Component: OSGI-INF/org.eclipse.emfforms.internal.swt.control.text.autocomplete.renderer.AutocompleteTextControlSWTRendererService.xml
+Import-Package: javax.inject;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.fieldassist;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.framework;version="0.0.0",
+ org.osgi.service.component.annotations;version="0.0.0";resolution:=optional
+Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/OSGI-INF/l10n/bundle.properties
new file mode 100644
index 0000000..c8451bc
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/OSGI-INF/l10n/bundle.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2013-2015 EclipseSource.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#    EclipseSource - initial API and implementation
+################################################################################
+
+AutocompleteTextControlSWTRenderer_Set=No text set\! Click to set text.
\ No newline at end of file
diff --git a/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/OSGI-INF/org.eclipse.emfforms.internal.swt.control.text.autocomplete.renderer.AutocompleteTextControlSWTRendererService.xml b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/OSGI-INF/org.eclipse.emfforms.internal.swt.control.text.autocomplete.renderer.AutocompleteTextControlSWTRendererService.xml
new file mode 100644
index 0000000..c46d44a
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/OSGI-INF/org.eclipse.emfforms.internal.swt.control.text.autocomplete.renderer.AutocompleteTextControlSWTRendererService.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--Generated by DS Annotation Builder [src/org/eclipse/emfforms/internal/swt/control/text/autocomplete/renderer/AutocompleteTextControlSWTRendererService.java]-->
+<scr:component name="org.eclipse.emfforms.internal.swt.control.text.autocomplete.renderer.AutocompleteTextControlSWTRendererService" xmlns:scr="http://www.osgi.org/xmlns/scr/v1.0.0">
+    <implementation class="org.eclipse.emfforms.internal.swt.control.text.autocomplete.renderer.AutocompleteTextControlSWTRendererService"/>
+    <service>
+        <provide interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService"/>
+    </service>
+    <reference name="Databinding" interface="org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding" bind="setDatabinding"/>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/about.html b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/about.html
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/about.html
copy to bundles/org.eclipse.emfforms.swt.control.text.autocomplete/about.html
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/about.ini b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/about.ini
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/about.ini
copy to bundles/org.eclipse.emfforms.swt.control.text.autocomplete/about.ini
diff --git a/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/about.mappings b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/about.mappings
new file mode 100644
index 0000000..f2954d5
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=${BUILD_ID}
\ No newline at end of file
diff --git a/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/build.properties b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/build.properties
new file mode 100644
index 0000000..b0a27d9
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/build.properties
@@ -0,0 +1,10 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               about.html,\
+               OSGI-INF/,\
+               about.ini,\
+               about.mappings,\
+               modeling32.png
+src.includes = about.html
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/modeling32.png b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/modeling32.png
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/modeling32.png
copy to bundles/org.eclipse.emfforms.swt.control.text.autocomplete/modeling32.png
Binary files differ
diff --git a/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/pom.xml b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/pom.xml
new file mode 100644
index 0000000..3a9406d
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/pom.xml
@@ -0,0 +1,16 @@
+<?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.6.0-SNAPSHOT</version>
+    <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
+  </parent>
+
+  <artifactId>org.eclipse.emfforms.swt.control.text.autocomplete</artifactId>
+<packaging>eclipse-plugin</packaging>
+</project>
diff --git a/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/src/org/eclipse/emfforms/internal/swt/control/text/autocomplete/MessageKeys.java b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/src/org/eclipse/emfforms/internal/swt/control/text/autocomplete/MessageKeys.java
new file mode 100644
index 0000000..e8d9f65
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/src/org/eclipse/emfforms/internal/swt/control/text/autocomplete/MessageKeys.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.swt.control.text.autocomplete;
+
+/**
+ * Keys for translated strings.
+ *
+ * @author jfaltermeier
+ * @generated
+ */
+public interface MessageKeys {
+
+	String AutocompleteTextControlSWTRenderer_Set = "AutocompleteTextControlSWTRenderer_Set"; //$NON-NLS-1$
+}
diff --git a/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/src/org/eclipse/emfforms/internal/swt/control/text/autocomplete/renderer/AutocompleteTextControlSWTRenderer.java b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/src/org/eclipse/emfforms/internal/swt/control/text/autocomplete/renderer/AutocompleteTextControlSWTRenderer.java
new file mode 100644
index 0000000..8bc68c6
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/src/org/eclipse/emfforms/internal/swt/control/text/autocomplete/renderer/AutocompleteTextControlSWTRenderer.java
@@ -0,0 +1,136 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.swt.control.text.autocomplete.renderer;
+
+import java.util.Collections;
+import java.util.List;
+
+import javax.inject.Inject;
+
+import org.eclipse.core.databinding.Binding;
+import org.eclipse.core.databinding.observable.IObserving;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlJFaceViewerSWTRenderer;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
+import org.eclipse.emfforms.internal.swt.control.text.autocomplete.MessageKeys;
+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.label.EMFFormsLabelProvider;
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
+import org.eclipse.emfforms.spi.swt.control.text.autocomplete.viewservice.AutocompleteViewModelService;
+import org.eclipse.jface.databinding.swt.ISWTObservableValue;
+import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.jface.fieldassist.AutoCompleteField;
+import org.eclipse.jface.fieldassist.ComboContentAdapter;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.ComboViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * The text control renderer allows to enter text while given autocompletion proposals. Moreover it is possible to
+ * select a proposed value from a combo box.
+ *
+ * @author jfaltermeier
+ *
+ */
+public class AutocompleteTextControlSWTRenderer extends SimpleControlJFaceViewerSWTRenderer {
+
+	/**
+	 * Constructs a new {@link AutocompleteViewModelService}.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService The {@link ReportService}
+	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
+	 * @param emfFormsLabelProvider The {@link EMFFormsLabelProvider}
+	 * @param vtViewTemplateProvider The {@link VTViewTemplateProvider}
+	 */
+	@Inject
+	public AutocompleteTextControlSWTRenderer(
+		VControl vElement,
+		ViewModelContext viewContext,
+		ReportService reportService,
+		EMFFormsDatabinding emfFormsDatabinding,
+		EMFFormsLabelProvider emfFormsLabelProvider,
+		VTViewTemplateProvider vtViewTemplateProvider) {
+		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlJFaceViewerSWTRenderer#createBindings(org.eclipse.jface.viewers.Viewer)
+	 */
+	@Override
+	protected Binding[] createBindings(Viewer viewer) throws DatabindingFailedException {
+		final ISWTObservableValue targetObservable = SWTObservables
+			.observeText(ComboViewer.class.cast(viewer).getCombo());
+		final IObservableValue modelObservable = getModelValue();
+		final Binding binding = getDataBindingContext().bindValue(targetObservable, modelObservable);
+		return new Binding[] { binding };
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlJFaceViewerSWTRenderer#createJFaceViewer(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	protected Viewer createJFaceViewer(Composite parent) throws DatabindingFailedException {
+		final ComboViewer combo = new ComboViewer(parent, SWT.DROP_DOWN);
+		combo.setContentProvider(ArrayContentProvider.getInstance());
+		combo.setInput(getProposals());
+		new AutoCompleteField(
+			combo.getCombo(),
+			new ComboContentAdapter(),
+			combo.getCombo().getItems());
+		return combo;
+	}
+
+	/**
+	 * Returns the list of proposals.
+	 *
+	 * @return the list
+	 * @throws DatabindingFailedException in case the model value could not be created
+	 */
+	List<String> getProposals() throws DatabindingFailedException {
+		final AutocompleteViewModelService service = getViewModelContext()
+			.getService(AutocompleteViewModelService.class);
+		if (service == null) {
+			/* reported by #getService(Class) */
+			return Collections.emptyList();
+		}
+		final IObservableValue modelValue = getModelValue();
+		final EObject object = EObject.class.cast(IObserving.class.cast(modelValue).getObserved());
+		final EAttribute attribute = EAttribute.class.cast(modelValue.getValueType());
+		/* do not dispose the model value here, since future calls to #getModelValue will return a disposed observale */
+		return service.getProposals(object, attribute);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTRenderer#getUnsetText()
+	 */
+	@Override
+	protected String getUnsetText() {
+		return LocalizationServiceHelper.getString(getClass(), MessageKeys.AutocompleteTextControlSWTRenderer_Set);
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/src/org/eclipse/emfforms/internal/swt/control/text/autocomplete/renderer/AutocompleteTextControlSWTRendererService.java b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/src/org/eclipse/emfforms/internal/swt/control/text/autocomplete/renderer/AutocompleteTextControlSWTRendererService.java
new file mode 100644
index 0000000..ed1c4cb
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/src/org/eclipse/emfforms/internal/swt/control/text/autocomplete/renderer/AutocompleteTextControlSWTRendererService.java
@@ -0,0 +1,130 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.swt.control.text.autocomplete.renderer;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+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.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+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;
+
+/**
+ * {@link EMFFormsDIRendererService Renderer service} for the {@link AutocompleteTextControlSWTRenderer}.
+ *
+ * @author jfaltermeier
+ *
+ */
+@Component
+public class AutocompleteTextControlSWTRendererService implements EMFFormsDIRendererService<VControl> {
+
+	private static final String ANNOTATION_SOURCE = "org.eclipse.emfforms"; //$NON-NLS-1$
+	private static final String ANNOTATION_KEY = "autocomplete"; //$NON-NLS-1$
+	private static final String ANNOTATION_VALUE = "true"; //$NON-NLS-1$
+
+	private EMFFormsDatabinding databinding;
+
+	/**
+	 * Sets the {@link EMFFormsDatabinding} service.
+	 *
+	 * @param databinding service
+	 */
+	@Reference
+	public void setDatabinding(EMFFormsDatabinding databinding) {
+		this.databinding = databinding;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#isApplicable(org.eclipse.emf.ecp.view.spi.model.VElement,
+	 *      org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		try {
+			if (!VControl.class.isInstance(vElement)) {
+				return NOT_APPLICABLE;
+			}
+
+			final VControl control = VControl.class.cast(vElement);
+
+			if (control.getDomainModelReference() == null) {
+				return NOT_APPLICABLE;
+			}
+
+			final IObservableValue modelValue = databinding.getObservableValue(control.getDomainModelReference(),
+				viewModelContext.getDomainModel());
+			final EStructuralFeature feature = EStructuralFeature.class.cast(modelValue.getValueType());
+			modelValue.dispose();
+
+			if (feature.isMany()) {
+				return NOT_APPLICABLE;
+			}
+
+			if (!EAttribute.class.isInstance(feature)) {
+				return NOT_APPLICABLE;
+			}
+
+			final EAttribute attribute = EAttribute.class.cast(feature);
+			final Class<?> instanceClass = attribute.getEAttributeType().getInstanceClass();
+			if (instanceClass == null) {
+				return NOT_APPLICABLE;
+			}
+
+			if (!String.class.isAssignableFrom(instanceClass)) {
+				return NOT_APPLICABLE;
+			}
+
+			if (!hasAutoCompleteAnnotation(feature)) {
+				return NOT_APPLICABLE;
+			}
+
+		} catch (final DatabindingFailedException ex) {
+			return NOT_APPLICABLE;
+		}
+
+		return 3;
+	}
+
+	/**
+	 * Checks whether the given feature has an autocomplete annotation which is set to true.
+	 *
+	 * @param feature the feature to check
+	 * @return <code>true</code> if autocomplete should be used, <code>false</code> othwise
+	 */
+	boolean hasAutoCompleteAnnotation(EStructuralFeature feature) {
+		final String annotation = EcoreUtil.getAnnotation(feature, ANNOTATION_SOURCE, ANNOTATION_KEY);
+		if (annotation == null) {
+			return false;
+		}
+		return ANNOTATION_VALUE.equalsIgnoreCase(annotation);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#getRendererClass()
+	 */
+	@Override
+	public Class<? extends AbstractSWTRenderer<VControl>> getRendererClass() {
+		return AutocompleteTextControlSWTRenderer.class;
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/src/org/eclipse/emfforms/spi/swt/control/text/autocomplete/viewservice/AutocompleteViewModelService.java b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/src/org/eclipse/emfforms/spi/swt/control/text/autocomplete/viewservice/AutocompleteViewModelService.java
new file mode 100644
index 0000000..1becab9
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/src/org/eclipse/emfforms/spi/swt/control/text/autocomplete/viewservice/AutocompleteViewModelService.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.swt.control.text.autocomplete.viewservice;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelService;
+
+/**
+ * A {@link ViewModelService} which returns a list of proposals for a setting of an {@link EObject} and an
+ * {@link EAttribute}.
+ *
+ * @author jfaltermeier
+ *
+ */
+public interface AutocompleteViewModelService extends ViewModelService {
+
+	/**
+	 * Returns a list of possible values for the given setting. This method is not expected to return <code>null</code>
+	 * values.
+	 *
+	 * @param object the {@link EObject}
+	 * @param attribute the {@link EAttribute}
+	 * @return a list of proposals for the setting
+	 */
+	List<String> getProposals(EObject object, EAttribute attribute);
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.checkstyle b/bundles/org.eclipse.emfforms.swt.core.di.extension/.checkstyle
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.checkstyle
copy to bundles/org.eclipse.emfforms.swt.core.di.extension/.checkstyle
diff --git a/bundles/org.eclipse.emfforms.swt.core.di.extension/.classpath b/bundles/org.eclipse.emfforms.swt.core.di.extension/.classpath
new file mode 100644
index 0000000..8a8f166
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.di.extension/.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.emfforms.swt.core.di.extension/.project b/bundles/org.eclipse.emfforms.swt.core.di.extension/.project
new file mode 100644
index 0000000..c79e4c1
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.di.extension/.project
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>org.eclipse.emfforms.swt.core.di.extension</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.emf.ecp.view.table.editor/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.emfforms.swt.core.di.extension/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.resources.prefs
copy to bundles/org.eclipse.emfforms.swt.core.di.extension/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.emfforms.swt.core.di.extension/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.runtime.prefs
copy to bundles/org.eclipse.emfforms.swt.core.di.extension/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emfforms.swt.core.di.extension/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.swt.core.di.extension/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..1a6b22b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.di.extension/.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.editor/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.emfforms.swt.core.di.extension/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.launching.prefs
copy to bundles/org.eclipse.emfforms.swt.core.di.extension/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.emfforms.swt.core.di.extension/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs
copy to bundles/org.eclipse.emfforms.swt.core.di.extension/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.emfforms.swt.core.di.extension/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to bundles/org.eclipse.emfforms.swt.core.di.extension/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.swt.core.di.extension/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.api.tools.prefs
copy to bundles/org.eclipse.emfforms.swt.core.di.extension/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.emfforms.swt.core.di.extension/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.prefs
copy to bundles/org.eclipse.emfforms.swt.core.di.extension/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..2d46bcd
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.di.extension/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: SWT Core DI Extension
+Bundle-SymbolicName: org.eclipse.emfforms.swt.core.di.extension;singleton:=true
+Bundle-Version: 1.6.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.eclipse.emfforms.swt.core;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.10.0,4.0.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.6.0,2.0.0)"
+Export-Package: org.eclipse.emfforms.internal.swt.core.di.extension;version="1.6.0";x-internal:=true
+Service-Component: OSGI-INF/emfFormsDIExtensionRendererFactory.xml
+Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emfforms.swt.core.di.extension/OSGI-INF/emfFormsDIExtensionRendererFactory.xml b/bundles/org.eclipse.emfforms.swt.core.di.extension/OSGI-INF/emfFormsDIExtensionRendererFactory.xml
new file mode 100644
index 0000000..d072f93
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.di.extension/OSGI-INF/emfFormsDIExtensionRendererFactory.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="org.eclipse.emfforms.swt.core.di.extension">

+   <implementation class="org.eclipse.emfforms.internal.swt.core.di.extension.EMFFormsDIExtensionRendererFactory"/>

+   <reference bind="setReportService" cardinality="1..1" interface="org.eclipse.emfforms.spi.common.report.ReportService" name="ReportService" policy="static"/>

+   <service>

+      <provide interface="org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService"/>

+   </service>

+</scr:component>

diff --git a/bundles/org.eclipse.emfforms.swt.core.di.extension/build.properties b/bundles/org.eclipse.emfforms.swt.core.di.extension/build.properties
new file mode 100644
index 0000000..163cdac
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.di.extension/build.properties
@@ -0,0 +1,6 @@
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml,\
+               OSGI-INF/
+source.. = src/
diff --git a/bundles/org.eclipse.emfforms.swt.core.di.extension/plugin.xml b/bundles/org.eclipse.emfforms.swt.core.di.extension/plugin.xml
new file mode 100644
index 0000000..5f31eea
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.di.extension/plugin.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<?eclipse version="3.4"?>

+<plugin>

+   <extension-point id="org.eclipse.emfforms.swt.core.di.extension.renderers" name="SWT Core DI Renderer Extension" schema="schema/org.eclipse.emfforms.swt.core.di.extension.renderers.exsd"/>

+

+</plugin>

diff --git a/bundles/org.eclipse.emfforms.swt.core.di.extension/pom.xml b/bundles/org.eclipse.emfforms.swt.core.di.extension/pom.xml
new file mode 100644
index 0000000..8394414
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.di.extension/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.6.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.6.0-SNAPSHOT</version>
+</project>
diff --git a/bundles/org.eclipse.emfforms.swt.core.di.extension/schema/org.eclipse.emfforms.swt.core.di.extension.renderers.exsd b/bundles/org.eclipse.emfforms.swt.core.di.extension/schema/org.eclipse.emfforms.swt.core.di.extension.renderers.exsd
new file mode 100644
index 0000000..d4e02e7
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.di.extension/schema/org.eclipse.emfforms.swt.core.di.extension.renderers.exsd
@@ -0,0 +1,112 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.emfforms.swt.core.di.extension" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+      <appinfo>
+         <meta.schema plugin="org.eclipse.emfforms.swt.core.di.extension" id="org.eclipse.emfforms.swt.core.di.extension.renderers" name="SWT Core DI Renderer Extension"/>
+      </appinfo>
+      <documentation>
+         This extension point allows to register a renderer to a dependency injection renderer factory by providing the renderer&apos;s class and a suitable ECPRendererTester. The renderer is then used to render appropriate VElements.
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <annotation>
+         <appinfo>
+            <meta.element />
+         </appinfo>
+      </annotation>
+      <complexType>
+         <sequence minOccurs="1" maxOccurs="unbounded">
+            <element ref="renderer"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute translatable="true"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="renderer">
+      <complexType>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute kind="java" basedOn="org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer:"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+         <attribute name="tester" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The ECPRendererTester for the specified renderer.
+               </documentation>
+               <appinfo>
+                  <meta.attribute kind="java" basedOn=":org.eclipse.emf.ecp.view.model.common.ECPRendererTester"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="since"/>
+      </appinfo>
+      <documentation>
+         1.6.0
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="examples"/>
+      </appinfo>
+      <documentation>
+         [Enter extension point usage example here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="apiinfo"/>
+      </appinfo>
+      <documentation>
+         [Enter API information here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="implementation"/>
+      </appinfo>
+      <documentation>
+         [Enter information about supplied implementation of this extension point.]
+      </documentation>
+   </annotation>
+
+
+</schema>
diff --git a/bundles/org.eclipse.emfforms.swt.core.di.extension/src/org/eclipse/emfforms/internal/swt/core/di/extension/EMFFormsDIExtensionRendererFactory.java b/bundles/org.eclipse.emfforms.swt.core.di.extension/src/org/eclipse/emfforms/internal/swt/core/di/extension/EMFFormsDIExtensionRendererFactory.java
new file mode 100644
index 0000000..50f652d
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.di.extension/src/org/eclipse/emfforms/internal/swt/core/di/extension/EMFFormsDIExtensionRendererFactory.java
@@ -0,0 +1,76 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.swt.core.di.extension;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.InvalidRegistryObjectException;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.ecp.view.model.common.ECPRendererTester;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererFactory;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+import org.osgi.framework.Bundle;
+
+/**
+ * The {@link EMFFormsDIExtensionRendererFactory} reads the extension point
+ * "org.eclipse.emfforms.swt.core.di.extension.renderers" and provides renderer instances for the registered renderers.
+ * The extension point requires the class of the renderer and the {@link ECPRendererTester} for the renderer.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class EMFFormsDIExtensionRendererFactory extends EMFFormsDIRendererFactory {
+
+	private static final String EXTENSION_POINT_ID = "org.eclipse.emfforms.swt.core.di.extension.renderers"; //$NON-NLS-1$
+
+	/**
+	 * Called by the initializer. Reads in the extension point.
+	 */
+	protected void activate() {
+		final IConfigurationElement[] configurationElements = Platform.getExtensionRegistry()
+			.getConfigurationElementsFor(EXTENSION_POINT_ID);
+
+		for (final IConfigurationElement configurationElement : configurationElements) {
+			try {
+				final ECPRendererTester rendererTester = (ECPRendererTester) configurationElement
+					.createExecutableExtension("tester"); //$NON-NLS-1$
+
+				final Class<AbstractSWTRenderer<VElement>> rendererClass = loadClass(configurationElement
+					.getContributor().getName(), configurationElement.getAttribute("class")); //$NON-NLS-1$
+
+				final EMFFormsDIRendererService<VElement> rendererService = new EMFFormsDIWrapperRendererService(
+					rendererClass, rendererTester);
+				addEMFFormsDIRendererService(rendererService);
+			} catch (final ClassNotFoundException ex) {
+				getReportService().report(new AbstractReport(ex));
+			} catch (final InvalidRegistryObjectException ex) {
+				getReportService().report(new AbstractReport(ex));
+			} catch (final CoreException ex) {
+				getReportService().report(new AbstractReport(ex));
+			}
+		}
+	}
+
+	@SuppressWarnings("unchecked")
+	private <T> Class<T> loadClass(String bundleName, String clazz)
+		throws ClassNotFoundException {
+		final Bundle bundle = Platform.getBundle(bundleName);
+		if (bundle == null) {
+			throw new ClassNotFoundException(clazz + bundleName);
+		}
+		return (Class<T>) bundle.loadClass(clazz);
+
+	}
+}
diff --git a/bundles/org.eclipse.emfforms.swt.core.di.extension/src/org/eclipse/emfforms/internal/swt/core/di/extension/EMFFormsDIWrapperRendererService.java b/bundles/org.eclipse.emfforms.swt.core.di.extension/src/org/eclipse/emfforms/internal/swt/core/di/extension/EMFFormsDIWrapperRendererService.java
new file mode 100644
index 0000000..ef0b5b3
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.di.extension/src/org/eclipse/emfforms/internal/swt/core/di/extension/EMFFormsDIWrapperRendererService.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.swt.core.di.extension;
+
+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.model.VElement;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+
+/**
+ * A {@link EMFFormsDIWrapperRendererService} wraps the renderer's class and a corresponding {@link ECPRendererTester}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class EMFFormsDIWrapperRendererService implements EMFFormsDIRendererService<VElement> {
+
+	private final Class<AbstractSWTRenderer<VElement>> rendererClass;
+	private final ECPRendererTester rendererTester;
+
+	/**
+	 * Creates a new instance of {@link EMFFormsDIWrapperRendererService}.
+	 *
+	 * @param rendererClass The class of the renderer of this service
+	 * @param rendererTester The {@link ECPRendererTester} for the renderer
+	 */
+	public EMFFormsDIWrapperRendererService(Class<AbstractSWTRenderer<VElement>> rendererClass,
+		ECPRendererTester rendererTester) {
+		this.rendererClass = rendererClass;
+		this.rendererTester = rendererTester;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#isApplicable(org.eclipse.emf.ecp.view.spi.model.VElement,
+	 *      org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		return rendererTester.isApplicable(vElement, viewModelContext);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#getRendererClass()
+	 */
+	@Override
+	public Class<? extends AbstractSWTRenderer<VElement>> getRendererClass() {
+		return rendererClass;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.checkstyle b/bundles/org.eclipse.emfforms.swt.core.di/.checkstyle
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.checkstyle
copy to bundles/org.eclipse.emfforms.swt.core.di/.checkstyle
diff --git a/bundles/org.eclipse.emfforms.swt.core.di/.classpath b/bundles/org.eclipse.emfforms.swt.core.di/.classpath
new file mode 100644
index 0000000..8a8f166
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.di/.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.emfforms.swt.core.di/.project b/bundles/org.eclipse.emfforms.swt.core.di/.project
new file mode 100644
index 0000000..08d3f87
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.di/.project
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>org.eclipse.emfforms.swt.core.di</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>net.sf.eclipsecs.core.CheckstyleBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+		<buildCommand>

+			<name>org.eclipse.pde.ds.core.builder</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/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.emfforms.swt.core.di/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.resources.prefs
copy to bundles/org.eclipse.emfforms.swt.core.di/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.emfforms.swt.core.di/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.runtime.prefs
copy to bundles/org.eclipse.emfforms.swt.core.di/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emfforms.swt.core.di/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.swt.core.di/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..1a6b22b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.di/.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.editor/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.emfforms.swt.core.di/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.launching.prefs
copy to bundles/org.eclipse.emfforms.swt.core.di/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.emfforms.swt.core.di/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs
copy to bundles/org.eclipse.emfforms.swt.core.di/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.emfforms.swt.core.di/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to bundles/org.eclipse.emfforms.swt.core.di/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.swt.core.di/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.api.tools.prefs
copy to bundles/org.eclipse.emfforms.swt.core.di/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.emfforms.swt.core.di/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.prefs
copy to bundles/org.eclipse.emfforms.swt.core.di/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..0746fb2
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.di/META-INF/MANIFEST.MF
@@ -0,0 +1,18 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMFForms SWT Core DI
+Bundle-SymbolicName: org.eclipse.emfforms.swt.core.di;singleton:=true
+Bundle-Version: 1.6.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.eclipse.emfforms.swt.core;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.e4.core.contexts;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.e4.core.di;bundle-version="[1.3.0,2.0.0)"
+Export-Package: org.eclipse.emfforms.internal.swt.core.di;version="1.6.0";x-internal:=true,
+ org.eclipse.emfforms.spi.swt.core.di;version="1.6.0"
+Import-Package: org.osgi.framework;version="[1.3.0,2.0.0)"
+Service-Component: OSGI-INF/emfFormsDIRendererFactory.xml
+Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emfforms.swt.core.di/OSGI-INF/emfFormsDIRendererFactory.xml b/bundles/org.eclipse.emfforms.swt.core.di/OSGI-INF/emfFormsDIRendererFactory.xml
new file mode 100644
index 0000000..4d3206a
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.di/OSGI-INF/emfFormsDIRendererFactory.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.swt.core.di">

+   <implementation class="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererFactory"/>

+   <service>

+      <provide interface="org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService"/>

+   </service>

+   <reference bind="addEMFFormsDIRendererService" cardinality="0..n" interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService" name="EMFFormsDIRendererService" policy="dynamic" unbind="removeEMFFormsDIRendererService"/>

+   <reference bind="setReportService" cardinality="1..1" interface="org.eclipse.emfforms.spi.common.report.ReportService" name="ReportService" policy="static"/>

+</scr:component>

diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/about.html b/bundles/org.eclipse.emfforms.swt.core.di/about.html
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/about.html
copy to bundles/org.eclipse.emfforms.swt.core.di/about.html
diff --git a/bundles/org.eclipse.emfforms.swt.core.di/build.properties b/bundles/org.eclipse.emfforms.swt.core.di/build.properties
new file mode 100644
index 0000000..bf8b03e
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.di/build.properties
@@ -0,0 +1,8 @@
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml,\
+               OSGI-INF/,\
+               about.html
+source.. = src/
+src.includes = about.html
diff --git a/bundles/org.eclipse.emfforms.swt.core.di/plugin.xml b/bundles/org.eclipse.emfforms.swt.core.di/plugin.xml
new file mode 100644
index 0000000..f92ebf0
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.di/plugin.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+   <extension
+         point="org.eclipse.emf.ecp.view.context.viewServices">
+      <viewService
+            class="org.eclipse.emfforms.internal.swt.core.di.EMFFormsContextProviderImpl">
+      </viewService>
+   </extension>
+
+</plugin>
diff --git a/bundles/org.eclipse.emfforms.swt.core.di/pom.xml b/bundles/org.eclipse.emfforms.swt.core.di/pom.xml
new file mode 100644
index 0000000..46e96ae
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.di/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.6.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.6.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
new file mode 100644
index 0000000..f5cb807
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.di/src/org/eclipse/emfforms/internal/swt/core/di/EMFFormsContextProviderImpl.java
@@ -0,0 +1,85 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.swt.core.di;
+
+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.swt.core.di.EMFFormsContextProvider;
+import org.osgi.framework.FrameworkUtil;
+
+/**
+ * Basic implementation of {@link EMFFormsContextProvider}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class EMFFormsContextProviderImpl implements EMFFormsContextProvider {
+
+	private IEclipseContext eclipseContext;
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelService#instantiate(org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
+	 */
+	@Override
+	public void instantiate(ViewModelContext context) {
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelService#dispose()
+	 */
+	@Override
+	public void dispose() {
+		if (eclipseContext != null) {
+			eclipseContext.dispose();
+		}
+	}
+
+	/**
+	 * {@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) {
+			eclipseContext = EclipseContextFactory.getServiceContext(FrameworkUtil.getBundle(
+				EMFFormsContextProviderImpl.class).getBundleContext());
+		}
+		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;
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.swt.core.di/src/org/eclipse/emfforms/spi/swt/core/di/EMFFormsContextProvider.java b/bundles/org.eclipse.emfforms.swt.core.di/src/org/eclipse/emfforms/spi/swt/core/di/EMFFormsContextProvider.java
new file mode 100644
index 0000000..f83b2e2
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.di/src/org/eclipse/emfforms/spi/swt/core/di/EMFFormsContextProvider.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.swt.core.di;
+
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelService;
+
+/**
+ * A {@link EMFFormsContextProvider} is a {@link ViewModelService} that provides and {@link IEclipseContext}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public interface EMFFormsContextProvider extends ViewModelService {
+
+	/**
+	 * Returns the {@link IEclipseContext}.
+	 *
+	 * @return The {@link IEclipseContext}
+	 */
+	IEclipseContext getContext();
+
+	/**
+	 * Sets the {@link IEclipseContext}.
+	 *
+	 * @param eclipseContext The {@link IEclipseContext}
+	 */
+	void setContext(IEclipseContext eclipseContext);
+}
diff --git a/bundles/org.eclipse.emfforms.swt.core.di/src/org/eclipse/emfforms/spi/swt/core/di/EMFFormsDIRendererFactory.java b/bundles/org.eclipse.emfforms.swt.core.di/src/org/eclipse/emfforms/spi/swt/core/di/EMFFormsDIRendererFactory.java
new file mode 100644
index 0000000..d13d8d4
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.di/src/org/eclipse/emfforms/spi/swt/core/di/EMFFormsDIRendererFactory.java
@@ -0,0 +1,163 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.swt.core.di;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+
+import org.eclipse.e4.core.contexts.ContextInjectionFactory;
+import org.eclipse.e4.core.contexts.IEclipseContext;
+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.AbstractReport;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService;
+
+/**
+ * The {@link EMFFormsDIRendererFactory} provides renderer instances by creating an instance with help of a suitable
+ * {@link EMFFormsDIRendererService}.
+ * It then injects the renderer's required services.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class EMFFormsDIRendererFactory implements EMFFormsRendererService<VElement> {
+
+	private ReportService reportService;
+	private final Set<EMFFormsDIRendererService<VElement>> diRendererServices = new LinkedHashSet<EMFFormsDIRendererService<VElement>>();
+
+	/**
+	 * Called by the initializer to add a {@link ReportService}.
+	 *
+	 * @param reportService The {@link ReportService} to add
+	 */
+	protected void setReportService(ReportService reportService) {
+		this.reportService = reportService;
+	}
+
+	/**
+	 * Returns the {@link ReportService}.
+	 * 
+	 * @return The {@link ReportService}
+	 */
+	protected ReportService getReportService() {
+		return reportService;
+	}
+
+	/**
+	 * Called by the initializer to add an {@link EMFFormsDIRendererService}.
+	 *
+	 * @param diRendererService The EMFFormsDIRendererService to add
+	 */
+	protected void addEMFFormsDIRendererService(EMFFormsDIRendererService<VElement> diRendererService) {
+		diRendererServices.add(diRendererService);
+	}
+
+	/**
+	 * Called by the initializer to remove an {@link EMFFormsDIRendererService}.
+	 *
+	 * @param diRendererService The EMFFormsDIRendererService to remove
+	 */
+	protected void removeEMFFormsDIRendererService(EMFFormsDIRendererService<VElement> diRendererService) {
+		diRendererServices.remove(diRendererService);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService#isApplicable(org.eclipse.emf.ecp.view.spi.model.VElement,
+	 *      org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		double highestPriority = Double.MIN_VALUE;
+		EMFFormsDIRendererService<VElement> bestRendererService = null;
+
+		// Use a copy of the registered renderers to avoid exceptions from OSGI which could occur if renderer services
+		// are (de)registered during the iteration.
+		final Set<EMFFormsDIRendererService<VElement>> rendererServicesCopy = new LinkedHashSet<EMFFormsDIRendererService<VElement>>(
+			diRendererServices);
+		for (final EMFFormsDIRendererService<VElement> rendererService : rendererServicesCopy) {
+			final double isCurrentApplicable = rendererService.isApplicable(vElement, viewModelContext);
+			if (!Double.isNaN(isCurrentApplicable) && isCurrentApplicable > highestPriority) {
+				highestPriority = isCurrentApplicable;
+				bestRendererService = rendererService;
+			}
+		}
+
+		if (bestRendererService != null) {
+			return highestPriority;
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService#getRendererInstance(org.eclipse.emf.ecp.view.spi.model.VElement,
+	 *      org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
+	 */
+	@Override
+	public AbstractSWTRenderer<VElement> getRendererInstance(VElement vElement, ViewModelContext viewModelContext) {
+		double highestPriority = Double.MIN_VALUE;
+		EMFFormsDIRendererService<VElement> bestRendererService = null;
+
+		// Use a copy of the registered renderers to avoid exceptions from OSGI which could occur if renderer services
+		// are (de)registered during the iteration.
+		final Set<EMFFormsDIRendererService<VElement>> rendererServicesCopy = new LinkedHashSet<EMFFormsDIRendererService<VElement>>(
+			diRendererServices);
+		for (final EMFFormsDIRendererService<VElement> rendererService : rendererServicesCopy) {
+			final double isCurrentApplicable = rendererService.isApplicable(vElement, viewModelContext);
+			if (!Double.isNaN(isCurrentApplicable) && isCurrentApplicable > highestPriority) {
+				highestPriority = isCurrentApplicable;
+				bestRendererService = rendererService;
+			}
+		}
+		if (bestRendererService == null) {
+			return null;
+		}
+
+		final EMFFormsContextProvider contextProvider = viewModelContext.getService(EMFFormsContextProvider.class);
+		if (contextProvider == null) {
+			reportService
+				.report(new AbstractReport(
+					"The given ViewModelContext does not have a EMFFormsContextProvider. Hence, no renderer instance can be created.")); //$NON-NLS-1$
+			return null;
+		}
+		final IEclipseContext eclipseContext = contextProvider.getContext();
+		final IEclipseContext childContext = eclipseContext.createChild();
+		childContext.set(ViewModelContext.class, viewModelContext);
+		childContext.set(VElement.class, vElement);
+
+		final Class<? extends VElement> elementClass = vElement.getClass();
+		final Class<?>[] elementInterfaces = elementClass.getInterfaces();
+		for (final Class elementInterface : elementInterfaces) { // TODO: fix raw type warning if possible
+			if (VElement.class.isAssignableFrom(elementInterface)) {
+				// TODO: fix unchecked warning if possible
+				childContext.set(elementInterface, elementInterface.cast(vElement));
+			}
+		}
+
+		final Class<? extends AbstractSWTRenderer<VElement>> rendererClass = bestRendererService.getRendererClass();
+		final AbstractSWTRenderer<VElement> rendererInstance;
+		try {
+			rendererInstance = ContextInjectionFactory.make(rendererClass, childContext);
+		} catch (@SuppressWarnings("restriction") final org.eclipse.e4.core.di.InjectionException ex) {
+			reportService.report(new AbstractReport(ex));
+			return null;
+		}
+
+		return rendererInstance;
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.swt.core.di/src/org/eclipse/emfforms/spi/swt/core/di/EMFFormsDIRendererService.java b/bundles/org.eclipse.emfforms.swt.core.di/src/org/eclipse/emfforms/spi/swt/core/di/EMFFormsDIRendererService.java
new file mode 100644
index 0000000..b9a9b3e
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.di/src/org/eclipse/emfforms/spi/swt/core/di/EMFFormsDIRendererService.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.swt.core.di;
+
+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;
+
+/**
+ * This class defines a renderer service interface for dependency injection renderer services.
+ * It defines the {@link #isApplicable(VElement, ViewModelContext)} method to check if the represented renderer is
+ * suitable for the given {@link VElement} and {@link ViewModelContext} and the {@link #getRendererClass()} method that
+ * returns the {@link Class} of the renderer.
+ *
+ * @author Lucas Koehler
+ *
+ * @param <VELEMENT>
+ */
+public interface EMFFormsDIRendererService<VELEMENT extends VElement> {
+
+	/**
+	 * Constant for {@link #isApplicable(VElement, ViewModelContext)} to indicate, that the EMFFormsDIRendererService
+	 * cannot provide a fitting renderer for the provided VElement.
+	 */
+	double NOT_APPLICABLE = Double.NaN;
+
+	/**
+	 * Check whether the provided {@link VElement} can be rendered by the renderer defined by
+	 * {@link #getRendererClass()}.
+	 *
+	 * @param vElement The {@link VElement} to check
+	 * @param viewModelContext The {@link ViewModelContext} to use for the renderer
+	 * @return {@link #NOT_APPLICABLE} if the renderer doesn't fit, a positive value otherwise
+	 */
+	double isApplicable(VElement vElement, ViewModelContext viewModelContext);
+
+	/**
+	 * Returns the {@link Class} for the renderer of this service.
+	 *
+	 * @return the {@link Class}
+	 */
+	Class<? extends AbstractSWTRenderer<VELEMENT>> getRendererClass();
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.checkstyle b/bundles/org.eclipse.emfforms.swt.core.plugin/.checkstyle
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.checkstyle
copy to bundles/org.eclipse.emfforms.swt.core.plugin/.checkstyle
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.classpath b/bundles/org.eclipse.emfforms.swt.core.plugin/.classpath
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.classpath
copy to bundles/org.eclipse.emfforms.swt.core.plugin/.classpath
diff --git a/bundles/org.eclipse.emfforms.swt.core.plugin/.gitignore b/bundles/org.eclipse.emfforms.swt.core.plugin/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.plugin/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emfforms.swt.core.plugin/.project b/bundles/org.eclipse.emfforms.swt.core.plugin/.project
new file mode 100644
index 0000000..e105047
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.plugin/.project
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.swt.core.plugin</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>com.wuetherich.osgi.ds.annotations.dsAnnotationBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<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>
+		<nature>com.wuetherich.osgi.ds.annotations.dsAnnotationNature</nature>
+	</natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.emfforms.swt.core.plugin/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.resources.prefs
copy to bundles/org.eclipse.emfforms.swt.core.plugin/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.emfforms.swt.core.plugin/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.runtime.prefs
copy to bundles/org.eclipse.emfforms.swt.core.plugin/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emfforms.swt.core.plugin/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.swt.core.plugin/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..1a6b22b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.plugin/.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.editor/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.emfforms.swt.core.plugin/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.launching.prefs
copy to bundles/org.eclipse.emfforms.swt.core.plugin/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.emfforms.swt.core.plugin/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs
copy to bundles/org.eclipse.emfforms.swt.core.plugin/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.emfforms.swt.core.plugin/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to bundles/org.eclipse.emfforms.swt.core.plugin/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.swt.core.plugin/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.api.tools.prefs
copy to bundles/org.eclipse.emfforms.swt.core.plugin/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.emfforms.swt.core.plugin/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.prefs
copy to bundles/org.eclipse.emfforms.swt.core.plugin/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..0dbaa32
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.plugin/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMFForms SWT Core Plugin
+Bundle-SymbolicName: org.eclipse.emfforms.swt.core.plugin
+Bundle-Version: 1.6.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Export-Package: org.eclipse.emfforms.internal.swt.core.plugin;version="1.6.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.6.0,2.0.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.6.0,2.0.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.6.0,2.0.0)",
+ org.osgi.service.component.annotations;version="[1.0.0,2.0.0)";resolution:=optional
+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
diff --git a/bundles/org.eclipse.emfforms.swt.core.plugin/OSGI-INF/org.eclipse.emfforms.internal.swt.core.plugin.LegacyAdditionalRendererService.xml b/bundles/org.eclipse.emfforms.swt.core.plugin/OSGI-INF/org.eclipse.emfforms.internal.swt.core.plugin.LegacyAdditionalRendererService.xml
new file mode 100644
index 0000000..3038c22
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.plugin/OSGI-INF/org.eclipse.emfforms.internal.swt.core.plugin.LegacyAdditionalRendererService.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--Generated by DS Annotation Builder [src/org/eclipse/emfforms/internal/swt/core/plugin/LegacyAdditionalRendererService.java]-->
+<scr:component name="org.eclipse.emfforms.internal.swt.core.plugin.LegacyAdditionalRendererService" activate="activate" xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0">
+    <service>
+        <provide interface="org.eclipse.emfforms.spi.swt.core.EMFFormsAdditionalRendererService"/>
+    </service>
+    <reference name="ReportService" interface="org.eclipse.emfforms.spi.common.report.ReportService" bind="setReportService"/>
+    <implementation class="org.eclipse.emfforms.internal.swt.core.plugin.LegacyAdditionalRendererService"/>
+</scr:component>
diff --git a/bundles/org.eclipse.emfforms.swt.core.plugin/OSGI-INF/org.eclipse.emfforms.internal.swt.core.plugin.LegacyRendererService.xml b/bundles/org.eclipse.emfforms.swt.core.plugin/OSGI-INF/org.eclipse.emfforms.internal.swt.core.plugin.LegacyRendererService.xml
new file mode 100644
index 0000000..77493a2
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.plugin/OSGI-INF/org.eclipse.emfforms.internal.swt.core.plugin.LegacyRendererService.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--Generated by DS Annotation Builder [src/org/eclipse/emfforms/internal/swt/core/plugin/LegacyRendererService.java]-->
+<scr:component name="org.eclipse.emfforms.internal.swt.core.plugin.LegacyRendererService" activate="activate" xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0">
+    <service>
+        <provide interface="org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService"/>
+    </service>
+    <reference name="ReportService" interface="org.eclipse.emfforms.spi.common.report.ReportService" bind="setReportService"/>
+    <implementation class="org.eclipse.emfforms.internal.swt.core.plugin.LegacyRendererService"/>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/about.html b/bundles/org.eclipse.emfforms.swt.core.plugin/about.html
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/about.html
copy to bundles/org.eclipse.emfforms.swt.core.plugin/about.html
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/build.properties b/bundles/org.eclipse.emfforms.swt.core.plugin/build.properties
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/build.properties
copy to bundles/org.eclipse.emfforms.swt.core.plugin/build.properties
diff --git a/bundles/org.eclipse.emfforms.swt.core.plugin/pom.xml b/bundles/org.eclipse.emfforms.swt.core.plugin/pom.xml
new file mode 100644
index 0000000..6a6183e
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.plugin/pom.xml
@@ -0,0 +1,16 @@
+<?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.6.0-SNAPSHOT</version>
+    <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
+  </parent>
+
+  <artifactId>org.eclipse.emfforms.swt.core.plugin</artifactId>
+<packaging>eclipse-plugin</packaging>
+</project>
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
new file mode 100644
index 0000000..4c61bbb
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.plugin/src/org/eclipse/emfforms/internal/swt/core/plugin/LegacyAdditionalRendererService.java
@@ -0,0 +1,187 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.swt.core.plugin;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.InvalidRegistryObjectException;
+import org.eclipse.core.runtime.Platform;
+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.swt.ECPAdditionalRendererTester;
+import org.eclipse.emf.ecp.view.spi.swt.reporting.ECPRendererDescriptionInitFailedReport;
+import org.eclipse.emf.ecp.view.spi.swt.reporting.RendererInitFailedReport;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.swt.core.AbstractAdditionalSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsAdditionalRendererService;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+
+/**
+ * Renderer service which uses the extension point derivates.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+@Component
+public class LegacyAdditionalRendererService implements EMFFormsAdditionalRendererService<VElement> {
+
+	private static final String ADDITIONAL_RENDER_EXTENSION = "org.eclipse.emf.ecp.ui.view.swt.additionalRenderers"; //$NON-NLS-1$
+	private ReportService reportService;
+	private final Map<ECPAdditionalRendererTester, Class<AbstractAdditionalSWTRenderer<VElement>>> legacyRenderer = new LinkedHashMap<ECPAdditionalRendererTester, Class<AbstractAdditionalSWTRenderer<VElement>>>();
+
+	/**
+	 * Called by the initializer to set the {@link ReportService}.
+	 *
+	 * @param reportService The ReportService to set
+	 */
+	@Reference
+	protected void setReportService(ReportService reportService) {
+		this.reportService = reportService;
+	}
+
+	/**
+	 * Activate method of OSGI Component.
+	 *
+	 * @param bundleContext The {@link BundleContext} to use
+	 */
+	@Activate
+	protected void activate(BundleContext bundleContext) {
+		readAdditionalRenderer(bundleContext);
+	}
+
+	private void readAdditionalRenderer(BundleContext bundleContext) {
+		final IExtensionPoint extensionPoint = Platform.getExtensionRegistry()
+			.getExtensionPoint(ADDITIONAL_RENDER_EXTENSION);
+
+		for (final IExtension extension : extensionPoint.getExtensions()) {
+
+			for (final IConfigurationElement configurationElement : extension
+				.getConfigurationElements()) {
+				try {
+					final Class<AbstractAdditionalSWTRenderer<VElement>> renderer = loadClass(configurationElement
+						.getContributor().getName(), configurationElement
+						.getAttribute("renderer")); //$NON-NLS-1$
+					final ECPAdditionalRendererTester tester = (ECPAdditionalRendererTester) configurationElement
+						.createExecutableExtension("tester"); //$NON-NLS-1$
+					legacyRenderer.put(tester, renderer);
+				} catch (final CoreException ex) {
+					reportService.report(new ECPRendererDescriptionInitFailedReport(ex));
+				} catch (final ClassNotFoundException e) {
+					reportService.report(new ECPRendererDescriptionInitFailedReport(e));
+				} catch (final InvalidRegistryObjectException e) {
+					reportService.report(new ECPRendererDescriptionInitFailedReport(e));
+				}
+			}
+		}
+	}
+
+	@SuppressWarnings("unchecked")
+	private static <T> Class<T> loadClass(String bundleName, String clazz)
+		throws ClassNotFoundException {
+		final Bundle bundle = Platform.getBundle(bundleName);
+		if (bundle == null) {
+			throw new ClassNotFoundException(clazz + bundleName);
+		}
+		return (Class<T>) bundle.loadClass(clazz);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.EMFFormsAdditionalRendererService#isApplicable(org.eclipse.emf.ecp.view.spi.model.VElement,
+	 *      org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
+	 */
+	@Override
+	public boolean isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		boolean result = false;
+		for (final ECPAdditionalRendererTester tester : legacyRenderer.keySet()) {
+			result |= tester.isApplicable(vElement, null);
+		}
+		return result;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.EMFFormsAdditionalRendererService#getRendererInstances(org.eclipse.emf.ecp.view.spi.model.VElement,
+	 *      org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
+	 */
+	@Override
+	public Collection<AbstractAdditionalSWTRenderer<VElement>> getRendererInstances(VElement vElement,
+		ViewModelContext viewModelContext) {
+		final Collection<AbstractAdditionalSWTRenderer<VElement>> result = new ArrayList<AbstractAdditionalSWTRenderer<VElement>>();
+		for (final Class<AbstractAdditionalSWTRenderer<VElement>> renderer : getFittingRenderer(vElement,
+			viewModelContext)) {
+			final AbstractAdditionalSWTRenderer<VElement> additionalRenderer = createRenderer(vElement,
+				viewModelContext,
+				reportService, renderer);
+			additionalRenderer.init();
+			result.add(additionalRenderer);
+		}
+		return result;
+	}
+
+	private Collection<Class<AbstractAdditionalSWTRenderer<VElement>>> getFittingRenderer(VElement vElement,
+		ViewModelContext viewModelContext) {
+		final Collection<Class<AbstractAdditionalSWTRenderer<VElement>>> fitting = new ArrayList<Class<AbstractAdditionalSWTRenderer<VElement>>>();
+
+		for (final Entry<ECPAdditionalRendererTester, Class<AbstractAdditionalSWTRenderer<VElement>>> entry : legacyRenderer
+			.entrySet()) {
+			if (entry.getKey().isApplicable(vElement, viewModelContext)) {
+				fitting.add(entry.getValue());
+			}
+		}
+		return fitting;
+	}
+
+	private AbstractAdditionalSWTRenderer<VElement> createRenderer(VElement vElement, ViewModelContext viewContext,
+		final ReportService reportService,
+		final Class<? extends AbstractAdditionalSWTRenderer<VElement>> rendererClass) {
+		try {
+			return rendererClass
+				.getConstructor(vElement.getClass().getInterfaces()[0], ViewModelContext.class)
+				.newInstance(vElement, viewContext);
+		} catch (final InstantiationException ex) {
+			reportService.report(new RendererInitFailedReport(ex));
+			throw new IllegalStateException(ex);
+		} catch (final IllegalAccessException ex) {
+			reportService.report(new RendererInitFailedReport(ex));
+			throw new IllegalStateException(ex);
+		} catch (final IllegalArgumentException ex) {
+			reportService.report(new RendererInitFailedReport(ex));
+			throw new IllegalStateException(ex);
+		} catch (final InvocationTargetException ex) {
+			reportService.report(new RendererInitFailedReport(ex));
+			throw new IllegalStateException(ex);
+		} catch (final NoSuchMethodException ex) {
+			reportService.report(new RendererInitFailedReport(ex));
+			throw new IllegalStateException(ex);
+		} catch (final SecurityException ex) {
+			reportService.report(new RendererInitFailedReport(ex));
+			throw new IllegalStateException(ex);
+		}
+
+	}
+}
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
new file mode 100644
index 0000000..ab84b05
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core.plugin/src/org/eclipse/emfforms/internal/swt/core/plugin/LegacyRendererService.java
@@ -0,0 +1,213 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.swt.core.plugin;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.InvalidRegistryObjectException;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.ecp.view.model.common.ECPRendererTester;
+import org.eclipse.emf.ecp.view.model.common.ECPStaticRendererTester;
+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.swt.reporting.ECPRendererDescriptionInitFailedReport;
+import org.eclipse.emf.ecp.view.spi.swt.reporting.RendererInitFailedReport;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+
+/**
+ * Renderer service which uses the extension point derivates.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+@Component
+public class LegacyRendererService implements EMFFormsRendererService<VElement> {
+
+	private static final String TEST_DYNAMIC = "dynamicTest";//$NON-NLS-1$
+	private static final String TEST_STATIC = "staticTest";//$NON-NLS-1$
+	private static final String TESTER_PRIORITY = "priority";//$NON-NLS-1$
+	private static final String TESTER_VELEMENT = "element"; //$NON-NLS-1$
+	private static final String RENDERER_TESTER = "testClass"; //$NON-NLS-1$
+
+	private static final String RENDER_EXTENSION = "org.eclipse.emf.ecp.ui.view.swt.renderers"; //$NON-NLS-1$
+
+	private ReportService reportService;
+
+	private final Map<Set<ECPRendererTester>, Class<AbstractSWTRenderer<VElement>>> legacyRenderer = new LinkedHashMap<Set<ECPRendererTester>, Class<AbstractSWTRenderer<VElement>>>();
+
+	/**
+	 * Called by the initializer to set the {@link ReportService}.
+	 *
+	 * @param reportService The ReportService to set
+	 */
+	@Reference
+	protected void setReportService(ReportService reportService) {
+		this.reportService = reportService;
+	}
+
+	/**
+	 * Activate method of OSGI Component.
+	 *
+	 * @param bundleContext The {@link BundleContext} to use
+	 */
+	@Activate
+	protected void activate(BundleContext bundleContext) {
+		readRenderer(bundleContext);
+	}
+
+	private void readRenderer(BundleContext bundleContext) {
+		final IExtensionPoint extensionPoint = Platform.getExtensionRegistry()
+			.getExtensionPoint(RENDER_EXTENSION);
+		for (final IExtension extension : extensionPoint.getExtensions()) {
+
+			for (final IConfigurationElement configurationElement : extension
+				.getConfigurationElements()) {
+				try {
+					final Class<AbstractSWTRenderer<VElement>> renderer = loadClass(configurationElement
+						.getContributor().getName(), configurationElement
+						.getAttribute("renderer")); //$NON-NLS-1$
+
+					final Set<ECPRendererTester> tester = new LinkedHashSet<ECPRendererTester>();
+					for (final IConfigurationElement testerExtension : configurationElement.getChildren()) {
+						if (TEST_DYNAMIC.equals(testerExtension.getName())) {
+							tester.add((ECPRendererTester) testerExtension.createExecutableExtension(RENDERER_TESTER));
+						}
+						else if (TEST_STATIC.equals(testerExtension.getName())) {
+
+							final int priority = Integer.parseInt(testerExtension.getAttribute(TESTER_PRIORITY));
+
+							final String vElement = testerExtension.getAttribute(TESTER_VELEMENT);
+							final Class<? extends VElement> supportedEObject = loadClass(testerExtension
+								.getContributor()
+								.getName(), vElement);
+
+							tester.add(new ECPStaticRendererTester(priority,
+								supportedEObject));
+						}
+					}
+					legacyRenderer.put(tester, renderer);
+				} catch (final CoreException ex) {
+					reportService.report(new ECPRendererDescriptionInitFailedReport(ex));
+				} catch (final ClassNotFoundException ex) {
+					reportService.report(new ECPRendererDescriptionInitFailedReport(ex));
+				} catch (final InvalidRegistryObjectException ex) {
+					reportService.report(new ECPRendererDescriptionInitFailedReport(ex));
+				}
+			}
+		}
+	}
+
+	@SuppressWarnings("unchecked")
+	private static <T> Class<T> loadClass(String bundleName, String clazz)
+		throws ClassNotFoundException {
+		final Bundle bundle = Platform.getBundle(bundleName);
+		if (bundle == null) {
+			throw new ClassNotFoundException(clazz + bundleName);
+		}
+		return (Class<T>) bundle.loadClass(clazz);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		int currentPriority = -1;
+		for (final Set<ECPRendererTester> testerSet : legacyRenderer.keySet()) {
+			for (final ECPRendererTester tester : testerSet) {
+				final int testerPriority = tester.isApplicable(vElement, viewModelContext);
+				if (testerPriority > currentPriority) {
+					currentPriority = testerPriority;
+				}
+			}
+		}
+		return currentPriority;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService#getRendererInstance(VElement, ViewModelContext)
+	 */
+	@Override
+	public AbstractSWTRenderer<VElement> getRendererInstance(VElement vElement, ViewModelContext viewModelContext) {
+		return createRenderer(vElement, viewModelContext, getFittingRenderer(vElement, viewModelContext));
+	}
+
+	private Class<AbstractSWTRenderer<VElement>> getFittingRenderer(VElement vElement,
+		ViewModelContext viewModelContext) {
+		int currentPriority = -1;
+		Class<AbstractSWTRenderer<VElement>> best = null;
+		for (final Entry<Set<ECPRendererTester>, Class<AbstractSWTRenderer<VElement>>> testerSet : legacyRenderer
+			.entrySet()) {
+			for (final ECPRendererTester tester : testerSet.getKey()) {
+				final int testerPriority = tester.isApplicable(vElement, viewModelContext);
+				if (testerPriority > currentPriority) {
+					currentPriority = testerPriority;
+					best = testerSet.getValue();
+				}
+			}
+		}
+		return best;
+	}
+
+	private AbstractSWTRenderer<VElement> createRenderer(VElement vElement, ViewModelContext viewContext,
+		final Class<? extends AbstractSWTRenderer<VElement>> rendererClass) {
+		if (rendererClass == null) {
+			reportService.report(new AbstractReport(String
+				.format("RendererClass for %1$s is null!", vElement.getName()))); //$NON-NLS-1$
+			throw new IllegalStateException(String.format("RendererClass for %1$s is null!", vElement.getName())); //$NON-NLS-1$
+		}
+		try {
+			return rendererClass
+				.getConstructor(vElement.getClass().getInterfaces()[0], ViewModelContext.class, ReportService.class)
+				.newInstance(vElement, viewContext, reportService);
+		} catch (final InstantiationException ex) {
+			reportService.report(new RendererInitFailedReport(ex));
+			throw new IllegalStateException(ex);
+		} catch (final IllegalAccessException ex) {
+			reportService.report(new RendererInitFailedReport(ex));
+			throw new IllegalStateException(ex);
+		} catch (final IllegalArgumentException ex) {
+			reportService.report(new RendererInitFailedReport(ex));
+			throw new IllegalStateException(ex);
+		} catch (final InvocationTargetException ex) {
+			reportService.report(new RendererInitFailedReport(ex));
+			throw new IllegalStateException(ex);
+		} catch (final NoSuchMethodException ex) {
+			reportService.report(new RendererInitFailedReport(ex));
+			throw new IllegalStateException(ex);
+		} catch (final SecurityException ex) {
+			reportService.report(new RendererInitFailedReport(ex));
+			throw new IllegalStateException(ex);
+		}
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.checkstyle b/bundles/org.eclipse.emfforms.swt.core/.checkstyle
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.checkstyle
copy to bundles/org.eclipse.emfforms.swt.core/.checkstyle
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.classpath b/bundles/org.eclipse.emfforms.swt.core/.classpath
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.classpath
copy to bundles/org.eclipse.emfforms.swt.core/.classpath
diff --git a/bundles/org.eclipse.emfforms.swt.core/.gitignore b/bundles/org.eclipse.emfforms.swt.core/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/bundles/org.eclipse.emfforms.swt.core/.project b/bundles/org.eclipse.emfforms.swt.core/.project
new file mode 100644
index 0000000..fb2c48c
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core/.project
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.swt.core</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>net.sf.eclipsecs.core.CheckstyleBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ds.core.builder</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/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.emfforms.swt.core/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.resources.prefs
copy to bundles/org.eclipse.emfforms.swt.core/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.emfforms.swt.core/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.runtime.prefs
copy to bundles/org.eclipse.emfforms.swt.core/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emfforms.swt.core/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.swt.core/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..1a6b22b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core/.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.editor/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.emfforms.swt.core/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.launching.prefs
copy to bundles/org.eclipse.emfforms.swt.core/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.emfforms.swt.core/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs
copy to bundles/org.eclipse.emfforms.swt.core/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.emfforms.swt.core/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to bundles/org.eclipse.emfforms.swt.core/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.swt.core/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.api.tools.prefs
copy to bundles/org.eclipse.emfforms.swt.core/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.emfforms.swt.core/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.prefs
copy to bundles/org.eclipse.emfforms.swt.core/.settings/org.eclipse.pde.prefs
diff --git a/bundles/org.eclipse.emfforms.swt.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.swt.core/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..8b1305c
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core/META-INF/MANIFEST.MF
@@ -0,0 +1,24 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMFForms SWT Core
+Bundle-SymbolicName: org.eclipse.emfforms.swt.core
+Bundle-Version: 1.6.0.qualifier
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.6.0,2.0.0)"
+Import-Package: org.eclipse.emf.ecp.view.model.common;version="1.6.0",
+ org.eclipse.emfforms.spi.common.report;version="1.6.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"
+Export-Package: org.eclipse.emfforms.internal.swt.core;version="1.6.0";x-internal:=true,
+ org.eclipse.emfforms.spi.swt.core;version="1.6.0",
+ org.eclipse.emfforms.spi.swt.core.layout;version="1.6.0"
+Service-Component: OSGI-INF/rendererFactory.xml
+Bundle-Vendor: Eclipse Modeling Project
diff --git a/bundles/org.eclipse.emfforms.swt.core/OSGI-INF/rendererFactory.xml b/bundles/org.eclipse.emfforms.swt.core/OSGI-INF/rendererFactory.xml
new file mode 100644
index 0000000..ba383cf
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core/OSGI-INF/rendererFactory.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.swt.core.rendererfactory">

+   <implementation class="org.eclipse.emfforms.internal.swt.core.EMFFormsRendererFactoryImpl"/>

+   <service>

+      <provide interface="org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory"/>

+   </service>

+   <reference bind="addEMFFormsRendererService" cardinality="0..n" interface="org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService" name="EMFFormsRendererService" policy="dynamic" unbind="removeEMFFormsRendererService"/>

+   <reference bind="addEMFFormsAdditionalRendererService" cardinality="0..n" interface="org.eclipse.emfforms.spi.swt.core.EMFFormsAdditionalRendererService" name="EMFFormsAdditionalRendererService" policy="dynamic" unbind="removeEMFFormsAdditionalRendererService"/>

+</scr:component>

diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/about.html b/bundles/org.eclipse.emfforms.swt.core/about.html
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/about.html
copy to bundles/org.eclipse.emfforms.swt.core/about.html
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/build.properties b/bundles/org.eclipse.emfforms.swt.core/build.properties
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/build.properties
copy to bundles/org.eclipse.emfforms.swt.core/build.properties
diff --git a/bundles/org.eclipse.emfforms.swt.core/pom.xml b/bundles/org.eclipse.emfforms.swt.core/pom.xml
new file mode 100644
index 0000000..2c6db2b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core/pom.xml
@@ -0,0 +1,16 @@
+<?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.6.0-SNAPSHOT</version>
+    <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
+  </parent>
+
+  <artifactId>org.eclipse.emfforms.swt.core</artifactId>
+<packaging>eclipse-plugin</packaging>
+</project>
diff --git a/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/internal/swt/core/EMFFormsRendererFactoryImpl.java b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/internal/swt/core/EMFFormsRendererFactoryImpl.java
new file mode 100644
index 0000000..9bb01a1
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/internal/swt/core/EMFFormsRendererFactoryImpl.java
@@ -0,0 +1,142 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.swt.core;
+
+import java.util.Collection;
+import java.util.LinkedHashSet;
+import java.util.Set;
+import java.util.concurrent.CopyOnWriteArraySet;
+
+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.AbstractAdditionalSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsAdditionalRendererService;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService;
+
+/**
+ * The default implementation of the EMFFormsRendererFactory.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class EMFFormsRendererFactoryImpl implements EMFFormsRendererFactory {
+
+	private final Set<EMFFormsRendererService<VElement>> rendererServices = new CopyOnWriteArraySet<EMFFormsRendererService<VElement>>();
+	private final Set<EMFFormsAdditionalRendererService<VElement>> additionalRendererServices = new CopyOnWriteArraySet<EMFFormsAdditionalRendererService<VElement>>();
+
+	/**
+	 * Called by the initializer to add an {@link EMFFormsRendererService}.
+	 *
+	 * @param rendererService The EMFFormsRendererService to add
+	 */
+	public void addEMFFormsRendererService(EMFFormsRendererService<VElement> rendererService) {
+		rendererServices.add(rendererService);
+	}
+
+	/**
+	 * Called by the initializer to remove an {@link EMFFormsRendererService}.
+	 *
+	 * @param rendererService The EMFFormsRendererService to remove
+	 */
+	public void removeEMFFormsRendererService(EMFFormsRendererService<VElement> rendererService) {
+		rendererServices.remove(rendererService);
+	}
+
+	/**
+	 * Called by the initializer to add an {@link EMFFormsAdditionalRendererService}.
+	 *
+	 * @param rendererService The EMFFormsAdditionalRendererService to add
+	 */
+	protected void addEMFFormsAdditionalRendererService(EMFFormsAdditionalRendererService<VElement> rendererService) {
+		additionalRendererServices.add(rendererService);
+	}
+
+	/**
+	 * Called by the initializer to remove an {@link EMFFormsAdditionalRendererService}.
+	 *
+	 * @param rendererService The EMFFormsAdditionalRendererService to remove
+	 */
+	protected void removeEMFFormsAdditionalRendererService(EMFFormsAdditionalRendererService<VElement> rendererService) {
+		additionalRendererServices.remove(rendererService);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @throws EMFFormsNoRendererException
+	 *
+	 * @see EMFFormsRendererFactory#getRendererInstance(VElement,ViewModelContext)
+	 */
+	@Override
+	public <VELEMENT extends VElement> AbstractSWTRenderer<VElement> getRendererInstance(VELEMENT vElement,
+		ViewModelContext viewModelContext) throws EMFFormsNoRendererException {
+		if (rendererServices.isEmpty()) {
+			throw new EMFFormsNoRendererException("No EMFFormsRendererService available!"); //$NON-NLS-1$
+		}
+		double highestPriority = -1;
+		EMFFormsRendererService<VElement> bestService = null;
+		for (final EMFFormsRendererService<VElement> rendererService : rendererServices) {
+			final double priority = rendererService.isApplicable(vElement, viewModelContext);
+			if (priority > highestPriority) {
+				highestPriority = priority;
+				bestService = rendererService;
+			}
+		}
+		if (bestService == null) {
+			throw new EMFFormsNoRendererException(String.format(
+				"No fitting EMFFormsRendererService for %1$s available!", vElement.eClass().getName())); //$NON-NLS-1$
+		}
+		final AbstractSWTRenderer<VElement> rendererInstance = bestService.getRendererInstance(vElement,
+			viewModelContext);
+		if (rendererInstance == null) {
+			throw new EMFFormsNoRendererException(String.format(
+				"No fitting EMFFormsRendererService for %1$s available!", vElement.eClass().getName())); //$NON-NLS-1$
+		}
+		rendererInstance.init();
+		return rendererInstance;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see EMFFormsRendererFactory#getAdditionalRendererInstances(VElement, ViewModelContext)
+	 */
+	@Override
+	public Collection<AbstractAdditionalSWTRenderer<VElement>> getAdditionalRendererInstances(VElement vElement,
+		ViewModelContext viewModelContext) {
+		final Set<AbstractAdditionalSWTRenderer<VElement>> renderers = new LinkedHashSet<AbstractAdditionalSWTRenderer<VElement>>();
+
+		for (final EMFFormsAdditionalRendererService<VElement> rendererService : additionalRendererServices) {
+			if (rendererService.isApplicable(vElement, viewModelContext)) {
+				final Collection<AbstractAdditionalSWTRenderer<VElement>> rendererInstances = rendererService
+					.getRendererInstances(
+						vElement, viewModelContext);
+				for (final AbstractAdditionalSWTRenderer<VElement> rendererInstance : rendererInstances) {
+					rendererInstance.init();
+					renderers.add(rendererInstance);
+				}
+			}
+		}
+
+		return renderers;
+	}
+
+	/**
+	 * Method for Tests to clear all services.
+	 */
+	public void clearRenderers() {
+		rendererServices.clear();
+	}
+}
diff --git a/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/internal/swt/core/NoRendererServiceReport.java b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/internal/swt/core/NoRendererServiceReport.java
new file mode 100644
index 0000000..78c44be
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/internal/swt/core/NoRendererServiceReport.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.swt.core;
+
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
+
+/**
+ * A report to describe that there is no fitting renderer service.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class NoRendererServiceReport extends AbstractReport {
+
+	/**
+	 * The default constructor.
+	 *
+	 * @param exception The {@link Throwable} to report
+	 */
+	public NoRendererServiceReport(Throwable exception) {
+		super(exception);
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/AbstractAdditionalSWTRenderer.java b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/AbstractAdditionalSWTRenderer.java
new file mode 100644
index 0000000..4340d90
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/AbstractAdditionalSWTRenderer.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.swt.core;
+
+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;
+
+/**
+ * The renderer for additional controls.
+ *
+ * @author Eugen Neufeld
+ * @param <VELEMENT> the {@link VElement} this renderer is valid for
+ * @since 1.3
+ */
+public abstract class AbstractAdditionalSWTRenderer<VELEMENT extends VElement> extends AbstractSWTRenderer<VELEMENT> {
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService The {@link ReportService}
+	 * @since 1.6
+	 */
+	public AbstractAdditionalSWTRenderer(VELEMENT vElement, ViewModelContext viewContext, ReportService reportService) {
+		super(vElement, viewContext, reportService);
+	}
+
+}
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
new file mode 100644
index 0000000..7d51515
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/AbstractSWTRenderer.java
@@ -0,0 +1,335 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Edagr Mueller - initial API and implementation
+ * Eugen Neufeld - Refactoring
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.swt.core;
+
+import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+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;
+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.VViewPackage;
+import org.eclipse.emf.ecp.view.spi.renderer.NoPropertyDescriptorFoundExeption;
+import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+
+/**
+ * Common base class for all SWT specific renderer classes.
+ *
+ * A renderer using other renderers to render its contents must call this methods in this order:
+ *
+ * <pre>
+ *  {@link #getGridDescription(SWTGridDescription)}
+ *  for each SWTGridCell
+ *  	{@link #render(SWTGridCell, Composite)}
+ * {@link #finalizeRendering(Composite)}
+ * </pre>
+ *
+ * If you don't call {@link #finalizeRendering(Composite)} after the rendering, the automatic disposing of the renderer
+ * will not work, as well as the initial validation check.
+ *
+ * @author Eugen Neufeld
+ *
+ * @param <VELEMENT> the actual type of the {@link VElement} to be drawn
+ * @since 1.2
+ */
+public abstract class AbstractSWTRenderer<VELEMENT extends VElement> extends AbstractRenderer<VELEMENT> {
+
+	/**
+	 * Variant constant for indicating RAP controls.
+	 */
+	protected static final String CUSTOM_VARIANT = "org.eclipse.rap.rwt.customVariant"; //$NON-NLS-1$
+	private ModelChangeListener listener;
+	private Map<SWTGridCell, Control> controls;
+	private boolean renderingFinished;
+
+	/**
+	 * Default Constructor.
+	 *
+	 * @param vElement the view element to be rendered
+	 * @param viewContext The view model context
+	 * @param reportService the ReportService to use
+	 * @since 1.6
+	 */
+	public AbstractSWTRenderer(final VELEMENT vElement, final ViewModelContext viewContext,
+		ReportService reportService) {
+		super(vElement, viewContext, reportService);
+	}
+
+	/**
+	 * Returns the GridDescription for this Renderer.
+	 *
+	 * @param gridDescription the current {@link SWTGridDescription}
+	 * @return the number of controls per row
+	 * @since 1.3
+	 */
+	public abstract SWTGridDescription getGridDescription(SWTGridDescription gridDescription);
+
+	/**
+	 * Initializes the {@link AbstractSWTRenderer}.
+	 *
+	 * @since 1.6
+	 */
+	public final void init() {
+		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;
+					}
+					if (notification.getNotifier() != getVElement()) {
+						return;
+					}
+					if (notification.getStructuralFeature() == VViewPackage.eINSTANCE.getElement_Visible()) {
+						applyVisible();
+					}
+					if (notification.getStructuralFeature() == VViewPackage.eINSTANCE.getElement_Enabled()
+						&& !getVElement().isReadonly()) {
+						applyEnable();
+					}
+					if (notification.getStructuralFeature() == VViewPackage.eINSTANCE
+						.getElement_Diagnostic()) {
+						applyValidation();
+					}
+				}
+
+			};
+			getViewModelContext().registerViewChangeListener(listener);
+		}
+		getViewModelContext().addContextUser(this);
+
+		postInit();
+	}
+
+	/**
+	 * Returns a copy of the {@link GridCell} to {@link Control} map.
+	 *
+	 * @return a copy of the controls map
+	 * @since 1.3
+	 */
+	protected final Map<SWTGridCell, Control> getControls() {
+		if (controls == null) {
+			return Collections.emptyMap();
+		}
+		return new LinkedHashMap<SWTGridCell, Control>(controls);
+	}
+
+	/**
+	 * Use this method to initialize objects which are needed already before rendering.
+	 *
+	 * @since 1.3
+	 */
+	protected void preInit() {
+
+	}
+
+	/**
+	 * Use this method to initialize objects which are needed during rendering.
+	 *
+	 * @since 1.3
+	 */
+	protected void postInit() {
+
+	}
+
+	/**
+	 * Disposes all resources used by the renderer.
+	 * Don't forget to call super.dispose if overwriting this method.
+	 *
+	 * @since 1.3
+	 */
+	@Override
+	protected void dispose() {
+		if (getViewModelContext() != null) {
+			getViewModelContext().unregisterViewChangeListener(listener);
+		}
+		listener = null;
+		controls = null;
+		getViewModelContext().removeContextUser(this);
+
+		super.dispose();
+	}
+
+	/**
+	 * Renders the passed {@link VElement}.
+	 *
+	 * @param cell the {@link SWTGridCell} of the control to render
+	 * @param parent the {@link Composite} to render on
+	 * @return the rendered {@link Control}
+	 * @throws NoRendererFoundException this is thrown when a renderer cannot be found
+	 * @throws NoPropertyDescriptorFoundExeption this is thrown when no property descriptor can be found
+	 * @since 1.3
+	 */
+	public Control render(final SWTGridCell cell, Composite parent)
+		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+
+		Control control = controls.get(cell);
+		if (control != null) {
+			return control;
+		}
+
+		control = renderControl(cell, parent);
+		if (control == null) {
+			// something went wrong, log
+			return null;
+		}
+		controls.put(cell, control);
+
+		// register dispose listener to rerender if disposed
+		control.addDisposeListener(new DisposeListener() {
+
+			@Override
+			public void widgetDisposed(DisposeEvent e) {
+				if (controls != null) {
+					controls.remove(cell);
+				}
+			}
+		});
+
+		return control;
+	}
+
+	/**
+	 * Called by the framework to initialize listener.
+	 *
+	 * @param parent the parent used during render
+	 * @since 1.3
+	 */
+	public void finalizeRendering(Composite parent) {
+		if (renderingFinished) {
+			return;
+		}
+		renderingFinished = true;
+		applyVisible();
+		applyReadOnly();
+		if (!getVElement().isReadonly()) {
+			applyEnable();
+		}
+		applyValidation();
+		parent.addDisposeListener(new DisposeListener() {
+
+			@Override
+			public void widgetDisposed(DisposeEvent event) {
+				dispose();
+			}
+		});
+	}
+
+	/**
+	 * Renders the passed {@link VElement}.
+	 *
+	 * @param cell the {@link GridCell} of the control to render
+	 * @param parent the {@link Composite} to render on
+	 * @return the rendered {@link Control}
+	 * @throws NoRendererFoundException this is thrown when a renderer cannot be found
+	 * @throws NoPropertyDescriptorFoundExeption this is thrown when no property descriptor can be found
+	 * @since 1.3
+	 */
+	protected abstract Control renderControl(final SWTGridCell cell, Composite parent) throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption;
+
+	/**
+	 * Marks a controls as readonly.
+	 *
+	 * @since 1.3
+	 *
+	 */
+	protected void applyReadOnly() {
+		for (final SWTGridCell gridCell : controls.keySet()) {
+			setControlEnabled(gridCell, controls.get(gridCell), !getVElement().isReadonly());
+		}
+	}
+
+	/**
+	 * Allows implementers to set a control to enabled.
+	 *
+	 * @since 1.3
+	 *
+	 */
+	protected void applyEnable() {
+		for (final SWTGridCell gridCell : controls.keySet()) {
+			setControlEnabled(gridCell, controls.get(gridCell), getVElement().isEnabled());
+		}
+	}
+
+	/**
+	 * Wraps the call to enable/disable a control.
+	 *
+	 * @param gridCell the {@link SWTGridCell} to enable/disable
+	 * @param control the {@link Control} to enable/disable
+	 * @param enabled true if control should be enabled, false otherwise
+	 * @since 1.3
+	 */
+	protected void setControlEnabled(SWTGridCell gridCell, Control control, boolean enabled) {
+		control.setEnabled(enabled);
+	}
+
+	/**
+	 * Allows implementers to check and set the visibility on the whole result row.
+	 *
+	 * @since 1.3
+	 *
+	 */
+	protected void applyVisible() {
+		final boolean visible = getVElement().isVisible();
+		for (final SWTGridCell gridCell : controls.keySet()) {
+			final Object layoutData = controls.get(gridCell).getLayoutData();
+			if (GridData.class.isInstance(layoutData)) {
+				final GridData gridData = (GridData) layoutData;
+				if (gridData != null) {
+					gridData.exclude = !visible;
+				}
+			}
+			controls.get(gridCell).setVisible(visible);
+			controls.get(gridCell).getParent().layout(false);
+		}
+	}
+
+	/**
+	 * Allows implementers to display the validation state of the control.
+	 * The default implementation does nothing.
+	 *
+	 * @since 1.3
+	 */
+	protected void applyValidation() {
+
+	}
+
+	/**
+	 * @return String the default font name on the system.
+	 * @param control The control to derive the default font name from
+	 *
+	 * @since 1.5
+	 */
+	protected String getDefaultFontName(Control control) {
+		return control.getDisplay().getSystemFont().getFontData()[0].getName();
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/EMFFormsAdditionalRendererService.java b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/EMFFormsAdditionalRendererService.java
new file mode 100644
index 0000000..0282969
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/EMFFormsAdditionalRendererService.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.swt.core;
+
+import java.util.Collection;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+
+/**
+ * The EMFFormsAdditionalRendererService encapsulates the tester and the access to the
+ * {@link AbstractAdditionalSWTRenderer}.
+ *
+ * @author Eugen Neufeld
+ *
+ * @param <VELEMENT>
+ */
+public interface EMFFormsAdditionalRendererService<VELEMENT extends VElement> {
+
+	/**
+	 * Check whether the provided {@link VElement} can be rendered by the {@link AbstractAdditionalSWTRenderer} provided
+	 * by {@link #getRendererInstances(VElement, ViewModelContext)}.
+	 *
+	 * @param vElement The {@link VElement} to check
+	 * @param viewModelContext The {@link ViewModelContext} to use
+	 * @return true if the AbstractAdditionalSWTRenderer fits, false otherwise
+	 */
+	boolean isApplicable(VElement vElement, ViewModelContext viewModelContext);
+
+	/**
+	 * Returns a collection of renderers.
+	 *
+	 * @param vElement The {@link VElement} to create the renderer instance for
+	 * @param viewModelContext The {@link ViewModelContext} to use for the renderer instance
+	 * @return The collection of AbstractAdditionalSWTRenderers
+	 */
+	Collection<AbstractAdditionalSWTRenderer<VELEMENT>> getRendererInstances(VELEMENT vElement,
+		ViewModelContext viewModelContext);
+}
diff --git a/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/EMFFormsNoRendererException.java b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/EMFFormsNoRendererException.java
new file mode 100644
index 0000000..e311b90
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/EMFFormsNoRendererException.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.swt.core;
+
+/**
+ * The {@link EMFFormsNoRendererException} is used by the {@link EMFFormsRendererFactory}.
+ *
+ * @author Eugen Neufeld
+ * @noextend This class is not intended to be subclassed by clients.
+ */
+public class EMFFormsNoRendererException extends Exception {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * The EMFFormsNoRendererException throwed by {@link EMFFormsRendererFactory}.
+	 *
+	 * @param message The message of the exception
+	 */
+	public EMFFormsNoRendererException(String message) {
+		super(message);
+	}
+}
diff --git a/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/EMFFormsRendererFactory.java b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/EMFFormsRendererFactory.java
new file mode 100644
index 0000000..4c3c806
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/EMFFormsRendererFactory.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.swt.core;
+
+import java.util.Collection;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+
+/**
+ * This is the factory which selects the most fitting renderer for the provided {@link VElement} and
+ * {@link ViewModelContext}.
+ *
+ * @author Eugen Neufeld
+ * @noimplement This interface is not intended to be implemented by clients.
+ * @noextend This interface is not intended to be extended by clients.
+ */
+public interface EMFFormsRendererFactory {
+
+	/**
+	 * Returns the renderer which fits the provided {@link VElement} and {@link ViewModelContext} the most.
+	 *
+	 * @param vElement the {@link VElement} to find the renderer for
+	 * @param viewModelContext the {@link ViewModelContext} to find the renderer for
+	 * @param <VELEMENT> The VElement type
+	 * @return the renderer
+	 * @throws EMFFormsNoRendererException is thrown when no renderer can be found
+	 */
+	<VELEMENT extends VElement> AbstractSWTRenderer<VElement> getRendererInstance(VELEMENT vElement,
+		ViewModelContext viewModelContext) throws EMFFormsNoRendererException;
+
+	/**
+	 * Returns a collection of all additional renderer which contribute controls for the provided {@link VElement}.
+	 *
+	 * @param vElement the {@link VElement} to get additional renderer for
+	 * @param viewModelContext the {@link ViewModelContext} to check
+	 * @param <VELEMENT> The VElement type
+	 * @return the Collection of additional renderer
+	 */
+	<VELEMENT extends VElement> Collection<AbstractAdditionalSWTRenderer<VElement>> getAdditionalRendererInstances(
+		VELEMENT vElement, ViewModelContext viewModelContext);
+}
diff --git a/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/EMFFormsRendererService.java b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/EMFFormsRendererService.java
new file mode 100644
index 0000000..33fd958
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/EMFFormsRendererService.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.swt.core;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+
+/**
+ * The EMFFormsRendererService encapsulates the tester and the access to the {@link AbstractSWTRenderer}.
+ *
+ * @author Eugen Neufeld
+ *
+ * @param <VELEMENT>
+ */
+public interface EMFFormsRendererService<VELEMENT extends VElement> {
+
+	/**
+	 * Constant for {@link #isApplicable(VElement, ViewModelContext)} to indicate, that the EMFFormsRendererService
+	 * cannot provide a
+	 * fitting renderer for the provided VElement.
+	 */
+	double NOT_APPLICABLE = Double.NaN;
+
+	/**
+	 * Check whether the provided {@link VElement} can be rendered by the {@link AbstractSWTRenderer} provided by
+	 * {@link #getRendererInstance(VElement, ViewModelContext)}.
+	 *
+	 * @param vElement The {@link VElement} to check
+	 * @param viewModelContext The {@link ViewModelContext} to use for the renderer instance
+	 * @return {@link #NOT_APPLICABLE} if the renderer doesn't fit, a positive value otherwise
+	 */
+	double isApplicable(VElement vElement, ViewModelContext viewModelContext);
+
+	/**
+	 * Returns a renderer.
+	 *
+	 * @param vElement The {@link VElement} to create the renderer instance for
+	 * @param viewModelContext The {@link ViewModelContext} to use for the renderer instance
+	 * @return The AbstractSWTRenderer
+	 */
+	AbstractSWTRenderer<VELEMENT> getRendererInstance(VELEMENT vElement, ViewModelContext viewModelContext);
+}
diff --git a/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/layout/GridDescriptionFactory.java b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/layout/GridDescriptionFactory.java
new file mode 100644
index 0000000..05fae8b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/layout/GridDescriptionFactory.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.swt.core.layout;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+
+/**
+ * A Factory to create {@link SWTGridDescription GridDescriptions}.
+ *
+ * @author Eugen Neufeld
+ * @since 1.3
+ *
+ */
+public final class GridDescriptionFactory {
+
+	/**
+	 * The static Instance of the Factory.
+	 */
+	public static final GridDescriptionFactory INSTANCE = new GridDescriptionFactory();
+
+	private GridDescriptionFactory() {
+
+	}
+
+	/**
+	 * Creates an empty grid description.
+	 *
+	 * @return the {@link SWTGridDescription}
+	 */
+	public SWTGridDescription createEmptyGridDescription() {
+		return new SWTGridDescription();
+	}
+
+	/**
+	 * Creates a simple grid based on the number of rows and columns provided.
+	 *
+	 * @param rows the number of rows in this grid
+	 * @param columns the number of columns in this grid
+	 * @param renderer the {@link AbstractSWTRenderer}
+	 * @return the {@link SWTGridDescription}
+	 */
+	public SWTGridDescription createSimpleGrid(int rows, int columns, AbstractSWTRenderer<? extends VElement> renderer) {
+		final List<SWTGridCell> gridCells = new ArrayList<SWTGridCell>(rows * columns);
+		for (int row = 0; row < rows; row++) {
+			for (int column = 0; column < columns; column++) {
+				gridCells.add(new SWTGridCell(row, column, renderer));
+			}
+		}
+		return new SWTGridDescription(rows, columns, gridCells);
+	}
+}
diff --git a/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/layout/LayoutProvider.java b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/layout/LayoutProvider.java
new file mode 100644
index 0000000..15858d7
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/layout/LayoutProvider.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.swt.core.layout;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Layout;
+
+/**
+ * By providing an own implementation, the layout of the application can be influenced.
+ *
+ * @author Eugen Neufeld
+ * @since 1.3
+ */
+public interface LayoutProvider {
+
+	/**
+	 * The Layout for aligning controls vertically in columns.
+	 *
+	 * @param numColumns the number of columns to create
+	 * @param equalWidth whether the columns should be equal width
+	 * @return the layout to use
+	 */
+	Layout getColumnLayout(int numColumns, boolean equalWidth);
+
+	/**
+	 * The LayoutData to use.
+	 *
+	 * @param gridCell the current {@link SWTGridCell}
+	 * @param controlGridDescription the {@link SWTGridDescription} of the rendered {@link VElement}
+	 * @param currentRowGridDescription the {@link SWTGridDescription} of the current row
+	 * @param fullGridDescription the {@link SWTGridDescription} of the whole container
+	 * @param vElement the {@link VElement} which is currently rendered
+	 * @param domainModel The domain model object whose feature is currently rendered
+	 * @param control the rendered {@link Control}
+	 * @return the Object being the layout data to set
+	 * @since 1.6
+	 */
+	Object getLayoutData(SWTGridCell gridCell, SWTGridDescription controlGridDescription,
+		SWTGridDescription currentRowGridDescription, SWTGridDescription fullGridDescription, VElement vElement,
+		EObject domainModel, Control control);
+
+	/**
+	 * A simple spanning Layout.
+	 *
+	 * @param spanX the horizontal span
+	 * @param spanY the vertical span
+	 * @return the created Layout Data
+	 */
+	Object getSpanningLayoutData(int spanX, int spanY);
+}
diff --git a/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/layout/SWTGridCell.java b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/layout/SWTGridCell.java
new file mode 100644
index 0000000..6ec8003
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/layout/SWTGridCell.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.swt.core.layout;
+
+import org.eclipse.emf.ecp.view.model.common.AbstractGridCell;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+
+/**
+ * A {@link SWTGridCell} has a row, a column and a renderer it is rendered by.
+ *
+ * @author Eugen Neufeld
+ * @since 1.3
+ *
+ */
+public class SWTGridCell extends AbstractGridCell<AbstractSWTRenderer<?>> {
+
+	/**
+	 * Default constructor to create a grid cell.
+	 *
+	 * @param row the row of the cell
+	 * @param column the column of the cell
+	 * @param renderer the {@link AbstractSWTRenderer} that renderes the cell
+	 */
+	public SWTGridCell(int row, int column, AbstractSWTRenderer<? extends VElement> renderer) {
+		super(row, column, renderer);
+	}
+}
diff --git a/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/layout/SWTGridDescription.java b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/layout/SWTGridDescription.java
new file mode 100644
index 0000000..0e2e2e4
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/layout/SWTGridDescription.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.swt.core.layout;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.ecp.view.model.common.AbstractGridDescription;
+
+/**
+ * A {@link SWTGridDescription} describes the grid of the renderer using a list of {@link SWTGridCell GridCells} and the
+ * number of rows and columns it has.
+ *
+ * Use the {@link GridDescriptionFactory} to create {@link SWTGridDescription GridDescriptions}.
+ *
+ * @author Eugen Neufeld
+ * @since 1.3
+ *
+ */
+public class SWTGridDescription extends AbstractGridDescription<SWTGridCell> {
+
+	/**
+	 * Creating an empty grid.
+	 */
+	public SWTGridDescription() {
+
+	}
+
+	/**
+	 * Creating a filled grid.
+	 *
+	 * @param rows number of rows in this description
+	 * @param columns number of columns in this description
+	 * @param grid the List of {@link SWTGridCell GridCells} describing the grid
+	 */
+	public SWTGridDescription(int rows, int columns, List<SWTGridCell> grid) {
+		super(rows, columns, grid);
+	}
+
+	/**
+	 * Creates a copy of the grid.
+	 *
+	 * @return a copy of the grid
+	 */
+	public SWTGridDescription copy() {
+		final SWTGridDescription gd = new SWTGridDescription(getRows(), getColumns(), new ArrayList<SWTGridCell>(
+			getGrid()));
+		return gd;
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.checkstyle b/bundles/org.eclipse.emfforms.view.annotation.model.edit/.checkstyle
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.checkstyle
copy to bundles/org.eclipse.emfforms.view.annotation.model.edit/.checkstyle
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.classpath b/bundles/org.eclipse.emfforms.view.annotation.model.edit/.classpath
similarity index 100%
rename from examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.classpath
rename to bundles/org.eclipse.emfforms.view.annotation.model.edit/.classpath
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model.edit/.project b/bundles/org.eclipse.emfforms.view.annotation.model.edit/.project
new file mode 100644
index 0000000..8e73f2a
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.annotation.model.edit/.project
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.view.annotation.model.edit</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.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
+	</natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.emfforms.view.annotation.model.edit/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.core.resources.prefs
copy to bundles/org.eclipse.emfforms.view.annotation.model.edit/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.emfforms.view.annotation.model.edit/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.core.runtime.prefs
copy to bundles/org.eclipse.emfforms.view.annotation.model.edit/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.view.annotation.model.edit/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.core.prefs
copy to bundles/org.eclipse.emfforms.view.annotation.model.edit/.settings/org.eclipse.jdt.core.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.emfforms.view.annotation.model.edit/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.launching.prefs
copy to bundles/org.eclipse.emfforms.view.annotation.model.edit/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.emfforms.view.annotation.model.edit/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.ui.prefs
copy to bundles/org.eclipse.emfforms.view.annotation.model.edit/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.emfforms.view.annotation.model.edit/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to bundles/org.eclipse.emfforms.view.annotation.model.edit/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.view.annotation.model.edit/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.pde.api.tools.prefs
copy to bundles/org.eclipse.emfforms.view.annotation.model.edit/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.emfforms.view.annotation.model.edit/.settings/org.eclipse.pde.core.prefs
similarity index 100%
copy from examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.pde.core.prefs
copy to bundles/org.eclipse.emfforms.view.annotation.model.edit/.settings/org.eclipse.pde.core.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.emfforms.view.annotation.model.edit/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.pde.prefs
copy to bundles/org.eclipse.emfforms.view.annotation.model.edit/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..28db771
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.annotation.model.edit/META-INF/MANIFEST.MF
@@ -0,0 +1,19 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.emfforms.view.annotation.model.edit;singleton:=true
+Bundle-Version: 1.6.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.emf.emfforms.spi.view.annotation.model.provider.AnnotationEditPlugin$Implementation
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: org.eclipse.emf.emfforms.spi.view.annotation.model.provider;version="1.6.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.6.0,2.0.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.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.6.0,2.0.0)"
+Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/about.html b/bundles/org.eclipse.emfforms.view.annotation.model.edit/about.html
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/about.html
copy to bundles/org.eclipse.emfforms.view.annotation.model.edit/about.html
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model.edit/build.properties b/bundles/org.eclipse.emfforms.view.annotation.model.edit/build.properties
new file mode 100644
index 0000000..3406bce
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.annotation.model.edit/build.properties
@@ -0,0 +1,20 @@
+# Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+# 
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+# Johannes Faltermeier - initial API and implementation
+
+bin.includes = .,\
+               icons/,\
+               META-INF/,\
+               plugin.xml,\
+               plugin.properties,\
+               about.html
+jars.compile.order = .
+source.. = src/
+output.. = bin/
+src.includes = about.html
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model.edit/icons/full/ctool16/CreateElement_attachments_Annotation.gif b/bundles/org.eclipse.emfforms.view.annotation.model.edit/icons/full/ctool16/CreateElement_attachments_Annotation.gif
new file mode 100644
index 0000000..ca96637
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.annotation.model.edit/icons/full/ctool16/CreateElement_attachments_Annotation.gif
Binary files differ
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model.edit/icons/full/obj16/Annotation.png b/bundles/org.eclipse.emfforms.view.annotation.model.edit/icons/full/obj16/Annotation.png
new file mode 100644
index 0000000..ea897cc
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.annotation.model.edit/icons/full/obj16/Annotation.png
Binary files differ
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model.edit/plugin.properties b/bundles/org.eclipse.emfforms.view.annotation.model.edit/plugin.properties
new file mode 100644
index 0000000..3295dc9
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.annotation.model.edit/plugin.properties
@@ -0,0 +1,33 @@
+# Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+# 
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+# Johannes Faltermeier - initial API and implementation
+
+pluginName = EMFForms Annotation View Model Edit Support
+providerName = Eclipse Modeling Project
+
+_UI_CreateChild_text = {0}
+_UI_CreateChild_text2 = {1} {0}
+_UI_CreateChild_text3 = {1}
+_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
+_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
+_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.
+
+_UI_PropertyDescriptor_description = The {0} of the {1}
+
+_UI_Annotation_type = Annotation
+_UI_Unknown_type = Object
+
+_UI_Unknown_datatype= Value
+
+_UI_Annotation_key_feature = Key
+_UI_Annotation_value_feature = Value
+_UI_Unknown_feature = Unspecified
+
+_UI_Annotation_label = ["{0}", "{1}"]
+
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model.edit/plugin.xml b/bundles/org.eclipse.emfforms.view.annotation.model.edit/plugin.xml
new file mode 100644
index 0000000..a08b8d3
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.annotation.model.edit/plugin.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ 
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+ 
+ Contributors:
+ Johannes Faltermeier - initial API and implementation
+-->
+
+<plugin>
+
+   <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+      <!-- @generated annotation -->
+      <factory
+            uri="http://org/eclipse/emf/emfforms/view/annotation/model"
+            class="org.eclipse.emf.emfforms.spi.view.annotation.model.provider.AnnotationItemProviderAdapterFactory"
+            supportedTypes=
+              "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+               org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+               org.eclipse.emf.edit.provider.ITreeItemContentProvider
+               org.eclipse.emf.edit.provider.IItemLabelProvider
+               org.eclipse.emf.edit.provider.IItemPropertySource"/>
+   </extension>
+
+   <extension point="org.eclipse.emf.edit.childCreationExtenders">
+      <!-- @generated annotation -->
+      <extender
+            uri="http://org/eclipse/emf/ecp/view/model"
+            class="org.eclipse.emf.emfforms.spi.view.annotation.model.provider.AnnotationItemProviderAdapterFactory$ViewChildCreationExtender"/>
+   </extension>
+
+</plugin>
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model.edit/pom.xml b/bundles/org.eclipse.emfforms.view.annotation.model.edit/pom.xml
new file mode 100644
index 0000000..013cb1a
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.annotation.model.edit/pom.xml
@@ -0,0 +1,16 @@
+<?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.6.0-SNAPSHOT</version>
+    <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
+  </parent>
+
+  <artifactId>org.eclipse.emfforms.view.annotation.model.edit</artifactId>
+<packaging>eclipse-plugin</packaging>
+</project>
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model.edit/src/org/eclipse/emf/emfforms/spi/view/annotation/model/provider/AnnotationEditPlugin.java b/bundles/org.eclipse.emfforms.view.annotation.model.edit/src/org/eclipse/emf/emfforms/spi/view/annotation/model/provider/AnnotationEditPlugin.java
new file mode 100644
index 0000000..30e47f6
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.annotation.model.edit/src/org/eclipse/emf/emfforms/spi/view/annotation/model/provider/AnnotationEditPlugin.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ */
+package org.eclipse.emf.emfforms.spi.view.annotation.model.provider;
+
+import org.eclipse.emf.common.EMFPlugin;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.provider.EcoreEditPlugin;
+import org.eclipse.emf.ecp.view.spi.model.provider.ViewEditPlugin;
+
+/**
+ * This is the central singleton for the Annotation edit plugin. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public final class AnnotationEditPlugin extends EMFPlugin {
+	/**
+	 * Keep track of the singleton. <!-- begin-user-doc --> <!-- end-user-doc
+	 * -->
+	 *
+	 * @generated
+	 */
+	public static final AnnotationEditPlugin INSTANCE = new AnnotationEditPlugin();
+
+	/**
+	 * Keep track of the singleton. <!-- begin-user-doc --> <!-- end-user-doc
+	 * -->
+	 *
+	 * @generated
+	 */
+	private static Implementation plugin;
+
+	/**
+	 * Create the instance. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public AnnotationEditPlugin() {
+		super(new ResourceLocator[] { EcoreEditPlugin.INSTANCE, ViewEditPlugin.INSTANCE, });
+	}
+
+	/**
+	 * Returns the singleton instance of the Eclipse plugin. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 *
+	 * @return the singleton instance.
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getPluginResourceLocator() {
+		return plugin;
+	}
+
+	/**
+	 * Returns the singleton instance of the Eclipse plugin. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 *
+	 * @return the singleton instance.
+	 * @generated
+	 */
+	public static Implementation getPlugin() {
+		return plugin;
+	}
+
+	/**
+	 * The actual implementation of the Eclipse <b>Plugin</b>. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public static class Implementation extends EclipsePlugin {
+		/**
+		 * Creates an instance. <!-- begin-user-doc --> <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		public Implementation() {
+			super();
+
+			// Remember the static instance.
+			//
+			plugin = this;
+		}
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model.edit/src/org/eclipse/emf/emfforms/spi/view/annotation/model/provider/AnnotationItemProvider.java b/bundles/org.eclipse.emfforms.view.annotation.model.edit/src/org/eclipse/emf/emfforms/spi/view/annotation/model/provider/AnnotationItemProvider.java
new file mode 100644
index 0000000..e38cede
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.annotation.model.edit/src/org/eclipse/emf/emfforms/spi/view/annotation/model/provider/AnnotationItemProvider.java
@@ -0,0 +1,156 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ */
+package org.eclipse.emf.emfforms.spi.view.annotation.model.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecp.view.spi.model.provider.AttachmentItemProvider;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotation;
+import org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotationPackage;
+
+/**
+ * This is the item provider adapter for a
+ * {@link org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotation}
+ * object. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class AnnotationItemProvider extends AttachmentItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public AnnotationItemProvider(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);
+
+			addKeyPropertyDescriptor(object);
+			addValuePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Key feature. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected void addKeyPropertyDescriptor(Object object) {
+		itemPropertyDescriptors
+			.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+				getResourceLocator(), getString("_UI_Annotation_key_feature"), //$NON-NLS-1$
+				getString("_UI_PropertyDescriptor_description", "_UI_Annotation_key_feature", //$NON-NLS-1$ //$NON-NLS-2$
+					"_UI_Annotation_type"), //$NON-NLS-1$
+				VAnnotationPackage.Literals.ANNOTATION__KEY, true, false, false,
+				ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Value feature. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected void addValuePropertyDescriptor(Object object) {
+		itemPropertyDescriptors
+			.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+				getResourceLocator(), getString("_UI_Annotation_value_feature"), //$NON-NLS-1$
+				getString("_UI_PropertyDescriptor_description", "_UI_Annotation_value_feature", //$NON-NLS-1$ //$NON-NLS-2$
+					"_UI_Annotation_type"), //$NON-NLS-1$
+				VAnnotationPackage.Literals.ANNOTATION__VALUE, true, false, false,
+				ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+	}
+
+	/**
+	 * This returns Annotation.gif. <!-- begin-user-doc --> <!-- end-user-doc
+	 * -->
+	 *
+	 * @generated NOT
+	 */
+	@Override
+	public Object getImage(Object object) {
+		// begin of custom code
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Annotation.png")); //$NON-NLS-1$
+	}
+	// end of custom code
+
+	/**
+	 * This returns the label text for the adapted class. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 *
+	 * @generated NOT
+	 */
+	@Override
+	public String getText(Object object) {
+		// begin of custom code
+		final VAnnotation annotation = VAnnotation.class.cast(object);
+		final String key = annotation.getKey() == null ? "null" : annotation.getKey(); //$NON-NLS-1$
+		final String value = annotation.getValue() == null ? "null" : annotation.getValue(); //$NON-NLS-1$
+		return getString("_UI_Annotation_label", new String[] { key, value }); //$NON-NLS-1$
+	}
+	// end of custom code
+
+	/**
+	 * 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(VAnnotation.class)) {
+		case VAnnotationPackage.ANNOTATION__KEY:
+		case VAnnotationPackage.ANNOTATION__VALUE:
+			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);
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model.edit/src/org/eclipse/emf/emfforms/spi/view/annotation/model/provider/AnnotationItemProviderAdapterFactory.java b/bundles/org.eclipse.emfforms.view.annotation.model.edit/src/org/eclipse/emf/emfforms/spi/view/annotation/model/provider/AnnotationItemProviderAdapterFactory.java
new file mode 100644
index 0000000..2935784
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.annotation.model.edit/src/org/eclipse/emf/emfforms/spi/view/annotation/model/provider/AnnotationItemProviderAdapterFactory.java
@@ -0,0 +1,357 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ */
+package org.eclipse.emf.emfforms.spi.view.annotation.model.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EObject;
+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.model.util.ViewSwitch;
+import org.eclipse.emf.edit.command.CommandParameter;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ChildCreationExtenderManager;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotationFactory;
+import org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotationPackage;
+import org.eclipse.emf.emfforms.spi.view.annotation.model.util.AnnotationAdapterFactory;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support
+ * Viewers. The adapters generated by this factory convert EMF adapter
+ * notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}. The
+ * adapters also support Eclipse property sheets. Note that most of the adapters
+ * are shared among multiple instances. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+public class AnnotationItemProviderAdapterFactory extends AnnotationAdapterFactory
+	implements ComposeableAdapterFactory, IChangeNotifier, IDisposable, IChildCreationExtender {
+	/**
+	 * This keeps track of the root adapter factory that delegates to this
+	 * adapter factory. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected ComposedAdapterFactory parentAdapterFactory;
+
+	/**
+	 * This is used to implement
+	 * {@link org.eclipse.emf.edit.provider.IChangeNotifier}. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+	/**
+	 * This helps manage the child creation extenders. <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected ChildCreationExtenderManager childCreationExtenderManager = new ChildCreationExtenderManager(
+		AnnotationEditPlugin.INSTANCE, VAnnotationPackage.eNS_URI);
+
+	/**
+	 * This keeps track of all the supported types checked by
+	 * {@link #isFactoryForType isFactoryForType}. <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected Collection<Object> supportedTypes = new ArrayList<Object>();
+
+	/**
+	 * This constructs an instance. <!-- begin-user-doc --> <!-- end-user-doc
+	 * -->
+	 *
+	 * @generated
+	 */
+	public AnnotationItemProviderAdapterFactory() {
+		supportedTypes.add(IEditingDomainItemProvider.class);
+		supportedTypes.add(IStructuredItemContentProvider.class);
+		supportedTypes.add(ITreeItemContentProvider.class);
+		supportedTypes.add(IItemLabelProvider.class);
+		supportedTypes.add(IItemPropertySource.class);
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all
+	 * {@link org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotation}
+	 * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected AnnotationItemProvider annotationItemProvider;
+
+	/**
+	 * This creates an adapter for a
+	 * {@link org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotation}.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Adapter createAnnotationAdapter() {
+		if (annotationItemProvider == null) {
+			annotationItemProvider = new AnnotationItemProvider(this);
+		}
+
+		return annotationItemProvider;
+	}
+
+	/**
+	 * This returns the root adapter factory that contains this factory. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public ComposeableAdapterFactory getRootAdapterFactory() {
+		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+	}
+
+	/**
+	 * This sets the composed adapter factory that contains this factory. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+		this.parentAdapterFactory = parentAdapterFactory;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object type) {
+		return supportedTypes.contains(type) || super.isFactoryForType(type);
+	}
+
+	/**
+	 * This implementation substitutes the factory itself as the key for the
+	 * adapter. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Adapter adapt(Notifier notifier, Object type) {
+		return super.adapt(notifier, this);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object adapt(Object object, Object type) {
+		if (isFactoryForType(type)) {
+			final Object adapter = super.adapt(object, type);
+			if (!(type instanceof Class<?>) || ((Class<?>) type).isInstance(adapter)) {
+				return adapter;
+			}
+		}
+
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public List<IChildCreationExtender> getChildCreationExtenders() {
+		return childCreationExtenderManager.getChildCreationExtenders();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Collection<?> getNewChildDescriptors(Object object, EditingDomain editingDomain) {
+		return childCreationExtenderManager.getNewChildDescriptors(object, editingDomain);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return childCreationExtenderManager;
+	}
+
+	/**
+	 * This adds a listener. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void addListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.addListener(notifyChangedListener);
+	}
+
+	/**
+	 * This removes a listener. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void removeListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.removeListener(notifyChangedListener);
+	}
+
+	/**
+	 * This delegates to {@link #changeNotifier} and to
+	 * {@link #parentAdapterFactory}. <!-- begin-user-doc --> <!-- end-user-doc
+	 * -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void fireNotifyChanged(Notification notification) {
+		changeNotifier.fireNotifyChanged(notification);
+
+		if (parentAdapterFactory != null) {
+			parentAdapterFactory.fireNotifyChanged(notification);
+		}
+	}
+
+	/**
+	 * This disposes all of the item providers created by this factory. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void dispose() {
+		if (annotationItemProvider != null) {
+			annotationItemProvider.dispose();
+		}
+	}
+
+	/**
+	 * A child creation extender for the {@link VViewPackage}. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public static class ViewChildCreationExtender implements IChildCreationExtender {
+		/**
+		 * The switch for creating child descriptors specific to each extended
+		 * class. <!-- begin-user-doc --> <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		protected static class CreationSwitch extends ViewSwitch<Object> {
+			/**
+			 * The child descriptors being populated. <!-- begin-user-doc -->
+			 * <!-- end-user-doc -->
+			 *
+			 * @generated
+			 */
+			protected List<Object> newChildDescriptors;
+
+			/**
+			 * The domain in which to create the children. <!-- begin-user-doc
+			 * --> <!-- end-user-doc -->
+			 *
+			 * @generated
+			 */
+			protected EditingDomain editingDomain;
+
+			/**
+			 * Creates the a switch for populating child descriptors in the
+			 * given domain. <!-- begin-user-doc --> <!-- end-user-doc -->
+			 *
+			 * @generated
+			 */
+			CreationSwitch(List<Object> newChildDescriptors, EditingDomain editingDomain) {
+				this.newChildDescriptors = newChildDescriptors;
+				this.editingDomain = editingDomain;
+			}
+
+			/**
+			 * <!-- begin-user-doc --> <!-- end-user-doc -->
+			 *
+			 * @generated
+			 */
+			@Override
+			public Object caseElement(VElement object) {
+				newChildDescriptors.add(createChildParameter(VViewPackage.Literals.ELEMENT__ATTACHMENTS,
+					VAnnotationFactory.eINSTANCE.createAnnotation()));
+
+				return null;
+			}
+
+			/**
+			 * <!-- begin-user-doc --> <!-- end-user-doc -->
+			 *
+			 * @generated
+			 */
+			protected CommandParameter createChildParameter(Object feature, Object child) {
+				return new CommandParameter(null, feature, child);
+			}
+
+		}
+
+		/**
+		 * <!-- begin-user-doc --> <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		@Override
+		public Collection<Object> getNewChildDescriptors(Object object, EditingDomain editingDomain) {
+			final ArrayList<Object> result = new ArrayList<Object>();
+			new CreationSwitch(result, editingDomain).doSwitch((EObject) object);
+			return result;
+		}
+
+		/**
+		 * <!-- begin-user-doc --> <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		@Override
+		public ResourceLocator getResourceLocator() {
+			return AnnotationEditPlugin.INSTANCE;
+		}
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.checkstyle b/bundles/org.eclipse.emfforms.view.annotation.model/.checkstyle
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.checkstyle
copy to bundles/org.eclipse.emfforms.view.annotation.model/.checkstyle
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.classpath b/bundles/org.eclipse.emfforms.view.annotation.model/.classpath
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.classpath
copy to bundles/org.eclipse.emfforms.view.annotation.model/.classpath
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model/.project b/bundles/org.eclipse.emfforms.view.annotation.model/.project
new file mode 100644
index 0000000..f62e8bd
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.annotation.model/.project
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.view.annotation.model</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/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.emfforms.view.annotation.model/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.resources.prefs
copy to bundles/org.eclipse.emfforms.view.annotation.model/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.emfforms.view.annotation.model/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.runtime.prefs
copy to bundles/org.eclipse.emfforms.view.annotation.model/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.view.annotation.model/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.core.prefs
copy to bundles/org.eclipse.emfforms.view.annotation.model/.settings/org.eclipse.jdt.core.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.emfforms.view.annotation.model/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.launching.prefs
copy to bundles/org.eclipse.emfforms.view.annotation.model/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.emfforms.view.annotation.model/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.ui.prefs
copy to bundles/org.eclipse.emfforms.view.annotation.model/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.emfforms.view.annotation.model/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to bundles/org.eclipse.emfforms.view.annotation.model/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.view.annotation.model/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.api.tools.prefs
copy to bundles/org.eclipse.emfforms.view.annotation.model/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.emfforms.view.annotation.model/.settings/org.eclipse.pde.core.prefs
similarity index 100%
copy from examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.pde.core.prefs
copy to bundles/org.eclipse.emfforms.view.annotation.model/.settings/org.eclipse.pde.core.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.emfforms.view.annotation.model/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.prefs
copy to bundles/org.eclipse.emfforms.view.annotation.model/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..75b8835
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.annotation.model/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.emfforms.view.annotation.model;singleton:=true
+Bundle-Version: 1.6.0.qualifier
+Bundle-ClassPath: .
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: org.eclipse.emf.emfforms.spi.view.annotation.model;version="1.6.0",
+ org.eclipse.emf.emfforms.spi.view.annotation.model.impl;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.emfforms.spi.view.annotation.model.util;version="1.6.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.6.0,2.0.0)"
+Bundle-ActivationPolicy: lazy
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/about.html b/bundles/org.eclipse.emfforms.view.annotation.model/about.html
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/about.html
copy to bundles/org.eclipse.emfforms.view.annotation.model/about.html
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/about.ini b/bundles/org.eclipse.emfforms.view.annotation.model/about.ini
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/about.ini
copy to bundles/org.eclipse.emfforms.view.annotation.model/about.ini
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model/about.mappings b/bundles/org.eclipse.emfforms.view.annotation.model/about.mappings
new file mode 100644
index 0000000..f2954d5
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.annotation.model/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=${BUILD_ID}
\ No newline at end of file
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model/about.properties b/bundles/org.eclipse.emfforms.view.annotation.model/about.properties
new file mode 100644
index 0000000..83be450
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.annotation.model/about.properties
@@ -0,0 +1,31 @@
+# Copyright (c) 2011, 2015 Eclipsesource Munich GmbH and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+#    Johannes Faltermeier - initial API and implementation
+   
+# NLS_MESSAGEFORMAT_VAR
+
+# ==============================================================================
+# Do not change the properties between this line and the last line containing:
+# %%% END OF TRANSLATED PROPERTIES %%%
+# Instead, either redefine an existing property, or create a new property,
+# append it to the end of the file, and change the code to use the new name.
+# ==============================================================================
+
+featureName = ECP EMF Client Platform
+featureText = ECP EMF Client Platform\n\
+Version: {featureVersion}\n\
+Build id: {0}\n\
+\n\
+Copyright (c) 2011, 2015 Eclipsesource Munich GmbH and others. All rights reserved.\n\
+\n\
+Visit http://www.eclipse.org/ecp
+
+# ==============================================================================
+# %%% END OF TRANSLATED PROPERTIES %%%
+# The above properties have been shipped for translation.
+# ==============================================================================
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model/build.properties b/bundles/org.eclipse.emfforms.view.annotation.model/build.properties
new file mode 100644
index 0000000..e70403b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.annotation.model/build.properties
@@ -0,0 +1,18 @@
+# Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+# 
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+# Johannes Faltermeier - initial API and implementation
+
+bin.includes = .,\
+               model/,\
+               META-INF/,\
+               plugin.xml,\
+               plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model/model/annotation.ecore b/bundles/org.eclipse.emfforms.view.annotation.model/model/annotation.ecore
new file mode 100644
index 0000000..a4a6bbe
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.annotation.model/model/annotation.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="annotation" nsURI="http://org/eclipse/emf/emfforms/view/annotation/model"
+    nsPrefix="org.eclipse.emfforms.view.annotation.model">
+  <eClassifiers xsi:type="ecore:EClass" name="Annotation" eSuperTypes="../../org.eclipse.emf.ecp.view.model/model/view.ecore#//Attachment">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+</ecore:EPackage>
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model/model/annotation.genmodel b/bundles/org.eclipse.emfforms.view.annotation.model/model/annotation.genmodel
new file mode 100644
index 0000000..e58e451
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.annotation.model/model/annotation.genmodel
@@ -0,0 +1,21 @@
+<?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-2015 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;Johannes Faltermeier - initial API and implementation"
+    modelDirectory="/org.eclipse.emfforms.view.annotation.model/src" modelPluginID="org.eclipse.emfforms.view.annotation.model"
+    modelName="Annotation" nonNLSMarkers="true" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+    codeFormatting="true" commentFormatting="true" importerID="org.eclipse.emf.importer.ecore"
+    complianceLevel="6.0" copyrightFields="false" usedGenPackages="../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../../org.eclipse.emf.ecp.view.model/model/view.genmodel#//model"
+    interfaceNamePattern="V{0}" classNamePattern="V{0}Impl" importOrganizing="true"
+    cleanup="true">
+  <foreignModel>annotation.ecore</foreignModel>
+  <genPackages prefix="Annotation" basePackage="org.eclipse.emf.emfforms.spi.view"
+      disposableProviderFactory="true" interfacePackageSuffix="model" metaDataPackageSuffix="model"
+      classPackageSuffix="model.impl" utilityPackageSuffix="model.util" providerPackageSuffix="model.provider"
+      presentationPackageSuffix="model.presentation" testsPackageSuffix="model.tests"
+      extensibleProviderFactory="true" childCreationExtenders="true" ecorePackage="annotation.ecore#/">
+    <genClasses image="false" ecoreClass="annotation.ecore#//Annotation">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute annotation.ecore#//Annotation/key"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute annotation.ecore#//Annotation/value"/>
+    </genClasses>
+  </genPackages>
+</genmodel:GenModel>
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/modeling32.png b/bundles/org.eclipse.emfforms.view.annotation.model/modeling32.png
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/modeling32.png
copy to bundles/org.eclipse.emfforms.view.annotation.model/modeling32.png
Binary files differ
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model/plugin.properties b/bundles/org.eclipse.emfforms.view.annotation.model/plugin.properties
new file mode 100644
index 0000000..d3196ce
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.annotation.model/plugin.properties
@@ -0,0 +1,12 @@
+# Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+# 
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+# Johannes Faltermeier - initial API and implementation
+
+pluginName = EMFForms Annotation View Model
+providerName = Eclipse Modeling Project
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model/plugin.xml b/bundles/org.eclipse.emfforms.view.annotation.model/plugin.xml
new file mode 100644
index 0000000..ec587e3
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.annotation.model/plugin.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ 
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+ 
+ Contributors:
+ Johannes Faltermeier - initial API and implementation
+-->
+
+<plugin>
+
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <!-- @generated annotation -->
+      <package
+            uri="http://org/eclipse/emf/emfforms/view/annotation/model"
+            class="org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotationPackage"
+            genModel="model/annotation.genmodel"/>
+   </extension>
+
+</plugin>
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model/pom.xml b/bundles/org.eclipse.emfforms.view.annotation.model/pom.xml
new file mode 100644
index 0000000..745fba5
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.annotation.model/pom.xml
@@ -0,0 +1,16 @@
+<?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.6.0-SNAPSHOT</version>
+    <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
+  </parent>
+
+  <artifactId>org.eclipse.emfforms.view.annotation.model</artifactId>
+<packaging>eclipse-plugin</packaging>
+</project>
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model/src/org/eclipse/emf/emfforms/spi/view/annotation/model/VAnnotation.java b/bundles/org.eclipse.emfforms.view.annotation.model/src/org/eclipse/emf/emfforms/spi/view/annotation/model/VAnnotation.java
new file mode 100644
index 0000000..cf149a1
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.annotation.model/src/org/eclipse/emf/emfforms/spi/view/annotation/model/VAnnotation.java
@@ -0,0 +1,92 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ */
+package org.eclipse.emf.emfforms.spi.view.annotation.model;
+
+import org.eclipse.emf.ecp.view.spi.model.VAttachment;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Annotation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotation#getKey <em>Key</em>}</li>
+ * <li>{@link org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotation#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotationPackage#getAnnotation()
+ * @model
+ * @generated
+ */
+public interface VAnnotation extends VAttachment {
+	/**
+	 * Returns the value of the '<em><b>Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Key</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Key</em>' attribute.
+	 * @see #setKey(String)
+	 * @see org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotationPackage#getAnnotation_Key()
+	 * @model required="true"
+	 * @generated
+	 */
+	String getKey();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotation#getKey <em>Key</em>}
+	 * ' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value the new value of the '<em>Key</em>' attribute.
+	 * @see #getKey()
+	 * @generated
+	 */
+	void setKey(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Value</em>' attribute.
+	 * @see #setValue(String)
+	 * @see org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotationPackage#getAnnotation_Value()
+	 * @model
+	 * @generated
+	 */
+	String getValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotation#getValue
+	 * <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value the new value of the '<em>Value</em>' attribute.
+	 * @see #getValue()
+	 * @generated
+	 */
+	void setValue(String value);
+
+} // VAnnotation
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model/src/org/eclipse/emf/emfforms/spi/view/annotation/model/VAnnotationFactory.java b/bundles/org.eclipse.emfforms.view.annotation.model/src/org/eclipse/emf/emfforms/spi/view/annotation/model/VAnnotationFactory.java
new file mode 100644
index 0000000..b1ce1ef
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.annotation.model/src/org/eclipse/emf/emfforms/spi/view/annotation/model/VAnnotationFactory.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ */
+package org.eclipse.emf.emfforms.spi.view.annotation.model;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * 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.emf.emfforms.spi.view.annotation.model.VAnnotationPackage
+ * @generated
+ */
+public interface VAnnotationFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	VAnnotationFactory eINSTANCE = org.eclipse.emf.emfforms.spi.view.annotation.model.impl.VAnnotationFactoryImpl
+		.init();
+
+	/**
+	 * Returns a new object of class '<em>Annotation</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return a new object of class '<em>Annotation</em>'.
+	 * @generated
+	 */
+	VAnnotation createAnnotation();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	VAnnotationPackage getAnnotationPackage();
+
+} // VAnnotationFactory
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model/src/org/eclipse/emf/emfforms/spi/view/annotation/model/VAnnotationPackage.java b/bundles/org.eclipse.emfforms.view.annotation.model/src/org/eclipse/emf/emfforms/spi/view/annotation/model/VAnnotationPackage.java
new file mode 100644
index 0000000..ee670a8
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.annotation.model/src/org/eclipse/emf/emfforms/spi/view/annotation/model/VAnnotationPackage.java
@@ -0,0 +1,209 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ */
+package org.eclipse.emf.emfforms.spi.view.annotation.model;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotationFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface VAnnotationPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	String eNAME = "annotation"; //$NON-NLS-1$
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	String eNS_URI = "http://org/eclipse/emf/emfforms/view/annotation/model"; //$NON-NLS-1$
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	String eNS_PREFIX = "org.eclipse.emfforms.view.annotation.model"; //$NON-NLS-1$
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	VAnnotationPackage eINSTANCE = org.eclipse.emf.emfforms.spi.view.annotation.model.impl.VAnnotationPackageImpl
+		.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.emf.emfforms.spi.view.annotation.model.impl.VAnnotationImpl
+	 * <em>Annotation</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.emf.emfforms.spi.view.annotation.model.impl.VAnnotationImpl
+	 * @see org.eclipse.emf.emfforms.spi.view.annotation.model.impl.VAnnotationPackageImpl#getAnnotation()
+	 * @generated
+	 */
+	int ANNOTATION = 0;
+
+	/**
+	 * The feature id for the '<em><b>Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int ANNOTATION__KEY = VViewPackage.ATTACHMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int ANNOTATION__VALUE = VViewPackage.ATTACHMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Annotation</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int ANNOTATION_FEATURE_COUNT = VViewPackage.ATTACHMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotation
+	 * <em>Annotation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for class '<em>Annotation</em>'.
+	 * @see org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotation
+	 * @generated
+	 */
+	EClass getAnnotation();
+
+	/**
+	 * Returns the meta object for the attribute '
+	 * {@link org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotation#getKey <em>Key</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Key</em>'.
+	 * @see org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotation#getKey()
+	 * @see #getAnnotation()
+	 * @generated
+	 */
+	EAttribute getAnnotation_Key();
+
+	/**
+	 * Returns the meta object for the attribute '
+	 * {@link org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotation#getValue <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Value</em>'.
+	 * @see org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotation#getValue()
+	 * @see #getAnnotation()
+	 * @generated
+	 */
+	EAttribute getAnnotation_Value();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	VAnnotationFactory getAnnotationFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 * <li>each class,</li>
+	 * <li>each feature of each class,</li>
+	 * <li>each enum,</li>
+	 * <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	interface Literals {
+		/**
+		 * The meta object literal for the '
+		 * {@link org.eclipse.emf.emfforms.spi.view.annotation.model.impl.VAnnotationImpl <em>Annotation</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @see org.eclipse.emf.emfforms.spi.view.annotation.model.impl.VAnnotationImpl
+		 * @see org.eclipse.emf.emfforms.spi.view.annotation.model.impl.VAnnotationPackageImpl#getAnnotation()
+		 * @generated
+		 */
+		EClass ANNOTATION = eINSTANCE.getAnnotation();
+
+		/**
+		 * The meta object literal for the '<em><b>Key</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute ANNOTATION__KEY = eINSTANCE.getAnnotation_Key();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute ANNOTATION__VALUE = eINSTANCE.getAnnotation_Value();
+
+	}
+
+} // VAnnotationPackage
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model/src/org/eclipse/emf/emfforms/spi/view/annotation/model/impl/VAnnotationFactoryImpl.java b/bundles/org.eclipse.emfforms.view.annotation.model/src/org/eclipse/emf/emfforms/spi/view/annotation/model/impl/VAnnotationFactoryImpl.java
new file mode 100644
index 0000000..5de748c
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.annotation.model/src/org/eclipse/emf/emfforms/spi/view/annotation/model/impl/VAnnotationFactoryImpl.java
@@ -0,0 +1,113 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ */
+package org.eclipse.emf.emfforms.spi.view.annotation.model.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotation;
+import org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotationFactory;
+import org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class VAnnotationFactoryImpl extends EFactoryImpl implements VAnnotationFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public static VAnnotationFactory init() {
+		try {
+			final VAnnotationFactory theAnnotationFactory = (VAnnotationFactory) EPackage.Registry.INSTANCE
+				.getEFactory(VAnnotationPackage.eNS_URI);
+			if (theAnnotationFactory != null) {
+				return theAnnotationFactory;
+			}
+		} catch (final Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new VAnnotationFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public VAnnotationFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+		case VAnnotationPackage.ANNOTATION:
+			return createAnnotation();
+		default:
+			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
+	public VAnnotation createAnnotation() {
+		final VAnnotationImpl annotation = new VAnnotationImpl();
+		return annotation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public VAnnotationPackage getAnnotationPackage() {
+		return (VAnnotationPackage) getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static VAnnotationPackage getPackage() {
+		return VAnnotationPackage.eINSTANCE;
+	}
+
+} // VAnnotationFactoryImpl
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model/src/org/eclipse/emf/emfforms/spi/view/annotation/model/impl/VAnnotationImpl.java b/bundles/org.eclipse.emfforms.view.annotation.model/src/org/eclipse/emf/emfforms/spi/view/annotation/model/impl/VAnnotationImpl.java
new file mode 100644
index 0000000..07944c6
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.annotation.model/src/org/eclipse/emf/emfforms/spi/view/annotation/model/impl/VAnnotationImpl.java
@@ -0,0 +1,247 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ */
+package org.eclipse.emf.emfforms.spi.view.annotation.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.ecp.view.spi.model.impl.VAttachmentImpl;
+import org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotation;
+import org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Annotation</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.emf.emfforms.spi.view.annotation.model.impl.VAnnotationImpl#getKey <em>Key</em>}</li>
+ * <li>{@link org.eclipse.emf.emfforms.spi.view.annotation.model.impl.VAnnotationImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class VAnnotationImpl extends VAttachmentImpl implements VAnnotation {
+	/**
+	 * The default value of the '{@link #getKey() <em>Key</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getKey()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String KEY_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getKey() <em>Key</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getKey()
+	 * @generated
+	 * @ordered
+	 */
+	protected String key = KEY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String VALUE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected String value = VALUE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected VAnnotationImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return VAnnotationPackage.Literals.ANNOTATION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String getKey() {
+		return key;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setKey(String newKey) {
+		final String oldKey = key;
+		key = newKey;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, VAnnotationPackage.ANNOTATION__KEY, oldKey, key));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String getValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setValue(String newValue) {
+		final String oldValue = value;
+		value = newValue;
+		if (eNotificationRequired()) {
+			eNotify(
+				new ENotificationImpl(this, Notification.SET, VAnnotationPackage.ANNOTATION__VALUE, oldValue, value));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case VAnnotationPackage.ANNOTATION__KEY:
+			return getKey();
+		case VAnnotationPackage.ANNOTATION__VALUE:
+			return getValue();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case VAnnotationPackage.ANNOTATION__KEY:
+			setKey((String) newValue);
+			return;
+		case VAnnotationPackage.ANNOTATION__VALUE:
+			setValue((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case VAnnotationPackage.ANNOTATION__KEY:
+			setKey(KEY_EDEFAULT);
+			return;
+		case VAnnotationPackage.ANNOTATION__VALUE:
+			setValue(VALUE_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case VAnnotationPackage.ANNOTATION__KEY:
+			return KEY_EDEFAULT == null ? key != null : !KEY_EDEFAULT.equals(key);
+		case VAnnotationPackage.ANNOTATION__VALUE:
+			return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) {
+			return super.toString();
+		}
+
+		final StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (key: "); //$NON-NLS-1$
+		result.append(key);
+		result.append(", value: "); //$NON-NLS-1$
+		result.append(value);
+		result.append(')');
+		return result.toString();
+	}
+
+} // VAnnotationImpl
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model/src/org/eclipse/emf/emfforms/spi/view/annotation/model/impl/VAnnotationPackageImpl.java b/bundles/org.eclipse.emfforms.view.annotation.model/src/org/eclipse/emf/emfforms/spi/view/annotation/model/impl/VAnnotationPackageImpl.java
new file mode 100644
index 0000000..67eb698
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.annotation.model/src/org/eclipse/emf/emfforms/spi/view/annotation/model/impl/VAnnotationPackageImpl.java
@@ -0,0 +1,232 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ */
+package org.eclipse.emf.emfforms.spi.view.annotation.model.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
+import org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotation;
+import org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotationFactory;
+import org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class VAnnotationPackageImpl extends EPackageImpl implements VAnnotationPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private EClass annotationEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>
+	 * Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotationPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private VAnnotationPackageImpl() {
+		super(eNS_URI, VAnnotationFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 *
+	 * <p>
+	 * This method is used to initialize {@link VAnnotationPackage#eINSTANCE} when that field is accessed.
+	 * 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()
+	 * @generated
+	 */
+	public static VAnnotationPackage init() {
+		if (isInited) {
+			return (VAnnotationPackage) EPackage.Registry.INSTANCE.getEPackage(VAnnotationPackage.eNS_URI);
+		}
+
+		// Obtain or create and register package
+		final VAnnotationPackageImpl theAnnotationPackage = (VAnnotationPackageImpl) (EPackage.Registry.INSTANCE
+			.get(eNS_URI) instanceof VAnnotationPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI)
+				: new VAnnotationPackageImpl());
+
+		isInited = true;
+
+		// Initialize simple dependencies
+		VViewPackage.eINSTANCE.eClass();
+
+		// Create package meta-data objects
+		theAnnotationPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theAnnotationPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theAnnotationPackage.freeze();
+
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(VAnnotationPackage.eNS_URI, theAnnotationPackage);
+		return theAnnotationPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EClass getAnnotation() {
+		return annotationEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getAnnotation_Key() {
+		return (EAttribute) annotationEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getAnnotation_Value() {
+		return (EAttribute) annotationEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public VAnnotationFactory getAnnotationFactory() {
+		return (VAnnotationFactory) getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package. This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) {
+			return;
+		}
+		isCreated = true;
+
+		// Create classes and their features
+		annotationEClass = createEClass(ANNOTATION);
+		createEAttribute(annotationEClass, ANNOTATION__KEY);
+		createEAttribute(annotationEClass, ANNOTATION__VALUE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model. This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) {
+			return;
+		}
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		final VViewPackage theViewPackage = (VViewPackage) EPackage.Registry.INSTANCE.getEPackage(VViewPackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+		annotationEClass.getESuperTypes().add(theViewPackage.getAttachment());
+
+		// Initialize classes and features; add operations and parameters
+		initEClass(annotationEClass, VAnnotation.class, "Annotation", !IS_ABSTRACT, !IS_INTERFACE, //$NON-NLS-1$
+			IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getAnnotation_Key(), ecorePackage.getEString(), "key", null, 1, 1, VAnnotation.class, //$NON-NLS-1$
+			!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getAnnotation_Value(), ecorePackage.getEString(), "value", null, 0, 1, VAnnotation.class, //$NON-NLS-1$
+			!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} // VAnnotationPackageImpl
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model/src/org/eclipse/emf/emfforms/spi/view/annotation/model/util/AnnotationAdapterFactory.java b/bundles/org.eclipse.emfforms.view.annotation.model/src/org/eclipse/emf/emfforms/spi/view/annotation/model/util/AnnotationAdapterFactory.java
new file mode 100644
index 0000000..396ed09
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.annotation.model/src/org/eclipse/emf/emfforms/spi/view/annotation/model/util/AnnotationAdapterFactory.java
@@ -0,0 +1,158 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ */
+package org.eclipse.emf.emfforms.spi.view.annotation.model.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+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.spi.model.VAttachment;
+import org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotation;
+import org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotationPackage
+ * @generated
+ */
+public class AnnotationAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected static VAnnotationPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public AnnotationAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = VAnnotationPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * 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
+	 */
+	@Override
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject) object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected AnnotationSwitch<Adapter> modelSwitch = new AnnotationSwitch<Adapter>() {
+		@Override
+		public Adapter caseAnnotation(VAnnotation object) {
+			return createAnnotationAdapter();
+		}
+
+		@Override
+		public Adapter caseAttachment(VAttachment object) {
+			return createAttachmentAdapter();
+		}
+
+		@Override
+		public Adapter defaultCase(EObject object) {
+			return createEObjectAdapter();
+		}
+	};
+
+	/**
+	 * 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
+	 */
+	@Override
+	public Adapter createAdapter(Notifier target) {
+		return modelSwitch.doSwitch((EObject) target);
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '
+	 * {@link org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotation <em>Annotation</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.emfforms.spi.view.annotation.model.VAnnotation
+	 * @generated
+	 */
+	public Adapter createAnnotationAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecp.view.spi.model.VAttachment
+	 * <em>Attachment</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.spi.model.VAttachment
+	 * @generated
+	 */
+	public Adapter createAttachmentAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} // AnnotationAdapterFactory
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model/src/org/eclipse/emf/emfforms/spi/view/annotation/model/util/AnnotationSwitch.java b/bundles/org.eclipse.emfforms.view.annotation.model/src/org/eclipse/emf/emfforms/spi/view/annotation/model/util/AnnotationSwitch.java
new file mode 100644
index 0000000..fa09361
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.annotation.model/src/org/eclipse/emf/emfforms/spi/view/annotation/model/util/AnnotationSwitch.java
@@ -0,0 +1,149 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ */
+package org.eclipse.emf.emfforms.spi.view.annotation.model.util;
+
+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.spi.model.VAttachment;
+import org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotation;
+import org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.emfforms.spi.view.annotation.model.VAnnotationPackage
+ * @generated
+ */
+public class AnnotationSwitch<T> extends Switch<T> {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected static VAnnotationPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public AnnotationSwitch() {
+		if (modelPackage == null) {
+			modelPackage = VAnnotationPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * 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
+	 */
+	@Override
+	protected boolean isSwitchFor(EPackage ePackage) {
+		return ePackage == modelPackage;
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that
+	 * result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	@Override
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+		case VAnnotationPackage.ANNOTATION: {
+			final VAnnotation annotation = (VAnnotation) theEObject;
+			T result = caseAnnotation(annotation);
+			if (result == null) {
+				result = caseAttachment(annotation);
+			}
+			if (result == null) {
+				result = defaultCase(theEObject);
+			}
+			return result;
+		}
+		default:
+			return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Annotation</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>Annotation</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseAnnotation(VAnnotation object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Attachment</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>Attachment</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseAttachment(VAttachment object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * 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)
+	 * @generated
+	 */
+	@Override
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} // AnnotationSwitch
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.checkstyle b/bundles/org.eclipse.emfforms.view.model.localization/.checkstyle
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.checkstyle
copy to bundles/org.eclipse.emfforms.view.model.localization/.checkstyle
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.classpath b/bundles/org.eclipse.emfforms.view.model.localization/.classpath
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.classpath
copy to bundles/org.eclipse.emfforms.view.model.localization/.classpath
diff --git a/bundles/org.eclipse.emfforms.view.model.localization/.project b/bundles/org.eclipse.emfforms.view.model.localization/.project
new file mode 100644
index 0000000..e274fdc
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.model.localization/.project
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.view.model.localization</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/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.emfforms.view.model.localization/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.resources.prefs
copy to bundles/org.eclipse.emfforms.view.model.localization/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.emfforms.view.model.localization/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.core.runtime.prefs
copy to bundles/org.eclipse.emfforms.view.model.localization/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.view.model.localization/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.core.prefs
copy to bundles/org.eclipse.emfforms.view.model.localization/.settings/org.eclipse.jdt.core.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.emfforms.view.model.localization/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.jdt.launching.prefs
copy to bundles/org.eclipse.emfforms.view.model.localization/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.emfforms.view.model.localization/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs
copy to bundles/org.eclipse.emfforms.view.model.localization/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.emfforms.view.model.localization/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to bundles/org.eclipse.emfforms.view.model.localization/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.view.model.localization/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.api.tools.prefs
copy to bundles/org.eclipse.emfforms.view.model.localization/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.emfforms.view.model.localization/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/.settings/org.eclipse.pde.prefs
copy to bundles/org.eclipse.emfforms.view.model.localization/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..ace384e
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.model.localization/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMFForms View Localization
+Bundle-SymbolicName: org.eclipse.emfforms.view.model.localization;singleton:=true
+Bundle-Version: 1.6.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.5.0,2.0.0)"
+Import-Package: org.eclipse.emfforms.spi.common.locale;version="1.6.0",
+ org.eclipse.emfforms.spi.common.report;version="1.6.0",
+ org.osgi.framework;version="1.5.0"
+Export-Package: org.eclipse.emfforms.internal.view.model.localization;
+ version="1.6.0";x-internal:=true
diff --git a/bundles/org.eclipse.emf.ecp.view.table.editor/about.html b/bundles/org.eclipse.emfforms.view.model.localization/about.html
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.table.editor/about.html
copy to bundles/org.eclipse.emfforms.view.model.localization/about.html
diff --git a/bundles/org.eclipse.emfforms.view.model.localization/build.properties b/bundles/org.eclipse.emfforms.view.model.localization/build.properties
new file mode 100644
index 0000000..e5a949c
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.model.localization/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.view.model.localization/plugin.xml b/bundles/org.eclipse.emfforms.view.model.localization/plugin.xml
new file mode 100644
index 0000000..6617abd
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.model.localization/plugin.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+   <extension
+         point="org.eclipse.emf.ecp.view.context.viewServices">
+      <viewService
+            class="org.eclipse.emfforms.internal.view.model.localization.LocalizationViewModelService">
+      </viewService>
+   </extension>
+
+</plugin>
diff --git a/bundles/org.eclipse.emfforms.view.model.localization/pom.xml b/bundles/org.eclipse.emfforms.view.model.localization/pom.xml
new file mode 100644
index 0000000..d4c07db
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.model.localization/pom.xml
@@ -0,0 +1,16 @@
+<?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.6.0-SNAPSHOT</version>
+    <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
+  </parent>
+
+  <artifactId>org.eclipse.emfforms.view.model.localization</artifactId>
+<packaging>eclipse-plugin</packaging>
+</project>
diff --git a/bundles/org.eclipse.emfforms.view.model.localization/src/org/eclipse/emfforms/internal/view/model/localization/LocalizationViewModelService.java b/bundles/org.eclipse.emfforms.view.model.localization/src/org/eclipse/emfforms/internal/view/model/localization/LocalizationViewModelService.java
new file mode 100644
index 0000000..fc8192c
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.view.model.localization/src/org/eclipse/emfforms/internal/view/model/localization/LocalizationViewModelService.java
@@ -0,0 +1,190 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.view.model.localization;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+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.LocalizationAdapter;
+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.VElement;
+import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
+import org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleChangeListener;
+import org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleProvider;
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * LocalizationViewModelService which will localize the view model.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class LocalizationViewModelService implements ViewModelService, EMFFormsLocaleChangeListener {
+
+	private EMFFormsLocaleProvider localeProvider;
+	private ServiceReference<EMFFormsLocaleProvider> localeServiceReference;
+	private BundleContext bundleContext;
+	private VElement view;
+	private ReportService reportService;
+	private ServiceReference<ReportService> reportServiceReference;
+
+	/**
+	 * Default constructor.
+	 */
+	public LocalizationViewModelService() {
+		super();
+		final Bundle bundle = FrameworkUtil.getBundle(getClass());
+		if (bundle == null) {
+			return;
+		}
+		bundleContext = bundle.getBundleContext();
+		if (bundleContext == null) {
+			return;
+		}
+		localeServiceReference = bundleContext.getServiceReference(EMFFormsLocaleProvider.class);
+		if (localeServiceReference == null) {
+			return;
+		}
+		localeProvider = bundleContext.getService(localeServiceReference);
+
+		reportServiceReference = bundleContext.getServiceReference(ReportService.class);
+		reportService = bundleContext.getService(reportServiceReference);
+
+		localeProvider.addEMFFormsLocaleChangeListener(this);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelService#instantiate(org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
+	 */
+	@Override
+	public void instantiate(ViewModelContext context) {
+		view = context.getViewModel();
+		final LocalizationAdapter adapter = getLocalizationAdapter(view);
+		localizeView(adapter, view);
+
+		context.registerViewChangeListener(new ModelChangeListener() {
+
+			@Override
+			public void notifyChange(ModelChangeNotification notification) {
+				if (notification.getRawNotification().getFeature() == VViewPackage.eINSTANCE.getElement_Name()) {
+					localize(adapter, (VElement) notification.getNotifier());
+				} else if (notification.getRawNotification().getEventType() == Notification.ADD
+					|| notification.getRawNotification().getEventType() == Notification.ADD_MANY) {
+					for (final EObject eObject : notification.getNewEObjects()) {
+						if (VElement.class.isInstance(eObject)) {
+							localize(adapter, VElement.class.cast(eObject));
+							checkContents(adapter, VElement.class.cast(eObject));
+						}
+					}
+				}
+			}
+		});
+	}
+
+	private void localizeView(LocalizationAdapter adapter, final VElement view) {
+		localize(adapter, view);
+		checkContents(adapter, view);
+	}
+
+	private LocalizationAdapter getLocalizationAdapter(VElement view) {
+		for (final Adapter adapter : view.eAdapters()) {
+			if (LocalizationAdapter.class.isInstance(adapter)) {
+				return (LocalizationAdapter) adapter;
+			}
+		}
+		return null;
+	}
+
+	private void checkContents(final LocalizationAdapter adapter, final VElement vElementRoot) {
+		final TreeIterator<EObject> eAllContents = vElementRoot.eAllContents();
+		while (eAllContents.hasNext()) {
+			final EObject eObject = eAllContents.next();
+			if (VElement.class.isInstance(eObject)) {
+				final VElement vElement = VElement.class.cast(eObject);
+				localize(adapter, vElement);
+			}
+		}
+	}
+
+	/**
+	 * The actual method localizing a {@link VElement}.
+	 *
+	 * @param localizationAdapter The LocalizationAdapter to use for localization
+	 * @param vElement The {@link VElement} to localize
+	 */
+	protected void localize(LocalizationAdapter localizationAdapter, final VElement vElement) {
+		if (vElement.getName() == null) {
+			vElement.setLabel(""); //$NON-NLS-1$
+		} else if (vElement.getName().startsWith("%")) { //$NON-NLS-1$
+			if (localizationAdapter != null) {
+				vElement.setLabel(localizationAdapter.localize(vElement.getName().substring(1)));
+			} else {
+				reportService.report(new AbstractReport(
+					"No LocalizationAdapter found for the current view:" + view.toString())); //$NON-NLS-1$
+				vElement.setLabel(vElement.getName());
+			}
+		} else {
+			vElement.setLabel(vElement.getName());
+		}
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelService#dispose()
+	 */
+	@Override
+	public void dispose() {
+		if (localeProvider != null) {
+			localeProvider.removeEMFFormsLocaleChangeListener(this);
+		}
+		if (bundleContext != null && localeServiceReference != null) {
+			bundleContext.ungetService(localeServiceReference);
+		}
+		if (bundleContext != null && reportServiceReference != null) {
+			bundleContext.ungetService(reportServiceReference);
+		}
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelService#getPriority()
+	 */
+	@Override
+	public int getPriority() {
+		return -100;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleChangeListener#notifyLocaleChange()
+	 */
+	@Override
+	public void notifyLocaleChange() {
+		final LocalizationAdapter adapter = getLocalizationAdapter(view);
+		localizeView(adapter, view);
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.checkstyle b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/.checkstyle
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.checkstyle
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/.checkstyle
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/.classpath
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/.classpath
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/.project b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/.project
new file mode 100644
index 0000000..495419a
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/.project
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.spreadsheet.core.importer</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/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/.settings/org.eclipse.jdt.core.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..1a6b22b
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/.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.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/.settings/org.eclipse.pde.prefs
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/META-INF/MANIFEST.MF b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..98e9d60
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/META-INF/MANIFEST.MF
@@ -0,0 +1,20 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMFForms Spreadsheet Import
+Bundle-SymbolicName: org.eclipse.emfforms.spreadsheet.core.importer
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-ActivationPolicy: lazy
+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.emfforms.common;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.spreadsheet.core;bundle-version="[1.0.0,2.0.0)"
+Import-Package: org.apache.poi.hssf.usermodel;version="0.0.0",
+ org.apache.poi.ss.usermodel;version="0.0.0",
+ org.eclipse.core.databinding.observable.value;version="0.0.0",
+ org.eclipse.emf.ecp.view.spi.model;version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.6.0,2.0.0)",
+ org.osgi.framework;version="[1.6.0,2.0.0)"
+Export-Package: org.eclipse.emfforms.internal.spreadsheet.core.importer;version="1.0.0";x-internal:=true,
+ org.eclipse.emfforms.spi.spreadsheet.core.importer;version="1.0.0"
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/build.properties b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/build.properties
new file mode 100644
index 0000000..34d2e4d
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/pom.xml b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/pom.xml
new file mode 100644
index 0000000..4378699
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/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.emfforms.spreadsheet</groupId>
+    <artifactId>emfforms-spreadsheet-bundles-parent</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+    <relativePath>../../../releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.bundles/</relativePath>
+  </parent>
+
+  <groupId>org.eclipse.emfforms.spreadsheet</groupId>
+  <artifactId>org.eclipse.emfforms.spreadsheet.core.importer</artifactId>
+  <version>1.0.0-SNAPSHOT</version>
+  <packaging>eclipse-plugin</packaging>
+
+</project>
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/src/org/eclipse/emfforms/internal/spreadsheet/core/importer/EMFFormsSpreadsheetImporterImpl.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/src/org/eclipse/emfforms/internal/spreadsheet/core/importer/EMFFormsSpreadsheetImporterImpl.java
new file mode 100644
index 0000000..1670585
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/src/org/eclipse/emfforms/internal/spreadsheet/core/importer/EMFFormsSpreadsheetImporterImpl.java
@@ -0,0 +1,238 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.spreadsheet.core.importer;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.Comment;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.util.ECollections;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EFactory;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.URIConverter.ReadableInputStream;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+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.spreadsheet.core.EMFFormsIdProvider;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetReport;
+import org.eclipse.emfforms.spi.spreadsheet.core.importer.EMFFormsSpreadsheetImporter;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * Implementation of the {@link EMFFormsSpreadsheetImporter}.
+ *
+ * @author Eugen Neufeld
+ */
+public class EMFFormsSpreadsheetImporterImpl implements EMFFormsSpreadsheetImporter {
+
+	private final ReportService reportService;
+
+	/**
+	 * Default Constructor.
+	 */
+	public EMFFormsSpreadsheetImporterImpl() {
+		final BundleContext bundleContext = FrameworkUtil.getBundle(getClass()).getBundleContext();
+		final ServiceReference<ReportService> reportServiceReference = bundleContext
+			.getServiceReference(ReportService.class);
+		reportService = bundleContext.getService(reportServiceReference);
+	}
+
+	@Override
+	public Collection<EObject> importSpreadsheet(String filePath, EClass eClass) {
+		Workbook workbook;
+		FileInputStream file = null;
+		try {
+			file = new FileInputStream(new File(filePath));
+			workbook = new HSSFWorkbook(file);
+			return readData(workbook, eClass);
+		} catch (final IOException ex) {
+			reportService.report(new EMFFormsSpreadsheetReport(ex, EMFFormsSpreadsheetReport.ERROR));
+		} finally {
+			try {
+				file.close();
+			} catch (final IOException ex) {
+				reportService.report(new EMFFormsSpreadsheetReport(ex, EMFFormsSpreadsheetReport.ERROR));
+			}
+		}
+		return null;
+	}
+
+	private Collection<EObject> readData(Workbook workbook, EClass eClass) {
+		final ResourceSet rs = new ResourceSetImpl();
+		final AdapterFactoryEditingDomain domain = new AdapterFactoryEditingDomain(
+			new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE),
+			new BasicCommandStack(), rs);
+		rs.eAdapters().add(new AdapterFactoryEditingDomain.EditingDomainProvider(domain));
+		final Resource resource = rs.createResource(URI.createURI("VIRTUAL_URI")); //$NON-NLS-1$
+
+		final List<EObject> result = new ArrayList<EObject>();
+
+		final Map<String, Map<Integer, Integer>> mapIdToSheetIdWithRowId = parseIds(workbook);
+		if (mapIdToSheetIdWithRowId == null) {
+			for (int sheetId = 0; sheetId < workbook.getNumberOfSheets(); sheetId++) {
+				final Sheet sheet = workbook.getSheetAt(sheetId);
+				final Row labelRow = sheet.getRow(0);
+				for (int rowId = 3; rowId <= sheet.getLastRowNum(); rowId++) {
+					final Row row = sheet.getRow(rowId);
+					final EObject eObject = EcoreUtil.create(eClass);
+					resource.getContents().add(eObject);
+					extractRowInformation(labelRow, row, eObject);
+					result.add(eObject);
+
+				}
+			}
+		}
+		else {
+			for (final String eObjectId : mapIdToSheetIdWithRowId.keySet()) {
+				final Map<Integer, Integer> sheetIdToRowId = mapIdToSheetIdWithRowId.get(eObjectId);
+				final EObject eObject = EcoreUtil.create(eClass);
+				resource.getContents().add(eObject);
+				for (final Integer sheetId : sheetIdToRowId.keySet()) {
+					final Sheet sheet = workbook.getSheetAt(sheetId);
+					final Row labelRow = sheet.getRow(0);
+					final Row row = sheet.getRow(sheetIdToRowId.get(sheetId));
+					extractRowInformation(labelRow, row, eObject);
+				}
+				result.add(eObject);
+			}
+		}
+		return result;
+	}
+
+	private void extractRowInformation(final Row labelRow, final Row row, final EObject eObject) {
+		for (int columnId = 0; columnId < row.getPhysicalNumberOfCells(); columnId++) {
+			final Cell cell = labelRow.getCell(columnId);
+			if (cell == null) {
+				continue;
+			}
+			final Comment cellComment = cell.getCellComment();
+			if (cellComment == null) {
+				continue;
+			}
+			final String serializedDMR = cellComment.getString().getString();
+			final String value = row.getCell(columnId).getStringCellValue();
+			final VDomainModelReference dmr = deserializeDMR(serializedDMR);
+			try {
+				final IObservableValue observableValue = getObservableValue(dmr, eObject);
+				resolveDMR(dmr, eObject);
+				observableValue.setValue(getValue(value, observableValue.getValueType()));
+			} catch (final DatabindingFailedException ex) {
+				reportService.report(new EMFFormsSpreadsheetReport(ex, EMFFormsSpreadsheetReport.ERROR));
+			}
+		}
+	}
+
+	private void resolveDMR(VDomainModelReference dmr, EObject eObject) {
+		dmr.init(eObject);
+	}
+
+	private Map<String, Map<Integer, Integer>> parseIds(Workbook workbook) {
+		final Map<String, Map<Integer, Integer>> result = new LinkedHashMap<String, Map<Integer, Integer>>();
+
+		for (int sheetId = 0; sheetId < workbook.getNumberOfSheets(); sheetId++) {
+			final Sheet sheet = workbook.getSheetAt(sheetId);
+			final Row labelRow = sheet.getRow(0);
+			if (!EMFFormsIdProvider.ID_COLUMN.equals(labelRow.getCell(0).getStringCellValue())) {
+				return null;
+			}
+			for (int rowId = 3; rowId <= sheet.getLastRowNum(); rowId++) {
+				final Row row = sheet.getRow(rowId);
+				final String eObjectId = row.getCell(0).getStringCellValue();
+				if (!result.containsKey(eObjectId)) {
+					result.put(eObjectId, new LinkedHashMap<Integer, Integer>());
+				}
+				result.get(eObjectId).put(sheetId, rowId);
+			}
+		}
+		return result;
+	}
+
+	private Object getValue(String value, Object valueType) {
+		if (value == null || value.length() == 0) {
+			return null;
+		}
+		if (EAttribute.class.isInstance(valueType)) {
+			final EAttribute eAttribute = (EAttribute) valueType;
+			final EDataType eDataType = eAttribute.getEAttributeType();
+			final EFactory eFactory = eDataType.getEPackage().getEFactoryInstance();
+			if (eAttribute.isMany())
+			{
+				final List<Object> result = new ArrayList<Object>();
+
+				for (final String element : value.split(" ")) //$NON-NLS-1$
+				{
+					result.add(eFactory.createFromString(eDataType, element));
+				}
+
+				return result;
+			}
+			return eFactory.createFromString(eDataType, value);
+		}
+		else if (EReference.class.isInstance(valueType)) {
+			if (EReference.class.cast(valueType).isMany()) {
+				return ECollections.EMPTY_ELIST;
+			}
+			return null;
+		}
+
+		return value;
+	}
+
+	private IObservableValue getObservableValue(VDomainModelReference dmr, EObject eObject)
+		throws DatabindingFailedException {
+		final BundleContext bundleContext = FrameworkUtil.getBundle(getClass()).getBundleContext();
+		final ServiceReference<EMFFormsDatabinding> serviceReference = bundleContext
+			.getServiceReference(EMFFormsDatabinding.class);
+		final EMFFormsDatabinding emfFormsDatabinding = bundleContext.getService(serviceReference);
+		return emfFormsDatabinding.getObservableValue(dmr, eObject);
+	}
+
+	private VDomainModelReference deserializeDMR(String serializedDMR) {
+		final ResourceSet rs = new ResourceSetImpl();
+		final Resource resource = rs.createResource(URI.createURI("VIRTAUAL_URI")); //$NON-NLS-1$
+
+		final ReadableInputStream is = new ReadableInputStream(serializedDMR, "UTF-8"); //$NON-NLS-1$
+		try {
+			resource.load(is, null);
+		} catch (final IOException ex) {
+			reportService.report(new EMFFormsSpreadsheetReport(ex, EMFFormsSpreadsheetReport.ERROR));
+		}
+		return (VDomainModelReference) resource.getContents().get(0);
+	}
+}
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/src/org/eclipse/emfforms/spi/spreadsheet/core/importer/EMFFormsSpreadsheetImporter.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/src/org/eclipse/emfforms/spi/spreadsheet/core/importer/EMFFormsSpreadsheetImporter.java
new file mode 100644
index 0000000..089938c
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer/src/org/eclipse/emfforms/spi/spreadsheet/core/importer/EMFFormsSpreadsheetImporter.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.spreadsheet.core.importer;
+
+import java.util.Collection;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emfforms.internal.spreadsheet.core.importer.EMFFormsSpreadsheetImporterImpl;
+
+/**
+ * Entry point for triggering the import from an Spreadsheet document.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public interface EMFFormsSpreadsheetImporter {
+	/**
+	 * Singleton to get access to the importer.
+	 */
+	EMFFormsSpreadsheetImporter INSTANCE = new EMFFormsSpreadsheetImporterImpl();
+
+	/**
+	 * Starts the import from an Spreadsheet document.
+	 *
+	 * @param filePath The path to the file to read from.
+	 * @param eClass The {@link EClass} of the stored objects
+	 * @return The Collection of all read objects
+	 */
+	Collection<EObject> importSpreadsheet(String filePath, EClass eClass);
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.checkstyle b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/.checkstyle
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.checkstyle
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/.checkstyle
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/.classpath
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/.classpath
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/.project b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/.project
new file mode 100644
index 0000000..e385170
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/.project
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.spreadsheet.core.renderer.categorization</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>com.wuetherich.osgi.ds.annotations.dsAnnotationBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<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>com.wuetherich.osgi.ds.annotations.dsAnnotationNature</nature>
+		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
+	</natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/.settings/org.eclipse.jdt.core.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..1a6b22b
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/.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.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..8537de3
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/META-INF/MANIFEST.MF
@@ -0,0 +1,18 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMFForms Categorization
+Bundle-SymbolicName: org.eclipse.emfforms.spreadsheet.core.renderer.categorization
+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.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.spreadsheet.core;bundle-version="[1.0.0,2.0.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Import-Package: org.eclipse.emf.ecp.view.spi.context;version="[1.6.0,2.0.0)",
+ org.osgi.framework;version="[1.6.0,2.0.0)",
+ org.osgi.service.component.annotations;version="[1.2.0,2.0.0)"
+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
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.categorization.EMFFormsCategorizationElementRendererService.xml b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.categorization.EMFFormsCategorizationElementRendererService.xml
new file mode 100644
index 0000000..3d5ff16
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.categorization.EMFFormsCategorizationElementRendererService.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--Generated by DS Annotation Builder [src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/categorization/EMFFormsCategorizationElementRendererService.java]-->
+<scr:component name="org.eclipse.emfforms.internal.spreadsheet.core.renderer.categorization.EMFFormsCategorizationElementRendererService" activate="activate" deactivate="deactivate" xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0">
+    <service>
+        <provide interface="org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService"/>
+    </service>
+    <reference name="ReportService" interface="org.eclipse.emfforms.spi.common.report.ReportService" bind="setReportService"/>
+    <implementation class="org.eclipse.emfforms.internal.spreadsheet.core.renderer.categorization.EMFFormsCategorizationElementRendererService"/>
+</scr:component>
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.categorization.EMFFormsCategorizationRendererService.xml b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.categorization.EMFFormsCategorizationRendererService.xml
new file mode 100644
index 0000000..360b542
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.categorization.EMFFormsCategorizationRendererService.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--Generated by DS Annotation Builder [src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/categorization/EMFFormsCategorizationRendererService.java]-->
+<scr:component name="org.eclipse.emfforms.internal.spreadsheet.core.renderer.categorization.EMFFormsCategorizationRendererService" activate="activate" deactivate="deactivate" xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0">
+    <service>
+        <provide interface="org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService"/>
+    </service>
+    <reference name="ReportService" interface="org.eclipse.emfforms.spi.common.report.ReportService" bind="setReportService"/>
+    <implementation class="org.eclipse.emfforms.internal.spreadsheet.core.renderer.categorization.EMFFormsCategorizationRendererService"/>
+</scr:component>
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.categorization.EMFFormsCategoryRendererService.xml b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.categorization.EMFFormsCategoryRendererService.xml
new file mode 100644
index 0000000..aa6d516
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.categorization.EMFFormsCategoryRendererService.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--Generated by DS Annotation Builder [src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/categorization/EMFFormsCategoryRendererService.java]-->
+<scr:component name="org.eclipse.emfforms.internal.spreadsheet.core.renderer.categorization.EMFFormsCategoryRendererService" activate="activate" deactivate="deactivate" xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0">
+    <service>
+        <provide interface="org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService"/>
+    </service>
+    <reference name="ReportService" interface="org.eclipse.emfforms.spi.common.report.ReportService" bind="setReportService"/>
+    <reference name="EmfFormsIdProvider" interface="org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsIdProvider" bind="setEmfFormsIdProvider"/>
+    <implementation class="org.eclipse.emfforms.internal.spreadsheet.core.renderer.categorization.EMFFormsCategoryRendererService"/>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/build.properties b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/build.properties
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/build.properties
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/build.properties
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/pom.xml b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/pom.xml
new file mode 100644
index 0000000..a87d78e
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/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.emfforms.spreadsheet</groupId>
+    <artifactId>emfforms-spreadsheet-bundles-parent</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+    <relativePath>../../../releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.bundles/</relativePath>
+  </parent>
+
+  <groupId>org.eclipse.emfforms.spreadsheet</groupId>
+  <artifactId>org.eclipse.emfforms.spreadsheet.core.renderer.categorization</artifactId>
+  <version>1.0.0-SNAPSHOT</version>
+  <packaging>eclipse-plugin</packaging>
+
+</project>
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/categorization/EMFFormsCategorizationElementRenderer.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/categorization/EMFFormsCategorizationElementRenderer.java
new file mode 100644
index 0000000..cc7021c
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/categorization/EMFFormsCategorizationElementRenderer.java
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.spreadsheet.core.renderer.categorization;
+
+import org.apache.poi.ss.usermodel.Workbook;
+import org.eclipse.emf.ecp.view.spi.categorization.model.VAbstractCategorization;
+import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationElement;
+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;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsAbstractSpreadsheetRenderer;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsNoRendererException;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRenderTarget;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererFactory;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetReport;
+
+/**
+ * Spreadsheet renderer for {@link VCategorizationElement}.
+ *
+ * @author Eugen Neufeld
+ */
+public class EMFFormsCategorizationElementRenderer extends EMFFormsAbstractSpreadsheetRenderer<VCategorizationElement> {
+
+	private final EMFFormsSpreadsheetRendererFactory rendererFactory;
+	private final ReportService reportService;
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param rendererFactory The EMFFormsSpreadsheetRendererFactory to use
+	 * @param reportService The {@link ReportService}
+	 */
+	public EMFFormsCategorizationElementRenderer(EMFFormsSpreadsheetRendererFactory rendererFactory,
+		ReportService reportService) {
+		this.rendererFactory = rendererFactory;
+		this.reportService = reportService;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsAbstractSpreadsheetRenderer#render(org.apache.poi.ss.usermodel.Workbook,
+	 *      org.eclipse.emf.ecp.view.spi.model.VElement, org.eclipse.emf.ecp.view.spi.context.ViewModelContext,
+	 *      org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRenderTarget)
+	 */
+	@Override
+	public int render(Workbook workbook, VCategorizationElement vElement, ViewModelContext viewModelContext,
+		EMFFormsSpreadsheetRenderTarget renderTarget) {
+		int numberRenderedColumns = 0;
+		for (final VAbstractCategorization abstractCategorization : vElement.getCategorizations()) {
+			try {
+				final EMFFormsAbstractSpreadsheetRenderer<VElement> renderer = rendererFactory.getRendererInstance(
+					abstractCategorization, viewModelContext);
+				numberRenderedColumns += renderer.render(workbook, abstractCategorization, viewModelContext,
+					renderTarget);
+			} catch (final EMFFormsNoRendererException ex) {
+				reportService.report(new EMFFormsSpreadsheetReport(ex, EMFFormsSpreadsheetReport.ERROR));
+			}
+		}
+		return numberRenderedColumns;
+	}
+
+}
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/categorization/EMFFormsCategorizationElementRendererService.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/categorization/EMFFormsCategorizationElementRendererService.java
new file mode 100644
index 0000000..867b4fd
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/categorization/EMFFormsCategorizationElementRendererService.java
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.spreadsheet.core.renderer.categorization;
+
+import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationElement;
+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;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsAbstractSpreadsheetRenderer;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererFactory;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
+
+/**
+ * The {@link EMFFormsSpreadsheetRendererService} for {@link VCategorizationElement}.
+ *
+ * @author Eugen Neufeld
+ */
+@Component
+public class EMFFormsCategorizationElementRendererService implements
+	EMFFormsSpreadsheetRendererService<VCategorizationElement> {
+
+	private EMFFormsSpreadsheetRendererFactory emfformsSpreadsheetRendererFactory;
+
+	private ReportService reportService;
+
+	/**
+	 * The ReportService to use.
+	 *
+	 * @param reportService the reportService to set
+	 */
+	@Reference
+	protected void setReportService(ReportService reportService) {
+		this.reportService = reportService;
+	}
+
+	private ServiceReference<EMFFormsSpreadsheetRendererFactory> serviceReference;
+
+	/**
+	 * The activate method.
+	 *
+	 * @param bundleContext The BundleContext
+	 */
+	@Activate
+	public void activate(BundleContext bundleContext) {
+		serviceReference = bundleContext
+			.getServiceReference(EMFFormsSpreadsheetRendererFactory.class);
+		emfformsSpreadsheetRendererFactory = bundleContext
+			.getService(serviceReference);
+	}
+
+	/**
+	 * The deactivate method.
+	 *
+	 * @param bundleContext The BundleContext
+	 */
+	@Deactivate
+	public void deactivate(BundleContext bundleContext) {
+		bundleContext.ungetService(serviceReference);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (VCategorizationElement.class.isInstance(vElement)) {
+			return 1;
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService#getRendererInstance(VElement,ViewModelContext)
+	 */
+	@Override
+	public EMFFormsAbstractSpreadsheetRenderer<VCategorizationElement> getRendererInstance(VCategorizationElement vElement,
+		ViewModelContext viewModelContext) {
+		return new EMFFormsCategorizationElementRenderer(emfformsSpreadsheetRendererFactory, reportService);
+	}
+
+}
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/categorization/EMFFormsCategorizationRenderer.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/categorization/EMFFormsCategorizationRenderer.java
new file mode 100644
index 0000000..fef9cf0
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/categorization/EMFFormsCategorizationRenderer.java
@@ -0,0 +1,73 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.spreadsheet.core.renderer.categorization;
+
+import org.apache.poi.ss.usermodel.Workbook;
+import org.eclipse.emf.ecp.view.spi.categorization.model.VAbstractCategorization;
+import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorization;
+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;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsAbstractSpreadsheetRenderer;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsNoRendererException;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRenderTarget;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererFactory;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetReport;
+
+/**
+ * Spreadsheet renderer for {@link VCategorization}.
+ *
+ * @author Eugen Neufeld
+ */
+public class EMFFormsCategorizationRenderer extends EMFFormsAbstractSpreadsheetRenderer<VCategorization> {
+
+	private final EMFFormsSpreadsheetRendererFactory rendererFactory;
+	private final ReportService reportService;
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param rendererFactory The EMFFormsSpreadsheetRendererFactory to use
+	 * @param reportService The {@link ReportService}
+	 */
+	public EMFFormsCategorizationRenderer(EMFFormsSpreadsheetRendererFactory rendererFactory,
+		ReportService reportService) {
+		this.rendererFactory = rendererFactory;
+		this.reportService = reportService;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsAbstractSpreadsheetRenderer#render(org.apache.poi.ss.usermodel.Workbook,
+	 *      org.eclipse.emf.ecp.view.spi.model.VElement, org.eclipse.emf.ecp.view.spi.context.ViewModelContext,
+	 *      org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRenderTarget)
+	 */
+	@Override
+	public int render(Workbook workbook, VCategorization vElement, ViewModelContext viewModelContext,
+		EMFFormsSpreadsheetRenderTarget renderTarget) {
+		int numberRenderedColumns = 0;
+		for (final VAbstractCategorization abstractCategorization : vElement.getCategorizations()) {
+			try {
+				final EMFFormsAbstractSpreadsheetRenderer<VElement> renderer = rendererFactory.getRendererInstance(
+					abstractCategorization, viewModelContext);
+				numberRenderedColumns += renderer.render(workbook, abstractCategorization, viewModelContext,
+					renderTarget);
+			} catch (final EMFFormsNoRendererException ex) {
+				reportService.report(new EMFFormsSpreadsheetReport(ex, EMFFormsSpreadsheetReport.ERROR));
+			}
+		}
+
+		return numberRenderedColumns;
+	}
+
+}
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/categorization/EMFFormsCategorizationRendererService.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/categorization/EMFFormsCategorizationRendererService.java
new file mode 100644
index 0000000..8ca1045
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/categorization/EMFFormsCategorizationRendererService.java
@@ -0,0 +1,99 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.spreadsheet.core.renderer.categorization;
+
+import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorization;
+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;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsAbstractSpreadsheetRenderer;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererFactory;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
+
+/**
+ * The {@link EMFFormsSpreadsheetRendererService} for {@link VCategorization}.
+ *
+ * @author Eugen Neufeld
+ */
+@Component
+public class EMFFormsCategorizationRendererService implements EMFFormsSpreadsheetRendererService<VCategorization> {
+
+	private EMFFormsSpreadsheetRendererFactory emfformsSpreadsheetRendererFactory;
+
+	private ReportService reportService;
+
+	/**
+	 * The ReportService to use.
+	 *
+	 * @param reportService the reportService to set
+	 */
+	@Reference
+	protected void setReportService(ReportService reportService) {
+		this.reportService = reportService;
+	}
+
+	private ServiceReference<EMFFormsSpreadsheetRendererFactory> serviceReference;
+
+	/**
+	 * The activate method.
+	 *
+	 * @param bundleContext The BundleContext
+	 */
+	@Activate
+	public void activate(BundleContext bundleContext) {
+		serviceReference = bundleContext
+			.getServiceReference(EMFFormsSpreadsheetRendererFactory.class);
+		emfformsSpreadsheetRendererFactory = bundleContext
+			.getService(serviceReference);
+	}
+
+	/**
+	 * The deactivate method.
+	 *
+	 * @param bundleContext The BundleContext
+	 */
+	@Deactivate
+	public void deactivate(BundleContext bundleContext) {
+		bundleContext.ungetService(serviceReference);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (VCategorization.class.isInstance(vElement)) {
+			return 1;
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService#getRendererInstance(VElement,ViewModelContext)
+	 */
+	@Override
+	public EMFFormsAbstractSpreadsheetRenderer<VCategorization> getRendererInstance(VCategorization vElement,
+		ViewModelContext viewModelContext) {
+		return new EMFFormsCategorizationRenderer(emfformsSpreadsheetRendererFactory, reportService);
+	}
+
+}
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/categorization/EMFFormsCategoryRenderer.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/categorization/EMFFormsCategoryRenderer.java
new file mode 100644
index 0000000..1616659
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/categorization/EMFFormsCategoryRenderer.java
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.spreadsheet.core.renderer.categorization;
+
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.ss.util.WorkbookUtil;
+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.VElement;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsAbstractSpreadsheetRenderer;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsIdProvider;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsNoRendererException;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRenderTarget;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererFactory;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetReport;
+
+/**
+ * Spreadsheet renderer for {@link VCategory}.
+ *
+ * @author Eugen Neufeld
+ */
+public class EMFFormsCategoryRenderer extends EMFFormsAbstractSpreadsheetRenderer<VCategory> {
+
+	private final EMFFormsSpreadsheetRendererFactory rendererFactory;
+	private final EMFFormsIdProvider idProvider;
+	private final ReportService reportService;
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param rendererFactory The EMFFormsSpreadsheetRendererFactory to use
+	 * @param idProvider The {@link EMFFormsIdProvider} to use
+	 * @param reportService The {@link ReportService} to use
+	 */
+	public EMFFormsCategoryRenderer(EMFFormsSpreadsheetRendererFactory rendererFactory, EMFFormsIdProvider idProvider,
+		ReportService reportService) {
+		this.rendererFactory = rendererFactory;
+		this.idProvider = idProvider;
+		this.reportService = reportService;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsAbstractSpreadsheetRenderer#render(org.apache.poi.ss.usermodel.Workbook,
+	 *      org.eclipse.emf.ecp.view.spi.model.VElement, org.eclipse.emf.ecp.view.spi.context.ViewModelContext,
+	 *      org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRenderTarget)
+	 */
+	@Override
+	public int render(Workbook workbook, VCategory vElement, ViewModelContext viewModelContext,
+		EMFFormsSpreadsheetRenderTarget renderTarget) {
+		int numberRenderedColumns = 0;
+		try {
+			final EMFFormsAbstractSpreadsheetRenderer<VElement> renderer = rendererFactory.getRendererInstance(
+				vElement.getComposite(), viewModelContext);
+			final String sheetName = WorkbookUtil.createSafeSheetName(vElement.getName());
+			final Sheet sheet = workbook.createSheet(sheetName);
+			sheet.createRow(0).getCell(0, Row.CREATE_NULL_AS_BLANK).setCellValue(EMFFormsIdProvider.ID_COLUMN);
+			sheet.createRow(1).getCell(0, Row.CREATE_NULL_AS_BLANK)
+				.setCellValue(idProvider.getId(viewModelContext.getDomainModel()));
+			numberRenderedColumns += renderer.render(workbook, vElement.getComposite(), viewModelContext,
+				new EMFFormsSpreadsheetRenderTarget(sheetName, 1, 1));
+		} catch (final EMFFormsNoRendererException ex) {
+			reportService.report(new EMFFormsSpreadsheetReport(ex, EMFFormsSpreadsheetReport.ERROR));
+		}
+
+		return numberRenderedColumns;
+	}
+
+}
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/categorization/EMFFormsCategoryRendererService.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/categorization/EMFFormsCategoryRendererService.java
new file mode 100644
index 0000000..9287e34
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/categorization/EMFFormsCategoryRendererService.java
@@ -0,0 +1,111 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.spreadsheet.core.renderer.categorization;
+
+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.VElement;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsAbstractSpreadsheetRenderer;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererFactory;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsIdProvider;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
+
+/**
+ * The {@link EMFFormsSpreadsheetRendererService} for {@link VCategory}.
+ *
+ * @author Eugen Neufeld
+ */
+@Component
+public class EMFFormsCategoryRendererService implements EMFFormsSpreadsheetRendererService<VCategory> {
+
+	private EMFFormsSpreadsheetRendererFactory emfformsSpreadsheetRendererFactory;
+	private EMFFormsIdProvider emfFormsIdProvider;
+
+	private ReportService reportService;
+
+	/**
+	 * The ReportService to use.
+	 *
+	 * @param reportService the reportService to set
+	 */
+	@Reference
+	protected void setReportService(ReportService reportService) {
+		this.reportService = reportService;
+	}
+
+	private ServiceReference<EMFFormsSpreadsheetRendererFactory> serviceReference;
+
+	/**
+	 * The activate method.
+	 *
+	 * @param bundleContext The BundleContext
+	 */
+	@Activate
+	public void activate(BundleContext bundleContext) {
+		serviceReference = bundleContext
+			.getServiceReference(EMFFormsSpreadsheetRendererFactory.class);
+		emfformsSpreadsheetRendererFactory = bundleContext
+			.getService(serviceReference);
+	}
+
+	/**
+	 * The deactivate method.
+	 *
+	 * @param bundleContext The BundleContext
+	 */
+	@Deactivate
+	public void deactivate(BundleContext bundleContext) {
+		bundleContext.ungetService(serviceReference);
+	}
+
+	/**
+	 * The EMFFormsIdProvider to use.
+	 *
+	 * @param emfFormsIdProvider the EMFFormsIdProvider to set
+	 */
+	@Reference
+	protected void setEmfFormsIdProvider(EMFFormsIdProvider emfFormsIdProvider) {
+		this.emfFormsIdProvider = emfFormsIdProvider;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (VCategory.class.isInstance(vElement)) {
+			return 1;
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService#getRendererInstance(VElement,ViewModelContext)
+	 */
+	@Override
+	public EMFFormsAbstractSpreadsheetRenderer<VCategory> getRendererInstance(VCategory vElement,
+		ViewModelContext viewModelContext) {
+		return new EMFFormsCategoryRenderer(emfformsSpreadsheetRendererFactory, emfFormsIdProvider, reportService);
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.checkstyle b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/.checkstyle
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.checkstyle
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/.checkstyle
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/.classpath
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/.classpath
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/.project b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/.project
new file mode 100644
index 0000000..7fa915e
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/.project
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.spreadsheet.core.renderer.custom</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>com.wuetherich.osgi.ds.annotations.dsAnnotationBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<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>com.wuetherich.osgi.ds.annotations.dsAnnotationNature</nature>
+		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
+	</natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/.settings/org.eclipse.jdt.core.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..1a6b22b
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/.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.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..243a46c
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/META-INF/MANIFEST.MF
@@ -0,0 +1,14 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMFForms Spreadsheet Custom
+Bundle-SymbolicName: org.eclipse.emfforms.spreadsheet.core.renderer.custom
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.spreadsheet.core;bundle-version="[1.0.0,2.0.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Service-Component: OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.custom.EMFFormsSpreadsheetCustomControlRendererService.xml
+Import-Package: org.osgi.service.component.annotations;version="[1.2.0,2.0.0)"
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.emfforms.internal.spreadsheet.core.renderer.custom;version="1.0.0";x-internal:=true
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.custom.EMFFormsSpreadsheetCustomControlRendererService.xml b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.custom.EMFFormsSpreadsheetCustomControlRendererService.xml
new file mode 100644
index 0000000..f6c73b8
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.custom.EMFFormsSpreadsheetCustomControlRendererService.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--Generated by DS Annotation Builder [src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/custom/EMFFormsSpreadsheetCustomControlRendererService.java]-->
+<scr:component name="org.eclipse.emfforms.internal.spreadsheet.core.renderer.custom.EMFFormsSpreadsheetCustomControlRendererService" xmlns:scr="http://www.osgi.org/xmlns/scr/v1.0.0">
+    <implementation class="org.eclipse.emfforms.internal.spreadsheet.core.renderer.custom.EMFFormsSpreadsheetCustomControlRendererService"/>
+    <service>
+        <provide interface="org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService"/>
+    </service>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/build.properties b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/build.properties
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/build.properties
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/build.properties
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/pom.xml b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/pom.xml
new file mode 100644
index 0000000..03f1f16
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/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.emfforms.spreadsheet</groupId>
+    <artifactId>emfforms-spreadsheet-bundles-parent</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+    <relativePath>../../../releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.bundles/</relativePath>
+  </parent>
+
+  <groupId>org.eclipse.emfforms.spreadsheet</groupId>
+  <artifactId>org.eclipse.emfforms.spreadsheet.core.renderer.custom</artifactId>
+  <version>1.0.0-SNAPSHOT</version>
+  <packaging>eclipse-plugin</packaging>
+
+</project>
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/custom/EMFFormsSpreadsheetCustomControlRenderer.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/custom/EMFFormsSpreadsheetCustomControlRenderer.java
new file mode 100644
index 0000000..88de45f
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/custom/EMFFormsSpreadsheetCustomControlRenderer.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.spreadsheet.core.renderer.custom;
+
+import org.apache.poi.ss.usermodel.Workbook;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.custom.model.VCustomControl;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsAbstractSpreadsheetRenderer;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRenderTarget;
+
+/**
+ * Spreadsheet renderer for {@link VCustomControl}.
+ *
+ * @author Eugen Neufeld
+ */
+public class EMFFormsSpreadsheetCustomControlRenderer extends EMFFormsAbstractSpreadsheetRenderer<VCustomControl> {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsAbstractSpreadsheetRenderer#render(org.apache.poi.ss.usermodel.Workbook,
+	 *      org.eclipse.emf.ecp.view.spi.model.VElement, org.eclipse.emf.ecp.view.spi.context.ViewModelContext,
+	 *      org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRenderTarget)
+	 */
+	@Override
+	public int render(Workbook workbook, VCustomControl vElement, ViewModelContext viewModelContext,
+		EMFFormsSpreadsheetRenderTarget eMFFormsSpreadsheetRenderTarget) {
+		return 0;
+	}
+}
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/custom/EMFFormsSpreadsheetCustomControlRendererService.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/custom/EMFFormsSpreadsheetCustomControlRendererService.java
new file mode 100644
index 0000000..49aa600
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/custom/EMFFormsSpreadsheetCustomControlRendererService.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.spreadsheet.core.renderer.custom;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.custom.model.VCustomControl;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsAbstractSpreadsheetRenderer;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService;
+import org.osgi.service.component.annotations.Component;
+
+/**
+ * The {@link EMFFormsSpreadsheetRendererService} for {@link VCustomControl}.
+ *
+ * @author Eugen Neufeld
+ */
+@Component
+public class EMFFormsSpreadsheetCustomControlRendererService implements EMFFormsSpreadsheetRendererService<VCustomControl> {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService#isApplicable(org.eclipse.emf.ecp.view.spi.model.VElement,
+	 *      org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement,
+		ViewModelContext viewModelContext) {
+		if (VCustomControl.class.isInstance(vElement)) {
+			return 2;
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService#getRendererInstance(org.eclipse.emf.ecp.view.spi.model.VElement,
+	 *      org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
+	 */
+	@Override
+	public EMFFormsAbstractSpreadsheetRenderer<VCustomControl> getRendererInstance(VCustomControl vElement,
+		ViewModelContext viewModelContext) {
+		return new EMFFormsSpreadsheetCustomControlRenderer();
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.checkstyle b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/.checkstyle
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.checkstyle
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/.checkstyle
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/.classpath
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/.classpath
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/.project b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/.project
new file mode 100644
index 0000000..7c40c3e
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/.project
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.spreadsheet.core.renderer.table</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>com.wuetherich.osgi.ds.annotations.dsAnnotationBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<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>com.wuetherich.osgi.ds.annotations.dsAnnotationNature</nature>
+		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
+	</natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/.settings/org.eclipse.jdt.core.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..1a6b22b
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/.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.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..838703f
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/META-INF/MANIFEST.MF
@@ -0,0 +1,19 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMFForms Spreadsheet Table
+Bundle-SymbolicName: org.eclipse.emfforms.spreadsheet.core.renderer.table
+Bundle-Version: 1.0.0.qualifier
+Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.spreadsheet.core;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.emfforms.spreadsheet.core.renderer;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.6.0,2.0.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Service-Component: OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.table.EMFFormsSpreadsheetTableControlRendererService.xml
+Import-Package: org.osgi.framework;version="1.8.0",
+ org.osgi.service.component.annotations;version="[1.2.0,2.0.0)"
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.emfforms.internal.spreadsheet.core.renderer.table;version="1.0.0";x-internal:=true
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.table.EMFFormsSpreadsheetTableControlRendererService.xml b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.table.EMFFormsSpreadsheetTableControlRendererService.xml
new file mode 100644
index 0000000..ea2178e
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.table.EMFFormsSpreadsheetTableControlRendererService.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--Generated by DS Annotation Builder [src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/table/EMFFormsSpreadsheetTableControlRendererService.java]-->
+<scr:component name="org.eclipse.emfforms.internal.spreadsheet.core.renderer.table.EMFFormsSpreadsheetTableControlRendererService" activate="activate" deactivate="deactivate" xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0">
+    <service>
+        <provide interface="org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService"/>
+    </service>
+    <reference name="VTViewTemplateProvider" interface="org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider" bind="setVTViewTemplateProvider"/>
+    <reference name="ReportService" interface="org.eclipse.emfforms.spi.common.report.ReportService" bind="setReportService"/>
+    <reference name="EmfformsDatabinding" interface="org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding" bind="setEmfformsDatabinding"/>
+    <reference name="EmfformsLabelProvider" interface="org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider" bind="setEmfformsLabelProvider"/>
+    <implementation class="org.eclipse.emfforms.internal.spreadsheet.core.renderer.table.EMFFormsSpreadsheetTableControlRendererService"/>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/build.properties b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/build.properties
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/build.properties
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/build.properties
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/pom.xml b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/pom.xml
new file mode 100644
index 0000000..8763c23
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/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.emfforms.spreadsheet</groupId>
+    <artifactId>emfforms-spreadsheet-bundles-parent</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+    <relativePath>../../../releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.bundles/</relativePath>
+  </parent>
+
+  <groupId>org.eclipse.emfforms.spreadsheet</groupId>
+  <artifactId>org.eclipse.emfforms.spreadsheet.core.renderer.table</artifactId>
+  <version>1.0.0-SNAPSHOT</version>
+  <packaging>eclipse-plugin</packaging>
+
+</project>
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/table/EMFFormsSpreadsheetTableControlRenderer.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/table/EMFFormsSpreadsheetTableControlRenderer.java
new file mode 100644
index 0000000..3b22a76
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/table/EMFFormsSpreadsheetTableControlRenderer.java
@@ -0,0 +1,206 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.spreadsheet.core.renderer.table;
+
+import java.util.Collections;
+
+import org.apache.poi.ss.usermodel.Workbook;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+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.view.spi.context.ViewModelContext;
+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.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.model.VView;
+import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
+import org.eclipse.emf.ecp.view.spi.provider.ViewProviderHelper;
+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.model.VTableDomainModelReference;
+import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
+import org.eclipse.emfforms.internal.spreadsheet.core.EMFFormsSpreadsheetViewModelContext;
+import org.eclipse.emfforms.internal.spreadsheet.core.renderer.EMFFormsSpreadsheetControlRenderer;
+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.label.EMFFormsLabelProvider;
+import org.eclipse.emfforms.spi.core.services.label.NoLabelFoundException;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsAbstractSpreadsheetRenderer;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsExportTableParent;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsNoRendererException;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRenderTarget;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererFactory;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetReport;
+
+/**
+ * Spreadsheet renderer for {@link VTableControl}.
+ *
+ * @author Eugen Neufeld
+ */
+@SuppressWarnings("restriction")
+public class EMFFormsSpreadsheetTableControlRenderer extends EMFFormsAbstractSpreadsheetRenderer<VTableControl> {
+
+	private final EMFFormsDatabinding emfformsDatabinding;
+	private final EMFFormsLabelProvider emfformsLabelProvider;
+	private final ReportService reportService;
+	private final EMFFormsSpreadsheetRendererFactory rendererFactory;
+	private final VTViewTemplateProvider vtViewTemplateProvider;
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param emfformsDatabinding The EMFFormsDatabinding to use
+	 * @param emfformsLabelProvider The EMFFormsLabelProvider to use
+	 * @param reportService The {@link ReportService}
+	 * @param rendererFactory The EMFFormsSpreadsheetRendererFactory to use
+	 * @param vtViewTemplateProvider The VTViewTemplateProvider to use
+	 */
+	public EMFFormsSpreadsheetTableControlRenderer(EMFFormsDatabinding emfformsDatabinding,
+		EMFFormsLabelProvider emfformsLabelProvider, ReportService reportService,
+		EMFFormsSpreadsheetRendererFactory rendererFactory, VTViewTemplateProvider vtViewTemplateProvider) {
+		this.emfformsDatabinding = emfformsDatabinding;
+		this.emfformsLabelProvider = emfformsLabelProvider;
+		this.reportService = reportService;
+		this.rendererFactory = rendererFactory;
+		this.vtViewTemplateProvider = vtViewTemplateProvider;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsAbstractSpreadsheetRenderer#render(org.apache.poi.ss.usermodel.Workbook,
+	 *      org.eclipse.emf.ecp.view.spi.model.VElement, org.eclipse.emf.ecp.view.spi.context.ViewModelContext,
+	 *      org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRenderTarget)
+	 */
+
+	@Override
+	public int render(Workbook workbook, VTableControl vElement, final ViewModelContext viewModelContext,
+		EMFFormsSpreadsheetRenderTarget eMFFormsSpreadsheetRenderTarget) {
+		final EMFFormsSpreadsheetControlRenderer controlRenderer = new EMFFormsSpreadsheetControlRenderer(
+			emfformsDatabinding,
+			emfformsLabelProvider, reportService, vtViewTemplateProvider);
+		int numColumns = 0;
+		try {
+			final IObservableList observableList = emfformsDatabinding.getObservableList(
+				vElement.getDomainModelReference(), viewModelContext.getDomainModel());
+
+			final VTableDomainModelReference tableDomainModelReference = (VTableDomainModelReference) vElement
+				.getDomainModelReference();
+
+			final EMFFormsExportTableParent exportTableParent = (EMFFormsExportTableParent) viewModelContext
+				.getContextValue(EMFFormsExportTableParent.EXPORT_TABLE_PARENT);
+
+			for (int i = 0; i < Math.max(observableList.size(), 3); i++) {
+				String prefixName = (String) emfformsLabelProvider.getDisplayName(
+					tableDomainModelReference.getDomainModelReference())
+					.getValue();
+				if (prefixName == null || prefixName.length() == 0) {
+					try {
+						prefixName = EStructuralFeature.class.cast(
+							emfformsDatabinding.getValueProperty(
+								tableDomainModelReference.getDomainModelReference(),
+								viewModelContext.getDomainModel()).getValueType()).getName();
+					} catch (final DatabindingFailedException ex) {
+						reportService
+							.report(new EMFFormsSpreadsheetReport(ex, EMFFormsSpreadsheetReport.ERROR));
+					}
+				}
+
+				final VIndexDomainModelReference indexDMR = VIndexdmrFactory.eINSTANCE
+					.createIndexDomainModelReference();
+				indexDMR.setPrefixDMR(EcoreUtil.copy(tableDomainModelReference.getDomainModelReference()));
+				indexDMR.setIndex(i);
+
+				EMFFormsExportTableParent tableParent;
+				if (exportTableParent == null) {
+					tableParent = new EMFFormsExportTableParent(indexDMR, indexDMR,
+						prefixName);
+				} else {
+					final VIndexDomainModelReference wrapper = exportTableParent.getIndexDMRToExtend();
+					wrapper.setTargetDMR(indexDMR);
+					tableParent = new EMFFormsExportTableParent(indexDMR, exportTableParent.getIndexDMRToResolve(),
+						exportTableParent.getLabelPrefix()
+							+ "_" + prefixName); //$NON-NLS-1$
+				}
+				for (final VDomainModelReference domainModelReference : tableDomainModelReference
+					.getColumnDomainModelReferences()) {
+
+					final VControl vControl = VViewFactory.eINSTANCE.createControl();
+
+					vControl.setDomainModelReference(EcoreUtil.copy(domainModelReference));
+					// if (exportTableParent != null) {
+					// indexDMR.setTargetDMR(EcoreUtil.copy(domainModelReference));
+					// vControl.setDomainModelReference(EcoreUtil.copy(indexDMR));
+					// }
+					final ViewModelContext subViewModelContext = new EMFFormsSpreadsheetViewModelContext(
+						(VView) viewModelContext.getViewModel(),
+						viewModelContext.getDomainModel());
+					subViewModelContext.putContextValue(EMFFormsExportTableParent.EXPORT_TABLE_PARENT, tableParent);
+
+					numColumns += controlRenderer.render(workbook, vControl, subViewModelContext,
+						new EMFFormsSpreadsheetRenderTarget(
+							eMFFormsSpreadsheetRenderTarget.getSheetName(), eMFFormsSpreadsheetRenderTarget.getRow(),
+							eMFFormsSpreadsheetRenderTarget.getColumn()
+								+ numColumns));
+				}
+
+				if (vElement.getDetailEditing() != DetailEditing.NONE) {
+					EObject tableEntry;
+					if (observableList.size() > i) {
+						tableEntry = (EObject) observableList.get(i);
+					} else {
+						tableEntry = EcoreUtil.create(EReference.class.cast(observableList.getElementType())
+							.getEReferenceType());
+					}
+					final VView viewModel = getView(vElement, tableEntry);
+
+					final ViewModelContext subViewModelContext = new EMFFormsSpreadsheetViewModelContext(viewModel,
+						viewModelContext.getDomainModel());
+
+					subViewModelContext.putContextValue(EMFFormsExportTableParent.EXPORT_TABLE_PARENT, tableParent);
+					try {
+						final EMFFormsAbstractSpreadsheetRenderer<VElement> renderer = rendererFactory
+							.getRendererInstance(viewModel, subViewModelContext);
+						final int renderedColumns = renderer.render(workbook,
+							viewModel, subViewModelContext, new EMFFormsSpreadsheetRenderTarget(
+								eMFFormsSpreadsheetRenderTarget.getSheetName(),
+								eMFFormsSpreadsheetRenderTarget.getRow(), eMFFormsSpreadsheetRenderTarget.getColumn()
+									+ numColumns));
+
+						numColumns += renderedColumns;
+					} catch (final EMFFormsNoRendererException ex) {
+						reportService.report(new EMFFormsSpreadsheetReport(ex, EMFFormsSpreadsheetReport.ERROR));
+					}
+				}
+			}
+
+		} catch (final DatabindingFailedException ex) {
+			reportService.report(new EMFFormsSpreadsheetReport(ex, EMFFormsSpreadsheetReport.ERROR));
+		} catch (final NoLabelFoundException ex) {
+			reportService.report(new EMFFormsSpreadsheetReport(ex, EMFFormsSpreadsheetReport.ERROR));
+		}
+		return numColumns;
+	}
+
+	private VView getView(VTableControl tableControl, EObject domainObject) throws DatabindingFailedException {
+		VView detailView = tableControl.getDetailView();
+		if (detailView == null) {
+			detailView = ViewProviderHelper.getView(domainObject, Collections.<String, Object> emptyMap());
+		}
+		return detailView;
+	}
+}
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/table/EMFFormsSpreadsheetTableControlRendererService.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/table/EMFFormsSpreadsheetTableControlRendererService.java
new file mode 100644
index 0000000..a5b3d31
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/table/EMFFormsSpreadsheetTableControlRendererService.java
@@ -0,0 +1,139 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.spreadsheet.core.renderer.table;
+
+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.VTableControl;
+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;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsAbstractSpreadsheetRenderer;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererFactory;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
+
+/**
+ * The {@link EMFFormsSpreadsheetRendererService} for {@link VTableControl}.
+ *
+ * @author Eugen Neufeld
+ */
+@Component
+public class EMFFormsSpreadsheetTableControlRendererService implements
+	EMFFormsSpreadsheetRendererService<VTableControl> {
+
+	private EMFFormsDatabinding emfformsDatabinding;
+	private EMFFormsLabelProvider emfformsLabelProvider;
+	private ReportService reportService;
+	private EMFFormsSpreadsheetRendererFactory emfformsSpreadsheetRendererFactory;
+	private VTViewTemplateProvider vtViewTemplateProvider;
+
+	/**
+	 * The VTViewTemplateProvider to use.
+	 *
+	 * @param vtViewTemplateProvider the VTViewTemplateProvider to set
+	 */
+	@Reference
+	protected void setVTViewTemplateProvider(VTViewTemplateProvider vtViewTemplateProvider) {
+		this.vtViewTemplateProvider = vtViewTemplateProvider;
+	}
+
+	/**
+	 * The ReportService to use.
+	 *
+	 * @param reportService the reportService to set
+	 */
+	@Reference
+	protected void setReportService(ReportService reportService) {
+		this.reportService = reportService;
+	}
+
+	/**
+	 * Set the EMFFormsDatabinding to use.
+	 *
+	 * @param emfformsDatabinding The EMFFormsDatabinding to use
+	 */
+	@Reference
+	protected void setEmfformsDatabinding(EMFFormsDatabinding emfformsDatabinding) {
+		this.emfformsDatabinding = emfformsDatabinding;
+	}
+
+	/**
+	 * Set the EMFFormsLabelProvider to use.
+	 *
+	 * @param emfformsLabelProvider The EMFFormsLabelProvider to use
+	 */
+	@Reference
+	protected void setEmfformsLabelProvider(EMFFormsLabelProvider emfformsLabelProvider) {
+		this.emfformsLabelProvider = emfformsLabelProvider;
+	}
+
+	private ServiceReference<EMFFormsSpreadsheetRendererFactory> serviceReference;
+
+	/**
+	 * The activate method.
+	 *
+	 * @param bundleContext The BundleContext
+	 */
+	@Activate
+	public void activate(BundleContext bundleContext) {
+		serviceReference = bundleContext
+			.getServiceReference(EMFFormsSpreadsheetRendererFactory.class);
+		emfformsSpreadsheetRendererFactory = bundleContext
+			.getService(serviceReference);
+	}
+
+	/**
+	 * The deactivate method.
+	 *
+	 * @param bundleContext The BundleContext
+	 */
+	@Deactivate
+	public void deactivate(BundleContext bundleContext) {
+		bundleContext.ungetService(serviceReference);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService#isApplicable(org.eclipse.emf.ecp.view.spi.model.VElement,
+	 *      org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement,
+		ViewModelContext viewModelContext) {
+		if (VTableControl.class.isInstance(vElement)) {
+			return 2;
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService#getRendererInstance(org.eclipse.emf.ecp.view.spi.model.VElement,
+	 *      org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
+	 */
+	@Override
+	public EMFFormsAbstractSpreadsheetRenderer<VTableControl> getRendererInstance(
+		VTableControl vElement, ViewModelContext viewModelContext) {
+		return new EMFFormsSpreadsheetTableControlRenderer(emfformsDatabinding, emfformsLabelProvider, reportService,
+			emfformsSpreadsheetRendererFactory, vtViewTemplateProvider);
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.checkstyle b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/.checkstyle
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.checkstyle
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/.checkstyle
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/.classpath
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/.classpath
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/.project b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/.project
new file mode 100644
index 0000000..5927d33
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/.project
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.spreadsheet.core.renderer</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>com.wuetherich.osgi.ds.annotations.dsAnnotationBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<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>com.wuetherich.osgi.ds.annotations.dsAnnotationNature</nature>
+		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
+	</natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/.settings/org.eclipse.jdt.core.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..1a6b22b
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/.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.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..8099581
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/META-INF/MANIFEST.MF
@@ -0,0 +1,28 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Renderer
+Bundle-SymbolicName: org.eclipse.emfforms.spreadsheet.core.renderer
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+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,2.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.3.0,2.0.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Service-Component: OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.EMFFormsSpreadsheetContainerRendererService.xml,
+ OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.EMFFormsSpreadsheetControlRendererService.xml,
+ OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.EMFFormsSpreadsheetElementRendererService.xml,
+ OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.EMFFormsSpreadsheetViewRendererService.xml
+Bundle-ActivationPolicy: lazy
+Import-Package: org.eclipse.core.databinding.observable;version="0.0.0",
+ org.eclipse.core.databinding.observable.value;version="0.0.0",
+ org.eclipse.emf.ecore.xmi;version="0.0.0",
+ org.eclipse.emf.ecp.view.spi.context;version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.spi.core.services.label;version="[1.6.0,2.0.0)",
+ org.osgi.framework;version="1.6.0",
+ org.osgi.service.component.annotations;version="1.2.0"
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.EMFFormsSpreadsheetContainerRendererService.xml b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.EMFFormsSpreadsheetContainerRendererService.xml
new file mode 100644
index 0000000..3db93c7
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.EMFFormsSpreadsheetContainerRendererService.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--Generated by DS Annotation Builder [src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/EMFFormsSpreadsheetContainerRendererService.java]-->
+<scr:component name="org.eclipse.emfforms.internal.spreadsheet.core.renderer.EMFFormsSpreadsheetContainerRendererService" activate="activate" deactivate="deactivate" xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0">
+    <service>
+        <provide interface="org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService"/>
+    </service>
+    <reference name="ReportService" interface="org.eclipse.emfforms.spi.common.report.ReportService" bind="setReportService"/>
+    <implementation class="org.eclipse.emfforms.internal.spreadsheet.core.renderer.EMFFormsSpreadsheetContainerRendererService"/>
+</scr:component>
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.EMFFormsSpreadsheetControlRendererService.xml b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.EMFFormsSpreadsheetControlRendererService.xml
new file mode 100644
index 0000000..8f3504f
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.EMFFormsSpreadsheetControlRendererService.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--Generated by DS Annotation Builder [src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/EMFFormsSpreadsheetControlRendererService.java]-->
+<scr:component name="org.eclipse.emfforms.internal.spreadsheet.core.renderer.EMFFormsSpreadsheetControlRendererService" xmlns:scr="http://www.osgi.org/xmlns/scr/v1.0.0">
+    <implementation class="org.eclipse.emfforms.internal.spreadsheet.core.renderer.EMFFormsSpreadsheetControlRendererService"/>
+    <service>
+        <provide interface="org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService"/>
+    </service>
+    <reference name="VTViewTemplateProvider" interface="org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider" bind="setVTViewTemplateProvider"/>
+    <reference name="ReportService" interface="org.eclipse.emfforms.spi.common.report.ReportService" bind="setReportService"/>
+    <reference name="EmfformsDatabinding" interface="org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding" bind="setEmfformsDatabinding"/>
+    <reference name="EmfformsLabelProvider" interface="org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider" bind="setEmfformsLabelProvider"/>
+</scr:component>
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.EMFFormsSpreadsheetElementRendererService.xml b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.EMFFormsSpreadsheetElementRendererService.xml
new file mode 100644
index 0000000..3d052ad
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.EMFFormsSpreadsheetElementRendererService.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--Generated by DS Annotation Builder [src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/EMFFormsSpreadsheetElementRendererService.java]-->
+<scr:component name="org.eclipse.emfforms.internal.spreadsheet.core.renderer.EMFFormsSpreadsheetElementRendererService" xmlns:scr="http://www.osgi.org/xmlns/scr/v1.0.0">
+    <implementation class="org.eclipse.emfforms.internal.spreadsheet.core.renderer.EMFFormsSpreadsheetElementRendererService"/>
+    <service>
+        <provide interface="org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService"/>
+    </service>
+</scr:component>
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.EMFFormsSpreadsheetViewRendererService.xml b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.EMFFormsSpreadsheetViewRendererService.xml
new file mode 100644
index 0000000..807c37d
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.EMFFormsSpreadsheetViewRendererService.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--Generated by DS Annotation Builder [src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/EMFFormsSpreadsheetViewRendererService.java]-->
+<scr:component name="org.eclipse.emfforms.internal.spreadsheet.core.renderer.EMFFormsSpreadsheetViewRendererService" activate="activate" deactivate="deactivate" xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0">
+    <service>
+        <provide interface="org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService"/>
+    </service>
+    <reference name="ReportService" interface="org.eclipse.emfforms.spi.common.report.ReportService" bind="setReportService"/>
+    <implementation class="org.eclipse.emfforms.internal.spreadsheet.core.renderer.EMFFormsSpreadsheetViewRendererService"/>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/build.properties b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/build.properties
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/build.properties
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/build.properties
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/pom.xml b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/pom.xml
new file mode 100644
index 0000000..6e4833f
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/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.emfforms.spreadsheet</groupId>
+    <artifactId>emfforms-spreadsheet-bundles-parent</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+    <relativePath>../../../releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.bundles/</relativePath>
+  </parent>
+
+  <groupId>org.eclipse.emfforms.spreadsheet</groupId>
+  <artifactId>org.eclipse.emfforms.spreadsheet.core.renderer</artifactId>
+  <version>1.0.0-SNAPSHOT</version>
+  <packaging>eclipse-plugin</packaging>
+
+</project>
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/EMFFormsSpreadsheetContainerRenderer.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/EMFFormsSpreadsheetContainerRenderer.java
new file mode 100644
index 0000000..7906ea0
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/EMFFormsSpreadsheetContainerRenderer.java
@@ -0,0 +1,79 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.spreadsheet.core.renderer;
+
+import org.apache.poi.ss.usermodel.Workbook;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+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.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsAbstractSpreadsheetRenderer;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsNoRendererException;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRenderTarget;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererFactory;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetReport;
+
+/**
+ * Spreadsheet renderer for {@link VContainer}.
+ *
+ * @author Eugen Neufeld
+ */
+public class EMFFormsSpreadsheetContainerRenderer extends
+	EMFFormsAbstractSpreadsheetRenderer<VContainer> {
+
+	private final EMFFormsSpreadsheetRendererFactory rendererFactory;
+	private final ReportService reportService;
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param rendererFactory The EMFFormsSpreadsheetRendererFactory to use
+	 * @param reportService The {@link ReportService}
+	 */
+	public EMFFormsSpreadsheetContainerRenderer(EMFFormsSpreadsheetRendererFactory rendererFactory,
+		ReportService reportService) {
+		this.rendererFactory = rendererFactory;
+		this.reportService = reportService;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsAbstractSpreadsheetRenderer#render(org.apache.poi.ss.usermodel.Workbook,
+	 *      org.eclipse.emf.ecp.view.spi.model.VElement, org.eclipse.emf.ecp.view.spi.context.ViewModelContext,
+	 *      org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRenderTarget)
+	 */
+	@Override
+	public int render(Workbook workbook, VContainer vContainer,
+		ViewModelContext viewModelContext,
+		EMFFormsSpreadsheetRenderTarget eMFFormsSpreadsheetRenderTarget) {
+		int numberRenderedColumns = 0;
+		for (final VContainedElement containedElement : vContainer
+			.getChildren()) {
+			try {
+				final EMFFormsAbstractSpreadsheetRenderer<VElement> renderer = rendererFactory
+					.getRendererInstance(containedElement, viewModelContext);
+				final int renderedColumns = renderer.render(workbook,
+					containedElement, viewModelContext, new EMFFormsSpreadsheetRenderTarget(
+						eMFFormsSpreadsheetRenderTarget.getSheetName(),
+						eMFFormsSpreadsheetRenderTarget.getRow(), eMFFormsSpreadsheetRenderTarget.getColumn()));
+				eMFFormsSpreadsheetRenderTarget.setColumn(eMFFormsSpreadsheetRenderTarget.getColumn()
+					+ renderedColumns);
+				numberRenderedColumns += renderedColumns;
+			} catch (final EMFFormsNoRendererException ex) {
+				reportService.report(new EMFFormsSpreadsheetReport(ex, EMFFormsSpreadsheetReport.ERROR));
+			}
+		}
+		return numberRenderedColumns;
+	}
+}
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/EMFFormsSpreadsheetContainerRendererService.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/EMFFormsSpreadsheetContainerRendererService.java
new file mode 100644
index 0000000..4f5c0d1
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/EMFFormsSpreadsheetContainerRendererService.java
@@ -0,0 +1,102 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.spreadsheet.core.renderer;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.model.VContainer;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsAbstractSpreadsheetRenderer;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererFactory;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
+
+/**
+ * The {@link EMFFormsSpreadsheetRendererService} for {@link VContainer}.
+ *
+ * @author Eugen Neufeld
+ */
+@Component
+public class EMFFormsSpreadsheetContainerRendererService implements
+	EMFFormsSpreadsheetRendererService<VContainer> {
+
+	private EMFFormsSpreadsheetRendererFactory emfformsSpreadsheetRendererFactory;
+	private ReportService reportService;
+
+	/**
+	 * The ReportService to use.
+	 *
+	 * @param reportService the reportService to set
+	 */
+	@Reference
+	protected void setReportService(ReportService reportService) {
+		this.reportService = reportService;
+	}
+
+	private ServiceReference<EMFFormsSpreadsheetRendererFactory> serviceReference;
+
+	/**
+	 * The activate method.
+	 *
+	 * @param bundleContext The BundleContext
+	 */
+	@Activate
+	public void activate(BundleContext bundleContext) {
+		serviceReference = bundleContext
+			.getServiceReference(EMFFormsSpreadsheetRendererFactory.class);
+		emfformsSpreadsheetRendererFactory = bundleContext
+			.getService(serviceReference);
+	}
+
+	/**
+	 * The deactivate method.
+	 *
+	 * @param bundleContext The BundleContext
+	 */
+	@Deactivate
+	public void deactivate(BundleContext bundleContext) {
+		bundleContext.ungetService(serviceReference);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService#isApplicable(org.eclipse.emf.ecp.view.spi.model.VElement,
+	 *      org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement,
+		ViewModelContext viewModelContext) {
+		if (VContainer.class.isInstance(vElement)) {
+			return 1;
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService#getRendererInstance(org.eclipse.emf.ecp.view.spi.model.VElement,
+	 *      org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
+	 */
+	@Override
+	public EMFFormsAbstractSpreadsheetRenderer<VContainer> getRendererInstance(
+		VContainer vElement, ViewModelContext viewModelContext) {
+		return new EMFFormsSpreadsheetContainerRenderer(emfformsSpreadsheetRendererFactory, reportService);
+	}
+
+}
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/EMFFormsSpreadsheetControlRenderer.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/EMFFormsSpreadsheetControlRenderer.java
new file mode 100644
index 0000000..5aaa358
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/EMFFormsSpreadsheetControlRenderer.java
@@ -0,0 +1,293 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.spreadsheet.core.renderer;
+
+import java.io.IOException;
+import java.io.StringWriter;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.ClientAnchor;
+import org.apache.poi.ss.usermodel.Comment;
+import org.apache.poi.ss.usermodel.CreationHelper;
+import org.apache.poi.ss.usermodel.Drawing;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EFactory;
+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.resource.URIConverter.WriteableOutputStream;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexDomainModelReference;
+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.template.model.VTStyleProperty;
+import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
+import org.eclipse.emf.ecp.view.template.style.mandatory.model.VTMandatoryFactory;
+import org.eclipse.emf.ecp.view.template.style.mandatory.model.VTMandatoryStyleProperty;
+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.label.EMFFormsLabelProvider;
+import org.eclipse.emfforms.spi.core.services.label.NoLabelFoundException;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsAbstractSpreadsheetRenderer;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsExportTableParent;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRenderTarget;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetReport;
+
+/**
+ * Spreadsheet renderer for {@link VControl}.
+ *
+ * @author Eugen Neufeld
+ */
+public class EMFFormsSpreadsheetControlRenderer extends EMFFormsAbstractSpreadsheetRenderer<VControl> {
+
+	private final EMFFormsDatabinding emfformsDatabinding;
+	private final EMFFormsLabelProvider emfformsLabelProvider;
+	private final ReportService reportService;
+	private final VTViewTemplateProvider vtViewTemplateProvider;
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param emfformsDatabinding The EMFFormsDatabinding to use
+	 * @param emfformsLabelProvider The EMFFormsLabelProvider to use
+	 * @param reportService The {@link ReportService}
+	 * @param vtViewTemplateProvider The {@link VTViewTemplateProvider}
+	 */
+	public EMFFormsSpreadsheetControlRenderer(EMFFormsDatabinding emfformsDatabinding,
+		EMFFormsLabelProvider emfformsLabelProvider, ReportService reportService,
+		VTViewTemplateProvider vtViewTemplateProvider) {
+		this.emfformsDatabinding = emfformsDatabinding;
+		this.emfformsLabelProvider = emfformsLabelProvider;
+		this.reportService = reportService;
+		this.vtViewTemplateProvider = vtViewTemplateProvider;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsAbstractSpreadsheetRenderer#render(org.apache.poi.ss.usermodel.Workbook,
+	 *      org.eclipse.emf.ecp.view.spi.model.VElement, org.eclipse.emf.ecp.view.spi.context.ViewModelContext,
+	 *      org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRenderTarget)
+	 */
+	@Override
+	public int render(Workbook workbook, VControl vElement,
+		ViewModelContext viewModelContext, EMFFormsSpreadsheetRenderTarget renderTarget) {
+		Sheet sheet = workbook.getSheet(renderTarget.getSheetName());
+		if (sheet == null) {
+			sheet = workbook.createSheet(renderTarget.getSheetName());
+		}
+		Row labelRow = sheet.getRow(0);
+		if (labelRow == null) {
+			labelRow = sheet.createRow(0);
+		}
+		Row descriptionRow = sheet.getRow(1);
+		if (descriptionRow == null) {
+			descriptionRow = sheet.createRow(1);
+		}
+
+		Row formatRow = sheet.getRow(2);
+		if (formatRow == null) {
+			formatRow = sheet.createRow(2);
+		}
+
+		Row valueRow = sheet.getRow(renderTarget.getRow() + 3);
+		if (valueRow == null) {
+			valueRow = sheet.createRow(renderTarget.getRow() + 3);
+		}
+		final Cell labelCell = labelRow.getCell(renderTarget.getColumn(),
+			Row.CREATE_NULL_AS_BLANK);
+		final Cell descriptionCell = descriptionRow.getCell(renderTarget.getColumn(),
+			Row.CREATE_NULL_AS_BLANK);
+		final Cell formatCell = formatRow.getCell(renderTarget.getColumn(),
+			Row.CREATE_NULL_AS_BLANK);
+
+		final Cell valueCell = valueRow.getCell(renderTarget.getColumn(),
+			Row.CREATE_NULL_AS_BLANK);
+
+		try {
+			final EMFFormsExportTableParent exportTableParent = (EMFFormsExportTableParent) viewModelContext
+				.getContextValue(EMFFormsExportTableParent.EXPORT_TABLE_PARENT);
+			VDomainModelReference dmrToResolve = EcoreUtil.copy(vElement.getDomainModelReference());
+			if (exportTableParent != null) {
+				final VIndexDomainModelReference indexDMR = exportTableParent.getIndexDMRToExtend();
+				indexDMR.setTargetDMR(dmrToResolve);
+
+				dmrToResolve = exportTableParent.getIndexDMRToResolve();
+			}
+
+			final IObservableValue displayName = emfformsLabelProvider
+				.getDisplayName(dmrToResolve, viewModelContext.getDomainModel());
+			String labelValue = displayName.getValue().toString();
+			if (exportTableParent != null) {
+				labelValue = exportTableParent.getLabelPrefix() + "_" + labelValue; //$NON-NLS-1$
+			}
+
+			String extra = ""; //$NON-NLS-1$
+			final VTMandatoryStyleProperty mandatoryStyle = getMandatoryStyle(vElement, viewModelContext);
+			final EStructuralFeature structuralFeature = (EStructuralFeature) emfformsDatabinding.getValueProperty(
+				dmrToResolve, viewModelContext.getDomainModel()).getValueType();
+			if (mandatoryStyle.isHighliteMandatoryFields() && structuralFeature.getLowerBound() > 0) {
+				extra = mandatoryStyle.getMandatoryMarker();
+			}
+			labelValue = labelValue + extra;
+
+			labelCell.setCellValue(labelValue);
+			displayName.dispose();
+
+			final IObservableValue description = emfformsLabelProvider
+				.getDescription(dmrToResolve, viewModelContext.getDomainModel());
+			descriptionCell.setCellValue(description.getValue().toString());
+			description.dispose();
+
+			final String format = getFormatDescription(structuralFeature);
+			formatCell.setCellValue(format);
+
+			final IObservableValue observableValue = emfformsDatabinding
+				.getObservableValue(dmrToResolve,
+					viewModelContext.getDomainModel());
+			valueCell.setCellValue(getValueString(observableValue.getValue(), observableValue.getValueType()));
+			observableValue.dispose();
+
+			final Comment comment = createComment(workbook, sheet, dmrToResolve,
+				renderTarget.getRow(), renderTarget.getColumn());
+			labelCell.setCellComment(comment);
+
+			return 1;
+		} catch (final DatabindingFailedException ex) {
+			reportService.report(new EMFFormsSpreadsheetReport(ex, EMFFormsSpreadsheetReport.ERROR));
+		} catch (final NoLabelFoundException ex) {
+			reportService.report(new EMFFormsSpreadsheetReport(ex, EMFFormsSpreadsheetReport.ERROR));
+		} catch (final IOException ex) {
+			reportService.report(new EMFFormsSpreadsheetReport(ex, EMFFormsSpreadsheetReport.ERROR));
+		}
+
+		return 0;
+	}
+
+	private String getFormatDescription(final EStructuralFeature structuralFeature) {
+		final StringBuilder sb = new StringBuilder();
+		for (final EAnnotation eAnnotation : structuralFeature.getEAnnotations()) {
+			final EMap<String, String> details = eAnnotation.getDetails();
+			for (final String key : details.keySet()) {
+				if ("http:///org/eclipse/emf/ecore/util/ExtendedMetaData".equals(eAnnotation.getSource())) { //$NON-NLS-1$
+					if ("kind".equals(key)) { //$NON-NLS-1$
+						continue;
+					}
+					if ("name".equals(key)) { //$NON-NLS-1$
+						continue;
+					}
+					if ("baseType".equals(key)) { //$NON-NLS-1$
+						continue;
+					}
+				}
+				sb.append(key);
+				sb.append("="); //$NON-NLS-1$
+				sb.append(details.get(key));
+				sb.append("\t"); //$NON-NLS-1$
+			}
+		}
+		return sb.toString().trim();
+	}
+
+	private VTMandatoryStyleProperty getMandatoryStyle(VElement vElement, ViewModelContext viewModelContext) {
+		if (vtViewTemplateProvider == null) {
+			return getDefaultStyle();
+		}
+		final Set<VTStyleProperty> styleProperties = vtViewTemplateProvider
+			.getStyleProperties(vElement, viewModelContext);
+		for (final VTStyleProperty styleProperty : styleProperties) {
+			if (VTMandatoryStyleProperty.class.isInstance(styleProperty)) {
+				return (VTMandatoryStyleProperty) styleProperty;
+			}
+		}
+		return getDefaultStyle();
+	}
+
+	private VTMandatoryStyleProperty getDefaultStyle() {
+		return VTMandatoryFactory.eINSTANCE.createMandatoryStyleProperty();
+	}
+
+	private String getValueString(Object fromObject, Object valueType) {
+		if (EAttribute.class.isInstance(valueType)) {
+			final EAttribute eAttribute = (EAttribute) valueType;
+			final EDataType eDataType = eAttribute.getEAttributeType();
+			final EFactory eFactory = eDataType.getEPackage().getEFactoryInstance();
+
+			if (eAttribute.isMany())
+			{
+				final StringBuilder result = new StringBuilder();
+				for (final Object value : (List<?>) fromObject)
+				{
+					if (result.length() == 0)
+					{
+						result.append(' ');
+					}
+					result.append(eFactory.convertToString(eDataType, value));
+				}
+				return result.toString();
+			}
+			return eFactory.convertToString(eDataType, fromObject);
+		}
+		if (fromObject == null) {
+			return ""; //$NON-NLS-1$
+		}
+		return fromObject.toString();
+	}
+
+	private Comment createComment(Workbook workbook, Sheet sheet, VDomainModelReference domainModelReference, int row,
+		int column) throws IOException {
+		final CreationHelper factory = workbook.getCreationHelper();
+
+		// When the comment box is visible, have it show in a 1x3 space
+		final ClientAnchor anchor = factory.createClientAnchor();
+		anchor.setCol1(column);
+		anchor.setCol2(column + 1);
+		anchor.setRow1(row);
+		anchor.setRow2(row + 1);
+
+		final Drawing drawing = sheet.createDrawingPatriarch();
+		final Comment comment = drawing.createCellComment(anchor);
+
+		comment.setAuthor("EMFForms Spreadsheet Renderer"); //$NON-NLS-1$
+		comment.setVisible(false);
+		comment.setString(factory.createRichTextString(getSerializedDMR(domainModelReference)));
+		return comment;
+	}
+
+	private String getSerializedDMR(VDomainModelReference domainModelReference) throws IOException {
+		final ResourceSet rs = new ResourceSetImpl();
+		final Resource resource = rs.createResource(URI.createURI("VIRTAUAL_URI")); //$NON-NLS-1$
+		resource.getContents().add(EcoreUtil.copy(domainModelReference));
+
+		final StringWriter sw = new StringWriter();
+		final WriteableOutputStream os = new WriteableOutputStream(sw, "UTF-8"); //$NON-NLS-1$
+
+		resource.save(os, null);
+		final String value = sw.getBuffer().toString();
+		return value;
+	}
+
+}
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/EMFFormsSpreadsheetControlRendererService.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/EMFFormsSpreadsheetControlRendererService.java
new file mode 100644
index 0000000..6ecfb91
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/EMFFormsSpreadsheetControlRendererService.java
@@ -0,0 +1,108 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.spreadsheet.core.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.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;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsAbstractSpreadsheetRenderer;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+
+/**
+ * The {@link EMFFormsSpreadsheetRendererService} for {@link VControl}.
+ *
+ * @author Eugen Neufeld
+ */
+@Component
+public class EMFFormsSpreadsheetControlRendererService implements
+	EMFFormsSpreadsheetRendererService<VControl> {
+
+	private EMFFormsDatabinding emfformsDatabinding;
+	private EMFFormsLabelProvider emfformsLabelProvider;
+	private ReportService reportService;
+	private VTViewTemplateProvider vtViewTemplateProvider;
+
+	/**
+	 * The VTViewTemplateProvider to use.
+	 *
+	 * @param vtViewTemplateProvider the VTViewTemplateProvider to set
+	 */
+	@Reference
+	protected void setVTViewTemplateProvider(VTViewTemplateProvider vtViewTemplateProvider) {
+		this.vtViewTemplateProvider = vtViewTemplateProvider;
+	}
+
+	/**
+	 * The ReportService to use.
+	 *
+	 * @param reportService the reportService to set
+	 */
+	@Reference
+	protected void setReportService(ReportService reportService) {
+		this.reportService = reportService;
+	}
+
+	/**
+	 * Set the EMFFormsDatabinding to use.
+	 *
+	 * @param emfformsDatabinding The EMFFormsDatabinding to use
+	 */
+	@Reference
+	public void setEmfformsDatabinding(EMFFormsDatabinding emfformsDatabinding) {
+		this.emfformsDatabinding = emfformsDatabinding;
+	}
+
+	/**
+	 * Set the EMFFormsLabelProvider to use.
+	 *
+	 * @param emfformsLabelProvider The EMFFormsLabelProvider to use
+	 */
+	@Reference
+	public void setEmfformsLabelProvider(EMFFormsLabelProvider emfformsLabelProvider) {
+		this.emfformsLabelProvider = emfformsLabelProvider;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService#isApplicable(org.eclipse.emf.ecp.view.spi.model.VElement,
+	 *      org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement,
+		ViewModelContext viewModelContext) {
+		if (VControl.class.isInstance(vElement)) {
+			return 1;
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService#getRendererInstance(org.eclipse.emf.ecp.view.spi.model.VElement,
+	 *      org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
+	 */
+	@Override
+	public EMFFormsAbstractSpreadsheetRenderer<VControl> getRendererInstance(
+		VControl vElement, ViewModelContext viewModelContext) {
+		return new EMFFormsSpreadsheetControlRenderer(emfformsDatabinding, emfformsLabelProvider, reportService,
+			vtViewTemplateProvider);
+	}
+
+}
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/EMFFormsSpreadsheetElementRenderer.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/EMFFormsSpreadsheetElementRenderer.java
new file mode 100644
index 0000000..87e6789
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/EMFFormsSpreadsheetElementRenderer.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.spreadsheet.core.renderer;
+
+import org.apache.poi.ss.usermodel.Workbook;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsAbstractSpreadsheetRenderer;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRenderTarget;
+
+/**
+ * Spreadsheet renderer for {@link VElement}.
+ *
+ * @author Eugen Neufeld
+ */
+public class EMFFormsSpreadsheetElementRenderer extends EMFFormsAbstractSpreadsheetRenderer<VElement> {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsAbstractSpreadsheetRenderer#render(org.apache.poi.ss.usermodel.Workbook,
+	 *      org.eclipse.emf.ecp.view.spi.model.VElement, org.eclipse.emf.ecp.view.spi.context.ViewModelContext,
+	 *      org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRenderTarget)
+	 */
+	@Override
+	public int render(Workbook workbook, VElement vElement,
+		ViewModelContext viewModelContext,
+		EMFFormsSpreadsheetRenderTarget eMFFormsSpreadsheetRenderTarget) {
+		return 0;
+	}
+}
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/EMFFormsSpreadsheetElementRendererService.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/EMFFormsSpreadsheetElementRendererService.java
new file mode 100644
index 0000000..3e75172
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/EMFFormsSpreadsheetElementRendererService.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.spreadsheet.core.renderer;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsAbstractSpreadsheetRenderer;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService;
+import org.osgi.service.component.annotations.Component;
+
+/**
+ * The {@link EMFFormsSpreadsheetRendererService} for {@link VElement}.
+ *
+ * @author Eugen Neufeld
+ */
+@Component
+public class EMFFormsSpreadsheetElementRendererService implements
+	EMFFormsSpreadsheetRendererService<VElement> {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService#isApplicable(org.eclipse.emf.ecp.view.spi.model.VElement,
+	 *      org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement,
+		ViewModelContext viewModelContext) {
+		if (VElement.class.isInstance(vElement)) {
+			return 0;
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService#getRendererInstance(org.eclipse.emf.ecp.view.spi.model.VElement,
+	 *      org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
+	 */
+	@Override
+	public EMFFormsAbstractSpreadsheetRenderer<VElement> getRendererInstance(
+		VElement vElement, ViewModelContext viewModelContext) {
+		return new EMFFormsSpreadsheetElementRenderer();
+	}
+
+}
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/EMFFormsSpreadsheetViewRenderer.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/EMFFormsSpreadsheetViewRenderer.java
new file mode 100644
index 0000000..f6312b8
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/EMFFormsSpreadsheetViewRenderer.java
@@ -0,0 +1,76 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.spreadsheet.core.renderer;
+
+import org.apache.poi.ss.usermodel.Workbook;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.model.VContainedElement;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emf.ecp.view.spi.model.VView;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsAbstractSpreadsheetRenderer;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsNoRendererException;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRenderTarget;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererFactory;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetReport;
+
+/**
+ * Spreadsheet renderer for {@link VView}.
+ *
+ * @author Eugen Neufeld
+ */
+public class EMFFormsSpreadsheetViewRenderer extends EMFFormsAbstractSpreadsheetRenderer<VView> {
+
+	private final EMFFormsSpreadsheetRendererFactory rendererFactory;
+	private final ReportService reportService;
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param rendererFactory The EMFFormsSpreadsheetRendererFactory to use
+	 * @param reportService The {@link ReportService}
+	 */
+	public EMFFormsSpreadsheetViewRenderer(EMFFormsSpreadsheetRendererFactory rendererFactory,
+		ReportService reportService) {
+		this.rendererFactory = rendererFactory;
+		this.reportService = reportService;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsAbstractSpreadsheetRenderer#render(org.apache.poi.ss.usermodel.Workbook,
+	 *      org.eclipse.emf.ecp.view.spi.model.VElement, org.eclipse.emf.ecp.view.spi.context.ViewModelContext,
+	 *      org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRenderTarget)
+	 */
+	@Override
+	public int render(Workbook workbook, VView vContainer, ViewModelContext viewModelContext,
+		EMFFormsSpreadsheetRenderTarget eMFFormsSpreadsheetRenderTarget) {
+
+		int numberRenderedColumns = 0;
+		for (final VContainedElement containedElement : vContainer
+			.getChildren()) {
+			try {
+				final EMFFormsAbstractSpreadsheetRenderer<VElement> renderer = rendererFactory
+					.getRendererInstance(containedElement, viewModelContext);
+				final int renderedColumns = renderer.render(workbook,
+					containedElement, viewModelContext, eMFFormsSpreadsheetRenderTarget);
+				eMFFormsSpreadsheetRenderTarget.setColumn(eMFFormsSpreadsheetRenderTarget.getColumn()
+					+ renderedColumns);
+				numberRenderedColumns += renderedColumns;
+			} catch (final EMFFormsNoRendererException ex) {
+				reportService.report(new EMFFormsSpreadsheetReport(ex, EMFFormsSpreadsheetReport.ERROR));
+			}
+		}
+		return numberRenderedColumns;
+	}
+}
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/EMFFormsSpreadsheetViewRendererService.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/EMFFormsSpreadsheetViewRendererService.java
new file mode 100644
index 0000000..3fad6b5
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/src/org/eclipse/emfforms/internal/spreadsheet/core/renderer/EMFFormsSpreadsheetViewRendererService.java
@@ -0,0 +1,102 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.spreadsheet.core.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.model.VView;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsAbstractSpreadsheetRenderer;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererFactory;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
+
+/**
+ * The {@link EMFFormsSpreadsheetRendererService} for {@link VView}.
+ *
+ * @author Eugen Neufeld
+ */
+@Component
+public class EMFFormsSpreadsheetViewRendererService implements
+	EMFFormsSpreadsheetRendererService<VView> {
+
+	private EMFFormsSpreadsheetRendererFactory emfformsSpreadsheetRendererFactory;
+	private ReportService reportService;
+
+	/**
+	 * The ReportService to use.
+	 *
+	 * @param reportService the reportService to set
+	 */
+	@Reference
+	protected void setReportService(ReportService reportService) {
+		this.reportService = reportService;
+	}
+
+	private ServiceReference<EMFFormsSpreadsheetRendererFactory> serviceReference;
+
+	/**
+	 * The activate method.
+	 *
+	 * @param bundleContext The BundleContext
+	 */
+	@Activate
+	public void activate(BundleContext bundleContext) {
+		serviceReference = bundleContext
+			.getServiceReference(EMFFormsSpreadsheetRendererFactory.class);
+		emfformsSpreadsheetRendererFactory = bundleContext
+			.getService(serviceReference);
+	}
+
+	/**
+	 * The deactivate method.
+	 *
+	 * @param bundleContext The BundleContext
+	 */
+	@Deactivate
+	public void deactivate(BundleContext bundleContext) {
+		bundleContext.ungetService(serviceReference);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService#isApplicable(org.eclipse.emf.ecp.view.spi.model.VElement,
+	 *      org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement,
+		ViewModelContext viewModelContext) {
+		if (VView.class.isInstance(vElement)) {
+			return 1;
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService#getRendererInstance(org.eclipse.emf.ecp.view.spi.model.VElement,
+	 *      org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
+	 */
+	@Override
+	public EMFFormsAbstractSpreadsheetRenderer<VView> getRendererInstance(
+		VView vElement, ViewModelContext viewModelContext) {
+		return new EMFFormsSpreadsheetViewRenderer(emfformsSpreadsheetRendererFactory, reportService);
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.checkstyle b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/.checkstyle
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.checkstyle
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/.checkstyle
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/.classpath
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/.classpath
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/.project b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/.project
new file mode 100644
index 0000000..3e2dd2d
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/.project
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.spreadsheet.core</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>com.wuetherich.osgi.ds.annotations.dsAnnotationBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<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>com.wuetherich.osgi.ds.annotations.dsAnnotationNature</nature>
+		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
+	</natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/.settings/org.eclipse.jdt.core.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..1a6b22b
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/.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.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..4415afe
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/META-INF/MANIFEST.MF
@@ -0,0 +1,20 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Core
+Bundle-SymbolicName: org.eclipse.emfforms.spreadsheet.core
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: ECLIPSERSOURCE
+Export-Package: org.eclipse.emfforms.internal.spreadsheet.core;version="1.0.0";x-internal:=true,
+ org.eclipse.emfforms.spi.spreadsheet.core;version="1.0.0"
+Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.6.0,2.0.0)",
+ org.apache.poi;bundle-version="[3.8.0,4.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.indexdmr.model
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Service-Component: OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.EMFFormsIdProviderImpl.xml,
+ OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.EMFFormsSpreadsheetRendererFactoryImpl.xml
+Bundle-ActivationPolicy: lazy
+Import-Package: org.osgi.framework;version="1.6.0",
+ org.osgi.service.component.annotations;version="1.2.0"
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.EMFFormsIdProviderImpl.xml b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.EMFFormsIdProviderImpl.xml
new file mode 100644
index 0000000..1f8e093
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.EMFFormsIdProviderImpl.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--Generated by DS Annotation Builder [src/org/eclipse/emfforms/internal/spreadsheet/core/EMFFormsIdProviderImpl.java]-->
+<scr:component name="org.eclipse.emfforms.internal.spreadsheet.core.EMFFormsIdProviderImpl" xmlns:scr="http://www.osgi.org/xmlns/scr/v1.0.0">
+    <implementation class="org.eclipse.emfforms.internal.spreadsheet.core.EMFFormsIdProviderImpl"/>
+    <service>
+        <provide interface="org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsIdProvider"/>
+    </service>
+</scr:component>
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.EMFFormsSpreadsheetRendererFactoryImpl.xml b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.EMFFormsSpreadsheetRendererFactoryImpl.xml
new file mode 100644
index 0000000..f3ce8ce
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.EMFFormsSpreadsheetRendererFactoryImpl.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--Generated by DS Annotation Builder [src/org/eclipse/emfforms/internal/spreadsheet/core/EMFFormsSpreadsheetRendererFactoryImpl.java]-->
+<scr:component name="org.eclipse.emfforms.internal.spreadsheet.core.EMFFormsSpreadsheetRendererFactoryImpl" xmlns:scr="http://www.osgi.org/xmlns/scr/v1.0.0">
+    <implementation class="org.eclipse.emfforms.internal.spreadsheet.core.EMFFormsSpreadsheetRendererFactoryImpl"/>
+    <service>
+        <provide interface="org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererFactory"/>
+    </service>
+    <reference name="EMFFormsSpreadsheetRendererService" interface="org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService" cardinality="0..n" policy="dynamic" bind="addEMFFormsSpreadsheetRendererService" unbind="removeEMFFormsSpreadsheetRendererService"/>
+</scr:component>
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/about.html b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/about.html
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/about.html
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/about.html
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/about.ini b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/about.ini
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/about.ini
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/about.ini
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/about.mappings b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/about.mappings
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.template.controls.swt/about.mappings
rename to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/about.mappings
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/about.properties b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/about.properties
new file mode 100644
index 0000000..0b0a880
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/about.properties
@@ -0,0 +1,31 @@
+# Copyright (c) 2011, 2013 Eclipsesource Munich GmbH and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+#    EclipseSource - initial API and implementation
+   
+# NLS_MESSAGEFORMAT_VAR
+
+# ==============================================================================
+# Do not change the properties between this line and the last line containing:
+# %%% END OF TRANSLATED PROPERTIES %%%
+# Instead, either redefine an existing property, or create a new property,
+# append it to the end of the file, and change the code to use the new name.
+# ==============================================================================
+
+featureName = ECP EMF Client Platform
+featureText = ECP EMF Client Platform\n\
+Version: {featureVersion}\n\
+Build id: {0}\n\
+\n\
+Copyright (c) 2011, 2015 Eclipsesource Munich GmbH and others. All rights reserved.\n\
+\n\
+Visit http://www.eclipse.org/emfclient
+
+# ==============================================================================
+# %%% END OF TRANSLATED PROPERTIES %%%
+# The above properties have been shipped for translation.
+# ==============================================================================
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/build.properties b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/build.properties
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/build.properties
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/build.properties
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/modeling32.png b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/modeling32.png
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/modeling32.png
copy to bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/modeling32.png
Binary files differ
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/pom.xml b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/pom.xml
new file mode 100644
index 0000000..bc25b46
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/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.emfforms.spreadsheet</groupId>
+    <artifactId>emfforms-spreadsheet-bundles-parent</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+    <relativePath>../../../releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.bundles/</relativePath>
+  </parent>
+
+  <groupId>org.eclipse.emfforms.spreadsheet</groupId>
+  <artifactId>org.eclipse.emfforms.spreadsheet.core</artifactId>
+  <version>1.0.0-SNAPSHOT</version>
+  <packaging>eclipse-plugin</packaging>
+
+</project>
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/internal/spreadsheet/core/EMFFormsIdProviderImpl.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/internal/spreadsheet/core/EMFFormsIdProviderImpl.java
new file mode 100644
index 0000000..b93aaac
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/internal/spreadsheet/core/EMFFormsIdProviderImpl.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.spreadsheet.core;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsIdProvider;
+import org.osgi.service.component.annotations.Component;
+
+/**
+ * Simple implementation of the EMFFormsIdProvider which returns a generated UUID per EObject.
+ * 
+ * @author Eugen Neufeld
+ *
+ */
+@Component
+public class EMFFormsIdProviderImpl implements EMFFormsIdProvider {
+
+	private final Map<EObject, String> cache = new LinkedHashMap<EObject, String>();
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsIdProvider#getId(org.eclipse.emf.ecore.EObject)
+	 */
+	@Override
+	public String getId(EObject eObject) {
+		if (!cache.containsKey(eObject)) {
+			final String uuid = EcoreUtil.generateUUID();
+			cache.put(eObject, uuid);
+		}
+		return cache.get(eObject);
+	}
+
+}
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/internal/spreadsheet/core/EMFFormsSpreadsheetExporterImpl.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/internal/spreadsheet/core/EMFFormsSpreadsheetExporterImpl.java
new file mode 100644
index 0000000..a5eca16
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/internal/spreadsheet/core/EMFFormsSpreadsheetExporterImpl.java
@@ -0,0 +1,91 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.spreadsheet.core;
+
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emf.ecp.view.spi.model.VView;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsAbstractSpreadsheetRenderer;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsNoRendererException;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetExporter;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRenderTarget;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererFactory;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetReport;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * Implementation of the {@link EMFFormsSpreadsheetExporter}.
+ *
+ * @author Eugen Neufeld
+ */
+public class EMFFormsSpreadsheetExporterImpl implements EMFFormsSpreadsheetExporter {
+
+	private final ReportService reportService;
+
+	/**
+	 * Default Constructor.
+	 */
+	public EMFFormsSpreadsheetExporterImpl() {
+		final BundleContext bundleContext = FrameworkUtil.getBundle(getClass()).getBundleContext();
+		final ServiceReference<ReportService> reportServiceReference = bundleContext
+			.getServiceReference(ReportService.class);
+		reportService = bundleContext.getService(reportServiceReference);
+	}
+
+	@Override
+	public Workbook render(String pathToFile, EObject domainObject,
+		VView viewModel) {
+		final Workbook wb = new HSSFWorkbook();
+		render(wb, new EMFFormsSpreadsheetViewModelContext(viewModel, domainObject));
+		try {
+			writeWB(wb, pathToFile);
+		} catch (final IOException e) {
+			reportService.report(new EMFFormsSpreadsheetReport(e, EMFFormsSpreadsheetReport.ERROR));
+		}
+		return wb;
+	}
+
+	private void render(Workbook workbook, ViewModelContext viewModelContext) {
+		final BundleContext bundleContext = FrameworkUtil.getBundle(getClass()).getBundleContext();
+		final ServiceReference<EMFFormsSpreadsheetRendererFactory> serviceReference = bundleContext
+			.getServiceReference(EMFFormsSpreadsheetRendererFactory.class);
+		final EMFFormsSpreadsheetRendererFactory emfFormsSpreadsheetRendererFactory = bundleContext
+			.getService(serviceReference);
+
+		try {
+			final EMFFormsAbstractSpreadsheetRenderer<VElement> renderer = emfFormsSpreadsheetRendererFactory
+				.getRendererInstance(
+					viewModelContext.getViewModel(), viewModelContext);
+			renderer.render(workbook, viewModelContext.getViewModel(), viewModelContext,
+				new EMFFormsSpreadsheetRenderTarget("root", //$NON-NLS-1$
+					0, 0));
+		} catch (final EMFFormsNoRendererException ex) {
+			reportService.report(new EMFFormsSpreadsheetReport(ex, EMFFormsSpreadsheetReport.ERROR));
+		}
+
+	}
+
+	private void writeWB(Workbook wb, String pathToFile) throws IOException {
+		final FileOutputStream fileOut = new FileOutputStream(pathToFile);
+		wb.write(fileOut);
+		fileOut.close();
+	}
+}
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/internal/spreadsheet/core/EMFFormsSpreadsheetRendererFactoryImpl.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/internal/spreadsheet/core/EMFFormsSpreadsheetRendererFactoryImpl.java
new file mode 100644
index 0000000..4c5932b
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/internal/spreadsheet/core/EMFFormsSpreadsheetRendererFactoryImpl.java
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.spreadsheet.core;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsAbstractSpreadsheetRenderer;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererFactory;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererService;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsNoRendererException;
+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;
+
+/**
+ * Implementation of the EMFFormsSpreadsheetRendererFactory.
+ * 
+ * @author Eugen Neufeld
+ */
+@Component
+public class EMFFormsSpreadsheetRendererFactoryImpl implements EMFFormsSpreadsheetRendererFactory {
+
+	private final Set<EMFFormsSpreadsheetRendererService<VElement>> rendererServices = new LinkedHashSet<EMFFormsSpreadsheetRendererService<VElement>>();
+
+	@Override
+	@Reference(cardinality = ReferenceCardinality.MULTIPLE, policy = ReferencePolicy.DYNAMIC)
+	public void addEMFFormsSpreadsheetRendererService(EMFFormsSpreadsheetRendererService<VElement> spreadsheetRendererService) {
+		rendererServices.add(spreadsheetRendererService);
+	}
+
+	@Override
+	public void removeEMFFormsSpreadsheetRendererService(EMFFormsSpreadsheetRendererService<VElement> spreadsheetRendererService) {
+		rendererServices.remove(spreadsheetRendererService);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetRendererFactory#getRendererInstance(org.eclipse.emf.ecp.view.spi.model.VElement,
+	 *      org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
+	 */
+	@Override
+	public <VELEMENT extends VElement> EMFFormsAbstractSpreadsheetRenderer<VElement> getRendererInstance(VELEMENT vElement,
+		ViewModelContext viewModelContext) throws EMFFormsNoRendererException {
+		EMFFormsSpreadsheetRendererService<VElement> bestFitting = null;
+		double highestPriority = Double.NEGATIVE_INFINITY;
+		for (final EMFFormsSpreadsheetRendererService<VElement> rendererService : rendererServices) {
+			final double currentPriority = rendererService.isApplicable(vElement, viewModelContext);
+			if (currentPriority > highestPriority) {
+				highestPriority = currentPriority;
+				bestFitting = rendererService;
+			}
+		}
+		if (bestFitting == null)
+		{
+			throw new EMFFormsNoRendererException(String.format(
+				"No fitting renderer for %1$s found!", vElement.eClass().getName())); //$NON-NLS-1$
+		}
+		return bestFitting.getRendererInstance(vElement, viewModelContext);
+	}
+
+}
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/internal/spreadsheet/core/EMFFormsSpreadsheetViewModelContext.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/internal/spreadsheet/core/EMFFormsSpreadsheetViewModelContext.java
new file mode 100644
index 0000000..96ea533
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/internal/spreadsheet/core/EMFFormsSpreadsheetViewModelContext.java
@@ -0,0 +1,227 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.spreadsheet.core;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+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.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContextDisposeListener;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelService;
+import org.eclipse.emf.ecp.view.spi.model.ModelChangeListener;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emf.ecp.view.spi.model.VView;
+
+/**
+ * Spreadsheet specific implementation of the {@link ViewModelContext}.
+ * This implementation doesn't do anything, it serves only as a container for a {@link VView} and the {@link EObject}.
+ *
+ * @author Eugen Neufeld
+ * @noextend This class is not intended to be subclassed by clients.
+ */
+public class EMFFormsSpreadsheetViewModelContext implements ViewModelContext {
+
+	private final VView view;
+	private final EObject domainModel;
+	private final Map<String, Object> contextValues = new LinkedHashMap<String, Object>();
+
+	/**
+	 * Default Constructor.
+	 *
+	 * @param view The {@link VView}
+	 * @param domainModel The {@link EObject}
+	 */
+	public EMFFormsSpreadsheetViewModelContext(VView view, EObject domainModel) {
+		this.view = view;
+		this.domainModel = domainModel;
+
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#registerDomainChangeListener(org.eclipse.emf.ecp.view.spi.model.ModelChangeListener)
+	 */
+	@Override
+	public void registerDomainChangeListener(ModelChangeListener modelChangeListener) {
+		// intentionally left empty
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#unregisterDomainChangeListener(org.eclipse.emf.ecp.view.spi.model.ModelChangeListener)
+	 */
+	@Override
+	public void unregisterDomainChangeListener(ModelChangeListener modelChangeListener) {
+		// intentionally left empty
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#getViewModel()
+	 */
+	@Override
+	public VElement getViewModel() {
+		return view;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#getDomainModel()
+	 */
+	@Override
+	public EObject getDomainModel() {
+		return domainModel;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#registerViewChangeListener(org.eclipse.emf.ecp.view.spi.model.ModelChangeListener)
+	 */
+	@Override
+	public void registerViewChangeListener(ModelChangeListener modelChangeListener) {
+		// intentionally left empty
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#unregisterViewChangeListener(org.eclipse.emf.ecp.view.spi.model.ModelChangeListener)
+	 */
+	@Override
+	public void unregisterViewChangeListener(ModelChangeListener modelChangeListener) {
+		// intentionally left empty
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#dispose()
+	 */
+	@Override
+	public void dispose() {
+		// intentionally left empty
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#hasService(java.lang.Class)
+	 */
+	@Override
+	public <T> boolean hasService(Class<T> serviceType) {
+		return false;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#getService(java.lang.Class)
+	 */
+	@Override
+	public <T> T getService(Class<T> serviceType) {
+		return null;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#getControlsFor(org.eclipse.emf.ecore.EStructuralFeature.Setting)
+	 */
+	@Override
+	public Set<VControl> getControlsFor(Setting setting) {
+		return null;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#getControlsFor(org.eclipse.emf.ecp.common.spi.UniqueSetting)
+	 */
+	@Override
+	public Set<VElement> getControlsFor(UniqueSetting setting) {
+		return null;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#getContextValue(java.lang.String)
+	 */
+	@Override
+	public Object getContextValue(String key) {
+		return contextValues.get(key);
+	}
+
+	/**
+	 * {@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);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#getChildContext(org.eclipse.emf.ecore.EObject,
+	 *      org.eclipse.emf.ecp.view.spi.model.VElement, org.eclipse.emf.ecp.view.spi.model.VView,
+	 *      org.eclipse.emf.ecp.view.spi.context.ViewModelService[])
+	 */
+	@Override
+	public ViewModelContext getChildContext(EObject eObject, VElement parent, VView vView,
+		ViewModelService... viewModelServices) {
+		return null;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#registerDisposeListener(org.eclipse.emf.ecp.view.spi.context.ViewModelContextDisposeListener)
+	 */
+	@Override
+	public void registerDisposeListener(ViewModelContextDisposeListener listener) {
+		// intentionally left empty
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#addContextUser(java.lang.Object)
+	 */
+	@Override
+	public void addContextUser(Object user) {
+		// intentionally left empty
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#removeContextUser(java.lang.Object)
+	 */
+	@Override
+	public void removeContextUser(Object user) {
+		// intentionally left empty
+	}
+
+}
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/spi/spreadsheet/core/EMFFormsAbstractSpreadsheetRenderer.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/spi/spreadsheet/core/EMFFormsAbstractSpreadsheetRenderer.java
new file mode 100644
index 0000000..1c7ec1d
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/spi/spreadsheet/core/EMFFormsAbstractSpreadsheetRenderer.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.spreadsheet.core;
+
+import org.apache.poi.ss.usermodel.Workbook;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+
+/**
+ * Abstract class which is the base class for all Spreadsheet renderer.
+ *
+ * @author Eugen Neufeld
+ *
+ * @param <VELEMENT> The {@link VElement} type this renderer supports
+ */
+public abstract class EMFFormsAbstractSpreadsheetRenderer<VELEMENT extends VElement> {
+
+	/**
+	 * This is called to trigger the rendering.
+	 *
+	 * @param workbook The {@link Workbook} to write to
+	 * @param vElement The {@link VElement} describing the information to write
+	 * @param viewModelContext The {@link ViewModelContext} containing the {@link org.eclipse.emf.ecore.EObject EObject}
+	 * @param renderTarget The {@link EMFFormsSpreadsheetRenderTarget} containing the information where to render to
+	 * @return The number of rendered columns
+	 */
+	public abstract int render(Workbook workbook, VELEMENT vElement, ViewModelContext viewModelContext,
+		EMFFormsSpreadsheetRenderTarget renderTarget);
+}
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/spi/spreadsheet/core/EMFFormsExportTableParent.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/spi/spreadsheet/core/EMFFormsExportTableParent.java
new file mode 100644
index 0000000..a9b8f3b
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/spi/spreadsheet/core/EMFFormsExportTableParent.java
@@ -0,0 +1,74 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.spreadsheet.core;
+
+import org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexDomainModelReference;
+
+/**
+ * @author Eugen
+ *
+ */
+public class EMFFormsExportTableParent {
+
+	/**
+	 * Key to use in the ViewModelContext to set this object into the context.
+	 */
+	public static final String EXPORT_TABLE_PARENT = "excelExportParent"; //$NON-NLS-1$
+
+	private final VIndexDomainModelReference indexDMRToExtend;
+	private final String labelPrefix;
+
+	private final VIndexDomainModelReference indexDMRToResolve;
+
+	/**
+	 * Default Constructor.
+	 *
+	 * @param indexDMRToExtend The VIndexDomainModelReference to extend
+	 * @param indexDMRToResolve The VIndexDomainModelReference to use for resolvement
+	 * @param labelPrefix The prefix for labels
+	 */
+	public EMFFormsExportTableParent(VIndexDomainModelReference indexDMRToExtend,
+		VIndexDomainModelReference indexDMRToResolve, String labelPrefix) {
+		super();
+		this.indexDMRToExtend = indexDMRToExtend;
+		this.indexDMRToResolve = indexDMRToResolve;
+		this.labelPrefix = labelPrefix;
+	}
+
+	/**
+	 * The VIndexDomainModelReference to use extend.
+	 *
+	 * @return the indexDMR
+	 */
+	public VIndexDomainModelReference getIndexDMRToExtend() {
+		return indexDMRToExtend;
+	}
+
+	/**
+	 * The Prefix to use for labels.
+	 *
+	 * @return the labelPrefix
+	 */
+	public String getLabelPrefix() {
+		return labelPrefix;
+	}
+
+	/**
+	 * The VIndexDomainModelReference to use for resolving.
+	 *
+	 * @return the indexDMRToResolve
+	 */
+	public VIndexDomainModelReference getIndexDMRToResolve() {
+		return indexDMRToResolve;
+	}
+
+}
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/spi/spreadsheet/core/EMFFormsIdProvider.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/spi/spreadsheet/core/EMFFormsIdProvider.java
new file mode 100644
index 0000000..cfe8694
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/spi/spreadsheet/core/EMFFormsIdProvider.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.spreadsheet.core;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * This service provides the value for the ID column used for identifying values accross multiple sheets.
+ * 
+ * @author Eugen Neufeld
+ *
+ */
+public interface EMFFormsIdProvider {
+
+	/**
+	 * The name of the ID column.
+	 */
+	String ID_COLUMN = "EOBJECT_ID"; //$NON-NLS-1$
+
+	/**
+	 * Returns the id value for an {@link EObject}.
+	 * 
+	 * @param eObject The {@link EObject} to get an id for
+	 * @return The id
+	 */
+	String getId(EObject eObject);
+}
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/spi/spreadsheet/core/EMFFormsNoRendererException.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/spi/spreadsheet/core/EMFFormsNoRendererException.java
new file mode 100644
index 0000000..076ef2e
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/spi/spreadsheet/core/EMFFormsNoRendererException.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.spreadsheet.core;
+
+/**
+ * The {@link EMFFormsNoRendererException} is used by the {@link EMFFormsSpreadsheetRendererFactory}.
+ *
+ * @author Eugen Neufeld
+ * @noextend This class is not intended to be subclassed by clients.
+ */
+public class EMFFormsNoRendererException extends Exception {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * The EMFFormsNoRendererException throwed by {@link EMFFormsSpreadsheetRendererFactory}.
+	 *
+	 * @param message The message of the exception
+	 */
+	public EMFFormsNoRendererException(String message) {
+		super(message);
+	}
+}
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/spi/spreadsheet/core/EMFFormsSpreadsheetExporter.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/spi/spreadsheet/core/EMFFormsSpreadsheetExporter.java
new file mode 100644
index 0000000..75c5bfb
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/spi/spreadsheet/core/EMFFormsSpreadsheetExporter.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.spreadsheet.core;
+
+import org.apache.poi.ss.usermodel.Workbook;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.spi.model.VView;
+import org.eclipse.emfforms.internal.spreadsheet.core.EMFFormsSpreadsheetExporterImpl;
+
+/**
+ * Entry point for triggering the rendering to an Spreadsheet document.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public interface EMFFormsSpreadsheetExporter {
+
+	/**
+	 * Singleton to get access to the exporter.
+	 */
+	EMFFormsSpreadsheetExporter INSTANCE = new EMFFormsSpreadsheetExporterImpl();
+
+	/**
+	 * Starts the rendering to the Spreadsheet document.
+	 *
+	 * @param pathToFile The path to the file to create.
+	 * @param domainObject The {@link EObject} containing the data
+	 * @param viewModel The {@link VView} describing the rendered data
+	 * @return The created {@link Workbook}
+	 */
+	Workbook render(String pathToFile, EObject domainObject,
+		VView viewModel);
+}
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/spi/spreadsheet/core/EMFFormsSpreadsheetRenderTarget.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/spi/spreadsheet/core/EMFFormsSpreadsheetRenderTarget.java
new file mode 100644
index 0000000..9f77c8a
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/spi/spreadsheet/core/EMFFormsSpreadsheetRenderTarget.java
@@ -0,0 +1,74 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.spreadsheet.core;
+
+/**
+ * Helper class which describes where a value should be rendered to.
+ *
+ * @author Eugen Neufeld
+ */
+public final class EMFFormsSpreadsheetRenderTarget {
+
+	private final String sheetName;
+	private final int row;
+	private int column;
+
+	/**
+	 * Default Constructor.
+	 *
+	 * @param sheetName The name of the sheet
+	 * @param row The row id to render on
+	 * @param column The column id to render on
+	 */
+	public EMFFormsSpreadsheetRenderTarget(String sheetName, int row, int column) {
+		this.sheetName = sheetName;
+		this.row = row;
+		this.column = column;
+	}
+
+	/**
+	 * Retrieve the current column id.
+	 *
+	 * @return The column id
+	 */
+	public int getColumn() {
+		return column;
+	}
+
+	/**
+	 * Set the column id.
+	 *
+	 * @param column The column id to set
+	 */
+	public void setColumn(int column) {
+		this.column = column;
+	}
+
+	/**
+	 * Retrieve the sheet name.
+	 *
+	 * @return The sheet name
+	 */
+	public String getSheetName() {
+		return sheetName;
+	}
+
+	/**
+	 * Retrieve the row id.
+	 *
+	 * @return The row id
+	 */
+	public int getRow() {
+		return row;
+	}
+
+}
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/spi/spreadsheet/core/EMFFormsSpreadsheetRendererFactory.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/spi/spreadsheet/core/EMFFormsSpreadsheetRendererFactory.java
new file mode 100644
index 0000000..3b49396
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/spi/spreadsheet/core/EMFFormsSpreadsheetRendererFactory.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.spreadsheet.core;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+
+/**
+ * This is the factory which selects the most fitting renderer for the provided {@link VElement} and
+ * {@link ViewModelContext}.
+ *
+ * @author Eugen Neufeld
+ * @noimplement This interface is not intended to be implemented by clients.
+ * @noextend This interface is not intended to be extended by clients.
+ */
+public interface EMFFormsSpreadsheetRendererFactory {
+
+	/**
+	 * Adds an {@link EMFFormsSpreadsheetRendererService} to the list of available renderer.
+	 * 
+	 * @param spreadsheetRendererService The EMFFormsSpreadsheetRendererService to add
+	 */
+	void addEMFFormsSpreadsheetRendererService(EMFFormsSpreadsheetRendererService<VElement> spreadsheetRendererService);
+
+	/**
+	 * Removes an {@link EMFFormsSpreadsheetRendererService} from the list of available renderer.
+	 * 
+	 * @param spreadsheetRendererService The EMFFormsSpreadsheetRendererService to remove
+	 */
+	void removeEMFFormsSpreadsheetRendererService(EMFFormsSpreadsheetRendererService<VElement> spreadsheetRendererService);
+
+	/**
+	 * Returns the renderer which fits the provided {@link VElement} and {@link ViewModelContext} the most.
+	 *
+	 * @param vElement the {@link VElement} to find the renderer for
+	 * @param viewModelContext the {@link ViewModelContext} to find the renderer for
+	 * @param <VELEMENT> The VElement type
+	 * @return the renderer
+	 * @throws EMFFormsNoRendererException is thrown when no renderer can be found
+	 */
+	<VELEMENT extends VElement> EMFFormsAbstractSpreadsheetRenderer<VElement> getRendererInstance(VELEMENT vElement,
+		ViewModelContext viewModelContext) throws EMFFormsNoRendererException;
+
+}
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/spi/spreadsheet/core/EMFFormsSpreadsheetRendererService.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/spi/spreadsheet/core/EMFFormsSpreadsheetRendererService.java
new file mode 100644
index 0000000..79c1e7c
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/spi/spreadsheet/core/EMFFormsSpreadsheetRendererService.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.spreadsheet.core;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+
+/**
+ * The EMFFormsRendererService encapsulates the tester and the access to the {@link EMFFormsAbstractSpreadsheetRenderer}.
+ *
+ * @author Eugen Neufeld
+ *
+ * @param <VELEMENT>
+ */
+public interface EMFFormsSpreadsheetRendererService<VELEMENT extends VElement> {
+
+	/**
+	 * Constant for {@link #isApplicable(VElement, ViewModelContext)} to indicate, that the EMFFormsRendererService
+	 * cannot provide a
+	 * fitting renderer for the provided VElement.
+	 */
+	double NOT_APPLICABLE = Double.NaN;
+
+	/**
+	 * Check whether the provided {@link VElement} can be rendered by the {@link EMFFormsAbstractSpreadsheetRenderer} provided
+	 * by {@link #getRendererInstance(VElement, ViewModelContext)}.
+	 *
+	 * @param vElement The {@link VElement} to check
+	 * @param viewModelContext The {@link ViewModelContext} to use for the renderer instance
+	 * @return {@link #NOT_APPLICABLE} if the renderer doesn't fit, a positive value otherwise
+	 */
+	double isApplicable(VElement vElement, ViewModelContext viewModelContext);
+
+	/**
+	 * Returns a renderer.
+	 *
+	 * @param vElement The {@link VElement} to create the renderer instance for
+	 * @param viewModelContext The {@link ViewModelContext} to use for the renderer instance
+	 * @return The AbstractSWTRenderer
+	 */
+	EMFFormsAbstractSpreadsheetRenderer<VELEMENT> getRendererInstance(VELEMENT vElement, ViewModelContext viewModelContext);
+}
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/spi/spreadsheet/core/EMFFormsSpreadsheetReport.java b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/spi/spreadsheet/core/EMFFormsSpreadsheetReport.java
new file mode 100644
index 0000000..5ef40b2
--- /dev/null
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/src/org/eclipse/emfforms/spi/spreadsheet/core/EMFFormsSpreadsheetReport.java
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.spreadsheet.core;
+
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
+
+/**
+ * The report to use for the {@link org.eclipse.emfforms.spi.common.report.ReportService ReportService} during the
+ * Spreadsheet
+ * export or import.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class EMFFormsSpreadsheetReport extends AbstractReport {
+
+	/**
+	 * Constant for the INFO severity.
+	 */
+	public static final int INFO = 1;
+	/**
+	 * Constant for the WARNING severity.
+	 */
+	public static final int WARNING = 2;
+	/**
+	 * Constant for the ERROR severity.
+	 */
+	public static final int ERROR = 4;
+
+	/**
+	 * Default constructor with a {@link Throwable}.
+	 *
+	 * @param throwable The {@link Throwable} to report
+	 * @param severity The severity of the report
+	 */
+	public EMFFormsSpreadsheetReport(Throwable throwable, int severity) {
+		super(throwable, severity);
+	}
+
+	/**
+	 * Default constructor with a message.
+	 *
+	 * @param message The message to report
+	 * @param severity The severity of the report
+	 */
+	public EMFFormsSpreadsheetReport(String message, int severity) {
+		super(message, severity);
+	}
+}
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.gitignore b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.gitignore
@@ -0,0 +1 @@
+/bin/
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 917e8c6..7fe26b3 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: MakeItHappen Sample Application e3
 Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.application.sample.e3;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 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.3.0,2.0.0)",
@@ -12,4 +12,4 @@
 Bundle-ActivationPolicy: lazy
 Bundle-Vendor: Eclipse Modeling Framework
 Export-Package: org.eclipse.emf.ecp.makeithappen.application.sample.e3
- ;version="1.5.1";x-internal:=true
+ ;version="1.6.0";x-internal:=true
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/makeithappen_e3.product b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/makeithappen_e3.product
index 2c5a386..3979a6f 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/makeithappen_e3.product
+++ b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/makeithappen_e3.product
@@ -1,13 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?pde version="3.5"?>
 
-<product name="MakeItHappen Sample e3 Product" uid="org.eclipse.emf.ecp.makeithappen.sample.product.e3" id="org.eclipse.emf.ecp.makeithappen.application.sample.e3.product" application="org.eclipse.emf.ecp.makeithappen.application.sample.e3.application" version="1.4.0" useFeatures="false" includeLaunchers="true">
+<product name="MakeItHappen Sample e3 Product" uid="org.eclipse.emf.ecp.makeithappen.sample.product.e3" id="org.eclipse.emf.ecp.makeithappen.application.sample.e3.product" application="org.eclipse.emf.ecp.makeithappen.application.sample.e3.application" version="1.6.0" useFeatures="false" includeLaunchers="true">
 
    <configIni use="default">
    </configIni>
 
    <launcherArgs>
-      <programArgs>-consoleLog -debugEMFForms
+      <programArgs>-consoleLog
       </programArgs>
       <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
       </vmArgsMac>
@@ -15,6 +15,13 @@
 
    <windowImages i16="/org.eclipse.emf.ecp.makeithappen.application.sample.e3/icons/bricks.png"/>
 
+   <launcher>
+      <solaris/>
+      <win useIco="false">
+         <bmp/>
+      </win>
+   </launcher>
+
    <vm>
       <windows include="false">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7</windows>
    </vm>
@@ -23,41 +30,26 @@
       <plugin id="com.ibm.icu"/>
       <plugin id="javax.annotation"/>
       <plugin id="javax.inject"/>
-      <plugin id="javax.servlet"/>
       <plugin id="javax.xml"/>
       <plugin id="org.apache.batik.css"/>
       <plugin id="org.apache.batik.util"/>
       <plugin id="org.apache.batik.util.gui"/>
-      <plugin id="org.eclipse.ant.core"/>
-      <plugin id="org.eclipse.compare.core"/>
+      <plugin id="org.apache.commons.jxpath"/>
       <plugin id="org.eclipse.core.commands"/>
       <plugin id="org.eclipse.core.contenttype"/>
       <plugin id="org.eclipse.core.databinding"/>
       <plugin id="org.eclipse.core.databinding.observable"/>
       <plugin id="org.eclipse.core.databinding.property"/>
       <plugin id="org.eclipse.core.expressions"/>
-      <plugin id="org.eclipse.core.filesystem"/>
-      <plugin id="org.eclipse.core.filesystem.aix.ppc" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.hpux.ia64_32" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.linux.ppc" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.linux.x86" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.linux.x86_64" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.macosx" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.solaris.sparc" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.win32.x86" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.win32.x86_64" fragment="true"/>
       <plugin id="org.eclipse.core.jobs"/>
-      <plugin id="org.eclipse.core.resources"/>
-      <plugin id="org.eclipse.core.resources.win32.x86" fragment="true"/>
-      <plugin id="org.eclipse.core.resources.win32.x86_64" fragment="true"/>
       <plugin id="org.eclipse.core.runtime"/>
-      <plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/>
-      <plugin id="org.eclipse.core.variables"/>
       <plugin id="org.eclipse.e4.core.commands"/>
       <plugin id="org.eclipse.e4.core.contexts"/>
       <plugin id="org.eclipse.e4.core.di"/>
+      <plugin id="org.eclipse.e4.core.di.annotations"/>
       <plugin id="org.eclipse.e4.core.di.extensions"/>
       <plugin id="org.eclipse.e4.core.services"/>
+      <plugin id="org.eclipse.e4.emf.xpath"/>
       <plugin id="org.eclipse.e4.ui.bindings"/>
       <plugin id="org.eclipse.e4.ui.css.core"/>
       <plugin id="org.eclipse.e4.ui.css.swt"/>
@@ -84,16 +76,12 @@
       <plugin id="org.eclipse.emf.ecp.common.ui"/>
       <plugin id="org.eclipse.emf.ecp.edit"/>
       <plugin id="org.eclipse.emf.ecp.edit.swt"/>
-      <plugin id="org.eclipse.emf.ecp.edit.swt.test" fragment="true"/>
       <plugin id="org.eclipse.emf.ecp.makeithappen.application.sample.e3"/>
       <plugin id="org.eclipse.emf.ecp.makeithappen.model"/>
       <plugin id="org.eclipse.emf.ecp.makeithappen.model.edit"/>
       <plugin id="org.eclipse.emf.ecp.makeithappen.model.viewmodel"/>
       <plugin id="org.eclipse.emf.ecp.ui.view"/>
       <plugin id="org.eclipse.emf.ecp.ui.view.swt"/>
-      <plugin id="org.eclipse.emf.ecp.view.categorization.model"/>
-      <plugin id="org.eclipse.emf.ecp.view.categorization.model.edit"/>
-      <plugin id="org.eclipse.emf.ecp.view.categorization.swt"/>
       <plugin id="org.eclipse.emf.ecp.view.context"/>
       <plugin id="org.eclipse.emf.ecp.view.context.locale"/>
       <plugin id="org.eclipse.emf.ecp.view.control.multireference"/>
@@ -102,9 +90,6 @@
       <plugin id="org.eclipse.emf.ecp.view.group.model.edit"/>
       <plugin id="org.eclipse.emf.ecp.view.group.swt.embedded"/>
       <plugin id="org.eclipse.emf.ecp.view.group.ui.swt"/>
-      <plugin id="org.eclipse.emf.ecp.view.groupedgrid.model"/>
-      <plugin id="org.eclipse.emf.ecp.view.groupedgrid.model.edit"/>
-      <plugin id="org.eclipse.emf.ecp.view.groupedgrid.ui.swt"/>
       <plugin id="org.eclipse.emf.ecp.view.horizontal.model"/>
       <plugin id="org.eclipse.emf.ecp.view.horizontal.model.edit"/>
       <plugin id="org.eclipse.emf.ecp.view.horizontal.ui.swt"/>
@@ -120,7 +105,6 @@
       <plugin id="org.eclipse.emf.ecp.view.rule.model"/>
       <plugin id="org.eclipse.emf.ecp.view.rule.model.edit"/>
       <plugin id="org.eclipse.emf.ecp.view.swt.layout"/>
-      <plugin id="org.eclipse.emf.ecp.view.table.columnservice"/>
       <plugin id="org.eclipse.emf.ecp.view.table.model"/>
       <plugin id="org.eclipse.emf.ecp.view.table.model.edit"/>
       <plugin id="org.eclipse.emf.ecp.view.table.ui.swt"/>
@@ -134,22 +118,29 @@
       <plugin id="org.eclipse.emf.ecp.view.vertical.ui.swt"/>
       <plugin id="org.eclipse.emf.edit"/>
       <plugin id="org.eclipse.emf.edit.ui"/>
+      <plugin id="org.eclipse.emfforms.common"/>
+      <plugin id="org.eclipse.emfforms.core.services"/>
+      <plugin id="org.eclipse.emfforms.core.services.databinding.featurepath"/>
+      <plugin id="org.eclipse.emfforms.core.services.editsupport"/>
+      <plugin id="org.eclipse.emfforms.core.services.emf"/>
+      <plugin id="org.eclipse.emfforms.core.services.emfspecificservice"/>
+      <plugin id="org.eclipse.emfforms.core.services.locale.default"/>
+      <plugin id="org.eclipse.emfforms.localization"/>
+      <plugin id="org.eclipse.emfforms.swt.core"/>
+      <plugin id="org.eclipse.emfforms.swt.core.di"/>
+      <plugin id="org.eclipse.emfforms.swt.core.plugin"/>
+      <plugin id="org.eclipse.emfforms.view.model.localization"/>
       <plugin id="org.eclipse.equinox.app"/>
-      <plugin id="org.eclipse.equinox.bidi"/>
       <plugin id="org.eclipse.equinox.common"/>
       <plugin id="org.eclipse.equinox.ds"/>
       <plugin id="org.eclipse.equinox.event"/>
       <plugin id="org.eclipse.equinox.preferences"/>
-      <plugin id="org.eclipse.equinox.region" fragment="true"/>
       <plugin id="org.eclipse.equinox.registry"/>
-      <plugin id="org.eclipse.equinox.transforms.hook" fragment="true"/>
       <plugin id="org.eclipse.equinox.util"/>
-      <plugin id="org.eclipse.equinox.weaving.hook" fragment="true"/>
       <plugin id="org.eclipse.help"/>
       <plugin id="org.eclipse.jface"/>
       <plugin id="org.eclipse.jface.databinding"/>
       <plugin id="org.eclipse.osgi"/>
-      <plugin id="org.eclipse.osgi.compatibility.state" fragment="true"/>
       <plugin id="org.eclipse.osgi.services"/>
       <plugin id="org.eclipse.swt"/>
       <plugin id="org.eclipse.swt.carbon.macosx" fragment="true"/>
@@ -170,12 +161,9 @@
       <plugin id="org.eclipse.swt.photon.qnx.x86" fragment="true"/>
       <plugin id="org.eclipse.swt.win32.win32.x86" fragment="true"/>
       <plugin id="org.eclipse.swt.win32.win32.x86_64" fragment="true"/>
-      <plugin id="org.eclipse.team.core"/>
       <plugin id="org.eclipse.ui"/>
       <plugin id="org.eclipse.ui.views"/>
       <plugin id="org.eclipse.ui.workbench"/>
-      <plugin id="org.hamcrest.core"/>
-      <plugin id="org.junit"/>
       <plugin id="org.w3c.css.sac"/>
       <plugin id="org.w3c.dom.events"/>
       <plugin id="org.w3c.dom.smil"/>
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 720e2bf..1a54de0 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
 </project>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.gitignore b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/Application.e4xmi b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/Application.e4xmi
index ee98c7c..31e304b 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/Application.e4xmi
+++ b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/Application.e4xmi
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <application:Application xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:application="http://www.eclipse.org/ui/2010/UIModel/application" xmlns:basic="http://www.eclipse.org/ui/2010/UIModel/application/ui/basic" xmi:id="_GMrUQAD5EeSknd978uYCFA" elementId="org.eclipse.e4.ide.application" bindingContexts="_GMrUSQD5EeSknd978uYCFA">
-  <children xsi:type="basic:TrimmedWindow" xmi:id="_GMrUQQD5EeSknd978uYCFA" label="MakeItHappen ECP Sample e4 Application" iconURI="platform:/plugin/org.eclipse.emf.ecp.makeithappen.application.sample.e4/icons/bricks.png" width="800" height="500">
+  <children xsi:type="basic:TrimmedWindow" xmi:id="_GMrUQQD5EeSknd978uYCFA" label="MakeItHappen ECP Sample e4 Application" iconURI="platform:/plugin/org.eclipse.emf.ecp.makeithappen.application.sample.e4/icons/bricks.png" width="800" height="600">
     <children xsi:type="basic:Part" xmi:id="_GMr7ZQD5EeSknd978uYCFA" contributionURI="bundleclass://org.eclipse.emf.ecp.makeithappen.application.sample.e4/org.eclipse.emf.ecp.makeithappen.application.sample.e4.parts.SamplePart" label="Sample Part" iconURI="platform:/plugin/org.eclipse.emf.ecp.makeithappen.application.sample.e4/icons/bricks.png"/>
   </children>
   <bindingTables xmi:id="_GMrUTgD5EeSknd978uYCFA" bindingContext="_GMrUSQD5EeSknd978uYCFA">
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 8a06bba..2ef2c90 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: MakeItHappen Sample Application e4
 Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.application.sample.e4;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 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)",
@@ -22,4 +22,4 @@
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emf.ecp.makeithappen.application.sample.e4
- .parts;version="1.5.1";x-internal:=true
+ .parts;version="1.6.0";x-internal:=true
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/makeithappen_e4.product b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/makeithappen_e4.product
index bbd481e..d381456 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/makeithappen_e4.product
+++ b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/makeithappen_e4.product
@@ -1,18 +1,30 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?pde version="3.5"?>
 
-<product name="MakeItHappen Sample e4 Product" uid="org.eclipse.emf.ecp.makeithappen.sample.product.e4" id="org.eclipse.emf.ecp.makeithappen.application.sample.e4.product" application="org.eclipse.e4.ui.workbench.swt.E4Application" version="1.4.0.qualifier" useFeatures="false" includeLaunchers="true">
+<product name="MakeItHappen Sample e4 Product" uid="org.eclipse.emf.ecp.makeithappen.sample.product.e4" id="org.eclipse.emf.ecp.makeithappen.application.sample.e4.product" application="org.eclipse.e4.ui.workbench.swt.E4Application" version="1.6.0.qualifier" useFeatures="false" includeLaunchers="true">
 
    <configIni use="default">
    </configIni>
 
    <launcherArgs>
-      <programArgs>-clearPersistedState</programArgs>
-      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
+      <programArgs>-clearPersistedState
+      </programArgs>
+      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
+      </vmArgsMac>
    </launcherArgs>
 
    <windowImages i16="/org.eclipse.emf.ecp.makeithappen.application.sample.e4/icons/bricks.png"/>
 
+   <launcher>
+      <solaris/>
+      <win useIco="false">
+         <bmp/>
+      </win>
+   </launcher>
+
+   <vm>
+   </vm>
+
    <plugins>
       <plugin id="com.ibm.icu"/>
       <plugin id="javax.annotation"/>
@@ -21,35 +33,22 @@
       <plugin id="org.apache.batik.css"/>
       <plugin id="org.apache.batik.util"/>
       <plugin id="org.apache.batik.util.gui"/>
-      <plugin id="org.apache.commons.logging"/>
+      <plugin id="org.apache.commons.jxpath"/>
       <plugin id="org.eclipse.core.commands"/>
       <plugin id="org.eclipse.core.contenttype"/>
       <plugin id="org.eclipse.core.databinding"/>
-      <plugin id="org.eclipse.core.databinding.beans"/>
       <plugin id="org.eclipse.core.databinding.observable"/>
       <plugin id="org.eclipse.core.databinding.property"/>
       <plugin id="org.eclipse.core.expressions"/>
-      <plugin id="org.eclipse.core.filesystem"/>
-      <plugin id="org.eclipse.core.filesystem.aix.ppc" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.hpux.ia64_32" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.linux.ppc" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.linux.x86" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.linux.x86_64" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.macosx" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.solaris.sparc" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.win32.x86" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.win32.x86_64" fragment="true"/>
       <plugin id="org.eclipse.core.jobs"/>
-      <plugin id="org.eclipse.core.resources"/>
-      <plugin id="org.eclipse.core.resources.win32.x86" fragment="true"/>
-      <plugin id="org.eclipse.core.resources.win32.x86_64" fragment="true"/>
       <plugin id="org.eclipse.core.runtime"/>
-      <plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/>
       <plugin id="org.eclipse.e4.core.commands"/>
       <plugin id="org.eclipse.e4.core.contexts"/>
       <plugin id="org.eclipse.e4.core.di"/>
+      <plugin id="org.eclipse.e4.core.di.annotations"/>
       <plugin id="org.eclipse.e4.core.di.extensions"/>
       <plugin id="org.eclipse.e4.core.services"/>
+      <plugin id="org.eclipse.e4.emf.xpath"/>
       <plugin id="org.eclipse.e4.ui.bindings"/>
       <plugin id="org.eclipse.e4.ui.css.core"/>
       <plugin id="org.eclipse.e4.ui.css.swt"/>
@@ -105,12 +104,12 @@
       <plugin id="org.eclipse.emf.ecp.view.rule.model"/>
       <plugin id="org.eclipse.emf.ecp.view.rule.model.edit"/>
       <plugin id="org.eclipse.emf.ecp.view.swt.layout"/>
-      <plugin id="org.eclipse.emf.ecp.view.table.columnservice"/>
       <plugin id="org.eclipse.emf.ecp.view.table.model"/>
       <plugin id="org.eclipse.emf.ecp.view.table.model.edit"/>
       <plugin id="org.eclipse.emf.ecp.view.table.ui.swt"/>
       <plugin id="org.eclipse.emf.ecp.view.template.model"/>
       <plugin id="org.eclipse.emf.ecp.view.template.service"/>
+      <plugin id="org.eclipse.emf.ecp.view.unset"/>
       <plugin id="org.eclipse.emf.ecp.view.util.swt"/>
       <plugin id="org.eclipse.emf.ecp.view.validation"/>
       <plugin id="org.eclipse.emf.ecp.view.vertical.model"/>
@@ -118,22 +117,29 @@
       <plugin id="org.eclipse.emf.ecp.view.vertical.ui.swt"/>
       <plugin id="org.eclipse.emf.edit"/>
       <plugin id="org.eclipse.emf.edit.ui"/>
+      <plugin id="org.eclipse.emfforms.common"/>
+      <plugin id="org.eclipse.emfforms.core.services"/>
+      <plugin id="org.eclipse.emfforms.core.services.databinding.featurepath"/>
+      <plugin id="org.eclipse.emfforms.core.services.editsupport"/>
+      <plugin id="org.eclipse.emfforms.core.services.emf"/>
+      <plugin id="org.eclipse.emfforms.core.services.emfspecificservice"/>
+      <plugin id="org.eclipse.emfforms.core.services.locale.default"/>
+      <plugin id="org.eclipse.emfforms.localization"/>
+      <plugin id="org.eclipse.emfforms.swt.core"/>
+      <plugin id="org.eclipse.emfforms.swt.core.di"/>
+      <plugin id="org.eclipse.emfforms.swt.core.plugin"/>
+      <plugin id="org.eclipse.emfforms.view.model.localization"/>
       <plugin id="org.eclipse.equinox.app"/>
       <plugin id="org.eclipse.equinox.common"/>
-      <plugin id="org.eclipse.equinox.concurrent"/>
       <plugin id="org.eclipse.equinox.ds"/>
       <plugin id="org.eclipse.equinox.event"/>
       <plugin id="org.eclipse.equinox.preferences"/>
-      <plugin id="org.eclipse.equinox.region" fragment="true"/>
       <plugin id="org.eclipse.equinox.registry"/>
-      <plugin id="org.eclipse.equinox.transforms.hook" fragment="true"/>
       <plugin id="org.eclipse.equinox.util"/>
-      <plugin id="org.eclipse.equinox.weaving.hook" fragment="true"/>
       <plugin id="org.eclipse.help"/>
       <plugin id="org.eclipse.jface"/>
       <plugin id="org.eclipse.jface.databinding"/>
       <plugin id="org.eclipse.osgi"/>
-      <plugin id="org.eclipse.osgi.compatibility.state" fragment="true"/>
       <plugin id="org.eclipse.osgi.services"/>
       <plugin id="org.eclipse.swt"/>
       <plugin id="org.eclipse.swt.carbon.macosx" fragment="true"/>
@@ -157,8 +163,6 @@
       <plugin id="org.eclipse.ui"/>
       <plugin id="org.eclipse.ui.views"/>
       <plugin id="org.eclipse.ui.workbench"/>
-      <plugin id="org.hamcrest.core"/>
-      <plugin id="org.junit"/>
       <plugin id="org.w3c.css.sac"/>
       <plugin id="org.w3c.dom.events"/>
       <plugin id="org.w3c.dom.smil"/>
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 41224af..bdffc9b 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
 </project>
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 c517423..b6d0688 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
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: My Sample App
 Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.application.sample.fx;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.eclipse.fx.osgi.util;bundle-version="[1.0.0,2.0.0)",
  org.eclipse.fx.core.databinding;bundle-version="[1.0.0,2.0.0)",
@@ -37,4 +37,5 @@
  javafx.scene.web;version="2.0.0",
  javafx.stage;version="2.2.0",
  javafx.util;version="2.0.0"
-Export-Package: org.eclipse.emf.ecp.makeithappen.application.sample.fx;version="1.5.1";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.makeithappen.application.sample.fx;version="1.6.0";x-internal:=true
+Bundle-ActivationPolicy: lazy
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/makeithappen_JavaFX.target b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/makeithappen_JavaFX.target
index fd0ea73..209b97a 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/makeithappen_JavaFX.target
+++ b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/makeithappen_JavaFX.target
@@ -1,22 +1,22 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?pde version="3.8"?><target name="makeithappen_JavaFX" sequenceNumber="5">
-<locations>
-<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.emf.ecp.emfforms.runtime.feature.feature.group" version="0.0.0"/>
-<repository location="http://download.eclipse.org/ecp/releases/releases_15"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.fx.target.feature.feature.group" version="0.0.0"/>
-<repository location="http://download.eclipse.org/efxclipse/runtime-released/1.1.0/site"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.emf.ecp.view.sdk.fx.feature.feature.group" version="0.0.0"/>
-<repository location="http://download.eclipse.org/ecp/javafx"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.emf.sdk.feature.group" version="0.0.0"/>
-<repository location="http://download.eclipse.org/releases/luna/"/>
-</location>
-</locations>
-<targetJRE path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-</target>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

+<?pde version="3.8"?><target name="makeithappen_JavaFX" sequenceNumber="11">

+<locations>

+<location includeAllPlatforms="true" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">

+<unit id="org.eclipse.emf.ecp.view.sdk.fx.feature.feature.group" version="0.0.0"/>

+<repository location="http://download.eclipse.org/ecp/javafx"/>

+</location>

+<location includeAllPlatforms="true" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">

+<unit id="org.eclipse.emf.sdk.feature.group" version="0.0.0"/>

+<repository location="http://download.eclipse.org/releases/luna/"/>

+</location>

+<location includeAllPlatforms="true" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">

+<unit id="org.eclipse.emf.ecp.emfforms.runtime.feature.feature.group" version="1.5.1.20150303-1542"/>

+<repository location="http://download.eclipse.org/ecp/releases/releases_15"/>

+</location>

+<location includeAllPlatforms="true" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">

+<unit id="org.eclipse.fx.target.feature.feature.group" version="1.1.0.201411050703"/>

+<repository location="http://download.eclipse.org/efxclipse/runtime-released/1.1.0/site"/>

+</location>

+</locations>

+<targetJRE path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>

+</target>

diff --git a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/makeithappen_fx.product b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/makeithappen_fx.product
index 5d3e901..b978f73 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/makeithappen_fx.product
+++ b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/makeithappen_fx.product
@@ -3,7 +3,6 @@
 
 <product name="MakeItHappen Sample FX Product" uid="org.eclipse.emf.ecp.makeithappen.sample.product.fx" id="org.eclipse.emf.ecp.makeithappen.application.sample.fx.product" application="org.eclipse.emf.ecp.makeithappen.application.sample.fx.application" version="1.4.0" useFeatures="false" includeLaunchers="true">
 
-
    <configIni use="default">
    </configIni>
 
@@ -18,7 +17,6 @@
 
    <windowImages i16="/org.eclipse.emf.ecp.makeithappen.application.sample.fx/icons/bricks.png"/>
 
-
    <vm>
       <linux include="false">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8</linux>
    </vm>
@@ -30,7 +28,6 @@
       <plugin id="javax.servlet"/>
       <plugin id="javax.xml"/>
       <plugin id="org.apache.commons.lang"/>
-      <plugin id="org.eclipse.ant.core"/>
       <plugin id="org.eclipse.core.commands"/>
       <plugin id="org.eclipse.core.contenttype"/>
       <plugin id="org.eclipse.core.databinding"/>
@@ -41,7 +38,6 @@
       <plugin id="org.eclipse.core.jobs"/>
       <plugin id="org.eclipse.core.resources"/>
       <plugin id="org.eclipse.core.runtime"/>
-      <plugin id="org.eclipse.core.variables"/>
       <plugin id="org.eclipse.e4.core.commands"/>
       <plugin id="org.eclipse.e4.core.contexts"/>
       <plugin id="org.eclipse.e4.core.di"/>
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 080e263..75d580b 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,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: MakeItHappen Sample J2ee RAP
 Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
 Service-Component: OSGI-INF/makeithappenApplicationConfiguration.xml
-Require-Bundle: org.eclipse.rap.rwt;bundle-version="[2.0.0,3.0.0)",
+Require-Bundle: org.eclipse.rap.rwt;bundle-version="[2.0.0,4.0.0)",
  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.rap.jface;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.rap.jface;bundle-version="[2.0.0,4.0.0)",
  org.eclipse.emf.ecp.edit;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.rap.jface.databinding;bundle-version="[2.0.0,3.0.0)"
+ org.eclipse.rap.jface.databinding;bundle-version="[2.0.0,4.0.0)"
 Export-Package: org.eclipse.emf.ecp.makeithappen.application.sample.ra
  p.j2ee;version="1.4.0";x-internal:=true
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/MakeItHappen Sample J2EE RAP Application.launch b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/MakeItHappen Sample J2EE RAP Application.launch
index 0b699be..d2f4ea7 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/MakeItHappen Sample J2EE RAP Application.launch
+++ b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/MakeItHappen Sample J2EE RAP Application.launch
@@ -1,40 +1,40 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.rap.ui.launch.RAPLauncher">
-<booleanAttribute key="append.args" value="true"/>
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="true"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/MakeItHappen Sample J2EE RAP Application"/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="default_auto_start" value="true"/>
-<intAttribute key="default_start_level" value="4"/>
-<booleanAttribute key="includeOptional" value="false"/>
-<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.6"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -console -debugEMFForms"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.ignoreApp=true -Dosgi.noShutdown=true&#13;&#10;-Dorg.eclipse.equinox.http.jetty.log.stderr.threshold=info"/>
-<stringAttribute key="org.eclipse.rap.launch.browserMode" value="INTERNAL"/>
-<stringAttribute key="org.eclipse.rap.launch.contextpath" value="/"/>
-<stringAttribute key="org.eclipse.rap.launch.dataLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.rap.tools.launch/MakeItHappenSampleJ2EERAPApplication"/>
-<booleanAttribute key="org.eclipse.rap.launch.developmentMode" value="true"/>
-<booleanAttribute key="org.eclipse.rap.launch.openBrowser" value="true"/>
-<intAttribute key="org.eclipse.rap.launch.port" value="10080"/>
-<stringAttribute key="org.eclipse.rap.launch.servletPath" value="/makeithappen_j2ee"/>
-<intAttribute key="org.eclipse.rap.launch.sessionTimeout" value="0"/>
-<booleanAttribute key="org.eclipse.rap.launch.useDefaultDataLocation" value="true"/>
-<booleanAttribute key="org.eclipse.rap.launch.useManualContextPath" value="false"/>
-<booleanAttribute key="org.eclipse.rap.launch.useManualPort" value="false"/>
-<booleanAttribute key="org.eclipse.rap.launch.useSessionTimeout" value="false"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="target_bundles" 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,com.ibm.icu.base@default:default,javax.servlet@default:default,javax.xml@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@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.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.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.rap.edit.ui.minimal@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.http.servletbridge@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.servletbridge@default:default,org.eclipse.equinox.util@default:default,org.eclipse.jetty.continuation@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.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.rap.jface.databinding@default:default,org.eclipse.rap.jface@default:default,org.eclipse.rap.rwt.osgi@default:default,org.eclipse.rap.rwt@default:default,org.eclipse.emf.ecp.rap.util@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.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.label.model.edit@default:default,org.eclipse.emf.ecp.view.label.model@default:default,org.eclipse.emf.ecp.view.label.rap@default:default,org.eclipse.emf.ecp.view.label.ui.swt@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.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.swt.layout@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.util.swt.rap@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"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useCustomFeatures" value="false"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<stringAttribute key="workspace_bundles" value="org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee@default:default,org.eclipse.emf.ecp.makeithappen.model.edit@default:default,org.eclipse.emf.ecp.makeithappen.model.viewmodel@default:default,org.eclipse.emf.ecp.makeithappen.model@default:default"/>
-</launchConfiguration>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

+<launchConfiguration type="org.eclipse.rap.ui.launch.RAPLauncher">

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

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

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

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

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

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

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

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

+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/MakeItHappen Sample J2EE RAP Application"/>

+<booleanAttribute key="default" value="true"/>

+<booleanAttribute key="default_auto_start" value="true"/>

+<intAttribute key="default_start_level" value="4"/>

+<booleanAttribute key="includeOptional" value="false"/>

+<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.6"/>

+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -console -debugEMFForms"/>

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

+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.ignoreApp=true -Dosgi.noShutdown=true&#13;&#10;-Dorg.eclipse.equinox.http.jetty.log.stderr.threshold=info"/>

+<stringAttribute key="org.eclipse.rap.launch.browserMode" value="EXTERNAL"/>

+<stringAttribute key="org.eclipse.rap.launch.contextpath" value="/"/>

+<stringAttribute key="org.eclipse.rap.launch.dataLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.rap.tools.launch/MakeItHappenSampleJ2EERAPApplication"/>

+<booleanAttribute key="org.eclipse.rap.launch.developmentMode" value="true"/>

+<booleanAttribute key="org.eclipse.rap.launch.openBrowser" value="true"/>

+<intAttribute key="org.eclipse.rap.launch.port" value="10080"/>

+<stringAttribute key="org.eclipse.rap.launch.servletPath" value="/makeithappen_j2ee"/>

+<intAttribute key="org.eclipse.rap.launch.sessionTimeout" value="0"/>

+<booleanAttribute key="org.eclipse.rap.launch.useDefaultDataLocation" value="true"/>

+<booleanAttribute key="org.eclipse.rap.launch.useManualContextPath" value="false"/>

+<booleanAttribute key="org.eclipse.rap.launch.useManualPort" value="false"/>

+<booleanAttribute key="org.eclipse.rap.launch.useSessionTimeout" value="false"/>

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

+<booleanAttribute key="show_selected_only" value="false"/>

+<stringAttribute key="target_bundles" value="com.ibm.icu.base@default:default,javax.annotation@default:default,javax.inject@default:default,javax.servlet@default:default,javax.xml@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@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.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.edit@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,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.rap.util@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.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.label.model.edit@default:default,org.eclipse.emf.ecp.view.label.model@default:default,org.eclipse.emf.ecp.view.label.rap@default:default,org.eclipse.emf.ecp.view.label.ui.swt@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.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.swt.layout@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.util.swt.rap@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.edit@default:default,org.eclipse.emf.rap.edit.ui.minimal@default:default,org.eclipse.emfforms.common@default:default,org.eclipse.emfforms.core.services.databinding.featurepath@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.locale.default@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.plugin@default:default,org.eclipse.emfforms.swt.core@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.http.servletbridge@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.servletbridge@default:default,org.eclipse.equinox.util@default:default,org.eclipse.jetty.continuation@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.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.rap.jface.databinding@default:default,org.eclipse.rap.jface@default:default,org.eclipse.rap.rwt.osgi@default:default,org.eclipse.rap.rwt@default:default"/>

+<booleanAttribute key="tracing" value="false"/>

+<booleanAttribute key="useCustomFeatures" value="false"/>

+<booleanAttribute key="useDefaultConfigArea" value="true"/>

+<stringAttribute key="workspace_bundles" value="org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee@default:default,org.eclipse.emf.ecp.makeithappen.model.edit@default:default,org.eclipse.emf.ecp.makeithappen.model.viewmodel@default:default,org.eclipse.emf.ecp.makeithappen.model@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.util.swt.rap@default:default"/>

+</launchConfiguration>

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 621adea..687184e 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
@@ -1,18 +1,19 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?pde version="3.8"?><target name="makeithappen_RAP" sequenceNumber="11">
+<?pde version="3.8"?><target name="makeithappen_RAP" sequenceNumber="14">
 <locations>
 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.emf.rap.sdk.feature.group" version="0.0.0"/>
-<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/luna/"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.emf.ecp.rap.util.feature.feature.group" version="0.0.0"/>
 <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"/>
-<repository location="http://download.eclipse.org/ecp/releases/releases_15"/>
+<repository location="http://download.eclipse.org/ecp/releases/releases_target_16"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.rap.feature.feature.group" version="3.0.0.20150525-1014"/>
+<unit id="org.eclipse.rap.equinox.target.feature.feature.group" version="3.0.0.20150525-1356"/>
+<unit id="org.eclipse.emf.sdk.feature.group" version="2.11.0.v20150518-0831"/>
+<unit id="org.eclipse.emf.rap.sdk.feature.group" version="2.11.0.v20150518-0831"/>
+<unit id="org.eclipse.e4.rcp.feature.group" version="1.4.0.v20150522-1901"/>
+<repository location="http://download.eclipse.org/releases/mars/"/>
 </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 9965357..df9333a 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.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.0-SNAPSHOT</version>

 </project>

diff --git a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/j2ee/DataBindingPhaseListener.java b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/j2ee/DataBindingPhaseListener.java
index e909c73..18fd9ba 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/j2ee/DataBindingPhaseListener.java
+++ b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/j2ee/DataBindingPhaseListener.java
@@ -13,9 +13,9 @@
 
 import org.eclipse.core.databinding.observable.Realm;
 import org.eclipse.rap.rwt.RWT;
-import org.eclipse.rap.rwt.lifecycle.PhaseEvent;
-import org.eclipse.rap.rwt.lifecycle.PhaseId;
-import org.eclipse.rap.rwt.lifecycle.PhaseListener;
+import org.eclipse.rap.rwt.internal.lifecycle.PhaseEvent;
+import org.eclipse.rap.rwt.internal.lifecycle.PhaseId;
+import org.eclipse.rap.rwt.internal.lifecycle.PhaseListener;
 
 /**
  * A {@link PhaseListener} to set the default realm.
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/j2ee/MakeItHappenApplicationConfiguration.java b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/j2ee/MakeItHappenApplicationConfiguration.java
index 92c7ca6..8fc5ad1 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/j2ee/MakeItHappenApplicationConfiguration.java
+++ b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/j2ee/MakeItHappenApplicationConfiguration.java
@@ -27,7 +27,6 @@
 	@SuppressWarnings("deprecation")
 	@Override
 	public void configure(Application application) {
-		application.addPhaseListener(new DataBindingPhaseListener());
 		application.addEntryPoint("/makeithappen_j2ee", MakeItHappenEntryPoint.class, null); //$NON-NLS-1$
 	}
 
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/j2ee/RealmSetter.java b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/j2ee/RealmSetter.java
index 4647d25..ca547c7 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/j2ee/RealmSetter.java
+++ b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/j2ee/RealmSetter.java
@@ -17,6 +17,7 @@
 import org.eclipse.core.databinding.observable.Realm;
 import org.eclipse.jface.databinding.swt.SWTObservables;
 import org.eclipse.rap.rwt.RWT;
+import org.eclipse.rap.rwt.internal.application.ApplicationContextImpl;
 import org.eclipse.rap.rwt.service.UISession;
 import org.eclipse.swt.widgets.Display;
 
@@ -58,6 +59,8 @@
 	 */
 	public static void initialize() {
 		final UISession uiSession = RWT.getUISession();
+		ApplicationContextImpl.class.cast(RWT.getApplicationContext()).getPhaseListenerManager()
+			.addPhaseListener(new DataBindingPhaseListener());
 		if (uiSession.getAttribute("realm") == null) { //$NON-NLS-1$
 			final Realm realm = SWTObservables.getRealm(Display.getCurrent());
 			RealmSetter.setRealm(realm);
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 8762ddc..e95db86 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,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: MakeItHappen Sample RAP Application
 Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.application.sample.rap;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.emf.ecp.makeithappen.model.edit;bundle-version="[1.3.0,2.0.0)",
  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.rap.ui.workbench;bundle-version="[2.3.0,3.0.0)",
- org.eclipse.rap.jface;bundle-version="[2.3.0,3.0.0)",
- org.eclipse.rap.ui;bundle-version="[2.3.0,3.0.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.5.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/MakeItHappen Sample RAP Application.launch b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/MakeItHappen Sample RAP Application.launch
index c2ed0a7..beb2ced 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/MakeItHappen Sample RAP Application.launch
+++ b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/MakeItHappen Sample RAP Application.launch
@@ -7,7 +7,7 @@
 <stringAttribute key="bootstrap" value=""/>
 <stringAttribute key="checked" value="[NONE]"/>
 <booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="false"/>
+<booleanAttribute key="clearws" value="true"/>
 <stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/MakeItHappen Sample RAP Application"/>
 <booleanAttribute key="default" value="true"/>
 <booleanAttribute key="default_auto_start" value="true"/>
@@ -15,7 +15,7 @@
 <booleanAttribute key="includeOptional" value="false"/>
 <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.7"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -console -debugEMFForms"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -console"/>
 <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
 <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.ignoreApp=true -Dosgi.noShutdown=true&#13;&#10;-Dorg.eclipse.equinox.http.jetty.log.stderr.threshold=info"/>
 <stringAttribute key="org.eclipse.rap.launch.browserMode" value="EXTERNAL"/>
@@ -32,7 +32,7 @@
 <booleanAttribute key="org.eclipse.rap.launch.useSessionTimeout" value="false"/>
 <stringAttribute key="pde.version" value="3.3"/>
 <booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="target_bundles" value="com.ibm.icu.base@default:default,javax.servlet@default:default,javax.xml@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@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.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.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.rap.util@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.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.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.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.label.model.edit@default:default,org.eclipse.emf.ecp.view.label.model@default:default,org.eclipse.emf.ecp.view.label.rap@default:default,org.eclipse.emf.ecp.view.label.ui.swt@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.swt.layout@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.util.swt.rap@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.edit@default:default,org.eclipse.emf.rap.common.ui@default:default,org.eclipse.emf.rap.edit.ui@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.http.servletbridge@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.servletbridge@default:default,org.eclipse.equinox.util@default:default,org.eclipse.help@default:default,org.eclipse.jetty.continuation@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.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.rap.jface.databinding@default:default,org.eclipse.rap.jface@default:default,org.eclipse.rap.rwt.osgi@default:default,org.eclipse.rap.rwt@default:default,org.eclipse.rap.ui.views@default:default,org.eclipse.rap.ui.workbench@default:default,org.eclipse.rap.ui@default:default,org.hamcrest.core@default:default,org.junit@default:default"/>
+<stringAttribute key="target_bundles" value="com.ibm.icu.base@default:default,javax.annotation@default:default,javax.inject@default:default,javax.servlet@default:default,javax.xml@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@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.contexts@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.di.annotations@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.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.rap.util@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.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.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.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.label.model.edit@default:default,org.eclipse.emf.ecp.view.label.model@default:default,org.eclipse.emf.ecp.view.label.rap@default:default,org.eclipse.emf.ecp.view.label.ui.swt@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.swt.layout@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.rap@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.edit@default:default,org.eclipse.emf.rap.common.ui@default:default,org.eclipse.emf.rap.edit.ui.minimal@default:default,org.eclipse.emf.rap.edit.ui@default:default,org.eclipse.emfforms.common@default:default,org.eclipse.emfforms.core.services.databinding.featurepath@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.locale.default@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.plugin@default:default,org.eclipse.emfforms.swt.core@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.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.http.servletbridge@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.servletbridge@default:default,org.eclipse.equinox.util@default:default,org.eclipse.help@default:default,org.eclipse.jetty.continuation@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.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.rap.jface.databinding@default:default,org.eclipse.rap.jface@default:default,org.eclipse.rap.rwt.osgi@default:default,org.eclipse.rap.rwt@default:default,org.eclipse.rap.ui.views@default:default,org.eclipse.rap.ui.workbench@default:default,org.eclipse.rap.ui@default:default,org.hamcrest.core@default:default,org.junit@default:default"/>
 <booleanAttribute key="tracing" value="false"/>
 <booleanAttribute key="useCustomFeatures" value="false"/>
 <booleanAttribute key="useDefaultConfigArea" value="true"/>
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 484a2b5..687184e 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
@@ -1,18 +1,19 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?pde version="3.8"?><target name="makeithappen_RAP" sequenceNumber="12">
+<?pde version="3.8"?><target name="makeithappen_RAP" sequenceNumber="14">
 <locations>
 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.emf.rap.sdk.feature.group" version="0.0.0"/>
-<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/luna/"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.emf.ecp.rap.util.feature.feature.group" version="0.0.0"/>
 <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"/>
-<repository location="http://download.eclipse.org/ecp/releases/releases_15"/>
+<repository location="http://download.eclipse.org/ecp/releases/releases_target_16"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.rap.feature.feature.group" version="3.0.0.20150525-1014"/>
+<unit id="org.eclipse.rap.equinox.target.feature.feature.group" version="3.0.0.20150525-1356"/>
+<unit id="org.eclipse.emf.sdk.feature.group" version="2.11.0.v20150518-0831"/>
+<unit id="org.eclipse.emf.rap.sdk.feature.group" version="2.11.0.v20150518-0831"/>
+<unit id="org.eclipse.e4.rcp.feature.group" version="1.4.0.v20150522-1901"/>
+<repository location="http://download.eclipse.org/releases/mars/"/>
 </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 b779a73..9eddf97 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
 </project>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.feature/feature.xml b/examples/org.eclipse.emf.ecp.makeithappen.feature/feature.xml
index b99a151..fb467dc 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.5.1.qualifier"
+      version="1.6.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emf.ecp.makeithappen.model"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.5.1.qualifier">
+      license-feature-version="1.6.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 430c1df..f1c5ab1 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-feature</packaging>
 </project>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.model.edit/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.ecp.makeithappen.model.edit/META-INF/MANIFEST.MF
index eace912..cd235f9 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.makeithappen.model.task.provider.TaskEditPlugin$Implementation
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.makeithappen.model.task.provider;v
- ersion="1.5.1"
+ ersion="1.6.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.5.0,2.0.0)";visibility:=reexport,
  org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)";visibility:=reexport
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.model.edit/plugin.properties b/examples/org.eclipse.emf.ecp.makeithappen.model.edit/plugin.properties
index 2d339c9..522875a 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.model.edit/plugin.properties
+++ b/examples/org.eclipse.emf.ecp.makeithappen.model.edit/plugin.properties
@@ -1,7 +1,7 @@
 #
 
 pluginName = Task Edit Support
-providerName = www.example.org
+providerName = Eclipse Modeling Project
 
 _UI_CreateChild_text = {0}
 _UI_CreateChild_text2 = {1} {0}
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/plugin.properties b/examples/org.eclipse.emf.ecp.makeithappen.model.edit/plugin_en.properties
similarity index 100%
rename from examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/plugin.properties
rename to examples/org.eclipse.emf.ecp.makeithappen.model.edit/plugin_en.properties
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 0654672..d53364d 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.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.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 e1f83a4..f521087 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi
 Bundle-Vendor: Eclipse Modeling Project
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/OSGI-INF/l10n/bundle.properties b/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/OSGI-INF/l10n/bundle.properties
new file mode 100644
index 0000000..9ebae46
--- /dev/null
+++ b/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/OSGI-INF/l10n/bundle.properties
@@ -0,0 +1,2 @@
+Primary=Primary
+Secondary=Secondary
\ No newline at end of file
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/build.properties b/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/build.properties
index 329b01e..702a52f 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/build.properties
+++ b/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/build.properties
@@ -1,4 +1,5 @@
 bin.includes = META-INF/,\
                viewmodels/,\
-               plugin.xml
+               plugin.xml,\
+               OSGI-INF/
                
\ No newline at end of file
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 23994a8..5b6bf56 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
 </project>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/viewmodels/User.view b/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/viewmodels/User.view
index 333b7cf..1c03598 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/viewmodels/User.view
+++ b/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/viewmodels/User.view
@@ -2,62 +2,62 @@
 <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" ecorePath="/org.eclipse.emf.ecp.makeithappen.model/model/task.ecore">

   <rootEClass href="http://eclipse/org/emf/ecp/makeithappen/model/task#//User"/>

   <children xsi:type="org.eclipse.emf.ecp.view.horizontal.model:HorizontalLayout">

-    <children xsi:type="org.eclipse.emf.ecp.view.group.model:Group" name="Primary">

-      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control firstName">

+    <children xsi:type="org.eclipse.emf.ecp.view.group.model:Group" name="%Primary">

+      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control_firstName">

         <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference">

           <domainModelEFeature xsi:type="ecore:EAttribute" href="http://eclipse/org/emf/ecp/makeithappen/model/task#//User/firstName"/>

         </domainModelReference>

       </children>

-      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control lastName">

+      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control_lastName">

         <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference">

           <domainModelEFeature xsi:type="ecore:EAttribute" href="http://eclipse/org/emf/ecp/makeithappen/model/task#//User/lastName"/>

         </domainModelReference>

       </children>

-      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control email">

+      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control_email">

         <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference">

           <domainModelEFeature xsi:type="ecore:EAttribute" href="http://eclipse/org/emf/ecp/makeithappen/model/task#//User/email"/>

         </domainModelReference>

       </children>

-      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control dateOfBirth">

+      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control_dateOfBirth">

         <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference">

           <domainModelEFeature xsi:type="ecore:EAttribute" href="http://eclipse/org/emf/ecp/makeithappen/model/task#//User/dateOfBirth"/>

         </domainModelReference>

       </children>

-      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control gender">

+      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control_gender">

         <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference">

           <domainModelEFeature xsi:type="ecore:EAttribute" href="http://eclipse/org/emf/ecp/makeithappen/model/task#//User/gender"/>

         </domainModelReference>

       </children>

     </children>

-    <children xsi:type="org.eclipse.emf.ecp.view.group.model:Group" name="Secondary">

-      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control weight">

+    <children xsi:type="org.eclipse.emf.ecp.view.group.model:Group" name="%Secondary">

+      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control_weight">

         <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference">

           <domainModelEFeature xsi:type="ecore:EAttribute" href="http://eclipse/org/emf/ecp/makeithappen/model/task#//User/weight"/>

         </domainModelReference>

       </children>

-      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control heigth">

+      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control_heigth">

         <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference">

           <domainModelEFeature xsi:type="ecore:EAttribute" href="http://eclipse/org/emf/ecp/makeithappen/model/task#//User/heigth"/>

         </domainModelReference>

       </children>

-      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control active">

+      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control_active">

         <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference">

           <domainModelEFeature xsi:type="ecore:EAttribute" href="http://eclipse/org/emf/ecp/makeithappen/model/task#//User/active"/>

         </domainModelReference>

       </children>

-      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control timeOfRegistration">

+      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control_timeOfRegistration">

         <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference">

           <domainModelEFeature xsi:type="ecore:EAttribute" href="http://eclipse/org/emf/ecp/makeithappen/model/task#//User/timeOfRegistration"/>

         </domainModelReference>

       </children>

-      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control nationality">

+      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control_nationality">

         <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference">

           <domainModelEFeature xsi:type="ecore:EAttribute" href="http://eclipse/org/emf/ecp/makeithappen/model/task#//User/nationality"/>

         </domainModelReference>

       </children>

     </children>

   </children>

-  <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control tasks">

+  <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control_tasks">

     <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference">

       <domainModelEFeature xsi:type="ecore:EReference" href="http://eclipse/org/emf/ecp/makeithappen/model/task#//User/tasks"/>

     </domainModelReference>

diff --git a/examples/org.eclipse.emf.ecp.makeithappen.model/.gitignore b/examples/org.eclipse.emf.ecp.makeithappen.model/.gitignore
index f8d886b..b76a931 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.model/.gitignore
+++ b/examples/org.eclipse.emf.ecp.makeithappen.model/.gitignore
@@ -1,2 +1,3 @@
 /bin
 /bin/
+/bin/
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 ddaa11f..b3452b0 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,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.model;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.makeithappen.model.task;version="1
- .5.1",org.eclipse.emf.ecp.makeithappen.model.task.impl;version="1.5.1
- ",org.eclipse.emf.ecp.makeithappen.model.task.util;version="1.5.1"
+ .6.0",org.eclipse.emf.ecp.makeithappen.model.task.impl;version="1.6.0
+ ",org.eclipse.emf.ecp.makeithappen.model.task.util;version="1.6.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-ActivationPolicy: lazy
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.model/plugin.properties b/examples/org.eclipse.emf.ecp.makeithappen.model/plugin.properties
index 31cc930..f3f023a 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.model/plugin.properties
+++ b/examples/org.eclipse.emf.ecp.makeithappen.model/plugin.properties
@@ -1,4 +1,4 @@
 #
 
 pluginName = Makeithappen Model
-providerName = www.example.org
+providerName = Eclipse Modeling Project
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.model/pom.xml b/examples/org.eclipse.emf.ecp.makeithappen.model/pom.xml
index 183dd53..9e9f687 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.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.0-SNAPSHOT</version>

 </project>

diff --git a/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.project b/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.project
index 9d51a64..d5e5946 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.project
+++ b/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.project
@@ -25,6 +25,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/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 81c7da8..e27b90e 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EmailControl
 Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.view.email.renderer;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.eclipse.emf.ecp.edit.swt;bundle-version="[1.5.0,2.0.0)",
@@ -11,10 +11,21 @@
  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.5.0,2.0.0)"
-Import-Package: org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.5.0,2.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.core.runtime;bundle-version="[3.8.0,4.0.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.6.0,2.0.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="1.6.0",
+ org.eclipse.jface.layout;version="0.0.0",
  org.eclipse.swt;version="0.0.0",
  org.eclipse.swt.events;version="0.0.0",
  org.eclipse.swt.widgets;version="0.0.0"
 Export-Package: org.eclipse.emf.ecp.makeithappen.ui.emailcontrol;versi
- on="1.5.1"
+ on="1.6.0"
+Service-Component: OSGI-INF/emailRendererService.xml
+Bundle-ActivationPolicy: lazy
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/OSGI-INF/emailRendererService.xml b/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/OSGI-INF/emailRendererService.xml
new file mode 100644
index 0000000..82d8b00
--- /dev/null
+++ b/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/OSGI-INF/emailRendererService.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.emf.ecp.makeithappen.view.email.rendererservice">
+   <implementation class="org.eclipse.emf.ecp.makeithappen.ui.emailcontrol.EmailControlSWTRendererService"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService"/>
+   </service>
+   <reference bind="setEMFFormsDatabinding" cardinality="1..1" interface="org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding" name="EMFFormsDatabinding" policy="static"/>
+   <reference bind="setReportService" cardinality="1..1" interface="org.eclipse.emfforms.spi.common.report.ReportService" name="ReportService" policy="static"/>
+</scr:component>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/build.properties b/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/build.properties
index 6f20375..6210e84 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/build.properties
+++ b/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/build.properties
@@ -1,5 +1,5 @@
-source.. = src/

-output.. = bin/

-bin.includes = META-INF/,\

-               .,\

-               plugin.xml

+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               OSGI-INF/
+source.. = src/
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/plugin.xml b/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/plugin.xml
deleted file mode 100644
index 03924a0..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/plugin.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<?eclipse version="3.4"?>

-<plugin>

-   <extension

-         point="org.eclipse.emf.ecp.ui.view.swt.renderers">

-      <renderer

-            renderer="org.eclipse.emf.ecp.makeithappen.ui.emailcontrol.EmailControlRenderer">

-         <dynamicTest

-               testClass="org.eclipse.emf.ecp.makeithappen.ui.emailcontrol.EmailControlRendererTest">

-         </dynamicTest>

-      </renderer>

-   </extension>

-

-</plugin>

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 c21922f..e8cc82b 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.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.0-SNAPSHOT</version>

 </project>

diff --git a/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/src/org/eclipse/emf/ecp/makeithappen/ui/emailcontrol/EmailControlRenderer.java b/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/src/org/eclipse/emf/ecp/makeithappen/ui/emailcontrol/EmailControlRenderer.java
index b4fc2c3..ef07ea7 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/src/org/eclipse/emf/ecp/makeithappen/ui/emailcontrol/EmailControlRenderer.java
+++ b/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/src/org/eclipse/emf/ecp/makeithappen/ui/emailcontrol/EmailControlRenderer.java
@@ -1,60 +1,93 @@
-/**

- * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.

- *

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- * EclipseSource Munich - initial API and implementation

- */

-package org.eclipse.emf.ecp.makeithappen.ui.emailcontrol;

-

-import java.awt.Desktop;

-import java.io.IOException;

-import java.net.URI;

-

-import org.eclipse.emf.ecore.EStructuralFeature.Setting;

-import org.eclipse.emf.ecp.view.spi.core.swt.renderer.TextControlSWTRenderer;

-import org.eclipse.jface.layout.GridDataFactory;

-import org.eclipse.jface.layout.GridLayoutFactory;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.events.SelectionAdapter;

-import org.eclipse.swt.events.SelectionEvent;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-

-/**

- * A renderer to render an e-mail address.

- *

- * @author Lucas

- */

-public class EmailControlRenderer extends TextControlSWTRenderer {

-

-	@Override

-	protected Control createSWTControl(Composite parent, final Setting setting) {

-		final Composite main = new Composite(parent, SWT.NONE);

-		GridLayoutFactory.fillDefaults().numColumns(2).applyTo(main);

-		GridDataFactory.fillDefaults().grab(true, false)

-			.align(SWT.FILL, SWT.BEGINNING).applyTo(main);

-		final Control control = super.createSWTControl(main, setting);

-		final Button button = new Button(main, SWT.PUSH);

-		button.setText("Send Mail"); //$NON-NLS-1$

-		button.addSelectionListener(new SelectionAdapter() {

-			@Override

-			public void widgetSelected(SelectionEvent e) {

-				try {

-					Desktop.getDesktop().mail(

-						URI.create("mailto:" //$NON-NLS-1$

-							+ getModelValue(setting).getValue()));

-				} catch (final IOException e1) {

-					// ignore failure to open mailto

-				}

-			}

-		});

-		return control;

-	}

-

-}

+/**
+ * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource Munich - initial API and implementation
+ */
+package org.eclipse.emf.ecp.makeithappen.ui.emailcontrol;
+
+import java.awt.Desktop;
+import java.io.IOException;
+import java.net.URI;
+
+import javax.inject.Inject;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.core.swt.renderer.TextControlSWTRenderer;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+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.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.editsupport.EMFFormsEditSupport;
+import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.jface.layout.GridLayoutFactory;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+
+/**
+ * A renderer to render an e-mail address.
+ *
+ * @author Lucas
+ */
+public class EmailControlRenderer extends TextControlSWTRenderer {
+
+	/**
+	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService The {@link ReportService}
+	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
+	 * @param emfFormsLabelProvider The {@link EMFFormsLabelProvider}
+	 * @param vtViewTemplateProvider The {@link VTViewTemplateProvider}
+	 * @param emfFormsEditSupport The {@link EMFFormsEditSupport}
+	 */
+	@Inject
+	public EmailControlRenderer(VControl vElement, ViewModelContext viewContext,
+		ReportService reportService,
+		EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider,
+		VTViewTemplateProvider vtViewTemplateProvider, EMFFormsEditSupport emfFormsEditSupport) {
+		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider,
+			emfFormsEditSupport);
+	}
+
+	@Override
+	protected Control createSWTControl(Composite parent) {
+		final Composite main = new Composite(parent, SWT.NONE);
+		GridLayoutFactory.fillDefaults().numColumns(2).applyTo(main);
+		GridDataFactory.fillDefaults().grab(true, false)
+			.align(SWT.FILL, SWT.BEGINNING).applyTo(main);
+		final Control control = super.createSWTControl(main);
+		final Button button = new Button(main, SWT.PUSH);
+		button.setText("Send Mail"); //$NON-NLS-1$
+		button.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				try {
+					Desktop.getDesktop().mail(
+						URI.create("mailto:" //$NON-NLS-1$
+							+ getModelValue().getValue()));
+				} catch (final IOException e1) {
+					// ignore failure to open mailto
+				} catch (final DatabindingFailedException ex) {
+					getReportService().report(new DatabindingFailedReport(ex));
+					// ignore failure to open mailto
+				}
+			}
+		});
+		return control;
+	}
+
+}
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/src/org/eclipse/emf/ecp/makeithappen/ui/emailcontrol/EmailControlRendererTest.java b/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/src/org/eclipse/emf/ecp/makeithappen/ui/emailcontrol/EmailControlRendererTest.java
deleted file mode 100644
index 3d8736a..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/src/org/eclipse/emf/ecp/makeithappen/ui/emailcontrol/EmailControlRendererTest.java
+++ /dev/null
@@ -1,58 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.ui.emailcontrol;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage;
-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.model.VControl;
-import org.eclipse.emf.ecp.view.spi.model.VElement;
-
-/**
- * The renderer tester for the email control renderer.
- *
- * @author Eclipse Modeling Project
- *
- */
-public class EmailControlRendererTest implements ECPRendererTester {
-
-	/**
-	 * @param feature the structural feature.
-	 * @param vElement the VElement.
-	 * @param context the view model context.
-	 * @return whether the renderer is applicable for the feature.
-	 */
-	public int isApplicableForFeature(EStructuralFeature feature, VElement vElement, ViewModelContext context) {
-		if (feature.equals(TaskPackage.eINSTANCE.getUser_Email())) {
-			return 10;
-		}
-		return NOT_APPLICABLE;
-	}
-
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.view.model.common.ECPRendererTester#isApplicable(org.eclipse.emf.ecp.view.spi.model.VElement,
-	 *      org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
-	 */
-	@Override
-	public int isApplicable(VElement vElement, ViewModelContext viewModelContext) {
-		if (!VControl.class.isInstance(vElement)) {
-			return NOT_APPLICABLE;
-		}
-		final EStructuralFeature feature = VControl.class.cast(vElement).getDomainModelReference()
-			.getEStructuralFeatureIterator().next();
-		return isApplicableForFeature(feature, vElement, viewModelContext);
-	}
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/src/org/eclipse/emf/ecp/makeithappen/ui/emailcontrol/EmailControlSWTRendererService.java b/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/src/org/eclipse/emf/ecp/makeithappen/ui/emailcontrol/EmailControlSWTRendererService.java
new file mode 100644
index 0000000..b255369
--- /dev/null
+++ b/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/src/org/eclipse/emf/ecp/makeithappen/ui/emailcontrol/EmailControlSWTRendererService.java
@@ -0,0 +1,92 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.makeithappen.ui.emailcontrol;
+
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage;
+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.emfforms.spi.common.report.ReportService;
+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.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+
+/**
+ * EmailControlSWTRendererService which provides the EmailControlRenderer.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class EmailControlSWTRendererService implements EMFFormsDIRendererService<VControl> {
+
+	private EMFFormsDatabinding databindingService;
+	private ReportService reportService;
+
+	/**
+	 * Called by the initializer to set the EMFFormsDatabinding.
+	 *
+	 * @param databindingService The EMFFormsDatabinding
+	 */
+	protected void setEMFFormsDatabinding(EMFFormsDatabinding databindingService) {
+		this.databindingService = databindingService;
+	}
+
+	/**
+	 * Called by the initializer to set the ReportService.
+	 *
+	 * @param reportService The ReportService
+	 */
+	protected void setReportService(ReportService reportService) {
+		this.reportService = reportService;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (!VControl.class.isInstance(vElement)) {
+			return NOT_APPLICABLE;
+		}
+		final VControl control = (VControl) vElement;
+		IValueProperty valueProperty;
+		try {
+			valueProperty = databindingService.getValueProperty(control.getDomainModelReference(),
+				viewModelContext.getDomainModel());
+		} catch (final DatabindingFailedException ex) {
+			reportService.report(new DatabindingFailedReport(ex));
+			return NOT_APPLICABLE;
+		}
+		final EStructuralFeature eStructuralFeature = EStructuralFeature.class.cast(valueProperty.getValueType());
+		if (TaskPackage.eINSTANCE.getUser_Email().equals(eStructuralFeature)) {
+			return 10;
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#getRendererClass()
+	 */
+	@Override
+	public Class<? extends AbstractSWTRenderer<VControl>> getRendererClass() {
+		return EmailControlRenderer.class;
+	}
+
+}
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.project b/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.project
index 4a60f5e..5f3f9b9 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.project
+++ b/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.project
@@ -25,6 +25,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/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 d4bc88e..657d071 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,31 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Expandbar Group Renderer
 Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.view.group.renderer;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.emf.ecp.view.group.model;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)",
  org.eclipse.emf.ecp.edit;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.5.0,2.0.0)"
-Import-Package: org.eclipse.swt;version="0.0.0",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.6.0,2.0.0)"
+Import-Package: javax.inject;version="0.0.0",
+ org.eclipse.emfforms.spi.common.report;version="1.6.0",
+ org.eclipse.swt;version="0.0.0",
  org.eclipse.swt.events;version="0.0.0",
  org.eclipse.swt.graphics;version="0.0.0",
  org.eclipse.swt.internal;version="0.0.0",
  org.eclipse.swt.layout;version="0.0.0",
- org.eclipse.swt.widgets;version="0.0.0"
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.framework;version="1.8.0"
 Bundle-ClassPath: lib/org.eclipse.nebula.widgets.pgroup_1.0.0.201310241250.jar,
  .
 Export-Package: org.eclipse.emf.ecp.makeithappen.view.group.swt.pgroup
- ;version="1.5.1",org.eclipse.nebula.widgets.pgroup;version="1.0.0",or
+ ;version="1.6.0",org.eclipse.nebula.widgets.pgroup;version="1.0.0",or
  g.eclipse.nebula.widgets.pgroup.internal;version="1.0.0";x-internal:=
  true
+Service-Component: OSGI-INF/pGroupRendererService.xml
+Bundle-ActivationPolicy: lazy
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/OSGI-INF/pGroupRendererService.xml b/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/OSGI-INF/pGroupRendererService.xml
new file mode 100644
index 0000000..8672ebc
--- /dev/null
+++ b/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/OSGI-INF/pGroupRendererService.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emf.ecp.makeithappen.view.group.rendererservice">
+   <implementation class="org.eclipse.emf.ecp.makeithappen.view.group.swt.pgroup.PGroupRendererService"/>
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService"/>
+   </service>
+</scr:component>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/build.properties b/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/build.properties
index 75461ed..d122819 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/build.properties
+++ b/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/build.properties
@@ -1,6 +1,6 @@
-source.. = src/
 output.. = bin/
 bin.includes = META-INF/,\
                .,\
-               plugin.xml,\
-               lib/org.eclipse.nebula.widgets.pgroup_1.0.0.201310241250.jar
+               lib/org.eclipse.nebula.widgets.pgroup_1.0.0.201310241250.jar,\
+               OSGI-INF/
+source.. = src/
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/plugin.xml b/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/plugin.xml
deleted file mode 100644
index 98c4798..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/plugin.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         point="org.eclipse.emf.ecp.ui.view.swt.renderers">
-      <renderer
-            renderer="org.eclipse.emf.ecp.makeithappen.view.group.swt.pgroup.PGroupRenderer">
-         <staticTest
-               element="org.eclipse.emf.ecp.view.spi.group.model.VGroup"
-               priority="10">
-         </staticTest>
-      </renderer>
-   </extension>
-
-</plugin>
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 b488938..7e26c6e 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.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.0-SNAPSHOT</version>

 </project>

diff --git a/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/src/org/eclipse/emf/ecp/makeithappen/view/group/swt/pgroup/PGroupRenderer.java b/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/src/org/eclipse/emf/ecp/makeithappen/view/group/swt/pgroup/PGroupRenderer.java
index 61050ac..e45f331 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/src/org/eclipse/emf/ecp/makeithappen/view/group/swt/pgroup/PGroupRenderer.java
+++ b/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/src/org/eclipse/emf/ecp/makeithappen/view/group/swt/pgroup/PGroupRenderer.java
@@ -13,9 +13,15 @@
 
 import java.util.Collection;
 
+import javax.inject.Inject;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer;
 import org.eclipse.emf.ecp.view.spi.group.model.VGroup;
 import org.eclipse.emf.ecp.view.spi.model.VContainedElement;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
 import org.eclipse.nebula.widgets.pgroup.PGroup;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Composite;
@@ -28,6 +34,21 @@
  */
 public class PGroupRenderer extends ContainerSWTRenderer<VGroup> {
 
+	/**
+	 * Default constructor.
+	 *
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 * @param factory the {@link EMFFormsRendererFactory}
+	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
+	 */
+	@Inject
+	public PGroupRenderer(VGroup vElement, ViewModelContext viewContext, ReportService reportService,
+		EMFFormsRendererFactory factory, EMFFormsDatabinding emfFormsDatabinding) {
+		super(vElement, viewContext, reportService, factory, emfFormsDatabinding);
+	}
+
 	@Override
 	protected Collection<VContainedElement> getChildren() {
 		return getVElement().getChildren();
@@ -42,8 +63,8 @@
 	protected Composite getComposite(Composite parent) {
 		parent.setBackgroundMode(SWT.INHERIT_FORCE);
 		final PGroup group = new PGroup(parent, SWT.SMOOTH);
-		if (getVElement().getName() != null) {
-			group.setText(getVElement().getName());
+		if (getVElement().getLabel() != null) {
+			group.setText(getVElement().getLabel());
 		}
 		return group;
 	}
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/src/org/eclipse/emf/ecp/makeithappen/view/group/swt/pgroup/PGroupRendererService.java b/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/src/org/eclipse/emf/ecp/makeithappen/view/group/swt/pgroup/PGroupRendererService.java
new file mode 100644
index 0000000..2ad0408
--- /dev/null
+++ b/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/src/org/eclipse/emf/ecp/makeithappen/view/group/swt/pgroup/PGroupRendererService.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.makeithappen.view.group.swt.pgroup;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.group.model.VGroup;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+
+/**
+ * PGroupSWTRendererService which provides the PGroupSWTRenderer.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class PGroupRendererService implements EMFFormsDIRendererService<VGroup> {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#isApplicable(VElement,ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (!VGroup.class.isInstance(vElement)) {
+			return NOT_APPLICABLE;
+		}
+		return 10;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#getRendererClass()
+	 */
+	@Override
+	public Class<? extends AbstractSWTRenderer<VGroup>> getRendererClass() {
+		return PGroupRenderer.class;
+	}
+
+}
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 f12fdb0..0d7c124 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Make It Happen Examples
 Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.wizards;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.makeithappen.internal.wizards.Activator
 Require-Bundle: org.eclipse.ui;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
@@ -13,6 +13,6 @@
  org.eclipse.emf.common;bundle-version="[2.9.0,3.0.0)"
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.emf.ecp.makeithappen.internal.wizards;x-in
- ternal:=true;version="1.5.1"
+ ternal:=true;version="1.6.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: Eclipse Modeling Project
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/.gitignore b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/.gitignore
new file mode 100644
index 0000000..cb245f4
--- /dev/null
+++ b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/.gitignore
@@ -0,0 +1,4 @@
+# Ignore everything
+*
+# But not these files...
+!.gitignore
\ No newline at end of file
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.checkstyle b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.checkstyle
deleted file mode 100644
index dccf8af..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.checkstyle
+++ /dev/null
@@ -1,10 +0,0 @@
-<?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.makeithappen.model/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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.classpath b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.classpath
deleted file mode 100644
index ad32c83..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.project b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.project
deleted file mode 100644
index c8240a1..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.emf.ecp.makeithappen.application.sample.e3</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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.settings/org.eclipse.core.resources.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index f548abb..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,6 +0,0 @@
-eclipse.preferences.version=1
-
-encoding//model/etypes.ecore=UTF-8
-
-
-encoding/<project>=UTF-8
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.settings/org.eclipse.core.runtime.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index 5a0ad22..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index c948297..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,418 +0,0 @@
-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.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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.settings/org.eclipse.jdt.launching.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index 3bb2352..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.settings/org.eclipse.ltk.core.refactoring.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index 864e30f..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.settings/org.eclipse.pde.api.tools.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index e4e3c00..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,97 +0,0 @@
-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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.settings/org.eclipse.pde.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 0bbee3c..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/META-INF/MANIFEST.MF
deleted file mode 100644
index 501eba3..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,14 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: MakeItHappen Sample Application e3
-Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.application.sample.e3;singleton:=true
-Bundle-Version: 1.5.1.qualifier
-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.3.0,2.0.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.5.0,2.0.0)"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Bundle-ActivationPolicy: lazy
-Bundle-Vendor: Eclipse Modeling Framework
-Export-Package: org.eclipse.emf.ecp.makeithappen.application.sample.e3;version="1.0.0";x-internal:=true
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/build.properties b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/build.properties
deleted file mode 100644
index 0d3d3a7..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/build.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = plugin.xml,\
-               META-INF/,\
-               .,\
-               icons/
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/icons/bricks.png b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/icons/bricks.png
deleted file mode 100644
index 0905f93..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/icons/bricks.png
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/makeithappen_e3.product b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/makeithappen_e3.product
deleted file mode 100644
index 2c5a386..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/makeithappen_e3.product
+++ /dev/null
@@ -1,192 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?>
-
-<product name="MakeItHappen Sample e3 Product" uid="org.eclipse.emf.ecp.makeithappen.sample.product.e3" id="org.eclipse.emf.ecp.makeithappen.application.sample.e3.product" application="org.eclipse.emf.ecp.makeithappen.application.sample.e3.application" version="1.4.0" useFeatures="false" includeLaunchers="true">
-
-   <configIni use="default">
-   </configIni>
-
-   <launcherArgs>
-      <programArgs>-consoleLog -debugEMFForms
-      </programArgs>
-      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
-      </vmArgsMac>
-   </launcherArgs>
-
-   <windowImages i16="/org.eclipse.emf.ecp.makeithappen.application.sample.e3/icons/bricks.png"/>
-
-   <vm>
-      <windows include="false">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7</windows>
-   </vm>
-
-   <plugins>
-      <plugin id="com.ibm.icu"/>
-      <plugin id="javax.annotation"/>
-      <plugin id="javax.inject"/>
-      <plugin id="javax.servlet"/>
-      <plugin id="javax.xml"/>
-      <plugin id="org.apache.batik.css"/>
-      <plugin id="org.apache.batik.util"/>
-      <plugin id="org.apache.batik.util.gui"/>
-      <plugin id="org.eclipse.ant.core"/>
-      <plugin id="org.eclipse.compare.core"/>
-      <plugin id="org.eclipse.core.commands"/>
-      <plugin id="org.eclipse.core.contenttype"/>
-      <plugin id="org.eclipse.core.databinding"/>
-      <plugin id="org.eclipse.core.databinding.observable"/>
-      <plugin id="org.eclipse.core.databinding.property"/>
-      <plugin id="org.eclipse.core.expressions"/>
-      <plugin id="org.eclipse.core.filesystem"/>
-      <plugin id="org.eclipse.core.filesystem.aix.ppc" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.hpux.ia64_32" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.linux.ppc" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.linux.x86" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.linux.x86_64" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.macosx" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.solaris.sparc" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.win32.x86" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.win32.x86_64" fragment="true"/>
-      <plugin id="org.eclipse.core.jobs"/>
-      <plugin id="org.eclipse.core.resources"/>
-      <plugin id="org.eclipse.core.resources.win32.x86" fragment="true"/>
-      <plugin id="org.eclipse.core.resources.win32.x86_64" fragment="true"/>
-      <plugin id="org.eclipse.core.runtime"/>
-      <plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/>
-      <plugin id="org.eclipse.core.variables"/>
-      <plugin id="org.eclipse.e4.core.commands"/>
-      <plugin id="org.eclipse.e4.core.contexts"/>
-      <plugin id="org.eclipse.e4.core.di"/>
-      <plugin id="org.eclipse.e4.core.di.extensions"/>
-      <plugin id="org.eclipse.e4.core.services"/>
-      <plugin id="org.eclipse.e4.ui.bindings"/>
-      <plugin id="org.eclipse.e4.ui.css.core"/>
-      <plugin id="org.eclipse.e4.ui.css.swt"/>
-      <plugin id="org.eclipse.e4.ui.css.swt.theme"/>
-      <plugin id="org.eclipse.e4.ui.di"/>
-      <plugin id="org.eclipse.e4.ui.model.workbench"/>
-      <plugin id="org.eclipse.e4.ui.services"/>
-      <plugin id="org.eclipse.e4.ui.widgets"/>
-      <plugin id="org.eclipse.e4.ui.workbench"/>
-      <plugin id="org.eclipse.e4.ui.workbench.addons.swt"/>
-      <plugin id="org.eclipse.e4.ui.workbench.renderers.swt"/>
-      <plugin id="org.eclipse.e4.ui.workbench.swt"/>
-      <plugin id="org.eclipse.e4.ui.workbench3"/>
-      <plugin id="org.eclipse.emf.cdo.ecore.retrofit" fragment="true"/>
-      <plugin id="org.eclipse.emf.common"/>
-      <plugin id="org.eclipse.emf.common.ui"/>
-      <plugin id="org.eclipse.emf.databinding"/>
-      <plugin id="org.eclipse.emf.databinding.edit"/>
-      <plugin id="org.eclipse.emf.ecore"/>
-      <plugin id="org.eclipse.emf.ecore.change"/>
-      <plugin id="org.eclipse.emf.ecore.edit"/>
-      <plugin id="org.eclipse.emf.ecore.xmi"/>
-      <plugin id="org.eclipse.emf.ecp.common"/>
-      <plugin id="org.eclipse.emf.ecp.common.ui"/>
-      <plugin id="org.eclipse.emf.ecp.edit"/>
-      <plugin id="org.eclipse.emf.ecp.edit.swt"/>
-      <plugin id="org.eclipse.emf.ecp.edit.swt.test" fragment="true"/>
-      <plugin id="org.eclipse.emf.ecp.makeithappen.application.sample.e3"/>
-      <plugin id="org.eclipse.emf.ecp.makeithappen.model"/>
-      <plugin id="org.eclipse.emf.ecp.makeithappen.model.edit"/>
-      <plugin id="org.eclipse.emf.ecp.makeithappen.model.viewmodel"/>
-      <plugin id="org.eclipse.emf.ecp.ui.view"/>
-      <plugin id="org.eclipse.emf.ecp.ui.view.swt"/>
-      <plugin id="org.eclipse.emf.ecp.view.categorization.model"/>
-      <plugin id="org.eclipse.emf.ecp.view.categorization.model.edit"/>
-      <plugin id="org.eclipse.emf.ecp.view.categorization.swt"/>
-      <plugin id="org.eclipse.emf.ecp.view.context"/>
-      <plugin id="org.eclipse.emf.ecp.view.context.locale"/>
-      <plugin id="org.eclipse.emf.ecp.view.control.multireference"/>
-      <plugin id="org.eclipse.emf.ecp.view.core.swt"/>
-      <plugin id="org.eclipse.emf.ecp.view.group.model"/>
-      <plugin id="org.eclipse.emf.ecp.view.group.model.edit"/>
-      <plugin id="org.eclipse.emf.ecp.view.group.swt.embedded"/>
-      <plugin id="org.eclipse.emf.ecp.view.group.ui.swt"/>
-      <plugin id="org.eclipse.emf.ecp.view.groupedgrid.model"/>
-      <plugin id="org.eclipse.emf.ecp.view.groupedgrid.model.edit"/>
-      <plugin id="org.eclipse.emf.ecp.view.groupedgrid.ui.swt"/>
-      <plugin id="org.eclipse.emf.ecp.view.horizontal.model"/>
-      <plugin id="org.eclipse.emf.ecp.view.horizontal.model.edit"/>
-      <plugin id="org.eclipse.emf.ecp.view.horizontal.ui.swt"/>
-      <plugin id="org.eclipse.emf.ecp.view.label.model"/>
-      <plugin id="org.eclipse.emf.ecp.view.label.model.edit"/>
-      <plugin id="org.eclipse.emf.ecp.view.label.ui.swt"/>
-      <plugin id="org.eclipse.emf.ecp.view.model"/>
-      <plugin id="org.eclipse.emf.ecp.view.model.common"/>
-      <plugin id="org.eclipse.emf.ecp.view.model.edit"/>
-      <plugin id="org.eclipse.emf.ecp.view.model.provider.generator"/>
-      <plugin id="org.eclipse.emf.ecp.view.model.provider.xmi"/>
-      <plugin id="org.eclipse.emf.ecp.view.rule"/>
-      <plugin id="org.eclipse.emf.ecp.view.rule.model"/>
-      <plugin id="org.eclipse.emf.ecp.view.rule.model.edit"/>
-      <plugin id="org.eclipse.emf.ecp.view.swt.layout"/>
-      <plugin id="org.eclipse.emf.ecp.view.table.columnservice"/>
-      <plugin id="org.eclipse.emf.ecp.view.table.model"/>
-      <plugin id="org.eclipse.emf.ecp.view.table.model.edit"/>
-      <plugin id="org.eclipse.emf.ecp.view.table.ui.swt"/>
-      <plugin id="org.eclipse.emf.ecp.view.template.model"/>
-      <plugin id="org.eclipse.emf.ecp.view.template.service"/>
-      <plugin id="org.eclipse.emf.ecp.view.unset"/>
-      <plugin id="org.eclipse.emf.ecp.view.util.swt"/>
-      <plugin id="org.eclipse.emf.ecp.view.validation"/>
-      <plugin id="org.eclipse.emf.ecp.view.vertical.model"/>
-      <plugin id="org.eclipse.emf.ecp.view.vertical.model.edit"/>
-      <plugin id="org.eclipse.emf.ecp.view.vertical.ui.swt"/>
-      <plugin id="org.eclipse.emf.edit"/>
-      <plugin id="org.eclipse.emf.edit.ui"/>
-      <plugin id="org.eclipse.equinox.app"/>
-      <plugin id="org.eclipse.equinox.bidi"/>
-      <plugin id="org.eclipse.equinox.common"/>
-      <plugin id="org.eclipse.equinox.ds"/>
-      <plugin id="org.eclipse.equinox.event"/>
-      <plugin id="org.eclipse.equinox.preferences"/>
-      <plugin id="org.eclipse.equinox.region" fragment="true"/>
-      <plugin id="org.eclipse.equinox.registry"/>
-      <plugin id="org.eclipse.equinox.transforms.hook" fragment="true"/>
-      <plugin id="org.eclipse.equinox.util"/>
-      <plugin id="org.eclipse.equinox.weaving.hook" fragment="true"/>
-      <plugin id="org.eclipse.help"/>
-      <plugin id="org.eclipse.jface"/>
-      <plugin id="org.eclipse.jface.databinding"/>
-      <plugin id="org.eclipse.osgi"/>
-      <plugin id="org.eclipse.osgi.compatibility.state" fragment="true"/>
-      <plugin id="org.eclipse.osgi.services"/>
-      <plugin id="org.eclipse.swt"/>
-      <plugin id="org.eclipse.swt.carbon.macosx" fragment="true"/>
-      <plugin id="org.eclipse.swt.cocoa.macosx" fragment="true"/>
-      <plugin id="org.eclipse.swt.cocoa.macosx.x86_64" fragment="true"/>
-      <plugin id="org.eclipse.swt.gtk.linux.ppc" fragment="true"/>
-      <plugin id="org.eclipse.swt.gtk.linux.ppc64" fragment="true"/>
-      <plugin id="org.eclipse.swt.gtk.linux.s390" fragment="true"/>
-      <plugin id="org.eclipse.swt.gtk.linux.s390x" fragment="true"/>
-      <plugin id="org.eclipse.swt.gtk.linux.x86" fragment="true"/>
-      <plugin id="org.eclipse.swt.gtk.linux.x86_64" fragment="true"/>
-      <plugin id="org.eclipse.swt.gtk.solaris.sparc" fragment="true"/>
-      <plugin id="org.eclipse.swt.gtk.solaris.x86" fragment="true"/>
-      <plugin id="org.eclipse.swt.motif.aix.ppc" fragment="true"/>
-      <plugin id="org.eclipse.swt.motif.hpux.ia64_32" fragment="true"/>
-      <plugin id="org.eclipse.swt.motif.linux.x86" fragment="true"/>
-      <plugin id="org.eclipse.swt.motif.solaris.sparc" fragment="true"/>
-      <plugin id="org.eclipse.swt.photon.qnx.x86" fragment="true"/>
-      <plugin id="org.eclipse.swt.win32.win32.x86" fragment="true"/>
-      <plugin id="org.eclipse.swt.win32.win32.x86_64" fragment="true"/>
-      <plugin id="org.eclipse.team.core"/>
-      <plugin id="org.eclipse.ui"/>
-      <plugin id="org.eclipse.ui.views"/>
-      <plugin id="org.eclipse.ui.workbench"/>
-      <plugin id="org.hamcrest.core"/>
-      <plugin id="org.junit"/>
-      <plugin id="org.w3c.css.sac"/>
-      <plugin id="org.w3c.dom.events"/>
-      <plugin id="org.w3c.dom.smil"/>
-      <plugin id="org.w3c.dom.svg"/>
-   </plugins>
-
-   <configurations>
-      <plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="0" />
-      <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
-      <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="1" />
-      <plugin id="org.eclipse.osgi" autoStart="true" startLevel="-1" />
-   </configurations>
-
-</product>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/plugin.xml b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/plugin.xml
deleted file mode 100644
index 1b0634b..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/plugin.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-
-   <extension
-         id="application"
-         point="org.eclipse.core.runtime.applications">
-      <application
-            icon="icons/bricks.png">
-         <run
-               class="org.eclipse.emf.ecp.makeithappen.application.sample.e3.Application">
-         </run>
-      </application>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            class="org.eclipse.emf.ecp.makeithappen.application.sample.e3.Perspective"
-            fixed="true"
-            icon="icons/bricks.png"
-            id="TestApp.perspective"
-            name="Perspective">
-      </perspective>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views">
-      <view
-            class="org.eclipse.emf.ecp.makeithappen.application.sample.e3.View"
-            icon="icons/bricks.png"
-            id="TestApp.view"
-            name="View">
-      </view>
-   </extension>
-   <extension
-         id="product"
-         point="org.eclipse.core.runtime.products">
-      <product
-            application="org.eclipse.emf.ecp.makeithappen.application.sample.e3.application"
-            name="MakeItHappen Sample e3 Product">
-         <property
-               name="appName"
-               value="MakeItHappen Sample e3 Product">
-         </property>
-         <property
-               name="windowImages"
-               value="icons/bricks.png">
-         </property>
-      </product>
-   </extension>
-
-</plugin>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/pom.xml b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/pom.xml
deleted file mode 100644
index c5e8da9..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/pom.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?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-examples-parent</artifactId>
-    <version>1.4.0-SNAPSHOT</version>
-    <relativePath>../../releng/org.eclipse.emf.ecp.releng.examples/</relativePath>
-  </parent>
-
-  <artifactId>org.eclipse.emf.ecp.makeithappen.application.sample.e3</artifactId>
-  <packaging>eclipse-plugin</packaging>
-
-  <groupId>org.eclipse.emf.ecp</groupId>
-  <version>1.4.0-SNAPSHOT</version>
-</project>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/src/org/eclipse/emf/ecp/makeithappen/application/sample/e3/Application.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/src/org/eclipse/emf/ecp/makeithappen/application/sample/e3/Application.java
deleted file mode 100644
index 9703368..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/src/org/eclipse/emf/ecp/makeithappen/application/sample/e3/Application.java
+++ /dev/null
@@ -1,63 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.application.sample.e3;
-
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * This class controls all aspects of the application's execution.
- */
-public class Application implements IApplication {
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext)
-	 */
-	@Override
-	public Object start(IApplicationContext context) {
-		final Display display = PlatformUI.createDisplay();
-		try {
-			final int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
-			if (returnCode == PlatformUI.RETURN_RESTART) {
-				return IApplication.EXIT_RESTART;
-			}
-			return IApplication.EXIT_OK;
-		} finally {
-			display.dispose();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.equinox.app.IApplication#stop()
-	 */
-	@Override
-	public void stop() {
-		if (!PlatformUI.isWorkbenchRunning()) {
-			return;
-		}
-		final IWorkbench workbench = PlatformUI.getWorkbench();
-		final Display display = workbench.getDisplay();
-		display.syncExec(new Runnable() {
-			@Override
-			public void run() {
-				if (!display.isDisposed()) {
-					workbench.close();
-				}
-			}
-		});
-	}
-}
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/src/org/eclipse/emf/ecp/makeithappen/application/sample/e3/ApplicationWorkbenchAdvisor.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/src/org/eclipse/emf/ecp/makeithappen/application/sample/e3/ApplicationWorkbenchAdvisor.java
deleted file mode 100644
index 8193fc9..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/src/org/eclipse/emf/ecp/makeithappen/application/sample/e3/ApplicationWorkbenchAdvisor.java
+++ /dev/null
@@ -1,36 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.application.sample.e3;
-
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-
-/**
- * The ApplicationWorkbenchAdvisor which defines which Perspective to use.
- */
-public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {
-
-	private static final String PERSPECTIVE_ID = "TestApp.perspective"; //$NON-NLS-1$
-
-	@Override
-	public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(
-		IWorkbenchWindowConfigurer configurer) {
-		return new ApplicationWorkbenchWindowAdvisor(configurer);
-	}
-
-	@Override
-	public String getInitialWindowPerspectiveId() {
-		return PERSPECTIVE_ID;
-	}
-
-}
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/src/org/eclipse/emf/ecp/makeithappen/application/sample/e3/ApplicationWorkbenchWindowAdvisor.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/src/org/eclipse/emf/ecp/makeithappen/application/sample/e3/ApplicationWorkbenchWindowAdvisor.java
deleted file mode 100644
index 5832696..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/src/org/eclipse/emf/ecp/makeithappen/application/sample/e3/ApplicationWorkbenchWindowAdvisor.java
+++ /dev/null
@@ -1,40 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.application.sample.e3;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-
-/**
- * The ApplicationWorkbenchWindowAdvisor which sets default window sizes.
- */
-public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
-
-	/**
-	 * Default constructor.
-	 *
-	 * @param configurer the {@link IWorkbenchWindowConfigurer}.
-	 */
-	public ApplicationWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-		super(configurer);
-	}
-
-	@Override
-	public void preWindowOpen() {
-		final IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
-		configurer.setInitialSize(new Point(800, 500));
-		configurer.setShowCoolBar(false);
-		configurer.setShowStatusLine(false);
-		configurer.setTitle("MakeItHappen ECP Sample e3 Application"); //$NON-NLS-1$
-	}
-}
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/src/org/eclipse/emf/ecp/makeithappen/application/sample/e3/Perspective.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/src/org/eclipse/emf/ecp/makeithappen/application/sample/e3/Perspective.java
deleted file mode 100644
index 6f7481c..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/src/org/eclipse/emf/ecp/makeithappen/application/sample/e3/Perspective.java
+++ /dev/null
@@ -1,31 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.application.sample.e3;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-/**
- * Default Perspective.
- *
- */
-public class Perspective implements IPerspectiveFactory {
-
-	@Override
-	public void createInitialLayout(IPageLayout layout) {
-		layout.setEditorAreaVisible(false);
-		layout.setFixed(true);
-		layout.addStandaloneView(View.ID, false, IPageLayout.LEFT, 1.0f, layout.getEditorArea());
-
-	}
-
-}
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/src/org/eclipse/emf/ecp/makeithappen/application/sample/e3/View.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/src/org/eclipse/emf/ecp/makeithappen/application/sample/e3/View.java
deleted file mode 100644
index 328bc5f..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/src/org/eclipse/emf/ecp/makeithappen/application/sample/e3/View.java
+++ /dev/null
@@ -1,89 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.application.sample.e3;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage;
-import org.eclipse.emf.ecp.ui.view.ECPRendererException;
-import org.eclipse.emf.ecp.ui.view.swt.DefaultReferenceService;
-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.context.ViewModelContextFactory;
-import org.eclipse.emf.ecp.view.spi.provider.ViewProviderHelper;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.part.ViewPart;
-
-/**
- * Example View for displaying a Forms Editor for an EObject.
- */
-public class View extends ViewPart {
-	/**
-	 * View ID.
-	 */
-	public static final String ID = "TestApp.view"; //$NON-NLS-1$
-
-	private ECPSWTView render;
-
-	private EObject getDummyEObject() {
-		// Replace this with your own model EClass to test the application with a custom model
-		final EClass eClass = TaskPackage.eINSTANCE.getUser();
-		return EcoreUtil.create(eClass);
-	}
-
-	/**
-	 * This is a callback that will allow us to create the viewer and initialize
-	 * it.
-	 *
-	 * @param parent the {@link Composite} to render to
-	 */
-	@Override
-	public void createPartControl(Composite parent) {
-
-		final EObject dummyObject = getDummyEObject();
-
-		try {
-			final Composite content = new Composite(parent, SWT.NONE);
-			content.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WHITE));
-			content.setLayout(GridLayoutFactory.fillDefaults().margins(10, 10).create());
-			content.setLayoutData(GridDataFactory.fillDefaults().create());
-
-			final ViewModelContext vmc = ViewModelContextFactory.INSTANCE.createViewModelContext(
-				ViewProviderHelper.getView(dummyObject, null), dummyObject, new DefaultReferenceService());
-
-			render = ECPSWTViewRenderer.INSTANCE.render(content, vmc);
-
-			content.layout();
-
-		} catch (final ECPRendererException e) {
-			e.printStackTrace();
-		}
-		parent.layout();
-	}
-
-	@Override
-	public void setFocus() {
-	}
-
-	@Override
-	public void dispose() {
-		if (render != null) {
-			render.dispose();
-		}
-	}
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.checkstyle b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.checkstyle
deleted file mode 100644
index dccf8af..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.checkstyle
+++ /dev/null
@@ -1,10 +0,0 @@
-<?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.makeithappen.model/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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.classpath b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.classpath
deleted file mode 100644
index ad32c83..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.project b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.project
deleted file mode 100644
index ae950c8..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.emf.ecp.makeithappen.application.sample.e4</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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.core.resources.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index f548abb..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,6 +0,0 @@
-eclipse.preferences.version=1
-
-encoding//model/etypes.ecore=UTF-8
-
-
-encoding/<project>=UTF-8
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.core.runtime.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index 5a0ad22..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index c948297..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,418 +0,0 @@
-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.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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.jdt.launching.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index 3bb2352..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.jdt.ui.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 791508d..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,115 +0,0 @@
-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_to_enhanced_for_loop=false
-cleanup.correct_indentation=true
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=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_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_blocks=true
-cleanup.use_blocks_only_for_return_and_throw=false
-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_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_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=true
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=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_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_blocks=true
-sp_cleanup.use_blocks_only_for_return_and_throw=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
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.ltk.core.refactoring.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index 864e30f..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.pde.api.tools.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index e4e3c00..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,97 +0,0 @@
-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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.pde.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 0bbee3c..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/Application.e4xmi b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/Application.e4xmi
deleted file mode 100644
index ee98c7c..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/Application.e4xmi
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<application:Application xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:application="http://www.eclipse.org/ui/2010/UIModel/application" xmlns:basic="http://www.eclipse.org/ui/2010/UIModel/application/ui/basic" xmi:id="_GMrUQAD5EeSknd978uYCFA" elementId="org.eclipse.e4.ide.application" bindingContexts="_GMrUSQD5EeSknd978uYCFA">
-  <children xsi:type="basic:TrimmedWindow" xmi:id="_GMrUQQD5EeSknd978uYCFA" label="MakeItHappen ECP Sample e4 Application" iconURI="platform:/plugin/org.eclipse.emf.ecp.makeithappen.application.sample.e4/icons/bricks.png" width="800" height="500">
-    <children xsi:type="basic:Part" xmi:id="_GMr7ZQD5EeSknd978uYCFA" contributionURI="bundleclass://org.eclipse.emf.ecp.makeithappen.application.sample.e4/org.eclipse.emf.ecp.makeithappen.application.sample.e4.parts.SamplePart" label="Sample Part" iconURI="platform:/plugin/org.eclipse.emf.ecp.makeithappen.application.sample.e4/icons/bricks.png"/>
-  </children>
-  <bindingTables xmi:id="_GMrUTgD5EeSknd978uYCFA" bindingContext="_GMrUSQD5EeSknd978uYCFA">
-    <bindings xmi:id="_GMr7UAD5EeSknd978uYCFA" keySequence="M1+Q"/>
-    <bindings xmi:id="_GMr7UwD5EeSknd978uYCFA" keySequence="M1+O"/>
-    <bindings xmi:id="_GMr7VgD5EeSknd978uYCFA" keySequence="M1+S"/>
-    <bindings xmi:id="_GMr7WQD5EeSknd978uYCFA" keySequence="M1+A"/>
-  </bindingTables>
-  <rootContext xmi:id="_GMrUSQD5EeSknd978uYCFA" elementId="org.eclipse.ui.contexts.dialogAndWindow" name="In Dialog and Windows">
-    <children xmi:id="_GMrUSgD5EeSknd978uYCFA" elementId="org.eclipse.ui.contexts.window" name="In Windows"/>
-    <children xmi:id="_GMrUSwD5EeSknd978uYCFA" elementId="org.eclipse.ui.contexts.dialog" name="In Dialogs"/>
-  </rootContext>
-  <addons xmi:id="_GMrUQgD5EeSknd978uYCFA" elementId="org.eclipse.e4.core.commands.service" contributionURI="bundleclass://org.eclipse.e4.core.commands/org.eclipse.e4.core.commands.CommandServiceAddon"/>
-  <addons xmi:id="_GMrUQwD5EeSknd978uYCFA" elementId="org.eclipse.e4.ui.contexts.service" contributionURI="bundleclass://org.eclipse.e4.ui.services/org.eclipse.e4.ui.services.ContextServiceAddon"/>
-  <addons xmi:id="_GMrURAD5EeSknd978uYCFA" elementId="org.eclipse.e4.ui.bindings.service" contributionURI="bundleclass://org.eclipse.e4.ui.bindings/org.eclipse.e4.ui.bindings.BindingServiceAddon"/>
-  <addons xmi:id="_GMrURQD5EeSknd978uYCFA" elementId="org.eclipse.e4.ui.workbench.commands.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.CommandProcessingAddon"/>
-  <addons xmi:id="_GMrURgD5EeSknd978uYCFA" elementId="org.eclipse.e4.ui.workbench.handler.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.HandlerProcessingAddon"/>
-  <addons xmi:id="_GMrURwD5EeSknd978uYCFA" elementId="org.eclipse.e4.ui.workbench.contexts.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.ContextProcessingAddon"/>
-  <addons xmi:id="_GMrUSAD5EeSknd978uYCFA" elementId="org.eclipse.e4.ui.workbench.bindings.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench.swt/org.eclipse.e4.ui.workbench.swt.util.BindingProcessingAddon"/>
-</application:Application>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/META-INF/MANIFEST.MF
deleted file mode 100644
index a9a65b9..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,24 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: MakeItHappen Sample Application e4
-Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.application.sample.e4;singleton:=true
-Bundle-Version: 1.5.1.qualifier
-Require-Bundle: javax.inject;bundle-version="1.0.0",
- org.eclipse.core.runtime;bundle-version="[3.9.100,4.0.0)",
- org.eclipse.swt;bundle-version="[3.102.1,4.0.0)",
- org.eclipse.e4.ui.model.workbench;bundle-version="[1.0.1,2.0.0)",
- org.eclipse.jface;bundle-version="[3.9.1,4.0.0)",
- org.eclipse.e4.ui.services;bundle-version="[1.0.1,2.0.0)",
- org.eclipse.e4.ui.workbench;bundle-version="[1.0.2,2.0.0)",
- org.eclipse.e4.core.di;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.e4.ui.di;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.e4.core.contexts;bundle-version="[1.3.1,2.0.0)",
- org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
- org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.ui.view;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.5.0,2.0.0)"
-Import-Package: javax.annotation;version="1.0.0"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.makeithappen.application.sample.e4.parts;version="1.4.0";x-internal:=true
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/build.properties b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/build.properties
deleted file mode 100644
index 78274d0..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/build.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               Application.e4xmi,\
-               icons/
-source.. = src/
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/icons/bricks.png b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/icons/bricks.png
deleted file mode 100644
index 0905f93..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/icons/bricks.png
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/makeithappen_e4.product b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/makeithappen_e4.product
deleted file mode 100644
index c5e8a5a..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/makeithappen_e4.product
+++ /dev/null
@@ -1,171 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?>
-
-<product name="MakeItHappen Sample e4 Product" uid="org.eclipse.emf.ecp.makeithappen.sample.product.e4" id="org.eclipse.emf.ecp.makeithappen.application.sample.e4.product" application="org.eclipse.e4.ui.workbench.swt.E4Application" version="1.4.0.qualifier" useFeatures="false" includeLaunchers="true">
-
-   <configIni use="default">
-   </configIni>
-
-   <launcherArgs>
-      <programArgs>-clearPersistedState -debugEMFForms
-      </programArgs>
-      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
-      </vmArgsMac>
-   </launcherArgs>
-
-   <windowImages i16="/org.eclipse.emf.ecp.makeithappen.application.sample.e4/icons/bricks.png"/>
-
-   <plugins>
-      <plugin id="com.ibm.icu"/>
-      <plugin id="javax.annotation"/>
-      <plugin id="javax.inject"/>
-      <plugin id="javax.xml"/>
-      <plugin id="org.apache.batik.css"/>
-      <plugin id="org.apache.batik.util"/>
-      <plugin id="org.apache.batik.util.gui"/>
-      <plugin id="org.apache.commons.logging"/>
-      <plugin id="org.eclipse.core.commands"/>
-      <plugin id="org.eclipse.core.contenttype"/>
-      <plugin id="org.eclipse.core.databinding"/>
-      <plugin id="org.eclipse.core.databinding.beans"/>
-      <plugin id="org.eclipse.core.databinding.observable"/>
-      <plugin id="org.eclipse.core.databinding.property"/>
-      <plugin id="org.eclipse.core.expressions"/>
-      <plugin id="org.eclipse.core.filesystem"/>
-      <plugin id="org.eclipse.core.filesystem.aix.ppc" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.hpux.ia64_32" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.linux.ppc" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.linux.x86" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.linux.x86_64" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.macosx" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.solaris.sparc" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.win32.x86" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.win32.x86_64" fragment="true"/>
-      <plugin id="org.eclipse.core.jobs"/>
-      <plugin id="org.eclipse.core.resources"/>
-      <plugin id="org.eclipse.core.resources.win32.x86" fragment="true"/>
-      <plugin id="org.eclipse.core.resources.win32.x86_64" fragment="true"/>
-      <plugin id="org.eclipse.core.runtime"/>
-      <plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/>
-      <plugin id="org.eclipse.e4.core.commands"/>
-      <plugin id="org.eclipse.e4.core.contexts"/>
-      <plugin id="org.eclipse.e4.core.di"/>
-      <plugin id="org.eclipse.e4.core.di.extensions"/>
-      <plugin id="org.eclipse.e4.core.services"/>
-      <plugin id="org.eclipse.e4.ui.bindings"/>
-      <plugin id="org.eclipse.e4.ui.css.core"/>
-      <plugin id="org.eclipse.e4.ui.css.swt"/>
-      <plugin id="org.eclipse.e4.ui.css.swt.theme"/>
-      <plugin id="org.eclipse.e4.ui.di"/>
-      <plugin id="org.eclipse.e4.ui.model.workbench"/>
-      <plugin id="org.eclipse.e4.ui.services"/>
-      <plugin id="org.eclipse.e4.ui.widgets"/>
-      <plugin id="org.eclipse.e4.ui.workbench"/>
-      <plugin id="org.eclipse.e4.ui.workbench.addons.swt"/>
-      <plugin id="org.eclipse.e4.ui.workbench.renderers.swt"/>
-      <plugin id="org.eclipse.e4.ui.workbench.renderers.swt.cocoa"/>
-      <plugin id="org.eclipse.e4.ui.workbench.swt"/>
-      <plugin id="org.eclipse.e4.ui.workbench3"/>
-      <plugin id="org.eclipse.emf.common"/>
-      <plugin id="org.eclipse.emf.common.ui"/>
-      <plugin id="org.eclipse.emf.databinding"/>
-      <plugin id="org.eclipse.emf.databinding.edit"/>
-      <plugin id="org.eclipse.emf.ecore"/>
-      <plugin id="org.eclipse.emf.ecore.change"/>
-      <plugin id="org.eclipse.emf.ecore.edit"/>
-      <plugin id="org.eclipse.emf.ecore.xmi"/>
-      <plugin id="org.eclipse.emf.ecp.common"/>
-      <plugin id="org.eclipse.emf.ecp.common.ui"/>
-      <plugin id="org.eclipse.emf.ecp.edit"/>
-      <plugin id="org.eclipse.emf.ecp.edit.swt"/>
-      <plugin id="org.eclipse.emf.ecp.makeithappen.application.sample.e4"/>
-      <plugin id="org.eclipse.emf.ecp.makeithappen.model"/>
-      <plugin id="org.eclipse.emf.ecp.makeithappen.model.edit"/>
-      <plugin id="org.eclipse.emf.ecp.makeithappen.model.viewmodel"/>
-      <plugin id="org.eclipse.emf.ecp.ui.view"/>
-      <plugin id="org.eclipse.emf.ecp.ui.view.swt"/>
-      <plugin id="org.eclipse.emf.ecp.view.context"/>
-      <plugin id="org.eclipse.emf.ecp.view.context.locale"/>
-      <plugin id="org.eclipse.emf.ecp.view.control.multireference"/>
-      <plugin id="org.eclipse.emf.ecp.view.core.swt"/>
-      <plugin id="org.eclipse.emf.ecp.view.group.model"/>
-      <plugin id="org.eclipse.emf.ecp.view.group.model.edit"/>
-      <plugin id="org.eclipse.emf.ecp.view.group.swt.embedded"/>
-      <plugin id="org.eclipse.emf.ecp.view.group.ui.swt"/>
-      <plugin id="org.eclipse.emf.ecp.view.horizontal.model"/>
-      <plugin id="org.eclipse.emf.ecp.view.horizontal.model.edit"/>
-      <plugin id="org.eclipse.emf.ecp.view.horizontal.ui.swt"/>
-      <plugin id="org.eclipse.emf.ecp.view.label.model"/>
-      <plugin id="org.eclipse.emf.ecp.view.label.model.edit"/>
-      <plugin id="org.eclipse.emf.ecp.view.label.ui.swt"/>
-      <plugin id="org.eclipse.emf.ecp.view.model"/>
-      <plugin id="org.eclipse.emf.ecp.view.model.common"/>
-      <plugin id="org.eclipse.emf.ecp.view.model.edit"/>
-      <plugin id="org.eclipse.emf.ecp.view.model.provider.generator"/>
-      <plugin id="org.eclipse.emf.ecp.view.model.provider.xmi"/>
-      <plugin id="org.eclipse.emf.ecp.view.rule"/>
-      <plugin id="org.eclipse.emf.ecp.view.rule.model"/>
-      <plugin id="org.eclipse.emf.ecp.view.rule.model.edit"/>
-      <plugin id="org.eclipse.emf.ecp.view.swt.layout"/>
-      <plugin id="org.eclipse.emf.ecp.view.table.columnservice"/>
-      <plugin id="org.eclipse.emf.ecp.view.table.model"/>
-      <plugin id="org.eclipse.emf.ecp.view.table.model.edit"/>
-      <plugin id="org.eclipse.emf.ecp.view.table.ui.swt"/>
-      <plugin id="org.eclipse.emf.ecp.view.template.model"/>
-      <plugin id="org.eclipse.emf.ecp.view.template.service"/>
-      <plugin id="org.eclipse.emf.ecp.view.util.swt"/>
-      <plugin id="org.eclipse.emf.ecp.view.validation"/>
-      <plugin id="org.eclipse.emf.ecp.view.vertical.model"/>
-      <plugin id="org.eclipse.emf.ecp.view.vertical.model.edit"/>
-      <plugin id="org.eclipse.emf.ecp.view.vertical.ui.swt"/>
-      <plugin id="org.eclipse.emf.edit"/>
-      <plugin id="org.eclipse.emf.edit.ui"/>
-      <plugin id="org.eclipse.equinox.app"/>
-      <plugin id="org.eclipse.equinox.common"/>
-      <plugin id="org.eclipse.equinox.concurrent"/>
-      <plugin id="org.eclipse.equinox.ds"/>
-      <plugin id="org.eclipse.equinox.event"/>
-      <plugin id="org.eclipse.equinox.preferences"/>
-      <plugin id="org.eclipse.equinox.region" fragment="true"/>
-      <plugin id="org.eclipse.equinox.registry"/>
-      <plugin id="org.eclipse.equinox.transforms.hook" fragment="true"/>
-      <plugin id="org.eclipse.equinox.util"/>
-      <plugin id="org.eclipse.equinox.weaving.hook" fragment="true"/>
-      <plugin id="org.eclipse.help"/>
-      <plugin id="org.eclipse.jface"/>
-      <plugin id="org.eclipse.jface.databinding"/>
-      <plugin id="org.eclipse.osgi"/>
-      <plugin id="org.eclipse.osgi.compatibility.state" fragment="true"/>
-      <plugin id="org.eclipse.osgi.services"/>
-      <plugin id="org.eclipse.swt"/>
-      <plugin id="org.eclipse.swt.carbon.macosx" fragment="true"/>
-      <plugin id="org.eclipse.swt.cocoa.macosx" fragment="true"/>
-      <plugin id="org.eclipse.swt.cocoa.macosx.x86_64" fragment="true"/>
-      <plugin id="org.eclipse.swt.gtk.linux.ppc" fragment="true"/>
-      <plugin id="org.eclipse.swt.gtk.linux.ppc64" fragment="true"/>
-      <plugin id="org.eclipse.swt.gtk.linux.s390" fragment="true"/>
-      <plugin id="org.eclipse.swt.gtk.linux.s390x" fragment="true"/>
-      <plugin id="org.eclipse.swt.gtk.linux.x86" fragment="true"/>
-      <plugin id="org.eclipse.swt.gtk.linux.x86_64" fragment="true"/>
-      <plugin id="org.eclipse.swt.gtk.solaris.sparc" fragment="true"/>
-      <plugin id="org.eclipse.swt.gtk.solaris.x86" fragment="true"/>
-      <plugin id="org.eclipse.swt.motif.aix.ppc" fragment="true"/>
-      <plugin id="org.eclipse.swt.motif.hpux.ia64_32" fragment="true"/>
-      <plugin id="org.eclipse.swt.motif.linux.x86" fragment="true"/>
-      <plugin id="org.eclipse.swt.motif.solaris.sparc" fragment="true"/>
-      <plugin id="org.eclipse.swt.photon.qnx.x86" fragment="true"/>
-      <plugin id="org.eclipse.swt.win32.win32.x86" fragment="true"/>
-      <plugin id="org.eclipse.swt.win32.win32.x86_64" fragment="true"/>
-      <plugin id="org.eclipse.ui"/>
-      <plugin id="org.eclipse.ui.views"/>
-      <plugin id="org.eclipse.ui.workbench"/>
-      <plugin id="org.hamcrest.core"/>
-      <plugin id="org.junit"/>
-      <plugin id="org.w3c.css.sac"/>
-      <plugin id="org.w3c.dom.events"/>
-      <plugin id="org.w3c.dom.smil"/>
-      <plugin id="org.w3c.dom.svg"/>
-   </plugins>
-
-
-</product>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/plugin.xml b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/plugin.xml
deleted file mode 100644
index efe5c20..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/plugin.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<plugin>
-
-   <extension
-         id="product"
-         point="org.eclipse.core.runtime.products">
-      <product
-            name="MakeItHappen Sample e4 Product"
-            application="org.eclipse.e4.ui.workbench.swt.E4Application">
-         <property
-               name="appName"
-               value="MakeItHappen Sample e4 Product">
-         </property>
-         <property
-               name="windowImages"
-               value="icons/bricks.png">
-         </property>
-      </product>
-   </extension>
-
-</plugin>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/pom.xml b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/pom.xml
deleted file mode 100644
index 7de0d73..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/pom.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?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-examples-parent</artifactId>
-    <version>1.4.0-SNAPSHOT</version>
-    <relativePath>../../releng/org.eclipse.emf.ecp.releng.examples/</relativePath>
-  </parent>
-
-  <artifactId>org.eclipse.emf.ecp.makeithappen.application.sample.e4</artifactId>
-  <packaging>eclipse-plugin</packaging>
-
-  <groupId>org.eclipse.emf.ecp</groupId>
-  <version>1.4.0-SNAPSHOT</version>
-</project>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/src/org/eclipse/emf/ecp/makeithappen/application/sample/e4/parts/SamplePart.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/src/org/eclipse/emf/ecp/makeithappen/application/sample/e4/parts/SamplePart.java
deleted file mode 100644
index c9096f7..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/src/org/eclipse/emf/ecp/makeithappen/application/sample/e4/parts/SamplePart.java
+++ /dev/null
@@ -1,66 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.application.sample.e4.parts;
-
-import javax.annotation.PostConstruct;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage;
-import org.eclipse.emf.ecp.ui.view.ECPRendererException;
-import org.eclipse.emf.ecp.ui.view.swt.DefaultReferenceService;
-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.context.ViewModelContextFactory;
-import org.eclipse.emf.ecp.view.spi.provider.ViewProviderHelper;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Example Part for displaying a Forms Editor for an EObject.
- */
-public class SamplePart {
-
-	private EObject getDummyEObject() {
-		// Replace this with your own model EClass to test the application with a custom model
-		final EClass eClass = TaskPackage.eINSTANCE.getUser();
-		return EcoreUtil.create(eClass);
-	}
-
-	/**
-	 * Render the editor.
-	 * 
-	 * @param parent the {@link Composite} to render to
-	 */
-	@PostConstruct
-	public void createComposite(Composite parent) {
-		final EObject dummyObject = getDummyEObject();
-		try {
-			final Composite content = new Composite(parent, SWT.NONE);
-			content.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WHITE));
-			content.setLayout(GridLayoutFactory.fillDefaults().margins(10, 10).create());
-			content.setLayoutData(GridDataFactory.fillDefaults().create());
-
-			final ViewModelContext vmc = ViewModelContextFactory.INSTANCE.createViewModelContext(
-				ViewProviderHelper.getView(dummyObject, null), dummyObject, new DefaultReferenceService());
-
-			ECPSWTViewRenderer.INSTANCE.render(content, vmc);
-			content.layout();
-		} catch (final ECPRendererException e) {
-			e.printStackTrace();
-		}
-		parent.layout();
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.classpath b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.classpath
deleted file mode 100644
index 22f3064..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.project b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.project
deleted file mode 100644
index edccfc9..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.emf.ecp.makeithappen.application.sample.fx</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.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.settings/org.eclipse.core.resources.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index f548abb..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,6 +0,0 @@
-eclipse.preferences.version=1
-
-encoding//model/etypes.ecore=UTF-8
-
-
-encoding/<project>=UTF-8
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.settings/org.eclipse.core.runtime.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index 5a0ad22..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.settings/org.eclipse.jdt.launching.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index 3bb2352..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.settings/org.eclipse.jdt.ui.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 791508d..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,115 +0,0 @@
-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_to_enhanced_for_loop=false
-cleanup.correct_indentation=true
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=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_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_blocks=true
-cleanup.use_blocks_only_for_return_and_throw=false
-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_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_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=true
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=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_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_blocks=true
-sp_cleanup.use_blocks_only_for_return_and_throw=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
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.settings/org.eclipse.ltk.core.refactoring.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index 864e30f..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.settings/org.eclipse.pde.api.tools.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index e4e3c00..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,97 +0,0 @@
-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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.settings/org.eclipse.pde.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 0bbee3c..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/META-INF/MANIFEST.MF
deleted file mode 100644
index c517423..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,40 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: My Sample App
-Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.application.sample.fx;singleton:=true
-Bundle-Version: 1.5.1.qualifier
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Require-Bundle: org.eclipse.fx.osgi.util;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.fx.core.databinding;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.fx.ui.databinding;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.equinox.app;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.5.0,2.0.0)"
-Import-Package: javafx.animation;version="2.0.0",
- javafx.application;version="2.0.0",
- javafx.beans;version="2.0.0",
- javafx.beans.binding;version="2.0.0",
- javafx.beans.property;version="2.0.0",
- javafx.beans.value;version="2.0.0",
- javafx.collections;version="2.0.0",
- javafx.concurrent;version="2.0.0",
- javafx.event;version="2.0.0",
- javafx.fxml;version="2.0.0",
- javafx.geometry;version="2.0.0",
- javafx.scene;version="2.0.0",
- javafx.scene.chart;version="2.0.0",
- javafx.scene.control;version="2.0.0",
- javafx.scene.control.cell;version="2.0.0",
- javafx.scene.effect;version="2.0.0",
- javafx.scene.image;version="2.0.0",
- javafx.scene.input;version="2.0.0",
- javafx.scene.layout;version="2.2.0",
- javafx.scene.media;version="2.0.0",
- javafx.scene.paint;version="2.0.0",
- javafx.scene.shape;version="2.0.0",
- javafx.scene.text;version="2.0.0",
- javafx.scene.transform;version="2.0.0",
- javafx.scene.web;version="2.0.0",
- javafx.stage;version="2.2.0",
- javafx.util;version="2.0.0"
-Export-Package: org.eclipse.emf.ecp.makeithappen.application.sample.fx;version="1.5.1";x-internal:=true
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/build.properties b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/build.properties
deleted file mode 100644
index f71a1b5..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/build.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-bin.includes = .,\
- META-INF/,\
- plugin.xml,\
-css/
-
-source.. = src/
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/css/default.css b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/css/default.css
deleted file mode 100644
index a38730e..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/css/default.css
+++ /dev/null
@@ -1 +0,0 @@
-/* Main CSS-File */
\ No newline at end of file
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/icons/bricks.png b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/icons/bricks.png
deleted file mode 100644
index 0905f93..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/icons/bricks.png
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/makeithappen_JavaFX.target b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/makeithappen_JavaFX.target
deleted file mode 100644
index fd0ea73..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/makeithappen_JavaFX.target
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?pde version="3.8"?><target name="makeithappen_JavaFX" sequenceNumber="5">
-<locations>
-<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.emf.ecp.emfforms.runtime.feature.feature.group" version="0.0.0"/>
-<repository location="http://download.eclipse.org/ecp/releases/releases_15"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.fx.target.feature.feature.group" version="0.0.0"/>
-<repository location="http://download.eclipse.org/efxclipse/runtime-released/1.1.0/site"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.emf.ecp.view.sdk.fx.feature.feature.group" version="0.0.0"/>
-<repository location="http://download.eclipse.org/ecp/javafx"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.emf.sdk.feature.group" version="0.0.0"/>
-<repository location="http://download.eclipse.org/releases/luna/"/>
-</location>
-</locations>
-<targetJRE path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-</target>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/makeithappen_fx.product b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/makeithappen_fx.product
deleted file mode 100644
index 5d3e901..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/makeithappen_fx.product
+++ /dev/null
@@ -1,117 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?>
-
-<product name="MakeItHappen Sample FX Product" uid="org.eclipse.emf.ecp.makeithappen.sample.product.fx" id="org.eclipse.emf.ecp.makeithappen.application.sample.fx.product" application="org.eclipse.emf.ecp.makeithappen.application.sample.fx.application" version="1.4.0" useFeatures="false" includeLaunchers="true">
-
-
-   <configIni use="default">
-   </configIni>
-
-   <launcherArgs>
-      <programArgs>-consoleLog -nosplash -debugEMFForms
-      </programArgs>
-      <vmArgs>-Dosgi.framework.extensions=org.eclipse.fx.osgi
-      </vmArgs>
-      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
-      </vmArgsMac>
-   </launcherArgs>
-
-   <windowImages i16="/org.eclipse.emf.ecp.makeithappen.application.sample.fx/icons/bricks.png"/>
-
-
-   <vm>
-      <linux include="false">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8</linux>
-   </vm>
-
-   <plugins>
-      <plugin id="com.ibm.icu"/>
-      <plugin id="javax.annotation"/>
-      <plugin id="javax.inject"/>
-      <plugin id="javax.servlet"/>
-      <plugin id="javax.xml"/>
-      <plugin id="org.apache.commons.lang"/>
-      <plugin id="org.eclipse.ant.core"/>
-      <plugin id="org.eclipse.core.commands"/>
-      <plugin id="org.eclipse.core.contenttype"/>
-      <plugin id="org.eclipse.core.databinding"/>
-      <plugin id="org.eclipse.core.databinding.observable"/>
-      <plugin id="org.eclipse.core.databinding.property"/>
-      <plugin id="org.eclipse.core.expressions"/>
-      <plugin id="org.eclipse.core.filesystem"/>
-      <plugin id="org.eclipse.core.jobs"/>
-      <plugin id="org.eclipse.core.resources"/>
-      <plugin id="org.eclipse.core.runtime"/>
-      <plugin id="org.eclipse.core.variables"/>
-      <plugin id="org.eclipse.e4.core.commands"/>
-      <plugin id="org.eclipse.e4.core.contexts"/>
-      <plugin id="org.eclipse.e4.core.di"/>
-      <plugin id="org.eclipse.e4.core.di.extensions"/>
-      <plugin id="org.eclipse.e4.core.services"/>
-      <plugin id="org.eclipse.e4.ui.di"/>
-      <plugin id="org.eclipse.e4.ui.model.workbench"/>
-      <plugin id="org.eclipse.e4.ui.services"/>
-      <plugin id="org.eclipse.e4.ui.workbench"/>
-      <plugin id="org.eclipse.emf.common"/>
-      <plugin id="org.eclipse.emf.databinding"/>
-      <plugin id="org.eclipse.emf.databinding.edit"/>
-      <plugin id="org.eclipse.emf.ecore"/>
-      <plugin id="org.eclipse.emf.ecore.change"/>
-      <plugin id="org.eclipse.emf.ecore.edit"/>
-      <plugin id="org.eclipse.emf.ecore.xmi"/>
-      <plugin id="org.eclipse.emf.ecp.common"/>
-      <plugin id="org.eclipse.emf.ecp.controls.fx"/>
-      <plugin id="org.eclipse.emf.ecp.edit"/>
-      <plugin id="org.eclipse.emf.ecp.makeithappen.application.sample.fx"/>
-      <plugin id="org.eclipse.emf.ecp.makeithappen.model"/>
-      <plugin id="org.eclipse.emf.ecp.makeithappen.model.edit"/>
-      <plugin id="org.eclipse.emf.ecp.makeithappen.model.viewmodel"/>
-      <plugin id="org.eclipse.emf.ecp.ui.view"/>
-      <plugin id="org.eclipse.emf.ecp.util.fx"/>
-      <plugin id="org.eclipse.emf.ecp.view.context"/>
-      <plugin id="org.eclipse.emf.ecp.view.context.locale"/>
-      <plugin id="org.eclipse.emf.ecp.view.group.fx"/>
-      <plugin id="org.eclipse.emf.ecp.view.group.model"/>
-      <plugin id="org.eclipse.emf.ecp.view.group.model.edit"/>
-      <plugin id="org.eclipse.emf.ecp.view.horizontal.fx"/>
-      <plugin id="org.eclipse.emf.ecp.view.horizontal.model"/>
-      <plugin id="org.eclipse.emf.ecp.view.horizontal.model.edit"/>
-      <plugin id="org.eclipse.emf.ecp.view.label.fx"/>
-      <plugin id="org.eclipse.emf.ecp.view.label.model"/>
-      <plugin id="org.eclipse.emf.ecp.view.model"/>
-      <plugin id="org.eclipse.emf.ecp.view.model.common"/>
-      <plugin id="org.eclipse.emf.ecp.view.model.edit"/>
-      <plugin id="org.eclipse.emf.ecp.view.model.fx"/>
-      <plugin id="org.eclipse.emf.ecp.view.model.provider.generator"/>
-      <plugin id="org.eclipse.emf.ecp.view.model.provider.xmi"/>
-      <plugin id="org.eclipse.emf.ecp.view.template.model"/>
-      <plugin id="org.eclipse.emf.ecp.view.template.service"/>
-      <plugin id="org.eclipse.emf.ecp.view.validation"/>
-      <plugin id="org.eclipse.emf.edit"/>
-      <plugin id="org.eclipse.equinox.app"/>
-      <plugin id="org.eclipse.equinox.bidi"/>
-      <plugin id="org.eclipse.equinox.common"/>
-      <plugin id="org.eclipse.equinox.ds"/>
-      <plugin id="org.eclipse.equinox.event"/>
-      <plugin id="org.eclipse.equinox.http.registry"/>
-      <plugin id="org.eclipse.equinox.preferences"/>
-      <plugin id="org.eclipse.equinox.registry"/>
-      <plugin id="org.eclipse.equinox.util"/>
-      <plugin id="org.eclipse.fx.core"/>
-      <plugin id="org.eclipse.fx.core.databinding"/>
-      <plugin id="org.eclipse.fx.emf.edit.ui"/>
-      <plugin id="org.eclipse.fx.javafx"/>
-      <plugin id="org.eclipse.fx.osgi" fragment="true"/>
-      <plugin id="org.eclipse.fx.osgi.util"/>
-      <plugin id="org.eclipse.fx.ui.databinding"/>
-      <plugin id="org.eclipse.osgi"/>
-      <plugin id="org.eclipse.osgi.services"/>
-   </plugins>
-
-   <configurations>
-      <plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="0" />
-      <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
-      <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="1" />
-      <plugin id="org.eclipse.osgi" autoStart="true" startLevel="-1" />
-   </configurations>
-
-</product>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/plugin.xml b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/plugin.xml
deleted file mode 100644
index ab98be4..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/plugin.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-<extension id="application" point="org.eclipse.core.runtime.applications">
-	<application thread="any" cardinality="*" visible="true" >
-		<run class="org.eclipse.emf.ecp.makeithappen.application.sample.fx.MainApplication" />
-		
-	</application>
-	
-</extension>
-<extension
-      id="product"
-      point="org.eclipse.core.runtime.products">
-   <product
-         application="org.eclipse.emf.ecp.makeithappen.application.sample.fx.application"
-         name="MakeItHappen Sample FX Product">
-      <property
-            name="appName"
-            value="MakeItHappen Sample FX Product">
-      </property>
-      <property
-            name="windowImages"
-            value="icons/bricks.png">
-      </property>
-   </product>
-</extension>
-</plugin>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/src/org/eclipse/emf/ecp/makeithappen/application/sample/fx/MainApplication.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/src/org/eclipse/emf/ecp/makeithappen/application/sample/fx/MainApplication.java
deleted file mode 100644
index 388f994..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/src/org/eclipse/emf/ecp/makeithappen/application/sample/fx/MainApplication.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.eclipse.emf.ecp.makeithappen.application.sample.fx;
-
-import javafx.application.Application;
-import javafx.scene.Scene;
-import javafx.scene.layout.BorderPane;
-import javafx.stage.Stage;
-
-import org.eclipse.emf.ecp.makeithappen.model.task.TaskFactory;
-import org.eclipse.emf.ecp.makeithappen.model.task.User;
-import org.eclipse.emf.ecp.view.model.fx.ECPFXView;
-import org.eclipse.emf.ecp.view.model.fx.ECPFXViewRenderer;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.fx.osgi.util.AbstractJFXApplication;
-
-public class MainApplication extends AbstractJFXApplication {
-
-	private void fillPane(BorderPane pane) {
-		final User submission = TaskFactory.eINSTANCE.createUser();
-		ECPFXView ecpfxView = ECPFXViewRenderer.INSTANCE.render(submission);
-		pane.setCenter(ecpfxView.getFXNode());
-	}
-	
-	protected void jfxStart(IApplicationContext applicationContext, Application jfxApplication, Stage primaryStage) {
-		BorderPane pane=new BorderPane();
-		Scene s = new Scene(pane);
-		primaryStage.setScene(s);
-		primaryStage.setWidth(800);
-		primaryStage.setHeight(600);
-		primaryStage.setTitle("Make it happen Demo");
-		fillPane(pane);
-		primaryStage.show();
-	}
-}
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.checkstyle b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.checkstyle
deleted file mode 100644
index dccf8af..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.checkstyle
+++ /dev/null
@@ -1,10 +0,0 @@
-<?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.makeithappen.model/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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.classpath b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.classpath
deleted file mode 100644
index ad32c83..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.project b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.project
deleted file mode 100644
index 8a0f2f2..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.project
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee</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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.settings/org.eclipse.core.resources.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index f548abb..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,6 +0,0 @@
-eclipse.preferences.version=1
-
-encoding//model/etypes.ecore=UTF-8
-
-
-encoding/<project>=UTF-8
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.settings/org.eclipse.core.runtime.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index 5a0ad22..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index c948297..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,418 +0,0 @@
-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.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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.settings/org.eclipse.jdt.launching.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index 3bb2352..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.settings/org.eclipse.jdt.ui.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 791508d..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,115 +0,0 @@
-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_to_enhanced_for_loop=false
-cleanup.correct_indentation=true
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=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_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_blocks=true
-cleanup.use_blocks_only_for_return_and_throw=false
-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_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_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=true
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=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_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_blocks=true
-sp_cleanup.use_blocks_only_for_return_and_throw=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
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.settings/org.eclipse.ltk.core.refactoring.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index 864e30f..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.settings/org.eclipse.pde.api.tools.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index e4e3c00..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,97 +0,0 @@
-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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.settings/org.eclipse.pde.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 0bbee3c..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/META-INF/MANIFEST.MF
deleted file mode 100644
index de0ec3d..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,16 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: MakeItHappen Sample J2ee RAP
-Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee
-Bundle-Version: 1.5.1.qualifier
-Bundle-Vendor: Eclipse Modeling Project
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Bundle-ActivationPolicy: lazy
-Service-Component: OSGI-INF/makeithappenApplicationConfiguration.xml
-Require-Bundle: org.eclipse.rap.rwt;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.rap.jface;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.rap.jface.databinding;bundle-version="[2.0.0,3.0.0)"
-Export-Package: org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee;version="1.4.0";x-internal:=true
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/MakeItHappen Sample J2EE RAP Application.launch b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/MakeItHappen Sample J2EE RAP Application.launch
deleted file mode 100644
index 26aa815..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/MakeItHappen Sample J2EE RAP Application.launch
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.rap.ui.launch.RAPLauncher">
-<booleanAttribute key="append.args" value="true"/>
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="true"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/MakeItHappen Sample J2EE RAP Application"/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="default_auto_start" value="true"/>
-<intAttribute key="default_start_level" value="4"/>
-<booleanAttribute key="includeOptional" value="false"/>
-<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.6"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -console -debugEMFForms"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.ignoreApp=true -Dosgi.noShutdown=true&#13;&#10;-Dorg.eclipse.equinox.http.jetty.log.stderr.threshold=info"/>
-<stringAttribute key="org.eclipse.rap.launch.browserMode" value="EXTERNAL"/>
-<stringAttribute key="org.eclipse.rap.launch.contextpath" value="/"/>
-<stringAttribute key="org.eclipse.rap.launch.dataLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.rap.tools.launch/MakeItHappenSampleJ2EERAPApplication"/>
-<booleanAttribute key="org.eclipse.rap.launch.developmentMode" value="true"/>
-<booleanAttribute key="org.eclipse.rap.launch.openBrowser" value="true"/>
-<intAttribute key="org.eclipse.rap.launch.port" value="10080"/>
-<stringAttribute key="org.eclipse.rap.launch.servletPath" value="/makeithappen_j2ee"/>
-<intAttribute key="org.eclipse.rap.launch.sessionTimeout" value="0"/>
-<booleanAttribute key="org.eclipse.rap.launch.useDefaultDataLocation" value="true"/>
-<booleanAttribute key="org.eclipse.rap.launch.useManualContextPath" value="false"/>
-<booleanAttribute key="org.eclipse.rap.launch.useManualPort" value="false"/>
-<booleanAttribute key="org.eclipse.rap.launch.useSessionTimeout" value="false"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="target_bundles" value="com.ibm.icu.base@default:default,javax.servlet@default:default,javax.xml@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@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.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.edit@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,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.rap.util@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.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.label.model.edit@default:default,org.eclipse.emf.ecp.view.label.model@default:default,org.eclipse.emf.ecp.view.label.rap@default:default,org.eclipse.emf.ecp.view.label.ui.swt@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.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.swt.layout@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.util.swt.rap@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.edit@default:default,org.eclipse.emf.rap.edit.ui.minimal@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.http.servletbridge@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.servletbridge@default:default,org.eclipse.equinox.util@default:default,org.eclipse.jetty.continuation@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.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.rap.jface.databinding@default:default,org.eclipse.rap.jface@default:default,org.eclipse.rap.rwt.osgi@default:default,org.eclipse.rap.rwt@default:default"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useCustomFeatures" value="false"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<stringAttribute key="workspace_bundles" value="org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee@default:default,org.eclipse.emf.ecp.makeithappen.model.edit@default:default,org.eclipse.emf.ecp.makeithappen.model.viewmodel@default:default,org.eclipse.emf.ecp.makeithappen.model@default:default"/>
-</launchConfiguration>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/OSGI-INF/makeithappenApplicationConfiguration.xml b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/OSGI-INF/makeithappenApplicationConfiguration.xml
deleted file mode 100644
index 3100f20..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/OSGI-INF/makeithappenApplicationConfiguration.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee">
-   <implementation class="org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee.MakeItHappenApplicationConfiguration"/>
-   <service>
-      <provide interface="org.eclipse.rap.rwt.application.ApplicationConfiguration"/>
-   </service>
-</scr:component>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/build.properties b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/build.properties
deleted file mode 100644
index 6210e84..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/build.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               OSGI-INF/
-source.. = src/
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/makeithappen_RAP.target b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/makeithappen_RAP.target
deleted file mode 100644
index 484a2b5..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/makeithappen_RAP.target
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?pde version="3.8"?><target name="makeithappen_RAP" sequenceNumber="12">
-<locations>
-<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.emf.rap.sdk.feature.group" version="0.0.0"/>
-<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/luna/"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.emf.ecp.rap.util.feature.feature.group" version="0.0.0"/>
-<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"/>
-<repository location="http://download.eclipse.org/ecp/releases/releases_15"/>
-</location>
-</locations>
-</target>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/pom.xml b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/pom.xml
deleted file mode 100644
index 09c96a5..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/pom.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?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-examples-parent</artifactId>
-    <version>1.4.0-SNAPSHOT</version>
-    <relativePath>../../releng/org.eclipse.emf.ecp.releng.examples/</relativePath>
-  </parent>
-
-  <artifactId>org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee</artifactId>
-  <packaging>eclipse-plugin</packaging>
-
-  <groupId>org.eclipse.emf.ecp</groupId>
-  <version>1.4.0-SNAPSHOT</version>
-</project>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/j2ee/DataBindingPhaseListener.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/j2ee/DataBindingPhaseListener.java
deleted file mode 100644
index 7dbfc6f..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/j2ee/DataBindingPhaseListener.java
+++ /dev/null
@@ -1,42 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.rap.rwt.RWT;
-import org.eclipse.rap.rwt.lifecycle.PhaseEvent;
-import org.eclipse.rap.rwt.lifecycle.PhaseId;
-import org.eclipse.rap.rwt.lifecycle.PhaseListener;
-
-/**
- * A {@link PhaseListener} to set the default realm.
- */
-
-@SuppressWarnings({ "deprecation", "serial" })
-public class DataBindingPhaseListener implements PhaseListener {
-
-	@Override
-	public PhaseId getPhaseId() {
-		return PhaseId.PROCESS_ACTION;
-	}
-
-	@Override
-	public void beforePhase(PhaseEvent event) {
-		final Realm realm = (Realm) RWT.getUISession().getAttribute("realm"); //$NON-NLS-1$
-		RealmSetter.setRealm(realm);
-	}
-
-	@Override
-	public void afterPhase(PhaseEvent event) {
-		RealmSetter.setRealm(null);
-	}
-}
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/j2ee/MakeItHappenApplicationConfiguration.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/j2ee/MakeItHappenApplicationConfiguration.java
deleted file mode 100644
index 01e246d..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/j2ee/MakeItHappenApplicationConfiguration.java
+++ /dev/null
@@ -1,34 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee;
-
-import org.eclipse.rap.rwt.application.Application;
-import org.eclipse.rap.rwt.application.ApplicationConfiguration;
-
-/**
- * The {@link ApplicationConfiguration} for the MakeItHappen RAP Demo.
- */
-public class MakeItHappenApplicationConfiguration implements ApplicationConfiguration {
-
-	/**
-	 * {@inheritDoc}
-	 * 
-	 * @see org.eclipse.rap.rwt.application.ApplicationConfiguration#configure(org.eclipse.rap.rwt.application.Application)
-	 */
-	@SuppressWarnings("deprecation")
-	@Override
-	public void configure(Application application) {
-		application.addPhaseListener(new DataBindingPhaseListener());
-		application.addEntryPoint("/makeithappen_j2ee", MakeItHappenEntryPoint.class, null); //$NON-NLS-1$
-	}
-
-}
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/j2ee/MakeItHappenEntryPoint.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/j2ee/MakeItHappenEntryPoint.java
deleted file mode 100644
index ef19b6e..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/j2ee/MakeItHappenEntryPoint.java
+++ /dev/null
@@ -1,66 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage;
-import org.eclipse.emf.ecp.ui.view.ECPRendererException;
-import org.eclipse.emf.ecp.ui.view.swt.ECPSWTViewRenderer;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.rap.rwt.application.AbstractEntryPoint;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Entry Point for a standalone RAP Application.
- */
-public class MakeItHappenEntryPoint extends AbstractEntryPoint {
-
-	private EObject getDummyEObject() {
-		// Replace this with your own model EClass to test the application with a custom model
-		final EClass eClass = TaskPackage.eINSTANCE.getUser();
-		return EcoreUtil.create(eClass);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 * 
-	 * @see org.eclipse.rap.rwt.application.AbstractEntryPoint#createContents(org.eclipse.swt.widgets.Composite)
-	 */
-	@Override
-	protected void createContents(Composite parent) {
-		// Special call needed only on RAP J2EE
-		RealmSetter.initialize();
-
-		final EObject dummyObject = getDummyEObject();
-
-		try {
-			final Composite content = new Composite(parent, SWT.NONE);
-			content.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WHITE));
-			content.setLayout(GridLayoutFactory.fillDefaults().margins(10, 10).create());
-			content.setLayoutData(GridDataFactory.fillDefaults().create());
-
-			ECPSWTViewRenderer.INSTANCE.render(content, dummyObject);
-
-			content.layout();
-
-		} catch (final ECPRendererException e) {
-			e.printStackTrace();
-		}
-
-		parent.layout();
-	}
-
-}
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/j2ee/RealmSetter.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/j2ee/RealmSetter.java
deleted file mode 100644
index 4647d25..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/j2ee/RealmSetter.java
+++ /dev/null
@@ -1,68 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.rap.rwt.RWT;
-import org.eclipse.rap.rwt.service.UISession;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * Realm Setter. Is needed as the J2EE Mode doesn't have a Realm by default.
- */
-public final class RealmSetter {
-
-	private RealmSetter() {
-	}
-
-	/**
-	 * Set the default Realm.
-	 *
-	 * @param realm the Realm to set
-	 */
-
-	public static void setRealm(Realm realm) {
-		try {
-			final Class<Realm> clazz = Realm.class;
-			final Method method = clazz.getDeclaredMethod("setDefault", clazz); //$NON-NLS-1$
-			method.setAccessible(true);
-			method.invoke(null, new Object[] { realm });
-		} catch (final NoSuchMethodException ex) {
-			ex.printStackTrace();
-		} catch (final SecurityException ex) {
-			ex.printStackTrace();
-		} catch (final IllegalAccessException ex) {
-			ex.printStackTrace();
-		} catch (final IllegalArgumentException ex) {
-			ex.printStackTrace();
-		} catch (final InvocationTargetException ex) {
-			ex.printStackTrace();
-		}
-	}
-
-	/**
-	 * Initialize the RealmSetter.
-	 */
-	public static void initialize() {
-		final UISession uiSession = RWT.getUISession();
-		if (uiSession.getAttribute("realm") == null) { //$NON-NLS-1$
-			final Realm realm = SWTObservables.getRealm(Display.getCurrent());
-			RealmSetter.setRealm(realm);
-			RWT.getUISession().setAttribute("realm", realm); //$NON-NLS-1$
-		}
-	}
-
-}
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.checkstyle b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.checkstyle
deleted file mode 100644
index dccf8af..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.checkstyle
+++ /dev/null
@@ -1,10 +0,0 @@
-<?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.makeithappen.model/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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.classpath b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.classpath
deleted file mode 100644
index ad32c83..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.project b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.project
deleted file mode 100644
index 05d3f5b..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.emf.ecp.makeithappen.application.sample.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>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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.settings/org.eclipse.core.resources.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index f548abb..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,6 +0,0 @@
-eclipse.preferences.version=1
-
-encoding//model/etypes.ecore=UTF-8
-
-
-encoding/<project>=UTF-8
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.settings/org.eclipse.core.runtime.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index 5a0ad22..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index c948297..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,418 +0,0 @@
-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.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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.settings/org.eclipse.jdt.launching.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index 3bb2352..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.settings/org.eclipse.ltk.core.refactoring.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index 864e30f..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.settings/org.eclipse.pde.api.tools.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index e4e3c00..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,97 +0,0 @@
-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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.settings/org.eclipse.pde.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 0bbee3c..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/META-INF/MANIFEST.MF
deleted file mode 100644
index 1b05e3f..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,16 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: MakeItHappen Sample RAP Application
-Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.application.sample.rap;singleton:=true
-Bundle-Version: 1.5.1.qualifier
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.emf.ecp.makeithappen.model.edit;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.rap.ui.workbench;bundle-version="[2.3.0,3.0.0)",
- org.eclipse.rap.jface;bundle-version="[2.3.0,3.0.0)",
- org.eclipse.rap.ui;bundle-version="[2.3.0,3.0.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.5.0,2.0.0)"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Bundle-ActivationPolicy: lazy
-Bundle-Vendor: Eclipse Modeling Framework
-Export-Package: org.eclipse.emf.ecp.makeithappen.application.sample.rap;version="1.0.0";x-internal:=true
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/MakeItHappen Sample RAP Application.launch b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/MakeItHappen Sample RAP Application.launch
deleted file mode 100644
index c2ed0a7..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/MakeItHappen Sample RAP Application.launch
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.rap.ui.launch.RAPLauncher">
-<booleanAttribute key="append.args" value="true"/>
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/MakeItHappen Sample RAP Application"/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="default_auto_start" value="true"/>
-<intAttribute key="default_start_level" value="4"/>
-<booleanAttribute key="includeOptional" value="false"/>
-<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.7"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -console -debugEMFForms"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.ignoreApp=true -Dosgi.noShutdown=true&#13;&#10;-Dorg.eclipse.equinox.http.jetty.log.stderr.threshold=info"/>
-<stringAttribute key="org.eclipse.rap.launch.browserMode" value="EXTERNAL"/>
-<stringAttribute key="org.eclipse.rap.launch.contextpath" value="/"/>
-<stringAttribute key="org.eclipse.rap.launch.dataLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.rap.tools.launch/MakeItHappenSampleRAPApplication"/>
-<booleanAttribute key="org.eclipse.rap.launch.developmentMode" value="true"/>
-<booleanAttribute key="org.eclipse.rap.launch.openBrowser" value="true"/>
-<intAttribute key="org.eclipse.rap.launch.port" value="10080"/>
-<stringAttribute key="org.eclipse.rap.launch.servletPath" value="/rap"/>
-<intAttribute key="org.eclipse.rap.launch.sessionTimeout" value="0"/>
-<booleanAttribute key="org.eclipse.rap.launch.useDefaultDataLocation" value="true"/>
-<booleanAttribute key="org.eclipse.rap.launch.useManualContextPath" value="false"/>
-<booleanAttribute key="org.eclipse.rap.launch.useManualPort" value="false"/>
-<booleanAttribute key="org.eclipse.rap.launch.useSessionTimeout" value="false"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="target_bundles" value="com.ibm.icu.base@default:default,javax.servlet@default:default,javax.xml@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@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.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.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.rap.util@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.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.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.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.label.model.edit@default:default,org.eclipse.emf.ecp.view.label.model@default:default,org.eclipse.emf.ecp.view.label.rap@default:default,org.eclipse.emf.ecp.view.label.ui.swt@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.swt.layout@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.util.swt.rap@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.edit@default:default,org.eclipse.emf.rap.common.ui@default:default,org.eclipse.emf.rap.edit.ui@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.http.servletbridge@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.servletbridge@default:default,org.eclipse.equinox.util@default:default,org.eclipse.help@default:default,org.eclipse.jetty.continuation@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.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.rap.jface.databinding@default:default,org.eclipse.rap.jface@default:default,org.eclipse.rap.rwt.osgi@default:default,org.eclipse.rap.rwt@default:default,org.eclipse.rap.ui.views@default:default,org.eclipse.rap.ui.workbench@default:default,org.eclipse.rap.ui@default:default,org.hamcrest.core@default:default,org.junit@default:default"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useCustomFeatures" value="false"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<stringAttribute key="workspace_bundles" value="org.eclipse.emf.ecp.makeithappen.application.sample.rap@default:default,org.eclipse.emf.ecp.makeithappen.model.edit@default:default,org.eclipse.emf.ecp.makeithappen.model.viewmodel@default:default,org.eclipse.emf.ecp.makeithappen.model@default:default"/>
-</launchConfiguration>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/build.properties b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/build.properties
deleted file mode 100644
index 0d3d3a7..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/build.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = plugin.xml,\
-               META-INF/,\
-               .,\
-               icons/
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/icons/bricks.png b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/icons/bricks.png
deleted file mode 100644
index 0905f93..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/icons/bricks.png
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/makeithappen_RAP.target b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/makeithappen_RAP.target
deleted file mode 100644
index 484a2b5..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/makeithappen_RAP.target
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?pde version="3.8"?><target name="makeithappen_RAP" sequenceNumber="12">
-<locations>
-<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.emf.rap.sdk.feature.group" version="0.0.0"/>
-<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/luna/"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.emf.ecp.rap.util.feature.feature.group" version="0.0.0"/>
-<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"/>
-<repository location="http://download.eclipse.org/ecp/releases/releases_15"/>
-</location>
-</locations>
-</target>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/plugin.xml b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/plugin.xml
deleted file mode 100644
index dfdff7d..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/plugin.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-
-   <extension
-         id="application"
-         point="org.eclipse.core.runtime.applications">
-      <application>
-         <run
-               class="org.eclipse.emf.ecp.makeithappen.application.sample.rap.Application">
-         </run>
-      </application>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            class="org.eclipse.emf.ecp.makeithappen.application.sample.rap.Perspective"
-            icon="icons/bricks.png"
-            id="TestApp.perspective"
-            name="Perspective">
-      </perspective>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views">
-      <view
-            class="org.eclipse.emf.ecp.makeithappen.application.sample.rap.View"
-            icon="icons/bricks.png"
-            id="TestApp.view"
-            name="View">
-      </view>
-   </extension>
-   <extension
-         id="product"
-         point="org.eclipse.core.runtime.products">
-      <product
-            application="org.eclipse.emf.ecp.makeithappen.application.sample.rap.application"
-            name="MakeItHappen Sample RAP Product">
-         <property
-               name="appName"
-               value="MakeItHappen Sample RAP Product">
-         </property>
-         <property
-               name="windowImages"
-               value="icons/bricks.png">
-         </property>
-      </product>
-   </extension>
-   <extension
-         point="org.eclipse.rap.ui.entrypoint">
-      <entrypoint
-            applicationId="org.eclipse.emf.ecp.makeithappen.application.sample.rap.application"
-            id="org.eclipse.emf.ecp.makeithappen.application.sample.rap.entrypoint1"
-            path="/rap">
-      </entrypoint>
-   </extension>
-
-</plugin>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/pom.xml b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/pom.xml
deleted file mode 100644
index 0fb06a3..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/pom.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?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-examples-parent</artifactId>
-    <version>1.4.0-SNAPSHOT</version>
-    <relativePath>../../releng/org.eclipse.emf.ecp.releng.examples/</relativePath>
-  </parent>
-
-  <artifactId>org.eclipse.emf.ecp.makeithappen.application.sample.rap</artifactId>
-  <packaging>eclipse-plugin</packaging>
-
-  <groupId>org.eclipse.emf.ecp</groupId>
-  <version>1.4.0-SNAPSHOT</version>
-</project>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/Application.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/Application.java
deleted file mode 100644
index 788d116..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/Application.java
+++ /dev/null
@@ -1,63 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.application.sample.rap;
-
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * This class controls all aspects of the application's execution.
- */
-public class Application implements IApplication {
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext)
-	 */
-	@Override
-	public Object start(IApplicationContext context) {
-		final Display display = PlatformUI.createDisplay();
-		try {
-			final int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
-			if (returnCode == PlatformUI.RETURN_RESTART) {
-				return IApplication.EXIT_RESTART;
-			}
-			return IApplication.EXIT_OK;
-		} finally {
-			display.dispose();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.equinox.app.IApplication#stop()
-	 */
-	@Override
-	public void stop() {
-		if (!PlatformUI.isWorkbenchRunning()) {
-			return;
-		}
-		final IWorkbench workbench = PlatformUI.getWorkbench();
-		final Display display = workbench.getDisplay();
-		display.syncExec(new Runnable() {
-			@Override
-			public void run() {
-				if (!display.isDisposed()) {
-					workbench.close();
-				}
-			}
-		});
-	}
-}
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/ApplicationWorkbenchAdvisor.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/ApplicationWorkbenchAdvisor.java
deleted file mode 100644
index 58f748e..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/ApplicationWorkbenchAdvisor.java
+++ /dev/null
@@ -1,36 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.application.sample.rap;
-
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-
-/**
- * The ApplicationWorkbenchAdvisor which defines which Perspective to use.
- */
-public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {
-
-	private static final String PERSPECTIVE_ID = "TestApp.perspective"; //$NON-NLS-1$
-
-	@Override
-	public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(
-		IWorkbenchWindowConfigurer configurer) {
-		return new ApplicationWorkbenchWindowAdvisor(configurer);
-	}
-
-	@Override
-	public String getInitialWindowPerspectiveId() {
-		return PERSPECTIVE_ID;
-	}
-
-}
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/ApplicationWorkbenchWindowAdvisor.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/ApplicationWorkbenchWindowAdvisor.java
deleted file mode 100644
index d4379d5..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/ApplicationWorkbenchWindowAdvisor.java
+++ /dev/null
@@ -1,40 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.application.sample.rap;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-
-/**
- * The ApplicationWorkbenchWindowAdvisor which sets default window sizes.
- */
-public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
-
-	/**
-	 * Default constructor.
-	 * 
-	 * @param configurer the {@link IWorkbenchWindowConfigurer}.
-	 */
-	public ApplicationWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-		super(configurer);
-	}
-
-	@Override
-	public void preWindowOpen() {
-		final IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
-		configurer.setInitialSize(new Point(800, 500));
-		configurer.setShowCoolBar(false);
-		configurer.setShowStatusLine(false);
-		configurer.setTitle("MakeItHappen ECP Sample e3 Application"); //$NON-NLS-1$
-	}
-}
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/Perspective.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/Perspective.java
deleted file mode 100644
index 53cf88a..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/Perspective.java
+++ /dev/null
@@ -1,31 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.application.sample.rap;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-/**
- * Default Perspective.
- * 
- */
-public class Perspective implements IPerspectiveFactory {
-
-	@Override
-	public void createInitialLayout(IPageLayout layout) {
-		layout.setEditorAreaVisible(false);
-		layout.setFixed(true);
-		layout.addStandaloneView(View.ID, false, IPageLayout.LEFT, 1.0f, layout.getEditorArea());
-
-	}
-
-}
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/View.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/View.java
deleted file mode 100644
index 7199c4c..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/src/org/eclipse/emf/ecp/makeithappen/application/sample/rap/View.java
+++ /dev/null
@@ -1,89 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.application.sample.rap;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage;
-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.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.part.ViewPart;
-
-/**
- * Example View for displaying a Forms Editor for an EObject.
- */
-public class View extends ViewPart {
-	/**
-	 * View ID.
-	 */
-	public static final String ID = "TestApp.view"; //$NON-NLS-1$
-
-	private ECPSWTView render;
-
-	private EObject getDummyEObject() {
-		// Replace this with your own model EClass to test the application with a custom model
-		final EClass eClass = TaskPackage.eINSTANCE.getUser();
-		return EcoreUtil.create(eClass);
-	}
-
-	/**
-	 * This is a callback that will allow us to create the viewer and initialize
-	 * it.
-	 * 
-	 * @param parent the {@link Composite} to render to
-	 */
-	@Override
-	public void createPartControl(Composite parent) {
-
-		final EObject dummyObject = getDummyEObject();
-
-		try {
-			parent.getShell().setMaximized(true);
-			parent.setLayout(GridLayoutFactory.fillDefaults().equalWidth(true).numColumns(1).create());
-			parent.setLayoutData(GridDataFactory.fillDefaults().align(SWT.FILL, SWT.BEGINNING).grab(true, true)
-				.create());
-			parent.getParent().setLayout(GridLayoutFactory.fillDefaults().equalWidth(true).numColumns(1).create());
-			parent.getParent().setLayoutData(
-				GridDataFactory.fillDefaults().align(SWT.FILL, SWT.BEGINNING).grab(true, true).create());
-
-			final Composite content = new Composite(parent, SWT.NONE);
-			content.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WHITE));
-			content.setLayout(GridLayoutFactory.fillDefaults().margins(10, 10).create());
-			content.setLayoutData(GridDataFactory.fillDefaults().create());
-
-			render = ECPSWTViewRenderer.INSTANCE.render(content, dummyObject);
-
-			content.layout();
-
-		} catch (final ECPRendererException e) {
-			e.printStackTrace();
-		}
-		parent.layout();
-	}
-
-	@Override
-	public void setFocus() {
-	}
-
-	@Override
-	public void dispose() {
-		if (render != null) {
-			render.dispose();
-		}
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.checkstyle b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.checkstyle
deleted file mode 100644
index dccf8af..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.checkstyle
+++ /dev/null
@@ -1,10 +0,0 @@
-<?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.makeithappen.model/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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.classpath b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.classpath
deleted file mode 100644
index ad32c83..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.gitignore b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.gitignore
deleted file mode 100644
index 5e56e04..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/bin
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.project b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.project
deleted file mode 100644
index cee9cd5..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.emf.ecp.makeithappen.model.edit</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.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
-	</natures>
-</projectDescription>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.settings/org.eclipse.core.resources.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index f548abb..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,6 +0,0 @@
-eclipse.preferences.version=1
-
-encoding//model/etypes.ecore=UTF-8
-
-
-encoding/<project>=UTF-8
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.settings/org.eclipse.core.runtime.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index 5a0ad22..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index c948297..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,418 +0,0 @@
-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.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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.settings/org.eclipse.jdt.launching.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index 3bb2352..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.settings/org.eclipse.jdt.ui.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 8bc4bb4..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,127 +0,0 @@
-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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.settings/org.eclipse.ltk.core.refactoring.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index 864e30f..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.settings/org.eclipse.pde.api.tools.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index e4e3c00..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,97 +0,0 @@
-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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.settings/org.eclipse.pde.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 0bbee3c..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/META-INF/MANIFEST.MF
deleted file mode 100644
index db65ff3..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,16 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.model.edit;singleton:=true
-Bundle-Version: 1.5.1.qualifier
-Bundle-ClassPath: .
-Bundle-Activator: org.eclipse.emf.ecp.makeithappen.model.task.provider.TaskEditPlugin$Implementation
-Bundle-Vendor: Eclipse Modeling Project
-Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.ecp.makeithappen.model.task.provider;v
- ersion="1.5.0"
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.5.0,2.0.0)";visibility:=reexport,
- org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)";visibility:=reexport
-Bundle-ActivationPolicy: lazy
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/build.properties b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/build.properties
deleted file mode 100644
index fb07d51..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/build.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-bin.includes = .,\
-               icons/,\
-               META-INF/,\
-               plugin.xml,\
-               plugin.properties
-jars.compile.order = .
-source.. = src/
-output.. = bin/
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/icons/full/ctool16/CreateTask_subTasks_Task.gif b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/icons/full/ctool16/CreateTask_subTasks_Task.gif
deleted file mode 100644
index 95a7dfd..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/icons/full/ctool16/CreateTask_subTasks_Task.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/icons/full/ctool16/CreateUserGroup_users_User.gif b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/icons/full/ctool16/CreateUserGroup_users_User.gif
deleted file mode 100644
index d1b1538..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/icons/full/ctool16/CreateUserGroup_users_User.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/icons/full/ctool16/CreateUser_tasks_Task.gif b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/icons/full/ctool16/CreateUser_tasks_Task.gif
deleted file mode 100644
index 7aba268..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/icons/full/ctool16/CreateUser_tasks_Task.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/icons/full/obj16/User.gif b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/icons/full/obj16/User.gif
deleted file mode 100644
index 48e3cf2..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/icons/full/obj16/User.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/icons/full/obj16/User.png b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/icons/full/obj16/User.png
deleted file mode 100644
index 79f35cc..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/icons/full/obj16/User.png
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/icons/full/obj16/UserGroup.gif b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/icons/full/obj16/UserGroup.gif
deleted file mode 100644
index c4a8af4..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/icons/full/obj16/UserGroup.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/icons/full/obj16/UserGroup.png b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/icons/full/obj16/UserGroup.png
deleted file mode 100644
index 7fb4e1f..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/icons/full/obj16/UserGroup.png
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/icons/full/obj16/bullet_green.png b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/icons/full/obj16/bullet_green.png
deleted file mode 100644
index 058ad26..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/icons/full/obj16/bullet_green.png
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/icons/full/obj16/bullet_red.png b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/icons/full/obj16/bullet_red.png
deleted file mode 100644
index 0cd8031..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/icons/full/obj16/bullet_red.png
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/plugin.xml b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/plugin.xml
deleted file mode 100644
index be328ac..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/plugin.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-
-<!--
--->
-
-<plugin>
-
-   <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
-      <!-- @generated task -->
-      <factory
-            uri="http://eclipse/org/emf/ecp/makeithappen/model/task"
-            class="org.eclipse.emf.ecp.makeithappen.model.task.provider.TaskItemProviderAdapterFactory"
-            supportedTypes=
-              "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
-               org.eclipse.emf.edit.provider.IStructuredItemContentProvider
-               org.eclipse.emf.edit.provider.ITreeItemContentProvider
-               org.eclipse.emf.edit.provider.IItemLabelProvider
-               org.eclipse.emf.edit.provider.IItemPropertySource"/>
-   </extension>
-
-</plugin>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/src/org/eclipse/emf/ecp/makeithappen/model/task/provider/TaskEditPlugin.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/src/org/eclipse/emf/ecp/makeithappen/model/task/provider/TaskEditPlugin.java
deleted file mode 100644
index bff6a2e..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/src/org/eclipse/emf/ecp/makeithappen/model/task/provider/TaskEditPlugin.java
+++ /dev/null
@@ -1,112 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.model.task.provider;
-
-import org.eclipse.emf.common.EMFPlugin;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-/**
- * This is the central singleton for the Task edit plugin.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * 
- * @generated
- */
-public final class TaskEditPlugin extends EMFPlugin
-{
-	/**
-	 * Keep track of the singleton.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public static final TaskEditPlugin INSTANCE = new TaskEditPlugin();
-
-	/**
-	 * Keep track of the singleton.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private static Implementation plugin;
-
-	/**
-	 * Create the instance.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public TaskEditPlugin()
-	{
-		super(new ResourceLocator[]
-		{
-			});
-	}
-
-	/**
-	 * Returns the singleton instance of the Eclipse plugin.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @return the singleton instance.
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getPluginResourceLocator()
-	{
-		return plugin;
-	}
-
-	/**
-	 * Returns the singleton instance of the Eclipse plugin.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @return the singleton instance.
-	 * @generated
-	 */
-	public static Implementation getPlugin()
-	{
-		return plugin;
-	}
-
-	/**
-	 * The actual implementation of the Eclipse <b>Plugin</b>.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public static class Implementation extends EclipsePlugin
-	{
-		/**
-		 * Creates an instance.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * 
-		 * @generated
-		 */
-		public Implementation()
-		{
-			super();
-
-			// Remember the static instance.
-			//
-			plugin = this;
-		}
-	}
-
-}
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/src/org/eclipse/emf/ecp/makeithappen/model/task/provider/TaskItemProvider.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/src/org/eclipse/emf/ecp/makeithappen/model/task/provider/TaskItemProvider.java
deleted file mode 100644
index d52e262..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/src/org/eclipse/emf/ecp/makeithappen/model/task/provider/TaskItemProvider.java
+++ /dev/null
@@ -1,319 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.model.task.provider;
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.util.ResourceLocator;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecp.makeithappen.model.task.Task;
-import org.eclipse.emf.ecp.makeithappen.model.task.TaskFactory;
-import org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage;
-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.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.makeithappen.model.task.Task} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- */
-public class TaskItemProvider
-extends ItemProviderAdapter
-implements
-IEditingDomainItemProvider,
-ITreeItemContentProvider,
-IItemLabelProvider,
-IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public TaskItemProvider(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);
-
-			addNamePropertyDescriptor(object);
-			addDescriptionPropertyDescriptor(object);
-			addAssigneePropertyDescriptor(object);
-			addDueDatePropertyDescriptor(object);
-			addDonePropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-		(createItemPropertyDescriptor
-			(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
-				getResourceLocator(),
-				getString("_UI_Task_name_feature"), //$NON-NLS-1$
-				getString("_UI_PropertyDescriptor_description", "_UI_Task_name_feature", "_UI_Task_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				TaskPackage.Literals.TASK__NAME,
-				true,
-				false,
-				false,
-				ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				null,
-				null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Description feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected void addDescriptionPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-		(createItemPropertyDescriptor
-			(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
-				getResourceLocator(),
-				getString("_UI_Task_description_feature"), //$NON-NLS-1$
-				getString("_UI_PropertyDescriptor_description", "_UI_Task_description_feature", "_UI_Task_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				TaskPackage.Literals.TASK__DESCRIPTION,
-				true,
-				true,
-				false,
-				ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				null,
-				null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Assignee feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected void addAssigneePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-		(createItemPropertyDescriptor
-			(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
-				getResourceLocator(),
-				getString("_UI_Task_assignee_feature"), //$NON-NLS-1$
-				getString("_UI_PropertyDescriptor_description", "_UI_Task_assignee_feature", "_UI_Task_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				TaskPackage.Literals.TASK__ASSIGNEE,
-				true,
-				false,
-				true,
-				null,
-				null,
-				null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Due Date feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected void addDueDatePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-		(createItemPropertyDescriptor
-			(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
-				getResourceLocator(),
-				getString("_UI_Task_dueDate_feature"), //$NON-NLS-1$
-				getString("_UI_PropertyDescriptor_description", "_UI_Task_dueDate_feature", "_UI_Task_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				TaskPackage.Literals.TASK__DUE_DATE,
-				true,
-				false,
-				false,
-				ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				null,
-				null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Done feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected void addDonePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-		(createItemPropertyDescriptor
-			(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
-				getResourceLocator(),
-				getString("_UI_Task_done_feature"), //$NON-NLS-1$
-				getString("_UI_PropertyDescriptor_description", "_UI_Task_done_feature", "_UI_Task_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				TaskPackage.Literals.TASK__DONE,
-				true,
-				false,
-				false,
-				ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
-				null,
-				null));
-	}
-
-	/**
-	 * 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(TaskPackage.Literals.TASK__SUB_TASKS);
-		}
-		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 Task.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @param object the object.
-	 * @return the image.
-	 * @generated NOT
-	 */
-	@Override
-	public Object getImage(Object object) {
-		final Task task = (Task) object;
-		if (task.isDone()) {
-			return overlayImage(object, getResourceLocator().getImage("full/obj16/bullet_green.png")); //$NON-NLS-1$
-		}
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/bullet_red.png")); //$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 String label = ((Task) object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_Task_type") : //$NON-NLS-1$
-				getString("_UI_Task_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(Task.class))
-		{
-		case TaskPackage.TASK__NAME:
-		case TaskPackage.TASK__DESCRIPTION:
-		case TaskPackage.TASK__DUE_DATE:
-		case TaskPackage.TASK__DONE:
-			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-			return;
-		case TaskPackage.TASK__SUB_TASKS:
-			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-			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);
-
-		newChildDescriptors.add
-		(createChildParameter
-			(TaskPackage.Literals.TASK__SUB_TASKS,
-				TaskFactory.eINSTANCE.createTask()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return TaskEditPlugin.INSTANCE;
-	}
-
-}
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/src/org/eclipse/emf/ecp/makeithappen/model/task/provider/TaskItemProviderAdapterFactory.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/src/org/eclipse/emf/ecp/makeithappen/model/task/provider/TaskItemProviderAdapterFactory.java
deleted file mode 100644
index 7ebe612..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/src/org/eclipse/emf/ecp/makeithappen/model/task/provider/TaskItemProviderAdapterFactory.java
+++ /dev/null
@@ -1,297 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.model.task.provider;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.Notifier;
-import org.eclipse.emf.ecp.makeithappen.model.task.util.TaskAdapterFactory;
-import org.eclipse.emf.edit.provider.ChangeNotifier;
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
-import org.eclipse.emf.edit.provider.IChangeNotifier;
-import org.eclipse.emf.edit.provider.IDisposable;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.INotifyChangedListener;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-
-/**
- * This is the factory that is used to provide the interfaces needed to support Viewers.
- * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged
- * fireNotifyChanged}.
- * The adapters also support Eclipse property sheets.
- * Note that most of the adapters are shared among multiple instances.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- */
-public class TaskItemProviderAdapterFactory extends TaskAdapterFactory implements ComposeableAdapterFactory,
-IChangeNotifier, IDisposable {
-	/**
-	 * This keeps track of the root adapter factory that delegates to this adapter factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected ComposedAdapterFactory parentAdapterFactory;
-
-	/**
-	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected IChangeNotifier changeNotifier = new ChangeNotifier();
-
-	/**
-	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected Collection<Object> supportedTypes = new ArrayList<Object>();
-
-	/**
-	 * This constructs an instance.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public TaskItemProviderAdapterFactory() {
-		supportedTypes.add(IEditingDomainItemProvider.class);
-		supportedTypes.add(IStructuredItemContentProvider.class);
-		supportedTypes.add(ITreeItemContentProvider.class);
-		supportedTypes.add(IItemLabelProvider.class);
-		supportedTypes.add(IItemPropertySource.class);
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link org.eclipse.emf.ecp.makeithappen.model.task.Task}
-	 * instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected TaskItemProvider taskItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link org.eclipse.emf.ecp.makeithappen.model.task.Task}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public Adapter createTaskAdapter() {
-		if (taskItemProvider == null)
-		{
-			taskItemProvider = new TaskItemProvider(this);
-		}
-
-		return taskItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link org.eclipse.emf.ecp.makeithappen.model.task.User}
-	 * instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected UserItemProvider userItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link org.eclipse.emf.ecp.makeithappen.model.task.User}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public Adapter createUserAdapter() {
-		if (userItemProvider == null)
-		{
-			userItemProvider = new UserItemProvider(this);
-		}
-
-		return userItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link org.eclipse.emf.ecp.makeithappen.model.task.UserGroup}
-	 * instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected UserGroupItemProvider userGroupItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link org.eclipse.emf.ecp.makeithappen.model.task.UserGroup}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public Adapter createUserGroupAdapter() {
-		if (userGroupItemProvider == null)
-		{
-			userGroupItemProvider = new UserGroupItemProvider(this);
-		}
-
-		return userGroupItemProvider;
-	}
-
-	/**
-	 * This returns the root adapter factory that contains this factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public ComposeableAdapterFactory getRootAdapterFactory() {
-		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
-	}
-
-	/**
-	 * This sets the composed adapter factory that contains this factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
-		this.parentAdapterFactory = parentAdapterFactory;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public boolean isFactoryForType(Object type) {
-		return supportedTypes.contains(type) || super.isFactoryForType(type);
-	}
-
-	/**
-	 * This implementation substitutes the factory itself as the key for the adapter.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public Adapter adapt(Notifier notifier, Object type) {
-		return super.adapt(notifier, this);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public Object adapt(Object object, Object type) {
-		if (isFactoryForType(type))
-		{
-			final Object adapter = super.adapt(object, type);
-			if (!(type instanceof Class<?>) || ((Class<?>) type).isInstance(adapter))
-			{
-				return adapter;
-			}
-		}
-
-		return null;
-	}
-
-	/**
-	 * This adds a listener.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public void addListener(INotifyChangedListener notifyChangedListener) {
-		changeNotifier.addListener(notifyChangedListener);
-	}
-
-	/**
-	 * This removes a listener.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public void removeListener(INotifyChangedListener notifyChangedListener) {
-		changeNotifier.removeListener(notifyChangedListener);
-	}
-
-	/**
-	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public void fireNotifyChanged(Notification notification) {
-		changeNotifier.fireNotifyChanged(notification);
-
-		if (parentAdapterFactory != null)
-		{
-			parentAdapterFactory.fireNotifyChanged(notification);
-		}
-	}
-
-	/**
-	 * This disposes all of the item providers created by this factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public void dispose() {
-		if (taskItemProvider != null) {
-			taskItemProvider.dispose();
-		}
-		if (userItemProvider != null) {
-			userItemProvider.dispose();
-		}
-		if (userGroupItemProvider != null) {
-			userGroupItemProvider.dispose();
-		}
-	}
-
-}
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/src/org/eclipse/emf/ecp/makeithappen/model/task/provider/UserGroupItemProvider.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/src/org/eclipse/emf/ecp/makeithappen/model/task/provider/UserGroupItemProvider.java
deleted file mode 100644
index cb1c1c5..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/src/org/eclipse/emf/ecp/makeithappen/model/task/provider/UserGroupItemProvider.java
+++ /dev/null
@@ -1,240 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.model.task.provider;
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.util.ResourceLocator;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecp.makeithappen.model.task.TaskFactory;
-import org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage;
-import org.eclipse.emf.ecp.makeithappen.model.task.UserGroup;
-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.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.makeithappen.model.task.UserGroup} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- */
-public class UserGroupItemProvider
-extends ItemProviderAdapter
-implements
-IEditingDomainItemProvider,
-ITreeItemContentProvider,
-IItemLabelProvider,
-IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public UserGroupItemProvider(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);
-
-			addNamePropertyDescriptor(object);
-			addUsersPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-		(createItemPropertyDescriptor
-			(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
-				getResourceLocator(),
-				getString("_UI_UserGroup_name_feature"), //$NON-NLS-1$
-				getString("_UI_PropertyDescriptor_description", "_UI_UserGroup_name_feature", "_UI_UserGroup_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				TaskPackage.Literals.USER_GROUP__NAME,
-				true,
-				false,
-				false,
-				ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				null,
-				null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Users feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected void addUsersPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-		(createItemPropertyDescriptor
-			(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
-				getResourceLocator(),
-				getString("_UI_UserGroup_users_feature"), //$NON-NLS-1$
-				getString("_UI_PropertyDescriptor_description", "_UI_UserGroup_users_feature", "_UI_UserGroup_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				TaskPackage.Literals.USER_GROUP__USERS,
-				true,
-				false,
-				false,
-				null,
-				null,
-				null));
-	}
-
-	/**
-	 * 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(TaskPackage.Literals.USER_GROUP__USERS);
-		}
-		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 UserGroup.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @param object the object.
-	 * @return UserGroup.gif
-	 * @generated NOT
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/UserGroup.png")); //$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 String label = ((UserGroup) object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_UserGroup_type") : //$NON-NLS-1$
-				getString("_UI_UserGroup_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(UserGroup.class))
-		{
-		case TaskPackage.USER_GROUP__NAME:
-			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-			return;
-		case TaskPackage.USER_GROUP__USERS:
-			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-			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);
-
-		newChildDescriptors.add
-		(createChildParameter
-			(TaskPackage.Literals.USER_GROUP__USERS,
-				TaskFactory.eINSTANCE.createUser()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return TaskEditPlugin.INSTANCE;
-	}
-
-}
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/src/org/eclipse/emf/ecp/makeithappen/model/task/provider/UserItemProvider.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/src/org/eclipse/emf/ecp/makeithappen/model/task/provider/UserItemProvider.java
deleted file mode 100644
index 1f72c7f..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.edit/src/org/eclipse/emf/ecp/makeithappen/model/task/provider/UserItemProvider.java
+++ /dev/null
@@ -1,435 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.model.task.provider;
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.util.ResourceLocator;
-import org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage;
-import org.eclipse.emf.ecp.makeithappen.model.task.User;
-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.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.makeithappen.model.task.User} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @generated
- */
-public class UserItemProvider
-	extends ItemProviderAdapter
-	implements
-	IEditingDomainItemProvider,
-	ITreeItemContentProvider,
-	IItemLabelProvider,
-	IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public UserItemProvider(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);
-
-			addFirstNamePropertyDescriptor(object);
-			addLastNamePropertyDescriptor(object);
-			addGenderPropertyDescriptor(object);
-			addActivePropertyDescriptor(object);
-			addTimeOfRegistrationPropertyDescriptor(object);
-			addWeightPropertyDescriptor(object);
-			addHeigthPropertyDescriptor(object);
-			addNationalityPropertyDescriptor(object);
-			addDateOfBirthPropertyDescriptor(object);
-			addEmailPropertyDescriptor(object);
-			addTasksPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the First Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected void addFirstNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-			(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
-				getResourceLocator(),
-				getString("_UI_User_firstName_feature"), //$NON-NLS-1$
-				getString("_UI_PropertyDescriptor_description", "_UI_User_firstName_feature", "_UI_User_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				TaskPackage.Literals.USER__FIRST_NAME,
-				true,
-				false,
-				false,
-				ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				null,
-				null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Last Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected void addLastNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-			(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
-				getResourceLocator(),
-				getString("_UI_User_lastName_feature"), //$NON-NLS-1$
-				getString("_UI_PropertyDescriptor_description", "_UI_User_lastName_feature", "_UI_User_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				TaskPackage.Literals.USER__LAST_NAME,
-				true,
-				false,
-				false,
-				ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				null,
-				null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Gender feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected void addGenderPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-			(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
-				getResourceLocator(),
-				getString("_UI_User_gender_feature"), //$NON-NLS-1$
-				getString("_UI_PropertyDescriptor_description", "_UI_User_gender_feature", "_UI_User_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				TaskPackage.Literals.USER__GENDER,
-				true,
-				false,
-				false,
-				ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				null,
-				null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Active feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected void addActivePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-			(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
-				getResourceLocator(),
-				getString("_UI_User_active_feature"), //$NON-NLS-1$
-				getString("_UI_PropertyDescriptor_description", "_UI_User_active_feature", "_UI_User_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				TaskPackage.Literals.USER__ACTIVE,
-				true,
-				false,
-				false,
-				ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
-				null,
-				null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Time Of Registration feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected void addTimeOfRegistrationPropertyDescriptor(Object object) {
-		itemPropertyDescriptors
-			.add
-			(createItemPropertyDescriptor
-			(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
-				getResourceLocator(),
-				getString("_UI_User_timeOfRegistration_feature"), //$NON-NLS-1$
-				getString("_UI_PropertyDescriptor_description", "_UI_User_timeOfRegistration_feature", "_UI_User_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				TaskPackage.Literals.USER__TIME_OF_REGISTRATION,
-				true,
-				false,
-				false,
-				ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				null,
-				null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Date Of Birth feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected void addDateOfBirthPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-			(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
-				getResourceLocator(),
-				getString("_UI_User_dateOfBirth_feature"), //$NON-NLS-1$
-				getString("_UI_PropertyDescriptor_description", "_UI_User_dateOfBirth_feature", "_UI_User_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				TaskPackage.Literals.USER__DATE_OF_BIRTH,
-				true,
-				false,
-				false,
-				ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				null,
-				null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Email feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected void addEmailPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-			(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
-				getResourceLocator(),
-				getString("_UI_User_email_feature"), //$NON-NLS-1$
-				getString("_UI_PropertyDescriptor_description", "_UI_User_email_feature", "_UI_User_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				TaskPackage.Literals.USER__EMAIL,
-				true,
-				false,
-				false,
-				ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				null,
-				null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Weight feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected void addWeightPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-			(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
-				getResourceLocator(),
-				getString("_UI_User_weight_feature"), //$NON-NLS-1$
-				getString("_UI_PropertyDescriptor_description", "_UI_User_weight_feature", "_UI_User_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				TaskPackage.Literals.USER__WEIGHT,
-				true,
-				false,
-				false,
-				ItemPropertyDescriptor.REAL_VALUE_IMAGE,
-				null,
-				null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Heigth feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected void addHeigthPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-			(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
-				getResourceLocator(),
-				getString("_UI_User_heigth_feature"), //$NON-NLS-1$
-				getString("_UI_PropertyDescriptor_description", "_UI_User_heigth_feature", "_UI_User_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				TaskPackage.Literals.USER__HEIGTH,
-				true,
-				false,
-				false,
-				ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				null,
-				null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Nationality feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected void addNationalityPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-			(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
-				getResourceLocator(),
-				getString("_UI_User_nationality_feature"), //$NON-NLS-1$
-				getString("_UI_PropertyDescriptor_description", "_UI_User_nationality_feature", "_UI_User_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				TaskPackage.Literals.USER__NATIONALITY,
-				true,
-				false,
-				false,
-				ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				null,
-				null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Tasks feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected void addTasksPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-			(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
-				getResourceLocator(),
-				getString("_UI_User_tasks_feature"), //$NON-NLS-1$
-				getString("_UI_PropertyDescriptor_description", "_UI_User_tasks_feature", "_UI_User_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				TaskPackage.Literals.USER__TASKS,
-				true,
-				false,
-				true,
-				null,
-				null,
-				null));
-	}
-
-	/**
-	 * This returns User.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @param object the object
-	 * @return User.gif
-	 * @generated NOT
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/User.png")); //$NON-NLS-1$
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @param object the object whose label text is needed.
-	 * @return the label text for the adapted class
-	 * @generated NOT
-	 */
-	@Override
-	public String getText(Object object) {
-		final User user = (User) object;
-		final String firstName = user.getFirstName();
-		final String lastName = user.getLastName();
-		String ret = ""; //$NON-NLS-1$
-		if (firstName != null && !firstName.equals("")) { //$NON-NLS-1$
-			ret = ret + firstName;
-		}
-		if (lastName != null && !lastName.equals("")) { //$NON-NLS-1$
-			if (!ret.equals("")) { //$NON-NLS-1$
-				ret = ret + " "; //$NON-NLS-1$
-			}
-			ret = ret + lastName;
-		}
-		return ret;
-	}
-
-	/**
-	 * 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(User.class))
-		{
-		case TaskPackage.USER__FIRST_NAME:
-		case TaskPackage.USER__LAST_NAME:
-		case TaskPackage.USER__GENDER:
-		case TaskPackage.USER__ACTIVE:
-		case TaskPackage.USER__TIME_OF_REGISTRATION:
-		case TaskPackage.USER__WEIGHT:
-		case TaskPackage.USER__HEIGTH:
-		case TaskPackage.USER__NATIONALITY:
-		case TaskPackage.USER__DATE_OF_BIRTH:
-		case TaskPackage.USER__EMAIL:
-			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 TaskEditPlugin.INSTANCE;
-	}
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/.project b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/.project
deleted file mode 100644
index fc5d806..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/.project
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>ViewModelProjectTemplate</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<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>
-	</natures>
-</projectDescription>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/META-INF/MANIFEST.MF
deleted file mode 100644
index e1f83a4..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,7 +0,0 @@
-Manifest-Version: 1.0
-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.5.1.qualifier
-Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi
-Bundle-Vendor: Eclipse Modeling Project
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/build.properties b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/build.properties
deleted file mode 100644
index 329b01e..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/build.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-bin.includes = META-INF/,\
-               viewmodels/,\
-               plugin.xml
-               
\ No newline at end of file
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/plugin.xml b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/plugin.xml
deleted file mode 100644
index 8a19cc1..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/plugin.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?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="viewmodels/User.view">
-      </file>
-   </extension>
-
-</plugin>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/viewmodels/.Task.ideconfig b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/viewmodels/.Task.ideconfig
deleted file mode 100644
index 343eb8b..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/viewmodels/.Task.ideconfig
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>

-<org.eclipse.emf.ecp.view.ideconfig.model:IDEConfig xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.emf.ecp.view.ideconfig.model="http://org/eclipse/emf/ecp/view/ideconfig/model" ecorePath="/org.eclipse.emf.ecp.makeithappen.model/model/task.ecore"/>

diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/viewmodels/.User.ideconfig b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/viewmodels/.User.ideconfig
deleted file mode 100644
index 343eb8b..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/viewmodels/.User.ideconfig
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>

-<org.eclipse.emf.ecp.view.ideconfig.model:IDEConfig xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.emf.ecp.view.ideconfig.model="http://org/eclipse/emf/ecp/view/ideconfig/model" ecorePath="/org.eclipse.emf.ecp.makeithappen.model/model/task.ecore"/>

diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/viewmodels/User.view b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/viewmodels/User.view
deleted file mode 100644
index 333b7cf..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/viewmodels/User.view
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>

-<org.eclipse.emf.ecp.view.model:View xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:org.eclipse.emf.ecp.view.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" ecorePath="/org.eclipse.emf.ecp.makeithappen.model/model/task.ecore">

-  <rootEClass href="http://eclipse/org/emf/ecp/makeithappen/model/task#//User"/>

-  <children xsi:type="org.eclipse.emf.ecp.view.horizontal.model:HorizontalLayout">

-    <children xsi:type="org.eclipse.emf.ecp.view.group.model:Group" name="Primary">

-      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control firstName">

-        <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference">

-          <domainModelEFeature xsi:type="ecore:EAttribute" href="http://eclipse/org/emf/ecp/makeithappen/model/task#//User/firstName"/>

-        </domainModelReference>

-      </children>

-      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control lastName">

-        <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference">

-          <domainModelEFeature xsi:type="ecore:EAttribute" href="http://eclipse/org/emf/ecp/makeithappen/model/task#//User/lastName"/>

-        </domainModelReference>

-      </children>

-      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control email">

-        <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference">

-          <domainModelEFeature xsi:type="ecore:EAttribute" href="http://eclipse/org/emf/ecp/makeithappen/model/task#//User/email"/>

-        </domainModelReference>

-      </children>

-      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control dateOfBirth">

-        <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference">

-          <domainModelEFeature xsi:type="ecore:EAttribute" href="http://eclipse/org/emf/ecp/makeithappen/model/task#//User/dateOfBirth"/>

-        </domainModelReference>

-      </children>

-      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control gender">

-        <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference">

-          <domainModelEFeature xsi:type="ecore:EAttribute" href="http://eclipse/org/emf/ecp/makeithappen/model/task#//User/gender"/>

-        </domainModelReference>

-      </children>

-    </children>

-    <children xsi:type="org.eclipse.emf.ecp.view.group.model:Group" name="Secondary">

-      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control weight">

-        <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference">

-          <domainModelEFeature xsi:type="ecore:EAttribute" href="http://eclipse/org/emf/ecp/makeithappen/model/task#//User/weight"/>

-        </domainModelReference>

-      </children>

-      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control heigth">

-        <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference">

-          <domainModelEFeature xsi:type="ecore:EAttribute" href="http://eclipse/org/emf/ecp/makeithappen/model/task#//User/heigth"/>

-        </domainModelReference>

-      </children>

-      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control active">

-        <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference">

-          <domainModelEFeature xsi:type="ecore:EAttribute" href="http://eclipse/org/emf/ecp/makeithappen/model/task#//User/active"/>

-        </domainModelReference>

-      </children>

-      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control timeOfRegistration">

-        <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference">

-          <domainModelEFeature xsi:type="ecore:EAttribute" href="http://eclipse/org/emf/ecp/makeithappen/model/task#//User/timeOfRegistration"/>

-        </domainModelReference>

-      </children>

-      <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control nationality">

-        <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference">

-          <domainModelEFeature xsi:type="ecore:EAttribute" href="http://eclipse/org/emf/ecp/makeithappen/model/task#//User/nationality"/>

-        </domainModelReference>

-      </children>

-    </children>

-  </children>

-  <children xsi:type="org.eclipse.emf.ecp.view.model:Control" name="Control tasks">

-    <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference">

-      <domainModelEFeature xsi:type="ecore:EReference" href="http://eclipse/org/emf/ecp/makeithappen/model/task#//User/tasks"/>

-    </domainModelReference>

-  </children>

-</org.eclipse.emf.ecp.view.model:View>

diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.checkstyle b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.checkstyle
deleted file mode 100644
index dccf8af..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.checkstyle
+++ /dev/null
@@ -1,10 +0,0 @@
-<?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.makeithappen.model/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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.gitignore b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.gitignore
deleted file mode 100644
index 5e56e04..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/bin
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.project b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.project
deleted file mode 100644
index d9ae3eb..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.emf.ecp.makeithappen.model</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.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
-	</natures>
-</projectDescription>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.settings/org.eclipse.core.resources.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index f548abb..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,6 +0,0 @@
-eclipse.preferences.version=1
-
-encoding//model/etypes.ecore=UTF-8
-
-
-encoding/<project>=UTF-8
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.settings/org.eclipse.core.runtime.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index 5a0ad22..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index c948297..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,418 +0,0 @@
-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.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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.settings/org.eclipse.jdt.launching.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index 3bb2352..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.settings/org.eclipse.jdt.ui.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 8bc4bb4..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,127 +0,0 @@
-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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.settings/org.eclipse.ltk.core.refactoring.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index 864e30f..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.settings/org.eclipse.pde.api.tools.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index e4e3c00..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,97 +0,0 @@
-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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.settings/org.eclipse.pde.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 0bbee3c..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/META-INF/MANIFEST.MF
deleted file mode 100644
index ad1b368..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,15 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.model;singleton:=true
-Bundle-Version: 1.5.1.qualifier
-Bundle-ClassPath: .
-Bundle-Vendor: Eclipse Modeling Project
-Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.ecp.makeithappen.model.task;version="1.5.1",
- org.eclipse.emf.ecp.makeithappen.model.task.impl;version="1.5.1",
- org.eclipse.emf.ecp.makeithappen.model.task.util;version="1.5.1"
-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-ActivationPolicy: lazy
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/build.properties b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/build.properties
deleted file mode 100644
index a9b8b22..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/build.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-bin.includes = .,\
-               model/,\
-               META-INF/,\
-               plugin.xml,\
-               plugin.properties
-jars.compile.order = .
-source.. = src/
-output.. = bin/
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/checkstyle/esmCheckstyle.xml b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/checkstyle/esmCheckstyle.xml
deleted file mode 100644
index b1f594d..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/checkstyle/esmCheckstyle.xml
+++ /dev/null
@@ -1,218 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
-<!--
- This configuration file was written by the eclipse-cs plugin configuration 
-	editor -->
-<!-- Checkstyle-Configuration: ESMStyle Description: none -->
-<module name="Checker">
-	<property name="severity" value="warning"/>
-	<module name="TreeWalker">
-		<property name="tabWidth" value="4"/>
-		<module name="FileContentsHolder"/>
-		<module name="JavadocMethod">
-			<property name="scope" value="package"/>
-		</module>
-		<module name="JavadocType">
-			<property name="allowUnknownTags" value="true"/>
-		</module>
-		<module name="JavadocVariable">
-			<property name="scope" value="package"/>
-		</module>
-		<module name="JavadocStyle"/>
-		<module name="ConstantName"/>
-		<module name="LocalFinalVariableName"/>
-		<module name="LocalVariableName"/>
-		<module name="MemberName"/>
-		<module name="MethodName"/>
-		<module name="PackageName"/>
-		<module name="ParameterName"/>
-		<module name="StaticVariableName"/>
-		<module name="TypeName"/>
-		<module name="AvoidStarImport"/>
-		<module name="IllegalImport"/>
-		<module name="RedundantImport"/>
-		<module name="UnusedImports"/>
-		<module name="LineLength">
-			<property name="severity" value="ignore"/>
-			<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
-		</module>
-		<module name="MethodLength"/>
-		<module name="ParameterNumber"/>
-		<module name="EmptyForIteratorPad">
-			<property name="severity" value="ignore"/>
-			<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
-		</module>
-		<module name="MethodParamPad">
-			<property name="severity" value="ignore"/>
-			<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
-		</module>
-		<module name="NoWhitespaceAfter">
-			<property name="severity" value="ignore"/>
-			<property name="tokens" value="BNOT,DEC,DOT,INC,LNOT,UNARY_MINUS,UNARY_PLUS"/>
-			<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
-		</module>
-		<module name="NoWhitespaceBefore">
-			<property name="severity" value="ignore"/>
-			<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
-		</module>
-		<module name="OperatorWrap">
-			<property name="severity" value="ignore"/>
-			<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
-		</module>
-		<module name="ParenPad">
-			<property name="severity" value="ignore"/>
-			<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
-		</module>
-		<module name="TypecastParenPad">
-			<property name="severity" value="ignore"/>
-			<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
-		</module>
-		<module name="WhitespaceAfter">
-			<property name="severity" value="ignore"/>
-			<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
-		</module>
-		<module name="WhitespaceAround">
-			<property name="severity" value="ignore"/>
-			<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
-		</module>
-		<module name="ModifierOrder"/>
-		<module name="RedundantModifier"/>
-		<module name="AvoidNestedBlocks">
-			<property name="severity" value="ignore"/>
-			<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
-		</module>
-		<module name="EmptyBlock">
-			<property name="severity" value="ignore"/>
-			<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
-		</module>
-		<module name="LeftCurly">
-			<property name="severity" value="ignore"/>
-			<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
-		</module>
-		<module name="NeedBraces"/>
-		<module name="RightCurly">
-			<property name="severity" value="ignore"/>
-			<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
-		</module>
-		<module name="AvoidInlineConditionals">
-			<property name="severity" value="ignore"/>
-			<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
-		</module>
-		<module name="EmptyStatement"/>
-		<module name="EqualsHashCode"/>
-		<module name="HiddenField">
-			<property name="severity" value="ignore"/>
-			<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
-		</module>
-		<module name="IllegalInstantiation"/>
-		<module name="InnerAssignment"/>
-		<module name="MagicNumber">
-			<property name="severity" value="ignore"/>
-			<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
-		</module>
-		<module name="MissingSwitchDefault"/>
-		<module name="SimplifyBooleanExpression"/>
-		<module name="SimplifyBooleanReturn"/>
-		<module name="DesignForExtension">
-			<property name="severity" value="ignore"/>
-			<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
-		</module>
-		<module name="FinalClass"/>
-		<module name="HideUtilityClassConstructor"/>
-		<module name="InterfaceIsType"/>
-		<module name="VisibilityModifier"/>
-		<module name="ArrayTypeStyle"/>
-		<module name="FinalParameters">
-			<property name="severity" value="ignore"/>
-			<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
-		</module>
-		<module name="TodoComment">
-			<property name="severity" value="ignore"/>
-			<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
-		</module>
-		<module name="UpperEll"/>
-		<module name="BooleanExpressionComplexity">
-			<property name="max" value="5"/>
-		</module>
-		<module name="CyclomaticComplexity">
-			<property name="max" value="15"/>
-		</module>
-		<module name="NPathComplexity">
-			<property name="max" value="220"/>
-		</module>
-		<module name="JavaNCSS"/>
-		<module name="SuperClone"/>
-		<module name="SuperFinalize"/>
-		<module name="PackageDeclaration"/>
-		<module name="NestedIfDepth">
-			<property name="max" value="2"/>
-		</module>
-		<module name="IllegalCatch">
-			<property name="id" value="IllegalExceptionCatch"/>
-		</module>
-		<module name="IllegalThrows">
-			<property name="illegalClassNames" value="java.lang.Throwable, java.lang.Error, java.lang.RuntimeException, java.lang.Exception"/>
-			<property name="ignoredMethodNames" value="finalize, call, start, stop, setUp, tearDown"/>
-		</module>
-		<module name="CovariantEquals"/>
-		<module name="DefaultComesLast"/>
-		<module name="ExplicitInitialization"/>
-		<module name="FallThrough"/>
-		<module name="AnonInnerLength">
-			<property name="max" value="30"/>
-		</module>
-		<module name="ThrowsCount">
-			<property name="max" value="3"/>
-		</module>
-		<module name="UncommentedMain"/>
-		<module name="CyclomaticComplexity">
-			<property name="id" value="complexity"/>
-			<property name="max" value="15"/>
-		</module>
-	</module>
-	<module name="FileLength">
-		<property name="severity" value="info"/>
-	</module>
-	<module name="FileTabCharacter">
-		<property name="severity" value="ignore"/>
-		<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
-	</module>
-	<module name="NewlineAtEndOfFile">
-		<property name="severity" value="ignore"/>
-		<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
-	</module>
-	<module name="Translation"/>
-	<module name="SuppressionCommentFilter">
-		<property name="offCommentFormat" value="(@generated$)|(// end of custom code$)"/>
-		<property name="onCommentFormat" value="(@generated NOT$)|(// begin of custom code$)"/>
-		<metadata name="com.atlassw.tools.eclipse.checkstyle.customMessage" value="Warning suppressed because code is generated by EMF. Warning enabled on custom code"/>
-		<metadata name="com.atlassw.tools.eclipse.checkstyle.comment" value="Supress Warnings on EMF generated code. No Supress Warning on manual code"/>
-	</module>
-	<module name="SuppressionCommentFilter">
-		<property name="offCommentFormat" value="// BEGIN SUPRESS CATCH EXCEPTION"/>
-		<property name="onCommentFormat" value="// END SUPRESS CATCH EXCEPTION"/>
-		<property name="messageFormat" value=".*Exception.*"/>
-		<metadata name="com.atlassw.tools.eclipse.checkstyle.comment" value="SupressCatchExceptionWarning"/>
-	</module>
-	<module name="SuppressionCommentFilter">
-		<property name="offCommentFormat" value="// BEGIN IGNORE UNNECCESSARY IMPORT"/>
-		<property name="onCommentFormat" value="// END IGNORE UNNECCESSARY IMPORT"/>
-		<property name="messageFormat" value=".*import.*"/>
-		<metadata name="com.atlassw.tools.eclipse.checkstyle.comment" value="Ignore unneccessary import warnings"/>
-	</module>
-	<module name="SuppressionCommentFilter">
-		<property name="offCommentFormat" value="// BEGIN COMPLEX CODE"/>
-		<property name="onCommentFormat" value="// END COMPLEX CODE"/>
-		<metadata name="com.atlassw.tools.eclipse.checkstyle.comment" value="High Complexity Code Warning Suppression"/>
-	</module>
-	<module name="SuppressionCommentFilter">
-		<property name="offCommentFormat" value="// REUSED CLASS"/>
-		<property name="onCommentFormat" value="// END REUSED CLASS"/>
-		<metadata name="com.atlassw.tools.eclipse.checkstyle.comment" value="High Complexity Code Warning Suppression"/>
-	</module>
-	<module name="RegexpHeader">
-		<metadata name="net.sf.eclipsecs.core.comment" value="EclipseSource and others"/>
-		<property name="header" value="^\/\*+$\n^ \* Copyright( \(c\))? \d\d\d\d(-\d\d\d\d)? ((Chair for Applied Software Engineering\,)|(Eike Stepper \(Berlin, Germany\) and others\.)|(Google, Inc\.)|(Florian Pirchner \(Vienna\, Austria\) and others\.)|(EclipseSource Muenchen GmbH and others\.)|(EclipseSource\.))$\n^ \*(( Technische Universitaet Muenchen\.)|(.*))$\n^ \* All rights reserved\. This program and the accompanying materials$\n^ \* are made available under the terms of the Eclipse Public License v1\.0$\n^ \* which accompanies this distribution\, and is available at$\n^ \* http\:\/\/www\.eclipse\.org\/legal\/epl-v10\.html$\n^ \*.*$\n^ \* Contributors\:.*$\n"/>
-		<property name="fileExtensions" value="java"/>
-	</module>
-</module>
\ No newline at end of file
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/model/task.ecore b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/model/task.ecore
deleted file mode 100644
index e1978ec..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/model/task.ecore
+++ /dev/null
@@ -1,62 +0,0 @@
-<?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="task" nsURI="http://eclipse/org/emf/ecp/makeithappen/model/task"
-    nsPrefix="org.eclipse.emf.ecp.makeithappen.model.task">
-  <eClassifiers xsi:type="ecore:EClass" name="Task">
-    <eOperations name="hasName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="chain" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments/>
-          <eTypeArguments/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="assignee" eType="#//User"
-        eOpposite="#//User/tasks"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="dueDate" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="subTasks" upperBound="-1"
-        eType="#//Task" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="done" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="User">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="firstName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="lastName" lowerBound="1"
-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="gender" eType="#//Gender"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="active" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="timeOfRegistration" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="weight" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="heigth" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="nationality" eType="#//Nationality"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="dateOfBirth" eType="#//DateOfBirth"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="email" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="tasks" upperBound="-1"
-        eType="#//Task" eOpposite="#//Task/assignee"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="UserGroup">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="users" upperBound="-1"
-        eType="#//User" containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="Gender">
-    <eLiterals name="Male"/>
-    <eLiterals name="Female" value="1"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="Nationality">
-    <eLiterals name="German" literal="German"/>
-    <eLiterals name="French"/>
-    <eLiterals name="UK"/>
-    <eLiterals name="US"/>
-    <eLiterals name="Spanish"/>
-    <eLiterals name="Italian"/>
-    <eLiterals name="Russian"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EDataType" name="DateOfBirth" instanceClassName="javax.xml.datatype.XMLGregorianCalendar">
-    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-      <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#date"/>
-    </eAnnotations>
-  </eClassifiers>
-</ecore:EPackage>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/model/task.ecorediag b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/model/task.ecorediag
deleted file mode 100644
index 1f76f50..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/model/task.ecorediag
+++ /dev/null
@@ -1,167 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_S1gHwDy-EeO16cFv6spH1w" type="EcoreTools" measurementUnit="Pixel">
-  <children xmi:type="notation:Node" xmi:id="_S1x0kDy-EeO16cFv6spH1w" type="1001">
-    <children xmi:type="notation:Node" xmi:id="_S1zCsDy-EeO16cFv6spH1w" type="4001"/>
-    <children xmi:type="notation:Node" xmi:id="_S11e8Dy-EeO16cFv6spH1w" type="5001">
-      <children xmi:type="notation:Node" xmi:id="_S12GADy-EeO16cFv6spH1w" type="2001">
-        <element xmi:type="ecore:EAttribute" href="task.ecore#//Task/name"/>
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_S12GATy-EeO16cFv6spH1w"/>
-      </children>
-      <children xmi:type="notation:Node" xmi:id="_S12GAjy-EeO16cFv6spH1w" type="2001">
-        <element xmi:type="ecore:EAttribute" href="task.ecore#//Task/description"/>
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_S12GAzy-EeO16cFv6spH1w"/>
-      </children>
-      <children xmi:type="notation:Node" xmi:id="_S12tEDy-EeO16cFv6spH1w" type="2001">
-        <element xmi:type="ecore:EAttribute" href="task.ecore#//Task/dueDate"/>
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_S12tETy-EeO16cFv6spH1w"/>
-      </children>
-      <children xmi:type="notation:Node" xmi:id="_S12tEjy-EeO16cFv6spH1w" type="2001">
-        <element xmi:type="ecore:EAttribute" href="task.ecore#//Task/done"/>
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_S12tEzy-EeO16cFv6spH1w"/>
-      </children>
-      <styles xmi:type="notation:DrawerStyle" xmi:id="_S11e8Ty-EeO16cFv6spH1w"/>
-      <styles xmi:type="notation:SortingStyle" xmi:id="_S11e8jy-EeO16cFv6spH1w"/>
-      <styles xmi:type="notation:FilteringStyle" xmi:id="_S11e8zy-EeO16cFv6spH1w"/>
-    </children>
-    <children xmi:type="notation:Node" xmi:id="_S11e9Dy-EeO16cFv6spH1w" type="5002">
-      <children xmi:type="notation:Node" xmi:id="_S13UIDy-EeO16cFv6spH1w" type="2002">
-        <element xmi:type="ecore:EOperation" href="task.ecore#//Task/hasName"/>
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_S13UITy-EeO16cFv6spH1w"/>
-      </children>
-      <styles xmi:type="notation:DrawerStyle" xmi:id="_S11e9Ty-EeO16cFv6spH1w"/>
-      <styles xmi:type="notation:SortingStyle" xmi:id="_S11e9jy-EeO16cFv6spH1w"/>
-      <styles xmi:type="notation:FilteringStyle" xmi:id="_S11e9zy-EeO16cFv6spH1w"/>
-    </children>
-    <styles xmi:type="notation:ShapeStyle" xmi:id="_S1x0kTy-EeO16cFv6spH1w" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
-    <element xmi:type="ecore:EClass" href="task.ecore#//Task"/>
-    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S1x0kjy-EeO16cFv6spH1w" x="450" y="25"/>
-  </children>
-  <children xmi:type="notation:Node" xmi:id="_S13UIjy-EeO16cFv6spH1w" type="1001">
-    <children xmi:type="notation:Node" xmi:id="_S137MDy-EeO16cFv6spH1w" type="4001"/>
-    <children xmi:type="notation:Node" xmi:id="_S137MTy-EeO16cFv6spH1w" type="5001">
-      <children xmi:type="notation:Node" xmi:id="_S14iRDy-EeO16cFv6spH1w" type="2001">
-        <element xmi:type="ecore:EAttribute" href="task.ecore#//User/firstName"/>
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_S14iRTy-EeO16cFv6spH1w"/>
-      </children>
-      <children xmi:type="notation:Node" xmi:id="_S15JUDy-EeO16cFv6spH1w" type="2001">
-        <element xmi:type="ecore:EAttribute" href="task.ecore#//User/lastName"/>
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_S15JUTy-EeO16cFv6spH1w"/>
-      </children>
-      <children xmi:type="notation:Node" xmi:id="_S15JUjy-EeO16cFv6spH1w" type="2001">
-        <element xmi:type="ecore:EAttribute" href="task.ecore#//User/gender"/>
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_S15JUzy-EeO16cFv6spH1w"/>
-      </children>
-      <children xmi:type="notation:Node" xmi:id="_S15JVDy-EeO16cFv6spH1w" type="2001">
-        <element xmi:type="ecore:EAttribute" href="task.ecore#//User/active"/>
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_S15JVTy-EeO16cFv6spH1w"/>
-      </children>
-      <children xmi:type="notation:Node" xmi:id="_S15wYDy-EeO16cFv6spH1w" type="2001">
-        <element xmi:type="ecore:EAttribute" href="task.ecore#//User/timeOfRegistration"/>
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_S15wYTy-EeO16cFv6spH1w"/>
-      </children>
-      <children xmi:type="notation:Node" xmi:id="_S15wYjy-EeO16cFv6spH1w" type="2001">
-        <element xmi:type="ecore:EAttribute" href="task.ecore#//User/weight"/>
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_S15wYzy-EeO16cFv6spH1w"/>
-      </children>
-      <children xmi:type="notation:Node" xmi:id="_S15wZDy-EeO16cFv6spH1w" type="2001">
-        <element xmi:type="ecore:EAttribute" href="task.ecore#//User/heigth"/>
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_S16XcDy-EeO16cFv6spH1w"/>
-      </children>
-      <children xmi:type="notation:Node" xmi:id="_S16XcTy-EeO16cFv6spH1w" type="2001">
-        <element xmi:type="ecore:EAttribute" href="task.ecore#//User/nationality"/>
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_S16Xcjy-EeO16cFv6spH1w"/>
-      </children>
-      <children xmi:type="notation:Node" xmi:id="_S16Xczy-EeO16cFv6spH1w" type="2001">
-        <element xmi:type="ecore:EAttribute" href="task.ecore#//User/dateOfBirth"/>
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_S16XdDy-EeO16cFv6spH1w"/>
-      </children>
-      <styles xmi:type="notation:DrawerStyle" xmi:id="_S137Mjy-EeO16cFv6spH1w"/>
-      <styles xmi:type="notation:SortingStyle" xmi:id="_S137Mzy-EeO16cFv6spH1w"/>
-      <styles xmi:type="notation:FilteringStyle" xmi:id="_S137NDy-EeO16cFv6spH1w"/>
-    </children>
-    <children xmi:type="notation:Node" xmi:id="_S14iQDy-EeO16cFv6spH1w" type="5002">
-      <styles xmi:type="notation:DrawerStyle" xmi:id="_S14iQTy-EeO16cFv6spH1w"/>
-      <styles xmi:type="notation:SortingStyle" xmi:id="_S14iQjy-EeO16cFv6spH1w"/>
-      <styles xmi:type="notation:FilteringStyle" xmi:id="_S14iQzy-EeO16cFv6spH1w"/>
-    </children>
-    <styles xmi:type="notation:ShapeStyle" xmi:id="_S13UIzy-EeO16cFv6spH1w" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
-    <element xmi:type="ecore:EClass" href="task.ecore#//User"/>
-    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S13UJDy-EeO16cFv6spH1w" x="100" y="25" width="218"/>
-  </children>
-  <children xmi:type="notation:Node" xmi:id="_S16-gDy-EeO16cFv6spH1w" type="1001">
-    <children xmi:type="notation:Node" xmi:id="_S16-gzy-EeO16cFv6spH1w" type="4001"/>
-    <children xmi:type="notation:Node" xmi:id="_S16-hDy-EeO16cFv6spH1w" type="5001">
-      <children xmi:type="notation:Node" xmi:id="_S17lkDy-EeO16cFv6spH1w" type="2001">
-        <element xmi:type="ecore:EAttribute" href="task.ecore#//UserGroup/name"/>
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_S17lkTy-EeO16cFv6spH1w"/>
-      </children>
-      <styles xmi:type="notation:DrawerStyle" xmi:id="_S16-hTy-EeO16cFv6spH1w"/>
-      <styles xmi:type="notation:SortingStyle" xmi:id="_S16-hjy-EeO16cFv6spH1w"/>
-      <styles xmi:type="notation:FilteringStyle" xmi:id="_S16-hzy-EeO16cFv6spH1w"/>
-    </children>
-    <children xmi:type="notation:Node" xmi:id="_S16-iDy-EeO16cFv6spH1w" type="5002">
-      <styles xmi:type="notation:DrawerStyle" xmi:id="_S16-iTy-EeO16cFv6spH1w"/>
-      <styles xmi:type="notation:SortingStyle" xmi:id="_S16-ijy-EeO16cFv6spH1w"/>
-      <styles xmi:type="notation:FilteringStyle" xmi:id="_S16-izy-EeO16cFv6spH1w"/>
-    </children>
-    <styles xmi:type="notation:ShapeStyle" xmi:id="_S16-gTy-EeO16cFv6spH1w" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
-    <element xmi:type="ecore:EClass" href="task.ecore#//UserGroup"/>
-    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S16-gjy-EeO16cFv6spH1w" x="125" y="275"/>
-  </children>
-  <styles xmi:type="notation:DiagramStyle" xmi:id="_S1gHwTy-EeO16cFv6spH1w"/>
-  <element xmi:type="ecore:EPackage" href="task.ecore#/"/>
-  <edges xmi:type="notation:Edge" xmi:id="_S2C6UDy-EeO16cFv6spH1w" type="3002" source="_S1x0kDy-EeO16cFv6spH1w" target="_S13UIjy-EeO16cFv6spH1w">
-    <children xmi:type="notation:Node" xmi:id="_S2DhYDy-EeO16cFv6spH1w" type="4011">
-      <layoutConstraint xmi:type="notation:Location" xmi:id="_S2DhYTy-EeO16cFv6spH1w" x="-9" y="-17"/>
-    </children>
-    <children xmi:type="notation:Node" xmi:id="_S2EIcDy-EeO16cFv6spH1w" type="4012">
-      <layoutConstraint xmi:type="notation:Location" xmi:id="_S2EIcTy-EeO16cFv6spH1w" x="-4" y="16"/>
-    </children>
-    <styles xmi:type="notation:ConnectorStyle" xmi:id="_S2C6UTy-EeO16cFv6spH1w" lineColor="4210752"/>
-    <styles xmi:type="notation:FontStyle" xmi:id="_S2C6Ujy-EeO16cFv6spH1w" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
-    <element xmi:type="ecore:EReference" href="task.ecore#//Task/assignee"/>
-    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_S2C6Uzy-EeO16cFv6spH1w" points="[0, 0, 3, 138]$[0, -70, 3, 68]$[0, -138, 3, 0]"/>
-    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vEiJUDy-EeO16cFv6spH1w" id="(0.0,0.8272727272727273)"/>
-    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vEiJUTy-EeO16cFv6spH1w" id="(0.9897610921501706,0.37254901960784315)"/>
-  </edges>
-  <edges xmi:type="notation:Edge" xmi:id="_S2EIcjy-EeO16cFv6spH1w" type="3002" source="_S1x0kDy-EeO16cFv6spH1w" target="_S1x0kDy-EeO16cFv6spH1w">
-    <children xmi:type="notation:Node" xmi:id="_S2EIdjy-EeO16cFv6spH1w" type="4011">
-      <layoutConstraint xmi:type="notation:Location" xmi:id="_S2EIdzy-EeO16cFv6spH1w" x="44" y="47"/>
-    </children>
-    <children xmi:type="notation:Node" xmi:id="_S2EvgDy-EeO16cFv6spH1w" type="4012">
-      <layoutConstraint xmi:type="notation:Location" xmi:id="_S2EvgTy-EeO16cFv6spH1w" x="10" y="10"/>
-    </children>
-    <styles xmi:type="notation:ConnectorStyle" xmi:id="_S2EIczy-EeO16cFv6spH1w" lineColor="4210752"/>
-    <styles xmi:type="notation:FontStyle" xmi:id="_S2EIdDy-EeO16cFv6spH1w" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
-    <element xmi:type="ecore:EReference" href="task.ecore#//Task/subTasks"/>
-    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_S2EIdTy-EeO16cFv6spH1w" points="[148, 6, 148, 6]$[210, 6, 210, 6]$[210, 116, 210, 116]$[8, 116, 8, 116]$[8, 54, 8, 54]"/>
-  </edges>
-  <edges xmi:type="notation:Edge" xmi:id="_S2Evgjy-EeO16cFv6spH1w" type="3002" source="_S13UIjy-EeO16cFv6spH1w" target="_S1x0kDy-EeO16cFv6spH1w">
-    <children xmi:type="notation:Node" xmi:id="_S2Evhjy-EeO16cFv6spH1w" type="4011">
-      <layoutConstraint xmi:type="notation:Location" xmi:id="_S2Evhzy-EeO16cFv6spH1w" x="4" y="-18"/>
-    </children>
-    <children xmi:type="notation:Node" xmi:id="_S2EviDy-EeO16cFv6spH1w" type="4012">
-      <layoutConstraint xmi:type="notation:Location" xmi:id="_S2EviTy-EeO16cFv6spH1w" x="-1" y="12"/>
-    </children>
-    <styles xmi:type="notation:ConnectorStyle" xmi:id="_S2Evgzy-EeO16cFv6spH1w" lineColor="4210752"/>
-    <styles xmi:type="notation:FontStyle" xmi:id="_S2EvhDy-EeO16cFv6spH1w" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
-    <element xmi:type="ecore:EReference" href="task.ecore#//User/tasks"/>
-    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_S2EvhTy-EeO16cFv6spH1w" points="[3, 0, 0, -138]$[3, 68, 0, -70]$[3, 138, 0, 0]"/>
-    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_S4ETkDy-EeO16cFv6spH1w" id="(0.9897610921501706,0.37254901960784315)"/>
-    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_S4ETkTy-EeO16cFv6spH1w" id="(0.0,0.8272727272727273)"/>
-  </edges>
-  <edges xmi:type="notation:Edge" xmi:id="_S2Evijy-EeO16cFv6spH1w" type="3002" source="_S16-gDy-EeO16cFv6spH1w" target="_S13UIjy-EeO16cFv6spH1w">
-    <children xmi:type="notation:Node" xmi:id="_S2FWkDy-EeO16cFv6spH1w" type="4011">
-      <layoutConstraint xmi:type="notation:Location" xmi:id="_S2FWkTy-EeO16cFv6spH1w" x="-33" y="-24"/>
-    </children>
-    <children xmi:type="notation:Node" xmi:id="_S2FWkjy-EeO16cFv6spH1w" type="4012">
-      <layoutConstraint xmi:type="notation:Location" xmi:id="_S2FWkzy-EeO16cFv6spH1w" x="-3" y="23"/>
-    </children>
-    <styles xmi:type="notation:ConnectorStyle" xmi:id="_S2Evizy-EeO16cFv6spH1w" lineColor="4210752"/>
-    <styles xmi:type="notation:FontStyle" xmi:id="_S2EvjDy-EeO16cFv6spH1w" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
-    <element xmi:type="ecore:EReference" href="task.ecore#//UserGroup/users"/>
-    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_S2EvjTy-EeO16cFv6spH1w" points="[0, 0, 220, 60]$[-220, -60, 0, 0]"/>
-    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_S4FhsDy-EeO16cFv6spH1w" id="(0.4608695652173913,0.0)"/>
-    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_S4FhsTy-EeO16cFv6spH1w" id="(0.5563139931740614,0.9852941176470589)"/>
-  </edges>
-</notation:Diagram>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/model/task.genmodel b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/model/task.genmodel
deleted file mode 100644
index c322a89..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/model/task.genmodel
+++ /dev/null
@@ -1,60 +0,0 @@
-<?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-2014 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 Munich - initial API and implementation"
-    modelDirectory="/org.eclipse.emf.ecp.makeithappen.model/src" editDirectory="/org.eclipse.emf.ecp.makeithappen.model.edit/src"
-    editorDirectory="/org.eclipse.emf.ecp.makeithappen.model.editor/src" modelPluginID="org.eclipse.emf.ecp.makeithappen.model"
-    modelName="Task" editPluginClass="org.eclipse.emf.ecp.makeithappen.model.task.provider.TaskEditPlugin"
-    editorPluginClass="org.eclipse.emf.ecp.makeithappen.model.task.presentation.TaskEditorPlugin"
-    nonNLSMarkers="true" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
-    codeFormatting="true" commentFormatting="true" testSuiteClass="org.eclipse.emf.ecp.makeithappen.model.task.tests.TaskAllTests"
-    importerID="org.eclipse.emf.importer.ecore" complianceLevel="7.0" copyrightFields="false"
-    editPluginID="org.eclipse.emf.ecp.makeithappen.model.edit" editorPluginID="org.eclipse.emf.ecp.makeithappen.model.editor"
-    operationReflection="true" importOrganizing="true" cleanup="true">
-  <foreignModel>task.ecore</foreignModel>
-  <genPackages prefix="Task" basePackage="org.eclipse.emf.ecp.makeithappen.model"
-      disposableProviderFactory="true" ecorePackage="task.ecore#/">
-    <genEnums typeSafeEnumCompatible="false" ecoreEnum="task.ecore#//Gender">
-      <genEnumLiterals ecoreEnumLiteral="task.ecore#//Gender/Male"/>
-      <genEnumLiterals ecoreEnumLiteral="task.ecore#//Gender/Female"/>
-    </genEnums>
-    <genEnums typeSafeEnumCompatible="false" ecoreEnum="task.ecore#//Nationality">
-      <genEnumLiterals ecoreEnumLiteral="task.ecore#//Nationality/German"/>
-      <genEnumLiterals ecoreEnumLiteral="task.ecore#//Nationality/French"/>
-      <genEnumLiterals ecoreEnumLiteral="task.ecore#//Nationality/UK"/>
-      <genEnumLiterals ecoreEnumLiteral="task.ecore#//Nationality/US"/>
-      <genEnumLiterals ecoreEnumLiteral="task.ecore#//Nationality/Spanish"/>
-      <genEnumLiterals ecoreEnumLiteral="task.ecore#//Nationality/Italian"/>
-      <genEnumLiterals ecoreEnumLiteral="task.ecore#//Nationality/Russian"/>
-    </genEnums>
-    <genDataTypes ecoreDataType="task.ecore#//DateOfBirth"/>
-    <genClasses image="false" ecoreClass="task.ecore#//Task">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute task.ecore#//Task/name"/>
-      <genFeatures createChild="false" propertyMultiLine="true" ecoreFeature="ecore:EAttribute task.ecore#//Task/description"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference task.ecore#//Task/assignee"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute task.ecore#//Task/dueDate"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference task.ecore#//Task/subTasks"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute task.ecore#//Task/done"/>
-      <genOperations ecoreOperation="task.ecore#//Task/hasName">
-        <genParameters ecoreParameter="task.ecore#//Task/hasName/chain"/>
-        <genParameters ecoreParameter="task.ecore#//Task/hasName/context"/>
-      </genOperations>
-    </genClasses>
-    <genClasses ecoreClass="task.ecore#//User">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute task.ecore#//User/firstName"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute task.ecore#//User/lastName"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute task.ecore#//User/gender"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute task.ecore#//User/active"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute task.ecore#//User/timeOfRegistration"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute task.ecore#//User/weight"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute task.ecore#//User/heigth"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute task.ecore#//User/nationality"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute task.ecore#//User/dateOfBirth"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute task.ecore#//User/email"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference task.ecore#//User/tasks"/>
-    </genClasses>
-    <genClasses ecoreClass="task.ecore#//UserGroup">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute task.ecore#//UserGroup/name"/>
-      <genFeatures children="true" createChild="true" ecoreFeature="ecore:EReference task.ecore#//UserGroup/users"/>
-    </genClasses>
-  </genPackages>
-</genmodel:GenModel>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/plugin.properties b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/plugin.properties
deleted file mode 100644
index 31cc930..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/plugin.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-#
-
-pluginName = Makeithappen Model
-providerName = www.example.org
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/plugin.xml b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/plugin.xml
deleted file mode 100644
index 78b5372..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/plugin.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-
-<!--
--->
-
-<plugin>
-
-
-   <extension point="org.eclipse.emf.ecore.generated_package">
-      <!-- @generated task -->
-      <package
-            uri="http://eclipse/org/emf/ecp/makeithappen/model/task"
-            class="org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage"
-            genModel="model/task.genmodel"/>
-   </extension>
-
-</plugin>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/Gender.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/Gender.java
deleted file mode 100644
index 1d9e058..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/Gender.java
+++ /dev/null
@@ -1,255 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.model.task;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.emf.common.util.Enumerator;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the literals of the enumeration '<em><b>Gender</b></em>',
- * and utility methods for working with them.
- * <!-- end-user-doc -->
- *
- * @see org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage#getGender()
- * @model
- * @generated
- */
-public enum Gender implements Enumerator
-{
-	/**
-	 * The '<em><b>Male</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #MALE_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	MALE(0, "Male", "Male"), //$NON-NLS-1$ //$NON-NLS-2$
-
-	/**
-	 * The '<em><b>Female</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #FEMALE_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	FEMALE(1, "Female", "Female"); //$NON-NLS-1$ //$NON-NLS-2$
-
-	/**
-	 * The '<em><b>Male</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Male</b></em>' literal object isn't clear, there really should be more of a description
-	 * here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #MALE
-	 * @model name="Male"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int MALE_VALUE = 0;
-
-	/**
-	 * The '<em><b>Female</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Female</b></em>' literal object isn't clear, there really should be more of a
-	 * description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #FEMALE
-	 * @model name="Female"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int FEMALE_VALUE = 1;
-
-	/**
-	 * An array of all the '<em><b>Gender</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	private static final Gender[] VALUES_ARRAY =
-		new Gender[]
-		{
-			MALE,
-			FEMALE,
-		};
-
-	/**
-	 * A public read-only list of all the '<em><b>Gender</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public static final List<Gender> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
-
-	/**
-	 * Returns the '<em><b>Gender</b></em>' literal with the specified literal value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public static Gender get(String literal)
-	{
-		for (int i = 0; i < VALUES_ARRAY.length; ++i)
-		{
-			final Gender result = VALUES_ARRAY[i];
-			if (result.toString().equals(literal))
-			{
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Gender</b></em>' literal with the specified name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public static Gender getByName(String name)
-	{
-		for (int i = 0; i < VALUES_ARRAY.length; ++i)
-		{
-			final Gender result = VALUES_ARRAY[i];
-			if (result.getName().equals(name))
-			{
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Gender</b></em>' literal with the specified integer value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public static Gender get(int value)
-	{
-		switch (value)
-		{
-		case MALE_VALUE:
-			return MALE;
-		case FEMALE_VALUE:
-			return FEMALE;
-		}
-		return null;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	private final int value;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	private final String name;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	private final String literal;
-
-	/**
-	 * Only this class can construct instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	private Gender(int value, String name, String literal)
-	{
-		this.value = value;
-		this.name = name;
-		this.literal = literal;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public int getValue()
-	{
-		return value;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public String getName()
-	{
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public String getLiteral()
-	{
-		return literal;
-	}
-
-	/**
-	 * Returns the literal value of the enumerator, which is its string representation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		return literal;
-	}
-
-} // Gender
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/Nationality.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/Nationality.java
deleted file mode 100644
index b32f63d..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/Nationality.java
+++ /dev/null
@@ -1,393 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.model.task;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.emf.common.util.Enumerator;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the literals of the enumeration '<em><b>Nationality</b></em>',
- * and utility methods for working with them.
- * <!-- end-user-doc -->
- *
- * @see org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage#getNationality()
- * @model
- * @generated
- */
-public enum Nationality implements Enumerator
-{
-	/**
-	 * The '<em><b>German</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #GERMAN_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	GERMAN(0, "German", "German"), //$NON-NLS-1$ //$NON-NLS-2$
-
-	/**
-	 * The '<em><b>French</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #FRENCH_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	FRENCH(0, "French", "French"), //$NON-NLS-1$ //$NON-NLS-2$
-
-	/**
-	 * The '<em><b>UK</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #UK_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	UK(0, "UK", "UK"), //$NON-NLS-1$ //$NON-NLS-2$
-
-	/**
-	 * The '<em><b>US</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #US_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	US(0, "US", "US"), //$NON-NLS-1$ //$NON-NLS-2$
-
-	/**
-	 * The '<em><b>Spanish</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #SPANISH_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	SPANISH(0, "Spanish", "Spanish"), //$NON-NLS-1$ //$NON-NLS-2$
-
-	/**
-	 * The '<em><b>Italian</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #ITALIAN_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	ITALIAN(0, "Italian", "Italian"), //$NON-NLS-1$ //$NON-NLS-2$
-
-	/**
-	 * The '<em><b>Russian</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #RUSSIAN_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	RUSSIAN(0, "Russian", "Russian"); //$NON-NLS-1$ //$NON-NLS-2$
-
-	/**
-	 * The '<em><b>German</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>German</b></em>' literal object isn't clear, there really should be more of a
-	 * description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #GERMAN
-	 * @model name="German"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int GERMAN_VALUE = 0;
-
-	/**
-	 * The '<em><b>French</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>French</b></em>' literal object isn't clear, there really should be more of a
-	 * description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #FRENCH
-	 * @model name="French"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int FRENCH_VALUE = 0;
-
-	/**
-	 * The '<em><b>UK</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>UK</b></em>' literal object isn't clear, there really should be more of a description
-	 * here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #UK
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int UK_VALUE = 0;
-
-	/**
-	 * The '<em><b>US</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>US</b></em>' literal object isn't clear, there really should be more of a description
-	 * here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #US
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int US_VALUE = 0;
-
-	/**
-	 * The '<em><b>Spanish</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Spanish</b></em>' literal object isn't clear, there really should be more of a
-	 * description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #SPANISH
-	 * @model name="Spanish"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int SPANISH_VALUE = 0;
-
-	/**
-	 * The '<em><b>Italian</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Italian</b></em>' literal object isn't clear, there really should be more of a
-	 * description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #ITALIAN
-	 * @model name="Italian"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int ITALIAN_VALUE = 0;
-
-	/**
-	 * The '<em><b>Russian</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Russian</b></em>' literal object isn't clear, there really should be more of a
-	 * description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #RUSSIAN
-	 * @model name="Russian"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int RUSSIAN_VALUE = 0;
-
-	/**
-	 * An array of all the '<em><b>Nationality</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	private static final Nationality[] VALUES_ARRAY =
-		new Nationality[]
-		{
-			GERMAN,
-			FRENCH,
-			UK,
-			US,
-			SPANISH,
-			ITALIAN,
-			RUSSIAN,
-		};
-
-	/**
-	 * A public read-only list of all the '<em><b>Nationality</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public static final List<Nationality> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
-
-	/**
-	 * Returns the '<em><b>Nationality</b></em>' literal with the specified literal value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public static Nationality get(String literal)
-	{
-		for (int i = 0; i < VALUES_ARRAY.length; ++i)
-		{
-			final Nationality result = VALUES_ARRAY[i];
-			if (result.toString().equals(literal))
-			{
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Nationality</b></em>' literal with the specified name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public static Nationality getByName(String name)
-	{
-		for (int i = 0; i < VALUES_ARRAY.length; ++i)
-		{
-			final Nationality result = VALUES_ARRAY[i];
-			if (result.getName().equals(name))
-			{
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Nationality</b></em>' literal with the specified integer value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public static Nationality get(int value)
-	{
-		switch (value)
-		{
-		case GERMAN_VALUE:
-			return GERMAN;
-		}
-		return null;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	private final int value;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	private final String name;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	private final String literal;
-
-	/**
-	 * Only this class can construct instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	private Nationality(int value, String name, String literal)
-	{
-		this.value = value;
-		this.name = name;
-		this.literal = literal;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public int getValue()
-	{
-		return value;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public String getName()
-	{
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public String getLiteral()
-	{
-		return literal;
-	}
-
-	/**
-	 * Returns the literal value of the enumerator, which is its string representation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		return literal;
-	}
-
-} // Nationality
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/Task.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/Task.java
deleted file mode 100644
index 881f8c3..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/Task.java
+++ /dev/null
@@ -1,214 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.model.task;
-
-import java.util.Date;
-import java.util.Map;
-
-import org.eclipse.emf.common.util.DiagnosticChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Task</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.Task#getName <em>Name</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.Task#getDescription <em>Description</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.Task#getAssignee <em>Assignee</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.Task#getDueDate <em>Due Date</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.Task#getSubTasks <em>Sub Tasks</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.Task#isDone <em>Done</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage#getTask()
- * @model
- * @generated
- */
-public interface Task extends EObject
-{
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear, 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.emf.ecp.makeithappen.model.task.TaskPackage#getTask_Name()
-	 * @model
-	 * @generated
-	 */
-	String getName();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.emf.ecp.makeithappen.model.task.Task#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
-	 */
-	void setName(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Description</em>' attribute isn't clear, there really should be more of a description
-	 * here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the value of the '<em>Description</em>' attribute.
-	 * @see #setDescription(String)
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage#getTask_Description()
-	 * @model
-	 * @generated
-	 */
-	String getDescription();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.emf.ecp.makeithappen.model.task.Task#getDescription
-	 * <em>Description</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @param value the new value of the '<em>Description</em>' attribute.
-	 * @see #getDescription()
-	 * @generated
-	 */
-	void setDescription(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Assignee</b></em>' reference.
-	 * It is bidirectional and its opposite is '{@link org.eclipse.emf.ecp.makeithappen.model.task.User#getTasks
-	 * <em>Tasks</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Assignee</em>' reference isn't clear, there really should be more of a description
-	 * here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the value of the '<em>Assignee</em>' reference.
-	 * @see #setAssignee(User)
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage#getTask_Assignee()
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.User#getTasks
-	 * @model opposite="tasks"
-	 * @generated
-	 */
-	User getAssignee();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.emf.ecp.makeithappen.model.task.Task#getAssignee <em>Assignee</em>}'
-	 * reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @param value the new value of the '<em>Assignee</em>' reference.
-	 * @see #getAssignee()
-	 * @generated
-	 */
-	void setAssignee(User value);
-
-	/**
-	 * Returns the value of the '<em><b>Due Date</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Due Date</em>' attribute isn't clear, there really should be more of a description
-	 * here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the value of the '<em>Due Date</em>' attribute.
-	 * @see #setDueDate(Date)
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage#getTask_DueDate()
-	 * @model
-	 * @generated
-	 */
-	Date getDueDate();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.emf.ecp.makeithappen.model.task.Task#getDueDate <em>Due Date</em>}'
-	 * attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @param value the new value of the '<em>Due Date</em>' attribute.
-	 * @see #getDueDate()
-	 * @generated
-	 */
-	void setDueDate(Date value);
-
-	/**
-	 * Returns the value of the '<em><b>Sub Tasks</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.emf.ecp.makeithappen.model.task.Task}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Sub Tasks</em>' containment reference list isn't clear, there really should be more of
-	 * a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the value of the '<em>Sub Tasks</em>' containment reference list.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage#getTask_SubTasks()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<Task> getSubTasks();
-
-	/**
-	 * Returns the value of the '<em><b>Done</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Done</em>' attribute isn't clear, there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the value of the '<em>Done</em>' attribute.
-	 * @see #setDone(boolean)
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage#getTask_Done()
-	 * @model
-	 * @generated
-	 */
-	boolean isDone();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.emf.ecp.makeithappen.model.task.Task#isDone <em>Done</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @param value the new value of the '<em>Done</em>' attribute.
-	 * @see #isDone()
-	 * @generated
-	 */
-	void setDone(boolean value);
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @model
-	 * @generated
-	 */
-	boolean hasName(DiagnosticChain chain, Map<?, ?> context);
-
-} // Task
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/TaskFactory.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/TaskFactory.java
deleted file mode 100644
index c42398e..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/TaskFactory.java
+++ /dev/null
@@ -1,76 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.model.task;
-
-import org.eclipse.emf.ecore.EFactory;
-
-/**
- * <!-- begin-user-doc -->
- * 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.emf.ecp.makeithappen.model.task.TaskPackage
- * @generated
- */
-public interface TaskFactory extends EFactory
-{
-	/**
-	 * The singleton instance of the factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	TaskFactory eINSTANCE = org.eclipse.emf.ecp.makeithappen.model.task.impl.TaskFactoryImpl.init();
-
-	/**
-	 * Returns a new object of class '<em>Task</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return a new object of class '<em>Task</em>'.
-	 * @generated
-	 */
-	Task createTask();
-
-	/**
-	 * Returns a new object of class '<em>User</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return a new object of class '<em>User</em>'.
-	 * @generated
-	 */
-	User createUser();
-
-	/**
-	 * Returns a new object of class '<em>User Group</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return a new object of class '<em>User Group</em>'.
-	 * @generated
-	 */
-	UserGroup createUserGroup();
-
-	/**
-	 * Returns the package supported by this factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the package supported by this factory.
-	 * @generated
-	 */
-	TaskPackage getTaskPackage();
-
-} // TaskFactory
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/TaskPackage.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/TaskPackage.java
deleted file mode 100644
index 546a59a..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/TaskPackage.java
+++ /dev/null
@@ -1,1017 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.model.task;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EDataType;
-import org.eclipse.emf.ecore.EEnum;
-import org.eclipse.emf.ecore.EOperation;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Package</b> for the model.
- * It contains accessors for the meta objects to represent
- * <ul>
- * <li>each class,</li>
- * <li>each feature of each class,</li>
- * <li>each operation of each class,</li>
- * <li>each enum,</li>
- * <li>and each data type</li>
- * </ul>
- * <!-- end-user-doc -->
- *
- * @see org.eclipse.emf.ecp.makeithappen.model.task.TaskFactory
- * @model kind="package"
- * @generated
- */
-public interface TaskPackage extends EPackage
-{
-	/**
-	 * The package name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	String eNAME = "task"; //$NON-NLS-1$
-
-	/**
-	 * The package namespace URI.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	String eNS_URI = "http://eclipse/org/emf/ecp/makeithappen/model/task"; //$NON-NLS-1$
-
-	/**
-	 * The package namespace name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	String eNS_PREFIX = "org.eclipse.emf.ecp.makeithappen.model.task"; //$NON-NLS-1$
-
-	/**
-	 * The singleton instance of the package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	TaskPackage eINSTANCE = org.eclipse.emf.ecp.makeithappen.model.task.impl.TaskPackageImpl.init();
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.emf.ecp.makeithappen.model.task.impl.TaskImpl <em>Task</em>}'
-	 * class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.impl.TaskImpl
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.impl.TaskPackageImpl#getTask()
-	 * @generated
-	 */
-	int TASK = 0;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 * @ordered
-	 */
-	int TASK__NAME = 0;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 * @ordered
-	 */
-	int TASK__DESCRIPTION = 1;
-
-	/**
-	 * The feature id for the '<em><b>Assignee</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 * @ordered
-	 */
-	int TASK__ASSIGNEE = 2;
-
-	/**
-	 * The feature id for the '<em><b>Due Date</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 * @ordered
-	 */
-	int TASK__DUE_DATE = 3;
-
-	/**
-	 * The feature id for the '<em><b>Sub Tasks</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 * @ordered
-	 */
-	int TASK__SUB_TASKS = 4;
-
-	/**
-	 * The feature id for the '<em><b>Done</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 * @ordered
-	 */
-	int TASK__DONE = 5;
-
-	/**
-	 * The number of structural features of the '<em>Task</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 * @ordered
-	 */
-	int TASK_FEATURE_COUNT = 6;
-
-	/**
-	 * The operation id for the '<em>Has Name</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 * @ordered
-	 */
-	int TASK___HAS_NAME__DIAGNOSTICCHAIN_MAP = 0;
-
-	/**
-	 * The number of operations of the '<em>Task</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 * @ordered
-	 */
-	int TASK_OPERATION_COUNT = 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.emf.ecp.makeithappen.model.task.impl.UserImpl <em>User</em>}'
-	 * class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.impl.UserImpl
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.impl.TaskPackageImpl#getUser()
-	 * @generated
-	 */
-	int USER = 1;
-
-	/**
-	 * The feature id for the '<em><b>First Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 * @ordered
-	 */
-	int USER__FIRST_NAME = 0;
-
-	/**
-	 * The feature id for the '<em><b>Last Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 * @ordered
-	 */
-	int USER__LAST_NAME = 1;
-
-	/**
-	 * The feature id for the '<em><b>Gender</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 * @ordered
-	 */
-	int USER__GENDER = 2;
-
-	/**
-	 * The feature id for the '<em><b>Active</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 * @ordered
-	 */
-	int USER__ACTIVE = 3;
-
-	/**
-	 * The feature id for the '<em><b>Time Of Registration</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 * @ordered
-	 */
-	int USER__TIME_OF_REGISTRATION = 4;
-
-	/**
-	 * The feature id for the '<em><b>Weight</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 * @ordered
-	 */
-	int USER__WEIGHT = 5;
-
-	/**
-	 * The feature id for the '<em><b>Heigth</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 * @ordered
-	 */
-	int USER__HEIGTH = 6;
-
-	/**
-	 * The feature id for the '<em><b>Nationality</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 * @ordered
-	 */
-	int USER__NATIONALITY = 7;
-
-	/**
-	 * The feature id for the '<em><b>Date Of Birth</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 * @ordered
-	 */
-	int USER__DATE_OF_BIRTH = 8;
-
-	/**
-	 * The feature id for the '<em><b>Email</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 * @ordered
-	 */
-	int USER__EMAIL = 9;
-
-	/**
-	 * The feature id for the '<em><b>Tasks</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 * @ordered
-	 */
-	int USER__TASKS = 10;
-
-	/**
-	 * The number of structural features of the '<em>User</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 * @ordered
-	 */
-	int USER_FEATURE_COUNT = 11;
-
-	/**
-	 * The number of operations of the '<em>User</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 * @ordered
-	 */
-	int USER_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.emf.ecp.makeithappen.model.task.impl.UserGroupImpl
-	 * <em>User Group</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.impl.UserGroupImpl
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.impl.TaskPackageImpl#getUserGroup()
-	 * @generated
-	 */
-	int USER_GROUP = 2;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 * @ordered
-	 */
-	int USER_GROUP__NAME = 0;
-
-	/**
-	 * The feature id for the '<em><b>Users</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 * @ordered
-	 */
-	int USER_GROUP__USERS = 1;
-
-	/**
-	 * The number of structural features of the '<em>User Group</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 * @ordered
-	 */
-	int USER_GROUP_FEATURE_COUNT = 2;
-
-	/**
-	 * The number of operations of the '<em>User Group</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 * @ordered
-	 */
-	int USER_GROUP_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.emf.ecp.makeithappen.model.task.Gender <em>Gender</em>}' enum.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.Gender
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.impl.TaskPackageImpl#getGender()
-	 * @generated
-	 */
-	int GENDER = 3;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.emf.ecp.makeithappen.model.task.Nationality <em>Nationality</em>}'
-	 * enum.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.Nationality
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.impl.TaskPackageImpl#getNationality()
-	 * @generated
-	 */
-	int NATIONALITY = 4;
-
-	/**
-	 * The meta object id for the '<em>Date Of Birth</em>' data type.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see javax.xml.datatype.XMLGregorianCalendar
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.impl.TaskPackageImpl#getDateOfBirth()
-	 * @generated
-	 */
-	int DATE_OF_BIRTH = 5;
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.emf.ecp.makeithappen.model.task.Task <em>Task</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the meta object for class '<em>Task</em>'.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.Task
-	 * @generated
-	 */
-	EClass getTask();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.emf.ecp.makeithappen.model.task.Task#getName
-	 * <em>Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.Task#getName()
-	 * @see #getTask()
-	 * @generated
-	 */
-	EAttribute getTask_Name();
-
-	/**
-	 * Returns the meta object for the attribute '
-	 * {@link org.eclipse.emf.ecp.makeithappen.model.task.Task#getDescription <em>Description</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the meta object for the attribute '<em>Description</em>'.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.Task#getDescription()
-	 * @see #getTask()
-	 * @generated
-	 */
-	EAttribute getTask_Description();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.emf.ecp.makeithappen.model.task.Task#getAssignee
-	 * <em>Assignee</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the meta object for the reference '<em>Assignee</em>'.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.Task#getAssignee()
-	 * @see #getTask()
-	 * @generated
-	 */
-	EReference getTask_Assignee();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.emf.ecp.makeithappen.model.task.Task#getDueDate
-	 * <em>Due Date</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the meta object for the attribute '<em>Due Date</em>'.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.Task#getDueDate()
-	 * @see #getTask()
-	 * @generated
-	 */
-	EAttribute getTask_DueDate();
-
-	/**
-	 * Returns the meta object for the containment reference list '
-	 * {@link org.eclipse.emf.ecp.makeithappen.model.task.Task#getSubTasks <em>Sub Tasks</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the meta object for the containment reference list '<em>Sub Tasks</em>'.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.Task#getSubTasks()
-	 * @see #getTask()
-	 * @generated
-	 */
-	EReference getTask_SubTasks();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.emf.ecp.makeithappen.model.task.Task#isDone
-	 * <em>Done</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the meta object for the attribute '<em>Done</em>'.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.Task#isDone()
-	 * @see #getTask()
-	 * @generated
-	 */
-	EAttribute getTask_Done();
-
-	/**
-	 * Returns the meta object for the '
-	 * {@link org.eclipse.emf.ecp.makeithappen.model.task.Task#hasName(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
-	 * <em>Has Name</em>}' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the meta object for the '<em>Has Name</em>' operation.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.Task#hasName(org.eclipse.emf.common.util.DiagnosticChain,
-	 *      java.util.Map)
-	 * @generated
-	 */
-	EOperation getTask__HasName__DiagnosticChain_Map();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.emf.ecp.makeithappen.model.task.User <em>User</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the meta object for class '<em>User</em>'.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.User
-	 * @generated
-	 */
-	EClass getUser();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.emf.ecp.makeithappen.model.task.User#getFirstName
-	 * <em>First Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the meta object for the attribute '<em>First Name</em>'.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.User#getFirstName()
-	 * @see #getUser()
-	 * @generated
-	 */
-	EAttribute getUser_FirstName();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.emf.ecp.makeithappen.model.task.User#getLastName
-	 * <em>Last Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the meta object for the attribute '<em>Last Name</em>'.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.User#getLastName()
-	 * @see #getUser()
-	 * @generated
-	 */
-	EAttribute getUser_LastName();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.emf.ecp.makeithappen.model.task.User#getGender
-	 * <em>Gender</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the meta object for the attribute '<em>Gender</em>'.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.User#getGender()
-	 * @see #getUser()
-	 * @generated
-	 */
-	EAttribute getUser_Gender();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.emf.ecp.makeithappen.model.task.User#isActive
-	 * <em>Active</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the meta object for the attribute '<em>Active</em>'.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.User#isActive()
-	 * @see #getUser()
-	 * @generated
-	 */
-	EAttribute getUser_Active();
-
-	/**
-	 * Returns the meta object for the attribute '
-	 * {@link org.eclipse.emf.ecp.makeithappen.model.task.User#getTimeOfRegistration <em>Time Of Registration</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the meta object for the attribute '<em>Time Of Registration</em>'.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.User#getTimeOfRegistration()
-	 * @see #getUser()
-	 * @generated
-	 */
-	EAttribute getUser_TimeOfRegistration();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.emf.ecp.makeithappen.model.task.User#getWeight
-	 * <em>Weight</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the meta object for the attribute '<em>Weight</em>'.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.User#getWeight()
-	 * @see #getUser()
-	 * @generated
-	 */
-	EAttribute getUser_Weight();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.emf.ecp.makeithappen.model.task.User#getHeigth
-	 * <em>Heigth</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the meta object for the attribute '<em>Heigth</em>'.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.User#getHeigth()
-	 * @see #getUser()
-	 * @generated
-	 */
-	EAttribute getUser_Heigth();
-
-	/**
-	 * Returns the meta object for the attribute '
-	 * {@link org.eclipse.emf.ecp.makeithappen.model.task.User#getNationality <em>Nationality</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the meta object for the attribute '<em>Nationality</em>'.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.User#getNationality()
-	 * @see #getUser()
-	 * @generated
-	 */
-	EAttribute getUser_Nationality();
-
-	/**
-	 * Returns the meta object for the attribute '
-	 * {@link org.eclipse.emf.ecp.makeithappen.model.task.User#getDateOfBirth <em>Date Of Birth</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the meta object for the attribute '<em>Date Of Birth</em>'.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.User#getDateOfBirth()
-	 * @see #getUser()
-	 * @generated
-	 */
-	EAttribute getUser_DateOfBirth();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.emf.ecp.makeithappen.model.task.User#getEmail
-	 * <em>Email</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the meta object for the attribute '<em>Email</em>'.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.User#getEmail()
-	 * @see #getUser()
-	 * @generated
-	 */
-	EAttribute getUser_Email();
-
-	/**
-	 * Returns the meta object for the reference list '{@link org.eclipse.emf.ecp.makeithappen.model.task.User#getTasks
-	 * <em>Tasks</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the meta object for the reference list '<em>Tasks</em>'.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.User#getTasks()
-	 * @see #getUser()
-	 * @generated
-	 */
-	EReference getUser_Tasks();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.emf.ecp.makeithappen.model.task.UserGroup
-	 * <em>User Group</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the meta object for class '<em>User Group</em>'.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.UserGroup
-	 * @generated
-	 */
-	EClass getUserGroup();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.emf.ecp.makeithappen.model.task.UserGroup#getName
-	 * <em>Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.UserGroup#getName()
-	 * @see #getUserGroup()
-	 * @generated
-	 */
-	EAttribute getUserGroup_Name();
-
-	/**
-	 * Returns the meta object for the containment reference list '
-	 * {@link org.eclipse.emf.ecp.makeithappen.model.task.UserGroup#getUsers <em>Users</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the meta object for the containment reference list '<em>Users</em>'.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.UserGroup#getUsers()
-	 * @see #getUserGroup()
-	 * @generated
-	 */
-	EReference getUserGroup_Users();
-
-	/**
-	 * Returns the meta object for enum '{@link org.eclipse.emf.ecp.makeithappen.model.task.Gender <em>Gender</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the meta object for enum '<em>Gender</em>'.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.Gender
-	 * @generated
-	 */
-	EEnum getGender();
-
-	/**
-	 * Returns the meta object for enum '{@link org.eclipse.emf.ecp.makeithappen.model.task.Nationality
-	 * <em>Nationality</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the meta object for enum '<em>Nationality</em>'.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.Nationality
-	 * @generated
-	 */
-	EEnum getNationality();
-
-	/**
-	 * Returns the meta object for data type '{@link javax.xml.datatype.XMLGregorianCalendar <em>Date Of Birth</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the meta object for data type '<em>Date Of Birth</em>'.
-	 * @see javax.xml.datatype.XMLGregorianCalendar
-	 * @model instanceClass="javax.xml.datatype.XMLGregorianCalendar"
-	 *        extendedMetaData="baseType='http://www.eclipse.org/emf/2003/XMLType#date'"
-	 * @generated
-	 */
-	EDataType getDateOfBirth();
-
-	/**
-	 * Returns the factory that creates the instances of the model.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the factory that creates the instances of the model.
-	 * @generated
-	 */
-	TaskFactory getTaskFactory();
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * Defines literals for the meta objects that represent
-	 * <ul>
-	 * <li>each class,</li>
-	 * <li>each feature of each class,</li>
-	 * <li>each operation of each class,</li>
-	 * <li>each enum,</li>
-	 * <li>and each data type</li>
-	 * </ul>
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	interface Literals
-	{
-		/**
-		 * The meta object literal for the '{@link org.eclipse.emf.ecp.makeithappen.model.task.impl.TaskImpl
-		 * <em>Task</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 *
-		 * @see org.eclipse.emf.ecp.makeithappen.model.task.impl.TaskImpl
-		 * @see org.eclipse.emf.ecp.makeithappen.model.task.impl.TaskPackageImpl#getTask()
-		 * @generated
-		 */
-		EClass TASK = eINSTANCE.getTask();
-
-		/**
-		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 *
-		 * @generated
-		 */
-		EAttribute TASK__NAME = eINSTANCE.getTask_Name();
-
-		/**
-		 * The meta object literal for the '<em><b>Description</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 *
-		 * @generated
-		 */
-		EAttribute TASK__DESCRIPTION = eINSTANCE.getTask_Description();
-
-		/**
-		 * The meta object literal for the '<em><b>Assignee</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 *
-		 * @generated
-		 */
-		EReference TASK__ASSIGNEE = eINSTANCE.getTask_Assignee();
-
-		/**
-		 * The meta object literal for the '<em><b>Due Date</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 *
-		 * @generated
-		 */
-		EAttribute TASK__DUE_DATE = eINSTANCE.getTask_DueDate();
-
-		/**
-		 * The meta object literal for the '<em><b>Sub Tasks</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 *
-		 * @generated
-		 */
-		EReference TASK__SUB_TASKS = eINSTANCE.getTask_SubTasks();
-
-		/**
-		 * The meta object literal for the '<em><b>Done</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 *
-		 * @generated
-		 */
-		EAttribute TASK__DONE = eINSTANCE.getTask_Done();
-
-		/**
-		 * The meta object literal for the '<em><b>Has Name</b></em>' operation.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 *
-		 * @generated
-		 */
-		EOperation TASK___HAS_NAME__DIAGNOSTICCHAIN_MAP = eINSTANCE.getTask__HasName__DiagnosticChain_Map();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.emf.ecp.makeithappen.model.task.impl.UserImpl
-		 * <em>User</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 *
-		 * @see org.eclipse.emf.ecp.makeithappen.model.task.impl.UserImpl
-		 * @see org.eclipse.emf.ecp.makeithappen.model.task.impl.TaskPackageImpl#getUser()
-		 * @generated
-		 */
-		EClass USER = eINSTANCE.getUser();
-
-		/**
-		 * The meta object literal for the '<em><b>First Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 *
-		 * @generated
-		 */
-		EAttribute USER__FIRST_NAME = eINSTANCE.getUser_FirstName();
-
-		/**
-		 * The meta object literal for the '<em><b>Last Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 *
-		 * @generated
-		 */
-		EAttribute USER__LAST_NAME = eINSTANCE.getUser_LastName();
-
-		/**
-		 * The meta object literal for the '<em><b>Gender</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 *
-		 * @generated
-		 */
-		EAttribute USER__GENDER = eINSTANCE.getUser_Gender();
-
-		/**
-		 * The meta object literal for the '<em><b>Active</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 *
-		 * @generated
-		 */
-		EAttribute USER__ACTIVE = eINSTANCE.getUser_Active();
-
-		/**
-		 * The meta object literal for the '<em><b>Time Of Registration</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 *
-		 * @generated
-		 */
-		EAttribute USER__TIME_OF_REGISTRATION = eINSTANCE.getUser_TimeOfRegistration();
-
-		/**
-		 * The meta object literal for the '<em><b>Weight</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 *
-		 * @generated
-		 */
-		EAttribute USER__WEIGHT = eINSTANCE.getUser_Weight();
-
-		/**
-		 * The meta object literal for the '<em><b>Heigth</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 *
-		 * @generated
-		 */
-		EAttribute USER__HEIGTH = eINSTANCE.getUser_Heigth();
-
-		/**
-		 * The meta object literal for the '<em><b>Nationality</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 *
-		 * @generated
-		 */
-		EAttribute USER__NATIONALITY = eINSTANCE.getUser_Nationality();
-
-		/**
-		 * The meta object literal for the '<em><b>Date Of Birth</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 *
-		 * @generated
-		 */
-		EAttribute USER__DATE_OF_BIRTH = eINSTANCE.getUser_DateOfBirth();
-
-		/**
-		 * The meta object literal for the '<em><b>Email</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 *
-		 * @generated
-		 */
-		EAttribute USER__EMAIL = eINSTANCE.getUser_Email();
-
-		/**
-		 * The meta object literal for the '<em><b>Tasks</b></em>' reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 *
-		 * @generated
-		 */
-		EReference USER__TASKS = eINSTANCE.getUser_Tasks();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.emf.ecp.makeithappen.model.task.impl.UserGroupImpl
-		 * <em>User Group</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 *
-		 * @see org.eclipse.emf.ecp.makeithappen.model.task.impl.UserGroupImpl
-		 * @see org.eclipse.emf.ecp.makeithappen.model.task.impl.TaskPackageImpl#getUserGroup()
-		 * @generated
-		 */
-		EClass USER_GROUP = eINSTANCE.getUserGroup();
-
-		/**
-		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 *
-		 * @generated
-		 */
-		EAttribute USER_GROUP__NAME = eINSTANCE.getUserGroup_Name();
-
-		/**
-		 * The meta object literal for the '<em><b>Users</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 *
-		 * @generated
-		 */
-		EReference USER_GROUP__USERS = eINSTANCE.getUserGroup_Users();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.emf.ecp.makeithappen.model.task.Gender <em>Gender</em>}'
-		 * enum.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 *
-		 * @see org.eclipse.emf.ecp.makeithappen.model.task.Gender
-		 * @see org.eclipse.emf.ecp.makeithappen.model.task.impl.TaskPackageImpl#getGender()
-		 * @generated
-		 */
-		EEnum GENDER = eINSTANCE.getGender();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.emf.ecp.makeithappen.model.task.Nationality
-		 * <em>Nationality</em>}' enum.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 *
-		 * @see org.eclipse.emf.ecp.makeithappen.model.task.Nationality
-		 * @see org.eclipse.emf.ecp.makeithappen.model.task.impl.TaskPackageImpl#getNationality()
-		 * @generated
-		 */
-		EEnum NATIONALITY = eINSTANCE.getNationality();
-
-		/**
-		 * The meta object literal for the '<em>Date Of Birth</em>' data type.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 *
-		 * @see javax.xml.datatype.XMLGregorianCalendar
-		 * @see org.eclipse.emf.ecp.makeithappen.model.task.impl.TaskPackageImpl#getDateOfBirth()
-		 * @generated
-		 */
-		EDataType DATE_OF_BIRTH = eINSTANCE.getDateOfBirth();
-
-	}
-
-} // TaskPackage
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/User.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/User.java
deleted file mode 100644
index 655d7ab..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/User.java
+++ /dev/null
@@ -1,365 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.model.task;
-
-import java.util.Date;
-
-import javax.xml.datatype.XMLGregorianCalendar;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>User</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.User#getFirstName <em>First Name</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.User#getLastName <em>Last Name</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.User#getGender <em>Gender</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.User#isActive <em>Active</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.User#getTimeOfRegistration <em>Time Of Registration</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.User#getWeight <em>Weight</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.User#getHeigth <em>Heigth</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.User#getNationality <em>Nationality</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.User#getDateOfBirth <em>Date Of Birth</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.User#getEmail <em>Email</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.User#getTasks <em>Tasks</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage#getUser()
- * @model
- * @generated
- */
-public interface User extends EObject
-{
-	/**
-	 * Returns the value of the '<em><b>First Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>First Name</em>' attribute isn't clear, there really should be more of a description
-	 * here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the value of the '<em>First Name</em>' attribute.
-	 * @see #setFirstName(String)
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage#getUser_FirstName()
-	 * @model
-	 * @generated
-	 */
-	String getFirstName();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.emf.ecp.makeithappen.model.task.User#getFirstName <em>First Name</em>}'
-	 * attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @param value the new value of the '<em>First Name</em>' attribute.
-	 * @see #getFirstName()
-	 * @generated
-	 */
-	void setFirstName(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Last Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Last Name</em>' attribute isn't clear, there really should be more of a description
-	 * here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the value of the '<em>Last Name</em>' attribute.
-	 * @see #setLastName(String)
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage#getUser_LastName()
-	 * @model required="true"
-	 * @generated
-	 */
-	String getLastName();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.emf.ecp.makeithappen.model.task.User#getLastName <em>Last Name</em>}'
-	 * attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @param value the new value of the '<em>Last Name</em>' attribute.
-	 * @see #getLastName()
-	 * @generated
-	 */
-	void setLastName(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Gender</b></em>' attribute.
-	 * The literals are from the enumeration {@link org.eclipse.emf.ecp.makeithappen.model.task.Gender}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Gender</em>' attribute isn't clear, there really should be more of a description
-	 * here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the value of the '<em>Gender</em>' attribute.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.Gender
-	 * @see #setGender(Gender)
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage#getUser_Gender()
-	 * @model
-	 * @generated
-	 */
-	Gender getGender();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.emf.ecp.makeithappen.model.task.User#getGender <em>Gender</em>}'
-	 * attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @param value the new value of the '<em>Gender</em>' attribute.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.Gender
-	 * @see #getGender()
-	 * @generated
-	 */
-	void setGender(Gender value);
-
-	/**
-	 * Returns the value of the '<em><b>Active</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Active</em>' attribute isn't clear, there really should be more of a description
-	 * here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the value of the '<em>Active</em>' attribute.
-	 * @see #setActive(boolean)
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage#getUser_Active()
-	 * @model
-	 * @generated
-	 */
-	boolean isActive();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.emf.ecp.makeithappen.model.task.User#isActive <em>Active</em>}'
-	 * attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @param value the new value of the '<em>Active</em>' attribute.
-	 * @see #isActive()
-	 * @generated
-	 */
-	void setActive(boolean value);
-
-	/**
-	 * Returns the value of the '<em><b>Time Of Registration</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Time Of Registration</em>' attribute isn't clear, there really should be more of a
-	 * description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the value of the '<em>Time Of Registration</em>' attribute.
-	 * @see #setTimeOfRegistration(Date)
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage#getUser_TimeOfRegistration()
-	 * @model
-	 * @generated
-	 */
-	Date getTimeOfRegistration();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.emf.ecp.makeithappen.model.task.User#getTimeOfRegistration
-	 * <em>Time Of Registration</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @param value the new value of the '<em>Time Of Registration</em>' attribute.
-	 * @see #getTimeOfRegistration()
-	 * @generated
-	 */
-	void setTimeOfRegistration(Date value);
-
-	/**
-	 * Returns the value of the '<em><b>Weight</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Weight</em>' attribute isn't clear, there really should be more of a description
-	 * here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the value of the '<em>Weight</em>' attribute.
-	 * @see #setWeight(double)
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage#getUser_Weight()
-	 * @model
-	 * @generated
-	 */
-	double getWeight();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.emf.ecp.makeithappen.model.task.User#getWeight <em>Weight</em>}'
-	 * attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @param value the new value of the '<em>Weight</em>' attribute.
-	 * @see #getWeight()
-	 * @generated
-	 */
-	void setWeight(double value);
-
-	/**
-	 * Returns the value of the '<em><b>Heigth</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Heigth</em>' attribute isn't clear, there really should be more of a description
-	 * here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the value of the '<em>Heigth</em>' attribute.
-	 * @see #setHeigth(int)
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage#getUser_Heigth()
-	 * @model
-	 * @generated
-	 */
-	int getHeigth();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.emf.ecp.makeithappen.model.task.User#getHeigth <em>Heigth</em>}'
-	 * attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @param value the new value of the '<em>Heigth</em>' attribute.
-	 * @see #getHeigth()
-	 * @generated
-	 */
-	void setHeigth(int value);
-
-	/**
-	 * Returns the value of the '<em><b>Nationality</b></em>' attribute.
-	 * The literals are from the enumeration {@link org.eclipse.emf.ecp.makeithappen.model.task.Nationality}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Nationality</em>' attribute isn't clear, there really should be more of a description
-	 * here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the value of the '<em>Nationality</em>' attribute.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.Nationality
-	 * @see #setNationality(Nationality)
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage#getUser_Nationality()
-	 * @model
-	 * @generated
-	 */
-	Nationality getNationality();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.emf.ecp.makeithappen.model.task.User#getNationality
-	 * <em>Nationality</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @param value the new value of the '<em>Nationality</em>' attribute.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.Nationality
-	 * @see #getNationality()
-	 * @generated
-	 */
-	void setNationality(Nationality value);
-
-	/**
-	 * Returns the value of the '<em><b>Date Of Birth</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Date Of Birth</em>' attribute isn't clear, there really should be more of a
-	 * description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the value of the '<em>Date Of Birth</em>' attribute.
-	 * @see #setDateOfBirth(XMLGregorianCalendar)
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage#getUser_DateOfBirth()
-	 * @model dataType="org.eclipse.emf.ecp.makeithappen.model.task.DateOfBirth"
-	 * @generated
-	 */
-	XMLGregorianCalendar getDateOfBirth();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.emf.ecp.makeithappen.model.task.User#getDateOfBirth
-	 * <em>Date Of Birth</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @param value the new value of the '<em>Date Of Birth</em>' attribute.
-	 * @see #getDateOfBirth()
-	 * @generated
-	 */
-	void setDateOfBirth(XMLGregorianCalendar value);
-
-	/**
-	 * Returns the value of the '<em><b>Email</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Email</em>' attribute isn't clear, there really should be more of a description
-	 * here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the value of the '<em>Email</em>' attribute.
-	 * @see #setEmail(String)
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage#getUser_Email()
-	 * @model required="true"
-	 * @generated
-	 */
-	String getEmail();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.emf.ecp.makeithappen.model.task.User#getEmail <em>Email</em>}'
-	 * attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @param value the new value of the '<em>Email</em>' attribute.
-	 * @see #getEmail()
-	 * @generated
-	 */
-	void setEmail(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Tasks</b></em>' reference list.
-	 * The list contents are of type {@link org.eclipse.emf.ecp.makeithappen.model.task.Task}.
-	 * It is bidirectional and its opposite is '{@link org.eclipse.emf.ecp.makeithappen.model.task.Task#getAssignee
-	 * <em>Assignee</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Tasks</em>' reference list isn't clear, there really should be more of a description
-	 * here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the value of the '<em>Tasks</em>' reference list.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage#getUser_Tasks()
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.Task#getAssignee
-	 * @model opposite="assignee"
-	 * @generated
-	 */
-	EList<Task> getTasks();
-
-} // User
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/UserGroup.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/UserGroup.java
deleted file mode 100644
index 7182fc4..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/UserGroup.java
+++ /dev/null
@@ -1,81 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.model.task;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>User Group</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.UserGroup#getName <em>Name</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.UserGroup#getUsers <em>Users</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage#getUserGroup()
- * @model
- * @generated
- */
-public interface UserGroup extends EObject
-{
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear, 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.emf.ecp.makeithappen.model.task.TaskPackage#getUserGroup_Name()
-	 * @model
-	 * @generated
-	 */
-	String getName();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.emf.ecp.makeithappen.model.task.UserGroup#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
-	 */
-	void setName(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Users</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.emf.ecp.makeithappen.model.task.User}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Users</em>' containment reference list isn't clear, there really should be more of a
-	 * description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the value of the '<em>Users</em>' containment reference list.
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage#getUserGroup_Users()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<User> getUsers();
-
-} // UserGroup
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/impl/TaskFactoryImpl.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/impl/TaskFactoryImpl.java
deleted file mode 100644
index 8bbe8c5..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/impl/TaskFactoryImpl.java
+++ /dev/null
@@ -1,286 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.model.task.impl;
-
-import javax.xml.datatype.XMLGregorianCalendar;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EDataType;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.impl.EFactoryImpl;
-import org.eclipse.emf.ecore.plugin.EcorePlugin;
-import org.eclipse.emf.ecore.xml.type.XMLTypeFactory;
-import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
-import org.eclipse.emf.ecp.makeithappen.model.task.Gender;
-import org.eclipse.emf.ecp.makeithappen.model.task.Nationality;
-import org.eclipse.emf.ecp.makeithappen.model.task.Task;
-import org.eclipse.emf.ecp.makeithappen.model.task.TaskFactory;
-import org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage;
-import org.eclipse.emf.ecp.makeithappen.model.task.User;
-import org.eclipse.emf.ecp.makeithappen.model.task.UserGroup;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Factory</b>.
- * <!-- end-user-doc -->
- *
- * @generated
- */
-public class TaskFactoryImpl extends EFactoryImpl implements TaskFactory
-{
-	/**
-	 * Creates the default factory implementation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public static TaskFactory init()
-	{
-		try
-		{
-			final TaskFactory theTaskFactory = (TaskFactory) EPackage.Registry.INSTANCE
-				.getEFactory(TaskPackage.eNS_URI);
-			if (theTaskFactory != null)
-			{
-				return theTaskFactory;
-			}
-		} catch (final Exception exception)
-		{
-			EcorePlugin.INSTANCE.log(exception);
-		}
-		return new TaskFactoryImpl();
-	}
-
-	/**
-	 * Creates an instance of the factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public TaskFactoryImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public EObject create(EClass eClass)
-	{
-		switch (eClass.getClassifierID())
-		{
-		case TaskPackage.TASK:
-			return createTask();
-		case TaskPackage.USER:
-			return createUser();
-		case TaskPackage.USER_GROUP:
-			return createUserGroup();
-		default:
-			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
-	public Object createFromString(EDataType eDataType, String initialValue)
-	{
-		switch (eDataType.getClassifierID())
-		{
-		case TaskPackage.GENDER:
-			return createGenderFromString(eDataType, initialValue);
-		case TaskPackage.NATIONALITY:
-			return createNationalityFromString(eDataType, initialValue);
-		case TaskPackage.DATE_OF_BIRTH:
-			return createDateOfBirthFromString(eDataType, initialValue);
-		default:
-			throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public String convertToString(EDataType eDataType, Object instanceValue)
-	{
-		switch (eDataType.getClassifierID())
-		{
-		case TaskPackage.GENDER:
-			return convertGenderToString(eDataType, instanceValue);
-		case TaskPackage.NATIONALITY:
-			return convertNationalityToString(eDataType, instanceValue);
-		case TaskPackage.DATE_OF_BIRTH:
-			return convertDateOfBirthToString(eDataType, instanceValue);
-		default:
-			throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public Task createTask()
-	{
-		final TaskImpl task = new TaskImpl();
-		return task;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public User createUser()
-	{
-		final UserImpl user = new UserImpl();
-		return user;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public UserGroup createUserGroup()
-	{
-		final UserGroupImpl userGroup = new UserGroupImpl();
-		return userGroup;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public Gender createGenderFromString(EDataType eDataType, String initialValue)
-	{
-		final Gender result = Gender.get(initialValue);
-		if (result == null)
-		{
-			throw new IllegalArgumentException(
-				"The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-		return result;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public String convertGenderToString(EDataType eDataType, Object instanceValue)
-	{
-		return instanceValue == null ? null : instanceValue.toString();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public Nationality createNationalityFromString(EDataType eDataType, String initialValue)
-	{
-		final Nationality result = Nationality.get(initialValue);
-		if (result == null)
-		{
-			throw new IllegalArgumentException(
-				"The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-		return result;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public String convertNationalityToString(EDataType eDataType, Object instanceValue)
-	{
-		return instanceValue == null ? null : instanceValue.toString();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public XMLGregorianCalendar createDateOfBirthFromString(EDataType eDataType, String initialValue)
-	{
-		return (XMLGregorianCalendar) XMLTypeFactory.eINSTANCE.createFromString(XMLTypePackage.Literals.DATE,
-			initialValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public String convertDateOfBirthToString(EDataType eDataType, Object instanceValue)
-	{
-		return XMLTypeFactory.eINSTANCE.convertToString(XMLTypePackage.Literals.DATE, instanceValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public TaskPackage getTaskPackage()
-	{
-		return (TaskPackage) getEPackage();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @deprecated
-	 * @generated
-	 */
-	@Deprecated
-	public static TaskPackage getPackage()
-	{
-		return TaskPackage.eINSTANCE;
-	}
-
-} // TaskFactoryImpl
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/impl/TaskImpl.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/impl/TaskImpl.java
deleted file mode 100644
index 02dec85..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/impl/TaskImpl.java
+++ /dev/null
@@ -1,613 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.model.task.impl;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.Collection;
-import java.util.Date;
-import java.util.Map;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.BasicDiagnostic;
-import org.eclipse.emf.common.util.Diagnostic;
-import org.eclipse.emf.common.util.DiagnosticChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.emf.ecp.makeithappen.model.task.Task;
-import org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage;
-import org.eclipse.emf.ecp.makeithappen.model.task.User;
-import org.eclipse.emf.ecp.makeithappen.model.task.util.TaskValidator;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Task</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.impl.TaskImpl#getName <em>Name</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.impl.TaskImpl#getDescription <em>Description</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.impl.TaskImpl#getAssignee <em>Assignee</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.impl.TaskImpl#getDueDate <em>Due Date</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.impl.TaskImpl#getSubTasks <em>Sub Tasks</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.impl.TaskImpl#isDone <em>Done</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class TaskImpl extends MinimalEObjectImpl.Container implements Task {
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #getDescription()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String DESCRIPTION_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #getDescription()
-	 * @generated
-	 * @ordered
-	 */
-	protected String description = DESCRIPTION_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getAssignee() <em>Assignee</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #getAssignee()
-	 * @generated
-	 * @ordered
-	 */
-	protected User assignee;
-
-	/**
-	 * The default value of the '{@link #getDueDate() <em>Due Date</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #getDueDate()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final Date DUE_DATE_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getDueDate() <em>Due Date</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #getDueDate()
-	 * @generated
-	 * @ordered
-	 */
-	protected Date dueDate = DUE_DATE_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getSubTasks() <em>Sub Tasks</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #getSubTasks()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<Task> subTasks;
-
-	/**
-	 * The default value of the '{@link #isDone() <em>Done</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #isDone()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final boolean DONE_EDEFAULT = false;
-
-	/**
-	 * The cached value of the '{@link #isDone() <em>Done</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #isDone()
-	 * @generated
-	 * @ordered
-	 */
-	protected boolean done = DONE_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected TaskImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return TaskPackage.Literals.TASK;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public void setName(String newName) {
-		final String oldName = name;
-		name = newName;
-		if (eNotificationRequired()) {
-			eNotify(new ENotificationImpl(this, Notification.SET, TaskPackage.TASK__NAME, oldName, name));
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public User getAssignee() {
-		if (assignee != null && assignee.eIsProxy())
-		{
-			final InternalEObject oldAssignee = (InternalEObject) assignee;
-			assignee = (User) eResolveProxy(oldAssignee);
-			if (assignee != oldAssignee)
-			{
-				if (eNotificationRequired()) {
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, TaskPackage.TASK__ASSIGNEE, oldAssignee,
-						assignee));
-				}
-			}
-		}
-		return assignee;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public User basicGetAssignee() {
-		return assignee;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public NotificationChain basicSetAssignee(User newAssignee, NotificationChain msgs) {
-		final User oldAssignee = assignee;
-		assignee = newAssignee;
-		if (eNotificationRequired())
-		{
-			final ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
-				TaskPackage.TASK__ASSIGNEE,
-				oldAssignee, newAssignee);
-			if (msgs == null) {
-				msgs = notification;
-			} else {
-				msgs.add(notification);
-			}
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public void setAssignee(User newAssignee) {
-		if (newAssignee != assignee)
-		{
-			NotificationChain msgs = null;
-			if (assignee != null) {
-				msgs = ((InternalEObject) assignee).eInverseRemove(this, TaskPackage.USER__TASKS, User.class, msgs);
-			}
-			if (newAssignee != null) {
-				msgs = ((InternalEObject) newAssignee).eInverseAdd(this, TaskPackage.USER__TASKS, User.class, msgs);
-			}
-			msgs = basicSetAssignee(newAssignee, msgs);
-			if (msgs != null) {
-				msgs.dispatch();
-			}
-		}
-		else if (eNotificationRequired()) {
-			eNotify(new ENotificationImpl(this, Notification.SET, TaskPackage.TASK__ASSIGNEE, newAssignee, newAssignee));
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public EList<Task> getSubTasks() {
-		if (subTasks == null)
-		{
-			subTasks = new EObjectContainmentEList<Task>(Task.class, this, TaskPackage.TASK__SUB_TASKS);
-		}
-		return subTasks;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public boolean isDone() {
-		return done;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public void setDone(boolean newDone) {
-		final boolean oldDone = done;
-		done = newDone;
-		if (eNotificationRequired()) {
-			eNotify(new ENotificationImpl(this, Notification.SET, TaskPackage.TASK__DONE, oldDone, done));
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @param chain the diagnostic chain.
-	 * @param context the context.
-	 * @return whether the task has a name.
-	 * @generated NOT
-	 */
-	@Override
-	public boolean hasName(DiagnosticChain chain, Map<?, ?> context) {
-		if (getName() == null || getName().equals("")) { //$NON-NLS-1$
-			if (chain != null) {
-				chain.add
-					(new BasicDiagnostic
-					(Diagnostic.ERROR,
-						TaskValidator.DIAGNOSTIC_SOURCE,
-						TaskValidator.TASK__HAS_NAME, "Task needs to have a name", //$NON-NLS-1$
-						new Object[] { this, TaskPackage.eINSTANCE.getTask_Name() }));
-			}
-			return false;
-		}
-		return true;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->.
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID)
-		{
-		case TaskPackage.TASK__ASSIGNEE:
-			if (assignee != null) {
-				msgs = ((InternalEObject) assignee).eInverseRemove(this, TaskPackage.USER__TASKS, User.class, msgs);
-			}
-			return basicSetAssignee((User) otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public Date getDueDate() {
-		return dueDate;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public void setDueDate(Date newDueDate) {
-		final Date oldDueDate = dueDate;
-		dueDate = newDueDate;
-		if (eNotificationRequired()) {
-			eNotify(new ENotificationImpl(this, Notification.SET, TaskPackage.TASK__DUE_DATE, oldDueDate, dueDate));
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public String getDescription() {
-		return description;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public void setDescription(String newDescription) {
-		final String oldDescription = description;
-		description = newDescription;
-		if (eNotificationRequired()) {
-			eNotify(new ENotificationImpl(this, Notification.SET, TaskPackage.TASK__DESCRIPTION, oldDescription,
-				description));
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID)
-		{
-		case TaskPackage.TASK__ASSIGNEE:
-			return basicSetAssignee(null, msgs);
-		case TaskPackage.TASK__SUB_TASKS:
-			return ((InternalEList<?>) getSubTasks()).basicRemove(otherEnd, 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 TaskPackage.TASK__NAME:
-			return getName();
-		case TaskPackage.TASK__DESCRIPTION:
-			return getDescription();
-		case TaskPackage.TASK__ASSIGNEE:
-			if (resolve) {
-				return getAssignee();
-			}
-			return basicGetAssignee();
-		case TaskPackage.TASK__DUE_DATE:
-			return getDueDate();
-		case TaskPackage.TASK__SUB_TASKS:
-			return getSubTasks();
-		case TaskPackage.TASK__DONE:
-			return isDone();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID)
-		{
-		case TaskPackage.TASK__NAME:
-			setName((String) newValue);
-			return;
-		case TaskPackage.TASK__DESCRIPTION:
-			setDescription((String) newValue);
-			return;
-		case TaskPackage.TASK__ASSIGNEE:
-			setAssignee((User) newValue);
-			return;
-		case TaskPackage.TASK__DUE_DATE:
-			setDueDate((Date) newValue);
-			return;
-		case TaskPackage.TASK__SUB_TASKS:
-			getSubTasks().clear();
-			getSubTasks().addAll((Collection<? extends Task>) newValue);
-			return;
-		case TaskPackage.TASK__DONE:
-			setDone((Boolean) newValue);
-			return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID)
-		{
-		case TaskPackage.TASK__NAME:
-			setName(NAME_EDEFAULT);
-			return;
-		case TaskPackage.TASK__DESCRIPTION:
-			setDescription(DESCRIPTION_EDEFAULT);
-			return;
-		case TaskPackage.TASK__ASSIGNEE:
-			setAssignee((User) null);
-			return;
-		case TaskPackage.TASK__DUE_DATE:
-			setDueDate(DUE_DATE_EDEFAULT);
-			return;
-		case TaskPackage.TASK__SUB_TASKS:
-			getSubTasks().clear();
-			return;
-		case TaskPackage.TASK__DONE:
-			setDone(DONE_EDEFAULT);
-			return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID)
-		{
-		case TaskPackage.TASK__NAME:
-			return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-		case TaskPackage.TASK__DESCRIPTION:
-			return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
-		case TaskPackage.TASK__ASSIGNEE:
-			return assignee != null;
-		case TaskPackage.TASK__DUE_DATE:
-			return DUE_DATE_EDEFAULT == null ? dueDate != null : !DUE_DATE_EDEFAULT.equals(dueDate);
-		case TaskPackage.TASK__SUB_TASKS:
-			return subTasks != null && !subTasks.isEmpty();
-		case TaskPackage.TASK__DONE:
-			return done != DONE_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
-		switch (operationID)
-		{
-		case TaskPackage.TASK___HAS_NAME__DIAGNOSTICCHAIN_MAP:
-			return hasName((DiagnosticChain) arguments.get(0), (Map<?, ?>) arguments.get(1));
-		}
-		return super.eInvoke(operationID, arguments);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) {
-			return super.toString();
-		}
-
-		final StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: "); //$NON-NLS-1$
-		result.append(name);
-		result.append(", description: "); //$NON-NLS-1$
-		result.append(description);
-		result.append(", dueDate: "); //$NON-NLS-1$
-		result.append(dueDate);
-		result.append(", done: "); //$NON-NLS-1$
-		result.append(done);
-		result.append(')');
-		return result.toString();
-	}
-
-} // TaskImpl
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/impl/TaskPackageImpl.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/impl/TaskPackageImpl.java
deleted file mode 100644
index 07c3149..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/impl/TaskPackageImpl.java
+++ /dev/null
@@ -1,728 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.model.task.impl;
-
-import javax.xml.datatype.XMLGregorianCalendar;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EDataType;
-import org.eclipse.emf.ecore.EEnum;
-import org.eclipse.emf.ecore.EGenericType;
-import org.eclipse.emf.ecore.EOperation;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.EValidator;
-import org.eclipse.emf.ecore.impl.EPackageImpl;
-import org.eclipse.emf.ecp.makeithappen.model.task.Gender;
-import org.eclipse.emf.ecp.makeithappen.model.task.Nationality;
-import org.eclipse.emf.ecp.makeithappen.model.task.Task;
-import org.eclipse.emf.ecp.makeithappen.model.task.TaskFactory;
-import org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage;
-import org.eclipse.emf.ecp.makeithappen.model.task.User;
-import org.eclipse.emf.ecp.makeithappen.model.task.UserGroup;
-import org.eclipse.emf.ecp.makeithappen.model.task.util.TaskValidator;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Package</b>.
- * <!-- end-user-doc -->
- *
- * @generated
- */
-public class TaskPackageImpl extends EPackageImpl implements TaskPackage
-{
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	private EClass taskEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	private EClass userEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	private EClass userGroupEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	private EEnum genderEEnum = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	private EEnum nationalityEEnum = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	private EDataType dateOfBirthEDataType = null;
-
-	/**
-	 * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
-	 * EPackage.Registry} by the package
-	 * package URI value.
-	 * <p>
-	 * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
-	 * performs initialization of the package, or returns the registered package, if one already exists. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
-	 *
-	 * @see org.eclipse.emf.ecore.EPackage.Registry
-	 * @see org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage#eNS_URI
-	 * @see #init()
-	 * @generated
-	 */
-	private TaskPackageImpl()
-	{
-		super(eNS_URI, TaskFactory.eINSTANCE);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	private static boolean isInited = false;
-
-	/**
-	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
-	 *
-	 * <p>
-	 * This method is used to initialize {@link TaskPackage#eINSTANCE} when that field is accessed. 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()
-	 * @generated
-	 */
-	public static TaskPackage init()
-	{
-		if (isInited) {
-			return (TaskPackage) EPackage.Registry.INSTANCE.getEPackage(TaskPackage.eNS_URI);
-		}
-
-		// Obtain or create and register package
-		final TaskPackageImpl theTaskPackage = (TaskPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof TaskPackageImpl ? EPackage.Registry.INSTANCE
-			.get(eNS_URI)
-			: new TaskPackageImpl());
-
-		isInited = true;
-
-		// Create package meta-data objects
-		theTaskPackage.createPackageContents();
-
-		// Initialize created meta-data
-		theTaskPackage.initializePackageContents();
-
-		// Register package validator
-		EValidator.Registry.INSTANCE.put
-			(theTaskPackage,
-				new EValidator.Descriptor()
-				{
-					@Override
-					public EValidator getEValidator()
-					{
-						return TaskValidator.INSTANCE;
-					}
-				});
-
-		// Mark meta-data to indicate it can't be changed
-		theTaskPackage.freeze();
-
-		// Update the registry and return the package
-		EPackage.Registry.INSTANCE.put(TaskPackage.eNS_URI, theTaskPackage);
-		return theTaskPackage;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public EClass getTask()
-	{
-		return taskEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public EAttribute getTask_Name()
-	{
-		return (EAttribute) taskEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public EAttribute getTask_Description()
-	{
-		return (EAttribute) taskEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public EReference getTask_Assignee()
-	{
-		return (EReference) taskEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public EAttribute getTask_DueDate()
-	{
-		return (EAttribute) taskEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public EReference getTask_SubTasks()
-	{
-		return (EReference) taskEClass.getEStructuralFeatures().get(4);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public EAttribute getTask_Done()
-	{
-		return (EAttribute) taskEClass.getEStructuralFeatures().get(5);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public EOperation getTask__HasName__DiagnosticChain_Map()
-	{
-		return taskEClass.getEOperations().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public EClass getUser()
-	{
-		return userEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public EAttribute getUser_FirstName()
-	{
-		return (EAttribute) userEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public EAttribute getUser_LastName()
-	{
-		return (EAttribute) userEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public EAttribute getUser_Gender()
-	{
-		return (EAttribute) userEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public EAttribute getUser_Active()
-	{
-		return (EAttribute) userEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public EAttribute getUser_TimeOfRegistration()
-	{
-		return (EAttribute) userEClass.getEStructuralFeatures().get(4);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public EAttribute getUser_Weight()
-	{
-		return (EAttribute) userEClass.getEStructuralFeatures().get(5);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public EAttribute getUser_Heigth()
-	{
-		return (EAttribute) userEClass.getEStructuralFeatures().get(6);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public EAttribute getUser_Nationality()
-	{
-		return (EAttribute) userEClass.getEStructuralFeatures().get(7);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public EAttribute getUser_DateOfBirth()
-	{
-		return (EAttribute) userEClass.getEStructuralFeatures().get(8);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public EAttribute getUser_Email()
-	{
-		return (EAttribute) userEClass.getEStructuralFeatures().get(9);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public EReference getUser_Tasks()
-	{
-		return (EReference) userEClass.getEStructuralFeatures().get(10);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public EClass getUserGroup()
-	{
-		return userGroupEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public EAttribute getUserGroup_Name()
-	{
-		return (EAttribute) userGroupEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public EReference getUserGroup_Users()
-	{
-		return (EReference) userGroupEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public EEnum getGender()
-	{
-		return genderEEnum;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public EEnum getNationality()
-	{
-		return nationalityEEnum;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public EDataType getDateOfBirth()
-	{
-		return dateOfBirthEDataType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public TaskFactory getTaskFactory()
-	{
-		return (TaskFactory) getEFactoryInstance();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	private boolean isCreated = false;
-
-	/**
-	 * Creates the meta-model objects for the package. This method is
-	 * guarded to have no affect on any invocation but its first.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public void createPackageContents()
-	{
-		if (isCreated) {
-			return;
-		}
-		isCreated = true;
-
-		// Create classes and their features
-		taskEClass = createEClass(TASK);
-		createEAttribute(taskEClass, TASK__NAME);
-		createEAttribute(taskEClass, TASK__DESCRIPTION);
-		createEReference(taskEClass, TASK__ASSIGNEE);
-		createEAttribute(taskEClass, TASK__DUE_DATE);
-		createEReference(taskEClass, TASK__SUB_TASKS);
-		createEAttribute(taskEClass, TASK__DONE);
-		createEOperation(taskEClass, TASK___HAS_NAME__DIAGNOSTICCHAIN_MAP);
-
-		userEClass = createEClass(USER);
-		createEAttribute(userEClass, USER__FIRST_NAME);
-		createEAttribute(userEClass, USER__LAST_NAME);
-		createEAttribute(userEClass, USER__GENDER);
-		createEAttribute(userEClass, USER__ACTIVE);
-		createEAttribute(userEClass, USER__TIME_OF_REGISTRATION);
-		createEAttribute(userEClass, USER__WEIGHT);
-		createEAttribute(userEClass, USER__HEIGTH);
-		createEAttribute(userEClass, USER__NATIONALITY);
-		createEAttribute(userEClass, USER__DATE_OF_BIRTH);
-		createEAttribute(userEClass, USER__EMAIL);
-		createEReference(userEClass, USER__TASKS);
-
-		userGroupEClass = createEClass(USER_GROUP);
-		createEAttribute(userGroupEClass, USER_GROUP__NAME);
-		createEReference(userGroupEClass, USER_GROUP__USERS);
-
-		// Create enums
-		genderEEnum = createEEnum(GENDER);
-		nationalityEEnum = createEEnum(NATIONALITY);
-
-		// Create data types
-		dateOfBirthEDataType = createEDataType(DATE_OF_BIRTH);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	private boolean isInitialized = false;
-
-	/**
-	 * Complete the initialization of the package and its meta-model. This
-	 * method is guarded to have no affect on any invocation but its first.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public void initializePackageContents()
-	{
-		if (isInitialized) {
-			return;
-		}
-		isInitialized = true;
-
-		// Initialize package
-		setName(eNAME);
-		setNsPrefix(eNS_PREFIX);
-		setNsURI(eNS_URI);
-
-		// Create type parameters
-
-		// Set bounds for type parameters
-
-		// Add supertypes to classes
-
-		// Initialize classes, features, and operations; add parameters
-		initEClass(taskEClass, Task.class, "Task", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEAttribute(
-			getTask_Name(),
-			ecorePackage.getEString(),
-			"name", null, 0, 1, Task.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(
-			getTask_Description(),
-			ecorePackage.getEString(),
-			"description", null, 0, 1, Task.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEReference(
-			getTask_Assignee(),
-			getUser(),
-			getUser_Tasks(),
-			"assignee", null, 0, 1, Task.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(
-			getTask_DueDate(),
-			ecorePackage.getEDate(),
-			"dueDate", null, 0, 1, Task.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEReference(
-			getTask_SubTasks(),
-			getTask(),
-			null,
-			"subTasks", null, 0, -1, Task.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(
-			getTask_Done(),
-			ecorePackage.getEBoolean(),
-			"done", null, 0, 1, Task.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-
-		final EOperation op = initEOperation(getTask__HasName__DiagnosticChain_Map(), ecorePackage.getEBoolean(),
-			"hasName", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
-		addEParameter(op, ecorePackage.getEDiagnosticChain(), "chain", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
-		final EGenericType g1 = createEGenericType(ecorePackage.getEMap());
-		EGenericType g2 = createEGenericType();
-		g1.getETypeArguments().add(g2);
-		g2 = createEGenericType();
-		g1.getETypeArguments().add(g2);
-		addEParameter(op, g1, "context", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
-
-		initEClass(userEClass, User.class, "User", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEAttribute(
-			getUser_FirstName(),
-			ecorePackage.getEString(),
-			"firstName", null, 0, 1, User.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(
-			getUser_LastName(),
-			ecorePackage.getEString(),
-			"lastName", null, 1, 1, User.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(
-			getUser_Gender(),
-			getGender(),
-			"gender", null, 0, 1, User.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(
-			getUser_Active(),
-			ecorePackage.getEBoolean(),
-			"active", null, 0, 1, User.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(
-			getUser_TimeOfRegistration(),
-			ecorePackage.getEDate(),
-			"timeOfRegistration", null, 0, 1, User.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(
-			getUser_Weight(),
-			ecorePackage.getEDouble(),
-			"weight", null, 0, 1, User.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(
-			getUser_Heigth(),
-			ecorePackage.getEInt(),
-			"heigth", null, 0, 1, User.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(
-			getUser_Nationality(),
-			getNationality(),
-			"nationality", null, 0, 1, User.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(
-			getUser_DateOfBirth(),
-			getDateOfBirth(),
-			"dateOfBirth", null, 0, 1, User.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(
-			getUser_Email(),
-			ecorePackage.getEString(),
-			"email", null, 1, 1, User.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEReference(
-			getUser_Tasks(),
-			getTask(),
-			getTask_Assignee(),
-			"tasks", null, 0, -1, User.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-
-		initEClass(userGroupEClass, UserGroup.class,
-			"UserGroup", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEAttribute(
-			getUserGroup_Name(),
-			ecorePackage.getEString(),
-			"name", null, 0, 1, UserGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEReference(
-			getUserGroup_Users(),
-			getUser(),
-			null,
-			"users", null, 0, -1, UserGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-
-		// Initialize enums and add enum literals
-		initEEnum(genderEEnum, Gender.class, "Gender"); //$NON-NLS-1$
-		addEEnumLiteral(genderEEnum, Gender.MALE);
-		addEEnumLiteral(genderEEnum, Gender.FEMALE);
-
-		initEEnum(nationalityEEnum, Nationality.class, "Nationality"); //$NON-NLS-1$
-		addEEnumLiteral(nationalityEEnum, Nationality.GERMAN);
-		addEEnumLiteral(nationalityEEnum, Nationality.FRENCH);
-		addEEnumLiteral(nationalityEEnum, Nationality.UK);
-		addEEnumLiteral(nationalityEEnum, Nationality.US);
-		addEEnumLiteral(nationalityEEnum, Nationality.SPANISH);
-		addEEnumLiteral(nationalityEEnum, Nationality.ITALIAN);
-		addEEnumLiteral(nationalityEEnum, Nationality.RUSSIAN);
-
-		// Initialize data types
-		initEDataType(dateOfBirthEDataType, XMLGregorianCalendar.class,
-			"DateOfBirth", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-
-		// Create resource
-		createResource(eNS_URI);
-
-		// Create annotations
-		// http:///org/eclipse/emf/ecore/util/ExtendedMetaData
-		createExtendedMetaDataAnnotations();
-	}
-
-	/**
-	 * Initializes the annotations for <b>http:///org/eclipse/emf/ecore/util/ExtendedMetaData</b>.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected void createExtendedMetaDataAnnotations()
-	{
-		final String source = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData"; //$NON-NLS-1$
-		addAnnotation(dateOfBirthEDataType,
-			source,
-			new String[]
-			{ "baseType", "http://www.eclipse.org/emf/2003/XMLType#date" //$NON-NLS-1$ //$NON-NLS-2$
-			});
-	}
-
-} // TaskPackageImpl
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/impl/UserGroupImpl.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/impl/UserGroupImpl.java
deleted file mode 100644
index 226d54b..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/impl/UserGroupImpl.java
+++ /dev/null
@@ -1,264 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.model.task.impl;
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage;
-import org.eclipse.emf.ecp.makeithappen.model.task.User;
-import org.eclipse.emf.ecp.makeithappen.model.task.UserGroup;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>User Group</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.impl.UserGroupImpl#getName <em>Name</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.impl.UserGroupImpl#getUsers <em>Users</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class UserGroupImpl extends MinimalEObjectImpl.Container implements UserGroup
-{
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getUsers() <em>Users</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #getUsers()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<User> users;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected UserGroupImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return TaskPackage.Literals.USER_GROUP;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public String getName()
-	{
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public void setName(String newName)
-	{
-		final String oldName = name;
-		name = newName;
-		if (eNotificationRequired()) {
-			eNotify(new ENotificationImpl(this, Notification.SET, TaskPackage.USER_GROUP__NAME, oldName, name));
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public EList<User> getUsers()
-	{
-		if (users == null)
-		{
-			users = new EObjectContainmentEList<User>(User.class, this, TaskPackage.USER_GROUP__USERS);
-		}
-		return users;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-	{
-		switch (featureID)
-		{
-		case TaskPackage.USER_GROUP__USERS:
-			return ((InternalEList<?>) getUsers()).basicRemove(otherEnd, 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 TaskPackage.USER_GROUP__NAME:
-			return getName();
-		case TaskPackage.USER_GROUP__USERS:
-			return getUsers();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-		case TaskPackage.USER_GROUP__NAME:
-			setName((String) newValue);
-			return;
-		case TaskPackage.USER_GROUP__USERS:
-			getUsers().clear();
-			getUsers().addAll((Collection<? extends User>) newValue);
-			return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-		case TaskPackage.USER_GROUP__NAME:
-			setName(NAME_EDEFAULT);
-			return;
-		case TaskPackage.USER_GROUP__USERS:
-			getUsers().clear();
-			return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-		case TaskPackage.USER_GROUP__NAME:
-			return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-		case TaskPackage.USER_GROUP__USERS:
-			return users != null && !users.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) {
-			return super.toString();
-		}
-
-		final StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: "); //$NON-NLS-1$
-		result.append(name);
-		result.append(')');
-		return result.toString();
-	}
-
-} // UserGroupImpl
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/impl/UserImpl.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/impl/UserImpl.java
deleted file mode 100644
index 9fa4edf..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/impl/UserImpl.java
+++ /dev/null
@@ -1,860 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.model.task.impl;
-
-import java.util.Collection;
-import java.util.Date;
-
-import javax.xml.datatype.XMLGregorianCalendar;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.emf.ecp.makeithappen.model.task.Gender;
-import org.eclipse.emf.ecp.makeithappen.model.task.Nationality;
-import org.eclipse.emf.ecp.makeithappen.model.task.Task;
-import org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage;
-import org.eclipse.emf.ecp.makeithappen.model.task.User;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>User</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.impl.UserImpl#getFirstName <em>First Name</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.impl.UserImpl#getLastName <em>Last Name</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.impl.UserImpl#getGender <em>Gender</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.impl.UserImpl#isActive <em>Active</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.impl.UserImpl#getTimeOfRegistration <em>Time Of Registration
- * </em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.impl.UserImpl#getWeight <em>Weight</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.impl.UserImpl#getHeigth <em>Heigth</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.impl.UserImpl#getNationality <em>Nationality</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.impl.UserImpl#getDateOfBirth <em>Date Of Birth</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.impl.UserImpl#getEmail <em>Email</em>}</li>
- * <li>{@link org.eclipse.emf.ecp.makeithappen.model.task.impl.UserImpl#getTasks <em>Tasks</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class UserImpl extends MinimalEObjectImpl.Container implements User
-{
-	/**
-	 * The default value of the '{@link #getFirstName() <em>First Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #getFirstName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String FIRST_NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getFirstName() <em>First Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #getFirstName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String firstName = FIRST_NAME_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getLastName() <em>Last Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #getLastName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String LAST_NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getLastName() <em>Last Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #getLastName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String lastName = LAST_NAME_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getGender() <em>Gender</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #getGender()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final Gender GENDER_EDEFAULT = Gender.MALE;
-
-	/**
-	 * The cached value of the '{@link #getGender() <em>Gender</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #getGender()
-	 * @generated
-	 * @ordered
-	 */
-	protected Gender gender = GENDER_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #isActive() <em>Active</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #isActive()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final boolean ACTIVE_EDEFAULT = false;
-
-	/**
-	 * The cached value of the '{@link #isActive() <em>Active</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #isActive()
-	 * @generated
-	 * @ordered
-	 */
-	protected boolean active = ACTIVE_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getTimeOfRegistration() <em>Time Of Registration</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #getTimeOfRegistration()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final Date TIME_OF_REGISTRATION_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getTimeOfRegistration() <em>Time Of Registration</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #getTimeOfRegistration()
-	 * @generated
-	 * @ordered
-	 */
-	protected Date timeOfRegistration = TIME_OF_REGISTRATION_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getWeight() <em>Weight</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #getWeight()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final double WEIGHT_EDEFAULT = 0.0;
-
-	/**
-	 * The cached value of the '{@link #getWeight() <em>Weight</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #getWeight()
-	 * @generated
-	 * @ordered
-	 */
-	protected double weight = WEIGHT_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getHeigth() <em>Heigth</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #getHeigth()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int HEIGTH_EDEFAULT = 0;
-
-	/**
-	 * The cached value of the '{@link #getHeigth() <em>Heigth</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #getHeigth()
-	 * @generated
-	 * @ordered
-	 */
-	protected int heigth = HEIGTH_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getNationality() <em>Nationality</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #getNationality()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final Nationality NATIONALITY_EDEFAULT = Nationality.GERMAN;
-
-	/**
-	 * The cached value of the '{@link #getNationality() <em>Nationality</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #getNationality()
-	 * @generated
-	 * @ordered
-	 */
-	protected Nationality nationality = NATIONALITY_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getDateOfBirth() <em>Date Of Birth</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #getDateOfBirth()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final XMLGregorianCalendar DATE_OF_BIRTH_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getDateOfBirth() <em>Date Of Birth</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #getDateOfBirth()
-	 * @generated
-	 * @ordered
-	 */
-	protected XMLGregorianCalendar dateOfBirth = DATE_OF_BIRTH_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getEmail() <em>Email</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #getEmail()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String EMAIL_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getEmail() <em>Email</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #getEmail()
-	 * @generated
-	 * @ordered
-	 */
-	protected String email = EMAIL_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getTasks() <em>Tasks</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see #getTasks()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<Task> tasks;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected UserImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return TaskPackage.Literals.USER;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public String getFirstName()
-	{
-		return firstName;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public void setFirstName(String newFirstName)
-	{
-		final String oldFirstName = firstName;
-		firstName = newFirstName;
-		if (eNotificationRequired()) {
-			eNotify(new ENotificationImpl(this, Notification.SET, TaskPackage.USER__FIRST_NAME, oldFirstName, firstName));
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public String getLastName()
-	{
-		return lastName;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public void setLastName(String newLastName)
-	{
-		final String oldLastName = lastName;
-		lastName = newLastName;
-		if (eNotificationRequired()) {
-			eNotify(new ENotificationImpl(this, Notification.SET, TaskPackage.USER__LAST_NAME, oldLastName, lastName));
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public Gender getGender()
-	{
-		return gender;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public void setGender(Gender newGender)
-	{
-		final Gender oldGender = gender;
-		gender = newGender == null ? GENDER_EDEFAULT : newGender;
-		if (eNotificationRequired()) {
-			eNotify(new ENotificationImpl(this, Notification.SET, TaskPackage.USER__GENDER, oldGender, gender));
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public boolean isActive()
-	{
-		return active;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public void setActive(boolean newActive)
-	{
-		final boolean oldActive = active;
-		active = newActive;
-		if (eNotificationRequired()) {
-			eNotify(new ENotificationImpl(this, Notification.SET, TaskPackage.USER__ACTIVE, oldActive, active));
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public Date getTimeOfRegistration()
-	{
-		return timeOfRegistration;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public void setTimeOfRegistration(Date newTimeOfRegistration)
-	{
-		final Date oldTimeOfRegistration = timeOfRegistration;
-		timeOfRegistration = newTimeOfRegistration;
-		if (eNotificationRequired()) {
-			eNotify(new ENotificationImpl(this, Notification.SET, TaskPackage.USER__TIME_OF_REGISTRATION,
-				oldTimeOfRegistration, timeOfRegistration));
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public double getWeight()
-	{
-		return weight;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public void setWeight(double newWeight)
-	{
-		final double oldWeight = weight;
-		weight = newWeight;
-		if (eNotificationRequired()) {
-			eNotify(new ENotificationImpl(this, Notification.SET, TaskPackage.USER__WEIGHT, oldWeight, weight));
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public int getHeigth()
-	{
-		return heigth;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public void setHeigth(int newHeigth)
-	{
-		final int oldHeigth = heigth;
-		heigth = newHeigth;
-		if (eNotificationRequired()) {
-			eNotify(new ENotificationImpl(this, Notification.SET, TaskPackage.USER__HEIGTH, oldHeigth, heigth));
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public Nationality getNationality()
-	{
-		return nationality;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public void setNationality(Nationality newNationality)
-	{
-		final Nationality oldNationality = nationality;
-		nationality = newNationality == null ? NATIONALITY_EDEFAULT : newNationality;
-		if (eNotificationRequired()) {
-			eNotify(new ENotificationImpl(this, Notification.SET, TaskPackage.USER__NATIONALITY, oldNationality,
-				nationality));
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public XMLGregorianCalendar getDateOfBirth()
-	{
-		return dateOfBirth;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public void setDateOfBirth(XMLGregorianCalendar newDateOfBirth)
-	{
-		final XMLGregorianCalendar oldDateOfBirth = dateOfBirth;
-		dateOfBirth = newDateOfBirth;
-		if (eNotificationRequired()) {
-			eNotify(new ENotificationImpl(this, Notification.SET, TaskPackage.USER__DATE_OF_BIRTH, oldDateOfBirth,
-				dateOfBirth));
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public String getEmail()
-	{
-		return email;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public void setEmail(String newEmail)
-	{
-		final String oldEmail = email;
-		email = newEmail;
-		if (eNotificationRequired()) {
-			eNotify(new ENotificationImpl(this, Notification.SET, TaskPackage.USER__EMAIL, oldEmail, email));
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public EList<Task> getTasks()
-	{
-		if (tasks == null)
-		{
-			tasks = new EObjectWithInverseResolvingEList<Task>(Task.class, this, TaskPackage.USER__TASKS,
-				TaskPackage.TASK__ASSIGNEE);
-		}
-		return tasks;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-	{
-		switch (featureID)
-		{
-		case TaskPackage.USER__TASKS:
-			return ((InternalEList<InternalEObject>) (InternalEList<?>) getTasks()).basicAdd(otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-	{
-		switch (featureID)
-		{
-		case TaskPackage.USER__TASKS:
-			return ((InternalEList<?>) getTasks()).basicRemove(otherEnd, 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 TaskPackage.USER__FIRST_NAME:
-			return getFirstName();
-		case TaskPackage.USER__LAST_NAME:
-			return getLastName();
-		case TaskPackage.USER__GENDER:
-			return getGender();
-		case TaskPackage.USER__ACTIVE:
-			return isActive();
-		case TaskPackage.USER__TIME_OF_REGISTRATION:
-			return getTimeOfRegistration();
-		case TaskPackage.USER__WEIGHT:
-			return getWeight();
-		case TaskPackage.USER__HEIGTH:
-			return getHeigth();
-		case TaskPackage.USER__NATIONALITY:
-			return getNationality();
-		case TaskPackage.USER__DATE_OF_BIRTH:
-			return getDateOfBirth();
-		case TaskPackage.USER__EMAIL:
-			return getEmail();
-		case TaskPackage.USER__TASKS:
-			return getTasks();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-		case TaskPackage.USER__FIRST_NAME:
-			setFirstName((String) newValue);
-			return;
-		case TaskPackage.USER__LAST_NAME:
-			setLastName((String) newValue);
-			return;
-		case TaskPackage.USER__GENDER:
-			setGender((Gender) newValue);
-			return;
-		case TaskPackage.USER__ACTIVE:
-			setActive((Boolean) newValue);
-			return;
-		case TaskPackage.USER__TIME_OF_REGISTRATION:
-			setTimeOfRegistration((Date) newValue);
-			return;
-		case TaskPackage.USER__WEIGHT:
-			setWeight((Double) newValue);
-			return;
-		case TaskPackage.USER__HEIGTH:
-			setHeigth((Integer) newValue);
-			return;
-		case TaskPackage.USER__NATIONALITY:
-			setNationality((Nationality) newValue);
-			return;
-		case TaskPackage.USER__DATE_OF_BIRTH:
-			setDateOfBirth((XMLGregorianCalendar) newValue);
-			return;
-		case TaskPackage.USER__EMAIL:
-			setEmail((String) newValue);
-			return;
-		case TaskPackage.USER__TASKS:
-			getTasks().clear();
-			getTasks().addAll((Collection<? extends Task>) newValue);
-			return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-		case TaskPackage.USER__FIRST_NAME:
-			setFirstName(FIRST_NAME_EDEFAULT);
-			return;
-		case TaskPackage.USER__LAST_NAME:
-			setLastName(LAST_NAME_EDEFAULT);
-			return;
-		case TaskPackage.USER__GENDER:
-			setGender(GENDER_EDEFAULT);
-			return;
-		case TaskPackage.USER__ACTIVE:
-			setActive(ACTIVE_EDEFAULT);
-			return;
-		case TaskPackage.USER__TIME_OF_REGISTRATION:
-			setTimeOfRegistration(TIME_OF_REGISTRATION_EDEFAULT);
-			return;
-		case TaskPackage.USER__WEIGHT:
-			setWeight(WEIGHT_EDEFAULT);
-			return;
-		case TaskPackage.USER__HEIGTH:
-			setHeigth(HEIGTH_EDEFAULT);
-			return;
-		case TaskPackage.USER__NATIONALITY:
-			setNationality(NATIONALITY_EDEFAULT);
-			return;
-		case TaskPackage.USER__DATE_OF_BIRTH:
-			setDateOfBirth(DATE_OF_BIRTH_EDEFAULT);
-			return;
-		case TaskPackage.USER__EMAIL:
-			setEmail(EMAIL_EDEFAULT);
-			return;
-		case TaskPackage.USER__TASKS:
-			getTasks().clear();
-			return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-		case TaskPackage.USER__FIRST_NAME:
-			return FIRST_NAME_EDEFAULT == null ? firstName != null : !FIRST_NAME_EDEFAULT.equals(firstName);
-		case TaskPackage.USER__LAST_NAME:
-			return LAST_NAME_EDEFAULT == null ? lastName != null : !LAST_NAME_EDEFAULT.equals(lastName);
-		case TaskPackage.USER__GENDER:
-			return gender != GENDER_EDEFAULT;
-		case TaskPackage.USER__ACTIVE:
-			return active != ACTIVE_EDEFAULT;
-		case TaskPackage.USER__TIME_OF_REGISTRATION:
-			return TIME_OF_REGISTRATION_EDEFAULT == null ? timeOfRegistration != null : !TIME_OF_REGISTRATION_EDEFAULT
-				.equals(timeOfRegistration);
-		case TaskPackage.USER__WEIGHT:
-			return weight != WEIGHT_EDEFAULT;
-		case TaskPackage.USER__HEIGTH:
-			return heigth != HEIGTH_EDEFAULT;
-		case TaskPackage.USER__NATIONALITY:
-			return nationality != NATIONALITY_EDEFAULT;
-		case TaskPackage.USER__DATE_OF_BIRTH:
-			return DATE_OF_BIRTH_EDEFAULT == null ? dateOfBirth != null : !DATE_OF_BIRTH_EDEFAULT.equals(dateOfBirth);
-		case TaskPackage.USER__EMAIL:
-			return EMAIL_EDEFAULT == null ? email != null : !EMAIL_EDEFAULT.equals(email);
-		case TaskPackage.USER__TASKS:
-			return tasks != null && !tasks.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) {
-			return super.toString();
-		}
-
-		final StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (firstName: "); //$NON-NLS-1$
-		result.append(firstName);
-		result.append(", lastName: "); //$NON-NLS-1$
-		result.append(lastName);
-		result.append(", gender: "); //$NON-NLS-1$
-		result.append(gender);
-		result.append(", active: "); //$NON-NLS-1$
-		result.append(active);
-		result.append(", timeOfRegistration: "); //$NON-NLS-1$
-		result.append(timeOfRegistration);
-		result.append(", weight: "); //$NON-NLS-1$
-		result.append(weight);
-		result.append(", heigth: "); //$NON-NLS-1$
-		result.append(heigth);
-		result.append(", nationality: "); //$NON-NLS-1$
-		result.append(nationality);
-		result.append(", dateOfBirth: "); //$NON-NLS-1$
-		result.append(dateOfBirth);
-		result.append(", email: "); //$NON-NLS-1$
-		result.append(email);
-		result.append(')');
-		return result.toString();
-	}
-
-} // UserImpl
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/util/TaskAdapterFactory.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/util/TaskAdapterFactory.java
deleted file mode 100644
index 60ad18c..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/util/TaskAdapterFactory.java
+++ /dev/null
@@ -1,197 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.model.task.util;
-
-import org.eclipse.emf.common.notify.Adapter;
-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.makeithappen.model.task.Task;
-import org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage;
-import org.eclipse.emf.ecp.makeithappen.model.task.User;
-import org.eclipse.emf.ecp.makeithappen.model.task.UserGroup;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Adapter Factory</b> for the model.
- * It provides an adapter <code>createXXX</code> method for each class of the model.
- * <!-- end-user-doc -->
- *
- * @see org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage
- * @generated
- */
-public class TaskAdapterFactory extends AdapterFactoryImpl
-{
-	/**
-	 * The cached model package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected static TaskPackage modelPackage;
-
-	/**
-	 * Creates an instance of the adapter factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public TaskAdapterFactory()
-	{
-		if (modelPackage == null)
-		{
-			modelPackage = TaskPackage.eINSTANCE;
-		}
-	}
-
-	/**
-	 * Returns whether this factory is applicable for the type of the object.
-	 * <!-- begin-user-doc -->
-	 * 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
-	 */
-	@Override
-	public boolean isFactoryForType(Object object)
-	{
-		if (object == modelPackage)
-		{
-			return true;
-		}
-		if (object instanceof EObject)
-		{
-			return ((EObject) object).eClass().getEPackage() == modelPackage;
-		}
-		return false;
-	}
-
-	/**
-	 * The switch that delegates to the <code>createXXX</code> methods.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected TaskSwitch<Adapter> modelSwitch =
-		new TaskSwitch<Adapter>()
-		{
-			@Override
-			public Adapter caseTask(Task object)
-			{
-				return createTaskAdapter();
-			}
-
-			@Override
-			public Adapter caseUser(User object)
-			{
-				return createUserAdapter();
-			}
-
-			@Override
-			public Adapter caseUserGroup(UserGroup object)
-			{
-				return createUserGroupAdapter();
-			}
-
-			@Override
-			public Adapter defaultCase(EObject object)
-			{
-				return createEObjectAdapter();
-			}
-		};
-
-	/**
-	 * 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
-	 */
-	@Override
-	public Adapter createAdapter(Notifier target)
-	{
-		return modelSwitch.doSwitch((EObject) target);
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecp.makeithappen.model.task.Task
-	 * <em>Task</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.makeithappen.model.task.Task
-	 * @generated
-	 */
-	public Adapter createTaskAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecp.makeithappen.model.task.User
-	 * <em>User</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.makeithappen.model.task.User
-	 * @generated
-	 */
-	public Adapter createUserAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecp.makeithappen.model.task.UserGroup
-	 * <em>User Group</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.makeithappen.model.task.UserGroup
-	 * @generated
-	 */
-	public Adapter createUserGroupAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for the default case.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null.
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the new adapter.
-	 * @generated
-	 */
-	public Adapter createEObjectAdapter()
-	{
-		return null;
-	}
-
-} // TaskAdapterFactory
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/util/TaskSwitch.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/util/TaskSwitch.java
deleted file mode 100644
index cdb4118..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/util/TaskSwitch.java
+++ /dev/null
@@ -1,189 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.model.task.util;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.util.Switch;
-import org.eclipse.emf.ecp.makeithappen.model.task.Task;
-import org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage;
-import org.eclipse.emf.ecp.makeithappen.model.task.User;
-import org.eclipse.emf.ecp.makeithappen.model.task.UserGroup;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Switch</b> for the model's inheritance hierarchy.
- * It supports the call {@link #doSwitch(EObject) doSwitch(object)} to invoke the <code>caseXXX</code> method for each
- * class of the model,
- * starting with the actual class of the object
- * and proceeding up the inheritance hierarchy
- * until a non-null result is returned,
- * which is the result of the switch.
- * <!-- end-user-doc -->
- *
- * @see org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage
- * @generated
- */
-public class TaskSwitch<T> extends Switch<T>
-{
-	/**
-	 * The cached model package
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected static TaskPackage modelPackage;
-
-	/**
-	 * Creates an instance of the switch.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public TaskSwitch()
-	{
-		if (modelPackage == null)
-		{
-			modelPackage = TaskPackage.eINSTANCE;
-		}
-	}
-
-	/**
-	 * Checks whether this is a switch for the given package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @parameter ePackage the package in question.
-	 * @return whether this is a switch for the given package.
-	 * @generated
-	 */
-	@Override
-	protected boolean isSwitchFor(EPackage ePackage)
-	{
-		return ePackage == modelPackage;
-	}
-
-	/**
-	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that
-	 * result.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @return the first non-null result returned by a <code>caseXXX</code> call.
-	 * @generated
-	 */
-	@Override
-	protected T doSwitch(int classifierID, EObject theEObject)
-	{
-		switch (classifierID)
-		{
-		case TaskPackage.TASK: {
-			final Task task = (Task) theEObject;
-			T result = caseTask(task);
-			if (result == null) {
-				result = defaultCase(theEObject);
-			}
-			return result;
-		}
-		case TaskPackage.USER: {
-			final User user = (User) theEObject;
-			T result = caseUser(user);
-			if (result == null) {
-				result = defaultCase(theEObject);
-			}
-			return result;
-		}
-		case TaskPackage.USER_GROUP: {
-			final UserGroup userGroup = (UserGroup) theEObject;
-			T result = caseUserGroup(userGroup);
-			if (result == null) {
-				result = defaultCase(theEObject);
-			}
-			return result;
-		}
-		default:
-			return defaultCase(theEObject);
-		}
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Task</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>Task</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseTask(Task object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>User</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>User</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseUser(User object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>User Group</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>User Group</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseUserGroup(UserGroup object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
-	 * <!-- begin-user-doc -->
-	 * 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)
-	 * @generated
-	 */
-	@Override
-	public T defaultCase(EObject object)
-	{
-		return null;
-	}
-
-} // TaskSwitch
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/util/TaskValidator.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/util/TaskValidator.java
deleted file mode 100644
index 8df9b35..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.model/src/org/eclipse/emf/ecp/makeithappen/model/task/util/TaskValidator.java
+++ /dev/null
@@ -1,264 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.model.task.util;
-
-import java.util.Map;
-
-import javax.xml.datatype.XMLGregorianCalendar;
-
-import org.eclipse.emf.common.util.DiagnosticChain;
-import org.eclipse.emf.common.util.ResourceLocator;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.util.EObjectValidator;
-import org.eclipse.emf.ecore.xml.type.util.XMLTypeValidator;
-import org.eclipse.emf.ecp.makeithappen.model.task.Gender;
-import org.eclipse.emf.ecp.makeithappen.model.task.Nationality;
-import org.eclipse.emf.ecp.makeithappen.model.task.Task;
-import org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage;
-import org.eclipse.emf.ecp.makeithappen.model.task.User;
-import org.eclipse.emf.ecp.makeithappen.model.task.UserGroup;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Validator</b> for the model.
- * <!-- end-user-doc -->
- *
- * @see org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage
- * @generated
- */
-public class TaskValidator extends EObjectValidator {
-	/**
-	 * The cached model package
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public static final TaskValidator INSTANCE = new TaskValidator();
-
-	/**
-	 * A constant for the {@link org.eclipse.emf.common.util.Diagnostic#getSource() source} of diagnostic
-	 * {@link org.eclipse.emf.common.util.Diagnostic#getCode() codes} from this package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @see org.eclipse.emf.common.util.Diagnostic#getSource()
-	 * @see org.eclipse.emf.common.util.Diagnostic#getCode()
-	 * @generated
-	 */
-	public static final String DIAGNOSTIC_SOURCE = "org.eclipse.emf.ecp.makeithappen.model.task"; //$NON-NLS-1$
-
-	/**
-	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Has Name' of 'Task'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public static final int TASK__HAS_NAME = 1;
-
-	/**
-	 * A constant with a fixed name that can be used as the base value for additional hand written constants.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	private static final int GENERATED_DIAGNOSTIC_CODE_COUNT = 1;
-
-	/**
-	 * A constant with a fixed name that can be used as the base value for additional hand written constants in a
-	 * derived class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected static final int DIAGNOSTIC_CODE_COUNT = GENERATED_DIAGNOSTIC_CODE_COUNT;
-
-	/**
-	 * The cached base package validator.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	protected XMLTypeValidator xmlTypeValidator;
-
-	/**
-	 * Creates an instance of the switch.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public TaskValidator() {
-		super();
-		xmlTypeValidator = XMLTypeValidator.INSTANCE;
-	}
-
-	/**
-	 * Returns the package of this validator switch.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	protected EPackage getEPackage() {
-		return TaskPackage.eINSTANCE;
-	}
-
-	/**
-	 * Calls <code>validateXXX</code> for the corresponding classifier of the model.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	protected boolean validate(int classifierID, Object value, DiagnosticChain diagnostics, Map<Object, Object> context) {
-		switch (classifierID)
-		{
-		case TaskPackage.TASK:
-			return validateTask((Task) value, diagnostics, context);
-		case TaskPackage.USER:
-			return validateUser((User) value, diagnostics, context);
-		case TaskPackage.USER_GROUP:
-			return validateUserGroup((UserGroup) value, diagnostics, context);
-		case TaskPackage.GENDER:
-			return validateGender((Gender) value, diagnostics, context);
-		case TaskPackage.NATIONALITY:
-			return validateNationality((Nationality) value, diagnostics, context);
-		case TaskPackage.DATE_OF_BIRTH:
-			return validateDateOfBirth((XMLGregorianCalendar) value, diagnostics, context);
-		default:
-			return true;
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public boolean validateTask(Task task, DiagnosticChain diagnostics, Map<Object, Object> context) {
-		if (!validate_NoCircularContainment(task, diagnostics, context)) {
-			return false;
-		}
-		boolean result = validate_EveryMultiplicityConforms(task, diagnostics, context);
-		if (result || diagnostics != null) {
-			result &= validate_EveryDataValueConforms(task, diagnostics, context);
-		}
-		if (result || diagnostics != null) {
-			result &= validate_EveryReferenceIsContained(task, diagnostics, context);
-		}
-		if (result || diagnostics != null) {
-			result &= validate_EveryBidirectionalReferenceIsPaired(task, diagnostics, context);
-		}
-		if (result || diagnostics != null) {
-			result &= validate_EveryProxyResolves(task, diagnostics, context);
-		}
-		if (result || diagnostics != null) {
-			result &= validate_UniqueID(task, diagnostics, context);
-		}
-		if (result || diagnostics != null) {
-			result &= validate_EveryKeyUnique(task, diagnostics, context);
-		}
-		if (result || diagnostics != null) {
-			result &= validate_EveryMapEntryUnique(task, diagnostics, context);
-		}
-		if (result || diagnostics != null) {
-			result &= validateTask_hasName(task, diagnostics, context);
-		}
-		return result;
-	}
-
-	/**
-	 * Validates the hasName constraint of '<em>Task</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public boolean validateTask_hasName(Task task, DiagnosticChain diagnostics, Map<Object, Object> context) {
-		return task.hasName(diagnostics, context);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public boolean validateUser(User user, DiagnosticChain diagnostics, Map<Object, Object> context) {
-		return validate_EveryDefaultConstraint(user, diagnostics, context);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public boolean validateUserGroup(UserGroup userGroup, DiagnosticChain diagnostics, Map<Object, Object> context) {
-		return validate_EveryDefaultConstraint(userGroup, diagnostics, context);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public boolean validateGender(Gender gender, DiagnosticChain diagnostics, Map<Object, Object> context) {
-		return true;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public boolean validateNationality(Nationality nationality, DiagnosticChain diagnostics, Map<Object, Object> context) {
-		return true;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	public boolean validateDateOfBirth(XMLGregorianCalendar dateOfBirth, DiagnosticChain diagnostics,
-		Map<Object, Object> context) {
-		return true;
-	}
-
-	/**
-	 * Returns the resource locator that will be used to fetch messages for this validator's diagnostics.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		// TODO
-		// Specialize this to return a resource locator for messages specific to this validator.
-		// Ensure that you remove @generated or mark it @generated NOT
-		return super.getResourceLocator();
-	}
-
-} // TaskValidator
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.checkstyle b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.checkstyle
deleted file mode 100644
index dccf8af..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.checkstyle
+++ /dev/null
@@ -1,10 +0,0 @@
-<?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.makeithappen.model/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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.classpath b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.classpath
deleted file mode 100644
index ad32c83..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.gitignore b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.gitignore
deleted file mode 100644
index e7bff1c..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/bin

diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.project b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.project
deleted file mode 100644
index 9d51a64..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.eclipse.emf.ecp.makeithappen.view.email.renderer</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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.settings/org.eclipse.core.resources.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 7a7c95a..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,6 +0,0 @@
-eclipse.preferences.version=1

-

-encoding//model/etypes.ecore=UTF-8

-

-

-encoding/<project>=UTF-8

diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.settings/org.eclipse.core.runtime.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index c522e1f..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1

-line.separator=\n

diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 827ebc9..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,418 +0,0 @@
-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.7

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

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

-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.7

-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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.settings/org.eclipse.jdt.launching.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index dcf51f5..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1

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

diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.settings/org.eclipse.jdt.ui.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 8553926..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,127 +0,0 @@
-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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.settings/org.eclipse.ltk.core.refactoring.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index 270fde6..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.settings/org.eclipse.pde.api.tools.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index ee972d9..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,97 +0,0 @@
-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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.settings/org.eclipse.pde.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 3249d11..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/META-INF/MANIFEST.MF
deleted file mode 100644
index ad9cd22..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,20 +0,0 @@
-Manifest-Version: 1.0

-Bundle-ManifestVersion: 2

-Bundle-Name: EmailControl

-Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.view.email.renderer;singleton:=true

-Bundle-Version: 1.5.1.qualifier

-Bundle-Vendor: Eclipse Modeling Project

-Bundle-RequiredExecutionEnvironment: JavaSE-1.6

-Require-Bundle: org.eclipse.emf.ecp.edit.swt;bundle-version="[1.5.0,2.0.0)",

- org.eclipse.emf.ecp.ui.view;bundle-version="[1.5.0,2.0.0)",

- org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.5.0,2.0.0)",

- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)",

- org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.5.0,2.0.0)",

- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.5.0,2.0.0)",

- org.eclipse.emf.ecp.view.template.model;bundle-version="[1.5.0,2.0.0)"

-Import-Package: org.eclipse.jface.layout;version="0.0.0",

- org.eclipse.swt;version="0.0.0",

- org.eclipse.swt.events;version="0.0.0",

- org.eclipse.swt.widgets;version="0.0.0"

-Export-Package: org.eclipse.emf.ecp.makeithappen.ui.emailcontrol;versi

- on="1.5.0"

diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/build.properties b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/build.properties
deleted file mode 100644
index 6f20375..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/build.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-source.. = src/

-output.. = bin/

-bin.includes = META-INF/,\

-               .,\

-               plugin.xml

diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/plugin.xml b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/plugin.xml
deleted file mode 100644
index 03924a0..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/plugin.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<?eclipse version="3.4"?>

-<plugin>

-   <extension

-         point="org.eclipse.emf.ecp.ui.view.swt.renderers">

-      <renderer

-            renderer="org.eclipse.emf.ecp.makeithappen.ui.emailcontrol.EmailControlRenderer">

-         <dynamicTest

-               testClass="org.eclipse.emf.ecp.makeithappen.ui.emailcontrol.EmailControlRendererTest">

-         </dynamicTest>

-      </renderer>

-   </extension>

-

-</plugin>

diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/src/org/eclipse/emf/ecp/makeithappen/ui/emailcontrol/EmailControlRenderer.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/src/org/eclipse/emf/ecp/makeithappen/ui/emailcontrol/EmailControlRenderer.java
deleted file mode 100644
index 46b6993..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/src/org/eclipse/emf/ecp/makeithappen/ui/emailcontrol/EmailControlRenderer.java
+++ /dev/null
@@ -1,60 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.ui.emailcontrol;
-
-import java.awt.Desktop;
-import java.io.IOException;
-import java.net.URI;
-
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
-import org.eclipse.emf.ecp.view.spi.core.swt.renderer.TextControlSWTRenderer;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * A renderer to render an e-mail address.
- *
- * @author Lucas
- */
-public class EmailControlRenderer extends TextControlSWTRenderer {
-
-	@Override
-	protected Control createSWTControl(Composite parent, final Setting setting) {
-		final Composite main = new Composite(parent, SWT.NONE);
-		GridLayoutFactory.fillDefaults().numColumns(2).applyTo(main);
-		GridDataFactory.fillDefaults().grab(true, false)
-			.align(SWT.FILL, SWT.BEGINNING).applyTo(main);
-		final Control control = super.createSWTControl(main, setting);
-		final Button button = new Button(main, SWT.PUSH);
-		button.setText("Send Mail"); //$NON-NLS-1$
-		button.addSelectionListener(new SelectionAdapter() {
-			@Override
-			public void widgetSelected(SelectionEvent e) {
-				try {
-					Desktop.getDesktop().mail(
-						URI.create("mailto:" //$NON-NLS-1$
-							+ getModelValue(setting).getValue()));
-				} catch (final IOException e1) {
-					// ignore failure to open mailto
-				}
-			}
-		});
-		return control;
-	}
-
-}
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/src/org/eclipse/emf/ecp/makeithappen/ui/emailcontrol/EmailControlRendererTest.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/src/org/eclipse/emf/ecp/makeithappen/ui/emailcontrol/EmailControlRendererTest.java
deleted file mode 100644
index 3d8736a..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/src/org/eclipse/emf/ecp/makeithappen/ui/emailcontrol/EmailControlRendererTest.java
+++ /dev/null
@@ -1,58 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.ui.emailcontrol;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage;
-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.model.VControl;
-import org.eclipse.emf.ecp.view.spi.model.VElement;
-
-/**
- * The renderer tester for the email control renderer.
- *
- * @author Eclipse Modeling Project
- *
- */
-public class EmailControlRendererTest implements ECPRendererTester {
-
-	/**
-	 * @param feature the structural feature.
-	 * @param vElement the VElement.
-	 * @param context the view model context.
-	 * @return whether the renderer is applicable for the feature.
-	 */
-	public int isApplicableForFeature(EStructuralFeature feature, VElement vElement, ViewModelContext context) {
-		if (feature.equals(TaskPackage.eINSTANCE.getUser_Email())) {
-			return 10;
-		}
-		return NOT_APPLICABLE;
-	}
-
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecp.view.model.common.ECPRendererTester#isApplicable(org.eclipse.emf.ecp.view.spi.model.VElement,
-	 *      org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
-	 */
-	@Override
-	public int isApplicable(VElement vElement, ViewModelContext viewModelContext) {
-		if (!VControl.class.isInstance(vElement)) {
-			return NOT_APPLICABLE;
-		}
-		final EStructuralFeature feature = VControl.class.cast(vElement).getDomainModelReference()
-			.getEStructuralFeatureIterator().next();
-		return isApplicableForFeature(feature, vElement, viewModelContext);
-	}
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.checkstyle b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.checkstyle
deleted file mode 100644
index dccf8af..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.checkstyle
+++ /dev/null
@@ -1,10 +0,0 @@
-<?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.makeithappen.model/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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.classpath b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.classpath
deleted file mode 100644
index 151bd81..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry exported="true" kind="lib" path="lib/org.eclipse.nebula.widgets.pgroup_1.0.0.201310241250.jar"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.project b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.project
deleted file mode 100644
index 4a60f5e..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.emf.ecp.makeithappen.view.group.renderer</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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.settings/org.eclipse.core.resources.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index f548abb..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,6 +0,0 @@
-eclipse.preferences.version=1
-
-encoding//model/etypes.ecore=UTF-8
-
-
-encoding/<project>=UTF-8
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.settings/org.eclipse.core.runtime.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index 5a0ad22..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 057d96e..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,418 +0,0 @@
-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.7
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.7
-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.7
-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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.settings/org.eclipse.jdt.launching.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index 3bb2352..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.settings/org.eclipse.jdt.ui.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 791508d..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,115 +0,0 @@
-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_to_enhanced_for_loop=false
-cleanup.correct_indentation=true
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=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_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_blocks=true
-cleanup.use_blocks_only_for_return_and_throw=false
-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_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_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=true
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=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_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_blocks=true
-sp_cleanup.use_blocks_only_for_return_and_throw=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
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.settings/org.eclipse.ltk.core.refactoring.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index 864e30f..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.settings/org.eclipse.pde.api.tools.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index e4e3c00..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,97 +0,0 @@
-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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.settings/org.eclipse.pde.prefs b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 0bbee3c..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-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/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/META-INF/MANIFEST.MF
deleted file mode 100644
index 4e4d68c..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,23 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Expandbar Group Renderer
-Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.view.group.renderer;singleton:=true
-Bundle-Version: 1.5.1.qualifier
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
-Bundle-Vendor: Eclipse Modeling Project
-Require-Bundle: org.eclipse.emf.ecp.view.group.model;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)",
- org.eclipse.emf.ecp.edit;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.5.0,2.0.0)"
-Import-Package: org.eclipse.swt;version="0.0.0",
- org.eclipse.swt.events;version="0.0.0",
- org.eclipse.swt.graphics;version="0.0.0",
- org.eclipse.swt.internal;version="0.0.0",
- org.eclipse.swt.layout;version="0.0.0",
- org.eclipse.swt.widgets;version="0.0.0"
-Bundle-ClassPath: lib/org.eclipse.nebula.widgets.pgroup_1.0.0.201310241250.jar,
- .
-Export-Package: org.eclipse.emf.ecp.makeithappen.view.group.swt.pgroup;version="1.3.0",
- org.eclipse.nebula.widgets.pgroup;version="1.0.0",
- org.eclipse.nebula.widgets.pgroup.internal;version="1.0.0";x-internal:=true
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/build.properties b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/build.properties
deleted file mode 100644
index 75461ed..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/build.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               lib/org.eclipse.nebula.widgets.pgroup_1.0.0.201310241250.jar
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/lib/org.eclipse.nebula.widgets.pgroup_1.0.0.201310241250.jar b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/lib/org.eclipse.nebula.widgets.pgroup_1.0.0.201310241250.jar
deleted file mode 100644
index 5585b70..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/lib/org.eclipse.nebula.widgets.pgroup_1.0.0.201310241250.jar
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/plugin.xml b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/plugin.xml
deleted file mode 100644
index 98c4798..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/plugin.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         point="org.eclipse.emf.ecp.ui.view.swt.renderers">
-      <renderer
-            renderer="org.eclipse.emf.ecp.makeithappen.view.group.swt.pgroup.PGroupRenderer">
-         <staticTest
-               element="org.eclipse.emf.ecp.view.spi.group.model.VGroup"
-               priority="10">
-         </staticTest>
-      </renderer>
-   </extension>
-
-</plugin>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/src/org/eclipse/emf/ecp/makeithappen/view/group/swt/pgroup/PGroupRenderer.java b/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/src/org/eclipse/emf/ecp/makeithappen/view/group/swt/pgroup/PGroupRenderer.java
deleted file mode 100644
index c2f9598..0000000
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/src/org/eclipse/emf/ecp/makeithappen/view/group/swt/pgroup/PGroupRenderer.java
+++ /dev/null
@@ -1,51 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- * EclipseSource Munich - initial API and implementation
- */
-package org.eclipse.emf.ecp.makeithappen.view.group.swt.pgroup;
-
-import java.util.Collection;
-
-import org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.group.model.VGroup;
-import org.eclipse.emf.ecp.view.spi.model.VContainedElement;
-import org.eclipse.nebula.widgets.pgroup.PGroup;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Renders a VGroup as Eclipse Nebula PGroup widget.
- * 
- * @author EclipseSource Munich
- * 
- */
-public class PGroupRenderer extends ContainerSWTRenderer<VGroup> {
-
-	@Override
-	protected Collection<VContainedElement> getChildren() {
-		return getVElement().getChildren();
-	}
-
-	@Override
-	protected String getCustomVariant() {
-		return "PGroup"; //$NON-NLS-1$
-	}
-
-	@Override
-	protected Composite getComposite(Composite parent) {
-		parent.setBackgroundMode(SWT.INHERIT_FORCE);
-		final PGroup group = new PGroup(parent, SWT.SMOOTH);
-		if (getVElement().getName() != null) {
-			group.setText(getVElement().getName());
-		}
-		return group;
-	}
-
-}
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/pom.xml b/examples/org.eclipse.emf.ecp.makeithappen.wizards/pom.xml
index 74daade..2dddad9 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/pom.xml
+++ b/examples/org.eclipse.emf.ecp.makeithappen.wizards/pom.xml
@@ -1,19 +1,239 @@
 <?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>

+<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-examples-parent</artifactId>

-    <version>1.5.1-SNAPSHOT</version>

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

-  </parent>

+	<parent>

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

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

+		<version>1.6.0-SNAPSHOT</version>

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

+	</parent>

 

-  <artifactId>org.eclipse.emf.ecp.makeithappen.wizards</artifactId>

-  <packaging>eclipse-plugin</packaging>

+	<artifactId>org.eclipse.emf.ecp.makeithappen.wizards</artifactId>

+	<packaging>eclipse-plugin</packaging>

 

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

-  <version>1.5.1-SNAPSHOT</version>

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

+	<version>1.6.0-SNAPSHOT</version>

+	<build>

+		<plugins>

+			<plugin>

+				<artifactId>maven-resources-plugin</artifactId>

+				<version>2.6</version>

+				<executions>

+					<execution>

+						<id>copy-e3</id>

+						<phase>validate</phase>

+						<goals>

+							<goal>copy-resources</goal>

+						</goals>

+						<configuration>

+							<outputDirectory>./examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3</outputDirectory>

+							<resources>

+								<resource>

+									<directory>../org.eclipse.emf.ecp.makeithappen.application.sample.e3</directory>

+									<excludes>

+          								<exclude>bin/</exclude>

+          								<exclude>target/</exclude>

+          								<exclude>**/pom.xml</exclude>

+        							</excludes>

+									<filtering>true</filtering>

+								</resource>

+							</resources>

+						</configuration>

+					</execution>

+					<execution>

+						<id>copy-e4</id>

+						<phase>validate</phase>

+						<goals>

+							<goal>copy-resources</goal>

+						</goals>

+						<configuration>

+							<outputDirectory>./examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4</outputDirectory>

+							<resources>

+								<resource>

+									<directory>../org.eclipse.emf.ecp.makeithappen.application.sample.e4</directory>

+									<excludes>

+          								<exclude>bin/</exclude>

+          								<exclude>target/</exclude>

+          								<exclude>**/pom.xml</exclude>

+        							</excludes>

+									<filtering>true</filtering>

+								</resource>

+							</resources>

+						</configuration>

+					</execution>

+					<execution>

+						<id>copy-fx</id>

+						<phase>validate</phase>

+						<goals>

+							<goal>copy-resources</goal>

+						</goals>

+						<configuration>

+							<outputDirectory>./examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx</outputDirectory>

+							<resources>

+								<resource>

+									<directory>../org.eclipse.emf.ecp.makeithappen.application.sample.fx</directory>

+									<excludes>

+          								<exclude>bin/</exclude>

+          								<exclude>target/</exclude>

+          								<exclude>**/pom.xml</exclude>

+        							</excludes>

+									<filtering>true</filtering>

+								</resource>

+							</resources>

+						</configuration>

+					</execution>

+					<execution>

+						<id>copy-rap</id>

+						<phase>validate</phase>

+						<goals>

+							<goal>copy-resources</goal>

+						</goals>

+						<configuration>

+							<outputDirectory>./examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap</outputDirectory>

+							<resources>

+								<resource>

+									<directory>../org.eclipse.emf.ecp.makeithappen.application.sample.rap</directory>

+									<excludes>

+          								<exclude>bin/</exclude>

+          								<exclude>target/</exclude>

+          								<exclude>**/pom.xml</exclude>

+        							</excludes>

+									<filtering>true</filtering>

+								</resource>

+							</resources>

+						</configuration>

+					</execution>

+					<execution>

+						<id>copy-rapj2ee</id>

+						<phase>validate</phase>

+						<goals>

+							<goal>copy-resources</goal>

+						</goals>

+						<configuration>

+							<outputDirectory>./examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee</outputDirectory>

+							<resources>

+								<resource>

+									<directory>../org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee</directory>

+									<excludes>

+          								<exclude>bin/</exclude>

+          								<exclude>target/</exclude>

+          								<exclude>**/pom.xml</exclude>

+        							</excludes>

+									<filtering>true</filtering>

+								</resource>

+							</resources>

+						</configuration>

+					</execution>

+					<execution>

+						<id>copy-model</id>

+						<phase>validate</phase>

+						<goals>

+							<goal>copy-resources</goal>

+						</goals>

+						<configuration>

+							<outputDirectory>./examples/org.eclipse.emf.ecp.makeithappen.model</outputDirectory>

+							<resources>

+								<resource>

+									<directory>../org.eclipse.emf.ecp.makeithappen.model</directory>

+									<excludes>

+          								<exclude>bin/</exclude>

+          								<exclude>target/</exclude>

+          								<exclude>**/pom.xml</exclude>

+        							</excludes>

+									<filtering>true</filtering>

+								</resource>

+							</resources>

+						</configuration>

+					</execution>

+					<execution>

+						<id>copy-modeledit</id>

+						<phase>validate</phase>

+						<goals>

+							<goal>copy-resources</goal>

+						</goals>

+						<configuration>

+							<outputDirectory>./examples/org.eclipse.emf.ecp.makeithappen.model.edit</outputDirectory>

+							<resources>

+								<resource>

+									<directory>../org.eclipse.emf.ecp.makeithappen.model.edit</directory>

+									<excludes>

+          								<exclude>bin/</exclude>

+          								<exclude>target/</exclude>

+          								<exclude>**/pom.xml</exclude>

+        							</excludes>

+									<filtering>true</filtering>

+								</resource>

+							</resources>

+						</configuration>

+					</execution>

+					<execution>

+						<id>copy-viewmodel</id>

+						<phase>validate</phase>

+						<goals>

+							<goal>copy-resources</goal>

+						</goals>

+						<configuration>

+							<outputDirectory>./examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel</outputDirectory>

+							<resources>

+								<resource>

+									<directory>../org.eclipse.emf.ecp.makeithappen.model.viewmodel</directory>

+									<excludes>

+          								<exclude>bin/</exclude>

+          								<exclude>target/</exclude>

+          								<exclude>**/pom.xml</exclude>

+        							</excludes>

+									<filtering>true</filtering>

+								</resource>

+							</resources>

+						</configuration>

+					</execution>

+					<execution>

+						<id>copy-email</id>

+						<phase>validate</phase>

+						<goals>

+							<goal>copy-resources</goal>

+						</goals>

+						<configuration>

+							<outputDirectory>./examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer</outputDirectory>

+							<resources>

+								<resource>

+									<directory>../org.eclipse.emf.ecp.makeithappen.view.email.renderer</directory>

+									<excludes>

+          								<exclude>bin/</exclude>

+          								<exclude>target/</exclude>

+          								<exclude>**/pom.xml</exclude>

+        							</excludes>

+									<filtering>true</filtering>

+								</resource>

+							</resources>

+						</configuration>

+					</execution>

+					<execution>

+						<id>copy-group</id>

+						<phase>validate</phase>

+						<goals>

+							<goal>copy-resources</goal>

+						</goals>

+						<configuration>

+							<outputDirectory>./examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer</outputDirectory>

+							<resources>

+								<resource>

+									<directory>../org.eclipse.emf.ecp.makeithappen.view.group.renderer</directory>

+									<excludes>

+          								<exclude>bin/</exclude>

+          								<exclude>target/</exclude>

+          								<exclude>**/pom.xml</exclude>

+        							</excludes>

+        							<!-- Setting filtering to true will cause maven to look at the jar file and replace stuff. The result is an invalid jar -->

+									<filtering>false</filtering>

+								</resource>

+							</resources>

+						</configuration>

+					</execution>

+				</executions>

+			</plugin>

+		</plugins>

+	</build>

 </project>

diff --git a/features/javafx/org.eclipse.emf.ecp.application.e4.fx.feature/feature.xml b/features/javafx/org.eclipse.emf.ecp.application.e4.fx.feature/feature.xml
index dda7b01..b7ecc52 100644
--- a/features/javafx/org.eclipse.emf.ecp.application.e4.fx.feature/feature.xml
+++ b/features/javafx/org.eclipse.emf.ecp.application.e4.fx.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.emf.ecp.application.e4.fx.feature"
       label="ECP e4 FX Demo Application Feature"
-      version="1.5.1.qualifier"
+      version="1.6.0.qualifier"
       provider-name="Eclipse Modeling Project">
 
    <description url="http://www.efxclipse.org">
diff --git a/features/javafx/org.eclipse.emf.ecp.application.e4.fx.feature/pom.xml b/features/javafx/org.eclipse.emf.ecp.application.e4.fx.feature/pom.xml
index d3ca327..fb129e8 100644
--- a/features/javafx/org.eclipse.emf.ecp.application.e4.fx.feature/pom.xml
+++ b/features/javafx/org.eclipse.emf.ecp.application.e4.fx.feature/pom.xml
@@ -10,8 +10,8 @@
 		<groupId>org.eclipse.emf.ecp.fx</groupId>

 		<artifactId>ecp-fx-parent</artifactId>

 		<relativePath>../../../releng/javafx/org.eclipse.emf.ecp.fx.releng/pom.xml</relativePath>

-		<version>1.5.1-SNAPSHOT</version>

+		<version>1.6.0-SNAPSHOT</version>

 	</parent>

 

-	<version>1.5.1-SNAPSHOT</version>

+	<version>1.6.0-SNAPSHOT</version>

 </project>
\ No newline at end of file
diff --git a/features/javafx/org.eclipse.emf.ecp.demo.e4.fx.feature/feature.xml b/features/javafx/org.eclipse.emf.ecp.demo.e4.fx.feature/feature.xml
index 6fc6c4f..38ae190 100644
--- a/features/javafx/org.eclipse.emf.ecp.demo.e4.fx.feature/feature.xml
+++ b/features/javafx/org.eclipse.emf.ecp.demo.e4.fx.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.emf.ecp.demo.e4.fx.feature"
       label="EMF Forms FX Demo Feature"
-      version="1.5.1.qualifier"
+      version="1.6.0.qualifier"
       provider-name="Eclipse Modeling Project">
 
    <description url="http://www.example.com/description">
diff --git a/features/javafx/org.eclipse.emf.ecp.demo.e4.fx.feature/pom.xml b/features/javafx/org.eclipse.emf.ecp.demo.e4.fx.feature/pom.xml
index 98c96fe..15819ae 100644
--- a/features/javafx/org.eclipse.emf.ecp.demo.e4.fx.feature/pom.xml
+++ b/features/javafx/org.eclipse.emf.ecp.demo.e4.fx.feature/pom.xml
@@ -10,8 +10,8 @@
 		<groupId>org.eclipse.emf.ecp.fx</groupId>

 		<artifactId>ecp-fx-parent</artifactId>

 		<relativePath>../../../releng/javafx/org.eclipse.emf.ecp.fx.releng/pom.xml</relativePath>

-		<version>1.5.1-SNAPSHOT</version>

+		<version>1.6.0-SNAPSHOT</version>

 	</parent>

 

-	<version>1.5.1-SNAPSHOT</version>

+	<version>1.6.0-SNAPSHOT</version>

 </project>
\ No newline at end of file
diff --git a/features/javafx/org.eclipse.emf.ecp.target.e4.fx.feature/feature.xml b/features/javafx/org.eclipse.emf.ecp.target.e4.fx.feature/feature.xml
index 29e0aad..f046e67 100644
--- a/features/javafx/org.eclipse.emf.ecp.target.e4.fx.feature/feature.xml
+++ b/features/javafx/org.eclipse.emf.ecp.target.e4.fx.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.emf.ecp.target.e4.fx.feature"
       label="EMF Forms FX Target Feature"
-      version="1.5.1.qualifier"
+      version="1.6.0.qualifier"
       provider-name="Eclipse Modeling Project">
 
    <description url="http://www.example.com/description">
diff --git a/features/javafx/org.eclipse.emf.ecp.target.e4.fx.feature/pom.xml b/features/javafx/org.eclipse.emf.ecp.target.e4.fx.feature/pom.xml
index 17527c2..87a9c3c 100644
--- a/features/javafx/org.eclipse.emf.ecp.target.e4.fx.feature/pom.xml
+++ b/features/javafx/org.eclipse.emf.ecp.target.e4.fx.feature/pom.xml
@@ -4,14 +4,14 @@
 	<name>ECP e4 FX Demo - target feature</name>

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

 	<packaging>eclipse-feature</packaging>

-	<version>1.5.1-SNAPSHOT</version>

+	<version>1.6.0-SNAPSHOT</version>

 	<artifactId>org.eclipse.emf.ecp.target.e4.fx.feature</artifactId>

 

 	<parent>

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

 		<artifactId>ecp-fx-parent</artifactId>

 		<relativePath>../../../releng/javafx/org.eclipse.emf.ecp.fx.releng/pom.xml</relativePath>

-		<version>1.5.1-SNAPSHOT</version>

+		<version>1.6.0-SNAPSHOT</version>

 	</parent>

 

 </project>
\ No newline at end of file
diff --git a/features/javafx/org.eclipse.emf.ecp.view.sdk.fx.feature/feature.xml b/features/javafx/org.eclipse.emf.ecp.view.sdk.fx.feature/feature.xml
index 7a1ca9c..7ea8b6f 100644
--- a/features/javafx/org.eclipse.emf.ecp.view.sdk.fx.feature/feature.xml
+++ b/features/javafx/org.eclipse.emf.ecp.view.sdk.fx.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.emf.ecp.view.sdk.fx.feature"
       label="EMF Forms FX SDK Feature"
-      version="1.5.1.qualifier"
+      version="1.6.0.qualifier"
       provider-name="Eclipse Modeling Project">
 
    <description url="http://www.example.com/description">
diff --git a/features/javafx/org.eclipse.emf.ecp.view.sdk.fx.feature/pom.xml b/features/javafx/org.eclipse.emf.ecp.view.sdk.fx.feature/pom.xml
index 7196096..64cba32 100644
--- a/features/javafx/org.eclipse.emf.ecp.view.sdk.fx.feature/pom.xml
+++ b/features/javafx/org.eclipse.emf.ecp.view.sdk.fx.feature/pom.xml
@@ -10,8 +10,8 @@
 		<groupId>org.eclipse.emf.ecp.fx</groupId>

 		<artifactId>ecp-fx-parent</artifactId>

 		<relativePath>../../../releng/javafx/org.eclipse.emf.ecp.fx.releng/pom.xml</relativePath>

-		<version>1.5.1-SNAPSHOT</version>

+		<version>1.6.0-SNAPSHOT</version>

 	</parent>

 

-	<version>1.5.1-SNAPSHOT</version>

+	<version>1.6.0-SNAPSHOT</version>

 </project>
\ No newline at end of file
diff --git a/features/org.eclipse.emf.ecp.cdo.feature/feature.xml b/features/org.eclipse.emf.ecp.cdo.feature/feature.xml
index 0921d1e..d1de439 100644
--- a/features/org.eclipse.emf.ecp.cdo.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.cdo.feature/feature.xml
@@ -12,12 +12,12 @@
 <feature
       id="org.eclipse.emf.ecp.cdo.feature"
       label="ECP CDO Integration (Experimental)"
-      version="1.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.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 7692781..6cf06dd 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 ae14a69..358caf1 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"
-      version="1.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.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 baa6f56..6547c8c 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 c2a21bf..471341a 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.0.qualifier">
 
    <description>
       %description
@@ -42,10 +42,6 @@
          version="0.0.0"/>
 
    <includes
-         id="org.eclipse.emf.ecp.view.template.helper.feature"
-         version="0.0.0"/>
-
-   <includes
          id="org.eclipse.emf.ecp.view.model.controls.feature"
          version="0.0.0"/>
 
@@ -60,4 +56,11 @@
          version="0.0.0"
          unpack="false"/>
 
+   <plugin
+         id="org.eclipse.emf.ecp.ui.rcp"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
 </feature>
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 4083e9e..0ef61c0 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 42baccd..e3b7bb6 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.0.qualifier">
 
    <description>
       %description
@@ -36,4 +36,18 @@
          version="0.0.0"
          unpack="false"/>
 
+   <plugin
+         id="org.eclipse.emf.ecp.application.e4.source"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.emf.ecp.ui.rcp"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
 </feature>
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 dcaed66..380349d 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-feature</packaging>
 
 	<build>
@@ -31,6 +31,9 @@
 					<excludes>
 						<plugin id="org.eclipse.emf.ecp.application.e4"/>
 					</excludes>
+					<excludes>
+						<plugin id="org.eclipse.emf.ecp.application.e4.source"/>
+					</excludes>
 				</configuration>
 			</plugin>
 		</plugins>
diff --git a/features/org.eclipse.emf.ecp.diffmerge.feature/feature.xml b/features/org.eclipse.emf.ecp.diffmerge.feature/feature.xml
index 7dd72ba..ff1560a 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="DiffMerge Feature"

-      version="1.5.1.qualifier"

+      version="1.6.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.5.1.qualifier">

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

 

    <description>

       %description

diff --git a/features/org.eclipse.emf.ecp.diffmerge.feature/pom.xml b/features/org.eclipse.emf.ecp.diffmerge.feature/pom.xml
index d249cc0..6d99ce9 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 5bcda97..ae0891b 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.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 f9d3632..8ef8d43 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 68a5a0c..3f76e0e 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.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 78b6803..0839a50 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 0ffbb7f..79b8638 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.5.1.qualifier"

+      version="1.6.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.5.1.qualifier">

+      license-feature-version="1.6.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 89fd95a..ec22bf5 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.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.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 f7ab225..5b71cad 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.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 8c91d0d..a90d600 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
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 476c838..6549066 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.5.1.qualifier"
+      version="1.6.0.qualifier"
       provider-name="Eclipse Modeling Project"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.5.1.qualifier">
+      license-feature-version="1.6.0.qualifier">
 
    <description>
       %description
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 e9bbbcc..39cea5a 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 d3e1670..753d24b 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.5.1.qualifier"
+      version="1.6.0.qualifier"
       provider-name="%providerName"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.5.1.qualifier">
+      license-feature-version="1.6.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 95350d0..7688b9e 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.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 6fa21d8..369e1f2 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.5.1.qualifier"
+      version="1.6.0.qualifier"
       provider-name="%providerName"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.5.1.qualifier">
+      license-feature-version="1.6.0.qualifier">
 
    <description>
       %description
@@ -60,10 +60,6 @@
          version="0.0.0"/>
 
    <includes
-         id="org.eclipse.emf.ecp.view.template.helper.feature"
-         version="0.0.0"/>
-
-   <includes
          id="org.eclipse.emf.ecp.workspace.feature"
          version="0.0.0"/>
 
@@ -103,9 +99,6 @@
          id="org.eclipse.emf.ecp.view.model.editor.feature.source"
          version="0.0.0"/>
 
-   <includes
-         id="org.eclipse.emf.ecp.view.template.helper.feature.source"
-         version="0.0.0"/>
 
    <includes
          id="org.eclipse.emf.ecp.workspace.feature.source"
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 548ea4f..08091cf 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.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 ab47455..9555d90 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.emfstore.feature/pom.xml b/features/org.eclipse.emf.ecp.emfstore.feature/pom.xml
index ecb6be5..d26ba8f 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 2ff0e4d..a35455d 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.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 824153e..ef14e74 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 1fbcc1b..7abfc1d 100644
--- a/features/org.eclipse.emf.ecp.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.feature/feature.xml
@@ -12,12 +12,12 @@
 <feature
       id="org.eclipse.emf.ecp.feature"
       label="ECP Core"
-      version="1.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.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 061c530..c013e29 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.graphiti.feature/pom.xml b/features/org.eclipse.emf.ecp.graphiti.feature/pom.xml
index 921c439..cd8761c 100644
--- a/features/org.eclipse.emf.ecp.graphiti.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.graphiti.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.graphiti.feature</artifactId>
-  <version>1.5.1-SNAPSHOT</version>
+  <version>1.6.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 96aa377..f8c6e571 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.5.1.qualifier"

+      version="1.6.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 b79098f..44fd586 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 44dd718..1039b45 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.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 e926b9b..d0ebe1e 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 c39325d..0ea39f8 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.5.1.qualifier"
+      version="1.6.0.qualifier"
       provider-name="%providerName"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.5.1.qualifier">
+      license-feature-version="1.6.0.qualifier">
 
    <description>
       %description
@@ -48,10 +48,6 @@
          version="0.0.0"/>
 
    <includes
-         id="org.eclipse.emf.ecp.view.template.helper.feature.source"
-         version="0.0.0"/>
-
-   <includes
          id="org.eclipse.emf.ecp.emfstore.feature"
          version="0.0.0"/>
 
@@ -83,8 +79,4 @@
          id="org.eclipse.emf.ecp.rap.util.feature"
          version="0.0.0"/>
 
-   <includes
-         id="org.eclipse.emf.ecp.view.template.helper.feature"
-         version="0.0.0"/>
-
 </feature>
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 27d6943..f522a1a 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.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 494eb48..f789cb6 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.0.qualifier">
 
    <description>
       %description
@@ -58,4 +58,25 @@
          fragment="true"
          unpack="false"/>
 
+   <plugin
+         id="org.eclipse.emf.ecp.core.rap"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.emf.ecp.core.rap.sessionprovider.rwt"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.emf.ecp.emfstore.core.rap"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
 </feature>
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 ddcdff8..ad5fd88 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 6f7c5d6..20b7a14 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.5.1.qualifier"
+      version="1.6.0.qualifier"
       provider-name="Eclipse Modeling Project"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.5.1.qualifier">
+      license-feature-version="1.6.0.qualifier">
 
    <description>
       %description
@@ -52,10 +52,6 @@
          version="0.0.0"/>
 
    <includes
-         id="org.eclipse.emf.ecp.view.template.helper.feature.source"
-         version="0.0.0"/>
-
-   <includes
          id="org.eclipse.emf.ecp.cdo.feature"
          version="0.0.0"/>
 
@@ -92,10 +88,6 @@
          version="0.0.0"/>
 
    <includes
-         id="org.eclipse.emf.ecp.view.template.helper.feature"
-         version="0.0.0"/>
-
-   <includes
          id="org.eclipse.emf.ecp.view.model.controls.feature"
          version="0.0.0"/>
 
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 a250154..dc3b2a4 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.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 4f02748..85b2e5a 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.5.1.qualifier"
+      version="1.6.0.qualifier"
       provider-name="Eclipse Modeling Project"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.5.1.qualifier">
+      license-feature-version="1.6.0.qualifier">
 
    <description>
       %description
@@ -23,4 +23,8 @@
          id="org.eclipse.emf.ecp.emfforms.sdk.feature"
          version="0.0.0"/>
 
+   <includes
+         id="org.eclipse.emf.ecp.sdk.e4.feature"
+         version="0.0.0"/>
+
 </feature>
diff --git a/features/org.eclipse.emf.ecp.sdk.feature/pom.xml b/features/org.eclipse.emf.ecp.sdk.feature/pom.xml
index 1bcb4af..4852dcc 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.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 d635497..1c82042 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.5.1.qualifier"
+      version="1.6.0.qualifier"
       provider-name="Eclipse Modeling Project"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.5.1.qualifier">
+      license-feature-version="1.6.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 627625b..b78e369 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-feature</packaging>
 
 	<build>
diff --git a/features/org.eclipse.emf.ecp.test.feature/feature.xml b/features/org.eclipse.emf.ecp.test.feature/feature.xml
index 1c37f3b..a7c6418 100644
--- a/features/org.eclipse.emf.ecp.test.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.test.feature/feature.xml
@@ -113,20 +113,6 @@
          unpack="false"/>
 
    <plugin
-         id="org.eclipse.emf.ecp.view.group.ui.swt.test"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.emf.ecp.view.horizontal.ui.swt.test"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
          id="org.eclipse.emf.ecp.view.model.edit.test"
          download-size="0"
          install-size="0"
@@ -215,13 +201,6 @@
          unpack="false"/>
 
    <plugin
-         id="org.eclipse.emf.ecp.view.vertical.ui.swt.test"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
          id="org.eclipse.emf.ecp.integrationtest"
          download-size="0"
          install-size="0"
@@ -268,4 +247,28 @@
          fragment="true"
          unpack="false"/>
 
+   <plugin
+         id="org.eclipse.emf.ecp.view.group.ui.swt.test"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         fragment="true"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.emf.ecp.view.horizontal.ui.swt.test"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         fragment="true"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.emf.ecp.view.vertical.ui.swt.test"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         fragment="true"
+         unpack="false"/>
+
 </feature>
diff --git a/features/org.eclipse.emf.ecp.transaction.feature/feature.xml b/features/org.eclipse.emf.ecp.transaction.feature/feature.xml
index 462f7b8..937bc4f 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.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 dd59aa9..cc03424 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.5.1-SNAPSHOT</version>

+    <version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.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 1b58b13..ea4f470 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.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 0fef021..46baa3a 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 abcb56f..e7bdf6d 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.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 0b97f32..17c9e09 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 4ae12a7..8cf765a 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.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 50dae73..d250816 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.5.1-SNAPSHOT</version>
+    <version>1.6.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 ad6c234..194ed32 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.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 1f148db..5858e8a 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 78e8db4..98b0afa 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="EMFForms Dependency Injection Feature (Experimental)"
-      version="1.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.di.feature/pom.xml b/features/org.eclipse.emf.ecp.view.di.feature/pom.xml
index bbf0491..4109397 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.5.1-SNAPSHOT</version>
+    <version>1.6.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 ee4431e..531fa61 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.0.qualifier">
 
    <description>
       %description
@@ -24,6 +24,10 @@
          id="org.eclipse.emf.edapt.runtime.feature"
          version="0.0.0"/>
 
+   <includes
+         id="org.eclipse.emf.edapt.runtime.feature.source"
+         version="0.0.0"/>
+
    <plugin
          id="org.eclipse.emf.ecp.view.edapt"
          download-size="0"
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 ba98744..845ab90 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   
   	<build>
@@ -30,6 +30,7 @@
 				<configuration>
 					<excludes>
 					  <feature id="org.eclipse.emf.edapt.runtime.feature"/>
+					  <feature id="org.eclipse.emf.edapt.runtime.feature.source"/>
 					</excludes>
 				</configuration>
 			</plugin>
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 b166385..0489b93 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.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 14c89f0..3fc5672 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup.feature/.project b/features/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup.feature/.project
new file mode 100644
index 0000000..7e79c86
--- /dev/null
+++ b/features/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup.feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup.feature</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.pde.FeatureBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.FeatureNature</nature>
+	</natures>
+</projectDescription>
diff --git a/features/org.eclipse.emf.ecp.view.template.helper.feature/build.properties b/features/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup.feature/build.properties
similarity index 100%
rename from features/org.eclipse.emf.ecp.view.template.helper.feature/build.properties
rename to features/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup.feature/build.properties
diff --git a/features/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup.feature/feature.properties b/features/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup.feature/feature.properties
new file mode 100644
index 0000000..10082a7
--- /dev/null
+++ b/features/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup.feature/feature.properties
@@ -0,0 +1,7 @@
+# Copyright (c) 2011-2015 EclipseSource Munich GmbH and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+
+description = This feature contains a renderer for a collapsible group using the PGroup widget from the Nebula 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
new file mode 100644
index 0000000..54c7b69
--- /dev/null
+++ b/features/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup.feature/feature.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+      id="org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup.feature"
+      label="EMFForms Collapsible Group Renderer using Nebula PGroup"
+      version="1.6.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.6.0.qualifier">
+
+   <description>
+      %description
+   </description>
+
+   <copyright url="%copyrightURL">
+      %copyright
+   </copyright>
+
+   <license url="%licenseURL">
+      %license
+   </license>
+
+   <plugin
+         id="org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+</feature>
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
new file mode 100644
index 0000000..fc09f81
--- /dev/null
+++ b/features/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup.feature/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-features-parent</artifactId>
+    <version>1.6.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.6.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 81567c0..3fd7e97 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.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 f2ac06a..c078167 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 109b546..ee12973 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.horizontal.feature/pom.xml b/features/org.eclipse.emf.ecp.view.horizontal.feature/pom.xml
index 06e47be..861536a 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 4c6322a..7a07fc3 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="EMFForms Index DMR Feature"
-      version="1.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.0.qualifier">
 
    <description>
       %description
@@ -43,7 +43,7 @@
          unpack="false"/>
 
    <plugin
-         id="org.eclipse.emf.ecp.view.indexdmr.databinding"
+         id="org.eclipse.emfforms.core.services.databinding.index"
          download-size="0"
          install-size="0"
          version="0.0.0"
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 75f78f3..e874ecc 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 00aaf06..6a4e863 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="Key Attribute DMR Feature"
-      version="1.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.keyattributedmr.feature/pom.xml b/features/org.eclipse.emf.ecp.view.keyattributedmr.feature/pom.xml
index 2eca4f2..f0b19c6 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 4a68776..a680cd3 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.label.feature/pom.xml b/features/org.eclipse.emf.ecp.view.label.feature/pom.xml
index f30ec76..2ebca3c 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 8790a09..6d9176b 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="Mapping DMR Feature"
-      version="1.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.0.qualifier">
 
    <description>
       %description
@@ -22,13 +22,6 @@
    </license>
 
    <plugin
-         id="org.eclipse.emf.ecp.view.mappingdmr.databinding"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
          id="org.eclipse.emf.ecp.view.mappingdmr.model"
          download-size="0"
          install-size="0"
@@ -49,4 +42,11 @@
          version="0.0.0"
          unpack="false"/>
 
+   <plugin
+         id="org.eclipse.emfforms.core.services.databinding.mapping"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
 </feature>
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 82e465f..f122904 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 d114da7..fbc75d9 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.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 5484611..da0f650 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 f7425e0..ef3ee44 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.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 9e59938..1a1b82a 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 b3dad84..8a80358 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
@@ -65,7 +65,7 @@
 <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,javax.xml@default:default,lpg.runtime.java@default:default,org.apache.ant@default:default,org.apache.batik.css*1.6.0.v201011041432@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.6.0.v201011041432@default:default,org.apache.batik.util*1.7.0.v201011041433@default:default,org.apache.batik.util.gui*1.6.0.v201011041432@default:default,org.apache.batik.util.gui*1.7.0.v200903091627@default:default,org.apache.batik.xml@default:default,org.apache.commons.codec@default:default,org.apache.commons.logging@default:default,org.apache.lucene.analysis@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.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.externaltools@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem.win32.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.win32.x86_64@default:false,org.eclipse.core.net@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.compatibility@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.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.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@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.ecore@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.registry@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.equinox.security.win32.x86_64@default:false,org.eclipse.equinox.security@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.equinox.simpleconfigurator@1:true,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@-1:true,org.eclipse.search@default:default,org.eclipse.swt.win32.win32.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.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.win32@default:false,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.sat4j.core@default:default,org.sat4j.pb@default:default,org.slf4j.api@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.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.ecore.editor.ui@default:default,org.eclipse.emf.ecp.ecore.editor@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@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.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.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.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.editor@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.template.controls.swt@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.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"/>

+<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.ecore.editor.ui@default:default,org.eclipse.emf.ecp.ecore.editor@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@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.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.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.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.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.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@default:default,org.eclipse.emfforms.core.services.databinding.featurepath@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.locale.default@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.plugin@default:default,org.eclipse.emfforms.swt.core@default:default,org.eclipse.emfforms.view.annotation.model.edit@default:default,org.eclipse.emfforms.view.annotation.model@default:default,org.eclipse.emfforms.view.model.localization@default:default"/>

 <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 d966126..26b97f5 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.0.qualifier">
 
    <description>
       %description
@@ -136,4 +136,88 @@
          version="0.0.0"
          unpack="false"/>
 
+   <plugin
+         id="org.eclipse.emfforms.core.services.emfspecificservice"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.emfforms.localization"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.emfforms.core.services.databinding.featurepath"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.emfforms.core.services.editsupport"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.emfforms.view.model.localization"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.emfforms.swt.core"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.emfforms.swt.core.plugin"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.emfforms.core.services"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.emfforms.core.services.emf"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.emfforms.core.services.locale.default"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.emfforms.common"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.emfforms.swt.core.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 2cbb7e6..1561469 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 e1be415..c4e0819 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.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 c9a2a1d..f451c66 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 41a0be3..0aaf482 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.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 01043a2..2763ead 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 41bb78c..262520e 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.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 b1ed5d1..32c2770 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 6bb1d92..8a244f2 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,10 +2,10 @@
 <feature
       id="org.eclipse.emf.ecp.view.table.celleditor.rcp.feature"
       label="EMFForms Table UI SWT Additional Cell Editors (non-RAP)"
-      version="1.5.1.qualifier"
+      version="1.6.0.qualifier"
       plugin="org.eclipse.emf.ecp.view.table.celleditor.rcp"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.5.1.qualifier">
+      license-feature-version="1.6.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 e693748..f269c72 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 cfb357c..ec53c85 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.0.qualifier">
 
    <description>
       %description
@@ -43,13 +43,6 @@
          unpack="false"/>
 
    <plugin
-         id="org.eclipse.emf.ecp.view.table.editor"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
          id="org.eclipse.emf.ecp.view.table.columnservice"
          download-size="0"
          install-size="0"
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 6ddf210..71e43cb 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 0a5a8a5..e767973 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.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 a24212f..38fb023 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.view.template.helper.feature/.project b/features/org.eclipse.emf.ecp.view.template.helper.feature/.project
deleted file mode 100644
index 65f99dc..0000000
--- a/features/org.eclipse.emf.ecp.view.template.helper.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.emf.ecp.view.template.helper.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/features/org.eclipse.emf.ecp.view.template.helper.feature/.settings/org.eclipse.core.resources.prefs b/features/org.eclipse.emf.ecp.view.template.helper.feature/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 4824b80..0000000
--- a/features/org.eclipse.emf.ecp.view.template.helper.feature/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1

-encoding/<project>=UTF-8

diff --git a/features/org.eclipse.emf.ecp.view.template.helper.feature/.settings/org.eclipse.core.runtime.prefs b/features/org.eclipse.emf.ecp.view.template.helper.feature/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index c522e1f..0000000
--- a/features/org.eclipse.emf.ecp.view.template.helper.feature/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1

-line.separator=\n

diff --git a/features/org.eclipse.emf.ecp.view.template.helper.feature/feature.properties b/features/org.eclipse.emf.ecp.view.template.helper.feature/feature.properties
deleted file mode 100644
index a9aefcb..0000000
--- a/features/org.eclipse.emf.ecp.view.template.helper.feature/feature.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-# Copyright (c) 2011-2013 EclipseSource Munich GmbH and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-
-description = Provides the controls for editing the view template model
diff --git a/features/org.eclipse.emf.ecp.view.template.helper.feature/feature.xml b/features/org.eclipse.emf.ecp.view.template.helper.feature/feature.xml
deleted file mode 100644
index 160a9ec..0000000
--- a/features/org.eclipse.emf.ecp.view.template.helper.feature/feature.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.emf.ecp.view.template.helper.feature"
-      label="EMF Forms Template Model Controls"
-      version="1.5.1.qualifier"
-      provider-name="%providerName"
-      plugin="org.eclipse.emf.ecp.view.template.controls.swt"
-      image="eclipse_update_120.jpg"
-      license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.5.1.qualifier">
-
-   <description>
-      %description
-   </description>
-
-   <copyright url="%copyrightURL">
-      %copyright
-   </copyright>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <includes
-         id="org.eclipse.emf.ecp.view.template.feature"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.emf.ecp.view.template.controls.swt"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/features/org.eclipse.emf.ecp.view.template.helper.feature/pom.xml b/features/org.eclipse.emf.ecp.view.template.helper.feature/pom.xml
deleted file mode 100644
index 1165ada..0000000
--- a/features/org.eclipse.emf.ecp.view.template.helper.feature/pom.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?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-features-parent</artifactId>
-    <version>1.5.1-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.helper.feature</artifactId>
-  <version>1.5.1-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 ed95c11..b5c302b 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.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 9be017d..f206778 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 5ddf413..3fe6a32 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.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 3122640..a8c0528 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 1532977..bb91f0f 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="Bean Validation Feature"
-      version="1.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.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 d90d90d..3910331 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 aeba930..7874f4e 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.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 354ec80..6848a0f 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 749f82c..9e1d684 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="Initialize Deep Validation Feature"
-      version="1.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.validation.initial.feature/pom.xml b/features/org.eclipse.emf.ecp.view.validation.initial.feature/pom.xml
index c8566e5..376c619 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 b9ae1ff..5ad588e 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.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 7582d96..f18f47a 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 801fefc..b27b252 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.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 586c59f..57e1df2 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 a8573f3..49ae04b 100644
--- a/features/org.eclipse.emf.ecp.workspace.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.workspace.feature/feature.xml
@@ -12,12 +12,12 @@
 <feature
       id="org.eclipse.emf.ecp.workspace.feature"
       label="ECP File Integration (Experimental)"
-      version="1.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.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 8d96db6..0839198 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emfforms.swt.control.text.autocomplete.feature/.project b/features/org.eclipse.emfforms.swt.control.text.autocomplete.feature/.project
new file mode 100644
index 0000000..576cec4
--- /dev/null
+++ b/features/org.eclipse.emfforms.swt.control.text.autocomplete.feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.swt.control.text.autocomplete.feature</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.pde.FeatureBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.FeatureNature</nature>
+	</natures>
+</projectDescription>
diff --git a/features/org.eclipse.emf.ecp.view.template.helper.feature/build.properties b/features/org.eclipse.emfforms.swt.control.text.autocomplete.feature/build.properties
similarity index 100%
copy from features/org.eclipse.emf.ecp.view.template.helper.feature/build.properties
copy to features/org.eclipse.emfforms.swt.control.text.autocomplete.feature/build.properties
diff --git a/features/org.eclipse.emfforms.swt.control.text.autocomplete.feature/feature.properties b/features/org.eclipse.emfforms.swt.control.text.autocomplete.feature/feature.properties
new file mode 100644
index 0000000..9f7ed83
--- /dev/null
+++ b/features/org.eclipse.emfforms.swt.control.text.autocomplete.feature/feature.properties
@@ -0,0 +1,7 @@
+# Copyright (c) 2011-2014 EclipseSource Munich GmbH and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+
+description = EMFForms SWT Text Control with Autocomplete. This feature contains the renderer for a text control which will give autocomplete proposals during editing. Moreover all required interfaces for using the renderer are defined.
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
new file mode 100644
index 0000000..fb1006c
--- /dev/null
+++ b/features/org.eclipse.emfforms.swt.control.text.autocomplete.feature/feature.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+      id="org.eclipse.emfforms.swt.control.text.autocomplete.feature"
+      label="EMFForms SWT Text Control with Autocomplete Feature"
+      version="1.6.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.6.0.qualifier">
+
+   <description>
+      %description
+   </description>
+
+   <copyright url="%copyrightURL">
+      %copyright
+   </copyright>
+
+   <license url="%licenseURL">
+      %license
+   </license>
+
+   <plugin
+         id="org.eclipse.emfforms.swt.control.text.autocomplete"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+</feature>
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
new file mode 100644
index 0000000..edd6cf4
--- /dev/null
+++ b/features/org.eclipse.emfforms.swt.control.text.autocomplete.feature/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-features-parent</artifactId>
+    <version>1.6.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.6.0-SNAPSHOT</version>
+  <packaging>eclipse-feature</packaging>
+</project>
diff --git a/features/org.eclipse.emfforms.view.annotation.feature/.project b/features/org.eclipse.emfforms.view.annotation.feature/.project
new file mode 100644
index 0000000..4e35a8a
--- /dev/null
+++ b/features/org.eclipse.emfforms.view.annotation.feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.view.annotation.feature</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.pde.FeatureBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.FeatureNature</nature>
+	</natures>
+</projectDescription>
diff --git a/features/org.eclipse.emfforms.view.annotation.feature/.settings/org.eclipse.core.resources.prefs b/features/org.eclipse.emfforms.view.annotation.feature/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/features/org.eclipse.emfforms.view.annotation.feature/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/features/org.eclipse.emfforms.view.annotation.feature/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to features/org.eclipse.emfforms.view.annotation.feature/.settings/org.eclipse.core.runtime.prefs
diff --git a/features/org.eclipse.emf.ecp.view.template.helper.feature/build.properties b/features/org.eclipse.emfforms.view.annotation.feature/build.properties
similarity index 100%
copy from features/org.eclipse.emf.ecp.view.template.helper.feature/build.properties
copy to features/org.eclipse.emfforms.view.annotation.feature/build.properties
diff --git a/features/org.eclipse.emfforms.view.annotation.feature/feature.properties b/features/org.eclipse.emfforms.view.annotation.feature/feature.properties
new file mode 100644
index 0000000..799e223
--- /dev/null
+++ b/features/org.eclipse.emfforms.view.annotation.feature/feature.properties
@@ -0,0 +1,7 @@
+# Copyright (c) 2011-2015 EclipseSource Munich GmbH and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+
+description = This feature contains the EMFForms Annotation attachment view model.
diff --git a/features/org.eclipse.emfforms.view.annotation.feature/feature.xml b/features/org.eclipse.emfforms.view.annotation.feature/feature.xml
new file mode 100644
index 0000000..3e6a572
--- /dev/null
+++ b/features/org.eclipse.emfforms.view.annotation.feature/feature.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+      id="org.eclipse.emfforms.view.annotation.feature"
+      label="EMFForms Annotation View Model Feature"
+      version="1.6.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.6.0.qualifier">
+
+   <description>
+      %description
+   </description>
+
+   <copyright url="%copyrightURL">
+      %copyright
+   </copyright>
+
+   <license url="%licenseURL">
+      %license
+   </license>
+
+   <plugin
+         id="org.eclipse.emfforms.view.annotation.model"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.emfforms.view.annotation.model.edit"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+</feature>
diff --git a/features/org.eclipse.emfforms.view.annotation.feature/pom.xml b/features/org.eclipse.emfforms.view.annotation.feature/pom.xml
new file mode 100644
index 0000000..92cfa71
--- /dev/null
+++ b/features/org.eclipse.emfforms.view.annotation.feature/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-features-parent</artifactId>
+    <version>1.6.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.6.0-SNAPSHOT</version>
+  <packaging>eclipse-feature</packaging>
+</project>
diff --git a/features/spreadsheet/org.eclipse.emfforms.spreadsheet.feature/.project b/features/spreadsheet/org.eclipse.emfforms.spreadsheet.feature/.project
new file mode 100644
index 0000000..9885708
--- /dev/null
+++ b/features/spreadsheet/org.eclipse.emfforms.spreadsheet.feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.spreadsheet.feature</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.pde.FeatureBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.FeatureNature</nature>
+	</natures>
+</projectDescription>
diff --git a/features/org.eclipse.emf.ecp.view.template.helper.feature/build.properties b/features/spreadsheet/org.eclipse.emfforms.spreadsheet.feature/build.properties
similarity index 100%
copy from features/org.eclipse.emf.ecp.view.template.helper.feature/build.properties
copy to features/spreadsheet/org.eclipse.emfforms.spreadsheet.feature/build.properties
diff --git a/features/spreadsheet/org.eclipse.emfforms.spreadsheet.feature/feature.properties b/features/spreadsheet/org.eclipse.emfforms.spreadsheet.feature/feature.properties
new file mode 100644
index 0000000..25ea97b
--- /dev/null
+++ b/features/spreadsheet/org.eclipse.emfforms.spreadsheet.feature/feature.properties
@@ -0,0 +1,7 @@
+# Copyright (c) 2011-2015 EclipseSource Munich GmbH and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+
+description = This Feature provides the spreadsheet import export functionality.
diff --git a/features/spreadsheet/org.eclipse.emfforms.spreadsheet.feature/feature.xml b/features/spreadsheet/org.eclipse.emfforms.spreadsheet.feature/feature.xml
new file mode 100644
index 0000000..2d1d463
--- /dev/null
+++ b/features/spreadsheet/org.eclipse.emfforms.spreadsheet.feature/feature.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+      id="org.eclipse.emfforms.spreadsheet.feature"
+      label="EMFForms Spreadsheet Feature"
+      version="1.0.0.qualifier"
+      plugin="org.eclipse.emfforms.spreadsheet.core"
+      image="eclipse_update_120.jpg"
+      license-feature="org.eclipse.emf.ecp.license.feature"
+      license-feature-version="1.6.0.qualifier">
+
+   <description>
+      %description
+   </description>
+
+   <copyright url="%copyrightURL">
+      %copyright
+   </copyright>
+
+   <license url="%licenseURL">
+      %license
+   </license>
+
+   <plugin
+         id="org.eclipse.emfforms.spreadsheet.core"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.emfforms.spreadsheet.core.importer"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.emfforms.spreadsheet.core.renderer"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.emfforms.spreadsheet.core.renderer.categorization"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.emfforms.spreadsheet.core.renderer.custom"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.emfforms.spreadsheet.core.renderer.table"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+</feature>
diff --git a/features/spreadsheet/org.eclipse.emfforms.spreadsheet.feature/pom.xml b/features/spreadsheet/org.eclipse.emfforms.spreadsheet.feature/pom.xml
new file mode 100644
index 0000000..e7b2d0c
--- /dev/null
+++ b/features/spreadsheet/org.eclipse.emfforms.spreadsheet.feature/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.emfforms.spreadsheet</groupId>
+    <artifactId>emfforms-spreadsheet-features-parent</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+    <relativePath>../../../releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.features/</relativePath>
+  </parent>
+  <groupId>org.eclipse.emfforms.spreadsheet</groupId>
+  <artifactId>org.eclipse.emfforms.spreadsheet.feature</artifactId>
+  <version>1.0.0-SNAPSHOT</version>
+  <packaging>eclipse-feature</packaging>
+</project>
diff --git a/releng/javafx/org.eclipse.emf.ecp.application.e4.fx.product/org.eclipse.emf.ecp.application.e4.fx.product b/releng/javafx/org.eclipse.emf.ecp.application.e4.fx.product/org.eclipse.emf.ecp.application.e4.fx.product
index 28108c3..358eb34 100644
--- a/releng/javafx/org.eclipse.emf.ecp.application.e4.fx.product/org.eclipse.emf.ecp.application.e4.fx.product
+++ b/releng/javafx/org.eclipse.emf.ecp.application.e4.fx.product/org.eclipse.emf.ecp.application.e4.fx.product
@@ -17,8 +17,8 @@
    </plugins>
 
    <features>
-      <feature id="org.eclipse.emf.ecp.application.e4.fx.feature" version="1.5.0.qualifier"/>
-      <feature id="org.eclipse.emf.ecp.view.sdk.fx.feature" version="1.5.0.qualifier"/>
+      <feature id="org.eclipse.emf.ecp.application.e4.fx.feature" version="1.6.0.qualifier"/>
+      <feature id="org.eclipse.emf.ecp.view.sdk.fx.feature" version="1.6.0.qualifier"/>
    </features>
 
    <configurations>
diff --git a/releng/javafx/org.eclipse.emf.ecp.application.e4.fx.product/pom.xml b/releng/javafx/org.eclipse.emf.ecp.application.e4.fx.product/pom.xml
index 121742e..5b600e3 100644
--- a/releng/javafx/org.eclipse.emf.ecp.application.e4.fx.product/pom.xml
+++ b/releng/javafx/org.eclipse.emf.ecp.application.e4.fx.product/pom.xml
@@ -11,7 +11,7 @@
 		<groupId>org.eclipse.emf.ecp.fx</groupId>

 		<artifactId>ecp-fx-parent</artifactId>

 		<relativePath>../org.eclipse.emf.ecp.fx.releng/pom.xml</relativePath>

-		<version>1.5.1-SNAPSHOT</version>

+		<version>1.6.0-SNAPSHOT</version>

 	</parent>

 	

 	<build>

@@ -37,5 +37,5 @@
     	</plugin>

 	</plugins>

 	</build>

-	<version>1.5.1-SNAPSHOT</version>

+	<version>1.6.0-SNAPSHOT</version>

 </project>
\ No newline at end of file
diff --git a/releng/javafx/org.eclipse.emf.ecp.fx.releng.bundles/pom.xml b/releng/javafx/org.eclipse.emf.ecp.fx.releng.bundles/pom.xml
index 3825c7d..8f7f615 100644
--- a/releng/javafx/org.eclipse.emf.ecp.fx.releng.bundles/pom.xml
+++ b/releng/javafx/org.eclipse.emf.ecp.fx.releng.bundles/pom.xml
@@ -4,13 +4,13 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>org.eclipse.emf.ecp.fx</groupId>
 	<artifactId>ecp-fx-bundles-parent</artifactId>
-	<version>1.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>pom</packaging>
 
 	<parent>
 		<groupId>org.eclipse.emf.ecp.fx</groupId>
 		<artifactId>ecp-fx-parent</artifactId>
-		<version>1.5.1-SNAPSHOT</version>
+		<version>1.6.0-SNAPSHOT</version>
 		<relativePath>../org.eclipse.emf.ecp.fx.releng/</relativePath>
 	</parent>
 	
@@ -78,6 +78,9 @@
 								</goals>
 							</execution>
 						</executions>
+						<configuration>
+							<excludeInnerJars>true</excludeInnerJars>
+						</configuration>
 					</plugin>
 					<!-- 3.b -->
 					<plugin>
diff --git a/releng/javafx/org.eclipse.emf.ecp.fx.releng/pom.xml b/releng/javafx/org.eclipse.emf.ecp.fx.releng/pom.xml
index 6c03242..30b1f67 100644
--- a/releng/javafx/org.eclipse.emf.ecp.fx.releng/pom.xml
+++ b/releng/javafx/org.eclipse.emf.ecp.fx.releng/pom.xml
@@ -11,7 +11,7 @@
 

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

 	<artifactId>ecp-fx-parent</artifactId>

-	<version>1.5.1-SNAPSHOT</version>

+	<version>1.6.0-SNAPSHOT</version>

 	<packaging>pom</packaging>

 	<properties>

 		<tycho-version>0.21.0</tycho-version>

diff --git a/releng/javafx/org.eclipse.emf.ecp.repository.fx/category.xml b/releng/javafx/org.eclipse.emf.ecp.repository.fx/category.xml
index 3206b35..0b28339 100644
--- a/releng/javafx/org.eclipse.emf.ecp.repository.fx/category.xml
+++ b/releng/javafx/org.eclipse.emf.ecp.repository.fx/category.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>

 <site>

-   <feature url="features/org.eclipse.emf.ecp.demo.e4.fx.feature_1.5.1.qualifier.jar" id="org.eclipse.emf.ecp.demo.e4.fx.feature" version="1.5.1.qualifier">

+   <feature url="features/org.eclipse.emf.ecp.demo.e4.fx.feature_1.6.0.qualifier.jar" id="org.eclipse.emf.ecp.demo.e4.fx.feature" version="1.6.0.qualifier">

       <category name="org.eclipse.emf.ecp.demo.fx"/>

    </feature>

-   <feature url="features/org.eclipse.emf.ecp.view.sdk.fx.feature_1.5.1.qualifier.jar" id="org.eclipse.emf.ecp.view.sdk.fx.feature" version="1.5.1.qualifier">

+   <feature url="features/org.eclipse.emf.ecp.view.sdk.fx.feature_1.6.0.qualifier.jar" id="org.eclipse.emf.ecp.view.sdk.fx.feature" version="1.6.0.qualifier">

       <category name="org.eclipse.emf.ecp.fx"/>

    </feature>

    <category-def name="org.eclipse.emf.ecp.fx" label="ECP FX components"/>

diff --git a/releng/javafx/org.eclipse.emf.ecp.repository.fx/pom.xml b/releng/javafx/org.eclipse.emf.ecp.repository.fx/pom.xml
index 2875e82..9f2d576 100644
--- a/releng/javafx/org.eclipse.emf.ecp.repository.fx/pom.xml
+++ b/releng/javafx/org.eclipse.emf.ecp.repository.fx/pom.xml
@@ -7,11 +7,11 @@
 		<groupId>org.eclipse.emf.ecp.fx</groupId>
 		<artifactId>ecp-fx-parent</artifactId>
 		<relativePath>../../../releng/javafx/org.eclipse.emf.ecp.fx.releng/pom.xml</relativePath>
-		<version>1.5.1-SNAPSHOT</version>
+		<version>1.6.0-SNAPSHOT</version>
 	</parent>
 	<groupId>org.eclipse.emf.ecp.fx</groupId>
 	<artifactId>org.eclipse.emf.ecp.repository.fx</artifactId>
-	<version>1.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-repository</packaging>
 
 	<build>
diff --git a/releng/javafx/org.eclipse.emf.ecp.target.fx/pom.xml b/releng/javafx/org.eclipse.emf.ecp.target.fx/pom.xml
index f5e9989..b179896 100644
--- a/releng/javafx/org.eclipse.emf.ecp.target.fx/pom.xml
+++ b/releng/javafx/org.eclipse.emf.ecp.target.fx/pom.xml
@@ -6,11 +6,11 @@
 		<groupId>org.eclipse.emf.ecp.fx</groupId>
 		<artifactId>ecp-fx-parent</artifactId>
 		<relativePath>../../../releng/javafx/org.eclipse.emf.ecp.fx.releng/pom.xml</relativePath>
-		<version>1.5.1-SNAPSHOT</version>
+		<version>1.6.0-SNAPSHOT</version>
 	</parent>
 	<groupId>org.eclipse.emf.ecp.fx</groupId>
 	<artifactId>ecpfx</artifactId>
-	<version>1.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-target-definition</packaging>
 
 </project>
\ No newline at end of file
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 a465c7c..58ed261 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.5.1.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.6.0.qualifier" useFeatures="true" includeLaunchers="true">
 
    <aboutInfo>
       <image path="/org.eclipse.emf.ecp.application.e3/icons/eclipse_lg.gif"/>
@@ -14,7 +14,8 @@
    </configIni>
 
    <launcherArgs>
-      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
+      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
+      </vmArgsMac>
    </launcherArgs>
 
    <windowImages i16="/org.eclipse.emf.ecp.ui.e3/icons/bricks.png"/>
@@ -53,7 +54,6 @@
       <feature id="org.eclipse.emf.ecp.view.vertical.feature"/>
       <feature id="org.eclipse.emf.ecp.view.template.feature"/>
       <feature id="org.eclipse.emf.ecp.view.categorization.feature"/>
-      <feature id="org.eclipse.emf.ecp.view.template.helper.feature"/>
       <feature id="org.eclipse.emf.ecp.view.model.editor.feature"/>
       <feature id="org.eclipse.emf.ecp.demo.e3.feature"/>
       <feature id="org.eclipse.emf.ecp.view.model.controls.feature"/>
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 57410de..66b2d47 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.5.1.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.6.0.qualifier" useFeatures="false" includeLaunchers="true">
 
    <configIni use="default">
    </configIni>
@@ -53,7 +53,6 @@
       <plugin id="org.eclipse.core.resources.win32.x86" fragment="true"/>
       <plugin id="org.eclipse.core.resources.win32.x86_64" fragment="true"/>
       <plugin id="org.eclipse.core.runtime"/>
-      <plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/>
       <plugin id="org.eclipse.e4.core.commands"/>
       <plugin id="org.eclipse.e4.core.contexts"/>
       <plugin id="org.eclipse.e4.core.di"/>
diff --git a/releng/org.eclipse.emf.ecp.products/pom.xml b/releng/org.eclipse.emf.ecp.products/pom.xml
index 9635599..eea6873 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 b45acf0..65322ec 100644
--- a/releng/org.eclipse.emf.ecp.rap.parent/pom.xml
+++ b/releng/org.eclipse.emf.ecp.rap.parent/pom.xml
@@ -5,15 +5,15 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>ecp-rap-parent</artifactId>
-	<version>1.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>pom</packaging>
 	
 	<!-- Parent for the rap product. Needed to reduce environments.
 	There are no platform dependent fragments, so the platform is arbitrary -->
 	
 	<properties>
-		<tycho-version>0.20.0</tycho-version>
-		<tycho-extras-version>0.20.0</tycho-extras-version>
+		<tycho-version>0.22.0</tycho-version>
+		<tycho-extras-version>0.22.0</tycho-extras-version>
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 	</properties>
 	
diff --git a/releng/org.eclipse.emf.ecp.rap.products/org.eclipse.emf.ecp.rap.product b/releng/org.eclipse.emf.ecp.rap.products/org.eclipse.emf.ecp.rap.product
index 9b178af..0f5fd29 100644
--- a/releng/org.eclipse.emf.ecp.rap.products/org.eclipse.emf.ecp.rap.product
+++ b/releng/org.eclipse.emf.ecp.rap.products/org.eclipse.emf.ecp.rap.product
@@ -80,7 +80,7 @@
       <plugin id="org.eclipse.emf.ecp.test.model.edit"/>
       <plugin id="org.eclipse.emf.ecp.ui"/>
       <plugin id="org.eclipse.emf.ecp.ui.e3"/>
-      <plugin id="org.eclipse.emf.ecp.ui.rap" fragment="true"/>
+      <plugin id="org.eclipse.emf.ecp.ui.rap"/>
       <plugin id="org.eclipse.emf.ecp.ui.view"/>
       <plugin id="org.eclipse.emf.ecp.ui.view.swt"/>
       <plugin id="org.eclipse.emf.ecp.view.categorization.model"/>
@@ -147,8 +147,7 @@
       <plugin id="org.eclipse.osgi"/>
       <plugin id="org.eclipse.osgi.compatibility.state" fragment="true"/>
       <plugin id="org.eclipse.osgi.services"/>
-      <plugin id="org.eclipse.rap.addons.filedialog"/>
-      <plugin id="org.eclipse.rap.addons.fileupload"/>
+      <plugin id="org.eclipse.rap.filedialog"/>
       <plugin id="org.eclipse.rap.jface"/>
       <plugin id="org.eclipse.rap.jface.databinding"/>
       <plugin id="org.eclipse.rap.rwt"/>
diff --git a/releng/org.eclipse.emf.ecp.rap.products/pom.xml b/releng/org.eclipse.emf.ecp.rap.products/pom.xml
index d99c72e..a965ef1 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.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 23d275e..fccb970 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>pom</packaging>
 
 	<modules>
@@ -30,6 +30,10 @@
 		<module>../../bundles/org.eclipse.emf.ecp.explorereditorbridge</module>
 		<module>../../bundles/org.eclipse.emf.ecp.ui</module>
 		<module>../../bundles/org.eclipse.emf.ecp.ui.rcp</module>
+		
+		<module>../../bundles/org.eclipse.emf.ecp.core.rap</module>
+		<module>../../bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt</module>
+		<module>../../bundles/org.eclipse.emf.ecp.emfstore.core.rap</module>
 
 		<module>../../bundles/org.eclipse.emf.ecp.cdo.core</module>
 		<module>../../bundles/org.eclipse.emf.ecp.cdo.ui</module>
@@ -154,7 +158,6 @@
 		<module>../../bundles/org.eclipse.emf.ecp.view.table.model</module>
 		<module>../../bundles/org.eclipse.emf.ecp.view.table.model.edit</module>
 		<module>../../bundles/org.eclipse.emf.ecp.view.table.ui.swt</module>
-		<module>../../bundles/org.eclipse.emf.ecp.view.table.editor</module>
 		<module>../../bundles/org.eclipse.emf.ecp.view.table.columnservice</module>
 		<module>../../bundles/org.eclipse.emf.ecp.view.table.edapt</module>
 		<module>../../bundles/org.eclipse.emf.ecp.view.table.celleditor.rcp</module>
@@ -170,7 +173,6 @@
 		<module>../../bundles/org.eclipse.emf.ecp.view.template.model.edit</module>
 		<!-- Template Helper Feature -->
 		<module>../../bundles/org.eclipse.emf.ecp.view.template.service</module>
-		<module>../../bundles/org.eclipse.emf.ecp.view.template.controls.swt</module>
 
 		<!-- IDE -->
 		<module>../../bundles/org.eclipse.emf.ecp.ide.editor.view</module>
@@ -204,7 +206,6 @@
 
 		<!-- mapping dmr -->
 		<module>../../bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling</module>
-		<module>../../bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding</module>
 		<module>../../bundles/org.eclipse.emf.ecp.view.mappingdmr.model</module>
 		<module>../../bundles/org.eclipse.emf.ecp.view.mappingdmr.model.edit</module>
 		
@@ -238,7 +239,6 @@
 		<module>../../bundles/org.eclipse.emf.ecp.view.indexdmr.model</module>
 		<module>../../bundles/org.eclipse.emf.ecp.view.indexdmr.model.edit</module>
 		<module>../../bundles/org.eclipse.emf.ecp.view.indexdmr.tooling</module>
-		<module>../../bundles/org.eclipse.emf.ecp.view.indexdmr.databinding</module>
 		
 		<!-- Migration -->
 		<module>../../bundles/org.eclipse.emf.ecp.view.migrator</module>
@@ -252,7 +252,30 @@
 		<module>../../bundles/org.eclipse.emf.ecp.changebroker</module>
 		<module>../../bundles/org.eclipse.emf.ecp.changebroker.emfstore</module>
 		
+		<!-- Core Services -->
+		<module>../../bundles/org.eclipse.emfforms.common</module>
+		<module>../../bundles/org.eclipse.emfforms.core.services.databinding.featurepath</module>
+		<module>../../bundles/org.eclipse.emfforms.core.services.databinding.index</module>
+		<module>../../bundles/org.eclipse.emfforms.core.services.databinding.mapping</module>
+		<module>../../bundles/org.eclipse.emfforms.core.services.emfspecificservice</module>
+		<module>../../bundles/org.eclipse.emfforms.core.services.editsupport</module>
+		<module>../../bundles/org.eclipse.emfforms.swt.core</module>
+		<module>../../bundles/org.eclipse.emfforms.swt.core.di</module>
+		<module>../../bundles/org.eclipse.emfforms.swt.core.di.extension</module>
+		<module>../../bundles/org.eclipse.emfforms.swt.core.plugin</module>
+		<module>../../bundles/org.eclipse.emfforms.core.services</module>
+		<module>../../bundles/org.eclipse.emfforms.core.services.emf</module>
+		<module>../../bundles/org.eclipse.emfforms.core.services.locale.default</module>
 		
+		<!-- Localization Services -->
+		<module>../../bundles/org.eclipse.emfforms.localization</module>
+		<module>../../bundles/org.eclipse.emfforms.view.model.localization</module>
+		
+		<module>../../bundles/org.eclipse.emfforms.swt.control.text.autocomplete</module>
+		
+		<!-- Annotation attachement -->
+		<module>../../bundles/org.eclipse.emfforms.view.annotation.model</module>
+		<module>../../bundles/org.eclipse.emfforms.view.annotation.model.edit</module>
 	</modules>
 
 	<build>
@@ -304,6 +327,9 @@
 								</goals>
 							</execution>
 						</executions>
+						<configuration>
+							<excludeInnerJars>true</excludeInnerJars>
+						</configuration>
 					</plugin>
 					<!-- 3.b -->
 					<plugin>
diff --git a/releng/org.eclipse.emf.ecp.releng.examples/pom.xml b/releng/org.eclipse.emf.ecp.releng.examples/pom.xml
index 032a694..b7df5cf 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>pom</packaging>
 
 	<modules>
@@ -114,6 +114,9 @@
 								</goals>
 							</execution>
 						</executions>
+						<configuration>
+							<excludeInnerJars>true</excludeInnerJars>
+						</configuration>
 					</plugin>
 					<!-- 3.b -->
 					<plugin>
diff --git a/releng/org.eclipse.emf.ecp.releng.features/pom.xml b/releng/org.eclipse.emf.ecp.releng.features/pom.xml
index 2d5643a..1e398ed 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>pom</packaging>
 
 	<modules>
@@ -44,7 +44,6 @@
 		<module>../../features/org.eclipse.emf.ecp.view.table.feature</module>
 		<module>../../features/org.eclipse.emf.ecp.view.template.feature</module>
 		<module>../../features/org.eclipse.emf.ecp.view.mappingdmr.feature</module>
-		<module>../../features/org.eclipse.emf.ecp.view.template.helper.feature</module>
 		<module>../../features/org.eclipse.emf.ecp.view.stack.feature</module>
 		<module>../../features/org.eclipse.emf.ecp.e4.feature</module>
 		<module>../../features/org.eclipse.emf.ecp.rap.util.feature</module>
@@ -81,6 +80,12 @@
 		<module>../../features/org.eclipse.emf.ecp.changebroker.feature</module>
 		
 		<module>../../features/org.eclipse.emf.ecp.view.table.celleditor.rcp.feature</module>
+		
+		<module>../../features/org.eclipse.emfforms.swt.control.text.autocomplete.feature</module>
+		
+		<module>../../features/org.eclipse.emfforms.view.annotation.feature</module>
+		
+		<module>../../features/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup.feature</module>
 	</modules>
 
 	<!-- Parent used for features. This POM contains all build steps for code signing. -->
@@ -148,6 +153,9 @@
 								</goals>
 							</execution>
 						</executions>
+						<configuration>
+							<excludeInnerJars>true</excludeInnerJars>
+						</configuration>
 					</plugin>
 					<plugin>
 						<groupId>org.eclipse.tycho</groupId>
diff --git a/releng/org.eclipse.emf.ecp.releng.tests/pom.xml b/releng/org.eclipse.emf.ecp.releng.tests/pom.xml
index 054f477..4d43004 100644
--- a/releng/org.eclipse.emf.ecp.releng.tests/pom.xml
+++ b/releng/org.eclipse.emf.ecp.releng.tests/pom.xml
@@ -5,17 +5,61 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>ecp-tests-parent</artifactId>
-	<version>1.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>pom</packaging>
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-parent</artifactId>
-		<version>1.5.1-SNAPSHOT</version>
+		<version>1.6.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng/</relativePath>
 	</parent>
-
+	<profiles>
+		<profile>
+			<id>slowTests</id>
+			<activation>
+				<property>
+					<name>slowTests</name>
+				</property>
+			</activation>
+			<modules>
+				<module>../../tests/org.eclipse.emf.ecp.view.ui.editor.test</module>
+				<module>../../tests/org.eclipse.emf.ecp.view.validation.test</module>
+				<module>../../tests/org.eclipse.emf.ecp.view.rule.test</module>
+				<module>../../tests/org.eclipse.emf.ecp.view.rule.ui.swt.test</module> <!-- must be moved because of dependency to rule.test -->
+				<module>../../tests/org.eclipse.emf.ecp.view.unset.test</module><!-- must be moved because of dependency to rule.test -->
+				<module>../../tests/org.eclipse.emf.ecp.validation.test</module>
+				<module>../../tests/org.eclipse.emf.ecp.core.test</module>
+			</modules>
+		</profile>
+		
+		<profile>
+			<id>build-server</id>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.eclipse.cbi.maven.plugins</groupId>
+						<artifactId>eclipse-jarsigner-plugin</artifactId>
+						<version>${jarsigner-version}</version>
+						<executions>
+							<execution>
+								<id>sign</id>
+								<phase>package</phase>
+								<goals>
+									<goal>sign</goal>
+								</goals>
+							</execution>
+						</executions>
+						<configuration>
+							<excludeInnerJars>true</excludeInnerJars>
+						</configuration>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+	</profiles>
 	<modules>
 		<!-- Bundles/Features -->
+		<module>../../bundles/org.eclipse.emf.ecp.test.common</module>
 		<module>../../tests/org.eclipse.emf.ecp.view.dynamictree.model</module>
         <module>../../tests/org.eclipse.emf.ecp.view.dynamictree.model.edit</module>
         <module>../../tests/org.eclipse.emf.ecp.view.dynamictree.ui</module>
@@ -26,33 +70,36 @@
 		<module>../../tests/org.eclipse.emf.ecp.test.model</module>
 		<module>../../tests/org.eclipse.emf.ecp.test.model.edit</module>
 		<module>../../tests/org.eclipse.emf.ecp.test.model.feature</module>
+		<module>../../tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test</module>
 
 		<!-- Tests -->
 		<module>../../tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test</module>
 		<module>../../tests/org.eclipse.emf.ecp.edit.swt.test</module>
 		<module>../../tests/org.eclipse.emf.ecp.view.test.common</module>
 		<module>../../tests/org.eclipse.emf.ecp.view.test.common.swt</module>
-		<module>../../tests/org.eclipse.emf.ecp.core.test</module>
+		
 		<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.emf.ecp.validation.test</module>
+		
 		<module>../../tests/org.eclipse.emf.ecp.view.categorization.swt.test</module>
+		<!-- 
 		<module>../../tests/org.eclipse.emf.ecp.view.context.test</module>
+		-->
 		<module>../../tests/org.eclipse.emf.ecp.view.custom.ui.swt.test</module>
 		<module>../../tests/org.eclipse.emf.ecp.view.group.ui.swt.test</module>
 		<module>../../tests/org.eclipse.emf.ecp.view.horizontal.ui.swt.test</module>
 		<module>../../tests/org.eclipse.emf.ecp.view.model.edit.test</module>
 		<module>../../tests/org.eclipse.emf.ecp.view.model.integrationtest</module>
 		<module>../../tests/org.eclipse.emf.ecp.view.model.provider.xmi.test</module>
-		<module>../../tests/org.eclipse.emf.ecp.view.rule.test</module>
-		<module>../../tests/org.eclipse.emf.ecp.view.rule.ui.swt.test</module>
-		<module>../../tests/org.eclipse.emf.ecp.view.unset.test</module>
+		
+		
+		
 		<module>../../tests/org.eclipse.emf.ecp.view.table.ui.swt.test</module>
-		<module>../../tests/org.eclipse.emf.ecp.view.validation.test</module>
+		
 		<module>../../tests/org.eclipse.emf.ecp.view.validation.bean.test</module>
 		<module>../../tests/org.eclipse.emf.ecp.view.vertical.ui.swt.test</module>
-		<module>../../tests/org.eclipse.emf.ecp.view.ui.editor.test</module>
+		
 		<module>../../tests/org.eclipse.emf.ecp.view.dynamictree.model.test</module>
 		<module>../../tests/org.eclipse.emf.ecp.view.stack.ui.swt.test</module>
 		<module>../../tests/org.eclipse.emf.ecp.ecore.editor.test</module>
@@ -66,6 +113,11 @@
 		<module>../../tests/org.eclipse.emf.ecp.view.core.swt.tests</module>	
 		<module>../../tests/org.eclipse.emf.ecp.view.viewproxy.test</module>
 		<module>../../tests/org.eclipse.emf.ecp.view.treemasterdetail.validation.test</module>
+		<module>../../tests/org.eclipse.emf.ecp.view.model.common.test</module>
+		<module>../../tests/org.eclipse.emf.ecp.common.test</module>
+		<module>../../tests/org.eclipse.emf.ecp.view.control.multireference.tests</module>
+
+		<module>../../tests/org.eclipse.emf.ecp.core.rap.test</module>
 		
 		<!-- Key Attribute DMR -->
 		<module>../../tests/org.eclipse.emf.ecp.view.keyattributedmr.model.test</module>	
@@ -80,6 +132,23 @@
 		<module>../../tests/org.eclipse.emf.ecp.view.edapt.test</module>
 		<module>../../tests/org.eclipse.emf.ecp.view.edapt.util.test</module>
 		
+		<!-- Core Services -->
+		<module>../../tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests</module>
+		<module>../../tests/org.eclipse.emfforms.core.services.databinding.index.tests</module>
+		<module>../../tests/org.eclipse.emfforms.core.services.databinding.mapping.tests</module>
+		<module>../../tests/org.eclipse.emfforms.core.services.databinding.integrationtest</module>
+		<module>../../tests/org.eclipse.emfforms.core.services.databinding.testmodel</module>
+		<module>../../tests/org.eclipse.emfforms.swt.core.tests</module>
+		<module>../../tests/org.eclipse.emfforms.swt.core.di.tests</module>
+		<module>../../tests/org.eclipse.emfforms.swt.core.di.extension.tests</module>
+		<module>../../tests/org.eclipse.emfforms.common.tests</module>
+		<module>../../tests/org.eclipse.emfforms.core.services.emf.tests</module>
+		
+		<!-- Localization Bundle -->
+		<module>../../tests/org.eclipse.emfforms.localization.tests</module>
+		<module>../../tests/org.eclipse.emfforms.view.model.localization.tests</module>
+		
+		<module>../../tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests</module>
 	</modules>
 	
 	<build>
@@ -151,29 +220,5 @@
 			<scope>test</scope>
 		</dependency>
 	</dependencies>
-	
-	<profiles>
-		<profile>
-			<id>build-server</id>
-			<build>
-				<plugins>
-					<plugin>
-						<groupId>org.eclipse.cbi.maven.plugins</groupId>
-						<artifactId>eclipse-jarsigner-plugin</artifactId>
-						<version>${jarsigner-version}</version>
-						<executions>
-							<execution>
-								<id>sign</id>
-								<phase>package</phase>
-								<goals>
-									<goal>sign</goal>
-								</goals>
-							</execution>
-						</executions>
-					</plugin>
-				</plugins>
-			</build>
-		</profile>
-	</profiles>
 			
-</project>
\ No newline at end of file
+</project>
diff --git a/releng/org.eclipse.emf.ecp.releng/ecpDevelopmentDemo.launch b/releng/org.eclipse.emf.ecp.releng/ecpDevelopmentDemo.launch
index 5f4eed0..736fcab 100644
--- a/releng/org.eclipse.emf.ecp.releng/ecpDevelopmentDemo.launch
+++ b/releng/org.eclipse.emf.ecp.releng/ecpDevelopmentDemo.launch
@@ -37,10 +37,10 @@
 <booleanAttribute key="org.eclipse.rap.launch.useSessionTimeout" value="false"/>

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

 <booleanAttribute key="show_selected_only" value="false"/>

-<stringAttribute key="target_bundles" value="com.ibm.icu.base@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.apache.commons.codec@default:default,org.apache.commons.fileupload@default:default,org.apache.commons.io@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.gogo.shell@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.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.emf.cdo.ecore.retrofit@default:false,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.model.edit@default:default,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@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.rap.common.ui@default:default,org.eclipse.emf.rap.edit.ui@default:default,org.eclipse.emf.rap@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.servlet@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.jetty.continuation@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.net4j.util@default:default,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.rap.addons.filedialog@default:default,org.eclipse.rap.addons.fileupload@default:default,org.eclipse.rap.jface.databinding@default:default,org.eclipse.rap.jface@default:default,org.eclipse.rap.rwt.osgi@default:default,org.eclipse.rap.rwt@default:default,org.eclipse.rap.ui.forms@default:default,org.eclipse.rap.ui.views@default:default,org.eclipse.rap.ui.workbench@default:default,org.eclipse.rap.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="target_bundles" value="com.ibm.icu.base@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.apache.commons.codec@default:default,org.apache.commons.fileupload@default:default,org.apache.commons.io@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.gogo.shell@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.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.emf.cdo.ecore.retrofit@default:false,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.model.edit@default:default,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.rap.common.ui@default:default,org.eclipse.emf.rap.edit.ui@default:default,org.eclipse.emf.rap@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.servlet@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.jetty.continuation@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.net4j.util@default:default,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.rap.addons.filedialog@default:default,org.eclipse.rap.addons.fileupload@default:default,org.eclipse.rap.jface.databinding@default:default,org.eclipse.rap.jface@default:default,org.eclipse.rap.rwt.osgi@default:default,org.eclipse.rap.rwt@default:default,org.eclipse.rap.ui.forms@default:default,org.eclipse.rap.ui.views@default:default,org.eclipse.rap.ui.workbench@default:default,org.eclipse.rap.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="timestamp" value="1367832274568"/>

 <booleanAttribute key="tracing" value="false"/>

 <booleanAttribute key="useCustomFeatures" value="false"/>

 <booleanAttribute key="useDefaultConfigArea" value="true"/>

-<stringAttribute key="workspace_bundles" value="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.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.localserver@default:default,org.eclipse.emf.ecp.emfstore.ui.e3@default:default,org.eclipse.emf.ecp.emfstore.ui.search@default:default,org.eclipse.emf.ecp.emfstore.ui@default:default,org.eclipse.emf.ecp.explorereditorbridge@default:default,org.eclipse.emf.ecp.rap.util@default:default,org.eclipse.emf.ecp.rap@default:default,org.eclipse.emf.ecp.ui.e3@default:default,org.eclipse.emf.ecp.ui.rap@default:false,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.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.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.label.model@default:default,org.eclipse.emf.ecp.view.label.rap@default:default,org.eclipse.emf.ecp.view.label.ui.swt@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.swt.layout@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.template.model@default:default,org.eclipse.emf.ecp.view.template.service@default:default,org.eclipse.emf.ecp.view.util.swt.rap@default:default,org.eclipse.emf.ecp.view.util.swt@default:default,org.eclipse.emf.ecp.view.vertical.model@default:default,org.eclipse.emf.ecp.view.vertical.ui.swt@default:default"/>

+<stringAttribute key="workspace_bundles" value="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.rap.sessionprovider.rwt@default:default,org.eclipse.emf.ecp.core.rap@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.rap@default:default,org.eclipse.emf.ecp.emfstore.core@default:default,org.eclipse.emf.ecp.emfstore.localserver@default:default,org.eclipse.emf.ecp.emfstore.ui.e3@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.rap.util@default:default,org.eclipse.emf.ecp.rap@default:default,org.eclipse.emf.ecp.ui.e3@default:default,org.eclipse.emf.ecp.ui.rap@default:false,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.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.label.model@default:default,org.eclipse.emf.ecp.view.label.rap@default:default,org.eclipse.emf.ecp.view.label.ui.swt@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.swt.layout@default:default,org.eclipse.emf.ecp.view.table.columnservice@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.model@default:default,org.eclipse.emf.ecp.view.template.service@default:default,org.eclipse.emf.ecp.view.util.swt.rap@default:default,org.eclipse.emf.ecp.view.util.swt@default:default,org.eclipse.emf.ecp.view.vertical.model@default:default,org.eclipse.emf.ecp.view.vertical.ui.swt@default:default,org.eclipse.emf.emfforms.core.services.emfspecificservice@default:default,org.eclipse.emf.emfforms.core.services.labelprovider@default:default,org.eclipse.emf.emfforms.localization@default:default,org.eclipse.emf.rap.edit.ui.minimal@default:default,org.eclipse.emfforms.core.services.databinding.featurepath@default:default,org.eclipse.emfforms.core.services.databinding@default:default,org.eclipse.emfforms.core.services.editsupport@default:default,org.eclipse.emfforms.swt.core.plugin@default:default,org.eclipse.emfforms.swt.core@default:default"/>

 </launchConfiguration>

diff --git a/releng/org.eclipse.emf.ecp.releng/ecpwebemfstore.launch b/releng/org.eclipse.emf.ecp.releng/ecpwebemfstore.launch
new file mode 100644
index 0000000..ee828ed
--- /dev/null
+++ b/releng/org.eclipse.emf.ecp.releng/ecpwebemfstore.launch
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

+<launchConfiguration type="org.eclipse.rap.ui.launch.RAPLauncher">

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

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

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

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

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

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

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

+<booleanAttribute key="clearws" value="false"/>

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

+<booleanAttribute key="default" value="true"/>

+<booleanAttribute key="default_auto_start" value="true"/>

+<intAttribute key="default_start_level" value="4"/>

+<booleanAttribute key="includeOptional" value="false"/>

+<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" 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.6"/>

+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -console -consolelog"/>

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

+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.ignoreApp=true -Dosgi.noShutdown=true -Dorg.eclipse.equinox.http.jetty.log.stderr.threshold=info"/>

+<stringAttribute key="org.eclipse.rap.launch.browserMode" value="EXTERNAL"/>

+<stringAttribute key="org.eclipse.rap.launch.contextpath" value=""/>

+<stringAttribute key="org.eclipse.rap.launch.dataLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.rap.tools.launch/ecpwebemfstore"/>

+<booleanAttribute key="org.eclipse.rap.launch.developmentMode" value="true"/>

+<stringAttribute key="org.eclipse.rap.launch.entryPoint" value="org.eclipse.emf.ecp.rap.viewapp"/>

+<stringAttribute key="org.eclipse.rap.launch.libraryVariant" value="STANDARD"/>

+<stringAttribute key="org.eclipse.rap.launch.logLevel" value="OFF"/>

+<booleanAttribute key="org.eclipse.rap.launch.openBrowser" value="true"/>

+<intAttribute key="org.eclipse.rap.launch.port" value="52979"/>

+<stringAttribute key="org.eclipse.rap.launch.servletName" value="view"/>

+<stringAttribute key="org.eclipse.rap.launch.servletPath" value="/ecpWeb"/>

+<intAttribute key="org.eclipse.rap.launch.sessionTimeout" value="0"/>

+<booleanAttribute key="org.eclipse.rap.launch.terminatePrevious" value="true"/>

+<booleanAttribute key="org.eclipse.rap.launch.useDefaultDataLocation" value="true"/>

+<booleanAttribute key="org.eclipse.rap.launch.useManualContextPath" value="false"/>

+<booleanAttribute key="org.eclipse.rap.launch.useManualPort" value="true"/>

+<booleanAttribute key="org.eclipse.rap.launch.useSessionTimeout" value="false"/>

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

+<booleanAttribute key="show_selected_only" value="false"/>

+<stringAttribute key="target_bundles" value="com.ibm.icu.base@default:default,javax.annotation@default:default,javax.inject@default:default,javax.servlet@default:default,javax.xml@default:default,org.apache.batik.css@default:default,org.apache.batik.util.gui@default:default,org.apache.batik.util@default:default,org.apache.commons.codec@default:default,org.apache.commons.fileupload@default:default,org.apache.commons.io*2.2.0.201405120000@default:default,org.apache.commons.io*2.2.0.v201405211200@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.gogo.shell@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.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@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.css.core@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.workbench@default:default,org.eclipse.emf.cdo.ecore.retrofit@default:false,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.model.edit@default:default,org.eclipse.emf.emfstore.client.ui.rap@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.ecore@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.rap.common.ui@default:default,org.eclipse.emf.rap.edit.ui@default:default,org.eclipse.emf.rap@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.servlet@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.jetty.continuation@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.net4j.util@default:default,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.rap.addons.filedialog@default:default,org.eclipse.rap.addons.fileupload@default:default,org.eclipse.rap.jface.databinding@default:default,org.eclipse.rap.jface@default:default,org.eclipse.rap.rwt.osgi@default:default,org.eclipse.rap.rwt@default:default,org.eclipse.rap.ui.forms@default:default,org.eclipse.rap.ui.views@default:default,org.eclipse.rap.ui.workbench@default:default,org.eclipse.rap.ui@default:default,org.eclipse.team.core@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="timestamp" value="1367832274568"/>

+<booleanAttribute key="tracing" value="false"/>

+<booleanAttribute key="useCustomFeatures" value="false"/>

+<booleanAttribute key="useDefaultConfigArea" value="true"/>

+<stringAttribute key="workspace_bundles" value="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.rap.sessionprovider.rwt@1:default,org.eclipse.emf.ecp.core.rap@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.emfstore.localserver@default:default,org.eclipse.emf.ecp.emfstore.ui.e3@default:default,org.eclipse.emf.ecp.emfstore.ui.search@default:default,org.eclipse.emf.ecp.emfstore.ui@default:default,org.eclipse.emf.ecp.explorereditorbridge@default:default,org.eclipse.emf.ecp.rap.util@default:default,org.eclipse.emf.ecp.rap@default:default,org.eclipse.emf.ecp.ui.e3@default:default,org.eclipse.emf.ecp.ui.rap@default:false,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.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.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.label.model@default:default,org.eclipse.emf.ecp.view.label.rap@default:default,org.eclipse.emf.ecp.view.label.ui.swt@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.swt.layout@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.template.model@default:default,org.eclipse.emf.ecp.view.template.service@default:default,org.eclipse.emf.ecp.view.util.swt.rap@default:default,org.eclipse.emf.ecp.view.util.swt@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@default:default,org.eclipse.emfforms.core.services.databinding.featurepath@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.locale.default@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.plugin@default:default,org.eclipse.emfforms.swt.core@default:default,org.eclipse.emfforms.view.model.localization@default:default"/>

+</launchConfiguration>

diff --git a/releng/org.eclipse.emf.ecp.releng/pom.xml b/releng/org.eclipse.emf.ecp.releng/pom.xml
index 7107df2..4d3fa46 100644
--- a/releng/org.eclipse.emf.ecp.releng/pom.xml
+++ b/releng/org.eclipse.emf.ecp.releng/pom.xml
@@ -5,18 +5,18 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>ecp-parent</artifactId>
-	<version>1.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>pom</packaging>
 
 	<properties>
-		<tycho-version>0.20.0</tycho-version>
-		<tycho-extras-version>0.20.0</tycho-extras-version>
+		<tycho-version>0.22.0</tycho-version>
+		<tycho-extras-version>0.22.0</tycho-extras-version>
 		<javadoc-version>2.9</javadoc-version>
-		<javadoc-title>EMF Client Platform 1.5.1 API</javadoc-title>
+		<javadoc-title>EMF Client Platform 1.6.0 API</javadoc-title>
 		<maven.antrun.plugin.version>1.7</maven.antrun.plugin.version>
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 		<tycho.scmUrl>scm:git:git://git.eclipse.org/gitroot/emfclient/org.eclipse.emf.ecp.core.git</tycho.scmUrl>
-		<jarsigner-version>1.0.5</jarsigner-version>
+		<jarsigner-version>1.1.0</jarsigner-version>
 		<mav-surefire-version>2.16</mav-surefire-version>
 		<junit-version>4.11</junit-version>
 		
@@ -94,6 +94,7 @@
 	</pluginRepositories>
 
 	<modules>
+		
 		<module>../../releng/org.eclipse.emf.ecp.target.rcp</module>
 		<module>../../releng/org.eclipse.emf.ecp.target.rap</module>
 		<module>../../releng/org.eclipse.emf.ecp.repository</module>
@@ -105,6 +106,8 @@
 		<module>../../releng/org.eclipse.emf.ecp.releng.features</module>
 		<module>../../releng/org.eclipse.emf.ecp.releng.tests</module>
 		<module>../../releng/org.eclipse.emf.ecp.releng.examples</module>
+		
+		<module>../../releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng</module>
 	</modules>
 
 	<build>
@@ -259,7 +262,7 @@
 			<plugin>
 				<groupId>org.jacoco</groupId>
 				<artifactId>jacoco-maven-plugin</artifactId>
-				<version>0.6.2.201302030002</version>
+				<version>0.7.4.201502262128</version>
 				<configuration>
 					<destFile>${sonar.jacoco.reportPath}</destFile>
 					<append>true</append> 
diff --git a/releng/org.eclipse.emf.ecp.repository.target/aggregateSite.properties b/releng/org.eclipse.emf.ecp.repository.target/aggregateSite.properties
index bd294f6..6366433 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/emf-store/releases_14, http://download.eclipse.org/edapt/releases/10x
\ No newline at end of file
+associate.sites=http://download.eclipse.org/emf-store/releases_15, http://download.eclipse.org/edapt/releases/11x
\ 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 fc28439..dfe9eaf 100644
--- a/releng/org.eclipse.emf.ecp.repository.target/category.xml
+++ b/releng/org.eclipse.emf.ecp.repository.target/category.xml
@@ -1,167 +1,170 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <site>
-   <feature id="org.eclipse.emf.ecp.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.category"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.cdo.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.cdo.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.category"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.emfstore.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.emfstore.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.category"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.workspace.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.workspace.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.category"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.e3.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.e3.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.category"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.sdk.feature" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.sdk.feature" version="0.0.0">
       <category name="org.eclipse.emf.ecp.sdk"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.custom.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.custom.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.viewmodel.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.viewmodel.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.label.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.label.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.rule.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.rule.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.group.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.group.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.validation.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.validation.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.horizontal.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.horizontal.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.vertical.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.vertical.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.custom.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.custom.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.group.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.group.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.label.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.label.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.rule.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.rule.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.table.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.table.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.template.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.template.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.categorization.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.categorization.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.model.editor.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.model.editor.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.template.helper.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.unset.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.unset.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.ecore.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.ecore.feature.source" version="1.5.1.qualifier">
-      <category name="org.eclipse.emf.ecp.emfforms"/>
-   </feature>
-   <feature id="org.eclipse.emf.ecp.e4.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.e4.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.category"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.treemasterdetail.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.treemasterdetail.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.rap.util.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.rap.util.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.rap"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.category"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.emfforms.runtime.feature" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.emfforms.runtime.feature" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.emfforms.sdk.feature" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.emfforms.sdk.feature" version="0.0.0">
       <category name="org.eclipse.emf.ecp.sdk"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.demo.e4.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.demo.e4.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.category"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.rap.sdk.feature" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.rap.sdk.feature" version="0.0.0">
       <category name="org.eclipse.emf.ecp.rap"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.demo.e3.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.demo.e3.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.category"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.model.controls.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.model.controls.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.diffmerge.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.diffmerge.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.category"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.validation.view.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.validation.view.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.category"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.sdk.e4.feature" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.sdk.e4.feature" version="0.0.0">
       <category name="org.eclipse.emf.ecp.category"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.emfforms.idetooling.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.emfforms.idetooling.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.makeithappen.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.makeithappen.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.mappingdmr.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.mappingdmr.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.stack.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.stack.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.di.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.di.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.compoundcontrol.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.compoundcontrol.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.validation.bean.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.validation.bean.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.section.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.section.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.viewproxy.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.viewproxy.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature url="features/org.eclipse.emf.ecp.view.keyattributedmr.feature_1.5.1.qualifier.jar" id="org.eclipse.emf.ecp.view.keyattributedmr.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.keyattributedmr.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature url="features/org.eclipse.emf.ecp.view.indexdmr.feature_1.5.1.qualifier.jar" id="org.eclipse.emf.ecp.view.indexdmr.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.indexdmr.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature url="features/org.eclipse.emf.ecp.view.validation.initial.feature_1.5.1.qualifier.jar" id="org.eclipse.emf.ecp.view.validation.initial.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.validation.initial.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature url="features/org.eclipse.emf.ecp.changebroker.feature_1.5.1.qualifier.jar" id="org.eclipse.emf.ecp.changebroker.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.changebroker.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.category"/>
    </feature>
-   <feature url="features/org.eclipse.emf.ecp.view.edapt.feature_1.5.1.qualifier.jar" id="org.eclipse.emf.ecp.view.edapt.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.edapt.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.table.celleditor.rcp.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.table.celleditor.rcp.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <bundle id="org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emfforms.swt.control.text.autocomplete.feature.source" version="0.0.0">
+      <category name="org.eclipse.emf.ecp.emfforms"/>
+   </feature>
+   <feature id="org.eclipse.emfforms.view.annotation.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
-   </bundle>
+   </feature>
+   <feature id="org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup.feature.source" version="0.0.0">
+      <category name="org.eclipse.emf.ecp.emfforms"/>
+   </feature>
    <category-def name="org.eclipse.emf.ecp.sdk" label="All SDKs  (install one of these)">
       <description>
          Contains the ECP SDKs. Please install only 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 9949568..152bd4d 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-repository</packaging>
 	
 	<!-- see http://www.codetrails.com/blog/maven-tycho-how-to-configure-your-repos-mirror-and-statistics-uris -->
diff --git a/releng/org.eclipse.emf.ecp.repository/aggregateSite.properties b/releng/org.eclipse.emf.ecp.repository/aggregateSite.properties
index bd294f6..6366433 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/emf-store/releases_14, http://download.eclipse.org/edapt/releases/10x
\ No newline at end of file
+associate.sites=http://download.eclipse.org/emf-store/releases_15, http://download.eclipse.org/edapt/releases/11x
\ No newline at end of file
diff --git a/releng/org.eclipse.emf.ecp.repository/category.xml b/releng/org.eclipse.emf.ecp.repository/category.xml
index 8ee8490..e58e2f3 100644
--- a/releng/org.eclipse.emf.ecp.repository/category.xml
+++ b/releng/org.eclipse.emf.ecp.repository/category.xml
@@ -1,149 +1,155 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <site>
-   <feature id="org.eclipse.emf.ecp.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.category"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.cdo.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.cdo.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.category"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.emfstore.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.emfstore.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.category"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.workspace.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.workspace.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.category"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.e3.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.e3.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.category"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.sdk.feature" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.sdk.feature" version="0.0.0">
       <category name="org.eclipse.emf.ecp.sdk"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.custom.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.custom.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.viewmodel.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.viewmodel.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.label.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.label.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.rule.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.rule.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.group.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.group.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.validation.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.validation.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.horizontal.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.horizontal.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.vertical.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.vertical.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.custom.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.custom.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.group.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.group.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.label.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.label.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.rule.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.rule.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.table.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.table.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.template.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.template.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.categorization.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.categorization.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.model.editor.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.model.editor.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.template.helper.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.unset.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.unset.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.ecore.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.ecore.feature.source" version="1.5.1.qualifier">
-      <category name="org.eclipse.emf.ecp.emfforms"/>
-   </feature>
-   <feature id="org.eclipse.emf.ecp.view.treemasterdetail.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.treemasterdetail.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.category"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.emfforms.runtime.feature" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.emfforms.runtime.feature" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.emfforms.sdk.feature" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.emfforms.sdk.feature" version="0.0.0">
       <category name="org.eclipse.emf.ecp.sdk"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.demo.e3.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.demo.e3.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.category"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.model.controls.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.model.controls.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.diffmerge.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.diffmerge.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.category"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.validation.view.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.validation.view.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.category"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.emfforms.idetooling.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.emfforms.idetooling.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.makeithappen.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.makeithappen.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.mappingdmr.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.mappingdmr.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.stack.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.stack.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.di.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.di.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.compoundcontrol.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.compoundcontrol.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.validation.bean.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.validation.bean.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.section.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.section.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.viewproxy.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.viewproxy.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
    </feature>
-   <feature url="features/org.eclipse.emf.ecp.view.keyattributedmr.feature_1.5.1.qualifier.jar" id="org.eclipse.emf.ecp.view.keyattributedmr.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.keyattributedmr.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature url="features/org.eclipse.emf.ecp.view.indexdmr.feature_1.5.1.qualifier.jar" id="org.eclipse.emf.ecp.view.indexdmr.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.indexdmr.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature url="features/org.eclipse.emf.ecp.view.validation.initial.feature_1.5.1.qualifier.jar" id="org.eclipse.emf.ecp.view.validation.initial.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.validation.initial.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature url="features/org.eclipse.emf.ecp.view.edapt.feature_1.5.1.qualifier.jar" id="org.eclipse.emf.ecp.view.edapt.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.edapt.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <feature id="org.eclipse.emf.ecp.view.table.celleditor.rcp.feature.source" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emf.ecp.view.table.celleditor.rcp.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </feature>
-   <bundle id="org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup" version="1.5.1.qualifier">
+   <feature id="org.eclipse.emfforms.swt.control.text.autocomplete.feature.source" version="0.0.0">
+      <category name="org.eclipse.emf.ecp.emfforms"/>
+   </feature>
+   <feature id="org.eclipse.emfforms.view.annotation.feature.source" version="0.0.0">
       <category name="org.eclipse.emf.ecp.view"/>
-   </bundle>
+   </feature>
+   <feature id="org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup.feature.source" version="0.0.0">
+      <category name="org.eclipse.emf.ecp.emfforms"/>
+   </feature>
+   <feature id="org.eclipse.emf.ecp.sdk.e4.feature" version="0.0.0">
+      <category name="org.eclipse.emf.ecp.category"/>
+   </feature>
    <category-def name="org.eclipse.emf.ecp.sdk" label="All SDKs  (install one of these)">
       <description>
          Contains the ECP SDKs. Please install only one of these.
diff --git a/releng/org.eclipse.emf.ecp.repository/pom.xml b/releng/org.eclipse.emf.ecp.repository/pom.xml
index 568f74d..13af01b 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-repository</packaging>
 	
 	<!-- see http://www.codetrails.com/blog/maven-tycho-how-to-configure-your-repos-mirror-and-statistics-uris -->
diff --git a/releng/org.eclipse.emf.ecp.target.rap.mars/ecpRAPMars.target b/releng/org.eclipse.emf.ecp.target.rap.mars/ecpRAPMars.target
index 9bc8a07..55d1cd3 100644
--- a/releng/org.eclipse.emf.ecp.target.rap.mars/ecpRAPMars.target
+++ b/releng/org.eclipse.emf.ecp.target.rap.mars/ecpRAPMars.target
@@ -1,67 +1,60 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?pde version="3.8"?><target name="ECP RAP" sequenceNumber="254">
+<?pde version="3.8"?><target name="ECP RAP" sequenceNumber="260">
 <locations>
 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.swtbot.forms.feature.group" version="2.2.1.201402241301"/>
-<unit id="org.eclipse.swtbot.eclipse.feature.group" version="2.2.1.201402241301"/>
-<unit id="org.eclipse.swtbot.eclipse.gef.feature.group" version="2.2.1.201402241301"/>
-<unit id="org.eclipse.swtbot.feature.group" version="2.2.1.201402241301"/>
-<unit id="org.eclipse.swtbot.eclipse.test.junit.feature.group" version="2.2.1.201402241301"/>
-<unit id="org.hamcrest.core" version="1.3.0.v201303031735"/>
-<unit id="org.hamcrest.library" version="1.3.0.v201305281000"/>
-<unit id="org.hamcrest.library.source" version="1.3.0.v201305281000"/>
+<unit id="org.eclipse.swtbot.forms.feature.group" version="0.0.0"/>
+<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.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.swtbot.eclipse.test.junit.feature.group" version="0.0.0"/>
+<unit id="org.hamcrest.core" version="0.0.0"/>
+<unit id="org.hamcrest.library" version="0.0.0"/>
+<unit id="org.hamcrest.library.source" version="0.0.0"/>
 <repository location="http://download.eclipse.org/technology/swtbot/releases/latest/"/>
 </location>
 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.h2" version="1.3.168.v201212121212"/>
-<unit id="org.h2.source" version="1.3.168.v201212121212"/>
-<unit id="org.apache.log4j.source" version="1.2.15.v201012070815"/>
-<unit id="org.apache.log4j" version="1.2.15.v201012070815"/>
+<unit id="org.h2" version="0.0.0"/>
+<unit id="org.h2.source" version="0.0.0"/>
+<unit id="org.apache.log4j.source" version="0.0.0"/>
+<unit id="org.apache.log4j" version="0.0.0"/>
 <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/S20140917154621/repository/"/>
 </location>
 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.equinox.sdk.feature.group" version="3.11.0.v20141210-0918"/>
-<unit id="org.eclipse.platform.ide" version="4.5.0.I20141210-2000"/>
-<repository location="http://download.eclipse.org/eclipse/updates/4.5milestones/S-4.5M4-201412102000/"/>
+<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.5milestones/"/>
 </location>
 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.emf.ecp.rap.sdk.feature.feature.group" version="1.3.0.20140610-1229"/>
-<unit id="org.eclipse.emf.ecp.rap.util.feature.feature.group" version="1.3.0.20140610-1229"/>
-<unit id="org.eclipse.emf.ecp.emfforms.sdk.feature.feature.group" version="1.3.0.20140610-1229"/>
-<repository location="http://download.eclipse.org/ecp/releases/releases_13"/>
+<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_16"/>
 </location>
 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.rap.fileupload.feature.feature.group" version="2.3.0.20140517-1319"/>
+<unit id="org.eclipse.rap.fileupload.feature.feature.group" version="0.0.0"/>
 <repository location="http://download.eclipse.org/rt/rap/incubator/2.3/fileupload/"/>
 </location>
 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.emf.cdo.sdk.feature.group" version="4.3.0.v20140606-1557"/>
-<unit id="org.eclipse.emf.sdk.feature.group" version="2.11.0.v20141215-0350"/>
-<unit id="org.eclipse.emf.transaction.sdk.feature.group" version="1.9.0.201412161904"/>
-<unit id="org.eclipse.emf.validation.sdk.feature.group" version="1.9.0.201412161741"/>
-<unit id="org.eclipse.gef.sdk.feature.group" version="3.10.0.201412150306"/>
-<unit id="org.eclipse.graphiti.export.feature.feature.group" version="0.12.0.v20141217-1136"/>
-<unit id="org.eclipse.graphiti.feature.feature.group" version="0.12.0.v20141217-1136"/>
-<unit id="org.eclipse.jdt.feature.group" version="3.11.0.v20141210-2000"/>
-<unit id="org.eclipse.net4j.sdk.feature.group" version="4.3.0.v20140308-0604"/>
-<repository location="http://download.eclipse.org/releases/mars/201412191000"/>
+<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"/>
+<unit id="org.eclipse.emf.validation.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.gef.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.graphiti.export.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.graphiti.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.jdt.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.net4j.sdk.feature.group" version="0.0.0"/>
+<repository location="http://download.eclipse.org/releases/mars"/>
 </location>
 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.emf.emfstore.client.transaction.feature.feature.group" version="1.4.0.v20140912-0421"/>
-<unit id="org.eclipse.emf.emfstore.client.feature.feature.group" version="1.4.0.v20140912-0421"/>
-<unit id="org.eclipse.emf.emfstore.common.feature.feature.group" version="1.4.0.v20140912-0421"/>
-<unit id="org.eclipse.emf.emfstore.server.feature.feature.group" version="1.4.0.v20140912-0421"/>
-<unit id="org.eclipse.emf.emfstore.example.feature.feature.group" version="1.4.0.v20140912-0421"/>
-<unit id="org.eclipse.emf.emfstore.client.ui.feature.feature.group" version="1.4.0.v20140912-0421"/>
-<unit id="org.eclipse.emf.emfstore.ecore.feature.feature.group" version="1.4.0.v20140912-0421"/>
-<repository location="http://download.eclipse.org/emf-store/releases_14"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.emf.rap.sdk.feature.group" version="2.10.0.v20140519-0339"/>
-<unit id="org.eclipse.rap.equinox.target.feature.feature.group" version="2.3.0.20140608-1653"/>
-<unit id="org.eclipse.rap.feature.feature.group" version="2.3.0.20140610-0925"/>
-<unit id="org.eclipse.rap.sdk.feature.feature.group" version="2.3.0.20140610-0925"/>
-<repository location="http://download.eclipse.org/releases/luna/"/>
+<unit id="org.eclipse.emf.emfstore.client.transaction.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.emfstore.client.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.emfstore.common.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.emfstore.server.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.emfstore.example.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.emfstore.client.ui.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.emfstore.ecore.feature.feature.group" version="0.0.0"/>
+<repository location="http://download.eclipse.org/emfstore/releases_15"/>
 </location>
 </locations>
 </target>
diff --git a/releng/org.eclipse.emf.ecp.target.rap.mars/pom.xml b/releng/org.eclipse.emf.ecp.target.rap.mars/pom.xml
index 6fc4d33..f32886a 100644
--- a/releng/org.eclipse.emf.ecp.target.rap.mars/pom.xml
+++ b/releng/org.eclipse.emf.ecp.target.rap.mars/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>ecpRAPMars</artifactId>
-  <version>1.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-target-definition</packaging>
 </project>
\ No newline at end of file
diff --git a/releng/org.eclipse.emf.ecp.target.rap/ecpRAP.target b/releng/org.eclipse.emf.ecp.target.rap/ecpRAP.target
index 071b15e..72eb72f 100644
--- a/releng/org.eclipse.emf.ecp.target.rap/ecpRAP.target
+++ b/releng/org.eclipse.emf.ecp.target.rap/ecpRAP.target
@@ -1,18 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>

-<?pde version="3.8"?><target name="ECP RAP" sequenceNumber="249">

+<?pde version="3.8"?><target name="ECP RAP" sequenceNumber="251">

 <locations>

 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">

-<unit id="org.eclipse.swtbot.forms.feature.group" version="0.0.0"/>

-<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.feature.group" version="0.0.0"/>

-<unit id="org.eclipse.swtbot.eclipse.test.junit.feature.group" version="0.0.0"/>

-<unit id="org.hamcrest.core" version="0.0.0"/>

-<unit id="org.hamcrest.library" version="0.0.0"/>

-<unit id="org.hamcrest.library.source" version="0.0.0"/>

-<repository location="http://download.eclipse.org/technology/swtbot/releases/latest/"/>

-</location>

-<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">

 <unit id="org.h2" version="0.0.0"/>

 <unit id="org.h2.source" version="0.0.0"/>

 <unit id="org.apache.log4j.source" version="0.0.0"/>

@@ -22,11 +11,7 @@
 <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.4"/>

-</location>

-<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">

-<unit id="org.eclipse.rap.fileupload.feature.feature.group" version="0.0.0"/>

-<repository location="http://download.eclipse.org/rt/rap/incubator/2.3/fileupload/"/>

+<repository location="http://download.eclipse.org/eclipse/updates/4.5milestones"/>

 </location>

 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">

 <unit id="org.eclipse.emf.cdo.sdk.feature.group" version="0.0.0"/>

@@ -42,7 +27,7 @@
 <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"/>

 <unit id="org.eclipse.rap.sdk.feature.feature.group" version="0.0.0"/>

-<repository location="http://download.eclipse.org/releases/luna/"/>

+<repository location="http://download.eclipse.org/releases/mars/"/>

 </location>

 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">

 <unit id="org.eclipse.emf.emfstore.client.transaction.feature.feature.group" version="0.0.0"/>

@@ -52,7 +37,14 @@
 <unit id="org.eclipse.emf.emfstore.example.feature.feature.group" version="0.0.0"/>

 <unit id="org.eclipse.emf.emfstore.client.ui.feature.feature.group" version="0.0.0"/>

 <unit id="org.eclipse.emf.emfstore.ecore.feature.feature.group" version="0.0.0"/>

-<repository location="http://download.eclipse.org/emf-store/releases_14"/>

+<repository location="http://download.eclipse.org/emfstore/releases_15"/>

+</location>

+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">

+<unit id="org.eclipse.swtbot.eclipse.gef.feature.group" version="2.2.1.201402241301"/>

+<unit id="org.eclipse.swtbot.eclipse.feature.group" version="2.2.1.201402241301"/>

+<unit id="org.eclipse.swtbot.forms.feature.group" version="2.2.1.201402241301"/>

+<unit id="org.eclipse.swtbot.feature.group" version="2.2.1.201402241301"/>

+<repository location="http://download.eclipse.org/technology/swtbot/releases/latest/"/>

 </location>

 </locations>

 </target>

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 b177ca9..78718bf 100644
--- a/releng/org.eclipse.emf.ecp.target.rap/ecpRAP_withECP.target
+++ b/releng/org.eclipse.emf.ecp.target.rap/ecpRAP_withECP.target
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?pde version="3.8"?><target name="ECP RAP" sequenceNumber="1">
+<?pde version="3.8"?><target name="ECP RAP" sequenceNumber="2">
 <locations>
 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.swtbot.forms.feature.group" version="0.0.0"/>
@@ -22,17 +22,13 @@
 <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.4"/>
+<repository location="http://download.eclipse.org/eclipse/updates/4.5milestones"/>
 </location>
 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
 <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_15"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.rap.fileupload.feature.feature.group" version="0.0.0"/>
-<repository location="http://download.eclipse.org/rt/rap/incubator/2.3/fileupload/"/>
+<repository location="http://download.eclipse.org/ecp/releases/releases_target_16"/>
 </location>
 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.emf.cdo.sdk.feature.group" version="0.0.0"/>
@@ -48,7 +44,7 @@
 <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"/>
 <unit id="org.eclipse.rap.sdk.feature.feature.group" version="0.0.0"/>
-<repository location="http://download.eclipse.org/releases/luna/"/>
+<repository location="http://download.eclipse.org/releases/mars/"/>
 </location>
 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.emf.emfstore.client.transaction.feature.feature.group" version="0.0.0"/>
@@ -58,7 +54,7 @@
 <unit id="org.eclipse.emf.emfstore.example.feature.feature.group" version="0.0.0"/>
 <unit id="org.eclipse.emf.emfstore.client.ui.feature.feature.group" version="0.0.0"/>
 <unit id="org.eclipse.emf.emfstore.ecore.feature.feature.group" version="0.0.0"/>
-<repository location="http://download.eclipse.org/emf-store/releases_14"/>
+<repository location="http://download.eclipse.org/emfstore/releases_15"/>
 </location>
 </locations>
 </target>
diff --git a/releng/org.eclipse.emf.ecp.target.rap/pom.xml b/releng/org.eclipse.emf.ecp.target.rap/pom.xml
index 395a13a..c4b6535 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.5.1-SNAPSHOT</version>

+    <version>1.6.0-SNAPSHOT</version>

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

   </parent>

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

   <artifactId>ecpRAP</artifactId>

-  <version>1.5.1-SNAPSHOT</version>

+  <version>1.6.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.mars/ecpMars.target b/releng/org.eclipse.emf.ecp.target.rcp.mars/ecpMars.target
index bdea3c6..deca146 100644
--- a/releng/org.eclipse.emf.ecp.target.rcp.mars/ecpMars.target
+++ b/releng/org.eclipse.emf.ecp.target.rcp.mars/ecpMars.target
@@ -1,65 +1,65 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?pde version="3.8"?><target name="ECP RCP" sequenceNumber="247">
+<?pde version="3.8"?><target name="ECP RCP" sequenceNumber="251">
 <locations>
 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.equinox.sdk.feature.group" version="3.11.0.v20141210-0918"/>
-<unit id="org.eclipse.platform.ide" version="4.5.0.I20141210-2000"/>
-<repository location="http://download.eclipse.org/eclipse/updates/4.5milestones/S-4.5M4-201412102000/"/>
+<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.5milestones/S-4.5M6-201503200800/"/>
 </location>
 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.emf.emfstore.client.transaction.feature.feature.group" version="1.4.0.v20140912-0421"/>
-<unit id="org.eclipse.emf.emfstore.client.feature.feature.group" version="1.4.0.v20140912-0421"/>
-<unit id="org.eclipse.emf.emfstore.common.feature.feature.group" version="1.4.0.v20140912-0421"/>
-<unit id="org.eclipse.emf.emfstore.server.feature.feature.group" version="1.4.0.v20140912-0421"/>
-<unit id="org.eclipse.emf.emfstore.example.feature.feature.group" version="1.4.0.v20140912-0421"/>
-<unit id="org.eclipse.emf.emfstore.client.ui.feature.feature.group" version="1.4.0.v20140912-0421"/>
-<unit id="org.eclipse.emf.emfstore.ecore.feature.feature.group" version="1.4.0.v20140912-0421"/>
-<repository location="http://download.eclipse.org/emf-store/releases_14"/>
+<unit id="org.eclipse.emf.emfstore.client.transaction.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.emfstore.client.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.emfstore.common.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.emfstore.server.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.emfstore.example.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.emfstore.client.ui.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.emfstore.ecore.feature.feature.group" version="0.0.0"/>
+<repository location="http://download.eclipse.org/emfstore/releases_15"/>
 </location>
 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.jdt.feature.group" version="3.11.0.v20141210-2000"/>
-<unit id="org.eclipse.emf.sdk.feature.group" version="2.11.0.v20141215-0350"/>
-<unit id="org.eclipse.gef.sdk.feature.group" version="3.10.0.201412150306"/>
-<unit id="org.eclipse.graphiti.feature.feature.group" version="0.12.0.v20141217-1136"/>
-<unit id="org.eclipse.graphiti.export.feature.feature.group" version="0.12.0.v20141217-1136"/>
-<unit id="org.eclipse.emf.validation.sdk.feature.group" version="1.9.0.201412161741"/>
-<unit id="org.eclipse.emf.transaction.sdk.feature.group" version="1.9.0.201412161904"/>
-<unit id="org.eclipse.net4j.sdk.feature.group" version="4.3.0.v20140308-0604"/>
-<unit id="org.eclipse.emf.cdo.sdk.feature.group" version="4.3.0.v20140606-1557"/>
-<unit id="org.eclipse.pde.feature.group" version="3.11.0.v20141210-2000"/>
-<unit id="org.eclipse.ocl.all.sdk.feature.group" version="5.1.0.v20141108-1946"/>
-<repository location="http://download.eclipse.org/releases/mars/201412191000"/>
+<unit id="org.eclipse.jdt.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.gef.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.graphiti.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.graphiti.export.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.validation.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.transaction.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.net4j.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.cdo.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.pde.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.ocl.all.sdk.feature.group" version="0.0.0"/>
+<repository location="http://download.eclipse.org/releases/mars"/>
 </location>
 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.mockito.mockito-all" version="1.9.5"/>
+<unit id="org.mockito.mockito-all" version="0.0.0"/>
 <repository location="http://build.eclipse.org/rt/rap/base-platforms/2.3/extra-dependencies/"/>
 </location>
 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.apache.log4j.source" version="1.2.15.v201012070815"/>
-<unit id="org.objenesis.source" version="1.0.0.v201105211943"/>
-<unit id="org.apache.log4j" version="1.2.15.v201012070815"/>
-<unit id="org.objenesis" version="1.0.0.v201105211943"/>
-<unit id="org.h2.source" version="1.3.168.v201212121212"/>
-<unit id="org.h2" version="1.3.168.v201212121212"/>
-<unit id="javax.validation" version="1.0.0.GA_v201205091237"/>
-<unit id="javax.validation.source" version="1.0.0.GA_v201205091237"/>
+<unit id="org.apache.log4j.source" version="0.0.0"/>
+<unit id="org.objenesis.source" version="0.0.0"/>
+<unit id="org.apache.log4j" version="0.0.0"/>
+<unit id="org.objenesis" version="0.0.0"/>
+<unit id="org.h2.source" version="0.0.0"/>
+<unit id="org.h2" version="0.0.0"/>
+<unit id="javax.validation" version="0.0.0"/>
+<unit id="javax.validation.source" version="0.0.0"/>
 <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/S20140917154621/repository/"/>
 </location>
 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.emf.edapt.runtime.feature.feature.group" version="1.0.0.201411071217"/>
+<unit id="org.eclipse.emf.edapt.runtime.feature.feature.group" version="0.0.0"/>
 <repository location="http://download.eclipse.org/edapt/releases/10x/100"/>
 </location>
 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.hamcrest.core.source" version="1.3.0.v201303031735"/>
-<unit id="org.hamcrest.library.source" version="1.3.0.v201305281000"/>
-<unit id="org.eclipse.swtbot.eclipse.feature.group" version="2.2.1.201402241301"/>
-<unit id="org.eclipse.swtbot.feature.group" version="2.2.1.201402241301"/>
-<unit id="org.eclipse.swtbot.eclipse.gef.feature.group" version="2.2.1.201402241301"/>
-<unit id="org.hamcrest.core" version="1.3.0.v201303031735"/>
-<unit id="org.apache.log4j.source" version="1.2.15.v201012070815"/>
-<unit id="org.apache.log4j" version="1.2.15.v201012070815"/>
-<unit id="org.eclipse.swtbot.forms.feature.group" version="2.2.1.201402241301"/>
-<unit id="org.hamcrest.library" version="1.3.0.v201305281000"/>
+<unit id="org.hamcrest.core.source" version="0.0.0"/>
+<unit id="org.hamcrest.library.source" version="0.0.0"/>
+<unit id="org.eclipse.swtbot.eclipse.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.swtbot.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.swtbot.eclipse.gef.feature.group" version="0.0.0"/>
+<unit id="org.hamcrest.core" version="0.0.0"/>
+<unit id="org.apache.log4j.source" version="0.0.0"/>
+<unit id="org.apache.log4j" version="0.0.0"/>
+<unit id="org.eclipse.swtbot.forms.feature.group" version="0.0.0"/>
+<unit id="org.hamcrest.library" version="0.0.0"/>
 <repository location="http://download.eclipse.org/technology/swtbot/releases/latest/"/>
 </location>
 </locations>
diff --git a/releng/org.eclipse.emf.ecp.target.rcp.mars/pom.xml b/releng/org.eclipse.emf.ecp.target.rcp.mars/pom.xml
index a6bedf6..e12e66f 100644
--- a/releng/org.eclipse.emf.ecp.target.rcp.mars/pom.xml
+++ b/releng/org.eclipse.emf.ecp.target.rcp.mars/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>ecpMars</artifactId>
-  <version>1.5.1-SNAPSHOT</version>
+  <version>1.6.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 6f5c523..deb6cd3 100644
--- a/releng/org.eclipse.emf.ecp.target.rcp/ecp.target
+++ b/releng/org.eclipse.emf.ecp.target.rcp/ecp.target
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>

-<?pde version="3.8"?><target name="ECP RCP" sequenceNumber="245">

+<?pde version="3.8"?><target name="ECP RCP" sequenceNumber="255">

 <locations>

 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">

 <unit id="org.eclipse.swtbot.forms.feature.group" version="0.0.0"/>

@@ -15,7 +15,7 @@
 <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.4"/>

+<repository location="http://download.eclipse.org/eclipse/updates/4.5milestones"/>

 </location>

 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">

 <unit id="org.eclipse.emf.emfstore.client.transaction.feature.feature.group" version="0.0.0"/>

@@ -25,7 +25,7 @@
 <unit id="org.eclipse.emf.emfstore.example.feature.feature.group" version="0.0.0"/>

 <unit id="org.eclipse.emf.emfstore.client.ui.feature.feature.group" version="0.0.0"/>

 <unit id="org.eclipse.emf.emfstore.ecore.feature.feature.group" version="0.0.0"/>

-<repository location="http://download.eclipse.org/emf-store/releases_14"/>

+<repository location="http://download.eclipse.org/emfstore/releases_15"/>

 </location>

 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">

 <unit id="org.eclipse.jdt.feature.group" version="0.0.0"/>

@@ -39,26 +39,29 @@
 <unit id="org.eclipse.emf.cdo.sdk.feature.group" version="0.0.0"/>

 <unit id="org.eclipse.pde.feature.group" version="0.0.0"/>

 <unit id="org.eclipse.ocl.all.sdk.feature.group" version="0.0.0"/>

-<repository location="http://download.eclipse.org/releases/luna"/>

+<repository location="http://download.eclipse.org/releases/mars"/>

 </location>

 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">

 <unit id="org.mockito.mockito-all" version="0.0.0"/>

 <repository location="http://build.eclipse.org/rt/rap/base-platforms/2.3/extra-dependencies/"/>

 </location>

 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">

-<unit id="org.apache.log4j.source" version="0.0.0"/>

-<unit id="org.objenesis.source" version="0.0.0"/>

-<unit id="org.apache.log4j" version="0.0.0"/>

-<unit id="org.objenesis" version="0.0.0"/>

-<unit id="org.h2.source" version="0.0.0"/>

-<unit id="org.h2" version="0.0.0"/>

-<unit id="javax.validation" version="0.0.0"/>

-<unit id="javax.validation.source" version="0.0.0"/>

+<unit id="javax.validation" version="1.0.0.GA_v201205091237"/>

+<unit id="org.apache.poi.source" version="3.9.0.v201405241750"/>

+<unit id="org.apache.poi" version="3.9.0.v201405241750"/>

+<unit id="org.apache.log4j.source" version="1.2.15.v201012070815"/>

+<unit id="org.objenesis" version="1.0.0.v201105211943"/>

+<unit id="org.objenesis.source" version="1.0.0.v201105211943"/>

+<unit id="org.h2" version="1.3.168.v201212121212"/>

+<unit id="javax.validation.source" version="1.0.0.GA_v201205091237"/>

+<unit id="org.apache.log4j" version="1.2.15.v201012070815"/>

+<unit id="org.h2.source" version="1.3.168.v201212121212"/>

 <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20140525021250/repository/"/>

 </location>

 <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"/>

-<repository location="http://download.eclipse.org/edapt/releases/10x/101"/>

+<unit id="org.eclipse.emf.edapt.runtime.feature.source.feature.group" version="0.0.0"/>

+<repository location="http://download.eclipse.org/edapt/releases/11x"/>

 </location>

 </locations>

 </target>

diff --git a/releng/org.eclipse.emf.ecp.target.rcp/pom.xml b/releng/org.eclipse.emf.ecp.target.rcp/pom.xml
index 4953e68..dcc5e11 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.5.1-SNAPSHOT</version>

+    <version>1.6.0-SNAPSHOT</version>

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

   </parent>

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

   <artifactId>ecp</artifactId>

-  <version>1.5.1-SNAPSHOT</version>

+  <version>1.6.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.bundles/.project b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.bundles/.project
new file mode 100644
index 0000000..20c29c2
--- /dev/null
+++ b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.bundles/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.spreadsheet.releng.bundles</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+	</buildSpec>
+	<natures>
+	</natures>
+</projectDescription>
diff --git a/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.bundles/pom.xml b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.bundles/pom.xml
new file mode 100644
index 0000000..6369908
--- /dev/null
+++ b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.bundles/pom.xml
@@ -0,0 +1,115 @@
+<?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>
+	<groupId>org.eclipse.emfforms.spreadsheet</groupId>
+	<artifactId>emfforms-spreadsheet-bundles-parent</artifactId>
+	<version>1.0.0-SNAPSHOT</version>
+	<packaging>pom</packaging>
+
+	<parent>
+		<groupId>org.eclipse.emfforms.spreadsheet</groupId>
+		<artifactId>emfforms-spreadsheet-parent</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+		<relativePath>../org.eclipse.emfforms.spreadsheet.releng/</relativePath>
+	</parent>
+	
+	<modules>
+		<module>../../../bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core</module>
+		<module>../../../bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer</module>
+		<module>../../../bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer</module>
+		<module>../../../bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization</module>
+		<module>../../../bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom</module>
+		<module>../../../bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table</module>
+	</modules>
+
+	<build>
+		<plugins>
+			<!-- 1. -->
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-source-plugin</artifactId>
+				<executions>
+					<execution>
+						<id>attach-source</id>
+						<goals>
+							<goal>plugin-source</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+	</build>
+	<profiles>
+		<!-- 2. -->
+		<profile>
+			<id>build-server</id>
+			<build>
+				<plugins>
+					<!-- 3.a -->
+					<plugin>
+						<groupId>org.eclipse.tycho.extras</groupId>
+						<artifactId>tycho-pack200a-plugin</artifactId>
+						<version>${tycho-version}</version>
+						<executions>
+							<execution>
+								<id>pack200-normalize</id>
+								<goals>
+									<goal>normalize</goal>
+								</goals>
+							</execution>
+						</executions>
+					</plugin>
+					<plugin>
+						<groupId>org.eclipse.cbi.maven.plugins</groupId>
+						<artifactId>eclipse-jarsigner-plugin</artifactId>
+						<version>${jarsigner-version}</version>
+						<executions>
+							<execution>
+								<id>sign</id>
+								<goals>
+									<goal>sign</goal>
+								</goals>
+							</execution>
+						</executions>
+						<configuration>
+							<excludeInnerJars>true</excludeInnerJars>
+						</configuration>
+					</plugin>
+					<!-- 3.b -->
+					<plugin>
+						<groupId>org.eclipse.tycho.extras</groupId>
+						<artifactId>tycho-pack200b-plugin</artifactId>
+						<version>${tycho-version}</version>
+						<executions>
+							<execution>
+								<id>pack200-pack</id>
+								<goals>
+									<goal>pack</goal>
+								</goals>
+							</execution>
+						</executions>
+					</plugin>
+					<!-- 4. -->
+					<plugin>
+						<groupId>org.eclipse.tycho</groupId>
+						<artifactId>tycho-p2-plugin</artifactId>
+						<version>${tycho-version}</version>
+						<executions>
+							<execution>
+								<id>attach-p2-metadata</id>
+								<phase>package</phase>
+								<goals>
+									<goal>p2-metadata</goal>
+								</goals>
+							</execution>
+						</executions>
+						<configuration>
+							<defaultP2Metadata>false</defaultP2Metadata>
+						</configuration>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+	</profiles>
+</project>
\ No newline at end of file
diff --git a/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.features/.project b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.features/.project
new file mode 100644
index 0000000..917003b
--- /dev/null
+++ b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.features/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.spreadsheet.releng.features</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+	</buildSpec>
+	<natures>
+	</natures>
+</projectDescription>
diff --git a/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.features/pom.xml b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.features/pom.xml
new file mode 100644
index 0000000..4e5cf3a
--- /dev/null
+++ b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.features/pom.xml
@@ -0,0 +1,99 @@
+<?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.emfforms.spreadsheet</groupId>
+		<artifactId>emfforms-spreadsheet-parent</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+		<relativePath>../org.eclipse.emfforms.spreadsheet.releng/</relativePath>
+	</parent>
+	
+	<groupId>org.eclipse.emfforms.spreadsheet</groupId>
+	<artifactId>emfforms-spreadsheet-features-parent</artifactId>
+	<version>1.0.0-SNAPSHOT</version>
+	<packaging>pom</packaging>
+
+	<modules>
+		<module>../../../features/spreadsheet/org.eclipse.emfforms.spreadsheet.feature</module>
+	</modules>
+
+	<!-- Parent used for features. This POM contains all build steps for code signing. -->
+	<build>
+		<plugins>
+			<!-- 1. -->
+			<plugin>
+				<groupId>org.eclipse.tycho.extras</groupId>
+				<artifactId>tycho-source-feature-plugin</artifactId>
+				<version>${tycho-version}</version>
+				<executions>
+					<execution>
+						<id>generate-source-feature</id>
+						<goals>
+							<goal>source-feature</goal>
+						</goals>
+					</execution>
+				</executions>
+				<configuration>
+					<excludes>
+						<feature id="org.eclipse.emf.ecp.license.feature"/>
+					</excludes>
+					<labelSuffix>&#xA0;incl. Sources</labelSuffix>
+				</configuration>
+			</plugin>
+			
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-p2-plugin</artifactId>
+				<version>${tycho-version}</version>
+				<executions>
+					<execution>
+						<!-- 2. -->
+						<id>default-p2-metadata-default</id>
+						<configuration>
+							<attachP2Metadata>false</attachP2Metadata>
+						</configuration>
+					</execution>
+					<execution>
+						<id>attach-p2-metadata</id>
+						<phase>package</phase>
+						<goals>
+							<goal>p2-metadata</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+	</build>
+	<profiles>
+		<!-- 3. -->
+		<profile>
+			<id>build-server</id>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.eclipse.cbi.maven.plugins</groupId>
+						<artifactId>eclipse-jarsigner-plugin</artifactId>
+						<version>${jarsigner-version}</version>
+						<executions>
+							<execution>
+								<id>sign</id>
+								<goals>
+									<goal>sign</goal>
+								</goals>
+							</execution>
+						</executions>
+						<configuration>
+							<excludeInnerJars>true</excludeInnerJars>
+						</configuration>
+					</plugin>
+					<plugin>
+						<groupId>org.eclipse.tycho</groupId>
+						<artifactId>tycho-p2-plugin</artifactId>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+	</profiles>
+</project>
\ No newline at end of file
diff --git a/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.repository/.project b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.repository/.project
new file mode 100644
index 0000000..556915b
--- /dev/null
+++ b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.repository/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.spreadsheet.releng.repository</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+	</buildSpec>
+	<natures>
+	</natures>
+</projectDescription>
diff --git a/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.repository/build.xml b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.repository/build.xml
new file mode 100644
index 0000000..86dba82
--- /dev/null
+++ b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.repository/build.xml
@@ -0,0 +1,67 @@
+<project default="custom.build" name="ECP site to include updatessite">
+
+	<condition property="build.xml" value="build.xml">
+		<available file="build.xml" type="file" />
+	</condition>
+
+	<property name="update.site.source.dir" value="target/repository" />
+
+	<property name="aggregateSite.properties" value="aggregateSite.properties" />
+	<property file="${aggregateSite.properties}" />
+
+	<target name="init">
+		<taskdef resource="net/sf/antcontrib/antlib.xml">
+			<classpath>
+				<pathelement location="ant-contrib-1.0b3.jar" />
+			</classpath>
+		</taskdef>
+	</target>
+
+	<target name="custom.build" description="aggregate update site extras" depends="init,add.associate.sites" />
+
+	<target name="add.associate.sites" if="associate.sites">
+		<if>
+			<and>
+				<!-- Defined in aggregateSite.properties -->
+				<isset property="associate.sites" />
+				<not>
+					<equals arg1="${associate.sites}" arg2="" />
+				</not>
+			</and>
+			<then>
+				<if>
+					<available file="${update.site.source.dir}/content.jar" type="file" />
+					<then>
+						<unzip src="${update.site.source.dir}/content.jar" dest="${update.site.source.dir}" />
+						<delete file="${update.site.source.dir}/content.jar" />
+					</then>
+				</if>
+				<!-- counter variable -->
+				<var name="associate.sites.0" value="" />
+				<for param="associate.site" list="${associate.sites}" delimiter=", ">
+					<sequential>
+						<var name="associate.sites.0" value="${associate.sites.0}00" />
+					</sequential>
+				</for>
+				<length property="associate.sites.length" string="${associate.sites.0}" />
+
+				<loadfile srcfile="${update.site.source.dir}/content.xml" property="content.xml">
+					<filterchain>
+						<tailfilter lines="-1" skip="1" />
+					</filterchain>
+				</loadfile>
+				<echo file="${update.site.source.dir}/content.xml" message="${content.xml}" />
+				<echo file="${update.site.source.dir}/content.xml" append="true">  &lt;references size='${associate.sites.length}'></echo>
+				<for param="associate.site" list="${associate.sites}" delimiter=", ">
+					<sequential>
+						<!-- insert into content.xml -->
+						<echo file="${update.site.source.dir}/content.xml" append="true">    &lt;repository uri='@{associate.site}' url='@{associate.site}' type='0' options='1'/>&lt;repository uri='@{associate.site}' url='@{associate.site}' type='1' options='1'/></echo>
+					</sequential>
+				</for>
+				<echo file="${update.site.source.dir}/content.xml" append="true">  &lt;/references>&lt;/repository></echo>
+				<zip destfile="${update.site.source.dir}/content.jar" basedir="${update.site.source.dir}" includes="content.xml" />
+				<delete file="${update.site.source.dir}/content.xml" />
+			</then>
+		</if>
+	</target>
+</project>
diff --git a/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.repository/category.xml b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.repository/category.xml
new file mode 100644
index 0000000..33c752d
--- /dev/null
+++ b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.repository/category.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<site>
+   <feature id="org.eclipse.emfforms.spreadsheet.feature" version="0.0.0">
+      <category name="org.eclipse.emfforms.spreadsheet"/>
+   </feature>
+   <category-def name="org.eclipse.emfforms.spreadsheet" label="Spreadsheet Import Export for EMFForms">
+      <description>
+         Contains the EMFForms Support for import and export of Spreadsheerts.
+      </description>
+   </category-def>
+</site>
diff --git a/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.repository/pom.xml b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.repository/pom.xml
new file mode 100644
index 0000000..233844b
--- /dev/null
+++ b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.repository/pom.xml
@@ -0,0 +1,157 @@
+<?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.emfforms.spreadsheet</groupId>
+		<artifactId>emfforms-spreadsheet-parent</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+		<relativePath>../org.eclipse.emfforms.spreadsheet.releng/</relativePath>
+	</parent>
+	<groupId>org.eclipse.emfforms.spreadsheet</groupId>
+	<artifactId>emfforms-spreadsheet-repository</artifactId>
+	<version>1.0.0-SNAPSHOT</version>
+	<packaging>eclipse-repository</packaging>
+	
+	<!-- see http://www.codetrails.com/blog/maven-tycho-how-to-configure-your-repos-mirror-and-statistics-uris -->
+	<properties>
+		<p2MirrorsURL>http://www.eclipse.org/downloads/download.php?file=/ecp/releases/releases_16/160&amp;format=xml</p2MirrorsURL>
+		<p2StatsURL>http://download.eclipse.org/stats/ecp</p2StatsURL>
+		<!-- At the moment, this list of features needs to be maintained manually. -->
+		<statsTrackedArtifacts>org.eclipse.emf.ecp.emfforms.runtime.feature,org.eclipse.emf.ecp.emfforms.sdk.feature,org.eclipse.emf.ecp.sdk.feature,org.eclipse.emf.ecp.sdk.e4.feature,org.eclipse.emf.ecp.rap.sdk.feature</statsTrackedArtifacts>
+	</properties>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-p2-repository-plugin</artifactId>
+				<version>${tycho-version}</version>
+				<configuration>
+					<compress>true</compress>
+					<finalName>repository</finalName>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.eclipse.tycho.extras</groupId>
+				<artifactId>tycho-eclipserun-plugin</artifactId>
+				<executions>
+					<execution>
+						<id>add-repo-properties</id>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+		<pluginManagement>
+			<plugins>
+				<plugin>
+					<groupId>org.eclipse.tycho.extras</groupId>
+					<artifactId>tycho-eclipserun-plugin</artifactId>
+					<version>${tycho-version}</version>
+					<executions>
+						<execution>
+							<id>add-repo-properties</id>
+							<goals>
+								<goal>eclipse-run</goal>
+							</goals>
+							<phase>package</phase>
+							<configuration>
+								<!-- See http://wiki.eclipse.org/Equinox/p2/p2.mirrorsURL -->
+								<!-- See http://wiki.eclipse.org/Equinox_p2_download_stats -->
+								<appArgLine>-application org.eclipse.wtp.releng.tools.addRepoProperties</appArgLine>
+								<argLine>-DartifactRepoDirectory=${project.build.directory}/repository -Dp2MirrorsURL=${p2MirrorsURL} -Dp2StatsURI=${p2StatsURL} -DstatsTrackedArtifacts=${statsTrackedArtifacts} -DstatsArtifactsSuffix=-${project.version}</argLine>
+								<dependencies>
+									<dependency>
+										<artifactId>org.eclipse.wtp.releng.tools.feature</artifactId>
+										<type>eclipse-feature</type>
+									</dependency>
+								</dependencies>
+								<repositories>
+									<repository>
+										<id>wtp-releng</id>
+										<url>http://download.eclipse.org/webtools/releng/repository</url>
+										<layout>p2</layout>
+									</repository>
+									<repository>
+										<id>luna</id>
+										<url>http://download.eclipse.org/releases/luna</url>
+										<layout>p2</layout>
+									</repository>
+								</repositories>
+							</configuration>
+						</execution>
+					</executions>
+				</plugin>
+			</plugins>
+		</pluginManagement>
+	</build>
+	
+	<profiles>
+		<profile>
+			<id>aggregateSites</id>
+			<build>
+				<plugins>
+					<!-- Run ant script to reference emfstore update site -->
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-antrun-plugin</artifactId>
+						<version>${maven.antrun.plugin.version}</version>
+						<executions>
+							<execution>
+								<id>install</id>
+								<phase>install</phase>
+								<configuration>
+									<quiet>true</quiet>
+									<tasks>
+										<ant antfile="build.xml"/>
+									</tasks>
+								</configuration>
+								<goals>
+									<goal>run</goal>
+								</goals>
+							</execution>
+						</executions>
+						<dependencies>
+							<dependency>
+								<groupId>commons-net</groupId>
+								<artifactId>commons-net</artifactId>
+								<version>1.4.1</version>
+							</dependency>
+							<dependency>
+								<groupId>org.apache.ant</groupId>
+								<artifactId>ant</artifactId>
+								<version>1.7.1</version>
+							</dependency>
+							<dependency>
+								<groupId>org.apache.ant</groupId>
+								<artifactId>ant-nodeps</artifactId>
+								<version>1.7.1</version>
+							</dependency>
+							<dependency>
+								<groupId>org.apache.ant</groupId>
+								<artifactId>ant-trax</artifactId>
+								<version>1.7.1</version>
+							</dependency>
+							<dependency>
+								<groupId>org.apache.ant</groupId>
+								<artifactId>ant-commons-net</artifactId>
+								<version>1.7.1</version>
+							</dependency>
+							<dependency>
+								<groupId>org.apache.ant</groupId>
+								<artifactId>ant-apache-regexp</artifactId>
+								<version>1.7.1</version>
+							</dependency>
+							<dependency>
+								<groupId>ant-contrib</groupId>
+								<artifactId>ant-contrib</artifactId>
+								<version>1.0b3</version>
+							</dependency>
+						</dependencies>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+	</profiles>
+</project>
diff --git a/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.target/.project b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.target/.project
new file mode 100644
index 0000000..ca4fd0b
--- /dev/null
+++ b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.target/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.spreadsheet.releng.target</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+	</buildSpec>
+	<natures>
+	</natures>
+</projectDescription>
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
new file mode 100644
index 0000000..53e98aa
--- /dev/null
+++ b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.target/emfforms_spreadsheet.target
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

+<?pde version="3.8"?><target name="ecpfx" sequenceNumber="1">

+<locations>

+<location includeAllPlatforms="true" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">

+<unit id="org.eclipse.jdt.feature.group" version="0.0.0"/>

+<unit id="org.eclipse.emf.sdk.feature.group" version="0.0.0"/>

+<repository location="http://download.eclipse.org/releases/mars"/>

+</location>

+<location includeAllPlatforms="true" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">

+<unit id="org.eclipse.emf.ecp.emfforms.runtime.feature.feature.group" version="0.0.0"/>

+<repository location="http://download.eclipse.org/ecp/releases/releases_16"/>

+</location>

+<location includeAllPlatforms="true" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">

+<unit id="org.eclipse.emf.emfstore.example.feature.feature.group" version="0.0.0"/>

+<unit id="org.eclipse.emf.emfstore.server.feature.feature.group" version="0.0.0"/>

+<unit id="org.eclipse.emf.emfstore.client.ui.feature.feature.group" version="0.0.0"/>

+<unit id="org.eclipse.emf.emfstore.common.feature.feature.group" version="0.0.0"/>

+<unit id="org.eclipse.emf.emfstore.client.feature.feature.group" version="0.0.0"/>

+<repository location="http://download.eclipse.org/emfstore/releases_15"/>

+</location>

+<location includeAllPlatforms="true" 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.5milestones"/>

+</location>

+<location includeAllPlatforms="true" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">

+<unit id="org.apache.poi.source" version="3.9.0.v201405241750"/>

+<unit id="org.apache.poi" version="3.9.0.v201405241750"/>

+<unit id="org.apache.commons.codec" version="0.0.0"/>

+<repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20140525021250/repository/"/>

+</location>

+</locations>

+</target>

diff --git a/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.target/pom.xml b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.target/pom.xml
new file mode 100644
index 0000000..4d705c0
--- /dev/null
+++ b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.target/pom.xml
@@ -0,0 +1,16 @@
+<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/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.eclipse.emfforms.spreadsheet</groupId>
+		<artifactId>emfforms-spreadsheet-parent</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+		<relativePath>../org.eclipse.emfforms.spreadsheet.releng/</relativePath>
+	</parent>
+	<groupId>org.eclipse.emfforms.spreadsheet</groupId>
+	<artifactId>emfforms_spreadsheet</artifactId>
+	<version>1.0.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.tests/.project b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.tests/.project
new file mode 100644
index 0000000..9a5e87e
--- /dev/null
+++ b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.tests/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.spreadsheet.releng.tests</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+	</buildSpec>
+	<natures>
+	</natures>
+</projectDescription>
diff --git a/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.tests/pom.xml b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.tests/pom.xml
new file mode 100644
index 0000000..60a354c
--- /dev/null
+++ b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.tests/pom.xml
@@ -0,0 +1,123 @@
+<?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.emfforms.spreadsheet</groupId>
+		<artifactId>emfforms-spreadsheet-parent</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+		<relativePath>../org.eclipse.emfforms.spreadsheet.releng/</relativePath>
+	</parent>
+	<groupId>org.eclipse.emfforms.spreadsheet</groupId>
+	<artifactId>emfforms-spreadsheet-tests-parent</artifactId>
+	<version>1.0.0-SNAPSHOT</version>
+	<packaging>pom</packaging>
+	
+	<profiles>
+		
+		
+		<profile>
+			<id>build-server</id>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.eclipse.cbi.maven.plugins</groupId>
+						<artifactId>eclipse-jarsigner-plugin</artifactId>
+						<version>${jarsigner-version}</version>
+						<executions>
+							<execution>
+								<id>sign</id>
+								<phase>package</phase>
+								<goals>
+									<goal>sign</goal>
+								</goals>
+							</execution>
+						</executions>
+						<configuration>
+							<excludeInnerJars>true</excludeInnerJars>
+						</configuration>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+	</profiles>
+	<modules>
+	<!-- 
+		<module>../../../tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests</module>
+		<module>../../../tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests</module>
+		<module>../../../tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest</module>
+	-->
+	</modules>
+	
+	<build>
+		<sourceDirectory>src</sourceDirectory>
+		<outputDirectory>bin</outputDirectory>
+		<plugins>
+			<!-- to disable use -Dcheckstyle.skip -->
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-checkstyle-plugin</artifactId>
+				<version>2.11</version>
+				<configuration>
+					<configLocation>http://download.eclipse.org/ecp/config/esmCheckstyleTest.xml</configLocation>
+					<failsOnError>false</failsOnError>
+				</configuration>
+				<executions>
+					<execution>
+						<goals>
+							<goal>check</goal>
+						</goals>
+						<phase>verify</phase>
+					</execution>
+				</executions>
+			</plugin>
+			
+			<!-- tycho surefire include/exclude pattern -->
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-surefire-plugin</artifactId>
+				<version>${tycho-version}</version>
+				<configuration>
+					<includes>
+						<include>**/*_PTest.java</include>
+						<include>**/*_ITest.java</include>
+					</includes>
+					<testFailureIgnore>true</testFailureIgnore>
+				</configuration>
+			</plugin>
+			
+			<!-- maven surefire include/exclude pattern -->
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-surefire-plugin</artifactId>
+				<version>${mav-surefire-version}</version>
+				<executions>
+					<execution>
+						<id>test</id>
+						<phase>test</phase>
+						<configuration>
+							<testClassesDirectory>${project.build.outputDirectory}</testClassesDirectory>
+							<includes>
+				            	<include>**/*_Test.java</include>
+							</includes>
+							<testFailureIgnore>true</testFailureIgnore>
+				        </configuration>
+						<goals>
+							<goal>test</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+	</build>
+	<dependencies>
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>${junit-version}</version>
+			<scope>test</scope>
+		</dependency>
+	</dependencies>
+			
+</project>
diff --git a/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng/.project b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng/.project
new file mode 100644
index 0000000..c9903a7
--- /dev/null
+++ b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.spreadsheet.releng</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+	</buildSpec>
+	<natures>
+	</natures>
+</projectDescription>
diff --git a/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng/pom.xml b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng/pom.xml
new file mode 100644
index 0000000..14ed2ea
--- /dev/null
+++ b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng/pom.xml
@@ -0,0 +1,258 @@
+<?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>
+	<groupId>org.eclipse.emfforms.spreadsheet</groupId>
+	<artifactId>emfforms-spreadsheet-parent</artifactId>
+	<version>1.0.0-SNAPSHOT</version>
+	<packaging>pom</packaging>
+
+	<properties>
+		<tycho-version>0.22.0</tycho-version>
+		<tycho-extras-version>0.22.0</tycho-extras-version>
+		<javadoc-version>2.9</javadoc-version>
+		<javadoc-title>EMFForms Spreadsheet 1.0.0 API</javadoc-title>
+		<maven.antrun.plugin.version>1.7</maven.antrun.plugin.version>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+		<tycho.scmUrl>scm:git:git://git.eclipse.org/gitroot/emfclient/org.eclipse.emf.ecp.core.git</tycho.scmUrl>
+		<jarsigner-version>1.1.0</jarsigner-version>
+		<mav-surefire-version>2.16</mav-surefire-version>
+		<junit-version>4.11</junit-version>
+		
+		<!-- Properties to enable jacoco code coverage analysis with sonar -->
+		<sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
+		<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
+		<sonar.jacoco.reportPath>../../tests/coverage/jacoco.exec</sonar.jacoco.reportPath>
+		<sonar.exclusions>**/model/**,**/test/**</sonar.exclusions>
+		
+		<target-spreadsheet>emfforms_spreadsheet</target-spreadsheet>
+	</properties>
+
+	<profiles>
+		<!-- Profile for adding aggregate sites to the built p2 repositry -->
+		<profile>
+			<id>aggregateSites</id>
+			<activation>
+				<property>
+					<name>aggSite</name>
+				</property>
+			</activation>
+		</profile>
+		
+		<!-- Profile for use on the eclipse build server. Enables code signing, etc. -->
+		<profile>
+			<id>build-server</id>
+			<activation>
+				<property>
+					<name>build-server</name>
+				</property>
+			</activation>
+			<build>
+				<plugins>
+					<!-- Configure build to use the jdk specified in manifest -->
+					<plugin>
+						<groupId>org.eclipse.tycho</groupId>
+						<artifactId>tycho-compiler-plugin</artifactId>
+						<version>${tycho-version}</version>
+						<configuration>
+							<useJDK>BREE</useJDK>
+						</configuration>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+	</profiles>
+
+	<pluginRepositories>
+		<pluginRepository>
+			<id>eclipse-maven-releases</id>
+			<url>https://repo.eclipse.org/content/repositories/releases/</url>
+			<snapshots>
+				<enabled>false</enabled>
+			</snapshots>
+		</pluginRepository>
+	</pluginRepositories>
+
+	<modules>
+		<module>../org.eclipse.emfforms.spreadsheet.releng.bundles</module>
+		<module>../org.eclipse.emfforms.spreadsheet.releng.features</module>
+		<module>../org.eclipse.emfforms.spreadsheet.releng.tests</module>
+		<module>../org.eclipse.emfforms.spreadsheet.releng.target</module>
+		<module>../org.eclipse.emfforms.spreadsheet.releng.repository</module>
+	</modules>
+
+	<build>
+		<sourceDirectory>src</sourceDirectory>
+		<outputDirectory>bin</outputDirectory>
+
+		<plugins>
+			<plugin>  
+				<groupId>org.eclipse.tycho</groupId>  
+				<artifactId>tycho-versions-plugin</artifactId>  
+				<version>${tycho-version}</version>  
+			</plugin>
+
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-maven-plugin</artifactId>
+				<version>${tycho-version}</version>
+				<extensions>true</extensions>
+			</plugin>
+
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>target-platform-configuration</artifactId>
+				<version>${tycho-version}</version>
+				<configuration>
+					<resolver>p2</resolver>
+					<pomDependencies>consider</pomDependencies>
+					<allowConflictingDependencies>true</allowConflictingDependencies>
+					<includePackedArtifacts>true</includePackedArtifacts>
+					<environments>
+						<environment>
+							<os>win32</os>
+							<ws>win32</ws>
+							<arch>x86</arch>
+						</environment>
+						<environment>
+							<os>win32</os>
+							<ws>win32</ws>
+							<arch>x86_64</arch>
+						</environment>
+						<environment>
+							<os>linux</os>
+							<ws>gtk</ws>
+							<arch>x86</arch>
+						</environment>
+						<environment>
+							<os>linux</os>
+							<ws>gtk</ws>
+							<arch>x86_64</arch>
+						</environment>
+						<!--  Beginning with mars this environment is removed -->
+						<!--environment>
+							<os>macosx</os>
+							<ws>cocoa</ws>
+							<arch>x86</arch>
+						</environment-->
+						<environment>
+							<os>macosx</os>
+							<ws>cocoa</ws>
+							<arch>x86_64</arch>
+						</environment>
+					</environments>
+					<target>
+						<artifact>
+							<groupId>org.eclipse.emfforms.spreadsheet</groupId>
+							<artifactId>${target-spreadsheet}</artifactId>
+							<version>1.0.0-SNAPSHOT</version>
+						</artifact>
+					</target>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-packaging-plugin</artifactId>
+				<version>${tycho-version}</version>
+				<dependencies>
+					<dependency>
+						<groupId>org.eclipse.tycho.extras</groupId>
+						<artifactId>tycho-buildtimestamp-jgit</artifactId>
+						<version>${tycho-extras-version}</version>
+					</dependency>
+					<dependency>
+						<groupId>org.eclipse.tycho.extras</groupId>
+						<artifactId>tycho-sourceref-jgit</artifactId>
+						<version>${tycho-extras-version}</version>
+					</dependency>
+				</dependencies>
+				<configuration>
+					<!-- <timestampProvider>jgit</timestampProvider> -->
+					<!-- generate new qualifier even if it is only the pom.xml that changed 
+						<jgit.ignore> pom.xml </jgit.ignore> -->
+					<format>yyyyMMdd-HHmm</format>
+					<sourceReferences>
+						<generate>true</generate>
+					</sourceReferences>
+				</configuration>
+			</plugin>
+			<!-- enable javadocgeneration -->
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-javadoc-plugin</artifactId>
+				<version>${javadoc-version}</version>
+				<configuration>
+					<doctitle>${javadoc-title}</doctitle>
+					<show>protected</show>
+					<show>public</show>
+					<nohelp>true</nohelp>
+				</configuration>
+			</plugin>
+			<!-- to disable use -Dcheckstyle.skip -->
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-checkstyle-plugin</artifactId>
+				<version>2.11</version>
+				<configuration>
+					<configLocation>http://download.eclipse.org/ecp/config/esmCheckstyle.xml</configLocation>
+
+					<suppressionsFileExpression>checkstyle.suppressions.file</suppressionsFileExpression>
+					<suppressionsLocation>http://download.eclipse.org/ecp/config/suppressions.xml</suppressionsLocation>
+					<failsOnError>false</failsOnError>
+				</configuration>
+				<executions>
+					<execution>
+						<goals>
+							<goal>check</goal>
+						</goals>
+						<phase>verify</phase>
+					</execution>
+				</executions>
+			</plugin>
+
+			<!-- enable source bundle generation -->
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-source-plugin</artifactId>
+				<version>${tycho-version}</version>
+				<executions>
+					<execution>
+						<id>plugin-source</id>
+						<goals>
+							<goal>plugin-source</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+
+			<plugin>
+				<groupId>org.jacoco</groupId>
+				<artifactId>jacoco-maven-plugin</artifactId>
+				<version>0.7.4.201502262128</version>
+				<configuration>
+					<destFile>${sonar.jacoco.reportPath}</destFile>
+					<append>true</append> 
+				</configuration>
+				<executions>
+					<execution>
+						<id>jacoco-initialize</id>
+						<goals>
+							<goal>prepare-agent</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+		
+		<pluginManagement>
+			<plugins>
+				<plugin>
+					<groupId>org.codehaus.mojo</groupId>
+					<artifactId>sonar-maven-plugin</artifactId>
+					<version>2.3.1</version>
+				</plugin>
+			</plugins>
+		</pluginManagement>
+	</build>
+</project>
diff --git a/tests/ECPQ7Tests/EPPTests/pom.xml b/tests/ECPQ7Tests/EPPTests/pom.xml
index 068e2d0..c74d8e1 100644
--- a/tests/ECPQ7Tests/EPPTests/pom.xml
+++ b/tests/ECPQ7Tests/EPPTests/pom.xml
@@ -15,36 +15,32 @@
 		<module>update-site</module>
 	</modules>
 	<properties>
-		<emfstore-update-site>http://download.eclipse.org/emf-store/releases_14</emfstore-update-site>
+		<emfstore-update-site>http://download.eclipse.org/emfstore/releases_15</emfstore-update-site>
 	</properties>
-	<profiles>
-		<profile>
-			<id>q7runner</id>
-			<activation>
-				<activeByDefault>true</activeByDefault>
-			</activation>
+
 			<build>
 				<plugins>
 					<plugin>
-						<groupId>com.xored.q7</groupId>
-						<artifactId>q7-maven-plugin</artifactId>
-						<version>${q7-maven-version}</version>
+						<groupId>com.xored.ci4rcptt</groupId>
+						<artifactId>ci4rcptt-maven-plugin</artifactId>
+						<version>${ci4rcptt-maven-version}</version>
 						<extensions>true</extensions>
 						<configuration>
-							<q7>
-								<version>${q7-runner-version}</version>
-								<vmArgs>
-									<vmArg>-Dhttp.proxyHost=proxy.eclipse.org</vmArg>
-									<vmArg>-Dhttp.proxyPort=9898</vmArg>
-									<vmArg>-Dhttps.proxyHost=proxy.eclipse.org</vmArg>
-									<vmArg>-Dhttps.proxyPort=9898</vmArg>
-								</vmArgs>
-							</q7>
-
+								<runner>
+									<version>${ci4rcptt-runner-version}</version>
+								</runner>
 							<aut>
-								<groupId>org.eclipse</groupId>
-		    						<artifactId>modeling</artifactId>
-		    						<version>${eclipse-version}</version>
+								<!--
+								<explicit>https://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/${eclipse-name}/${eclipse-sr}/eclipse-modeling-${eclipse-name}-${eclipse-sr}-win32-x86_64.zip&r=1</explicit>
+								-->
+								<!--
+								<explicit>http://mirror.netcologne.de/eclipse//technology/epp/downloads/release/${eclipse-name}/${eclipse-sr}/eclipse-modeling-${eclipse-name}-${eclipse-sr}-linux-gtk-x86_64.tar.gz</explicit>
+								-->
+								<explicit>http://mirror.cc.columbia.edu/pub/software/eclipse/technology/epp/downloads/release/${eclipse-name}/${eclipse-sr}/eclipse-modeling-${eclipse-name}-${eclipse-sr}-linux-gtk-x86_64.tar.gz</explicit>
+								
+								<!--win32-x86_64.zip-->
+								<!--linux-gtk-x86_64.tar.gz-->
+
 								<injections>
 									<injection>
 										<site>${emfstore-update-site}</site>
@@ -59,7 +55,7 @@
 										</features>
 									</injection>
 									<injection>
-										<site>https://hudson.eclipse.org/ecp/job/releaseBranch/lastSuccessfulBuild/artifact/releng/org.eclipse.emf.ecp.repository/target/repository/</site>
+										<site>${currentBuild}/repository/</site>
 										<features>
 											<feature>org.eclipse.emf.ecp.sdk.feature.feature.group</feature>
 										</features>
@@ -70,137 +66,9 @@
 								<project>${project.basedir}/../project</project>
 							</projects>
 
-							<testOptions>
-								<execTimeout>7200</execTimeout>
-								<testExecTimeout>8000</testExecTimeout>
-							</testOptions>
-
 						</configuration>
 					</plugin>
 				</plugins>
 			</build>
-		</profile>
-
-		<profile>
-			<id>q7cloud</id>
-			<activation>
-				<property>
-					<name>useCloud</name>
-					<value>true</value>
-				</property>
-			</activation>
-			<build>
-				<pluginManagement>
-					<plugins>
-						<plugin>
-							<groupId>org.eclipse.tycho.extras</groupId>
-							<artifactId>tycho-p2-extras-plugin</artifactId>
-							<version>0.20.0</version>
-							<executions>
-								<execution>
-									<phase>generate-resources</phase>
-									<goals>
-										<goal>mirror</goal>
-									</goals>
-								</execution>
-							</executions>
-							<configuration>
-								<source>
-									<!-- source repositories to mirror from -->
-									<repository>
-										<url>${emfstore-update-site}</url>
-										<layout>p2</layout>
-										<!-- supported layouts are "p2-metadata", "p2-artifacts", and "p2" (for joint repositories; default) -->
-									</repository>
-									<!-- source repositories to mirror from -->
-									<repository>
-										<url>https://hudson.eclipse.org/ecp/job/releaseBranch/lastSuccessfulBuild/artifact/releng/org.eclipse.emf.ecp.repository/target/repository/</url>
-										<layout>p2</layout>
-										<!-- supported layouts are "p2-metadata", "p2-artifacts", and "p2" (for joint repositories; default) -->
-									</repository>
-								</source>
-
-								<!-- starting from here all configuration parameters are optional -->
-								<!-- they are only shown here with default values for documentation purpose -->
-
-								<!-- List of IUs to mirror. If omitted, allIUs will be mirrored. -->
-								<!-- Omitted IU version element means latest version of the IU -->
-								<ius>
-									<iu><id>org.eclipse.emf.emfstore.server.feature.feature.group</id></iu>
-									<iu><id>org.eclipse.emf.emfstore.ecore.feature.feature.group</id></iu>
-									<iu><id>org.eclipse.emf.emfstore.example.feature.feature.group</id></iu>
-									<iu><id>org.eclipse.emf.emfstore.client.feature.feature.group</id></iu>
-									<iu><id>org.eclipse.emf.emfstore.common.feature.feature.group</id></iu>
-									<iu><id>org.eclipse.emf.emfstore.client.transaction.feature.feature.group</id></iu>
-									<iu><id>org.eclipse.emf.emfstore.client.ui.feature.feature.group</id></iu>
-									<iu><id>org.eclipse.emf.ecp.sdk.feature.feature.group</id></iu>
-								</ius>
-								<!-- The destination directory to mirror to. -->
-								<destination>${project.build.directory}/injections</destination>
-								<!-- Whether only strict dependencies should be followed. -->
-								<!-- "strict" means perfect version match -->
-								<followStrictOnly>false</followStrictOnly>
-								<!-- Whether or not to follow optional requirements. -->
-								<includeOptional>true</includeOptional>
-								<!-- Whether or not to follow non-greedy requirements. -->
-								<includeNonGreedy>true</includeNonGreedy>
-								<!-- Filter properties. E.g. filter only one platform -->
-								<!-- Whether to filter the resulting set of IUs to only -->
-								<!-- include the latest version of each IU -->
-								<latestVersionOnly>false</latestVersionOnly>
-								<!-- don't mirror artifacts, only metadata -->
-								<mirrorMetadataOnly>false</mirrorMetadataOnly>
-								<!-- whether to compress the content.xml/artifacts.xml -->
-								<compress>true</compress>
-								<!-- whether to append to the target repository content -->
-								<append>true</append>
-								<!-- whether to mirror pack200 artifacts also. Available since tycho-extras 0.17.0 -->
-								<includePacked>false</includePacked>
-							</configuration>
-						</plugin>
-					</plugins>
-				</pluginManagement>
-				<plugins>
-					<plugin>
-						<groupId>com.xored.q7</groupId>
-						<artifactId>q7-server-maven-plugin</artifactId>
-						<version>${q7-server-maven-version}</version>
-						<extensions>true</extensions>
-						<configuration>
-							<testFailureIgnore>true</testFailureIgnore>
-							<metadata>
-								<public>true</public>
-								<projectName>EMF Client Platform</projectName>
-							</metadata>
-							<q7client>
-								<version>${q7-client-version}</version>
-								<vmArgs>
-									<vmArg>-Dhttp.proxyHost=proxy.eclipse.org</vmArg>
-									<vmArg>-Dhttp.proxyPort=9898</vmArg>
-									<vmArg>-Dhttps.proxyHost=proxy.eclipse.org</vmArg>
-									<vmArg>-Dhttps.proxyPort=9898</vmArg>
-								</vmArgs>
-							</q7client>
-							<q7server>https://cloud.xored.com</q7server>
-							<projects>
-								<project>${project.basedir}/../project</project>
-							</projects>
-							<aut>
-								<uri>http://maven.xored.com/nexus/content/repositories/q7-releases/org/eclipse/modeling/${eclipse-version}/modeling-${eclipse-version}-[classifier].[ext]</uri>
-								<injections>
-									<injection>
-										<site>file://${project.build.directory}/injections</site>
-									</injection>
-								</injections>
-							</aut>
-							<testOptions>
-								<execTimeout>7200</execTimeout>
-								<testExecTimeout>8000</testExecTimeout>
-							</testOptions>
-						</configuration>
-					</plugin>
-				</plugins>
-			</build>
-		</profile>
-	</profiles>
+		
 </project>
diff --git a/tests/ECPQ7Tests/EPPTests/update-site/4.3/pom.xml b/tests/ECPQ7Tests/EPPTests/update-site/4.3/pom.xml
index 8e25eb8..2e13471 100644
--- a/tests/ECPQ7Tests/EPPTests/update-site/4.3/pom.xml
+++ b/tests/ECPQ7Tests/EPPTests/update-site/4.3/pom.xml
@@ -9,30 +9,10 @@
   </parent>
   
   <artifactId>q7tests-kepler</artifactId>
-  <packaging>q7test</packaging>
+  <packaging>rcpttTest</packaging>
 
   <properties>
-    <eclipse-version>4.3.2</eclipse-version>
+    <eclipse-name>kepler</eclipse-name>
+	<eclipse-sr>SR2</eclipse-sr>
   </properties>
-  <profiles>
-    <profile>
-      <id>q7cloud</id>
-      <activation>
-	<property>
-	  <name>useCloud</name>
-	  <value>true</value>
-	</property>
-      </activation>
-      <build>
-	<plugins>
-	  <plugin>
-	    <groupId>org.eclipse.tycho.extras</groupId>
-	    <artifactId>tycho-p2-extras-plugin</artifactId>
-	    <version>0.20.0</version>
-	  </plugin>
-	</plugins>
-      </build>
-    </profile>
-  </profiles>
-
 </project>
diff --git a/tests/ECPQ7Tests/EPPTests/update-site/4.4/pom.xml b/tests/ECPQ7Tests/EPPTests/update-site/4.4/pom.xml
index 0edf8d2..f98a42f 100644
--- a/tests/ECPQ7Tests/EPPTests/update-site/4.4/pom.xml
+++ b/tests/ECPQ7Tests/EPPTests/update-site/4.4/pom.xml
@@ -9,30 +9,10 @@
   </parent>
   
   <artifactId>q7tests-luna</artifactId>
-  <packaging>q7test</packaging>
+  <packaging>rcpttTest</packaging>
 
-<properties>
-    <eclipse-version>4.4.0</eclipse-version>
+	<properties>
+    <eclipse-name>luna</eclipse-name>
+	<eclipse-sr>SR2</eclipse-sr>
   </properties>
-  <profiles>
-    <profile>
-      <id>q7cloud</id>
-      <activation>
-	<property>
-	  <name>useCloud</name>
-	  <value>true</value>
-	</property>
-      </activation>
-      <build>
-	<plugins>
-	  <plugin>
-	    <groupId>org.eclipse.tycho.extras</groupId>
-	    <artifactId>tycho-p2-extras-plugin</artifactId>
-	    <version>0.20.0</version>
-	  </plugin>
-	</plugins>
-      </build>
-    </profile>
-  </profiles>
-
 </project>
diff --git a/tests/ECPQ7Tests/EPPTests/update-site/project/Preview_Control_Calendar.test b/tests/ECPQ7Tests/EPPTests/update-site/project/Preview_Control_Calendar.test
index 612d6a0..28c5839 100644
--- a/tests/ECPQ7Tests/EPPTests/update-site/project/Preview_Control_Calendar.test
+++ b/tests/ECPQ7Tests/EPPTests/update-site/project/Preview_Control_Calendar.test
@@ -6,8 +6,8 @@
 Element-Version: 3.0
 External-Reference: 
 Id: _5nADsDNtEeSiS7b7ptZeHw
-Runtime-Version: 1.5.3.201409120955
-Save-Time: 11/7/14 4:23 PM
+Runtime-Version: 1.5.5.201503020312
+Save-Time: 4/2/15 1:06 PM
 Testcase-Type: ecl
 
 ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac
@@ -47,26 +47,19 @@
     get-property "getChildren().Control[1].getStyle()" | contains "NO_FOCUS" | verify-true
     get-property "getChildren().Control[1].getStyle()" | contains "LEFT_TO_RIGHT" | verify-true
     get-property "getChildren().Control[1].getStyle()" | contains "LEAD" | verify-true
-    get-property "getChildren().Control[2].getChildren().length" | equals 2 | verify-true
-    get-property "getChildren().Control[2].getChildren().Control[0].getText()" | equals "" | verify-true
-    get-property "getChildren().Control[2].getChildren().Control[0].isVisible()" | equals true | verify-true
-    get-property "getChildren().Control[2].getChildren().Control[0].getStyle()" 
-        | contains "SINGLE" | verify-true
-    get-property "getChildren().Control[2].getChildren().Control[0].getStyle()" 
-        | contains "BORDER" | verify-true
-    get-property "getChildren().Control[2].getChildren().Control[0].getStyle()" 
-        | contains "LEFT_TO_RIGHT" | verify-true
-    get-property "getChildren().Control[2].getChildren().Control[0].getStyle()" 
-        | contains "LEFT" | verify-true
-    get-property "getChildren().Control[2].getChildren().Control[1].getClassName()" 
-        | equals "org.eclipse.swt.widgets.Button" | verify-true
-    get-property "getChildren().Control[2].getChildren().Control[1].getGrayed()" | equals false | verify-true
-    get-property "getChildren().Control[2].getChildren().Control[1].getStyle()" 
-        | contains "PUSH" | verify-true
-    get-property "getChildren().Control[2].getChildren().Control[1].getStyle()" 
-        | contains "LEFT_TO_RIGHT" | verify-true
-    get-property "getChildren().Control[2].getChildren().Control[1].getStyle()" 
-        | contains "CENTER" | verify-true
+    get-property "getChildren().Control[2].getChildren().length" | equals 1 | verify-true
+}
+with [get-view "EMF Forms Preview"] {
+    with [get-editbox -after [get-label "Date Of Birth"]] {
+        get-property "getText()" | equals "" | verify-true
+        get-property "isVisible()" | equals true | verify-true
+        get-property "getStyle()" | contains "[SINGLE, BORDER, LEFT_TO_RIGHT, LEFT]" | verify-true
+    }
+    with [get-button -after [get-label "Date Of Birth"]] {
+        get-property "getClassName()" | equals "org.eclipse.swt.widgets.Button" | verify-true
+        get-property "getGrayed()" | equals false | verify-true
+        get-property "getStyle()" | contains "[PUSH, LEFT_TO_RIGHT, CENTER]" | verify-true
+    }
 }
 
 get-view "EMF Forms Preview" | get-button -after [get-label "Date Of Birth"] | click
diff --git a/tests/ECPQ7Tests/EPPTests/update-site/project/Preview_Control_Table.test b/tests/ECPQ7Tests/EPPTests/update-site/project/Preview_Control_Table.test
index afd8d61..68d2e90 100644
--- a/tests/ECPQ7Tests/EPPTests/update-site/project/Preview_Control_Table.test
+++ b/tests/ECPQ7Tests/EPPTests/update-site/project/Preview_Control_Table.test
@@ -6,8 +6,8 @@
 Element-Version: 3.0
 External-Reference: 
 Id: _5oAJQDNtEeSiS7b7ptZeHw
-Runtime-Version: 1.5.2.201408180747
-Save-Time: 9/30/14 12:29 PM
+Runtime-Version: 1.5.5.201503020312
+Save-Time: 4/2/15 1:02 PM
 Testcase-Type: ecl
 
 ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac
@@ -24,14 +24,19 @@
     get-button "Create and link new Domain Model Reference" | click
 }
 
-
 with [get-window "New Reference Element"] {
     get-tree | select "table/TableDomainModelReference"
     get-button "Next >" | click
-    get-button "Link Domain Model EFeature" | click
-    with [get-window "Select a EStructuralFeature"] {
-        get-tree | select "tasks : Task"
-        get-button OK | click
+    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 "tasks : Task"
+            get-button OK | click
+        }
+        get-button Finish | click
     }
     get-button Finish | click
 }
diff --git a/tests/ECPQ7Tests/EPPTests/update-site/project/Preview_Table.test b/tests/ECPQ7Tests/EPPTests/update-site/project/Preview_Table.test
index 665e195..789e752 100644
--- a/tests/ECPQ7Tests/EPPTests/update-site/project/Preview_Table.test
+++ b/tests/ECPQ7Tests/EPPTests/update-site/project/Preview_Table.test
@@ -6,8 +6,8 @@
 Element-Version: 3.0
 External-Reference: 
 Id: _5oppgDNtEeSiS7b7ptZeHw
-Runtime-Version: 1.5.2.201408180747
-Save-Time: 9/30/14 12:53 PM
+Runtime-Version: 1.5.5.201503020312
+Save-Time: 4/2/15 12:47 PM
 Testcase-Type: ecl
 
 ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac
@@ -27,11 +27,17 @@
     get-tree | select "View/TableControl"
     get-button "Create and link new Domain Model Reference" | click
 }
-with [get-window "New Reference Element"] {
-    get-button "Link Domain Model EFeature" | click
-    with [get-window "Select a EStructuralFeature"] {
-        get-tree | select "tasks : Task"
-        get-button OK | 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 "tasks : Task"
+            get-button OK | click
+        }
+        get-button Finish | click
     }
     get-button Finish | click
 }
diff --git a/tests/ECPQ7Tests/EPPTests/update-site/project/Preview_TablePanel.test b/tests/ECPQ7Tests/EPPTests/update-site/project/Preview_TablePanel.test
index 7eb1f18..5557f97 100644
--- a/tests/ECPQ7Tests/EPPTests/update-site/project/Preview_TablePanel.test
+++ b/tests/ECPQ7Tests/EPPTests/update-site/project/Preview_TablePanel.test
@@ -6,8 +6,8 @@
 Element-Version: 3.0
 External-Reference: 
 Id: _5ow-QDNtEeSiS7b7ptZeHw
-Runtime-Version: 1.5.2.201408180747
-Save-Time: 9/30/14 1:23 PM
+Runtime-Version: 1.5.5.201503020312
+Save-Time: 4/2/15 12:50 PM
 Testcase-Type: ecl
 
 ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac
@@ -26,11 +26,17 @@
     }
     get-button "Create and link new Domain Model Reference" | click
 }
-with [get-window "New Reference Element"] {
-    get-button "Link Domain Model EFeature" | click
-    with [get-window "Select a EStructuralFeature"] {
-        get-tree | select "users : User"
-        get-button OK | 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
 }
@@ -76,7 +82,7 @@
 with [get-view "EMF Forms Preview"] {
     get-label "Last Name*" | get-property caption | equals "Last Name*" | verify-true
     get-editbox -after [get-label "Last Name*"] | get-property backgroundColor | equals "#FF0000" | verify-true
-    get-control Any -after [get-label Users] -index 12 | get-property "getChildren().length" | equals 3 | verify-true
+    get-control Any -after [get-label Users] -index 13 | get-property "getChildren().length" | equals 3 | verify-true
 }
 with [get-editor "UserGroup.view"] {
     get-tree | select "View/TableControl"
@@ -100,6 +106,6 @@
         apply-cell-edit -deactivate
     }
 }
-get-view "EMF Forms Preview" | get-control Any -after [get-label Users] -index 12 | get-property "getChildren().length" 
+get-view "EMF Forms Preview" | get-control Any -after [get-label Users] -index 13 | get-property "getChildren().length" 
     | equals 31 | verify-true
 ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac--
diff --git a/tests/ECPQ7Tests/NonEPPTests/pom.xml b/tests/ECPQ7Tests/NonEPPTests/pom.xml
index 22d61d2..9bccefa 100644
--- a/tests/ECPQ7Tests/NonEPPTests/pom.xml
+++ b/tests/ECPQ7Tests/NonEPPTests/pom.xml
@@ -3,7 +3,7 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>q7-non-epp-tests</artifactId>
-	<packaging>q7test</packaging>
+	<packaging>rcpttTest</packaging>
 
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
@@ -11,106 +11,29 @@
 		<version>0.0.1-SNAPSHOT</version>
 	</parent>
 
-	<properties>
-		<aut-base-path>https://hudson.eclipse.org/ecp/job/emf-emfclient-integration/lastSuccessfulBuild/artifact/releng/org.eclipse.emf.ecp.products/target/products/</aut-base-path>
-	</properties>
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>com.xored.ci4rcptt</groupId>
+				<artifactId>ci4rcptt-maven-plugin</artifactId>
+				<version>${ci4rcptt-maven-version}</version>
+				<extensions>true</extensions>
+				<configuration>
+						<runner>
+							<version>${ci4rcptt-runner-version}</version>
+						</runner>
+					<aut>
+						<explicit>${currentBuild}/products/org.eclipse.emf.ecp.3x-[platform].zip</explicit>
 
-	<profiles>
-		<profile>
-			<id>q7runner</id>
-			<activation>
-				<activeByDefault>true</activeByDefault>
-			</activation>
-
-			<build>
-				<plugins>
-					<plugin>
-						<groupId>com.xored.q7</groupId>
-						<artifactId>q7-maven-plugin</artifactId>
-						<version>${q7-maven-version}</version>
-						<extensions>true</extensions>
-						<configuration>
-							<q7>
-								<version>${q7-runner-version}</version>
-								<vmArgs>
-									<vmArg>-Dhttp.proxyHost=proxy.eclipse.org</vmArg>
-									<vmArg>-Dhttp.proxyPort=9898</vmArg>
-									<vmArg>-Dhttps.proxyHost=proxy.eclipse.org</vmArg>
-									<vmArg>-Dhttps.proxyPort=9898</vmArg>
-								</vmArgs>
-							</q7>
-
-							<aut>
-								<explicit>${aut-base-path}/org.eclipse.emf.ecp.3x-[platform].zip</explicit>
-
-								<args>
-									<arg>-nl</arg>
-									<arg>en</arg>
-								</args>
-							</aut>
-
-							<testOptions>
-								<execTimeout>1000000</execTimeout>
-								<testExecTimeout>1000000</testExecTimeout>
-							</testOptions>
-
-						</configuration>
-					</plugin>
-				</plugins>
-			</build>
-		</profile>
-
-		<profile>
-			<id>q7cloud</id>
-			<activation>
-				<property>
-					<name>useCloud</name>
-					<value>true</value>
-				</property>
-			</activation>
-
-			<build>
-				<plugins>
-					<plugin>
-						<groupId>com.xored.q7</groupId>
-						<artifactId>q7-server-maven-plugin</artifactId>
-						<version>${q7-server-maven-version}</version>
-						<extensions>true</extensions>
-						<configuration>
-							<testFailureIgnore>true</testFailureIgnore>
-							<metadata>
-								<public>true</public>
-								<projectName>EMF Client Platform</projectName>
-							</metadata>
-
-							<classifiers>
-								<classifier>win32.win32.x86</classifier>
-							</classifiers>
-
-							<aut>
-								<uri>${aut-base-path}/org.eclipse.emf.ecp.3x-[classifier].[ext]</uri>
-							</aut>
-
-							<testOptions>
-								<execTimeout>1000000</execTimeout>
-								<testExecTimeout>1000000</testExecTimeout>
-							</testOptions>
-
-							<q7client>
-								<version>${q7-client-version}</version>
-								<vmArgs>
-									<vmArg>-Dhttp.proxyHost=proxy.eclipse.org</vmArg>
-									<vmArg>-Dhttp.proxyPort=9898</vmArg>
-									<vmArg>-Dhttps.proxyHost=proxy.eclipse.org</vmArg>
-									<vmArg>-Dhttps.proxyPort=9898</vmArg>
-								</vmArgs>
-							</q7client>
-
-							<q7server>https://cloud.xored.com</q7server>
-						</configuration>
-					</plugin>
-				</plugins>
-			</build>
-		</profile>
-	</profiles>
+						<args>
+							<arg>-nl</arg>
+							<arg>en</arg>
+						</args>
+					</aut>
+					
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+		
 </project>
diff --git a/tests/ECPQ7Tests/pom.xml b/tests/ECPQ7Tests/pom.xml
index eb4cb39..d884d9c 100644
--- a/tests/ECPQ7Tests/pom.xml
+++ b/tests/ECPQ7Tests/pom.xml
@@ -8,36 +8,28 @@
 	<packaging>pom</packaging>
 
 	<properties>
-		<q7-maven-version>1.5.1</q7-maven-version>
-		<q7-server-maven-version>1.4.1-SNAPSHOT</q7-server-maven-version>
-		<q7-runner-version>1.5.5-SNAPSHOT</q7-runner-version>
-		<q7-client-version>1.5.3-SNAPSHOT</q7-client-version>
+		<ci4rcptt-runner-version>1.5.5</ci4rcptt-runner-version>
+		<ci4rcptt-maven-version>1.5.5</ci4rcptt-maven-version>
+		<currentBuild>https://hudson.eclipse.org/ecp/job/ecp-develop/lastSuccessfulBuild/artifact/releng/org.eclipse.emf.ecp.repository/target</currentBuild>
 	</properties> 
-
-	<repositories>
-		<repository>
-			<id>q7-releases</id>
-			<name>Xored Q7</name>
-			<url>http://maven.xored.com/nexus/content/repositories/q7-releases/</url>
-		</repository>
-	</repositories>
+	
 
 	<pluginRepositories>
 		<pluginRepository>
-			<id>q7-releases</id>
-			<name>Xored Q7 Maven repository</name>
-			<url>http://maven.xored.com/nexus/content/repositories/q7-releases/</url>
+		  <id>xored_releases</id>
+		  <name>Xored Maven repository</name>
+		  <url>http://maven.xored.com/nexus/content/repositories/ci4rcptt-releases/</url>
 		</pluginRepository>
 		<pluginRepository>
-			<id>q7-snapshots</id>
-			<name>Xored Q7 Maven repository</name>
-			<url>http://maven.xored.com/nexus/content/repositories/q7-snapshots/</url>
+		  <id>xored_snapshot</id>
+		  <name>Xored Maven repository</name>
+		  <url>http://maven.xored.com/nexus/content/repositories/ci4rcptt-snapshots/</url>
 		</pluginRepository>
-	</pluginRepositories> 
-
+		
+	</pluginRepositories>
 	<modules>
 		<module>EPPTests</module>
 		<module>NonEPPTests</module>
 	</modules>
-
+	
 </project>
diff --git a/tests/org.eclipse.emf.ecp.changebroker.emfstore.test/.gitignore b/tests/org.eclipse.emf.ecp.changebroker.emfstore.test/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.changebroker.emfstore.test/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/tests/org.eclipse.emf.ecp.changebroker.emfstore.test/ChangeBrokerEMFStore_ITest.launch b/tests/org.eclipse.emf.ecp.changebroker.emfstore.test/ChangeBrokerEMFStore_ITest.launch
index 8b9981a..6376c20 100644
--- a/tests/org.eclipse.emf.ecp.changebroker.emfstore.test/ChangeBrokerEMFStore_ITest.launch
+++ b/tests/org.eclipse.emf.ecp.changebroker.emfstore.test/ChangeBrokerEMFStore_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.test,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.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.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.view.control,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.databinding,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.databinding,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="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.test,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.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.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.view.control,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"/>
 <booleanAttribute key="includeOptional" value="true"/>
 <stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
diff --git a/tests/org.eclipse.emf.ecp.changebroker.emfstore.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.changebroker.emfstore.test/META-INF/MANIFEST.MF
index 466d953..6ee91bd 100644
--- a/tests/org.eclipse.emf.ecp.changebroker.emfstore.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.changebroker.emfstore.test/META-INF/MANIFEST.MF
@@ -2,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Change Broker EMFStore Provider Tests
 Bundle-SymbolicName: org.eclipse.emf.ecp.changebroker.emfstore.test
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Fragment-Host: org.eclipse.emf.ecp.changebroker.emfstore;bundle-version="[1.5.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)",
  org.eclipse.osgi;bundle-version="[3.7.0,4.0.0)"
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emf.ecp.changebroker.emfstore.test;version
- ="1.5.1";x-internal:=true
+ ="1.6.0";x-internal:=true
diff --git a/tests/org.eclipse.emf.ecp.changebroker.emfstore.test/pom.xml b/tests/org.eclipse.emf.ecp.changebroker.emfstore.test/pom.xml
index f63d4b6..3a26907 100644
--- a/tests/org.eclipse.emf.ecp.changebroker.emfstore.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.changebroker.emfstore.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.5.1-SNAPSHOT</version>
+		<version>1.6.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.emfstore.test</artifactId>
-	<version>1.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 		<build>
@@ -24,17 +24,27 @@
 				<configuration>
 		          	<useUIHarness>true</useUIHarness>
 		          	<useUIThread>true</useUIThread>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>p2-installable-unit</type>
-							<artifactId>org.eclipse.equinox.ds</artifactId>
-						</dependency>
-					</dependencies>
+				</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.target.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>p2-installable-unit</type>
+								<id>org.eclipse.equinox.ds</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
diff --git a/tests/org.eclipse.emf.ecp.changebroker.test/.gitignore b/tests/org.eclipse.emf.ecp.changebroker.test/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.changebroker.test/.gitignore
@@ -0,0 +1 @@
+/bin/
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 cf36700..b5ee0eb 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.emfstore,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.view.control,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.databinding,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.databinding,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="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.emfstore,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.view.control,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"/>
 <booleanAttribute key="includeOptional" value="true"/>
 <stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
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 1b4ec1f..9f5d50a 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,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Change Broker Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.changebroker.test
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Fragment-Host: org.eclipse.emf.ecp.changebroker;bundle-version="[1.5.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.changebroker.test;version="1.5.1";
+Export-Package: org.eclipse.emf.ecp.changebroker.test;version="1.6.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)",
diff --git a/tests/org.eclipse.emf.ecp.changebroker.test/pom.xml b/tests/org.eclipse.emf.ecp.changebroker.test/pom.xml
index eab6558..7bbb921 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 		<build>
@@ -24,17 +24,26 @@
 				<configuration>
 		          	<useUIHarness>true</useUIHarness>
 		          	<useUIThread>true</useUIThread>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>p2-installable-unit</type>
-							<artifactId>org.eclipse.equinox.ds</artifactId>
-						</dependency>
-					</dependencies>
+				</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.target.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>p2-installable-unit</type>
+								<id>org.eclipse.equinox.ds</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
diff --git a/tests/org.eclipse.emf.ecp.common.test/.checkstyle b/tests/org.eclipse.emf.ecp.common.test/.checkstyle
new file mode 100644
index 0000000..24d357f
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.common.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/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath b/tests/org.eclipse.emf.ecp.common.test/.classpath
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath
copy to tests/org.eclipse.emf.ecp.common.test/.classpath
diff --git a/tests/org.eclipse.emf.ecp.common.test/.gitignore b/tests/org.eclipse.emf.ecp.common.test/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.common.test/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/tests/org.eclipse.emf.ecp.common.test/.project b/tests/org.eclipse.emf.ecp.common.test/.project
new file mode 100644
index 0000000..6cbba38
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.common.test/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emf.ecp.common.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/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.emf.ecp.common.test/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
copy to tests/org.eclipse.emf.ecp.common.test/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/tests/org.eclipse.emf.ecp.common.test/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to tests/org.eclipse.emf.ecp.common.test/.settings/org.eclipse.core.runtime.prefs
diff --git a/tests/org.eclipse.emf.ecp.common.test/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emf.ecp.common.test/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..452e0c2
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.common.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.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.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.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/tests/org.eclipse.emf.ecp.common.test/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
copy to tests/org.eclipse.emf.ecp.common.test/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.emf.ecp.common.test/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.ui.prefs
copy to tests/org.eclipse.emf.ecp.common.test/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/tests/org.eclipse.emf.ecp.common.test/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to tests/org.eclipse.emf.ecp.common.test/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.common.test/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
copy to tests/org.eclipse.emf.ecp.common.test/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.emf.ecp.common.test/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
copy to tests/org.eclipse.emf.ecp.common.test/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..c2012ca
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.common.test/META-INF/MANIFEST.MF
@@ -0,0 +1,11 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: ECP Common Tests
+Bundle-SymbolicName: org.eclipse.emf.ecp.common.test;singleton:=true
+Bundle-Version: 1.6.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Fragment-Host: org.eclipse.emf.ecp.common;bundle-version="1.5.0"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.junit;bundle-version="4.0.0"
+Export-Package: org.eclipse.emf.ecp.common.test;version="1.6.0";x-inte
+ rnal:=true
diff --git a/tests/org.eclipse.emf.ecp.common.test/build.properties b/tests/org.eclipse.emf.ecp.common.test/build.properties
new file mode 100644
index 0000000..34d2e4d
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.common.test/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .
diff --git a/tests/org.eclipse.emf.ecp.common.test/pom.xml b/tests/org.eclipse.emf.ecp.common.test/pom.xml
new file mode 100644
index 0000000..271bb8d
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.common.test/pom.xml
@@ -0,0 +1,79 @@
+<?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.6.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.6.0-SNAPSHOT</version>
+	<packaging>eclipse-test-plugin</packaging>
+
+	<!-- When signing bundles we get a security exception using maven-surefire. 
+		use tycho-surefire instead -->
+	<profiles>
+		<profile>
+			<id>build-server</id>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-surefire-plugin</artifactId>
+						<version>${mav-surefire-version}</version>
+						<executions>
+							<execution>
+								<id>test</id>
+								<phase>test</phase>
+								<configuration>
+									<skipTests>true</skipTests>
+									<testClassesDirectory>${project.build.outputDirectory}</testClassesDirectory>
+									<includes>
+										<include>**/*_Test.java</include>
+									</includes>
+									<testFailureIgnore>true</testFailureIgnore>
+								</configuration>
+								<goals>
+									<goal>test</goal>
+								</goals>
+							</execution>
+						</executions>
+					</plugin>
+
+					<plugin>
+						<groupId>org.eclipse.tycho</groupId>
+						<artifactId>tycho-surefire-plugin</artifactId>
+						<version>${tycho-version}</version>
+						<configuration>
+							<includes>
+								<include>**/*_PTest.java</include>
+								<include>**/*_Test.java</include>
+							</includes>
+							<testFailureIgnore>true</testFailureIgnore>
+							<skip>false</skip>
+						</configuration>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+	</profiles>
+
+    <!-- skip tycho surefire which is automatically started by using eclipse-test-plugin packaging type -->
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-surefire-plugin</artifactId>
+				<version>${tycho-version}</version>
+				<configuration>
+					<skip>true</skip>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+
+</project>
diff --git a/tests/org.eclipse.emf.ecp.common.test/src/org/eclipse/emf/ecp/common/test/Assert_Test.java b/tests/org.eclipse.emf.ecp.common.test/src/org/eclipse/emf/ecp/common/test/Assert_Test.java
new file mode 100644
index 0000000..4758001
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.common.test/src/org/eclipse/emf/ecp/common/test/Assert_Test.java
@@ -0,0 +1,156 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Alexandra Buzila - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.common.test;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertSame;
+
+import org.eclipse.emf.ecp.common.spi.asserts.Assert;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+
+/**
+ * @author Alexandra Buzila
+ *
+ */
+public class Assert_Test {
+
+	@Rule
+	public ExpectedException expectedException = ExpectedException.none();
+
+	@Test
+	public void testCreateNullObject() {
+		assertNotNull(Assert.create(null));
+	}
+
+	@Test
+	public void testCreateNotNullObject() {
+		assertNotNull(Assert.create(new Object()));
+	}
+
+	@Test
+	public void testNotNullWithNull() {
+		expectedException.expect(IllegalArgumentException.class);
+		expectedException.expectMessage("Object must not be null."); //$NON-NLS-1$
+		Assert.create(null).notNull();
+	}
+
+	@Test
+	public void testNotNullWithNotNull() {
+		assertNotNull(Assert.create(new Object()).notNull());
+	}
+
+	@Test
+	public void testOfClassWithNullObjectAndNullClass() {
+		expectedException.expect(IllegalArgumentException.class);
+		expectedException.expectMessage("Class must not be null."); //$NON-NLS-1$
+		Assert.create(null).ofClass(null);
+	}
+
+	@Test
+	public void testOfClassWithNullObjectAndNotNullClass() {
+		expectedException.expect(IllegalArgumentException.class);
+		expectedException.expectMessage("null is not of type " + Object.class.getName()); //$NON-NLS-1$
+		Assert.create(null).ofClass(Object.class);
+	}
+
+	@Test
+	public void testOfClassWithNotNull() {
+		assertNotNull(Assert.create(new Object()).ofClass(Object.class));
+	}
+
+	@Test
+	public void testOfClassWithNotNullAndSuperclass() {
+		assertNotNull(Assert.create(new String()).ofClass(Object.class));
+	}
+
+	@Test
+	public void testOfClassWithNotNullAndWrongClass() {
+		expectedException.expect(IllegalArgumentException.class);
+		expectedException.expectMessage(Object.class.getName()
+			+ " is not of type " + String.class.getName()); //$NON-NLS-1$
+		Assert.create(new Object()).ofClass(String.class);
+	}
+
+	@Test
+	public void testOfClassWithNotNullObjectAndNullClass() {
+		expectedException.expect(IllegalArgumentException.class);
+		expectedException.expectMessage("Class must not be null."); //$NON-NLS-1$
+		Assert.create(new Object()).ofClass(null);
+	}
+
+	@Test
+	public void testCheckWithNullObject() {
+		final Object object = null;
+		final Object check = Assert.create(object).check();
+		assertSame(object, check);
+	}
+
+	@Test
+	public void testCheckWithNotNullObject() {
+		final Object object = new Object();
+		final Object check = Assert.create(object).check();
+		assertSame(object, check);
+	}
+
+	@Test
+	public void testCallOrderNotNullCheck() {
+		final Object object = new Object();
+		final Object check = Assert.create(object).notNull().check();
+		assertSame(object, check);
+	}
+
+	@Test
+	public void testCallOrderOfClassCheck() {
+		final Object object = new Object();
+		final Object check = Assert.create(object).ofClass(object.getClass()).check();
+		assertSame(object, check);
+	}
+
+	@Test
+	public void testCallOrderNotNullOfClassCheck() {
+		final Object object = new Object();
+		final Object check = Assert.create(object).notNull().ofClass(object.getClass()).check();
+		assertSame(object, check);
+	}
+
+	@Test
+	public void testCallOrderOfClassNotNullCheck() {
+		final Object object = new Object();
+		final Object check = Assert.create(object).ofClass(object.getClass()).notNull().check();
+		assertSame(object, check);
+	}
+
+	@Test
+	public void testCallOrderNotNullOfClassCheckWithNullObject() {
+		expectedException.expect(IllegalArgumentException.class);
+		expectedException.expectMessage("Object must not be null."); //$NON-NLS-1$
+		Assert.create(null).notNull().ofClass(Object.class).check();
+	}
+
+	@Test
+	public void testCallOrderNotNullOfClassCheckWithWrongClass() {
+		expectedException.expect(IllegalArgumentException.class);
+		expectedException.expectMessage(Object.class.getName()
+			+ " is not of type " + String.class.getName()); //$NON-NLS-1$
+		Assert.create(new Object()).notNull().ofClass(String.class).check();
+	}
+
+	@Test
+	public void testCallOrderOfClassNotNullCheckWithWrongClass() {
+		expectedException.expect(IllegalArgumentException.class);
+		expectedException.expectMessage(Object.class.getName()
+			+ " is not of type " + String.class.getName()); //$NON-NLS-1$
+		Assert.create(new Object()).ofClass(String.class).notNull().check();
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.checkstyle b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.checkstyle
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.checkstyle
copy to tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.checkstyle
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.classpath
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath
copy to tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.classpath
diff --git a/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.project b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.project
new file mode 100644
index 0000000..1f56964
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.project
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emf.ecp.core.rap.sessionprovider.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>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.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
copy to tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.core.prefs
copy to tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.settings/org.eclipse.jdt.core.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
copy to tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.settings/org.eclipse.jdt.launching.prefs
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.settings/org.eclipse.jdt.ui.prefs
copy to tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.settings/org.eclipse.mylyn.tasks.ui.prefs b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.settings/org.eclipse.mylyn.tasks.ui.prefs
new file mode 100644
index 0000000..b050639
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.settings/org.eclipse.mylyn.tasks.ui.prefs
@@ -0,0 +1,4 @@
+#Thu Feb 04 09:44:24 CET 2010
+eclipse.preferences.version=1
+project.repository.kind=bugzilla
+project.repository.url=https\://bugs.eclipse.org/bugs
diff --git a/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.settings/org.eclipse.mylyn.team.ui.prefs b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.settings/org.eclipse.mylyn.team.ui.prefs
new file mode 100644
index 0000000..2f50f36
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.settings/org.eclipse.mylyn.team.ui.prefs
@@ -0,0 +1,3 @@
+#Thu Feb 04 09:44:24 CET 2010
+commit.comment.template=[${task.id}] ${task.description} \r\n${task.url}
+eclipse.preferences.version=1
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
copy to tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
copy to tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..f756d72
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/META-INF/MANIFEST.MF
@@ -0,0 +1,11 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: ECP Core Rap Sessionprovider Test
+Bundle-SymbolicName: org.eclipse.emf.ecp.core.rap.sessionprovider.test
+Bundle-Version: 1.6.0.qualifier
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.eclipse.emf.ecp.core.rap;bundle-version="[1.5.0,2.0.0)"
+Export-Package: org.eclipse.emf.ecp.core.rap.sessionprovider.test;version="1.6.0"
+Service-Component: OSGI-INF/component.xml
+Bundle-ActivationPolicy: lazy
+Bundle-Vendor: Eclipse Modeling Project
diff --git a/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/OSGI-INF/component.xml b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/OSGI-INF/component.xml
new file mode 100644
index 0000000..a068f54
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/OSGI-INF/component.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emf.ecp.core.sessionprovider.rap.test">
+   <implementation class="org.eclipse.emf.ecp.core.rap.sessionprovider.test.MockSessionProvider"/>
+   <service>
+      <provide interface="org.eclipse.emf.ecp.core.rap.SessionProvider"/>
+   </service>
+</scr:component>
diff --git a/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/about.html b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/about.html
new file mode 100644
index 0000000..82d49bf
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

+<html xmlns="http://www.w3.org/1999/xhtml">

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>

+<title>About</title>

+</head>

+<body lang="EN-US">

+<h2>About This Content</h2>

+ 

+<p>June 5, 2007</p>	

+<h3>License</h3>

+

+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 

+indicated below, the Content is provided to you under the terms and conditions of the

+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 

+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.

+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>

+

+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 

+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may

+apply to your use of any object code in the Content.  Check the Redistributor's license that was 

+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise

+indicated below, the terms and conditions of the EPL still apply to any source code in the Content

+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>

+

+</body>

+</html>

diff --git a/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/build.properties b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/build.properties
new file mode 100644
index 0000000..30c35d7
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/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/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/pom.xml b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/pom.xml
new file mode 100644
index 0000000..78b5e5b
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.eclipse.emf.ecp</groupId>
+		<artifactId>ecp-tests-parent</artifactId>
+		<version>1.6.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.6.0-SNAPSHOT</version>
+</project>
diff --git a/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/src/org/eclipse/emf/ecp/core/rap/sessionprovider/test/MockSessionProvider.java b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/src/org/eclipse/emf/ecp/core/rap/sessionprovider/test/MockSessionProvider.java
new file mode 100644
index 0000000..a2fa881
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/src/org/eclipse/emf/ecp/core/rap/sessionprovider/test/MockSessionProvider.java
@@ -0,0 +1,90 @@
+/*******************************************************************************
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Neil Mackenzie - initial implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.core.rap.sessionprovider.test;
+
+import org.eclipse.emf.ecp.core.rap.SessionProvider;
+
+/**
+ * This s a mock session provider for testing, it does not
+ * recieve a web session.
+ *
+ * @author neilmack
+ *
+ */
+public class MockSessionProvider implements SessionProvider {
+
+	/**
+	 *
+	 */
+	public enum SessionProviderType {
+		/**
+		 * SAME_SESSION_ID relates to test where succesive
+		 * calls are from the same session, DIFFERENT_SESSION_ID refers to
+		 * when succesive calls are form different sessions.
+		 */
+		SAME_SESSION_ID, DIFFERENT_SESSION_ID;
+	}
+
+	/**
+	 * session ID.
+	 */
+	private int sessionId;
+
+	/**
+	 * The type od session, types defined in SessionProviderType enum.
+	 */
+	private static SessionProviderType type;
+	/**
+	 * THe singleton instance.
+	 */
+	private static MockSessionProvider instance;
+
+	/**
+	 * default constructor.
+	 */
+	public MockSessionProvider() {
+		instance = this;
+	}
+
+	/**
+	 * returns the provider instance.
+	 *
+	 * @return the provider instance
+	 */
+	public static MockSessionProvider getInstance() {
+		if (instance == null) {
+			instance = new MockSessionProvider();
+		}
+		return instance;
+	}
+
+	/**
+	 * sets the type of the session provider. this determines whether
+	 * the provider gives the same id each time it is asked for a sessionID
+	 * or a different one each time.
+	 *
+	 * @param type the type
+	 */
+	public static void setSessionProvider(SessionProviderType type) {
+		MockSessionProvider.type = type;
+	}
+
+	@Override
+	public final String getSessionId() {
+		if (type.equals(SessionProviderType.SAME_SESSION_ID)) {
+			return "1212"; //$NON-NLS-1$
+		}
+		return (++sessionId) + ""; //$NON-NLS-1$
+
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.core.rap.test/.checkstyle b/tests/org.eclipse.emf.ecp.core.rap.test/.checkstyle
new file mode 100644
index 0000000..32e02a4
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.core.rap.test/.checkstyle
@@ -0,0 +1,13 @@
+<?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="c" location="esmCheckstyleTest.xml" type="project" description="">
+    <additional-data name="protect-config-file" value="false"/>
+  </local-check-config>
+  <local-check-config name="ESMCheckstyleTest" location="/org.eclipse.emf.ecp.releng/checkstyle/esmCheckstyleTest.xml" type="project" description="">
+    <additional-data name="protect-config-file" value="false"/>
+  </local-check-config>
+  <fileset name="Java Files" enabled="true" check-config-name="ESMCheckstyleTest" local="true">
+    <file-match-pattern match-pattern=".java" include-pattern="true"/>
+  </fileset>
+</fileset-config>
diff --git a/tests/org.eclipse.emf.ecp.core.rap.test/.classpath b/tests/org.eclipse.emf.ecp.core.rap.test/.classpath
new file mode 100644
index 0000000..8a8f166
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.core.rap.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.6"/>

+	<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.emf.ecp.core.rap.test/.project b/tests/org.eclipse.emf.ecp.core.rap.test/.project
new file mode 100644
index 0000000..34fc77a
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.core.rap.test/.project
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>org.eclipse.emf.ecp.core.rap.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>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.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.emf.ecp.core.rap.test/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
copy to tests/org.eclipse.emf.ecp.core.rap.test/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/tests/org.eclipse.emf.ecp.core.rap.test/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to tests/org.eclipse.emf.ecp.core.rap.test/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emf.ecp.core.rap.test/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.core.prefs
copy to tests/org.eclipse.emf.ecp.core.rap.test/.settings/org.eclipse.jdt.core.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/tests/org.eclipse.emf.ecp.core.rap.test/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
copy to tests/org.eclipse.emf.ecp.core.rap.test/.settings/org.eclipse.jdt.launching.prefs
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.emf.ecp.core.rap.test/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/.settings/org.eclipse.jdt.ui.prefs
copy to tests/org.eclipse.emf.ecp.core.rap.test/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/tests/org.eclipse.emf.ecp.core.rap.test/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to tests/org.eclipse.emf.ecp.core.rap.test/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/tests/org.eclipse.emf.ecp.core.rap.test/.settings/org.eclipse.mylyn.tasks.ui.prefs b/tests/org.eclipse.emf.ecp.core.rap.test/.settings/org.eclipse.mylyn.tasks.ui.prefs
new file mode 100644
index 0000000..b050639
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.core.rap.test/.settings/org.eclipse.mylyn.tasks.ui.prefs
@@ -0,0 +1,4 @@
+#Thu Feb 04 09:44:24 CET 2010
+eclipse.preferences.version=1
+project.repository.kind=bugzilla
+project.repository.url=https\://bugs.eclipse.org/bugs
diff --git a/tests/org.eclipse.emf.ecp.core.rap.test/.settings/org.eclipse.mylyn.team.ui.prefs b/tests/org.eclipse.emf.ecp.core.rap.test/.settings/org.eclipse.mylyn.team.ui.prefs
new file mode 100644
index 0000000..2f50f36
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.core.rap.test/.settings/org.eclipse.mylyn.team.ui.prefs
@@ -0,0 +1,3 @@
+#Thu Feb 04 09:44:24 CET 2010
+commit.comment.template=[${task.id}] ${task.description} \r\n${task.url}
+eclipse.preferences.version=1
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.core.rap.test/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
copy to tests/org.eclipse.emf.ecp.core.rap.test/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.emf.ecp.core.rap.test/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
copy to tests/org.eclipse.emf.ecp.core.rap.test/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..c27edfd
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.core.rap.test/META-INF/MANIFEST.MF
@@ -0,0 +1,20 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: ECP Core RAP Test
+Bundle-SymbolicName: org.eclipse.emf.ecp.core.rap.test
+Bundle-Version: 1.6.0.qualifier
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Import-Package: org.eclipse.core.runtime;version="0.0.0",
+ org.eclipse.emf.ecp.core;version="0.0.0",
+ org.eclipse.emf.ecp.core.rap;version="0.0.0",
+ org.eclipse.emf.ecp.core.rap.sessionprovider.test;version="0.0.0",
+ org.eclipse.emf.ecp.emfstore.core.internal;version="0.0.0",
+ org.osgi.framework;version="0.0.0"
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
+ org.eclipse.emf.ecp.core;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emf.ecp.core.rap;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emf.ecp.core.rap.sessionprovider.test;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emf.ecp.emfstore.core.rap;bundle-version="[1.5.0,2.0.0)"
+Export-Package: org.eclipse.emf.ecp.core.rap.test;version="1.6.0";x-internal:=true
+Bundle-Vendor: Eclipse Modeling Project
diff --git a/tests/org.eclipse.emf.ecp.core.rap.test/RAPFactories_PTest.launch b/tests/org.eclipse.emf.ecp.core.rap.test/RAPFactories_PTest.launch
new file mode 100644
index 0000000..4c0dc78
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.core.rap.test/RAPFactories_PTest.launch
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<setAttribute key="additional_plugins"/>
+<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.core.emffilter,org.eclipse.emf.ecp.core.rap.sessionprovider.rwt,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.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.graphiti.core,org.eclipse.emf.ecp.graphiti.integration,org.eclipse.emf.ecp.ide.editor.view,org.eclipse.emf.ecp.ide.editor.view.control,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.e3,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.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.locale,org.eclipse.emf.ecp.view.context.test,org.eclipse.emf.ecp.view.control.multireference,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.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.databinding,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.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.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.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.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.ui.editor.test,org.eclipse.emf.ecp.view.unset,org.eclipse.emf.ecp.view.unset.test,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.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"/>
+<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.core.rap.test/src/org/eclipse/emf/ecp/core/rap/test/RAPFactories_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"/>
+<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/jdk1.6.0_45"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.ecp.core.rap.test.RAPFactories_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.core.rap.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.sdk.ide"/>
+<booleanAttribute key="run_in_ui_thread" value="true"/>
+<setAttribute key="selected_features">
+<setEntry value="org.eclipse.cvs.source:default"/>
+<setEntry value="org.eclipse.cvs:default"/>
+<setEntry value="org.eclipse.e4.rcp.source:default"/>
+<setEntry value="org.eclipse.e4.rcp:default"/>
+<setEntry value="org.eclipse.ecf.core.feature:default"/>
+<setEntry value="org.eclipse.ecf.core.source.feature:default"/>
+<setEntry value="org.eclipse.ecf.core.ssl.feature:default"/>
+<setEntry value="org.eclipse.ecf.core.ssl.source.feature:default"/>
+<setEntry value="org.eclipse.ecf.filetransfer.feature:default"/>
+<setEntry value="org.eclipse.ecf.filetransfer.httpclient4.feature:default"/>
+<setEntry value="org.eclipse.ecf.filetransfer.httpclient4.source.feature:default"/>
+<setEntry value="org.eclipse.ecf.filetransfer.httpclient4.ssl.feature:default"/>
+<setEntry value="org.eclipse.ecf.filetransfer.httpclient4.ssl.source.feature:default"/>
+<setEntry value="org.eclipse.ecf.filetransfer.source.feature:default"/>
+<setEntry value="org.eclipse.ecf.filetransfer.ssl.feature:default"/>
+<setEntry value="org.eclipse.ecf.filetransfer.ssl.source.feature:default"/>
+<setEntry value="org.eclipse.emf.common.source:default"/>
+<setEntry value="org.eclipse.emf.common:default"/>
+<setEntry value="org.eclipse.emf.ecore.source:default"/>
+<setEntry value="org.eclipse.emf.ecore:default"/>
+<setEntry value="org.eclipse.emf.ecp.application.e4.fx.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.cdo.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.demo.e3.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.diffmerge.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.e3.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.emfforms.idetooling.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.emfforms.runtime.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.emfforms.sdk.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.emfstore.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.examplemodel.ui.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.graphiti.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.ide.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.license.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.nosite.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.test.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.view.categorization.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.view.custom.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.view.group.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.view.horizontal.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.view.label.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.view.model.controls.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.view.model.editor.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.view.rule.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.view.sdk.fx.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.view.separator.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.view.table.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.view.template.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.view.template.helper.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.view.treemasterdetail.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.view.unset.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.view.validation.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.view.vertical.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.viewmodel.feature:default"/>
+<setEntry value="org.eclipse.emf.ecp.workspace.feature:default"/>
+<setEntry value="org.eclipse.equinox.p2.core.feature.source:default"/>
+<setEntry value="org.eclipse.equinox.p2.core.feature:default"/>
+<setEntry value="org.eclipse.equinox.p2.extras.feature.source:default"/>
+<setEntry value="org.eclipse.equinox.p2.extras.feature:default"/>
+<setEntry value="org.eclipse.equinox.p2.rcp.feature.source:default"/>
+<setEntry value="org.eclipse.equinox.p2.rcp.feature:default"/>
+<setEntry value="org.eclipse.equinox.p2.user.ui.source:default"/>
+<setEntry value="org.eclipse.equinox.p2.user.ui:default"/>
+<setEntry value="org.eclipse.fx.runtime.feature:default"/>
+<setEntry value="org.eclipse.help.source:default"/>
+<setEntry value="org.eclipse.help:default"/>
+<setEntry value="org.eclipse.jdt.source:default"/>
+<setEntry value="org.eclipse.jdt:default"/>
+<setEntry value="org.eclipse.pde.source:default"/>
+<setEntry value="org.eclipse.pde:default"/>
+<setEntry value="org.eclipse.platform.source:default"/>
+<setEntry value="org.eclipse.platform:default"/>
+<setEntry value="org.eclipse.rcp.source:default"/>
+<setEntry value="org.eclipse.rcp:default"/>
+<setEntry value="org.eclipse.sdk: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,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.apache.commons.codec@default:default,org.apache.commons.fileupload@default:default,org.apache.commons.io@default:default,org.apache.commons.logging@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.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.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.ecp.ui.rap@default:false,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.rap.edit.ui.minimal@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.win32.x86_64@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@-1:true,org.eclipse.rap.addons.filedialog@default:default,org.eclipse.rap.addons.fileupload@default:default,org.eclipse.rap.rwt@default:default,org.eclipse.swt.win32.win32.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.views@default:default,org.eclipse.ui.win32@default:false,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.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.core.rap.sessionprovider.test@default:default,org.eclipse.emf.ecp.core.rap.test@default:false,org.eclipse.emf.ecp.core.rap@default:false,org.eclipse.emf.ecp.core@default:true,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.e4@default:default,org.eclipse.emf.ecp.ui.rcp@default:false,org.eclipse.emf.ecp.ui.view.swt@default:default,org.eclipse.emf.ecp.ui.view@default:default,org.eclipse.emf.ecp.ui@default:default,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.core.swt@default:default,org.eclipse.emf.ecp.view.indexdmr.databinding@default:default,org.eclipse.emf.ecp.view.indexdmr.model@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.table.model@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.util.swt@default:default,org.eclipse.emf.ecp.view.vertical.model@default:default"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<stringAttribute key="templateConfig" value="${target_home}\configuration\config.ini"/>
+<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.core.rap.test/about.html b/tests/org.eclipse.emf.ecp.core.rap.test/about.html
new file mode 100644
index 0000000..82d49bf
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.core.rap.test/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

+<html xmlns="http://www.w3.org/1999/xhtml">

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>

+<title>About</title>

+</head>

+<body lang="EN-US">

+<h2>About This Content</h2>

+ 

+<p>June 5, 2007</p>	

+<h3>License</h3>

+

+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 

+indicated below, the Content is provided to you under the terms and conditions of the

+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 

+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.

+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>

+

+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 

+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may

+apply to your use of any object code in the Content.  Check the Redistributor's license that was 

+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise

+indicated below, the terms and conditions of the EPL still apply to any source code in the Content

+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>

+

+</body>

+</html>

diff --git a/tests/org.eclipse.emf.ecp.core.rap.test/build.properties b/tests/org.eclipse.emf.ecp.core.rap.test/build.properties
new file mode 100644
index 0000000..ccde309
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.core.rap.test/build.properties
@@ -0,0 +1,6 @@
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               about.html
+source.. = src/
+src.includes = about.html
diff --git a/tests/org.eclipse.emf.ecp.core.rap.test/pom.xml b/tests/org.eclipse.emf.ecp.core.rap.test/pom.xml
new file mode 100644
index 0000000..5fd34e4
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.core.rap.test/pom.xml
@@ -0,0 +1,56 @@
+<?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.6.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.6.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>false</useUIHarness>
+		          	<useUIThread>false</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.target.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.emfstore.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+</project>
diff --git a/tests/org.eclipse.emf.ecp.core.rap.test/src/org/eclipse/emf/ecp/core/rap/test/RAPFactories_PTest.java b/tests/org.eclipse.emf.ecp.core.rap.test/src/org/eclipse/emf/ecp/core/rap/test/RAPFactories_PTest.java
new file mode 100644
index 0000000..c6152b4
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.core.rap.test/src/org/eclipse/emf/ecp/core/rap/test/RAPFactories_PTest.java
@@ -0,0 +1,308 @@
+/*******************************************************************************
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Neil Mackenzie - initial implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.core.rap.test;
+
+import java.util.Collection;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.ecp.core.ECPProject;
+import org.eclipse.emf.ecp.core.ECPProjectManager;
+import org.eclipse.emf.ecp.core.ECPProviderRegistry;
+import org.eclipse.emf.ecp.core.ECPRepositoryManager;
+import org.eclipse.emf.ecp.core.exceptions.ECPProjectWithNameExistsException;
+import org.eclipse.emf.ecp.core.rap.SessionProvider;
+import org.eclipse.emf.ecp.core.rap.sessionprovider.test.MockSessionProvider;
+import org.eclipse.emf.ecp.core.rap.sessionprovider.test.MockSessionProvider.SessionProviderType;
+import org.eclipse.emf.ecp.core.util.observer.ECPObserverBus;
+import org.eclipse.emf.ecp.emfstore.core.internal.EMFStoreProvider;
+import org.junit.Test;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
+
+/**
+ *
+ * @author neilmack
+ *         Tests the service factory classes from the
+ *         org.eclipse.emf.ecp.core.rap package.
+ */
+@SuppressWarnings("restriction")
+public class RAPFactories_PTest extends TestCase {
+	/**
+	 * Test retrieval of the mock SessionProvider service.
+	 */
+	@Test
+	public void testRetrieveMock() {
+		final BundleContext bundleContext =
+			FrameworkUtil.getBundle(getClass()).getBundleContext();
+		final ServiceReference<SessionProvider> ref =
+			bundleContext.getServiceReference(SessionProvider.class);
+		final SessionProvider provider = bundleContext.getService(ref);
+		assertNotNull(provider);
+		bundleContext.ungetService(ref);
+	}
+
+	/**
+	 * test that the ECPProjectManagerFacotry returns a
+	 * working ECPProjectManager.
+	 *
+	 * @throws ECPProjectWithNameExistsException in case of exception
+	 */
+	@Test
+	public final void testServices() throws ECPProjectWithNameExistsException {
+		MockSessionProvider.getInstance();
+		MockSessionProvider.
+		setSessionProvider(SessionProviderType.DIFFERENT_SESSION_ID);
+		final BundleContext bundleContext =
+			FrameworkUtil.getBundle(getClass()).getBundleContext();
+		final ServiceReference<ECPProjectManager> serviceReference =
+			bundleContext.getServiceReference(ECPProjectManager.class);
+
+		final ECPProjectManager service1 =
+			bundleContext.getService(serviceReference);
+		final ECPProject project1 =
+			service1.createProject(new EMFStoreProvider(), "Test10"); //$NON-NLS-1$
+		final ECPProject project2 =
+			service1.createProject(EMFStoreProvider.INSTANCE, "Test2"); //$NON-NLS-1$
+
+		bundleContext.ungetService(serviceReference);
+		final ECPProjectManager service2 =
+			bundleContext.getService(serviceReference);
+		assertNotSame(service1, service2);
+
+		final ECPProject project3 =
+			service2.createProject(EMFStoreProvider.INSTANCE, "Test3"); //$NON-NLS-1$
+
+		final Collection<ECPProject> projects1 = service1.getProjects();
+		assertEquals(2, projects1.size());
+		assertTrue(projects1.contains(project1));
+		assertTrue(projects1.contains(project2));
+
+		final Collection<ECPProject> projects2 = service2.getProjects();
+		assertEquals(1, projects2.size());
+		assertTrue(projects2.contains(project3));
+		bundleContext.ungetService(serviceReference);
+	}
+
+	/**
+	 * Test that when the ECPProjectManagerFactory is asked for
+	 * a ECPProjectManager from 2 different sessions, that 2 different
+	 * ECPProjectManagers are returned.
+	 */
+	@Test
+	public void testDifferentSessionIdsECPProjectManager() {
+		MockSessionProvider.getInstance();
+		MockSessionProvider.
+		setSessionProvider(
+			SessionProviderType.DIFFERENT_SESSION_ID);
+		final BundleContext bundleContext =
+			FrameworkUtil.getBundle(getClass()).getBundleContext();
+		final ServiceReference<ECPProjectManager> serviceReference =
+			bundleContext.
+				getServiceReference(ECPProjectManager.class);
+
+		final ECPProjectManager service1 =
+			bundleContext.getService(serviceReference);
+		bundleContext.ungetService(serviceReference);
+
+		final ECPProjectManager service2 =
+			bundleContext.getService(serviceReference);
+		assertNotSame(service1, service2);
+		bundleContext.ungetService(serviceReference);
+	}
+
+	/**
+	 * Test that when the ECPProjectManageractory is asked for
+	 * a ECPProjectManager 2 times from the same session,
+	 * that the same ECPProjectManager is returned.
+	 */
+	@Test
+	public void testSameSessionIdsECPProjectManager() {
+		MockSessionProvider.getInstance();
+		MockSessionProvider.
+		setSessionProvider(SessionProviderType.SAME_SESSION_ID);
+		final BundleContext bundleContext =
+			FrameworkUtil.getBundle(getClass()).getBundleContext();
+		final ServiceReference<ECPProjectManager> serviceReference =
+			bundleContext.
+			getServiceReference(ECPProjectManager.class);
+
+		final ECPProjectManager service1 =
+			bundleContext.getService(serviceReference);
+		bundleContext.ungetService(serviceReference);
+
+		final ECPProjectManager service2 =
+			bundleContext.getService(serviceReference);
+		assertSame(service1, service2);
+		bundleContext.ungetService(serviceReference);
+	}
+
+	/**
+	 * Test that when the ECPObserverBusFactory is asked for
+	 * a ECPObserverBus from 2 different sessions, that 2 different
+	 * ECPObserverBus's are returned.
+	 */
+	@Test
+	public final void testDifferentSessionIdsECPObserverBus() {
+		MockSessionProvider.
+		getInstance();
+		MockSessionProvider.
+			setSessionProvider(SessionProviderType.DIFFERENT_SESSION_ID);
+		final BundleContext bundleContext =
+			FrameworkUtil.getBundle(getClass()).getBundleContext();
+		final ServiceReference<ECPObserverBus> serviceReference =
+			bundleContext.getServiceReference(ECPObserverBus.class);
+
+		final ECPObserverBus service1 =
+			bundleContext.getService(serviceReference);
+		bundleContext.ungetService(serviceReference);
+
+		final ECPObserverBus service2 =
+			bundleContext.getService(serviceReference);
+		assertNotSame(service1, service2);
+		bundleContext.ungetService(serviceReference);
+	}
+
+	/**
+	 * Test that when the ECPObserverBusFactory is asked for
+	 * a ECPObserverBus 2 times from the same session,
+	 * that the same ECPObserverBus is returned.
+	 */
+	@Test
+	public final void testSameSessionIdsECPObserverBus() {
+		MockSessionProvider.
+		getInstance();
+		MockSessionProvider.
+			setSessionProvider(SessionProviderType.SAME_SESSION_ID);
+		final BundleContext bundleContext =
+			FrameworkUtil.getBundle(getClass()).getBundleContext();
+		final ServiceReference<ECPObserverBus> serviceReference =
+			bundleContext.getServiceReference(ECPObserverBus.class);
+
+		final ECPObserverBus service1 =
+			bundleContext.getService(serviceReference);
+		bundleContext.ungetService(serviceReference);
+
+		final ECPObserverBus service2 =
+			bundleContext.getService(serviceReference);
+		assertSame(service1, service2);
+		bundleContext.ungetService(serviceReference);
+	}
+
+	/**
+	 * Test that when the ECPProviderRegistryFactory is asked for
+	 * a ECPProviderRegistry from 2 different sessions, that 2 different
+	 * ECPProviderRegistry's are returned.
+	 */
+	@Test
+	public final void testDifferentSessionIdsECPProviderRegistry() {
+		MockSessionProvider.
+		getInstance();
+		MockSessionProvider.
+			setSessionProvider(SessionProviderType.DIFFERENT_SESSION_ID);
+		final BundleContext bundleContext =
+			FrameworkUtil.getBundle(getClass()).getBundleContext();
+		final ServiceReference<ECPProviderRegistry> serviceReference =
+			bundleContext.
+			getServiceReference(ECPProviderRegistry.class);
+
+		final ECPProviderRegistry service1 = bundleContext.
+			getService(serviceReference);
+		bundleContext.ungetService(serviceReference);
+
+		final ECPProviderRegistry service2 =
+			bundleContext.getService(serviceReference);
+		assertNotSame(service1, service2);
+		bundleContext.ungetService(serviceReference);
+	}
+
+	/**
+	 * Test that when the ECPProviderRegistryFactory is asked for
+	 * a ECPProviderRegistry 2 times from the same session,
+	 * that the same ECPProviderRegistry is returned.
+	 */
+	@Test
+	public final void testSameSessionIdsECPProviderRegistry() {
+		MockSessionProvider.
+		getInstance();
+		MockSessionProvider.
+			setSessionProvider(SessionProviderType.SAME_SESSION_ID);
+		final BundleContext bundleContext =
+			FrameworkUtil.getBundle(getClass()).getBundleContext();
+		final ServiceReference<ECPProviderRegistry> serviceReference =
+			bundleContext.getServiceReference(ECPProviderRegistry.class);
+
+		final ECPProviderRegistry service1 =
+			bundleContext.getService(serviceReference);
+		bundleContext.ungetService(serviceReference);
+
+		final ECPProviderRegistry service2 =
+			bundleContext.getService(serviceReference);
+		assertSame(service1, service2);
+		bundleContext.ungetService(serviceReference);
+	}
+
+	/**
+	 * Test that when the ECPRepositoryManagerFactory is asked for
+	 * a ECPRepositoryManager from 2 different sessions, that 2 different
+	 * ECPRepositoryManagers are returned.
+	 */
+	@Test
+	public final void testDifferentSessionIdsECPRepositoryManager() {
+		MockSessionProvider.
+		getInstance();
+		MockSessionProvider.
+			setSessionProvider(SessionProviderType.DIFFERENT_SESSION_ID);
+		final BundleContext bundleContext =
+			FrameworkUtil.getBundle(getClass()).getBundleContext();
+		final ServiceReference<ECPRepositoryManager> serviceReference =
+			bundleContext.getServiceReference(ECPRepositoryManager.class);
+
+		final ECPRepositoryManager service1 =
+			bundleContext.getService(serviceReference);
+		bundleContext.ungetService(serviceReference);
+
+		final ECPRepositoryManager service2 =
+			bundleContext.getService(serviceReference);
+		assertNotSame(service1, service2);
+		bundleContext.ungetService(serviceReference);
+	}
+
+	/**
+	 * Test that when the ECPRepositoryManagerFactory is asked for
+	 * a ECPRepositoryManager 2 times from the same session,
+	 * that the same ECPRepositoryManager is returned.
+	 */
+	@Test
+	public final void testSameSessionIdsECPRepositoryManager() {
+		MockSessionProvider.
+		getInstance();
+		MockSessionProvider.
+			setSessionProvider(SessionProviderType.SAME_SESSION_ID);
+		final BundleContext bundleContext =
+			FrameworkUtil.getBundle(getClass()).getBundleContext();
+		final ServiceReference<ECPRepositoryManager> serviceReference =
+			bundleContext.
+			getServiceReference(ECPRepositoryManager.class);
+
+		final ECPRepositoryManager service1 =
+			bundleContext.getService(serviceReference);
+		bundleContext.ungetService(serviceReference);
+
+		final ECPRepositoryManager service2 =
+			bundleContext.getService(serviceReference);
+		assertSame(service1, service2);
+		bundleContext.ungetService(serviceReference);
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.core.test/AllCoreTests.launch b/tests/org.eclipse.emf.ecp.core.test/AllCoreTests.launch
index ed76f70..2fb9d7d 100644
--- a/tests/org.eclipse.emf.ecp.core.test/AllCoreTests.launch
+++ b/tests/org.eclipse.emf.ecp.core.test/AllCoreTests.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.cdo.core,org.eclipse.emf.ecp.cdo.ui,org.eclipse.emf.ecp.common.ui,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,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.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.view.control,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.databinding,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.databinding,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.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"/>
+<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.ui,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,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.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.view.control,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.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"/>
 <booleanAttribute key="includeOptional" value="true"/>
 <stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
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 2269bd4..6a911e8 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Core Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.core.test
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Fragment-Host: org.eclipse.emf.ecp.core;bundle-version="1.4.0"
 Bundle-ClassPath: .
 Require-Bundle: org.eclipse.ui;bundle-version="3.1.0",
@@ -12,6 +12,6 @@
  org.mockito.mockito-all;bundle-version="1.9.5"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.ecp.core.test;version="1.5.1";x-intern
+Export-Package: org.eclipse.emf.ecp.core.test;version="1.6.0";x-intern
  al:=true
 Bundle-Vendor: Eclipse Modeling Project
diff --git a/tests/org.eclipse.emf.ecp.core.test/pom.xml b/tests/org.eclipse.emf.ecp.core.test/pom.xml
index fb9df0a..767ec82 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -24,18 +24,26 @@
 				<configuration>
 		          	<useUIHarness>false</useUIHarness>
 		          	<useUIThread>false</useUIThread>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.emfstore.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-					</dependencies>
+				</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.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.emfstore.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
diff --git a/tests/org.eclipse.emf.ecp.core.test/src/org/eclipse/emf/ecp/core/test/ECPProject_PTest.java b/tests/org.eclipse.emf.ecp.core.test/src/org/eclipse/emf/ecp/core/test/ECPProject_PTest.java
index dbf1273..2c1d05b 100644
--- a/tests/org.eclipse.emf.ecp.core.test/src/org/eclipse/emf/ecp/core/test/ECPProject_PTest.java
+++ b/tests/org.eclipse.emf.ecp.core.test/src/org/eclipse/emf/ecp/core/test/ECPProject_PTest.java
@@ -224,6 +224,7 @@
 	/**
 	 * Test save properties.
 	 */
+	@SuppressWarnings("deprecation")
 	@Test
 	public void testSaveProperties() {
 		project.saveProperties();
diff --git a/tests/org.eclipse.emf.ecp.core.test/src/org/eclipse/emf/ecp/core/test/ECPProvider_PTest.java b/tests/org.eclipse.emf.ecp.core.test/src/org/eclipse/emf/ecp/core/test/ECPProvider_PTest.java
index dd39e95..c78fb7a 100644
--- a/tests/org.eclipse.emf.ecp.core.test/src/org/eclipse/emf/ecp/core/test/ECPProvider_PTest.java
+++ b/tests/org.eclipse.emf.ecp.core.test/src/org/eclipse/emf/ecp/core/test/ECPProvider_PTest.java
@@ -16,8 +16,6 @@
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.fail;
 
-import java.util.Arrays;
-
 import org.eclipse.emf.ecp.core.ECPProject;
 import org.eclipse.emf.ecp.core.ECPRepository;
 import org.eclipse.emf.ecp.core.exceptions.ECPProjectWithNameExistsException;
@@ -78,7 +76,7 @@
 		try {
 			// try to create an offline project;
 			final ECPProject project = getProjectManager().createProject(getProvider(), "test");
-			if (project == null && !Arrays.asList(getProjectManager().getProjects()).contains(project)) {
+			if (project == null && !getProjectManager().getProjects().contains(project)) {
 				isActuallyPossible = false;
 			} else {
 				isActuallyPossible = true;
diff --git a/tests/org.eclipse.emf.ecp.diffmerge.test/.gitignore b/tests/org.eclipse.emf.ecp.diffmerge.test/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.diffmerge.test/.gitignore
@@ -0,0 +1 @@
+/bin/
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 2bd3bda..41799ab 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,13 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Diff Merge Tests
 Bundle-SymbolicName: org.eclipse.emf.ecp.diffmerge.test
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Fragment-Host: org.eclipse.emf.ecp.diffmerge.context;bundle-version="[1.5.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 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.5.0,2.0.0)",
- org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.5.0,2.0.0)"
-Export-Package: org.eclipse.emf.ecp.diffmerge.test;version="1.5.1";x-i
+ org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.6.0,2.0.0)"
+Export-Package: org.eclipse.emf.ecp.diffmerge.test;version="1.6.0";x-i
  nternal:=true
diff --git a/tests/org.eclipse.emf.ecp.diffmerge.test/MergeTests.launch b/tests/org.eclipse.emf.ecp.diffmerge.test/MergeTests.launch
index 3d78149..4cc556d 100644
--- a/tests/org.eclipse.emf.ecp.diffmerge.test/MergeTests.launch
+++ b/tests/org.eclipse.emf.ecp.diffmerge.test/MergeTests.launch
@@ -32,8 +32,8 @@
 <stringAttribute key="pde.version" value="3.3"/>

 <stringAttribute key="product" value="org.eclipse.sdk.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.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.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.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.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.common@default:default,org.eclipse.emf.ecp.diffmerge.context@default:default,org.eclipse.emf.ecp.diffmerge.model.edit@default:default,org.eclipse.emf.ecp.diffmerge.model@default:default,org.eclipse.emf.ecp.diffmerge.test@default:false,org.eclipse.emf.ecp.view.context.test@default:false,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.horizontal.model@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.test@default:false,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emf.ecp.view.table.model@default:default"/>

+<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.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.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.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.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.common@default:default,org.eclipse.emf.ecp.diffmerge.context@default:default,org.eclipse.emf.ecp.diffmerge.model.edit@default:default,org.eclipse.emf.ecp.diffmerge.model@default:default,org.eclipse.emf.ecp.diffmerge.test@default:false,org.eclipse.emf.ecp.test.common@default:default,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.horizontal.model@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@default:default,org.eclipse.emf.ecp.view.table.model@default:default,org.eclipse.emfforms.core.services.databinding.featurepath@default:default,org.eclipse.emfforms.core.services.databinding@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.diffmerge.test/pom.xml b/tests/org.eclipse.emf.ecp.diffmerge.test/pom.xml
index 17cd363..7f16816 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -25,43 +25,51 @@
 		          	<useUIHarness>true</useUIHarness>
 		          	<useUIThread>true</useUIThread>
 		        	<failIfNoTests>false</failIfNoTests>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.viewmodel.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.diffmerge.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.table.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.horizontal.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.validation.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.emfstore.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-					</dependencies>
+				</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.target.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.viewmodel.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.diffmerge.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.table.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.horizontal.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.validation.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.emfstore.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
diff --git a/tests/org.eclipse.emf.ecp.diffmerge.test/src/org/eclipse/emf/ecp/diffmerge/test/Diff_Test.java b/tests/org.eclipse.emf.ecp.diffmerge.test/src/org/eclipse/emf/ecp/diffmerge/test/Diff_Test.java
index 2f3600f..f9650ec 100644
--- a/tests/org.eclipse.emf.ecp.diffmerge.test/src/org/eclipse/emf/ecp/diffmerge/test/Diff_Test.java
+++ b/tests/org.eclipse.emf.ecp.diffmerge.test/src/org/eclipse/emf/ecp/diffmerge/test/Diff_Test.java
@@ -15,6 +15,7 @@
 
 import org.eclipse.emf.ecp.diffmerge.spi.context.DiffMergeContextFactory;
 import org.eclipse.emf.ecp.diffmerge.spi.context.DiffMergeModelContext;
+import org.eclipse.emf.ecp.test.common.DefaultRealm;
 import org.eclipse.emf.ecp.view.spi.horizontal.model.VHorizontalFactory;
 import org.eclipse.emf.ecp.view.spi.horizontal.model.VHorizontalLayout;
 import org.eclipse.emf.ecp.view.spi.model.VControl;
@@ -29,6 +30,8 @@
 import org.eclipse.emf.emfstore.bowling.Gender;
 import org.eclipse.emf.emfstore.bowling.League;
 import org.eclipse.emf.emfstore.bowling.Player;
+import org.junit.After;
+import org.junit.Before;
 import org.junit.Test;
 
 /**
@@ -38,6 +41,17 @@
  *
  */
 public class Diff_Test {
+	private DefaultRealm realm;
+
+	@Before
+	public void setUp() {
+		realm = new DefaultRealm();
+	}
+
+	@After
+	public void tearDown() {
+		realm.dispose();
+	}
 
 	@Test
 	public void testSingleControlViewWithDiff() {
@@ -80,7 +94,7 @@
 		left.getPlayers().add(left1);
 		final League right = BowlingFactory.eINSTANCE.createLeague();
 		final Player right1 = BowlingFactory.eINSTANCE.createPlayer();
-		left.setName("b"); //$NON-NLS-1$
+		right1.setName("b"); //$NON-NLS-1$
 		right.getPlayers().add(right1);
 		final League target = BowlingFactory.eINSTANCE.createLeague();
 		final Player target1 = BowlingFactory.eINSTANCE.createPlayer();
diff --git a/tests/org.eclipse.emf.ecp.diffmerge.test/src/org/eclipse/emf/ecp/diffmerge/test/Merge_PTest.java b/tests/org.eclipse.emf.ecp.diffmerge.test/src/org/eclipse/emf/ecp/diffmerge/test/Merge_PTest.java
index a4ad061..7730f2d 100644
--- a/tests/org.eclipse.emf.ecp.diffmerge.test/src/org/eclipse/emf/ecp/diffmerge/test/Merge_PTest.java
+++ b/tests/org.eclipse.emf.ecp.diffmerge.test/src/org/eclipse/emf/ecp/diffmerge/test/Merge_PTest.java
@@ -21,6 +21,7 @@
 import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
 import org.eclipse.emf.ecp.diffmerge.spi.context.DefaultMergeUtil;
+import org.eclipse.emf.ecp.test.common.DefaultRealm;
 import org.eclipse.emf.ecp.view.spi.model.VControl;
 import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
@@ -34,6 +35,8 @@
 import org.eclipse.emf.emfstore.bowling.Fan;
 import org.eclipse.emf.emfstore.bowling.Merchandise;
 import org.eclipse.emf.emfstore.bowling.Player;
+import org.junit.After;
+import org.junit.Before;
 import org.junit.Test;
 
 /**
@@ -43,6 +46,17 @@
  *
  */
 public class Merge_PTest {
+	private DefaultRealm realm;
+
+	@Before
+	public void setUp() {
+		realm = new DefaultRealm();
+	}
+
+	@After
+	public void tearDown() {
+		realm.dispose();
+	}
 
 	private void addEobjectToResource(EObject eObject) {
 		final ResourceSet resourceSet = new ResourceSetImpl();
@@ -67,17 +81,14 @@
 		dmr.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_Name());
 		controlToCopyFrom.setDomainModelReference(dmr);
 
-		dmr.init(player1);
-
 		final Player player2 = BowlingFactory.eINSTANCE.createPlayer();
 		addEobjectToResource(player2);
 		player2.setName("b"); //$NON-NLS-1$
 		final VFeaturePathDomainModelReference dmr2 = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
 		dmr2.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_Name());
 		controlToCopyTo.setDomainModelReference(dmr2);
-		dmr2.init(player2);
 
-		DefaultMergeUtil.copyValues(controlToCopyFrom, controlToCopyTo);
+		DefaultMergeUtil.copyValues(controlToCopyFrom, player1, controlToCopyTo, player2);
 
 		assertEquals("a", player2.getName()); //$NON-NLS-1$
 	}
@@ -94,7 +105,6 @@
 		final VFeaturePathDomainModelReference dmr = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
 		dmr.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_EMails());
 		controlToCopyFrom.setDomainModelReference(dmr);
-		dmr.init(player1);
 
 		final Player player2 = BowlingFactory.eINSTANCE.createPlayer();
 		addEobjectToResource(player2);
@@ -103,9 +113,8 @@
 		final VFeaturePathDomainModelReference dmr2 = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
 		dmr2.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_EMails());
 		controlToCopyTo.setDomainModelReference(dmr2);
-		dmr2.init(player2);
 
-		DefaultMergeUtil.copyValues(controlToCopyFrom, controlToCopyTo);
+		DefaultMergeUtil.copyValues(controlToCopyFrom, player1, controlToCopyTo, player2);
 
 		assertEquals(2, player2.getEMails().size());
 		assertEquals("a", player2.getEMails().get(0)); //$NON-NLS-1$
@@ -126,7 +135,6 @@
 		dmr.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_Name());
 		dmr.getDomainModelEReferencePath().add(BowlingPackage.eINSTANCE.getFan_FavouriteMerchandise());
 		controlToCopyFrom.setDomainModelReference(dmr);
-		dmr.init(fan1);
 
 		final Fan fan2 = BowlingFactory.eINSTANCE.createFan();
 		fan2.setFavouriteMerchandise(BowlingFactory.eINSTANCE.createMerchandise());
@@ -136,9 +144,8 @@
 		dmr2.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_Name());
 		dmr2.getDomainModelEReferencePath().add(BowlingPackage.eINSTANCE.getFan_FavouriteMerchandise());
 		controlToCopyTo.setDomainModelReference(dmr2);
-		dmr2.init(fan2);
 
-		DefaultMergeUtil.copyValues(controlToCopyFrom, controlToCopyTo);
+		DefaultMergeUtil.copyValues(controlToCopyFrom, fan1, controlToCopyTo, fan2);
 
 		assertNotEquals(fan1.getFavouriteMerchandise(), fan2.getFavouriteMerchandise());
 		assertEquals("a", fan2.getFavouriteMerchandise().getName()); //$NON-NLS-1$
@@ -166,7 +173,6 @@
 				.createTableDomainModelReference();
 			dmr.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_FanMerchandise());
 			controlToCopyFrom.setDomainModelReference(dmr);
-			dmr.init(fan1);
 		}
 
 		final Fan fan2 = BowlingFactory.eINSTANCE.createFan();
@@ -182,10 +188,9 @@
 				.createTableDomainModelReference();
 			dmr2.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_FanMerchandise());
 			controlToCopyTo.setDomainModelReference(dmr2);
-			dmr2.init(fan2);
 		}
 
-		DefaultMergeUtil.copyValues(controlToCopyFrom, controlToCopyTo);
+		DefaultMergeUtil.copyValues(controlToCopyFrom, fan1, controlToCopyTo, fan2);
 
 		assertEquals(fan1.getFanMerchandise().size(), fan2.getFanMerchandise().size());
 		assertNotEquals(fan1.getFanMerchandise().get(0), fan2.getFanMerchandise().get(0));
diff --git a/tests/org.eclipse.emf.ecp.diffmerge.test/src/org/eclipse/emf/ecp/diffmerge/test/SaveLoad_PTest.java b/tests/org.eclipse.emf.ecp.diffmerge.test/src/org/eclipse/emf/ecp/diffmerge/test/SaveLoad_PTest.java
index a226edc..ffb0895 100644
--- a/tests/org.eclipse.emf.ecp.diffmerge.test/src/org/eclipse/emf/ecp/diffmerge/test/SaveLoad_PTest.java
+++ b/tests/org.eclipse.emf.ecp.diffmerge.test/src/org/eclipse/emf/ecp/diffmerge/test/SaveLoad_PTest.java
@@ -24,6 +24,7 @@
 import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
 import org.eclipse.emf.ecp.diffmerge.spi.context.DiffMergeContextFactory;
 import org.eclipse.emf.ecp.diffmerge.spi.context.DiffMergeModelContext;
+import org.eclipse.emf.ecp.test.common.DefaultRealm;
 import org.eclipse.emf.ecp.view.spi.model.VControl;
 import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
@@ -37,6 +38,8 @@
 import org.eclipse.emf.emfstore.bowling.Gender;
 import org.eclipse.emf.emfstore.bowling.League;
 import org.eclipse.emf.emfstore.bowling.Player;
+import org.junit.After;
+import org.junit.Before;
 import org.junit.Test;
 
 /**
@@ -44,6 +47,17 @@
  *
  */
 public class SaveLoad_PTest {
+	private DefaultRealm realm;
+
+	@Before
+	public void setUp() {
+		realm = new DefaultRealm();
+	}
+
+	@After
+	public void tearDown() {
+		realm.dispose();
+	}
 
 	/**
 	 * Round trip test.
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 a261be2..9fa3c1d 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECore GenModel Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.ecore.editor.test
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Require-Bundle: org.junit;bundle-version="4.0.0",
  org.eclipse.ui;bundle-version="[3.0.0,4.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 643bdde..29f3b5d 100644
--- a/tests/org.eclipse.emf.ecp.ecore.editor.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.ecore.editor.test/pom.xml
@@ -5,11 +5,11 @@
 	<parent>

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

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

-		<version>1.5.1-SNAPSHOT</version>

+		<version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.0-SNAPSHOT</version>

   <packaging>eclipse-plugin</packaging>

 </project>

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 51eca8d..28bf3e4 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,10 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.edit.swt.test
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Fragment-Host: org.eclipse.emf.ecp.edit.swt;bundle-version="[1.5.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.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.6.0,2.0.0)",
+ org.mockito.mockito-all;bundle-version="[1.9.5,2.0.0)"
 Export-Package: org.eclipse.emf.ecp.edit.internal.swt.util;version="1.
- 5.1";x-internal:=true
+ 6.0";x-internal:=true
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 351d6de..7f20b3b 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.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/EMFDeleteSerivceImpl_PTest.java b/tests/org.eclipse.emf.ecp.edit.swt.test/src/org/eclipse/emf/ecp/edit/internal/swt/util/EMFDeleteSerivceImpl_PTest.java
new file mode 100644
index 0000000..bb11c69
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.edit.swt.test/src/org/eclipse/emf/ecp/edit/internal/swt/util/EMFDeleteSerivceImpl_PTest.java
@@ -0,0 +1,144 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * jfaltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.edit.internal.swt.util;
+
+import static org.junit.Assert.assertEquals;
+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 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.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.edit.spi.DeleteService;
+import org.eclipse.emf.ecp.edit.spi.EMFDeleteServiceImpl;
+import org.eclipse.emf.ecp.test.university.Address;
+import org.eclipse.emf.ecp.test.university.Professor;
+import org.eclipse.emf.ecp.test.university.UniversityFactory;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.emfstore.bowling.BowlingFactory;
+import org.eclipse.emf.emfstore.bowling.Game;
+import org.eclipse.emf.emfstore.bowling.League;
+import org.eclipse.emf.emfstore.bowling.Player;
+import org.eclipse.emf.emfstore.bowling.Tournament;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * @author jfaltermeier
+ *
+ */
+public class EMFDeleteSerivceImpl_PTest {
+
+	private DeleteService deleteService;
+	private AdapterFactoryEditingDomain domain;
+	private Resource resource;
+	private League league;
+	private Game game;
+	private Player player1;
+	private Player player2;
+	private Player player3;
+	private Tournament tournament;
+
+	@Before
+	public void setUp() {
+		final ResourceSet resourceSet = new ResourceSetImpl();
+		resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl()); //$NON-NLS-1$
+		domain = new AdapterFactoryEditingDomain(
+			new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE),
+			new BasicCommandStack(), resourceSet);
+		resourceSet.eAdapters().add(new AdapterFactoryEditingDomain.EditingDomainProvider(domain));
+		resource = resourceSet.createResource(URI.createURI("VIRTUAL_URI")); //$NON-NLS-1$
+
+		league = BowlingFactory.eINSTANCE.createLeague();
+		game = BowlingFactory.eINSTANCE.createGame();
+		tournament = BowlingFactory.eINSTANCE.createTournament();
+
+		resource.getContents().add(league);
+		resource.getContents().add(game);
+		resource.getContents().add(tournament);
+
+		player1 = BowlingFactory.eINSTANCE.createPlayer();
+		player2 = BowlingFactory.eINSTANCE.createPlayer();
+		player3 = BowlingFactory.eINSTANCE.createPlayer();
+		league.getPlayers().add(player1);
+		league.getPlayers().add(player2);
+		league.getPlayers().add(player3);
+		tournament.getPlayers().add(player1);
+		tournament.getPlayers().add(player2);
+		tournament.getPlayers().add(player3);
+
+		game.setPlayer(player1);
+
+		deleteService = new EMFDeleteServiceImpl();
+		final ViewModelContext context = mock(ViewModelContext.class);
+		when(context.getDomainModel()).thenReturn(league);
+		deleteService.instantiate(context);
+	}
+
+	@Test
+	public void testDeleteElements() {
+		/* act */
+		deleteService.deleteElements(Arrays.asList(Object.class.cast(player1), player2));
+
+		/* assert */
+		assertEquals(1, league.getPlayers().size());
+		assertTrue(league.getPlayers().contains(player3));
+		assertEquals(1, tournament.getPlayers().size());
+		assertTrue(tournament.getPlayers().contains(player3));
+		assertNull(game.getPlayer());
+
+	}
+
+	@Test
+	public void testDeleteElement() {
+		/* act */
+		deleteService.deleteElement(player1);
+
+		/* assert */
+		assertEquals(2, league.getPlayers().size());
+		assertTrue(league.getPlayers().contains(player2));
+		assertTrue(league.getPlayers().contains(player3));
+		assertEquals(2, tournament.getPlayers().size());
+		assertTrue(tournament.getPlayers().contains(player2));
+		assertTrue(tournament.getPlayers().contains(player3));
+		assertNull(game.getPlayer());
+	}
+
+	@Test
+	public void testDeleteElementNoChildOfParentReference() {
+		// setup
+		final Professor professor = UniversityFactory.eINSTANCE.createProfessor();
+		final Address address1 = UniversityFactory.eINSTANCE.createAddress();
+		final Address address2 = UniversityFactory.eINSTANCE.createAddress();
+		professor.getAddresses().add(address1);
+		professor.getAddresses().add(address2);
+		resource.getContents().add(professor);
+
+		// act
+		deleteService.deleteElement(address2);
+
+		// assert
+		assertEquals(1, professor.getAddresses().size());
+		assertSame(address1, professor.getAddresses().get(0));
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.ide.util.test/.gitignore b/tests/org.eclipse.emf.ecp.ide.util.test/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.ide.util.test/.gitignore
@@ -0,0 +1 @@
+/bin/
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 5fc3330..a58e296 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,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.ide.util.test;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.ide.util.test.Activator
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.ui;bundle-version="[3.106.0,4.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
  org.junit;bundle-version="[4.11.0,5.0.0)",
  org.eclipse.emf.common;bundle-version="[2.10.0,3.0.0)",
- org.eclipse.emf.ecore;bundle-version="[2.10.0,3.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
  org.eclipse.core.resources;bundle-version="[3.9.0,4.0.0)",
  org.eclipse.emf.ecore.xmi;bundle-version="[2.10.0,3.0.0)",
  org.eclipse.emf.common.ui;bundle-version="[2.9.0,3.0.0)",
@@ -17,5 +17,5 @@
  org.eclipse.emf.ecp.view.model;bundle-version="[1.5.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emf.ecp.ide.util.test;version="1.5.1";x-in
+Export-Package: org.eclipse.emf.ecp.ide.util.test;version="1.6.0";x-in
  ternal:=true
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 787404f..eda4157 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -19,16 +19,17 @@
 		<plugins>
 			<plugin>
 				<groupId>org.eclipse.tycho</groupId>
-				<artifactId>tycho-surefire-plugin</artifactId>
-				<version>${tycho-version}</version>
+				<artifactId>target-platform-configuration</artifactId>
 				<configuration>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.emfforms.sdk.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-					</dependencies>
+					<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>
diff --git a/tests/org.eclipse.emf.ecp.ide.util.test/resources/TestEcoreHelperProjectResources/testSubpackages1.ecore b/tests/org.eclipse.emf.ecp.ide.util.test/resources/TestEcoreHelperProjectResources/testSubpackages1.ecore
new file mode 100644
index 0000000..4e8487f
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.ide.util.test/resources/TestEcoreHelperProjectResources/testSubpackages1.ecore
@@ -0,0 +1,21 @@
+<?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="testSubpackages1_root" nsURI="http://testSubpackages1_root"
+    nsPrefix="testSubpackages1_root">
+  <eClassifiers xsi:type="ecore:EClass" name="class1">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="a" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ref_class3" eType="#//testSubpackages1_subpackage2/class3"/>
+  </eClassifiers>
+  <eSubpackages name="testSubpackages1_subpackage1" nsURI="http://testSubpackages1_subpackage1"
+      nsPrefix="testSubpackages1_subpackage1">
+    <eClassifiers xsi:type="ecore:EClass" name="class2"/>
+    <eSubpackages name="testSubpackages1_subpackage3" nsURI="http://testSubpackages1_subpackage3"
+        nsPrefix="testSubpackages1_subpackage3">
+      <eClassifiers xsi:type="ecore:EClass" name="class4"/>
+    </eSubpackages>
+  </eSubpackages>
+  <eSubpackages name="testSubpackages1_subpackage2" nsURI="http://testSubpackages1_subpackage2"
+      nsPrefix="testSubpackages1_subpackage2">
+    <eClassifiers xsi:type="ecore:EClass" name="class3"/>
+  </eSubpackages>
+</ecore:EPackage>
diff --git a/tests/org.eclipse.emf.ecp.ide.util.test/resources/TestEcoreHelperProjectResources/testSubpackages2.ecore b/tests/org.eclipse.emf.ecp.ide.util.test/resources/TestEcoreHelperProjectResources/testSubpackages2.ecore
new file mode 100644
index 0000000..cfdeafd
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.ide.util.test/resources/TestEcoreHelperProjectResources/testSubpackages2.ecore
@@ -0,0 +1,8 @@
+<?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="testSubpackages2_root" nsURI="http://testSubpackages2_root"
+    nsPrefix="testSubpackages2_root">
+  <eClassifiers xsi:type="ecore:EClass" name="class2">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="refClass4" eType="ecore:EClass testSubpackages1.ecore#//testSubpackages1_subpackage1/testSubpackages1_subpackage3/class4"/>
+  </eClassifiers>
+</ecore:EPackage>
diff --git a/tests/org.eclipse.emf.ecp.ide.util.test/src/org/eclipse/emf/ecp/ide/util/test/AllTests.java b/tests/org.eclipse.emf.ecp.ide.util.test/src/org/eclipse/emf/ecp/ide/util/test/AllTests.java
index 0f18ecb..8bb0067 100644
--- a/tests/org.eclipse.emf.ecp.ide.util.test/src/org/eclipse/emf/ecp/ide/util/test/AllTests.java
+++ b/tests/org.eclipse.emf.ecp.ide.util.test/src/org/eclipse/emf/ecp/ide/util/test/AllTests.java
@@ -10,8 +10,8 @@
 	EcoreHelperNoDependencies_PTest.class,
 	EcoreHelperOneDependency_PTest.class,
 	EcoreHelperTwoDependencies_PTest.class,
-	EcoreHelperCyclicDependencies_PTest.class
-})
+	EcoreHelperCyclicDependencies_PTest.class,
+	EcoreHelperSubpackages_PTest.class })
 public class AllTests {
 
 }
diff --git a/tests/org.eclipse.emf.ecp.ide.util.test/src/org/eclipse/emf/ecp/ide/util/test/EcoreHelperSubpackages_PTest.java b/tests/org.eclipse.emf.ecp.ide.util.test/src/org/eclipse/emf/ecp/ide/util/test/EcoreHelperSubpackages_PTest.java
new file mode 100644
index 0000000..39cc4f5
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.ide.util.test/src/org/eclipse/emf/ecp/ide/util/test/EcoreHelperSubpackages_PTest.java
@@ -0,0 +1,202 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Alexandra Buzila - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.ide.util.test;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EPackage.Registry;
+import org.eclipse.emf.ecp.internal.ide.util.EcoreHelper;
+import org.junit.After;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * @author Alexandra Buzila
+ *
+ */
+public class EcoreHelperSubpackages_PTest {
+	private final Registry packageRegistry = EPackage.Registry.INSTANCE;
+	private static final String ECORE_1_PATH = "/TestEcoreHelperProjectResources/testSubpackages1.ecore";
+	private static final String ECORE_2_PATH = "/TestEcoreHelperProjectResources/testSubpackages2.ecore";
+	private static final String ROOT_1_NS_URI = "http://testSubpackages1_root";
+	private static final String ROOT_2_NS_URI = "http://testSubpackages2_root";
+	private static final String SUBPACKAGE1_1_NS_URI = "http://testSubpackages1_subpackage1";
+	private static final String SUBPACKAGE1_2_NS_URI = "http://testSubpackages1_subpackage2";
+	private static final String SUBPACKAGE1_3_NS_URI = "http://testSubpackages1_subpackage3";
+
+	@BeforeClass
+	public static void setUpBeforeClass() throws Exception {
+		final IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+		final IProject project = root.getProject("TestEcoreHelperProjectResources");
+		// create resources to register and unregister
+		if (!project.exists()) {
+			installResourcesProject();
+		}
+	}
+
+	private static void installResourcesProject() throws Exception {
+		final ProjectInstallerWizard wiz = new ProjectInstallerWizard();
+		wiz.installExample(new NullProgressMonitor());
+	}
+
+	@Test
+	public void testRegisteringRootPackage() throws IOException {
+		// check initial state
+		assertFalse("Root Package is already in the registry!",
+			packageRegistry.containsKey(ROOT_1_NS_URI));
+		assertFalse("Subpackage 1 is already in the registry!",
+			packageRegistry.containsKey(SUBPACKAGE1_1_NS_URI));
+		assertFalse("Subpackage 2 is already in the registry!",
+			packageRegistry.containsKey(SUBPACKAGE1_2_NS_URI));
+		assertFalse("Subpackage 3 is already in the registry!",
+			packageRegistry.containsKey(SUBPACKAGE1_3_NS_URI));
+
+		EcoreHelper.registerEcore(ECORE_1_PATH);
+
+		assertTrue("Root Package is not in the registry!",
+			packageRegistry.containsKey(ROOT_1_NS_URI));
+		assertTrue("Subpackage 1 is not in the registry!",
+			packageRegistry.containsKey(SUBPACKAGE1_1_NS_URI));
+		assertTrue("Subpackage 2 is not in the registry!",
+			packageRegistry.containsKey(SUBPACKAGE1_2_NS_URI));
+		assertTrue("Subpackage 3 is not in the registry!",
+			packageRegistry.containsKey(SUBPACKAGE1_3_NS_URI));
+
+	}
+
+	@Test
+	public void testRegisteringUnregisteringViaReference() throws IOException {
+		// check initial state
+		assertFalse("Root Package is already in the registry!",
+			packageRegistry.containsKey(ROOT_1_NS_URI));
+		assertFalse("Root Package is already in the registry!",
+			packageRegistry.containsKey(ROOT_2_NS_URI));
+		assertFalse("Subpackage 1 is already in the registry!",
+			packageRegistry.containsKey(SUBPACKAGE1_1_NS_URI));
+		assertFalse("Subpackage 2 is already in the registry!",
+			packageRegistry.containsKey(SUBPACKAGE1_2_NS_URI));
+		assertFalse("Subpackage 3 is already in the registry!",
+			packageRegistry.containsKey(SUBPACKAGE1_3_NS_URI));
+
+		EcoreHelper.registerEcore(ECORE_2_PATH);
+
+		assertTrue("Root Package is not in the registry!",
+			packageRegistry.containsKey(ROOT_1_NS_URI));
+		assertTrue("Root Package is not in the registry!",
+			packageRegistry.containsKey(ROOT_2_NS_URI));
+		assertTrue("Subpackage 1 is not in the registry!",
+			packageRegistry.containsKey(SUBPACKAGE1_1_NS_URI));
+		assertTrue("Subpackage 2 is not in the registry!",
+			packageRegistry.containsKey(SUBPACKAGE1_2_NS_URI));
+		assertTrue("Subpackage 3 is not in the registry!",
+			packageRegistry.containsKey(SUBPACKAGE1_3_NS_URI));
+
+		EcoreHelper.registerEcore(ECORE_1_PATH);
+
+		EcoreHelper.unregisterEcore(ECORE_2_PATH);
+
+		assertTrue("Root Package 1 is not in the registry!",
+			packageRegistry.containsKey(ROOT_1_NS_URI));
+		assertFalse("Root Package 2 is still in the registry!",
+			packageRegistry.containsKey(ROOT_2_NS_URI));
+		assertTrue("Subpackage 1 is not in the registry!",
+			packageRegistry.containsKey(SUBPACKAGE1_1_NS_URI));
+		assertTrue("Subpackage 2 is not in the registry!",
+			packageRegistry.containsKey(SUBPACKAGE1_2_NS_URI));
+		assertTrue("Subpackage 3 is not in the registry!",
+			packageRegistry.containsKey(SUBPACKAGE1_3_NS_URI));
+
+		EcoreHelper.unregisterEcore(ECORE_1_PATH);
+
+		assertFalse("Root Package 1 is still in the registry!",
+			packageRegistry.containsKey(ROOT_1_NS_URI));
+		assertFalse("Root Package 2 is still in the registry!",
+			packageRegistry.containsKey(ROOT_2_NS_URI));
+		assertFalse("Subpackage 1 is still in the registry!",
+			packageRegistry.containsKey(SUBPACKAGE1_1_NS_URI));
+		assertFalse("Subpackage 2 is still in the registry!",
+			packageRegistry.containsKey(SUBPACKAGE1_2_NS_URI));
+		assertFalse("Subpackage 3 is still in the registry!",
+			packageRegistry.containsKey(SUBPACKAGE1_3_NS_URI));
+	}
+
+	@Test
+	public void testRegisteringUnregisteringViaReference_DifferentOrder() throws IOException {
+		// check initial state
+		assertFalse("Root Package is already in the registry!",
+			packageRegistry.containsKey(ROOT_1_NS_URI));
+		assertFalse("Root Package is already in the registry!",
+			packageRegistry.containsKey(ROOT_2_NS_URI));
+		assertFalse("Subpackage 1 is already in the registry!",
+			packageRegistry.containsKey(SUBPACKAGE1_1_NS_URI));
+		assertFalse("Subpackage 2 is already in the registry!",
+			packageRegistry.containsKey(SUBPACKAGE1_2_NS_URI));
+		assertFalse("Subpackage 3 is already in the registry!",
+			packageRegistry.containsKey(SUBPACKAGE1_3_NS_URI));
+
+		EcoreHelper.registerEcore(ECORE_2_PATH);
+
+		assertTrue("Root Package is not in the registry!",
+			packageRegistry.containsKey(ROOT_1_NS_URI));
+		assertTrue("Root Package is not in the registry!",
+			packageRegistry.containsKey(ROOT_2_NS_URI));
+		assertTrue("Subpackage 1 is not in the registry!",
+			packageRegistry.containsKey(SUBPACKAGE1_1_NS_URI));
+		assertTrue("Subpackage 2 is not in the registry!",
+			packageRegistry.containsKey(SUBPACKAGE1_2_NS_URI));
+		assertTrue("Subpackage 3 is not in the registry!",
+			packageRegistry.containsKey(SUBPACKAGE1_3_NS_URI));
+
+		EcoreHelper.registerEcore(ECORE_1_PATH);
+
+		EcoreHelper.unregisterEcore(ECORE_1_PATH);
+
+		assertTrue("Root Package 1 is not in the registry!",
+			packageRegistry.containsKey(ROOT_1_NS_URI));
+		assertTrue("Root Package 2 is not in the registry!",
+			packageRegistry.containsKey(ROOT_2_NS_URI));
+		assertTrue("Subpackage 1 is not in the registry!",
+			packageRegistry.containsKey(SUBPACKAGE1_1_NS_URI));
+		assertTrue("Subpackage 2 is not in the registry!",
+			packageRegistry.containsKey(SUBPACKAGE1_2_NS_URI));
+		assertTrue("Subpackage 3 is not in the registry!",
+			packageRegistry.containsKey(SUBPACKAGE1_3_NS_URI));
+
+		EcoreHelper.unregisterEcore(ECORE_2_PATH);
+
+		assertFalse("Root Package 1 is still in the registry!",
+			packageRegistry.containsKey(ROOT_1_NS_URI));
+		assertFalse("Root Package 2 is still in the registry!",
+			packageRegistry.containsKey(ROOT_2_NS_URI));
+		assertFalse("Subpackage 1 is still in the registry!",
+			packageRegistry.containsKey(SUBPACKAGE1_1_NS_URI));
+		assertFalse("Subpackage 2 is still in the registry!",
+			packageRegistry.containsKey(SUBPACKAGE1_2_NS_URI));
+		assertFalse("Subpackage 3 is still in the registry!",
+			packageRegistry.containsKey(SUBPACKAGE1_3_NS_URI));
+	}
+
+	@After
+	public void tearDown() throws Exception {
+		EcoreHelper.unregisterEcore(ECORE_1_PATH);
+		EcoreHelper.unregisterEcore(ECORE_2_PATH);
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.ide.view.service.test/.gitignore b/tests/org.eclipse.emf.ecp.ide.view.service.test/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.ide.view.service.test/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/tests/org.eclipse.emf.ecp.ide.view.service.test/IDEViewModelRegistry_PTest.launch b/tests/org.eclipse.emf.ecp.ide.view.service.test/IDEViewModelRegistry_PTest.launch
index dd498a2..3fc0ad6 100644
--- a/tests/org.eclipse.emf.ecp.ide.view.service.test/IDEViewModelRegistry_PTest.launch
+++ b/tests/org.eclipse.emf.ecp.ide.view.service.test/IDEViewModelRegistry_PTest.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.cdo.core,org.eclipse.emf.ecp.cdo.ui,org.eclipse.emf.ecp.common,org.eclipse.emf.ecp.common.test.fx,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.view.control,org.eclipse.emf.ecp.ide.editor.viewmodel,org.eclipse.emf.ecp.ide.util.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.emailControlRenderer,org.eclipse.emf.ecp.makeithappen.model,org.eclipse.emf.ecp.makeithappen.model.edit,org.eclipse.emf.ecp.makeithappen.view.group.renderer,org.eclipse.emf.ecp.makeithappen.wizards,org.eclipse.emf.ecp.products,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.test,org.eclipse.emf.ecp.ui.view.test,org.eclipse.emf.ecp.util.e4.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.context,org.eclipse.emf.ecp.view.context.locale,org.eclipse.emf.ecp.view.context.test,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.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.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.databinding,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.common,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.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.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.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.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.viewmodel.fx,org.eclipse.emf.ecp.workspace.core,org.eclipse.emf.ecp.workspace.ui,org.eclipse.emf.emfstore.fx.util"/>
+<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.test.fx,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.view.control,org.eclipse.emf.ecp.ide.editor.viewmodel,org.eclipse.emf.ecp.ide.util.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.emailControlRenderer,org.eclipse.emf.ecp.makeithappen.model,org.eclipse.emf.ecp.makeithappen.model.edit,org.eclipse.emf.ecp.makeithappen.view.group.renderer,org.eclipse.emf.ecp.makeithappen.wizards,org.eclipse.emf.ecp.products,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.test,org.eclipse.emf.ecp.ui.view.test,org.eclipse.emf.ecp.util.e4.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.context,org.eclipse.emf.ecp.view.context.locale,org.eclipse.emf.ecp.view.context.test,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.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.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.common,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.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.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.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.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.viewmodel.fx,org.eclipse.emf.ecp.workspace.core,org.eclipse.emf.ecp.workspace.ui,org.eclipse.emf.emfstore.fx.util"/>
 <booleanAttribute key="includeOptional" value="true"/>
 <stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
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 01d2cb3..bf09b0e 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: IDEViewModelRegistry Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.ide.view.service.test;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.eclipse.emf.ecp.ide.view.service;bundle-version="[1.5.0,2.0.0)",
@@ -13,5 +13,5 @@
  org.eclipse.emf.ecore.xmi;bundle-version="[2.0.0,3.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.emf.common.ui;bundle-version="[2.7.0,3.0.0)"
-Export-Package: org.eclipse.emf.ecp.ide.view.service.test;version="1.5
- .1";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.ide.view.service.test;version="1.6
+ .0";x-internal:=true
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 d101391..4bd19d0 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -24,13 +24,21 @@
 				<configuration>
 		          	<useUIHarness>false</useUIHarness>
 		          	<useUIThread>false</useUIThread>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.emfforms.sdk.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-					</dependencies>
+				</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>
diff --git a/tests/org.eclipse.emf.ecp.integrationtest/.gitignore b/tests/org.eclipse.emf.ecp.integrationtest/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.integrationtest/.gitignore
@@ -0,0 +1 @@
+/bin/
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 8a8c9e9..28ff3be 100644
--- a/tests/org.eclipse.emf.ecp.integrationtest/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.integrationtest/META-INF/MANIFEST.MF
@@ -2,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Integrationtest
 Bundle-SymbolicName: org.eclipse.emf.ecp.integrationtest
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)",
  org.eclipse.osgi;bundle-version="[3.7.0,4.0.0)"
 Bundle-Activator: org.eclipse.emf.ecp.integrationtest.Activator
 Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emf.ecp.integrationtest;version="1.5.1";x-
+Export-Package: org.eclipse.emf.ecp.integrationtest;version="1.6.0";x-
  internal:=true
diff --git a/tests/org.eclipse.emf.ecp.integrationtest/pom.xml b/tests/org.eclipse.emf.ecp.integrationtest/pom.xml
index 21595d7..7434344 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -22,25 +22,24 @@
 				<artifactId>tycho-surefire-plugin</artifactId>
 				<version>${tycho-version}</version>
 				<configuration>
-		          	<useUIHarness>false</useUIHarness>
-		          	<useUIThread>false</useUIThread>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.sdk.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.emfstore.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-					</dependencies>
+					<useUIHarness>false</useUIHarness>
+					<useUIThread>false</useUIThread>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>target-platform-configuration</artifactId>
+				<version>${tycho-version}</version>
+				<configuration>
+					<dependency-resolution>
+						<extraRequirements>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
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 0056c77..450dd87 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,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Model Quick Fix Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.quickfix.test
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.quickfix;bundle-version="1.5.0"
+Fragment-Host: org.eclipse.emf.ecp.quickfix;bundle-version="[1.6.0,2.0.0)"
 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.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
 Import-Package: org.junit;version="[4.0.0,5.0.0)"
-Export-Package: org.eclipse.emf.ecp.ui.quickfix.test;version="1.5.1";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.ui.quickfix.test;version="1.5.0";x-internal:=true
diff --git a/tests/org.eclipse.emf.ecp.quickfix.test/ModelQuickFixRegistry_ITest.launch b/tests/org.eclipse.emf.ecp.quickfix.test/ModelQuickFixRegistry_ITest.launch
index b810f84..e66a059 100644
--- a/tests/org.eclipse.emf.ecp.quickfix.test/ModelQuickFixRegistry_ITest.launch
+++ b/tests/org.eclipse.emf.ecp.quickfix.test/ModelQuickFixRegistry_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.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.view.control,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.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.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.databinding,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.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.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"/>
+<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.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.view.control,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.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.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.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.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.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"/>
 <booleanAttribute key="includeOptional" value="true"/>
 <stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
diff --git a/tests/org.eclipse.emf.ecp.quickfix.test/pom.xml b/tests/org.eclipse.emf.ecp.quickfix.test/pom.xml
index 4f177aa..43f8a8b 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -24,13 +24,21 @@
 				<configuration>
 		          	<useUIHarness>true</useUIHarness>
 		          	<useUIThread>true</useUIThread>
-					<dependencies>
-						<dependency>
-                            <type>eclipse-plugin</type>
-                            <artifactId>org.eclipse.emf.ecp.quickfix</artifactId>
-                            <version>1.5.1</version>
-                        </dependency>
-					</dependencies>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>target-platform-configuration</artifactId>
+				<configuration>
+					<dependency-resolution>
+						<extraRequirements>
+							<requirement>
+								<type>eclipse-plugin</type>
+                            	<id>org.eclipse.emf.ecp.quickfix</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
diff --git a/tests/org.eclipse.emf.ecp.test.model.edit/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emf.ecp.test.model.edit/.settings/org.eclipse.jdt.core.prefs
index edbd6f6..edc0222 100644
--- a/tests/org.eclipse.emf.ecp.test.model.edit/.settings/org.eclipse.jdt.core.prefs
+++ b/tests/org.eclipse.emf.ecp.test.model.edit/.settings/org.eclipse.jdt.core.prefs
@@ -25,6 +25,7 @@
 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.5
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
 org.eclipse.jdt.core.compiler.compliance=1.5
@@ -96,7 +97,7 @@
 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.redundantSuperinterface=ignore
 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
@@ -118,6 +119,7 @@
 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.unusedExceptionParameter=ignore
 org.eclipse.jdt.core.compiler.problem.unusedImport=warning
 org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
 org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
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 69a6f64..eff5b5f 100644
--- a/tests/org.eclipse.emf.ecp.test.model.edit/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.test.model.edit/META-INF/MANIFEST.MF
@@ -2,15 +2,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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.test.university.provider.UniversityEditPlugin$Implementation
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.emf.ecp.test.university.provider;version="
- 1.5.1";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.test.university.provider;version="1.6.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.5.0,2.0.0)";visibility:=reexport,
- org.eclipse.emf.edit;bundle-version="[2.9.0,3.0.0)";visibility:=reexport
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport
 Bundle-ActivationPolicy: lazy
diff --git a/tests/org.eclipse.emf.ecp.test.model.edit/icons/full/obj16/Address.gif b/tests/org.eclipse.emf.ecp.test.model.edit/icons/full/obj16/Address.gif
new file mode 100644
index 0000000..30f0c48
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.test.model.edit/icons/full/obj16/Address.gif
Binary files differ
diff --git a/tests/org.eclipse.emf.ecp.test.model.edit/plugin.properties b/tests/org.eclipse.emf.ecp.test.model.edit/plugin.properties
index 08dcd2e..6a2bc0d 100644
--- a/tests/org.eclipse.emf.ecp.test.model.edit/plugin.properties
+++ b/tests/org.eclipse.emf.ecp.test.model.edit/plugin.properties
@@ -9,7 +9,7 @@
 # EclipseSource - Generated code
 
 pluginName = University Edit Support
-providerName = www.example.org
+providerName = Eclipse Modeling Project
 
 _UI_CreateChild_text = {0}
 _UI_CreateChild_text2 = {1} {0}
@@ -40,3 +40,5 @@
 _UI_Staff_assistants_feature = Assistants
 _UI_Staff_staff_feature = Staff
 _UI_Person_name_feature = Name
+_UI_Address_type = Address
+_UI_Person_addresses_feature = Addresses
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 d613769..1930745 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.test.model.edit/src/org/eclipse/emf/ecp/test/university/provider/AddressItemProvider.java b/tests/org.eclipse.emf.ecp.test.model.edit/src/org/eclipse/emf/ecp/test/university/provider/AddressItemProvider.java
new file mode 100644
index 0000000..c4442a1
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.test.model.edit/src/org/eclipse/emf/ecp/test/university/provider/AddressItemProvider.java
@@ -0,0 +1,133 @@
+/**
+ * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource - Generated code
+ */
+package org.eclipse.emf.ecp.test.university.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.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.ItemProviderAdapter;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.ecp.test.university.Address} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class AddressItemProvider
+	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 AddressItemProvider(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);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns Address.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Address")); //$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) {
+		return getString("_UI_Address_type"); //$NON-NLS-1$
+	}
+
+	/**
+	 * 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);
+		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 UniversityEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.test.model.edit/src/org/eclipse/emf/ecp/test/university/provider/AssistantItemProvider.java b/tests/org.eclipse.emf.ecp.test.model.edit/src/org/eclipse/emf/ecp/test/university/provider/AssistantItemProvider.java
index b6983d5..d532a8d 100644
--- a/tests/org.eclipse.emf.ecp.test.model.edit/src/org/eclipse/emf/ecp/test/university/provider/AssistantItemProvider.java
+++ b/tests/org.eclipse.emf.ecp.test.model.edit/src/org/eclipse/emf/ecp/test/university/provider/AssistantItemProvider.java
@@ -24,6 +24,7 @@
 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;
@@ -39,9 +40,8 @@
 public class AssistantItemProvider
 	extends ItemProviderAdapter
 	implements
-	IEditingDomainItemProvider, ITreeItemContentProvider, IItemLabelProvider,
-	IItemPropertySource
-{
+	IEditingDomainItemProvider, IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider,
+	IItemPropertySource {
 	/**
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc -->
@@ -49,8 +49,7 @@
 	 *
 	 * @generated
 	 */
-	public AssistantItemProvider(AdapterFactory adapterFactory)
-	{
+	public AssistantItemProvider(AdapterFactory adapterFactory) {
 		super(adapterFactory);
 	}
 
@@ -62,10 +61,8 @@
 	 * @generated
 	 */
 	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
-	{
-		if (itemPropertyDescriptors == null)
-		{
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 
 			addNamePropertyDescriptor(object);
@@ -80,11 +77,9 @@
 	 *
 	 * @generated
 	 */
-	protected void addNamePropertyDescriptor(Object object)
-	{
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-			(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors
+			.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
 				getResourceLocator(),
 				getString("_UI_Person_name_feature"), //$NON-NLS-1$
 				getString("_UI_PropertyDescriptor_description", "_UI_Person_name_feature", "_UI_Person_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
@@ -105,8 +100,7 @@
 	 * @generated
 	 */
 	@Override
-	public Object getImage(Object object)
-	{
+	public Object getImage(Object object) {
 		return overlayImage(object, getResourceLocator().getImage("full/obj16/Assistant")); //$NON-NLS-1$
 	}
 
@@ -118,12 +112,10 @@
 	 * @generated
 	 */
 	@Override
-	public String getText(Object object)
-	{
+	public String getText(Object object) {
 		final String label = ((Assistant) object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_Assistant_type") : //$NON-NLS-1$
-			getString("_UI_Assistant_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+		return label == null || label.length() == 0 ? getString("_UI_Assistant_type") //$NON-NLS-1$
+			: getString("_UI_Assistant_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
 	}
 
 	/**
@@ -135,13 +127,12 @@
 	 * @generated
 	 */
 	@Override
-	public void notifyChanged(Notification notification)
-	{
+	public void notifyChanged(Notification notification) {
 		updateChildren(notification);
 
-		switch (notification.getFeatureID(Assistant.class))
-		{
+		switch (notification.getFeatureID(Assistant.class)) {
 		case UniversityPackage.ASSISTANT__NAME:
+		case UniversityPackage.ASSISTANT__ADDRESSES:
 			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
 			return;
 		}
@@ -157,8 +148,7 @@
 	 * @generated
 	 */
 	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
-	{
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
 		super.collectNewChildDescriptors(newChildDescriptors, object);
 	}
 
@@ -170,8 +160,7 @@
 	 * @generated
 	 */
 	@Override
-	public ResourceLocator getResourceLocator()
-	{
+	public ResourceLocator getResourceLocator() {
 		return UniversityEditPlugin.INSTANCE;
 	}
 
diff --git a/tests/org.eclipse.emf.ecp.test.model.edit/src/org/eclipse/emf/ecp/test/university/provider/CourseCatalogItemProvider.java b/tests/org.eclipse.emf.ecp.test.model.edit/src/org/eclipse/emf/ecp/test/university/provider/CourseCatalogItemProvider.java
index eb0f0ff..e5d6af3 100644
--- a/tests/org.eclipse.emf.ecp.test.model.edit/src/org/eclipse/emf/ecp/test/university/provider/CourseCatalogItemProvider.java
+++ b/tests/org.eclipse.emf.ecp.test.model.edit/src/org/eclipse/emf/ecp/test/university/provider/CourseCatalogItemProvider.java
@@ -24,6 +24,7 @@
 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.ItemProviderAdapter;
 
@@ -35,7 +36,7 @@
  * @generated
  */
 public class CourseCatalogItemProvider extends ItemProviderAdapter implements
-	IEditingDomainItemProvider, ITreeItemContentProvider, IItemLabelProvider,
+	IEditingDomainItemProvider, IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider,
 	IItemPropertySource {
 	/**
 	 * This constructs an instance from a factory and a notifier.
@@ -57,8 +58,7 @@
 	 */
 	@Override
 	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null)
-		{
+		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 
 			addCoursesPropertyDescriptor(object);
@@ -75,13 +75,11 @@
 	 */
 	protected void addCoursesPropertyDescriptor(Object object) {
 		itemPropertyDescriptors
-			.add
-			(createItemPropertyDescriptor
-			(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+			.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
 				getResourceLocator(),
 				getString("_UI_CourseCatalog_courses_feature"), //$NON-NLS-1$
-				getString(
-					"_UI_PropertyDescriptor_description", "_UI_CourseCatalog_courses_feature", "_UI_CourseCatalog_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				getString("_UI_PropertyDescriptor_description", "_UI_CourseCatalog_courses_feature", //$NON-NLS-1$//$NON-NLS-2$
+					"_UI_CourseCatalog_type"), //$NON-NLS-1$
 				UniversityPackage.Literals.COURSE_CATALOG__COURSES,
 				true,
 				false,
@@ -101,10 +99,8 @@
 	 * @generated
 	 */
 	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object)
-	{
-		if (childrenFeatures == null)
-		{
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
 			super.getChildrenFeatures(object);
 			childrenFeatures.add(UniversityPackage.Literals.COURSE_CATALOG__COURSES);
 		}
@@ -118,8 +114,7 @@
 	 * @generated
 	 */
 	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child)
-	{
+	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.
 
diff --git a/tests/org.eclipse.emf.ecp.test.model.edit/src/org/eclipse/emf/ecp/test/university/provider/CourseItemProvider.java b/tests/org.eclipse.emf.ecp.test.model.edit/src/org/eclipse/emf/ecp/test/university/provider/CourseItemProvider.java
index e371126..f82b49b 100644
--- a/tests/org.eclipse.emf.ecp.test.model.edit/src/org/eclipse/emf/ecp/test/university/provider/CourseItemProvider.java
+++ b/tests/org.eclipse.emf.ecp.test.model.edit/src/org/eclipse/emf/ecp/test/university/provider/CourseItemProvider.java
@@ -24,6 +24,7 @@
 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;
@@ -37,7 +38,7 @@
  * @generated
  */
 public class CourseItemProvider extends ItemProviderAdapter implements
-	IEditingDomainItemProvider, ITreeItemContentProvider, IItemLabelProvider,
+	IEditingDomainItemProvider, IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider,
 	IItemPropertySource {
 	/**
 	 * This constructs an instance from a factory and a notifier.
@@ -59,8 +60,7 @@
 	 */
 	@Override
 	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null)
-		{
+		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 
 			addIdPropertyDescriptor(object);
@@ -78,9 +78,8 @@
 	 * @generated
 	 */
 	protected void addIdPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-			(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+		itemPropertyDescriptors
+			.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
 				getResourceLocator(),
 				getString("_UI_Course_id_feature"), //$NON-NLS-1$
 				getString("_UI_PropertyDescriptor_description", "_UI_Course_id_feature", "_UI_Course_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
@@ -101,9 +100,8 @@
 	 * @generated
 	 */
 	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-			(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+		itemPropertyDescriptors
+			.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
 				getResourceLocator(),
 				getString("_UI_Course_name_feature"), //$NON-NLS-1$
 				getString("_UI_PropertyDescriptor_description", "_UI_Course_name_feature", "_UI_Course_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
@@ -123,11 +121,9 @@
 	 *
 	 * @generated
 	 */
-	protected void addEtcsPropertyDescriptor(Object object)
-	{
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-			(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+	protected void addEtcsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors
+			.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
 				getResourceLocator(),
 				getString("_UI_Course_etcs_feature"), //$NON-NLS-1$
 				getString("_UI_PropertyDescriptor_description", "_UI_Course_etcs_feature", "_UI_Course_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
@@ -162,9 +158,8 @@
 	@Override
 	public String getText(Object object) {
 		final String label = ((Course) object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_Course_type") : //$NON-NLS-1$
-			getString("_UI_Course_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+		return label == null || label.length() == 0 ? getString("_UI_Course_type") //$NON-NLS-1$
+			: getString("_UI_Course_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
 	}
 
 	/**
@@ -179,8 +174,7 @@
 	public void notifyChanged(Notification notification) {
 		updateChildren(notification);
 
-		switch (notification.getFeatureID(Course.class))
-		{
+		switch (notification.getFeatureID(Course.class)) {
 		case UniversityPackage.COURSE__ID:
 		case UniversityPackage.COURSE__NAME:
 		case UniversityPackage.COURSE__ETCS:
diff --git a/tests/org.eclipse.emf.ecp.test.model.edit/src/org/eclipse/emf/ecp/test/university/provider/ProfessorItemProvider.java b/tests/org.eclipse.emf.ecp.test.model.edit/src/org/eclipse/emf/ecp/test/university/provider/ProfessorItemProvider.java
index ed5bb18..3a6652b 100644
--- a/tests/org.eclipse.emf.ecp.test.model.edit/src/org/eclipse/emf/ecp/test/university/provider/ProfessorItemProvider.java
+++ b/tests/org.eclipse.emf.ecp.test.model.edit/src/org/eclipse/emf/ecp/test/university/provider/ProfessorItemProvider.java
@@ -24,6 +24,7 @@
 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;
@@ -39,9 +40,8 @@
 public class ProfessorItemProvider
 	extends ItemProviderAdapter
 	implements
-	IEditingDomainItemProvider, ITreeItemContentProvider, IItemLabelProvider,
-	IItemPropertySource
-{
+	IEditingDomainItemProvider, IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider,
+	IItemPropertySource {
 	/**
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc -->
@@ -49,8 +49,7 @@
 	 *
 	 * @generated
 	 */
-	public ProfessorItemProvider(AdapterFactory adapterFactory)
-	{
+	public ProfessorItemProvider(AdapterFactory adapterFactory) {
 		super(adapterFactory);
 	}
 
@@ -62,10 +61,8 @@
 	 * @generated
 	 */
 	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
-	{
-		if (itemPropertyDescriptors == null)
-		{
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 
 			addNamePropertyDescriptor(object);
@@ -80,11 +77,9 @@
 	 *
 	 * @generated
 	 */
-	protected void addNamePropertyDescriptor(Object object)
-	{
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-			(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors
+			.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
 				getResourceLocator(),
 				getString("_UI_Person_name_feature"), //$NON-NLS-1$
 				getString("_UI_PropertyDescriptor_description", "_UI_Person_name_feature", "_UI_Person_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
@@ -105,8 +100,7 @@
 	 * @generated
 	 */
 	@Override
-	public Object getImage(Object object)
-	{
+	public Object getImage(Object object) {
 		return overlayImage(object, getResourceLocator().getImage("full/obj16/Professor")); //$NON-NLS-1$
 	}
 
@@ -118,12 +112,10 @@
 	 * @generated
 	 */
 	@Override
-	public String getText(Object object)
-	{
+	public String getText(Object object) {
 		final String label = ((Professor) object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_Professor_type") : //$NON-NLS-1$
-			getString("_UI_Professor_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+		return label == null || label.length() == 0 ? getString("_UI_Professor_type") //$NON-NLS-1$
+			: getString("_UI_Professor_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
 	}
 
 	/**
@@ -135,13 +127,12 @@
 	 * @generated
 	 */
 	@Override
-	public void notifyChanged(Notification notification)
-	{
+	public void notifyChanged(Notification notification) {
 		updateChildren(notification);
 
-		switch (notification.getFeatureID(Professor.class))
-		{
+		switch (notification.getFeatureID(Professor.class)) {
 		case UniversityPackage.PROFESSOR__NAME:
+		case UniversityPackage.PROFESSOR__ADDRESSES:
 			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
 			return;
 		}
@@ -157,8 +148,7 @@
 	 * @generated
 	 */
 	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
-	{
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
 		super.collectNewChildDescriptors(newChildDescriptors, object);
 	}
 
@@ -170,8 +160,7 @@
 	 * @generated
 	 */
 	@Override
-	public ResourceLocator getResourceLocator()
-	{
+	public ResourceLocator getResourceLocator() {
 		return UniversityEditPlugin.INSTANCE;
 	}
 
diff --git a/tests/org.eclipse.emf.ecp.test.model.edit/src/org/eclipse/emf/ecp/test/university/provider/StaffItemProvider.java b/tests/org.eclipse.emf.ecp.test.model.edit/src/org/eclipse/emf/ecp/test/university/provider/StaffItemProvider.java
index d44befd..c9029ca 100644
--- a/tests/org.eclipse.emf.ecp.test.model.edit/src/org/eclipse/emf/ecp/test/university/provider/StaffItemProvider.java
+++ b/tests/org.eclipse.emf.ecp.test.model.edit/src/org/eclipse/emf/ecp/test/university/provider/StaffItemProvider.java
@@ -24,6 +24,7 @@
 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.ItemProviderAdapter;
 import org.eclipse.emf.edit.provider.ViewerNotification;
@@ -38,9 +39,8 @@
 public class StaffItemProvider
 	extends ItemProviderAdapter
 	implements
-	IEditingDomainItemProvider, ITreeItemContentProvider, IItemLabelProvider,
-	IItemPropertySource
-{
+	IEditingDomainItemProvider, IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider,
+	IItemPropertySource {
 	/**
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc -->
@@ -48,8 +48,7 @@
 	 *
 	 * @generated
 	 */
-	public StaffItemProvider(AdapterFactory adapterFactory)
-	{
+	public StaffItemProvider(AdapterFactory adapterFactory) {
 		super(adapterFactory);
 	}
 
@@ -61,10 +60,8 @@
 	 * @generated
 	 */
 	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
-	{
-		if (itemPropertyDescriptors == null)
-		{
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 
 		}
@@ -81,10 +78,8 @@
 	 * @generated
 	 */
 	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object)
-	{
-		if (childrenFeatures == null)
-		{
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
 			super.getChildrenFeatures(object);
 			childrenFeatures.add(UniversityPackage.Literals.STAFF__STAFF);
 		}
@@ -98,8 +93,7 @@
 	 * @generated
 	 */
 	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child)
-	{
+	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.
 
@@ -114,8 +108,7 @@
 	 * @generated
 	 */
 	@Override
-	public Object getImage(Object object)
-	{
+	public Object getImage(Object object) {
 		return overlayImage(object, getResourceLocator().getImage("full/obj16/Staff")); //$NON-NLS-1$
 	}
 
@@ -127,8 +120,7 @@
 	 * @generated
 	 */
 	@Override
-	public String getText(Object object)
-	{
+	public String getText(Object object) {
 		return getString("_UI_Staff_type"); //$NON-NLS-1$
 	}
 
@@ -141,12 +133,10 @@
 	 * @generated
 	 */
 	@Override
-	public void notifyChanged(Notification notification)
-	{
+	public void notifyChanged(Notification notification) {
 		updateChildren(notification);
 
-		switch (notification.getFeatureID(Staff.class))
-		{
+		switch (notification.getFeatureID(Staff.class)) {
 		case UniversityPackage.STAFF__STAFF:
 			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
 			return;
@@ -163,8 +153,7 @@
 	 * @generated
 	 */
 	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
-	{
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
 		super.collectNewChildDescriptors(newChildDescriptors, object);
 	}
 
@@ -176,8 +165,7 @@
 	 * @generated
 	 */
 	@Override
-	public ResourceLocator getResourceLocator()
-	{
+	public ResourceLocator getResourceLocator() {
 		return UniversityEditPlugin.INSTANCE;
 	}
 
diff --git a/tests/org.eclipse.emf.ecp.test.model.edit/src/org/eclipse/emf/ecp/test/university/provider/UniversityEditPlugin.java b/tests/org.eclipse.emf.ecp.test.model.edit/src/org/eclipse/emf/ecp/test/university/provider/UniversityEditPlugin.java
index 6fb05b5..2705b58 100644
--- a/tests/org.eclipse.emf.ecp.test.model.edit/src/org/eclipse/emf/ecp/test/university/provider/UniversityEditPlugin.java
+++ b/tests/org.eclipse.emf.ecp.test.model.edit/src/org/eclipse/emf/ecp/test/university/provider/UniversityEditPlugin.java
@@ -48,9 +48,7 @@
 	 * @generated
 	 */
 	public UniversityEditPlugin() {
-		super(new ResourceLocator[]
-		{
-			});
+		super(new ResourceLocator[] {});
 	}
 
 	/**
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 5e3a4ac..bbfa549 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
@@ -105,8 +105,7 @@
 	 */
 	@Override
 	public Adapter createCourseCatalogAdapter() {
-		if (courseCatalogItemProvider == null)
-		{
+		if (courseCatalogItemProvider == null) {
 			courseCatalogItemProvider = new CourseCatalogItemProvider(this);
 		}
 
@@ -131,8 +130,7 @@
 	 */
 	@Override
 	public Adapter createCourseAdapter() {
-		if (courseItemProvider == null)
-		{
+		if (courseItemProvider == null) {
 			courseItemProvider = new CourseItemProvider(this);
 		}
 
@@ -156,10 +154,8 @@
 	 * @generated
 	 */
 	@Override
-	public Adapter createStaffAdapter()
-	{
-		if (staffItemProvider == null)
-		{
+	public Adapter createStaffAdapter() {
+		if (staffItemProvider == null) {
 			staffItemProvider = new StaffItemProvider(this);
 		}
 
@@ -183,10 +179,8 @@
 	 * @generated
 	 */
 	@Override
-	public Adapter createProfessorAdapter()
-	{
-		if (professorItemProvider == null)
-		{
+	public Adapter createProfessorAdapter() {
+		if (professorItemProvider == null) {
 			professorItemProvider = new ProfessorItemProvider(this);
 		}
 
@@ -210,10 +204,8 @@
 	 * @generated
 	 */
 	@Override
-	public Adapter createAssistantAdapter()
-	{
-		if (assistantItemProvider == null)
-		{
+	public Adapter createAssistantAdapter() {
+		if (assistantItemProvider == null) {
 			assistantItemProvider = new AssistantItemProvider(this);
 		}
 
@@ -221,6 +213,31 @@
 	}
 
 	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.emf.ecp.test.university.Address} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected AddressItemProvider addressItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.emf.ecp.test.university.Address}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Adapter createAddressAdapter() {
+		if (addressItemProvider == null) {
+			addressItemProvider = new AddressItemProvider(this);
+		}
+
+		return addressItemProvider;
+	}
+
+	/**
 	 * This returns the root adapter factory that contains this factory.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -274,11 +291,9 @@
 	 */
 	@Override
 	public Object adapt(Object object, Object type) {
-		if (isFactoryForType(type))
-		{
+		if (isFactoryForType(type)) {
 			final Object adapter = super.adapt(object, type);
-			if (!(type instanceof Class<?>) || ((Class<?>) type).isInstance(adapter))
-			{
+			if (!(type instanceof Class<?>) || ((Class<?>) type).isInstance(adapter)) {
 				return adapter;
 			}
 		}
@@ -318,8 +333,7 @@
 	public void fireNotifyChanged(Notification notification) {
 		changeNotifier.fireNotifyChanged(notification);
 
-		if (parentAdapterFactory != null)
-		{
+		if (parentAdapterFactory != null) {
 			parentAdapterFactory.fireNotifyChanged(notification);
 		}
 	}
@@ -347,6 +361,9 @@
 		if (assistantItemProvider != null) {
 			assistantItemProvider.dispose();
 		}
+		if (addressItemProvider != null) {
+			addressItemProvider.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 65c2a52..900bda7 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.5.1.qualifier">
+      version="1.6.0.qualifier">
 
    <description url="http://www.example.com/description">
       [Enter Feature Description here.]
diff --git a/tests/org.eclipse.emf.ecp.test.model.feature/pom.xml b/tests/org.eclipse.emf.ecp.test.model.feature/pom.xml
index 40c05a8..465da87 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
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 d729c2c..8007f10 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,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Test Model Plugin
 Bundle-SymbolicName: org.eclipse.emf.ecp.test.model;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.emf.ecp.test.university;version="1.5.1",or
- g.eclipse.emf.ecp.test.university.impl;version="1.5.1",org.eclipse.em
- f.ecp.test.university.util;version="1.5.1"
+Export-Package: org.eclipse.emf.ecp.test.university;version="1.6.0",
+ org.eclipse.emf.ecp.test.university.impl;version="1.6.0",
+ org.eclipse.emf.ecp.test.university.util;version="1.6.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.5.0,2.0.0)",
diff --git a/tests/org.eclipse.emf.ecp.test.model/model/university.ecore b/tests/org.eclipse.emf.ecp.test.model/model/university.ecore
index 62083f4..71f5c50 100644
--- a/tests/org.eclipse.emf.ecp.test.model/model/university.ecore
+++ b/tests/org.eclipse.emf.ecp.test.model/model/university.ecore
@@ -38,5 +38,8 @@
   <eClassifiers xsi:type="ecore:EClass" name="Assistant" eSuperTypes="#//Person"/>
   <eClassifiers xsi:type="ecore:EClass" name="Person" abstract="true" interface="true">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="addresses" upperBound="-1"
+        eType="#//Address" containment="true"/>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Address"/>
 </ecore:EPackage>
diff --git a/tests/org.eclipse.emf.ecp.test.model/model/university.genmodel b/tests/org.eclipse.emf.ecp.test.model/model/university.genmodel
index 671e706..0fd12c0 100644
--- a/tests/org.eclipse.emf.ecp.test.model/model/university.genmodel
+++ b/tests/org.eclipse.emf.ecp.test.model/model/university.genmodel
@@ -24,6 +24,10 @@
     </genClasses>
     <genClasses ecoreClass="university.ecore#//Professor"/>
     <genClasses ecoreClass="university.ecore#//Assistant"/>
-    <genClasses image="false" ecoreClass="university.ecore#//Person"/>
+    <genClasses image="false" ecoreClass="university.ecore#//Person">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute university.ecore#//Person/name"/>
+      <genFeatures property="None" createChild="false" ecoreFeature="ecore:EReference university.ecore#//Person/addresses"/>
+    </genClasses>
+    <genClasses ecoreClass="university.ecore#//Address"/>
   </genPackages>
 </genmodel:GenModel>
diff --git a/tests/org.eclipse.emf.ecp.test.model/plugin.properties b/tests/org.eclipse.emf.ecp.test.model/plugin.properties
index b3e0625..6b15153 100644
--- a/tests/org.eclipse.emf.ecp.test.model/plugin.properties
+++ b/tests/org.eclipse.emf.ecp.test.model/plugin.properties
@@ -9,4 +9,4 @@
 # EclipseSource - Generated code
 
 pluginName = University Model
-providerName = www.example.org
+providerName = Eclipse Modeling Project
diff --git a/tests/org.eclipse.emf.ecp.test.model/pom.xml b/tests/org.eclipse.emf.ecp.test.model/pom.xml
index a12f7af..f9389bd 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/Address.java b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/Address.java
new file mode 100644
index 0000000..437dd45
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/Address.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource - Generated code
+ */
+package org.eclipse.emf.ecp.test.university;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Address</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.emf.ecp.test.university.UniversityPackage#getAddress()
+ * @model
+ * @generated
+ */
+public interface Address extends EObject {
+} // Address
diff --git a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/Assistant.java b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/Assistant.java
index d8ea96c..0c21e34 100644
--- a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/Assistant.java
+++ b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/Assistant.java
@@ -21,6 +21,5 @@
  * @model
  * @generated
  */
-public interface Assistant extends Person
-{
+public interface Assistant extends Person {
 } // Assistant
diff --git a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/Course.java b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/Course.java
index e95936d..40e944d 100644
--- a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/Course.java
+++ b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/Course.java
@@ -20,19 +20,18 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  * <li>{@link org.eclipse.emf.ecp.test.university.Course#getId <em>Id</em>}</li>
  * <li>{@link org.eclipse.emf.ecp.test.university.Course#getName <em>Name</em>}</li>
  * <li>{@link org.eclipse.emf.ecp.test.university.Course#getEtcs <em>Etcs</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.emf.ecp.test.university.UniversityPackage#getCourse()
  * @model annotation="http://www.eclipse.org/emf/2002/Ecore constraints='UniqueItemById NameNotEmpty'"
  * @generated
  */
-public interface Course extends EObject
-{
+public interface Course extends EObject {
 	/**
 	 * Returns the value of the '<em><b>Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
diff --git a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/CourseCatalog.java b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/CourseCatalog.java
index 7e8ffb7..2762bd5 100644
--- a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/CourseCatalog.java
+++ b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/CourseCatalog.java
@@ -21,17 +21,16 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  * <li>{@link org.eclipse.emf.ecp.test.university.CourseCatalog#getCourses <em>Courses</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.emf.ecp.test.university.UniversityPackage#getCourseCatalog()
  * @model
  * @generated
  */
-public interface CourseCatalog extends EObject
-{
+public interface CourseCatalog extends EObject {
 	/**
 	 * Returns the value of the '<em><b>Courses</b></em>' containment reference list.
 	 * The list contents are of type {@link org.eclipse.emf.ecp.test.university.Course}.
diff --git a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/Person.java b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/Person.java
index a8b9574..dc94e44 100644
--- a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/Person.java
+++ b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/Person.java
@@ -11,6 +11,7 @@
  */
 package org.eclipse.emf.ecp.test.university;
 
+import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EObject;
 
 /**
@@ -20,17 +21,17 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  * <li>{@link org.eclipse.emf.ecp.test.university.Person#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.ecp.test.university.Person#getAddresses <em>Addresses</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.emf.ecp.test.university.UniversityPackage#getPerson()
  * @model interface="true" abstract="true"
  * @generated
  */
-public interface Person extends EObject
-{
+public interface Person extends EObject {
 
 	/**
 	 * Returns the value of the '<em><b>Name</b></em>' attribute.
@@ -58,4 +59,21 @@
 	 * @generated
 	 */
 	void setName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Addresses</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.emf.ecp.test.university.Address}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Addresses</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Addresses</em>' containment reference list.
+	 * @see org.eclipse.emf.ecp.test.university.UniversityPackage#getPerson_Addresses()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<Address> getAddresses();
 } // Person
diff --git a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/Professor.java b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/Professor.java
index e93adf2..6a3c49b 100644
--- a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/Professor.java
+++ b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/Professor.java
@@ -21,6 +21,5 @@
  * @model
  * @generated
  */
-public interface Professor extends Person
-{
+public interface Professor extends Person {
 } // Professor
diff --git a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/Staff.java b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/Staff.java
index e53d664..4ec6b92 100644
--- a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/Staff.java
+++ b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/Staff.java
@@ -22,19 +22,18 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  * <li>{@link org.eclipse.emf.ecp.test.university.Staff#getProfessors <em>Professors</em>}</li>
  * <li>{@link org.eclipse.emf.ecp.test.university.Staff#getAssistants <em>Assistants</em>}</li>
  * <li>{@link org.eclipse.emf.ecp.test.university.Staff#getStaff <em>Staff</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.emf.ecp.test.university.UniversityPackage#getStaff()
  * @model
  * @generated
  */
-public interface Staff extends EObject
-{
+public interface Staff extends EObject {
 	/**
 	 * Returns the value of the '<em><b>Professors</b></em>' containment reference list.
 	 * The list contents are of type {@link org.eclipse.emf.ecp.test.university.Professor}.
diff --git a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/UniversityFactory.java b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/UniversityFactory.java
index 87d58e7..844e1d5 100644
--- a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/UniversityFactory.java
+++ b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/UniversityFactory.java
@@ -22,8 +22,7 @@
  * @see org.eclipse.emf.ecp.test.university.UniversityPackage
  * @generated
  */
-public interface UniversityFactory extends EFactory
-{
+public interface UniversityFactory extends EFactory {
 	/**
 	 * The singleton instance of the factory.
 	 * <!-- begin-user-doc -->
@@ -84,6 +83,16 @@
 	Assistant createAssistant();
 
 	/**
+	 * Returns a new object of class '<em>Address</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return a new object of class '<em>Address</em>'.
+	 * @generated
+	 */
+	Address createAddress();
+
+	/**
 	 * Returns the package supported by this factory.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/UniversityPackage.java b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/UniversityPackage.java
index 50712d7..80bc3f3 100644
--- a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/UniversityPackage.java
+++ b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/UniversityPackage.java
@@ -33,8 +33,7 @@
  * @model kind="package"
  * @generated
  */
-public interface UniversityPackage extends EPackage
-{
+public interface UniversityPackage extends EPackage {
 	/**
 	 * The package name.
 	 * <!-- begin-user-doc -->
@@ -257,6 +256,16 @@
 	int PERSON__NAME = 0;
 
 	/**
+	 * The feature id for the '<em><b>Addresses</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int PERSON__ADDRESSES = 1;
+
+	/**
 	 * The number of structural features of the '<em>Person</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -264,7 +273,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PERSON_FEATURE_COUNT = 1;
+	int PERSON_FEATURE_COUNT = 2;
 
 	/**
 	 * The number of operations of the '<em>Person</em>' class.
@@ -299,6 +308,16 @@
 	int PROFESSOR__NAME = PERSON__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Addresses</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int PROFESSOR__ADDRESSES = PERSON__ADDRESSES;
+
+	/**
 	 * The number of structural features of the '<em>Professor</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -341,6 +360,16 @@
 	int ASSISTANT__NAME = PERSON__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Addresses</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int ASSISTANT__ADDRESSES = PERSON__ADDRESSES;
+
+	/**
 	 * The number of structural features of the '<em>Assistant</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -361,6 +390,37 @@
 	int ASSISTANT_OPERATION_COUNT = PERSON_OPERATION_COUNT + 0;
 
 	/**
+	 * The meta object id for the '{@link org.eclipse.emf.ecp.test.university.impl.AddressImpl <em>Address</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.emf.ecp.test.university.impl.AddressImpl
+	 * @see org.eclipse.emf.ecp.test.university.impl.UniversityPackageImpl#getAddress()
+	 * @generated
+	 */
+	int ADDRESS = 6;
+
+	/**
+	 * The number of structural features of the '<em>Address</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int ADDRESS_FEATURE_COUNT = 0;
+
+	/**
+	 * The number of operations of the '<em>Address</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int ADDRESS_OPERATION_COUNT = 0;
+
+	/**
 	 * Returns the meta object for class '{@link org.eclipse.emf.ecp.test.university.CourseCatalog
 	 * <em>Course Catalog</em>}'.
 	 * <!-- begin-user-doc -->
@@ -531,6 +591,30 @@
 	EAttribute getPerson_Name();
 
 	/**
+	 * Returns the meta object for the containment reference list '
+	 * {@link org.eclipse.emf.ecp.test.university.Person#getAddresses <em>Addresses</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the containment reference list '<em>Addresses</em>'.
+	 * @see org.eclipse.emf.ecp.test.university.Person#getAddresses()
+	 * @see #getPerson()
+	 * @generated
+	 */
+	EReference getPerson_Addresses();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.emf.ecp.test.university.Address <em>Address</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for class '<em>Address</em>'.
+	 * @see org.eclipse.emf.ecp.test.university.Address
+	 * @generated
+	 */
+	EClass getAddress();
+
+	/**
 	 * Returns the factory that creates the instances of the model.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -554,8 +638,7 @@
 	 *
 	 * @generated
 	 */
-	interface Literals
-	{
+	interface Literals {
 		/**
 		 * The meta object literal for the '{@link org.eclipse.emf.ecp.test.university.impl.CourseCatalogImpl
 		 * <em>Course Catalog</em>}' class.
@@ -699,6 +782,27 @@
 		 */
 		EAttribute PERSON__NAME = eINSTANCE.getPerson_Name();
 
+		/**
+		 * The meta object literal for the '<em><b>Addresses</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EReference PERSON__ADDRESSES = eINSTANCE.getPerson_Addresses();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.emf.ecp.test.university.impl.AddressImpl <em>Address</em>
+		 * }' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @see org.eclipse.emf.ecp.test.university.impl.AddressImpl
+		 * @see org.eclipse.emf.ecp.test.university.impl.UniversityPackageImpl#getAddress()
+		 * @generated
+		 */
+		EClass ADDRESS = eINSTANCE.getAddress();
+
 	}
 
 } // UniversityPackage
diff --git a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/impl/AddressImpl.java b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/impl/AddressImpl.java
new file mode 100644
index 0000000..bfe8586
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/impl/AddressImpl.java
@@ -0,0 +1,48 @@
+/**
+ * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource - Generated code
+ */
+package org.eclipse.emf.ecp.test.university.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecp.test.university.Address;
+import org.eclipse.emf.ecp.test.university.UniversityPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Address</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class AddressImpl extends MinimalEObjectImpl.Container implements Address {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected AddressImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return UniversityPackage.Literals.ADDRESS;
+	}
+
+} // AddressImpl
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 1b5c4a5..52735c0 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
@@ -11,10 +11,18 @@
  */
 package org.eclipse.emf.ecp.test.university.impl;
 
+import java.util.Collection;
+
 import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.emf.ecp.test.university.Address;
 import org.eclipse.emf.ecp.test.university.Assistant;
 import org.eclipse.emf.ecp.test.university.UniversityPackage;
 
@@ -24,15 +32,15 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  * <li>{@link org.eclipse.emf.ecp.test.university.impl.AssistantImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.ecp.test.university.impl.AssistantImpl#getAddresses <em>Addresses</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
-public class AssistantImpl extends MinimalEObjectImpl.Container implements Assistant
-{
+public class AssistantImpl extends MinimalEObjectImpl.Container implements Assistant {
 	/**
 	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
 	 * <!-- begin-user-doc -->
@@ -55,13 +63,23 @@
 	protected String name = NAME_EDEFAULT;
 
 	/**
+	 * The cached value of the '{@link #getAddresses() <em>Addresses</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getAddresses()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Address> addresses;
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 *
 	 * @generated
 	 */
-	protected AssistantImpl()
-	{
+	protected AssistantImpl() {
 		super();
 	}
 
@@ -72,8 +90,7 @@
 	 * @generated
 	 */
 	@Override
-	protected EClass eStaticClass()
-	{
+	protected EClass eStaticClass() {
 		return UniversityPackage.Literals.ASSISTANT;
 	}
 
@@ -83,8 +100,7 @@
 	 *
 	 * @generated
 	 */
-	public String getName()
-	{
+	public String getName() {
 		return name;
 	}
 
@@ -94,8 +110,7 @@
 	 *
 	 * @generated
 	 */
-	public void setName(String newName)
-	{
+	public void setName(String newName) {
 		final String oldName = name;
 		name = newName;
 		if (eNotificationRequired()) {
@@ -109,13 +124,42 @@
 	 *
 	 * @generated
 	 */
+	public EList<Address> getAddresses() {
+		if (addresses == null) {
+			addresses = new EObjectContainmentEList<Address>(Address.class, this,
+				UniversityPackage.ASSISTANT__ADDRESSES);
+		}
+		return addresses;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
 	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+		case UniversityPackage.ASSISTANT__ADDRESSES:
+			return ((InternalEList<?>) getAddresses()).basicRemove(otherEnd, 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 UniversityPackage.ASSISTANT__NAME:
 			return getName();
+		case UniversityPackage.ASSISTANT__ADDRESSES:
+			return getAddresses();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -126,14 +170,17 @@
 	 *
 	 * @generated
 	 */
+	@SuppressWarnings("unchecked")
 	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
 		case UniversityPackage.ASSISTANT__NAME:
 			setName((String) newValue);
 			return;
+		case UniversityPackage.ASSISTANT__ADDRESSES:
+			getAddresses().clear();
+			getAddresses().addAll((Collection<? extends Address>) newValue);
+			return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -145,13 +192,14 @@
 	 * @generated
 	 */
 	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
+	public void eUnset(int featureID) {
+		switch (featureID) {
 		case UniversityPackage.ASSISTANT__NAME:
 			setName(NAME_EDEFAULT);
 			return;
+		case UniversityPackage.ASSISTANT__ADDRESSES:
+			getAddresses().clear();
+			return;
 		}
 		super.eUnset(featureID);
 	}
@@ -163,12 +211,12 @@
 	 * @generated
 	 */
 	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
 		case UniversityPackage.ASSISTANT__NAME:
 			return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+		case UniversityPackage.ASSISTANT__ADDRESSES:
+			return addresses != null && !addresses.isEmpty();
 		}
 		return super.eIsSet(featureID);
 	}
@@ -180,8 +228,7 @@
 	 * @generated
 	 */
 	@Override
-	public String toString()
-	{
+	public String toString() {
 		if (eIsProxy()) {
 			return super.toString();
 		}
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 6ccfb6c..2551c09 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
@@ -30,15 +30,14 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  * <li>{@link org.eclipse.emf.ecp.test.university.impl.CourseCatalogImpl#getCourses <em>Courses</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
-public class CourseCatalogImpl extends MinimalEObjectImpl.Container implements CourseCatalog
-{
+public class CourseCatalogImpl extends MinimalEObjectImpl.Container implements CourseCatalog {
 	/**
 	 * The cached value of the '{@link #getCourses() <em>Courses</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
@@ -56,8 +55,7 @@
 	 *
 	 * @generated
 	 */
-	protected CourseCatalogImpl()
-	{
+	protected CourseCatalogImpl() {
 		super();
 	}
 
@@ -68,8 +66,7 @@
 	 * @generated
 	 */
 	@Override
-	protected EClass eStaticClass()
-	{
+	protected EClass eStaticClass() {
 		return UniversityPackage.Literals.COURSE_CATALOG;
 	}
 
@@ -79,11 +76,10 @@
 	 *
 	 * @generated
 	 */
-	public EList<Course> getCourses()
-	{
-		if (courses == null)
-		{
-			courses = new EObjectContainmentEList<Course>(Course.class, this, UniversityPackage.COURSE_CATALOG__COURSES);
+	public EList<Course> getCourses() {
+		if (courses == null) {
+			courses = new EObjectContainmentEList<Course>(Course.class, this,
+				UniversityPackage.COURSE_CATALOG__COURSES);
 		}
 		return courses;
 	}
@@ -95,10 +91,8 @@
 	 * @generated
 	 */
 	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-	{
-		switch (featureID)
-		{
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
 		case UniversityPackage.COURSE_CATALOG__COURSES:
 			return ((InternalEList<?>) getCourses()).basicRemove(otherEnd, msgs);
 		}
@@ -112,10 +106,8 @@
 	 * @generated
 	 */
 	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
 		case UniversityPackage.COURSE_CATALOG__COURSES:
 			return getCourses();
 		}
@@ -130,10 +122,8 @@
 	 */
 	@SuppressWarnings("unchecked")
 	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
 		case UniversityPackage.COURSE_CATALOG__COURSES:
 			getCourses().clear();
 			getCourses().addAll((Collection<? extends Course>) newValue);
@@ -149,10 +139,8 @@
 	 * @generated
 	 */
 	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
+	public void eUnset(int featureID) {
+		switch (featureID) {
 		case UniversityPackage.COURSE_CATALOG__COURSES:
 			getCourses().clear();
 			return;
@@ -167,10 +155,8 @@
 	 * @generated
 	 */
 	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
 		case UniversityPackage.COURSE_CATALOG__COURSES:
 			return courses != null && !courses.isEmpty();
 		}
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 d09bfac..c23e310 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
@@ -24,17 +24,16 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  * <li>{@link org.eclipse.emf.ecp.test.university.impl.CourseImpl#getId <em>Id</em>}</li>
  * <li>{@link org.eclipse.emf.ecp.test.university.impl.CourseImpl#getName <em>Name</em>}</li>
  * <li>{@link org.eclipse.emf.ecp.test.university.impl.CourseImpl#getEtcs <em>Etcs</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
-public class CourseImpl extends MinimalEObjectImpl.Container implements Course
-{
+public class CourseImpl extends MinimalEObjectImpl.Container implements Course {
 	/**
 	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
 	 * <!-- begin-user-doc -->
@@ -107,8 +106,7 @@
 	 *
 	 * @generated
 	 */
-	protected CourseImpl()
-	{
+	protected CourseImpl() {
 		super();
 	}
 
@@ -119,8 +117,7 @@
 	 * @generated
 	 */
 	@Override
-	protected EClass eStaticClass()
-	{
+	protected EClass eStaticClass() {
 		return UniversityPackage.Literals.COURSE;
 	}
 
@@ -130,8 +127,7 @@
 	 *
 	 * @generated
 	 */
-	public String getId()
-	{
+	public String getId() {
 		return id;
 	}
 
@@ -141,8 +137,7 @@
 	 *
 	 * @generated
 	 */
-	public void setId(String newId)
-	{
+	public void setId(String newId) {
 		final String oldId = id;
 		id = newId;
 		if (eNotificationRequired()) {
@@ -156,8 +151,7 @@
 	 *
 	 * @generated
 	 */
-	public String getName()
-	{
+	public String getName() {
 		return name;
 	}
 
@@ -167,8 +161,7 @@
 	 *
 	 * @generated
 	 */
-	public void setName(String newName)
-	{
+	public void setName(String newName) {
 		final String oldName = name;
 		name = newName;
 		if (eNotificationRequired()) {
@@ -182,8 +175,7 @@
 	 *
 	 * @generated
 	 */
-	public int getEtcs()
-	{
+	public int getEtcs() {
 		return etcs;
 	}
 
@@ -193,8 +185,7 @@
 	 *
 	 * @generated
 	 */
-	public void setEtcs(int newEtcs)
-	{
+	public void setEtcs(int newEtcs) {
 		final int oldEtcs = etcs;
 		etcs = newEtcs;
 		if (eNotificationRequired()) {
@@ -209,10 +200,8 @@
 	 * @generated
 	 */
 	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
 		case UniversityPackage.COURSE__ID:
 			return getId();
 		case UniversityPackage.COURSE__NAME:
@@ -230,10 +219,8 @@
 	 * @generated
 	 */
 	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
 		case UniversityPackage.COURSE__ID:
 			setId((String) newValue);
 			return;
@@ -254,10 +241,8 @@
 	 * @generated
 	 */
 	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
+	public void eUnset(int featureID) {
+		switch (featureID) {
 		case UniversityPackage.COURSE__ID:
 			setId(ID_EDEFAULT);
 			return;
@@ -278,10 +263,8 @@
 	 * @generated
 	 */
 	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
 		case UniversityPackage.COURSE__ID:
 			return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
 		case UniversityPackage.COURSE__NAME:
@@ -299,8 +282,7 @@
 	 * @generated
 	 */
 	@Override
-	public String toString()
-	{
+	public String toString() {
 		if (eIsProxy()) {
 			return super.toString();
 		}
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 582f580..bfea208 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
@@ -11,10 +11,18 @@
  */
 package org.eclipse.emf.ecp.test.university.impl;
 
+import java.util.Collection;
+
 import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.emf.ecp.test.university.Address;
 import org.eclipse.emf.ecp.test.university.Professor;
 import org.eclipse.emf.ecp.test.university.UniversityPackage;
 
@@ -24,15 +32,15 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  * <li>{@link org.eclipse.emf.ecp.test.university.impl.ProfessorImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.ecp.test.university.impl.ProfessorImpl#getAddresses <em>Addresses</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
-public class ProfessorImpl extends MinimalEObjectImpl.Container implements Professor
-{
+public class ProfessorImpl extends MinimalEObjectImpl.Container implements Professor {
 	/**
 	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
 	 * <!-- begin-user-doc -->
@@ -55,13 +63,23 @@
 	protected String name = NAME_EDEFAULT;
 
 	/**
+	 * The cached value of the '{@link #getAddresses() <em>Addresses</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getAddresses()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Address> addresses;
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 *
 	 * @generated
 	 */
-	protected ProfessorImpl()
-	{
+	protected ProfessorImpl() {
 		super();
 	}
 
@@ -72,8 +90,7 @@
 	 * @generated
 	 */
 	@Override
-	protected EClass eStaticClass()
-	{
+	protected EClass eStaticClass() {
 		return UniversityPackage.Literals.PROFESSOR;
 	}
 
@@ -83,8 +100,7 @@
 	 *
 	 * @generated
 	 */
-	public String getName()
-	{
+	public String getName() {
 		return name;
 	}
 
@@ -94,8 +110,7 @@
 	 *
 	 * @generated
 	 */
-	public void setName(String newName)
-	{
+	public void setName(String newName) {
 		final String oldName = name;
 		name = newName;
 		if (eNotificationRequired()) {
@@ -109,13 +124,42 @@
 	 *
 	 * @generated
 	 */
+	public EList<Address> getAddresses() {
+		if (addresses == null) {
+			addresses = new EObjectContainmentEList<Address>(Address.class, this,
+				UniversityPackage.PROFESSOR__ADDRESSES);
+		}
+		return addresses;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
 	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+		case UniversityPackage.PROFESSOR__ADDRESSES:
+			return ((InternalEList<?>) getAddresses()).basicRemove(otherEnd, 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 UniversityPackage.PROFESSOR__NAME:
 			return getName();
+		case UniversityPackage.PROFESSOR__ADDRESSES:
+			return getAddresses();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -126,14 +170,17 @@
 	 *
 	 * @generated
 	 */
+	@SuppressWarnings("unchecked")
 	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
 		case UniversityPackage.PROFESSOR__NAME:
 			setName((String) newValue);
 			return;
+		case UniversityPackage.PROFESSOR__ADDRESSES:
+			getAddresses().clear();
+			getAddresses().addAll((Collection<? extends Address>) newValue);
+			return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -145,13 +192,14 @@
 	 * @generated
 	 */
 	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
+	public void eUnset(int featureID) {
+		switch (featureID) {
 		case UniversityPackage.PROFESSOR__NAME:
 			setName(NAME_EDEFAULT);
 			return;
+		case UniversityPackage.PROFESSOR__ADDRESSES:
+			getAddresses().clear();
+			return;
 		}
 		super.eUnset(featureID);
 	}
@@ -163,12 +211,12 @@
 	 * @generated
 	 */
 	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
 		case UniversityPackage.PROFESSOR__NAME:
 			return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+		case UniversityPackage.PROFESSOR__ADDRESSES:
+			return addresses != null && !addresses.isEmpty();
 		}
 		return super.eIsSet(featureID);
 	}
@@ -180,8 +228,7 @@
 	 * @generated
 	 */
 	@Override
-	public String toString()
-	{
+	public String toString() {
 		if (eIsProxy()) {
 			return super.toString();
 		}
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 74ab852..af1f7b5 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
@@ -32,17 +32,16 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  * <li>{@link org.eclipse.emf.ecp.test.university.impl.StaffImpl#getProfessors <em>Professors</em>}</li>
  * <li>{@link org.eclipse.emf.ecp.test.university.impl.StaffImpl#getAssistants <em>Assistants</em>}</li>
  * <li>{@link org.eclipse.emf.ecp.test.university.impl.StaffImpl#getStaff <em>Staff</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
-public class StaffImpl extends MinimalEObjectImpl.Container implements Staff
-{
+public class StaffImpl extends MinimalEObjectImpl.Container implements Staff {
 	/**
 	 * The cached value of the '{@link #getStaff() <em>Staff</em>}' attribute list.
 	 * <!-- begin-user-doc -->
@@ -60,8 +59,7 @@
 	 *
 	 * @generated
 	 */
-	protected StaffImpl()
-	{
+	protected StaffImpl() {
 		super();
 	}
 
@@ -72,8 +70,7 @@
 	 * @generated
 	 */
 	@Override
-	protected EClass eStaticClass()
-	{
+	protected EClass eStaticClass() {
 		return UniversityPackage.Literals.STAFF;
 	}
 
@@ -83,8 +80,7 @@
 	 *
 	 * @generated
 	 */
-	public EList<Professor> getProfessors()
-	{
+	public EList<Professor> getProfessors() {
 		return getStaff().list(UniversityPackage.Literals.STAFF__PROFESSORS);
 	}
 
@@ -94,8 +90,7 @@
 	 *
 	 * @generated
 	 */
-	public EList<Assistant> getAssistants()
-	{
+	public EList<Assistant> getAssistants() {
 		return getStaff().list(UniversityPackage.Literals.STAFF__ASSISTANTS);
 	}
 
@@ -105,10 +100,8 @@
 	 *
 	 * @generated
 	 */
-	public FeatureMap getStaff()
-	{
-		if (staff == null)
-		{
+	public FeatureMap getStaff() {
+		if (staff == null) {
 			staff = new BasicFeatureMap(this, UniversityPackage.STAFF__STAFF);
 		}
 		return staff;
@@ -121,10 +114,8 @@
 	 * @generated
 	 */
 	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-	{
-		switch (featureID)
-		{
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
 		case UniversityPackage.STAFF__PROFESSORS:
 			return ((InternalEList<?>) getProfessors()).basicRemove(otherEnd, msgs);
 		case UniversityPackage.STAFF__ASSISTANTS:
@@ -142,10 +133,8 @@
 	 * @generated
 	 */
 	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
 		case UniversityPackage.STAFF__PROFESSORS:
 			return getProfessors();
 		case UniversityPackage.STAFF__ASSISTANTS:
@@ -167,10 +156,8 @@
 	 */
 	@SuppressWarnings("unchecked")
 	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
 		case UniversityPackage.STAFF__PROFESSORS:
 			getProfessors().clear();
 			getProfessors().addAll((Collection<? extends Professor>) newValue);
@@ -193,10 +180,8 @@
 	 * @generated
 	 */
 	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
+	public void eUnset(int featureID) {
+		switch (featureID) {
 		case UniversityPackage.STAFF__PROFESSORS:
 			getProfessors().clear();
 			return;
@@ -217,10 +202,8 @@
 	 * @generated
 	 */
 	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
 		case UniversityPackage.STAFF__PROFESSORS:
 			return !getProfessors().isEmpty();
 		case UniversityPackage.STAFF__ASSISTANTS:
@@ -238,8 +221,7 @@
 	 * @generated
 	 */
 	@Override
-	public String toString()
-	{
+	public String toString() {
 		if (eIsProxy()) {
 			return super.toString();
 		}
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 e6a897a..8b5b121 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
@@ -16,6 +16,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.test.university.Address;
 import org.eclipse.emf.ecp.test.university.Assistant;
 import org.eclipse.emf.ecp.test.university.Course;
 import org.eclipse.emf.ecp.test.university.CourseCatalog;
@@ -31,8 +32,7 @@
  *
  * @generated
  */
-public class UniversityFactoryImpl extends EFactoryImpl implements UniversityFactory
-{
+public class UniversityFactoryImpl extends EFactoryImpl implements UniversityFactory {
 	/**
 	 * Creates the default factory implementation.
 	 * <!-- begin-user-doc -->
@@ -40,18 +40,14 @@
 	 *
 	 * @generated
 	 */
-	public static UniversityFactory init()
-	{
-		try
-		{
+	public static UniversityFactory init() {
+		try {
 			final UniversityFactory theUniversityFactory = (UniversityFactory) EPackage.Registry.INSTANCE
 				.getEFactory(UniversityPackage.eNS_URI);
-			if (theUniversityFactory != null)
-			{
+			if (theUniversityFactory != null) {
 				return theUniversityFactory;
 			}
-		} catch (final Exception exception)
-		{
+		} catch (final Exception exception) {
 			EcorePlugin.INSTANCE.log(exception);
 		}
 		return new UniversityFactoryImpl();
@@ -64,8 +60,7 @@
 	 *
 	 * @generated
 	 */
-	public UniversityFactoryImpl()
-	{
+	public UniversityFactoryImpl() {
 		super();
 	}
 
@@ -76,10 +71,8 @@
 	 * @generated
 	 */
 	@Override
-	public EObject create(EClass eClass)
-	{
-		switch (eClass.getClassifierID())
-		{
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
 		case UniversityPackage.COURSE_CATALOG:
 			return createCourseCatalog();
 		case UniversityPackage.COURSE:
@@ -90,6 +83,8 @@
 			return createProfessor();
 		case UniversityPackage.ASSISTANT:
 			return createAssistant();
+		case UniversityPackage.ADDRESS:
+			return createAddress();
 		default:
 			throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
 		}
@@ -101,8 +96,7 @@
 	 *
 	 * @generated
 	 */
-	public CourseCatalog createCourseCatalog()
-	{
+	public CourseCatalog createCourseCatalog() {
 		final CourseCatalogImpl courseCatalog = new CourseCatalogImpl();
 		return courseCatalog;
 	}
@@ -113,8 +107,7 @@
 	 *
 	 * @generated
 	 */
-	public Course createCourse()
-	{
+	public Course createCourse() {
 		final CourseImpl course = new CourseImpl();
 		return course;
 	}
@@ -125,8 +118,7 @@
 	 *
 	 * @generated
 	 */
-	public Staff createStaff()
-	{
+	public Staff createStaff() {
 		final StaffImpl staff = new StaffImpl();
 		return staff;
 	}
@@ -137,8 +129,7 @@
 	 *
 	 * @generated
 	 */
-	public Professor createProfessor()
-	{
+	public Professor createProfessor() {
 		final ProfessorImpl professor = new ProfessorImpl();
 		return professor;
 	}
@@ -149,8 +140,7 @@
 	 *
 	 * @generated
 	 */
-	public Assistant createAssistant()
-	{
+	public Assistant createAssistant() {
 		final AssistantImpl assistant = new AssistantImpl();
 		return assistant;
 	}
@@ -161,8 +151,18 @@
 	 *
 	 * @generated
 	 */
-	public UniversityPackage getUniversityPackage()
-	{
+	public Address createAddress() {
+		final AddressImpl address = new AddressImpl();
+		return address;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public UniversityPackage getUniversityPackage() {
 		return (UniversityPackage) getEPackage();
 	}
 
@@ -174,8 +174,7 @@
 	 * @generated
 	 */
 	@Deprecated
-	public static UniversityPackage getPackage()
-	{
+	public static UniversityPackage getPackage() {
 		return UniversityPackage.eINSTANCE;
 	}
 
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 8258a77..2d948f6 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
@@ -17,6 +17,7 @@
 import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.EValidator;
 import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.ecp.test.university.Address;
 import org.eclipse.emf.ecp.test.university.Assistant;
 import org.eclipse.emf.ecp.test.university.Course;
 import org.eclipse.emf.ecp.test.university.CourseCatalog;
@@ -34,8 +35,7 @@
  *
  * @generated
  */
-public class UniversityPackageImpl extends EPackageImpl implements UniversityPackage
-{
+public class UniversityPackageImpl extends EPackageImpl implements UniversityPackage {
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -85,6 +85,14 @@
 	private EClass personEClass = null;
 
 	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private EClass addressEClass = null;
+
+	/**
 	 * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
 	 * EPackage.Registry} by the package
 	 * package URI value.
@@ -98,8 +106,7 @@
 	 * @see #init()
 	 * @generated
 	 */
-	private UniversityPackageImpl()
-	{
+	private UniversityPackageImpl() {
 		super(eNS_URI, UniversityFactory.eINSTANCE);
 	}
 
@@ -115,8 +122,9 @@
 	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
 	 *
 	 * <p>
-	 * This method is used to initialize {@link UniversityPackage#eINSTANCE} when that field is accessed. Clients should
-	 * not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc
+	 * This method is used to initialize {@link UniversityPackage#eINSTANCE} when that field is accessed.
+	 * 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
@@ -124,17 +132,15 @@
 	 * @see #initializePackageContents()
 	 * @generated
 	 */
-	public static UniversityPackage init()
-	{
+	public static UniversityPackage init() {
 		if (isInited) {
 			return (UniversityPackage) EPackage.Registry.INSTANCE.getEPackage(UniversityPackage.eNS_URI);
 		}
 
 		// Obtain or create and register package
 		final UniversityPackageImpl theUniversityPackage = (UniversityPackageImpl) (EPackage.Registry.INSTANCE
-			.get(eNS_URI) instanceof UniversityPackageImpl ? EPackage.Registry.INSTANCE
-			.get(eNS_URI)
-			: new UniversityPackageImpl());
+			.get(eNS_URI) instanceof UniversityPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI)
+				: new UniversityPackageImpl());
 
 		isInited = true;
 
@@ -145,15 +151,12 @@
 		theUniversityPackage.initializePackageContents();
 
 		// Register package validator
-		EValidator.Registry.INSTANCE.put
-			(theUniversityPackage,
-				new EValidator.Descriptor()
-				{
-					public EValidator getEValidator()
-					{
-						return UniversityValidator.INSTANCE;
-					}
-				});
+		EValidator.Registry.INSTANCE.put(theUniversityPackage,
+			new EValidator.Descriptor() {
+				public EValidator getEValidator() {
+					return UniversityValidator.INSTANCE;
+				}
+			});
 
 		// Mark meta-data to indicate it can't be changed
 		theUniversityPackage.freeze();
@@ -169,8 +172,7 @@
 	 *
 	 * @generated
 	 */
-	public EClass getCourseCatalog()
-	{
+	public EClass getCourseCatalog() {
 		return courseCatalogEClass;
 	}
 
@@ -180,8 +182,7 @@
 	 *
 	 * @generated
 	 */
-	public EReference getCourseCatalog_Courses()
-	{
+	public EReference getCourseCatalog_Courses() {
 		return (EReference) courseCatalogEClass.getEStructuralFeatures().get(0);
 	}
 
@@ -191,8 +192,7 @@
 	 *
 	 * @generated
 	 */
-	public EClass getCourse()
-	{
+	public EClass getCourse() {
 		return courseEClass;
 	}
 
@@ -202,8 +202,7 @@
 	 *
 	 * @generated
 	 */
-	public EAttribute getCourse_Id()
-	{
+	public EAttribute getCourse_Id() {
 		return (EAttribute) courseEClass.getEStructuralFeatures().get(0);
 	}
 
@@ -213,8 +212,7 @@
 	 *
 	 * @generated
 	 */
-	public EAttribute getCourse_Name()
-	{
+	public EAttribute getCourse_Name() {
 		return (EAttribute) courseEClass.getEStructuralFeatures().get(1);
 	}
 
@@ -224,8 +222,7 @@
 	 *
 	 * @generated
 	 */
-	public EAttribute getCourse_Etcs()
-	{
+	public EAttribute getCourse_Etcs() {
 		return (EAttribute) courseEClass.getEStructuralFeatures().get(2);
 	}
 
@@ -235,8 +232,7 @@
 	 *
 	 * @generated
 	 */
-	public EClass getStaff()
-	{
+	public EClass getStaff() {
 		return staffEClass;
 	}
 
@@ -246,8 +242,7 @@
 	 *
 	 * @generated
 	 */
-	public EReference getStaff_Professors()
-	{
+	public EReference getStaff_Professors() {
 		return (EReference) staffEClass.getEStructuralFeatures().get(0);
 	}
 
@@ -257,8 +252,7 @@
 	 *
 	 * @generated
 	 */
-	public EReference getStaff_Assistants()
-	{
+	public EReference getStaff_Assistants() {
 		return (EReference) staffEClass.getEStructuralFeatures().get(1);
 	}
 
@@ -268,8 +262,7 @@
 	 *
 	 * @generated
 	 */
-	public EAttribute getStaff_Staff()
-	{
+	public EAttribute getStaff_Staff() {
 		return (EAttribute) staffEClass.getEStructuralFeatures().get(2);
 	}
 
@@ -279,8 +272,7 @@
 	 *
 	 * @generated
 	 */
-	public EClass getProfessor()
-	{
+	public EClass getProfessor() {
 		return professorEClass;
 	}
 
@@ -290,8 +282,7 @@
 	 *
 	 * @generated
 	 */
-	public EClass getAssistant()
-	{
+	public EClass getAssistant() {
 		return assistantEClass;
 	}
 
@@ -301,8 +292,7 @@
 	 *
 	 * @generated
 	 */
-	public EClass getPerson()
-	{
+	public EClass getPerson() {
 		return personEClass;
 	}
 
@@ -312,8 +302,7 @@
 	 *
 	 * @generated
 	 */
-	public EAttribute getPerson_Name()
-	{
+	public EAttribute getPerson_Name() {
 		return (EAttribute) personEClass.getEStructuralFeatures().get(0);
 	}
 
@@ -323,8 +312,27 @@
 	 *
 	 * @generated
 	 */
-	public UniversityFactory getUniversityFactory()
-	{
+	public EReference getPerson_Addresses() {
+		return (EReference) personEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public EClass getAddress() {
+		return addressEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public UniversityFactory getUniversityFactory() {
 		return (UniversityFactory) getEFactoryInstance();
 	}
 
@@ -344,8 +352,7 @@
 	 *
 	 * @generated
 	 */
-	public void createPackageContents()
-	{
+	public void createPackageContents() {
 		if (isCreated) {
 			return;
 		}
@@ -371,6 +378,9 @@
 
 		personEClass = createEClass(PERSON);
 		createEAttribute(personEClass, PERSON__NAME);
+		createEReference(personEClass, PERSON__ADDRESSES);
+
+		addressEClass = createEClass(ADDRESS);
 	}
 
 	/**
@@ -389,8 +399,7 @@
 	 *
 	 * @generated
 	 */
-	public void initializePackageContents()
-	{
+	public void initializePackageContents() {
 		if (isInitialized) {
 			return;
 		}
@@ -410,55 +419,44 @@
 		assistantEClass.getESuperTypes().add(getPerson());
 
 		// Initialize classes, features, and operations; add parameters
-		initEClass(courseCatalogEClass, CourseCatalog.class,
-			"CourseCatalog", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEReference(
-			getCourseCatalog_Courses(),
-			getCourse(),
-			null,
-			"courses", null, 0, -1, CourseCatalog.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEClass(courseCatalogEClass, CourseCatalog.class, "CourseCatalog", !IS_ABSTRACT, !IS_INTERFACE, //$NON-NLS-1$
+			IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getCourseCatalog_Courses(), getCourse(), null, "courses", null, 0, -1, CourseCatalog.class, //$NON-NLS-1$
+			!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
+			!IS_DERIVED, IS_ORDERED);
 
 		initEClass(courseEClass, Course.class, "Course", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEAttribute(
-			getCourse_Id(),
-			ecorePackage.getEString(),
-			"id", null, 1, 1, Course.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(
-			getCourse_Name(),
-			ecorePackage.getEString(),
-			"name", null, 1, 1, Course.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(
-			getCourse_Etcs(),
-			ecorePackage.getEInt(),
-			"etcs", null, 1, 1, Course.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getCourse_Id(), ecorePackage.getEString(), "id", null, 1, 1, Course.class, !IS_TRANSIENT, //$NON-NLS-1$
+			!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getCourse_Name(), ecorePackage.getEString(), "name", null, 1, 1, Course.class, !IS_TRANSIENT, //$NON-NLS-1$
+			!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getCourse_Etcs(), ecorePackage.getEInt(), "etcs", null, 1, 1, Course.class, !IS_TRANSIENT, //$NON-NLS-1$
+			!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(staffEClass, Staff.class, "Staff", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEReference(
-			getStaff_Professors(),
-			getProfessor(),
-			null,
-			"professors", null, 0, -1, Staff.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEReference(
-			getStaff_Assistants(),
-			getAssistant(),
-			null,
-			"assistants", null, 0, -1, Staff.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(
-			getStaff_Staff(),
-			ecorePackage.getEFeatureMapEntry(),
-			"staff", null, 0, -1, Staff.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getStaff_Professors(), getProfessor(), null, "professors", null, 0, -1, Staff.class, //$NON-NLS-1$
+			IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
+			IS_DERIVED, IS_ORDERED);
+		initEReference(getStaff_Assistants(), getAssistant(), null, "assistants", null, 0, -1, Staff.class, //$NON-NLS-1$
+			IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
+			IS_DERIVED, IS_ORDERED);
+		initEAttribute(getStaff_Staff(), ecorePackage.getEFeatureMapEntry(), "staff", null, 0, -1, Staff.class, //$NON-NLS-1$
+			!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
-		initEClass(professorEClass, Professor.class,
-			"Professor", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEClass(professorEClass, Professor.class, "Professor", !IS_ABSTRACT, !IS_INTERFACE, //$NON-NLS-1$
+			IS_GENERATED_INSTANCE_CLASS);
 
-		initEClass(assistantEClass, Assistant.class,
-			"Assistant", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEClass(assistantEClass, Assistant.class, "Assistant", !IS_ABSTRACT, !IS_INTERFACE, //$NON-NLS-1$
+			IS_GENERATED_INSTANCE_CLASS);
 
 		initEClass(personEClass, Person.class, "Person", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEAttribute(
-			getPerson_Name(),
-			ecorePackage.getEString(),
-			"name", null, 0, 1, Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPerson_Name(), ecorePackage.getEString(), "name", null, 0, 1, Person.class, !IS_TRANSIENT, //$NON-NLS-1$
+			!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getPerson_Addresses(), getAddress(), null, "addresses", null, 0, -1, Person.class, //$NON-NLS-1$
+			!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
+			!IS_DERIVED, IS_ORDERED);
+
+		initEClass(addressEClass, Address.class, "Address", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 
 		// Create resource
 		createResource(eNS_URI);
@@ -477,14 +475,13 @@
 	 *
 	 * @generated
 	 */
-	protected void createEcoreAnnotations()
-	{
+	protected void createEcoreAnnotations() {
 		final String source = "http://www.eclipse.org/emf/2002/Ecore"; //$NON-NLS-1$
 		addAnnotation(courseEClass,
 			source,
-			new String[]
-			{ "constraints", "UniqueItemById NameNotEmpty" //$NON-NLS-1$ //$NON-NLS-2$
-			});
+			new String[] {
+				"constraints", "UniqueItemById NameNotEmpty" //$NON-NLS-1$ //$NON-NLS-2$
+		});
 	}
 
 	/**
@@ -494,24 +491,23 @@
 	 *
 	 * @generated
 	 */
-	protected void createExtendedMetaDataAnnotations()
-	{
+	protected void createExtendedMetaDataAnnotations() {
 		final String source = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData"; //$NON-NLS-1$
 		addAnnotation(getStaff_Professors(),
 			source,
-			new String[]
-			{ "group", "#staff" //$NON-NLS-1$ //$NON-NLS-2$
-			});
+			new String[] {
+				"group", "#staff" //$NON-NLS-1$ //$NON-NLS-2$
+		});
 		addAnnotation(getStaff_Assistants(),
 			source,
-			new String[]
-			{ "group", "#staff" //$NON-NLS-1$ //$NON-NLS-2$
-			});
+			new String[] {
+				"group", "#staff" //$NON-NLS-1$ //$NON-NLS-2$
+		});
 		addAnnotation(getStaff_Staff(),
 			source,
-			new String[]
-			{ "kind", "group" //$NON-NLS-1$ //$NON-NLS-2$
-			});
+			new String[] {
+				"kind", "group" //$NON-NLS-1$ //$NON-NLS-2$
+		});
 	}
 
 } // UniversityPackageImpl
diff --git a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/util/UniversityAdapterFactory.java b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/util/UniversityAdapterFactory.java
index 51b3ba1..9b11f0e 100644
--- a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/util/UniversityAdapterFactory.java
+++ b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/util/UniversityAdapterFactory.java
@@ -15,6 +15,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.test.university.Address;
 import org.eclipse.emf.ecp.test.university.Assistant;
 import org.eclipse.emf.ecp.test.university.Course;
 import org.eclipse.emf.ecp.test.university.CourseCatalog;
@@ -32,8 +33,7 @@
  * @see org.eclipse.emf.ecp.test.university.UniversityPackage
  * @generated
  */
-public class UniversityAdapterFactory extends AdapterFactoryImpl
-{
+public class UniversityAdapterFactory extends AdapterFactoryImpl {
 	/**
 	 * The cached model package.
 	 * <!-- begin-user-doc -->
@@ -50,10 +50,8 @@
 	 *
 	 * @generated
 	 */
-	public UniversityAdapterFactory()
-	{
-		if (modelPackage == null)
-		{
+	public UniversityAdapterFactory() {
+		if (modelPackage == null) {
 			modelPackage = UniversityPackage.eINSTANCE;
 		}
 	}
@@ -69,14 +67,11 @@
 	 * @generated
 	 */
 	@Override
-	public boolean isFactoryForType(Object object)
-	{
-		if (object == modelPackage)
-		{
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
 			return true;
 		}
-		if (object instanceof EObject)
-		{
+		if (object instanceof EObject) {
 			return ((EObject) object).eClass().getEPackage() == modelPackage;
 		}
 		return false;
@@ -89,51 +84,47 @@
 	 *
 	 * @generated
 	 */
-	protected UniversitySwitch<Adapter> modelSwitch =
-		new UniversitySwitch<Adapter>()
-		{
-			@Override
-			public Adapter caseCourseCatalog(CourseCatalog object)
-			{
-				return createCourseCatalogAdapter();
-			}
+	protected UniversitySwitch<Adapter> modelSwitch = new UniversitySwitch<Adapter>() {
+		@Override
+		public Adapter caseCourseCatalog(CourseCatalog object) {
+			return createCourseCatalogAdapter();
+		}
 
-			@Override
-			public Adapter caseCourse(Course object)
-			{
-				return createCourseAdapter();
-			}
+		@Override
+		public Adapter caseCourse(Course object) {
+			return createCourseAdapter();
+		}
 
-			@Override
-			public Adapter caseStaff(Staff object)
-			{
-				return createStaffAdapter();
-			}
+		@Override
+		public Adapter caseStaff(Staff object) {
+			return createStaffAdapter();
+		}
 
-			@Override
-			public Adapter caseProfessor(Professor object)
-			{
-				return createProfessorAdapter();
-			}
+		@Override
+		public Adapter caseProfessor(Professor object) {
+			return createProfessorAdapter();
+		}
 
-			@Override
-			public Adapter caseAssistant(Assistant object)
-			{
-				return createAssistantAdapter();
-			}
+		@Override
+		public Adapter caseAssistant(Assistant object) {
+			return createAssistantAdapter();
+		}
 
-			@Override
-			public Adapter casePerson(Person object)
-			{
-				return createPersonAdapter();
-			}
+		@Override
+		public Adapter casePerson(Person object) {
+			return createPersonAdapter();
+		}
 
-			@Override
-			public Adapter defaultCase(EObject object)
-			{
-				return createEObjectAdapter();
-			}
-		};
+		@Override
+		public Adapter caseAddress(Address object) {
+			return createAddressAdapter();
+		}
+
+		@Override
+		public Adapter defaultCase(EObject object) {
+			return createEObjectAdapter();
+		}
+	};
 
 	/**
 	 * Creates an adapter for the <code>target</code>.
@@ -145,8 +136,7 @@
 	 * @generated
 	 */
 	@Override
-	public Adapter createAdapter(Notifier target)
-	{
+	public Adapter createAdapter(Notifier target) {
 		return modelSwitch.doSwitch((EObject) target);
 	}
 
@@ -162,8 +152,7 @@
 	 * @see org.eclipse.emf.ecp.test.university.CourseCatalog
 	 * @generated
 	 */
-	public Adapter createCourseCatalogAdapter()
-	{
+	public Adapter createCourseCatalogAdapter() {
 		return null;
 	}
 
@@ -179,8 +168,7 @@
 	 * @see org.eclipse.emf.ecp.test.university.Course
 	 * @generated
 	 */
-	public Adapter createCourseAdapter()
-	{
+	public Adapter createCourseAdapter() {
 		return null;
 	}
 
@@ -195,8 +183,7 @@
 	 * @see org.eclipse.emf.ecp.test.university.Staff
 	 * @generated
 	 */
-	public Adapter createStaffAdapter()
-	{
+	public Adapter createStaffAdapter() {
 		return null;
 	}
 
@@ -212,8 +199,7 @@
 	 * @see org.eclipse.emf.ecp.test.university.Professor
 	 * @generated
 	 */
-	public Adapter createProfessorAdapter()
-	{
+	public Adapter createProfessorAdapter() {
 		return null;
 	}
 
@@ -229,8 +215,7 @@
 	 * @see org.eclipse.emf.ecp.test.university.Assistant
 	 * @generated
 	 */
-	public Adapter createAssistantAdapter()
-	{
+	public Adapter createAssistantAdapter() {
 		return null;
 	}
 
@@ -246,8 +231,23 @@
 	 * @see org.eclipse.emf.ecp.test.university.Person
 	 * @generated
 	 */
-	public Adapter createPersonAdapter()
-	{
+	public Adapter createPersonAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecp.test.university.Address <em>Address</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.test.university.Address
+	 * @generated
+	 */
+	public Adapter createAddressAdapter() {
 		return null;
 	}
 
@@ -260,8 +260,7 @@
 	 * @return the new adapter.
 	 * @generated
 	 */
-	public Adapter createEObjectAdapter()
-	{
+	public Adapter createEObjectAdapter() {
 		return null;
 	}
 
diff --git a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/util/UniversitySwitch.java b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/util/UniversitySwitch.java
index 23ac333..eb7b734 100644
--- a/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/util/UniversitySwitch.java
+++ b/tests/org.eclipse.emf.ecp.test.model/src/org/eclipse/emf/ecp/test/university/util/UniversitySwitch.java
@@ -14,6 +14,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.test.university.Address;
 import org.eclipse.emf.ecp.test.university.Assistant;
 import org.eclipse.emf.ecp.test.university.Course;
 import org.eclipse.emf.ecp.test.university.CourseCatalog;
@@ -36,8 +37,7 @@
  * @see org.eclipse.emf.ecp.test.university.UniversityPackage
  * @generated
  */
-public class UniversitySwitch<T> extends Switch<T>
-{
+public class UniversitySwitch<T> extends Switch<T> {
 	/**
 	 * The cached model package
 	 * <!-- begin-user-doc -->
@@ -54,10 +54,8 @@
 	 *
 	 * @generated
 	 */
-	public UniversitySwitch()
-	{
-		if (modelPackage == null)
-		{
+	public UniversitySwitch() {
+		if (modelPackage == null) {
 			modelPackage = UniversityPackage.eINSTANCE;
 		}
 	}
@@ -67,13 +65,12 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 *
-	 * @parameter ePackage the package in question.
+	 * @param ePackage the package in question.
 	 * @return whether this is a switch for the given package.
 	 * @generated
 	 */
 	@Override
-	protected boolean isSwitchFor(EPackage ePackage)
-	{
+	protected boolean isSwitchFor(EPackage ePackage) {
 		return ePackage == modelPackage;
 	}
 
@@ -87,10 +84,8 @@
 	 * @generated
 	 */
 	@Override
-	protected T doSwitch(int classifierID, EObject theEObject)
-	{
-		switch (classifierID)
-		{
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
 		case UniversityPackage.COURSE_CATALOG: {
 			final CourseCatalog courseCatalog = (CourseCatalog) theEObject;
 			T result = caseCourseCatalog(courseCatalog);
@@ -145,6 +140,14 @@
 			}
 			return result;
 		}
+		case UniversityPackage.ADDRESS: {
+			final Address address = (Address) theEObject;
+			T result = caseAddress(address);
+			if (result == null) {
+				result = defaultCase(theEObject);
+			}
+			return result;
+		}
 		default:
 			return defaultCase(theEObject);
 		}
@@ -162,8 +165,7 @@
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseCourseCatalog(CourseCatalog object)
-	{
+	public T caseCourseCatalog(CourseCatalog object) {
 		return null;
 	}
 
@@ -179,8 +181,7 @@
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseCourse(Course object)
-	{
+	public T caseCourse(Course object) {
 		return null;
 	}
 
@@ -196,8 +197,7 @@
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseStaff(Staff object)
-	{
+	public T caseStaff(Staff object) {
 		return null;
 	}
 
@@ -213,8 +213,7 @@
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseProfessor(Professor object)
-	{
+	public T caseProfessor(Professor object) {
 		return null;
 	}
 
@@ -230,8 +229,7 @@
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseAssistant(Assistant object)
-	{
+	public T caseAssistant(Assistant object) {
 		return null;
 	}
 
@@ -247,8 +245,23 @@
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T casePerson(Person object)
-	{
+	public T casePerson(Person object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Address</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>Address</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseAddress(Address object) {
 		return null;
 	}
 
@@ -265,8 +278,7 @@
 	 * @generated
 	 */
 	@Override
-	public T defaultCase(EObject object)
-	{
+	public T defaultCase(EObject object) {
 		return null;
 	}
 
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 b281a09..24e97c0 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
@@ -24,6 +24,7 @@
 import org.eclipse.emf.common.util.ResourceLocator;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.util.EObjectValidator;
+import org.eclipse.emf.ecp.test.university.Address;
 import org.eclipse.emf.ecp.test.university.Assistant;
 import org.eclipse.emf.ecp.test.university.Course;
 import org.eclipse.emf.ecp.test.university.CourseCatalog;
@@ -41,8 +42,7 @@
  * @see org.eclipse.emf.ecp.test.university.UniversityPackage
  * @generated
  */
-public class UniversityValidator extends EObjectValidator
-{
+public class UniversityValidator extends EObjectValidator {
 	/**
 	 * The cached model package
 	 * <!-- begin-user-doc -->
@@ -90,8 +90,7 @@
 	 *
 	 * @generated
 	 */
-	public UniversityValidator()
-	{
+	public UniversityValidator() {
 		super();
 	}
 
@@ -103,8 +102,7 @@
 	 * @generated
 	 */
 	@Override
-	protected EPackage getEPackage()
-	{
+	protected EPackage getEPackage() {
 		return UniversityPackage.eINSTANCE;
 	}
 
@@ -116,10 +114,9 @@
 	 * @generated
 	 */
 	@Override
-	protected boolean validate(int classifierID, Object value, DiagnosticChain diagnostics, Map<Object, Object> context)
-	{
-		switch (classifierID)
-		{
+	protected boolean validate(int classifierID, Object value, DiagnosticChain diagnostics,
+		Map<Object, Object> context) {
+		switch (classifierID) {
 		case UniversityPackage.COURSE_CATALOG:
 			return validateCourseCatalog((CourseCatalog) value, diagnostics, context);
 		case UniversityPackage.COURSE:
@@ -132,6 +129,8 @@
 			return validateAssistant((Assistant) value, diagnostics, context);
 		case UniversityPackage.PERSON:
 			return validatePerson((Person) value, diagnostics, context);
+		case UniversityPackage.ADDRESS:
+			return validateAddress((Address) value, diagnostics, context);
 		default:
 			return true;
 		}
@@ -144,8 +143,7 @@
 	 * @generated
 	 */
 	public boolean validateCourseCatalog(CourseCatalog courseCatalog, DiagnosticChain diagnostics,
-		Map<Object, Object> context)
-	{
+		Map<Object, Object> context) {
 		return validate_EveryDefaultConstraint(courseCatalog, diagnostics, context);
 	}
 
@@ -155,8 +153,7 @@
 	 *
 	 * @generated
 	 */
-	public boolean validateCourse(Course course, DiagnosticChain diagnostics, Map<Object, Object> context)
-	{
+	public boolean validateCourse(Course course, DiagnosticChain diagnostics, Map<Object, Object> context) {
 		if (!validate_NoCircularContainment(course, diagnostics, context)) {
 			return false;
 		}
@@ -199,8 +196,8 @@
 	 * @generated NOT
 	 */
 	// BEGIN COMPLEX CODE
-	public boolean validateCourse_UniqueItemById(Course course, DiagnosticChain diagnostics, Map<Object, Object> context)
-	{
+	public boolean validateCourse_UniqueItemById(Course course, DiagnosticChain diagnostics,
+		Map<Object, Object> context) {
 		// method name is generated
 		boolean validationResult = true;
 		final CourseCatalog courseCatalog = (CourseCatalog) course.eContainer();
@@ -252,13 +249,10 @@
 	private void createDiagnostics(Course course, DiagnosticChain diagnostics, Map<Object, Object> context,
 		final List<Course> duplicates) {
 		for (final Course courseWithDuplicatedId : duplicates) {
-			if (diagnostics != null)
-			{
+			if (diagnostics != null) {
 				if (courseWithDuplicatedId != course) {
 					diagnostics
-						.add
-						(createDiagnostic
-						(Diagnostic.WARNING,
+						.add(createDiagnostic(Diagnostic.WARNING,
 							DIAGNOSTIC_SOURCE,
 							0, "_UI_GenericConstraint_diagnostic", //$NON-NLS-1$
 							new Object[] { "The id of a course must be unique" }, //$NON-NLS-1$
@@ -277,22 +271,18 @@
 	 * @generated NOT
 	 */
 	// BEGIN COMPLEX CODE
-	public boolean validateCourse_NameNotEmpty(Course course, DiagnosticChain diagnostics, Map<Object, Object> context)
-	{
+	public boolean validateCourse_NameNotEmpty(Course course, DiagnosticChain diagnostics,
+		Map<Object, Object> context) {
 		// method name is generated
 		if (course.getName() != null && course.getName().length() < 1 || course.getId() != null
-			&& course.getId().length() < 1)
-		{
-			if (diagnostics != null)
-			{
-				diagnostics.add
-					(createDiagnostic
-					(Diagnostic.ERROR,
-						DIAGNOSTIC_SOURCE,
-						0, "_UI_GenericConstraint_diagnostic", //$NON-NLS-1$
-						new Object[] { "A course needs a name and an id." }, //$NON-NLS-1$
-						new Object[] { course, UniversityPackage.eINSTANCE.getCourse_Name() },
-						context));
+			&& course.getId().length() < 1) {
+			if (diagnostics != null) {
+				diagnostics.add(createDiagnostic(Diagnostic.ERROR,
+					DIAGNOSTIC_SOURCE,
+					0, "_UI_GenericConstraint_diagnostic", //$NON-NLS-1$
+					new Object[] { "A course needs a name and an id." }, //$NON-NLS-1$
+					new Object[] { course, UniversityPackage.eINSTANCE.getCourse_Name() },
+					context));
 			}
 			return false;
 		}
@@ -307,8 +297,7 @@
 	 *
 	 * @generated
 	 */
-	public boolean validateStaff(Staff staff, DiagnosticChain diagnostics, Map<Object, Object> context)
-	{
+	public boolean validateStaff(Staff staff, DiagnosticChain diagnostics, Map<Object, Object> context) {
 		return validate_EveryDefaultConstraint(staff, diagnostics, context);
 	}
 
@@ -318,8 +307,7 @@
 	 *
 	 * @generated
 	 */
-	public boolean validateProfessor(Professor professor, DiagnosticChain diagnostics, Map<Object, Object> context)
-	{
+	public boolean validateProfessor(Professor professor, DiagnosticChain diagnostics, Map<Object, Object> context) {
 		return validate_EveryDefaultConstraint(professor, diagnostics, context);
 	}
 
@@ -329,8 +317,7 @@
 	 *
 	 * @generated
 	 */
-	public boolean validateAssistant(Assistant assistant, DiagnosticChain diagnostics, Map<Object, Object> context)
-	{
+	public boolean validateAssistant(Assistant assistant, DiagnosticChain diagnostics, Map<Object, Object> context) {
 		return validate_EveryDefaultConstraint(assistant, diagnostics, context);
 	}
 
@@ -340,12 +327,21 @@
 	 *
 	 * @generated
 	 */
-	public boolean validatePerson(Person person, DiagnosticChain diagnostics, Map<Object, Object> context)
-	{
+	public boolean validatePerson(Person person, DiagnosticChain diagnostics, Map<Object, Object> context) {
 		return validate_EveryDefaultConstraint(person, diagnostics, context);
 	}
 
 	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public boolean validateAddress(Address address, DiagnosticChain diagnostics, Map<Object, Object> context) {
+		return validate_EveryDefaultConstraint(address, diagnostics, context);
+	}
+
+	/**
 	 * Returns the resource locator that will be used to fetch messages for this validator's diagnostics.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -353,8 +349,7 @@
 	 * @generated
 	 */
 	@Override
-	public ResourceLocator getResourceLocator()
-	{
+	public ResourceLocator getResourceLocator() {
 		// TODO
 		// Specialize this to return a resource locator for messages specific to this validator.
 		// Ensure that you remove @generated or mark it @generated NOT
diff --git a/tests/org.eclipse.emf.ecp.ui.validation.test/.gitignore b/tests/org.eclipse.emf.ecp.ui.validation.test/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.ui.validation.test/.gitignore
@@ -0,0 +1 @@
+/bin/
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 78765c8..2f1a4f3 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Validation View Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.validation.test;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Fragment-Host: org.eclipse.emf.ecp.ui.validation;bundle-version="[1.5.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: Eclipse Modeling Project
@@ -10,5 +10,5 @@
  org.junit;bundle-version="[4.11.0,5.0.0)",
  org.eclipse.emf.ecp.validation.diagnostician;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.emfstore.examplemodel.edit;bundle-version="[1.3.0,2.0.0)"
-Export-Package: org.eclipse.emf.ecp.ui.validation.test;version="1.5.1"
+Export-Package: org.eclipse.emf.ecp.ui.validation.test;version="1.6.0"
  ;x-internal:=true
diff --git a/tests/org.eclipse.emf.ecp.ui.validation.test/ValidationTreeViewerTest.launch b/tests/org.eclipse.emf.ecp.ui.validation.test/ValidationTreeViewerTest.launch
index 06ccf52..3d7d61d 100644
--- a/tests/org.eclipse.emf.ecp.ui.validation.test/ValidationTreeViewerTest.launch
+++ b/tests/org.eclipse.emf.ecp.ui.validation.test/ValidationTreeViewerTest.launch
@@ -34,7 +34,7 @@
 <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,javax.validation@default:default,javax.xml@default:default,org.apache.ant@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.logging@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.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.compatibility@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.cdo.ecore.retrofit@default:false,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.win32.x86_64@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@-1:true,org.eclipse.swt.win32.win32.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.swtbot.ant.junit@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.trace@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.update.configurator@3:true,org.hamcrest.core@default:default,org.hamcrest.library@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="ViewModelProjectTemplate@default:default,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.diffmerge.context@default:default,org.eclipse.emf.ecp.diffmerge.model.edit@default:default,org.eclipse.emf.ecp.diffmerge.model@default:default,org.eclipse.emf.ecp.diffmerge.renderer.swt@default:default,org.eclipse.emf.ecp.diffmerge.swt@default:default,org.eclipse.emf.ecp.diffmerge.test@default:false,org.eclipse.emf.ecp.edit.swt.test@default:false,org.eclipse.emf.ecp.edit.swt@default:default,org.eclipse.emf.ecp.edit@default:default,org.eclipse.emf.ecp.editor.e3@default:default,org.eclipse.emf.ecp.emfstore.core@default:default,org.eclipse.emf.ecp.explorereditorbridge@default:default,org.eclipse.emf.ecp.ide.editor.view@default:default,org.eclipse.emf.ecp.ide.util.test@default:default,org.eclipse.emf.ecp.ide.util@default:default,org.eclipse.emf.ecp.ide.view.service.test@default:default,org.eclipse.emf.ecp.ide.view.service@default:default,org.eclipse.emf.ecp.ui.rcp@default:false,org.eclipse.emf.ecp.ui.validation.test@default:false,org.eclipse.emf.ecp.ui.validation@default:default,org.eclipse.emf.ecp.ui.view.editor.controls.test@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.test@default:false,org.eclipse.emf.ecp.validation.diagnostician@default:default,org.eclipse.emf.ecp.view.categorization.model@default:default,org.eclipse.emf.ecp.view.compoundcontrol.model.edit@default:default,org.eclipse.emf.ecp.view.compoundcontrol.model@default:default,org.eclipse.emf.ecp.view.compoundcontrol.swt@default:default,org.eclipse.emf.ecp.view.context.test@default:false,org.eclipse.emf.ecp.view.context@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.custom.model@default:default,org.eclipse.emf.ecp.view.custom.ui.swt.di@default:default,org.eclipse.emf.ecp.view.custom.ui.swt@default:default,org.eclipse.emf.ecp.view.group.model@default:default,org.eclipse.emf.ecp.view.group.swt.collapsable@default:default,org.eclipse.emf.ecp.view.horizontal.model@default:default,org.eclipse.emf.ecp.view.indexdmr.databinding@default:default,org.eclipse.emf.ecp.view.indexdmr.model.edit@default:default,org.eclipse.emf.ecp.view.indexdmr.model.test@default:default,org.eclipse.emf.ecp.view.indexdmr.model@default:default,org.eclipse.emf.ecp.view.indexdmr.tooling@default:default,org.eclipse.emf.ecp.view.keyattributedmr.model.edit@default:default,org.eclipse.emf.ecp.view.keyattributedmr.model.test@default:default,org.eclipse.emf.ecp.view.keyattributedmr.model@default:default,org.eclipse.emf.ecp.view.keyattributedmr.tooling@default:default,org.eclipse.emf.ecp.view.label.model@default:default,org.eclipse.emf.ecp.view.label.rap@default:default,org.eclipse.emf.ecp.view.label.ui.swt@default:default,org.eclipse.emf.ecp.view.mappingdmr.databinding@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.mappingdmr.tooling@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.test@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.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.section.model.edit@default:default,org.eclipse.emf.ecp.view.section.model@default:default,org.eclipse.emf.ecp.view.section.ui.swt@default:default,org.eclipse.emf.ecp.view.stack.model.edit@default:default,org.eclipse.emf.ecp.view.stack.model@default:default,org.eclipse.emf.ecp.view.stack.ui.swt.test@default:false,org.eclipse.emf.ecp.view.stack.ui.swt@default:default,org.eclipse.emf.ecp.view.stack.viewmodel@default:default,org.eclipse.emf.ecp.view.table.migrate@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.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.template.tooling@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.bean.default@default:default,org.eclipse.emf.ecp.view.validation.bean.test@default:false,org.eclipse.emf.ecp.view.validation.bean@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.viewproxy.model.edit@default:default,org.eclipse.emf.ecp.view.viewproxy.model@default:default,org.eclipse.emf.ecp.view.viewproxy.tests@default:false,org.eclipse.emf.ecp.workspace.core@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="ViewModelProjectTemplate@default:default,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.diffmerge.context@default:default,org.eclipse.emf.ecp.diffmerge.model.edit@default:default,org.eclipse.emf.ecp.diffmerge.model@default:default,org.eclipse.emf.ecp.diffmerge.renderer.swt@default:default,org.eclipse.emf.ecp.diffmerge.swt@default:default,org.eclipse.emf.ecp.diffmerge.test@default:false,org.eclipse.emf.ecp.edit.swt.test@default:false,org.eclipse.emf.ecp.edit.swt@default:default,org.eclipse.emf.ecp.edit@default:default,org.eclipse.emf.ecp.editor.e3@default:default,org.eclipse.emf.ecp.emfstore.core@default:default,org.eclipse.emf.ecp.explorereditorbridge@default:default,org.eclipse.emf.ecp.ide.editor.view@default:default,org.eclipse.emf.ecp.ide.util.test@default:default,org.eclipse.emf.ecp.ide.util@default:default,org.eclipse.emf.ecp.ide.view.service.test@default:default,org.eclipse.emf.ecp.ide.view.service@default:default,org.eclipse.emf.ecp.ui.rcp@default:false,org.eclipse.emf.ecp.ui.validation.test@default:false,org.eclipse.emf.ecp.ui.validation@default:default,org.eclipse.emf.ecp.ui.view.editor.controls.test@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.test@default:false,org.eclipse.emf.ecp.validation.diagnostician@default:default,org.eclipse.emf.ecp.view.categorization.model@default:default,org.eclipse.emf.ecp.view.compoundcontrol.model.edit@default:default,org.eclipse.emf.ecp.view.compoundcontrol.model@default:default,org.eclipse.emf.ecp.view.compoundcontrol.swt@default:default,org.eclipse.emf.ecp.view.context.test@default:false,org.eclipse.emf.ecp.view.context@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.custom.model@default:default,org.eclipse.emf.ecp.view.custom.ui.swt.di@default:default,org.eclipse.emf.ecp.view.custom.ui.swt@default:default,org.eclipse.emf.ecp.view.group.model@default:default,org.eclipse.emf.ecp.view.group.swt.collapsable@default:default,org.eclipse.emf.ecp.view.horizontal.model@default:default,org.eclipse.emf.ecp.view.indexdmr.model.edit@default:default,org.eclipse.emf.ecp.view.indexdmr.model.test@default:default,org.eclipse.emf.ecp.view.indexdmr.model@default:default,org.eclipse.emf.ecp.view.indexdmr.tooling@default:default,org.eclipse.emf.ecp.view.keyattributedmr.model.edit@default:default,org.eclipse.emf.ecp.view.keyattributedmr.model.test@default:default,org.eclipse.emf.ecp.view.keyattributedmr.model@default:default,org.eclipse.emf.ecp.view.keyattributedmr.tooling@default:default,org.eclipse.emf.ecp.view.label.model@default:default,org.eclipse.emf.ecp.view.label.rap@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.mappingdmr.tooling@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.test@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.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.section.model.edit@default:default,org.eclipse.emf.ecp.view.section.model@default:default,org.eclipse.emf.ecp.view.section.ui.swt@default:default,org.eclipse.emf.ecp.view.stack.model.edit@default:default,org.eclipse.emf.ecp.view.stack.model@default:default,org.eclipse.emf.ecp.view.stack.ui.swt.test@default:false,org.eclipse.emf.ecp.view.stack.ui.swt@default:default,org.eclipse.emf.ecp.view.stack.viewmodel@default:default,org.eclipse.emf.ecp.view.table.migrate@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.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.template.tooling@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.bean.default@default:default,org.eclipse.emf.ecp.view.validation.bean.test@default:false,org.eclipse.emf.ecp.view.validation.bean@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.viewproxy.model.edit@default:default,org.eclipse.emf.ecp.view.viewproxy.model@default:default,org.eclipse.emf.ecp.view.viewproxy.tests@default:false,org.eclipse.emf.ecp.workspace.core@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.validation.test/pom.xml b/tests/org.eclipse.emf.ecp.ui.validation.test/pom.xml
index 94d4da2..226bd32 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -25,23 +25,31 @@
 		          	<useUIHarness>true</useUIHarness>
 		          	<useUIThread>true</useUIThread>
 		        	<failIfNoTests>false</failIfNoTests>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.validation.view.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-					</dependencies>
+				</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.target.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.validation.view.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
diff --git a/tests/org.eclipse.emf.ecp.ui.view.editor.controls.test/AllViewEditorControlsTests.launch b/tests/org.eclipse.emf.ecp.ui.view.editor.controls.test/AllViewEditorControlsTests.launch
index 068f26a..cc8467e 100644
--- a/tests/org.eclipse.emf.ecp.ui.view.editor.controls.test/AllViewEditorControlsTests.launch
+++ b/tests/org.eclipse.emf.ecp.ui.view.editor.controls.test/AllViewEditorControlsTests.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.cdo.core,org.eclipse.emf.ecp.cdo.ui,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.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.graphiti.core,org.eclipse.emf.ecp.graphiti.integration,org.eclipse.emf.ecp.ide.editor.view,org.eclipse.emf.ecp.ide.editor.view.control,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.view.group.renderer,org.eclipse.emf.ecp.makeithappen.wizards,org.eclipse.emf.ecp.products,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.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.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.context.locale,org.eclipse.emf.ecp.view.custom.model.edit,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.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.label.model.edit,org.eclipse.emf.ecp.view.label.rap,org.eclipse.emf.ecp.view.label.ui.swt,org.eclipse.emf.ecp.view.mappingdmr.databinding,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.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.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.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.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.edit,org.eclipse.emf.ecp.view.template.service,org.eclipse.emf.ecp.view.template.service.test,org.eclipse.emf.ecp.view.template.tooling,org.eclipse.emf.ecp.view.treemasterdetail.model.edit,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.vertical.model.edit,org.eclipse.emf.ecp.view.vertical.ui.swt,org.eclipse.emf.ecp.view.vertical.ui.swt.test,org.eclipse.emf.ecp.workspace.ui"/>
+<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.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.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.graphiti.core,org.eclipse.emf.ecp.graphiti.integration,org.eclipse.emf.ecp.ide.editor.view,org.eclipse.emf.ecp.ide.editor.view.control,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.view.group.renderer,org.eclipse.emf.ecp.makeithappen.wizards,org.eclipse.emf.ecp.products,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.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.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.context.locale,org.eclipse.emf.ecp.view.custom.model.edit,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.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.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.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.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.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.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.edit,org.eclipse.emf.ecp.view.template.service,org.eclipse.emf.ecp.view.template.service.test,org.eclipse.emf.ecp.view.template.tooling,org.eclipse.emf.ecp.view.treemasterdetail.model.edit,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.vertical.model.edit,org.eclipse.emf.ecp.view.vertical.ui.swt,org.eclipse.emf.ecp.view.vertical.ui.swt.test,org.eclipse.emf.ecp.workspace.ui"/>
 <booleanAttribute key="includeOptional" value="true"/>
 <stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
@@ -34,7 +34,7 @@
 <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,javax.validation@default:default,javax.xml@default:default,org.apache.ant@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.logging@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.compatibility@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.cdo.ecore.retrofit@default:false,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.win32.x86_64@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@-1:true,org.eclipse.swt.win32.win32.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.win32@default:false,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.update.configurator@3:true,org.hamcrest.core@default:default,org.hamcrest.library@default:default,org.junit@default:default,org.mockito.mockito-all@default:default,org.objenesis@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.core.test@default:false,org.eclipse.emf.ecp.core@default:default,org.eclipse.emf.ecp.edit.swt.test@default:false,org.eclipse.emf.ecp.edit.swt@default:default,org.eclipse.emf.ecp.edit@default:default,org.eclipse.emf.ecp.editor.e3@default:default,org.eclipse.emf.ecp.emfstore.core@default:default,org.eclipse.emf.ecp.explorereditorbridge@default:default,org.eclipse.emf.ecp.ide.util@default:default,org.eclipse.emf.ecp.ide.view.service@default:default,org.eclipse.emf.ecp.makeithappen.model.viewmodel@default:default,org.eclipse.emf.ecp.makeithappen.model@default:default,org.eclipse.emf.ecp.makeithappen.view.email.renderer@default:default,org.eclipse.emf.ecp.rap.util@default:default,org.eclipse.emf.ecp.ui.rcp@default:false,org.eclipse.emf.ecp.ui.view.editor.controls.test@default:false,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.view.compoundcontrol.model.edit@default:default,org.eclipse.emf.ecp.view.compoundcontrol.model@default:default,org.eclipse.emf.ecp.view.compoundcontrol.swt@default:default,org.eclipse.emf.ecp.view.context.test@default:false,org.eclipse.emf.ecp.view.context@default:default,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.custom.model@default:default,org.eclipse.emf.ecp.view.custom.ui.swt.di@default:default,org.eclipse.emf.ecp.view.custom.ui.swt@default:default,org.eclipse.emf.ecp.view.group.model@default:default,org.eclipse.emf.ecp.view.indexdmr.databinding@default:default,org.eclipse.emf.ecp.view.indexdmr.model.edit@default:default,org.eclipse.emf.ecp.view.indexdmr.model.test@default:default,org.eclipse.emf.ecp.view.indexdmr.model@default:default,org.eclipse.emf.ecp.view.indexdmr.tooling@default:default,org.eclipse.emf.ecp.view.keyattributedmr.model.edit@default:default,org.eclipse.emf.ecp.view.keyattributedmr.model.test@default:default,org.eclipse.emf.ecp.view.keyattributedmr.model@default:default,org.eclipse.emf.ecp.view.keyattributedmr.tooling@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.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: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.section.model.edit@default:default,org.eclipse.emf.ecp.view.section.model@default:default,org.eclipse.emf.ecp.view.section.ui.swt@default:default,org.eclipse.emf.ecp.view.stack.model@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.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.bean.default@default:default,org.eclipse.emf.ecp.view.validation.bean.test@default:false,org.eclipse.emf.ecp.view.validation.bean@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.viewproxy.model.edit@default:default,org.eclipse.emf.ecp.view.viewproxy.model@default:default,org.eclipse.emf.ecp.view.viewproxy.tests@default:false,org.eclipse.emf.ecp.workspace.core@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.ecp.common.ui@default:default,org.eclipse.emf.ecp.common@default:default,org.eclipse.emf.ecp.core.test@default:false,org.eclipse.emf.ecp.core@default:default,org.eclipse.emf.ecp.edit.swt.test@default:false,org.eclipse.emf.ecp.edit.swt@default:default,org.eclipse.emf.ecp.edit@default:default,org.eclipse.emf.ecp.editor.e3@default:default,org.eclipse.emf.ecp.emfstore.core@default:default,org.eclipse.emf.ecp.explorereditorbridge@default:default,org.eclipse.emf.ecp.ide.util@default:default,org.eclipse.emf.ecp.ide.view.service@default:default,org.eclipse.emf.ecp.makeithappen.model.viewmodel@default:default,org.eclipse.emf.ecp.makeithappen.model@default:default,org.eclipse.emf.ecp.makeithappen.view.email.renderer@default:default,org.eclipse.emf.ecp.rap.util@default:default,org.eclipse.emf.ecp.ui.rcp@default:false,org.eclipse.emf.ecp.ui.view.editor.controls.test@default:false,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.view.compoundcontrol.model.edit@default:default,org.eclipse.emf.ecp.view.compoundcontrol.model@default:default,org.eclipse.emf.ecp.view.compoundcontrol.swt@default:default,org.eclipse.emf.ecp.view.context.test@default:false,org.eclipse.emf.ecp.view.context@default:default,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.custom.model@default:default,org.eclipse.emf.ecp.view.custom.ui.swt.di@default:default,org.eclipse.emf.ecp.view.custom.ui.swt@default:default,org.eclipse.emf.ecp.view.group.model@default:default,org.eclipse.emf.ecp.view.indexdmr.model.edit@default:default,org.eclipse.emf.ecp.view.indexdmr.model.test@default:default,org.eclipse.emf.ecp.view.indexdmr.model@default:default,org.eclipse.emf.ecp.view.indexdmr.tooling@default:default,org.eclipse.emf.ecp.view.keyattributedmr.model.edit@default:default,org.eclipse.emf.ecp.view.keyattributedmr.model.test@default:default,org.eclipse.emf.ecp.view.keyattributedmr.model@default:default,org.eclipse.emf.ecp.view.keyattributedmr.tooling@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.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: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.section.model.edit@default:default,org.eclipse.emf.ecp.view.section.model@default:default,org.eclipse.emf.ecp.view.section.ui.swt@default:default,org.eclipse.emf.ecp.view.stack.model@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.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.bean.default@default:default,org.eclipse.emf.ecp.view.validation.bean.test@default:false,org.eclipse.emf.ecp.view.validation.bean@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.viewproxy.model.edit@default:default,org.eclipse.emf.ecp.view.viewproxy.model@default:default,org.eclipse.emf.ecp.view.viewproxy.tests@default:false,org.eclipse.emf.ecp.workspace.core@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.editor.controls.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.ui.view.editor.controls.test/META-INF/MANIFEST.MF
index bc3b10a..b4eb5d5 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,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.view.editor.controls.test;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Fragment-Host: org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.5.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.ui.view.editor.controls.test;versi
- on="1.5.1",org.eclipse.emf.ecp.ui.view.editor.test.model.test;version
- ="1.5.1";x-internal:=true,org.eclipse.emf.ecp.ui.view.editor.test.mod
- el.test.impl;version="1.5.1";x-internal:=true,org.eclipse.emf.ecp.ui.
- view.editor.test.model.test.util;version="1.5.1";x-internal:=true
+ on="1.6.0",org.eclipse.emf.ecp.ui.view.editor.test.model.test;version
+ ="1.6.0";x-internal:=true,org.eclipse.emf.ecp.ui.view.editor.test.mod
+ el.test.impl;version="1.6.0";x-internal:=true,org.eclipse.emf.ecp.ui.
+ view.editor.test.model.test.util;version="1.6.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
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 03586dd..08bb85a 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -25,43 +25,51 @@
 		          	<useUIHarness>true</useUIHarness>
 		          	<useUIThread>true</useUIThread>
 		        	<failIfNoTests>false</failIfNoTests>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.viewmodel.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.table.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.rule.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.workspace.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.group.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-					</dependencies>
+				</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.target.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.viewmodel.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.table.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.rule.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.workspace.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.group.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
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 a9b8030..0982b5b 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: SWT Renderer Tests
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.view.swt.test
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Fragment-Host: org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: Eclipse Modeling Project
@@ -11,4 +11,4 @@
  org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
  org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.5.0,2.0.0)"
-Export-Package: org.eclipse.emf.ecp.ui.view.swt.test;version="1.5.1"
+Export-Package: org.eclipse.emf.ecp.ui.view.swt.test;version="1.6.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 b12f55e..15b9497 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -25,39 +25,61 @@
 		          	<useUIHarness>true</useUIHarness>
 		          	<useUIThread>true</useUIThread>
 		        	<failIfNoTests>false</failIfNoTests>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.viewmodel.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.template.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.vertical.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.emfstore.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						
-					</dependencies>
+				</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.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>
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 24798cc..41fd7e8 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.view.test
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Require-Bundle: org.eclipse.core.runtime;bundle-version="3.8.0",
  org.eclipse.emf.ecp.ui.view;bundle-version="[1.5.0,2.0.0)",
  org.junit;bundle-version="4.10.0",
@@ -20,4 +20,4 @@
  org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.5.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.ecp.ui.view.test;version="1.5.1"
+Export-Package: org.eclipse.emf.ecp.ui.view.test;version="1.6.0"
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 e889b17..5865a95 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -29,38 +29,46 @@
 		          	<useUIThread>true</useUIThread>
 		          	<testFailureIgnore>true</testFailureIgnore>
 		        	<failIfNoTests>false</failIfNoTests>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.viewmodel.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.vertical.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.emfstore.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.validation.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-					</dependencies>
+				</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.target.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.viewmodel.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.vertical.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<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.validation.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
diff --git a/tests/org.eclipse.emf.ecp.validation.diagnostician.test/.gitignore b/tests/org.eclipse.emf.ecp.validation.diagnostician.test/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.validation.diagnostician.test/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/tests/org.eclipse.emf.ecp.validation.diagnostician.test/Diagnostician_PTest.launch b/tests/org.eclipse.emf.ecp.validation.diagnostician.test/Diagnostician_PTest.launch
index 8b41b3d..771de08 100644
--- a/tests/org.eclipse.emf.ecp.validation.diagnostician.test/Diagnostician_PTest.launch
+++ b/tests/org.eclipse.emf.ecp.validation.diagnostician.test/Diagnostician_PTest.launch
@@ -34,7 +34,7 @@
 <stringAttribute key="product" value="com.gide.profiler.application.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,javax.servlet@default:default,javax.validation@default:default,javax.xml@default:default,org.apache.ant@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.logging@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.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.compatibility@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.cdo.ecore.retrofit@default:false,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.win32.x86_64@default:default,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@-1:true,org.eclipse.swt.win32.win32.x86_64@default:default,org.eclipse.swt@default:default,org.eclipse.swtbot.ant.junit@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.trace@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.win32@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.update.configurator@3:true,org.hamcrest.core@default:default,org.hamcrest.library@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="ViewModelProjectTemplate@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.diffmerge.context@default:default,org.eclipse.emf.ecp.diffmerge.model.edit@default:default,org.eclipse.emf.ecp.diffmerge.model@default:default,org.eclipse.emf.ecp.diffmerge.renderer.swt@default:default,org.eclipse.emf.ecp.diffmerge.swt@default:default,org.eclipse.emf.ecp.diffmerge.test@default:false,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.ide.editor.view@default:default,org.eclipse.emf.ecp.ide.util.test@default:default,org.eclipse.emf.ecp.ide.util@default:default,org.eclipse.emf.ecp.ide.view.service.test@default:default,org.eclipse.emf.ecp.ide.view.service@default:default,org.eclipse.emf.ecp.ui.rcp@default:default,org.eclipse.emf.ecp.ui.view.editor.controls.test@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: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.diagnostician.test@default:false,org.eclipse.emf.ecp.validation.diagnostician@default:default,org.eclipse.emf.ecp.view.categorization.model@default:default,org.eclipse.emf.ecp.view.compoundcontrol.model.edit@default:default,org.eclipse.emf.ecp.view.compoundcontrol.model@default:default,org.eclipse.emf.ecp.view.compoundcontrol.swt@default:default,org.eclipse.emf.ecp.view.context.test@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.tests@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.custom.ui.swt.di@default:default,org.eclipse.emf.ecp.view.custom.ui.swt@default:default,org.eclipse.emf.ecp.view.group.model@default:default,org.eclipse.emf.ecp.view.group.swt.collapsable@default:default,org.eclipse.emf.ecp.view.horizontal.model@default:default,org.eclipse.emf.ecp.view.indexdmr.databinding@default:default,org.eclipse.emf.ecp.view.indexdmr.model.edit@default:default,org.eclipse.emf.ecp.view.indexdmr.model.test@default:default,org.eclipse.emf.ecp.view.indexdmr.model@default:default,org.eclipse.emf.ecp.view.indexdmr.tooling@default:default,org.eclipse.emf.ecp.view.keyattributedmr.model.edit@default:default,org.eclipse.emf.ecp.view.keyattributedmr.model.test@default:default,org.eclipse.emf.ecp.view.keyattributedmr.model@default:default,org.eclipse.emf.ecp.view.keyattributedmr.tooling@default:default,org.eclipse.emf.ecp.view.label.model@default:default,org.eclipse.emf.ecp.view.label.rap@default:default,org.eclipse.emf.ecp.view.label.ui.swt@default:default,org.eclipse.emf.ecp.view.mappingdmr.databinding@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.mappingdmr.tooling@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.test@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.test@default:default,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.section.model.edit@default:default,org.eclipse.emf.ecp.view.section.model@default:default,org.eclipse.emf.ecp.view.section.ui.swt@default:default,org.eclipse.emf.ecp.view.stack.model.edit@default:default,org.eclipse.emf.ecp.view.stack.model@default:default,org.eclipse.emf.ecp.view.stack.ui.swt.test@default:false,org.eclipse.emf.ecp.view.stack.ui.swt@default:default,org.eclipse.emf.ecp.view.stack.viewmodel@default:default,org.eclipse.emf.ecp.view.table.migrate@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.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.template.tooling@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.bean.default@default:default,org.eclipse.emf.ecp.view.validation.bean.test@default:false,org.eclipse.emf.ecp.view.validation.bean@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.viewproxy.model.edit@default:default,org.eclipse.emf.ecp.view.viewproxy.model@default:default,org.eclipse.emf.ecp.view.viewproxy.tests@default:false,org.eclipse.emf.ecp.workspace.core@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="ViewModelProjectTemplate@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.diffmerge.context@default:default,org.eclipse.emf.ecp.diffmerge.model.edit@default:default,org.eclipse.emf.ecp.diffmerge.model@default:default,org.eclipse.emf.ecp.diffmerge.renderer.swt@default:default,org.eclipse.emf.ecp.diffmerge.swt@default:default,org.eclipse.emf.ecp.diffmerge.test@default:false,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.ide.editor.view@default:default,org.eclipse.emf.ecp.ide.util.test@default:default,org.eclipse.emf.ecp.ide.util@default:default,org.eclipse.emf.ecp.ide.view.service.test@default:default,org.eclipse.emf.ecp.ide.view.service@default:default,org.eclipse.emf.ecp.ui.rcp@default:default,org.eclipse.emf.ecp.ui.view.editor.controls.test@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: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.diagnostician.test@default:false,org.eclipse.emf.ecp.validation.diagnostician@default:default,org.eclipse.emf.ecp.view.categorization.model@default:default,org.eclipse.emf.ecp.view.compoundcontrol.model.edit@default:default,org.eclipse.emf.ecp.view.compoundcontrol.model@default:default,org.eclipse.emf.ecp.view.compoundcontrol.swt@default:default,org.eclipse.emf.ecp.view.context.test@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.tests@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.custom.ui.swt.di@default:default,org.eclipse.emf.ecp.view.custom.ui.swt@default:default,org.eclipse.emf.ecp.view.group.model@default:default,org.eclipse.emf.ecp.view.group.swt.collapsable@default:default,org.eclipse.emf.ecp.view.horizontal.model@default:default,org.eclipse.emf.ecp.view.indexdmr.model.edit@default:default,org.eclipse.emf.ecp.view.indexdmr.model.test@default:default,org.eclipse.emf.ecp.view.indexdmr.model@default:default,org.eclipse.emf.ecp.view.indexdmr.tooling@default:default,org.eclipse.emf.ecp.view.keyattributedmr.model.edit@default:default,org.eclipse.emf.ecp.view.keyattributedmr.model.test@default:default,org.eclipse.emf.ecp.view.keyattributedmr.model@default:default,org.eclipse.emf.ecp.view.keyattributedmr.tooling@default:default,org.eclipse.emf.ecp.view.label.model@default:default,org.eclipse.emf.ecp.view.label.rap@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.mappingdmr.tooling@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.test@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.test@default:default,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.section.model.edit@default:default,org.eclipse.emf.ecp.view.section.model@default:default,org.eclipse.emf.ecp.view.section.ui.swt@default:default,org.eclipse.emf.ecp.view.stack.model.edit@default:default,org.eclipse.emf.ecp.view.stack.model@default:default,org.eclipse.emf.ecp.view.stack.ui.swt.test@default:false,org.eclipse.emf.ecp.view.stack.ui.swt@default:default,org.eclipse.emf.ecp.view.stack.viewmodel@default:default,org.eclipse.emf.ecp.view.table.migrate@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.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.template.tooling@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.bean.default@default:default,org.eclipse.emf.ecp.view.validation.bean.test@default:false,org.eclipse.emf.ecp.view.validation.bean@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.viewproxy.model.edit@default:default,org.eclipse.emf.ecp.view.viewproxy.model@default:default,org.eclipse.emf.ecp.view.viewproxy.tests@default:false,org.eclipse.emf.ecp.workspace.core@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.validation.diagnostician.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.validation.diagnostician.test/META-INF/MANIFEST.MF
index ef56d6a..8ec3617 100644
--- a/tests/org.eclipse.emf.ecp.validation.diagnostician.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.validation.diagnostician.test/META-INF/MANIFEST.MF
@@ -2,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Diagnostician Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.validation.diagnostician.test;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Fragment-Host: org.eclipse.emf.ecp.validation.diagnostician;bundle-version="[1.5.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: Eclipse Modeling Project
 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)"
 Export-Package: org.eclipse.emf.ecp.validation.diagnostician.test;vers
- ion="1.5.1";x-internal:=true
+ ion="1.6.0";x-internal:=true
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 6727b80..649493a 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -25,23 +25,31 @@
 		          	<useUIHarness>true</useUIHarness>
 		          	<useUIThread>true</useUIThread>
 		        	<failIfNoTests>false</failIfNoTests>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.validation.view.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-					</dependencies>
+				</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.target.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.validation.view.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
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 713f4a4..59f890f 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.validation.test;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Fragment-Host: org.eclipse.emf.ecp.validation;bundle-version="1.4.0"
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
@@ -14,8 +14,8 @@
  org.eclipse.emf.ecp.core;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.5.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emf.ecp.validation.test;version="1.5.1";x-
- internal:=true,org.eclipse.emf.ecp.validation.test.test;version="1.5.
- 1";x-internal:=true,org.eclipse.emf.ecp.validation.test.test.impl;ver
- sion="1.5.1";x-internal:=true,org.eclipse.emf.ecp.validation.test.tes
- t.util;version="1.5.1";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.validation.test;version="1.6.0";x-
+ internal:=true,org.eclipse.emf.ecp.validation.test.test;version="1.6.
+ 0";x-internal:=true,org.eclipse.emf.ecp.validation.test.test.impl;ver
+ sion="1.6.0";x-internal:=true,org.eclipse.emf.ecp.validation.test.tes
+ t.util;version="1.6.0";x-internal:=true
diff --git a/tests/org.eclipse.emf.ecp.validation.test/Validation_PTest.launch b/tests/org.eclipse.emf.ecp.validation.test/Validation_PTest.launch
new file mode 100644
index 0000000..473fc73
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.validation.test/Validation_PTest.launch
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<booleanAttribute key="append.args" value="true"/>
+<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,com.example.editingDomain,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.emfstore,org.eclipse.emf.ecp.common.test.fx,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.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.graphiti.core,org.eclipse.emf.ecp.graphiti.integration,org.eclipse.emf.ecp.ide.editor.view,org.eclipse.emf.ecp.ide.editor.view.control,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.model,org.eclipse.emf.ecp.makeithappen.model.edit,org.eclipse.emf.ecp.makeithappen.model.viewmodel,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.edit,org.eclipse.emf.ecp.ui.e3,org.eclipse.emf.ecp.ui.e4,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.swt.di,org.eclipse.emf.ecp.util.e4.fx,org.eclipse.emf.ecp.validation.connector,org.eclipse.emf.ecp.validation.diagnostician,org.eclipse.emf.ecp.validation.diagnostician.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.locale,org.eclipse.emf.ecp.view.control.multireference,org.eclipse.emf.ecp.view.control.multireference.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,org.eclipse.emf.ecp.view.group.model.edit,org.eclipse.emf.ecp.view.group.swt.collapsable,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.model.test,org.eclipse.emf.ecp.view.mappingdmr.tooling,org.eclipse.emf.ecp.view.migrator,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.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.table.celleditor.rcp,org.eclipse.emf.ecp.view.table.columnservice,org.eclipse.emf.ecp.view.table.edapt,org.eclipse.emf.ecp.view.table.model.edit,org.eclipse.emf.ecp.view.table.ui.swt,org.eclipse.emf.ecp.view.table.ui.swt.test,org.eclipse.emf.ecp.view.table.validation,org.eclipse.emf.ecp.view.template.model.edit,org.eclipse.emf.ecp.view.template.service,org.eclipse.emf.ecp.view.template.service.test,org.eclipse.emf.ecp.view.template.tooling,org.eclipse.emf.ecp.view.treemasterdetail.model,org.eclipse.emf.ecp.view.treemasterdetail.model.edit,org.eclipse.emf.ecp.view.treemasterdetail.ui.swt,org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test,org.eclipse.emf.ecp.view.treemasterdetail.validation,org.eclipse.emf.ecp.view.treemasterdetail.validation.test,org.eclipse.emf.ecp.view.ui.editor.test,org.eclipse.emf.ecp.view.unset,org.eclipse.emf.ecp.view.unset.test,org.eclipse.emf.ecp.view.validation.bean,org.eclipse.emf.ecp.view.validation.bean.default,org.eclipse.emf.ecp.view.validation.bean.test,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.emfforms.core.services.databinding.featurepath,org.eclipse.emfforms.core.services.databinding.index,org.eclipse.emfforms.core.services.databinding.index.tests,org.eclipse.emfforms.core.services.databinding.mapping,org.eclipse.emfforms.core.services.databinding.testmodel,org.eclipse.emfforms.core.services.emf,org.eclipse.emfforms.core.services.emf.tests,org.eclipse.emfforms.core.services.locale.default,org.eclipse.emfforms.swt.core.plugin,org.eclipse.emfforms.view.model.localization,sample.e3,test,test.edit"/>
+<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.validation.test/src/org/eclipse/emf/ecp/validation/test/Validation_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.validation.test.Validation_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.validation.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.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.apache.commons.codec@default:default,org.apache.commons.logging@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@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.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.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.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.launcher.win32.win32.x86_64@default:false,org.eclipse.equinox.launcher@default:default,org.eclipse.equinox.p2.core@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.jdt.junit.runtime@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@-1:true,org.eclipse.pde.junit.runtime@default:default,org.eclipse.swt.win32.win32.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.team.core@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.trace@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.hamcrest.core@default:default,org.hamcrest.library@default:default,org.junit@default:default,org.mockito.mockito-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.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.test.common@default:default,org.eclipse.emf.ecp.test.model@default:default,org.eclipse.emf.ecp.ui.rcp@default:false,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.context.test@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.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.model.test@default:false,org.eclipse.emf.ecp.view.table.model@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.test.common.swt@default:default,org.eclipse.emf.ecp.view.test.common@default:default,org.eclipse.emf.ecp.view.util.swt@default:default,org.eclipse.emf.ecp.view.validation.test@default:false,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.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@default:default,org.eclipse.emfforms.swt.core.tests@default:false,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>
diff --git a/tests/org.eclipse.emf.ecp.validation.test/pom.xml b/tests/org.eclipse.emf.ecp.validation.test/pom.xml
index c4d1420..7e1cbed 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -22,23 +22,31 @@
 				<artifactId>tycho-surefire-plugin</artifactId>
 				<version>${tycho-version}</version>
 				<configuration>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.e3.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-					</dependencies>
+				</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.target.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.e3.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
diff --git a/tests/org.eclipse.emf.ecp.view.categorization.swt.test/.gitignore b/tests/org.eclipse.emf.ecp.view.categorization.swt.test/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.categorization.swt.test/.gitignore
@@ -0,0 +1 @@
+/bin/
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 0fee771..588b14c 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
@@ -1,43 +1,43 @@
-<?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.categorization.swt.test/src/org/eclipse/emf/ecp/view/categorization/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"/>

-<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.7"/>

-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.ecp.view.categorization.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.categorization.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.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,javax.servlet@default:default,javax.xml@default:default,org.apache.batik.css@default:default,org.apache.batik.util.gui@default:default,org.apache.batik.util@default:default,org.apache.commons.codec@default:default,org.apache.commons.logging@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:default,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.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.registry@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.region@default:default,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: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.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-all@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.test@default:false,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.ui.rcp@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.categorization.swt.test@default:false,org.eclipse.emf.ecp.view.categorization.swt@default:default,org.eclipse.emf.ecp.view.context.test@default:false,org.eclipse.emf.ecp.view.context@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.horizontal.model@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:false,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.rule.test@default:default,org.eclipse.emf.ecp.view.rule.ui.swt.test@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.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:default,org.eclipse.emf.ecp.view.validation@default:default,org.eclipse.emf.ecp.view.vertical.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>

+<?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.categorization.swt.test/src/org/eclipse/emf/ecp/view/categorization/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"/>
+<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.7"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.ecp.view.categorization.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.categorization.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.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,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.apache.commons.codec@default:default,org.apache.commons.logging@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.compatibility.registry@default:false,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.cdo.ecore.retrofit@default:false,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@-1:true,org.eclipse.swt.win32.win32.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-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.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.test.common@default:default,org.eclipse.emf.ecp.ui.rcp@default:false,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.categorization.swt.test@default:false,org.eclipse.emf.ecp.view.categorization.swt@default:default,org.eclipse.emf.ecp.view.context.test@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.horizontal.model@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.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.rule@default:default,org.eclipse.emf.ecp.view.swt.layout@default:default,org.eclipse.emf.ecp.view.table.model.test@default:false,org.eclipse.emf.ecp.view.table.model@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.test.common.swt@default:default,org.eclipse.emf.ecp.view.util.swt@default:default,org.eclipse.emf.ecp.view.validation@default:default,org.eclipse.emf.ecp.view.vertical.model@default:default,org.eclipse.emfforms.core.services.databinding.featurepath@default:default,org.eclipse.emfforms.core.services.databinding@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.locale.default@default:default,org.eclipse.emfforms.core.services@default:default,org.eclipse.emfforms.localization@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>
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 74abe4e..72de9b1 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Categorization Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.categorization.swt.test
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Fragment-Host: org.eclipse.emf.ecp.view.categorization.swt;bundle-version="[1.5.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
@@ -12,5 +12,5 @@
  org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.5.0,2.0.0)"
 Import-Package: org.eclipse.swt.layout;version="0.0.0"
 Export-Package: org.eclipse.emf.ecp.view.categorization.swt.test;versi
- on="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.spi.categorizati
- on.swt;version="1.5.1"
+ on="1.6.0";x-internal:=true,org.eclipse.emf.ecp.view.spi.categorizati
+ on.swt;version="1.6.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 e726580..549788b 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -24,43 +24,51 @@
 				<configuration>
 					<useUIHarness>true</useUIHarness>
 					<useUIThread>true</useUIThread>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.viewmodel.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-                            <type>eclipse-feature</type>
-                            <artifactId>org.eclipse.emf.ecp.view.validation.feature</artifactId>
-                            <version>0.0.0</version>
-                        </dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.categorization.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.template.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-                            <type>eclipse-feature</type>
-                            <artifactId>org.eclipse.emf.ecp.view.rule.feature</artifactId>
-                            <version>0.0.0</version>
-                        </dependency>
-					</dependencies>
+				</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.target.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.viewmodel.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+	                            <type>eclipse-feature</type>
+	                            <id>org.eclipse.emf.ecp.view.validation.feature</id>
+	                            <versionRange>0.0.0</versionRange>
+	                        </requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.categorization.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.template.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+	                            <type>eclipse-feature</type>
+	                            <id>org.eclipse.emf.ecp.view.rule.feature</id>
+	                            <versionRange>0.0.0</versionRange>
+	                        </requirement>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
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 1d1a985..e3888f1 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
@@ -11,13 +11,15 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.categorization.swt.test;
 
+import org.eclipse.emf.ecp.view.spi.categorization.swt.CategorizationRenderer_PTest;
 import org.junit.runner.RunWith;
 import org.junit.runners.Suite;
 import org.junit.runners.Suite.SuiteClasses;
 
 @RunWith(Suite.class)
-@SuiteClasses({ Categorization_PTest.class, CategorizationTreeRefresh_PTest.class,
-	CategorizationTreeContentRefresh_PTest.class })
+@SuiteClasses({ Categorization_PTest.class, CategorizationCorrectTester_PTest.class,
+	CategorizationTreeContentRefresh_PTest.class, CategorizationTreeRefresh_PTest.class,
+	CategorizationRenderer_PTest.class })
 public class AllTests {
 
 }
diff --git a/tests/org.eclipse.emf.ecp.view.categorization.swt.test/src/org/eclipse/emf/ecp/view/categorization/swt/test/CategorizationCorrectTester_PTest.java b/tests/org.eclipse.emf.ecp.view.categorization.swt.test/src/org/eclipse/emf/ecp/view/categorization/swt/test/CategorizationCorrectTester_PTest.java
index f13b715..2aa4613 100644
--- a/tests/org.eclipse.emf.ecp.view.categorization.swt.test/src/org/eclipse/emf/ecp/view/categorization/swt/test/CategorizationCorrectTester_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.categorization.swt.test/src/org/eclipse/emf/ecp/view/categorization/swt/test/CategorizationCorrectTester_PTest.java
@@ -15,15 +15,14 @@
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-import org.eclipse.emf.ecp.view.internal.categorization.swt.CategorizationTabRendererTester;
-import org.eclipse.emf.ecp.view.internal.categorization.swt.CategorizationTreeRendererTester;
-import org.eclipse.emf.ecp.view.internal.categorization.swt.CompositeCategoryDefaultRendererTester;
-import org.eclipse.emf.ecp.view.internal.categorization.swt.CompositeCategoryTabRendererTester;
-import org.eclipse.emf.ecp.view.internal.categorization.swt.CompositeCategoryTreeRendererTester;
-import org.eclipse.emf.ecp.view.model.common.ECPRendererTester;
+import org.eclipse.emf.ecp.view.internal.categorization.swt.CategorizationElementTabbedRendererService;
+import org.eclipse.emf.ecp.view.internal.categorization.swt.CompositeCategoryJFaceTreeRendererService;
+import org.eclipse.emf.ecp.view.internal.categorization.swt.CompositeCategorySWTTabRendererService;
+import org.eclipse.emf.ecp.view.internal.categorization.swt.SWTCategorizationElementRendererService;
+import org.eclipse.emf.ecp.view.internal.categorization.swt.SWTCategorizationRendererService;
 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.context.ViewModelContext;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -45,39 +44,39 @@
 	public void testCorrectTesterForCategorizationWithDepth0() {
 		final VCategorizationElement categorizationElement = mock(VCategorizationElement.class);
 		when(categorizationElement.getMainCategoryDepth()).thenReturn(0);
-		final CategorizationTabRendererTester tabTester = new CategorizationTabRendererTester();
-		final int applicable = tabTester.isApplicable(categorizationElement, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicable);
+		final CategorizationElementTabbedRendererService tabTester = new CategorizationElementTabbedRendererService();
+		final double applicable = tabTester.isApplicable(categorizationElement, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicable, 0d);
 
-		final CategorizationTreeRendererTester treeTester = new CategorizationTreeRendererTester();
-		final int applicableTree = treeTester.isApplicable(categorizationElement, mock(ViewModelContext.class));
-		assertEquals(1, applicableTree);
+		final SWTCategorizationElementRendererService treeTester = new SWTCategorizationElementRendererService();
+		final double applicableTree = treeTester.isApplicable(categorizationElement, null);
+		assertEquals(1, applicableTree, 0d);
 	}
 
 	@Test
 	public void testCorrectTesterForCategorizationWithDepth1() {
 		final VCategorizationElement categorizationElement = mock(VCategorizationElement.class);
 		when(categorizationElement.getMainCategoryDepth()).thenReturn(1);
-		final CategorizationTabRendererTester tabTester = new CategorizationTabRendererTester();
-		final int applicable = tabTester.isApplicable(categorizationElement, mock(ViewModelContext.class));
-		assertEquals(1, applicable);
+		final CategorizationElementTabbedRendererService tabTester = new CategorizationElementTabbedRendererService();
+		final double applicable = tabTester.isApplicable(categorizationElement, null);
+		assertEquals(1, applicable, 0d);
 
-		final CategorizationTreeRendererTester treeTester = new CategorizationTreeRendererTester();
-		final int applicableTree = treeTester.isApplicable(categorizationElement, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicableTree);
+		final SWTCategorizationElementRendererService treeTester = new SWTCategorizationElementRendererService();
+		final double applicableTree = treeTester.isApplicable(categorizationElement, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicableTree, 0d);
 	}
 
 	@Test
 	public void testCorrectTesterForCategorizationWithDepth2() {
 		final VCategorizationElement categorizationElement = mock(VCategorizationElement.class);
 		when(categorizationElement.getMainCategoryDepth()).thenReturn(2);
-		final CategorizationTabRendererTester tabTester = new CategorizationTabRendererTester();
-		final int applicable = tabTester.isApplicable(categorizationElement, mock(ViewModelContext.class));
-		assertEquals(1, applicable);
+		final CategorizationElementTabbedRendererService tabTester = new CategorizationElementTabbedRendererService();
+		final double applicable = tabTester.isApplicable(categorizationElement, null);
+		assertEquals(1, applicable, 0d);
 
-		final CategorizationTreeRendererTester treeTester = new CategorizationTreeRendererTester();
-		final int applicableTree = treeTester.isApplicable(categorizationElement, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicableTree);
+		final SWTCategorizationElementRendererService treeTester = new SWTCategorizationElementRendererService();
+		final double applicableTree = treeTester.isApplicable(categorizationElement, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicableTree, 0d);
 	}
 
 	@Test
@@ -93,45 +92,45 @@
 		final VCategorization categorization3 = mock(VCategorization.class);
 		when(categorization3.eContainer()).thenReturn(categorization2);
 
-		final CompositeCategoryDefaultRendererTester defaultTester = new CompositeCategoryDefaultRendererTester();
-		final CompositeCategoryTabRendererTester tabTester = new CompositeCategoryTabRendererTester();
-		final CompositeCategoryTreeRendererTester treeTester = new CompositeCategoryTreeRendererTester();
+		final SWTCategorizationRendererService defaultTester = new SWTCategorizationRendererService();
+		final CompositeCategorySWTTabRendererService tabTester = new CompositeCategorySWTTabRendererService();
+		final CompositeCategoryJFaceTreeRendererService treeTester = new CompositeCategoryJFaceTreeRendererService();
 
-		final int applicable0 = defaultTester.isApplicable(categorization0, mock(ViewModelContext.class));
-		assertEquals(1, applicable0);
+		final double applicable0 = defaultTester.isApplicable(categorization0, null);
+		assertEquals(1, applicable0, 0d);
 
-		final int applicableTab0 = tabTester.isApplicable(categorization0, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicableTab0);
+		final double applicableTab0 = tabTester.isApplicable(categorization0, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicableTab0, 0d);
 
-		final int applicableTree0 = treeTester.isApplicable(categorization0, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicableTree0);
+		final double applicableTree0 = treeTester.isApplicable(categorization0, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicableTree0, 0d);
 
-		final int applicable1 = defaultTester.isApplicable(categorization1, mock(ViewModelContext.class));
-		assertEquals(1, applicable1);
+		final double applicable1 = defaultTester.isApplicable(categorization1, null);
+		assertEquals(1, applicable1, 0d);
 
-		final int applicableTab1 = tabTester.isApplicable(categorization1, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicableTab1);
+		final double applicableTab1 = tabTester.isApplicable(categorization1, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicableTab1, 0d);
 
-		final int applicableTree1 = treeTester.isApplicable(categorization1, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicableTree1);
+		final double applicableTree1 = treeTester.isApplicable(categorization1, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicableTree1, 0d);
 
-		final int applicable2 = defaultTester.isApplicable(categorization2, mock(ViewModelContext.class));
-		assertEquals(1, applicable2);
+		final double applicable2 = defaultTester.isApplicable(categorization2, null);
+		assertEquals(1, applicable2, 0d);
 
-		final int applicableTab2 = tabTester.isApplicable(categorization2, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicableTab2);
+		final double applicableTab2 = tabTester.isApplicable(categorization2, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicableTab2, 0d);
 
-		final int applicableTree2 = treeTester.isApplicable(categorization2, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicableTree2);
+		final double applicableTree2 = treeTester.isApplicable(categorization2, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicableTree2, 0d);
 
-		final int applicable3 = defaultTester.isApplicable(categorization3, mock(ViewModelContext.class));
-		assertEquals(1, applicable3);
+		final double applicable3 = defaultTester.isApplicable(categorization3, null);
+		assertEquals(1, applicable3, 0d);
 
-		final int applicableTab3 = tabTester.isApplicable(categorization3, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicableTab3);
+		final double applicableTab3 = tabTester.isApplicable(categorization3, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicableTab3, 0d);
 
-		final int applicableTree3 = treeTester.isApplicable(categorization3, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicableTree3);
+		final double applicableTree3 = treeTester.isApplicable(categorization3, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicableTree3, 0d);
 	}
 
 	@Test
@@ -147,45 +146,45 @@
 		final VCategorization categorization3 = mock(VCategorization.class);
 		when(categorization3.eContainer()).thenReturn(categorization2);
 
-		final CompositeCategoryDefaultRendererTester defaultTester = new CompositeCategoryDefaultRendererTester();
-		final CompositeCategoryTabRendererTester tabTester = new CompositeCategoryTabRendererTester();
-		final CompositeCategoryTreeRendererTester treeTester = new CompositeCategoryTreeRendererTester();
+		final SWTCategorizationRendererService defaultTester = new SWTCategorizationRendererService();
+		final CompositeCategorySWTTabRendererService tabTester = new CompositeCategorySWTTabRendererService();
+		final CompositeCategoryJFaceTreeRendererService treeTester = new CompositeCategoryJFaceTreeRendererService();
 
-		final int applicable0 = defaultTester.isApplicable(categorization0, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicable0);
+		final double applicable0 = defaultTester.isApplicable(categorization0, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicable0, 0d);
 
-		final int applicableTab0 = tabTester.isApplicable(categorization0, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicableTab0);
+		final double applicableTab0 = tabTester.isApplicable(categorization0, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicableTab0, 0d);
 
-		final int applicableTree0 = treeTester.isApplicable(categorization0, mock(ViewModelContext.class));
-		assertEquals(1, applicableTree0);
+		final double applicableTree0 = treeTester.isApplicable(categorization0, null);
+		assertEquals(1, applicableTree0, 0d);
 
-		final int applicable1 = defaultTester.isApplicable(categorization1, mock(ViewModelContext.class));
-		assertEquals(1, applicable1);
+		final double applicable1 = defaultTester.isApplicable(categorization1, null);
+		assertEquals(1, applicable1, 0d);
 
-		final int applicableTab1 = tabTester.isApplicable(categorization1, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicableTab1);
+		final double applicableTab1 = tabTester.isApplicable(categorization1, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicableTab1, 0d);
 
-		final int applicableTree1 = treeTester.isApplicable(categorization1, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicableTree1);
+		final double applicableTree1 = treeTester.isApplicable(categorization1, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicableTree1, 0d);
 
-		final int applicable2 = defaultTester.isApplicable(categorization2, mock(ViewModelContext.class));
-		assertEquals(1, applicable2);
+		final double applicable2 = defaultTester.isApplicable(categorization2, null);
+		assertEquals(1, applicable2, 0d);
 
-		final int applicableTab2 = tabTester.isApplicable(categorization2, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicableTab2);
+		final double applicableTab2 = tabTester.isApplicable(categorization2, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicableTab2, 0d);
 
-		final int applicableTree2 = treeTester.isApplicable(categorization2, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicableTree2);
+		final double applicableTree2 = treeTester.isApplicable(categorization2, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicableTree2, 0d);
 
-		final int applicable3 = defaultTester.isApplicable(categorization3, mock(ViewModelContext.class));
-		assertEquals(1, applicable3);
+		final double applicable3 = defaultTester.isApplicable(categorization3, null);
+		assertEquals(1, applicable3, 0d);
 
-		final int applicableTab3 = tabTester.isApplicable(categorization3, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicableTab3);
+		final double applicableTab3 = tabTester.isApplicable(categorization3, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicableTab3, 0d);
 
-		final int applicableTree3 = treeTester.isApplicable(categorization3, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicableTree3);
+		final double applicableTree3 = treeTester.isApplicable(categorization3, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicableTree3, 0d);
 	}
 
 	@Test
@@ -201,45 +200,45 @@
 		final VCategorization categorization3 = mock(VCategorization.class);
 		when(categorization3.eContainer()).thenReturn(categorization2);
 
-		final CompositeCategoryDefaultRendererTester defaultTester = new CompositeCategoryDefaultRendererTester();
-		final CompositeCategoryTabRendererTester tabTester = new CompositeCategoryTabRendererTester();
-		final CompositeCategoryTreeRendererTester treeTester = new CompositeCategoryTreeRendererTester();
+		final SWTCategorizationRendererService defaultTester = new SWTCategorizationRendererService();
+		final CompositeCategorySWTTabRendererService tabTester = new CompositeCategorySWTTabRendererService();
+		final CompositeCategoryJFaceTreeRendererService treeTester = new CompositeCategoryJFaceTreeRendererService();
 
-		final int applicable0 = defaultTester.isApplicable(categorization0, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicable0);
+		final double applicable0 = defaultTester.isApplicable(categorization0, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicable0, 0d);
 
-		final int applicableTab0 = tabTester.isApplicable(categorization0, mock(ViewModelContext.class));
-		assertEquals(1, applicableTab0);
+		final double applicableTab0 = tabTester.isApplicable(categorization0, null);
+		assertEquals(1, applicableTab0, 0d);
 
-		final int applicableTree0 = treeTester.isApplicable(categorization0, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicableTree0);
+		final double applicableTree0 = treeTester.isApplicable(categorization0, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicableTree0, 0d);
 
-		final int applicable1 = defaultTester.isApplicable(categorization1, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicable1);
+		final double applicable1 = defaultTester.isApplicable(categorization1, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicable1, 0d);
 
-		final int applicableTab1 = tabTester.isApplicable(categorization1, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicableTab1);
+		final double applicableTab1 = tabTester.isApplicable(categorization1, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicableTab1, 0d);
 
-		final int applicableTree1 = treeTester.isApplicable(categorization1, mock(ViewModelContext.class));
-		assertEquals(1, applicableTree1);
+		final double applicableTree1 = treeTester.isApplicable(categorization1, null);
+		assertEquals(1, applicableTree1, 0d);
 
-		final int applicable2 = defaultTester.isApplicable(categorization2, mock(ViewModelContext.class));
-		assertEquals(1, applicable2);
+		final double applicable2 = defaultTester.isApplicable(categorization2, null);
+		assertEquals(1, applicable2, 0d);
 
-		final int applicableTab2 = tabTester.isApplicable(categorization2, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicableTab2);
+		final double applicableTab2 = tabTester.isApplicable(categorization2, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicableTab2, 0d);
 
-		final int applicableTree2 = treeTester.isApplicable(categorization2, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicableTree2);
+		final double applicableTree2 = treeTester.isApplicable(categorization2, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicableTree2, 0d);
 
-		final int applicable3 = defaultTester.isApplicable(categorization3, mock(ViewModelContext.class));
-		assertEquals(1, applicable3);
+		final double applicable3 = defaultTester.isApplicable(categorization3, null);
+		assertEquals(1, applicable3, 0d);
 
-		final int applicableTab3 = tabTester.isApplicable(categorization3, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicableTab3);
+		final double applicableTab3 = tabTester.isApplicable(categorization3, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicableTab3, 0d);
 
-		final int applicableTree3 = treeTester.isApplicable(categorization3, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicableTree3);
+		final double applicableTree3 = treeTester.isApplicable(categorization3, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicableTree3, 0d);
 	}
 
 	@Test
@@ -255,44 +254,44 @@
 		final VCategorization categorization3 = mock(VCategorization.class);
 		when(categorization3.eContainer()).thenReturn(categorization2);
 
-		final CompositeCategoryDefaultRendererTester defaultTester = new CompositeCategoryDefaultRendererTester();
-		final CompositeCategoryTabRendererTester tabTester = new CompositeCategoryTabRendererTester();
-		final CompositeCategoryTreeRendererTester treeTester = new CompositeCategoryTreeRendererTester();
+		final SWTCategorizationRendererService defaultTester = new SWTCategorizationRendererService();
+		final CompositeCategorySWTTabRendererService tabTester = new CompositeCategorySWTTabRendererService();
+		final CompositeCategoryJFaceTreeRendererService treeTester = new CompositeCategoryJFaceTreeRendererService();
 
-		final int applicable0 = defaultTester.isApplicable(categorization0, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicable0);
+		final double applicable0 = defaultTester.isApplicable(categorization0, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicable0, 0d);
 
-		final int applicableTab0 = tabTester.isApplicable(categorization0, mock(ViewModelContext.class));
-		assertEquals(1, applicableTab0);
+		final double applicableTab0 = tabTester.isApplicable(categorization0, null);
+		assertEquals(1, applicableTab0, 0d);
 
-		final int applicableTree0 = treeTester.isApplicable(categorization0, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicableTree0);
+		final double applicableTree0 = treeTester.isApplicable(categorization0, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicableTree0, 0d);
 
-		final int applicable1 = defaultTester.isApplicable(categorization1, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicable1);
+		final double applicable1 = defaultTester.isApplicable(categorization1, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicable1, 0d);
 
-		final int applicableTab1 = tabTester.isApplicable(categorization1, mock(ViewModelContext.class));
-		assertEquals(1, applicableTab1);
+		final double applicableTab1 = tabTester.isApplicable(categorization1, null);
+		assertEquals(1, applicableTab1, 0d);
 
-		final int applicableTree1 = treeTester.isApplicable(categorization1, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicableTree1);
+		final double applicableTree1 = treeTester.isApplicable(categorization1, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicableTree1, 0d);
 
-		final int applicable2 = defaultTester.isApplicable(categorization2, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicable2);
+		final double applicable2 = defaultTester.isApplicable(categorization2, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicable2, 0d);
 
-		final int applicableTab2 = tabTester.isApplicable(categorization2, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicableTab2);
+		final double applicableTab2 = tabTester.isApplicable(categorization2, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicableTab2, 0d);
 
-		final int applicableTree2 = treeTester.isApplicable(categorization2, mock(ViewModelContext.class));
-		assertEquals(1, applicableTree2);
+		final double applicableTree2 = treeTester.isApplicable(categorization2, null);
+		assertEquals(1, applicableTree2, 0d);
 
-		final int applicable3 = defaultTester.isApplicable(categorization3, mock(ViewModelContext.class));
-		assertEquals(1, applicable3);
+		final double applicable3 = defaultTester.isApplicable(categorization3, null);
+		assertEquals(1, applicable3, 0d);
 
-		final int applicableTab3 = tabTester.isApplicable(categorization3, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicableTab3);
+		final double applicableTab3 = tabTester.isApplicable(categorization3, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicableTab3, 0d);
 
-		final int applicableTree3 = treeTester.isApplicable(categorization3, mock(ViewModelContext.class));
-		assertEquals(ECPRendererTester.NOT_APPLICABLE, applicableTree3);
+		final double applicableTree3 = treeTester.isApplicable(categorization3, null);
+		assertEquals(EMFFormsRendererService.NOT_APPLICABLE, applicableTree3, 0d);
 	}
 }
diff --git a/tests/org.eclipse.emf.ecp.view.categorization.swt.test/src/org/eclipse/emf/ecp/view/spi/categorization/swt/CategorizationRenderer_PTest.java b/tests/org.eclipse.emf.ecp.view.categorization.swt.test/src/org/eclipse/emf/ecp/view/spi/categorization/swt/CategorizationRenderer_PTest.java
index 571abc3..8d0db72 100644
--- a/tests/org.eclipse.emf.ecp.view.categorization.swt.test/src/org/eclipse/emf/ecp/view/spi/categorization/swt/CategorizationRenderer_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.categorization.swt.test/src/org/eclipse/emf/ecp/view/spi/categorization/swt/CategorizationRenderer_PTest.java
@@ -26,8 +26,9 @@
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 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.SWTRendererFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
 import org.eclipse.swt.custom.CTabFolder;
 import org.eclipse.swt.custom.ScrolledComposite;
 import org.eclipse.swt.widgets.Composite;
@@ -53,9 +54,8 @@
 	@Test
 	public void testCategorizationElementTreeRenderer() throws NoRendererFoundException,
 		NoPropertyDescriptorFoundExeption {
-		final SWTRendererFactory factory = mock(SWTRendererFactory.class);
-		final SWTCategorizationElementRenderer categorizatrionElementRenderer = new SWTCategorizationElementRenderer(
-			factory);
+		final ReportService reportService = mock(ReportService.class);
+		final EMFFormsRendererFactory emfFormsRendererFactory = mock(EMFFormsRendererFactory.class);
 
 		final SWTGridCell gridCell = mock(SWTGridCell.class);
 		final Shell shell = new Shell();
@@ -67,7 +67,9 @@
 		when(iterator.hasNext()).thenReturn(false);
 		when(categorizationElement.eAllContents()).thenReturn(iterator);
 		final ViewModelContext vmc = mock(ViewModelContext.class);
-		categorizatrionElementRenderer.init(categorizationElement, vmc);
+		final SWTCategorizationElementRenderer categorizatrionElementRenderer = new SWTCategorizationElementRenderer(
+			categorizationElement, vmc, reportService, emfFormsRendererFactory);
+		categorizatrionElementRenderer.init();
 		final Control render = categorizatrionElementRenderer.render(gridCell, shell);
 		assertTrue(Composite.class.isInstance(render));
 		assertEquals(2, Composite.class.cast(render).getChildren().length);
@@ -78,9 +80,8 @@
 	@Test
 	public void testCategorizationElementTabRenderer() throws NoRendererFoundException,
 		NoPropertyDescriptorFoundExeption {
-		final SWTRendererFactory factory = mock(SWTRendererFactory.class);
-		final CategorizationElementTabbedSWTRenderer categorizatrionElementRenderer = new CategorizationElementTabbedSWTRenderer(
-			factory);
+		final ReportService reportService = mock(ReportService.class);
+		final EMFFormsRendererFactory emfFormsRendererFactory = mock(EMFFormsRendererFactory.class);
 
 		final SWTGridCell gridCell = mock(SWTGridCell.class);
 		final Shell shell = new Shell();
@@ -88,7 +89,9 @@
 		final EList<VAbstractCategorization> categorizations = new BasicEList<VAbstractCategorization>();
 		when(categorizationElement.getCategorizations()).thenReturn(categorizations);
 		final ViewModelContext vmc = mock(ViewModelContext.class);
-		categorizatrionElementRenderer.init(categorizationElement, vmc);
+		final CategorizationElementTabbedSWTRenderer categorizatrionElementRenderer = new CategorizationElementTabbedSWTRenderer(
+			categorizationElement, vmc, reportService, emfFormsRendererFactory);
+		categorizatrionElementRenderer.init();
 		final Control render = categorizatrionElementRenderer.render(gridCell, shell);
 		assertTrue(CTabFolder.class.isInstance(render));
 	}
@@ -96,9 +99,8 @@
 	@Test
 	public void testCompositeCategoryTreeRenderer() throws NoRendererFoundException,
 		NoPropertyDescriptorFoundExeption {
-		final SWTRendererFactory factory = mock(SWTRendererFactory.class);
-		final CompositeCategoryJFaceTreeRenderer categorizatrionElementRenderer = new CompositeCategoryJFaceTreeRenderer(
-			factory);
+		final ReportService reportService = mock(ReportService.class);
+		final EMFFormsRendererFactory emfFormsRendererFactory = mock(EMFFormsRendererFactory.class);
 
 		final SWTGridCell gridCell = mock(SWTGridCell.class);
 		final Shell shell = new Shell();
@@ -116,7 +118,9 @@
 		when(categorization.eContainer()).thenReturn(categorizationElement);
 
 		final ViewModelContext vmc = mock(ViewModelContext.class);
-		categorizatrionElementRenderer.init(categorization, vmc);
+		final CompositeCategoryJFaceTreeRenderer categorizatrionElementRenderer = new CompositeCategoryJFaceTreeRenderer(
+			categorization, vmc, reportService, emfFormsRendererFactory);
+		categorizatrionElementRenderer.init();
 		final Control render = categorizatrionElementRenderer.render(gridCell, shell);
 		assertTrue(Composite.class.isInstance(render));
 		assertEquals(2, Composite.class.cast(render).getChildren().length);
@@ -127,9 +131,8 @@
 	@Test
 	public void testCompositeCategoryElementTabRenderer() throws NoRendererFoundException,
 		NoPropertyDescriptorFoundExeption {
-		final SWTRendererFactory factory = mock(SWTRendererFactory.class);
-		final CompositeCategorySWTTabRenderer categorizatrionElementRenderer = new CompositeCategorySWTTabRenderer(
-			factory);
+		final ReportService reportService = mock(ReportService.class);
+		final EMFFormsRendererFactory emfFormsRendererFactory = mock(EMFFormsRendererFactory.class);
 
 		final SWTGridCell gridCell = mock(SWTGridCell.class);
 		final Shell shell = new Shell();
@@ -140,7 +143,9 @@
 		when(categorization.getCategorizations()).thenReturn(new BasicEList<VAbstractCategorization>());
 		when(categorizationElement.getCategorizations()).thenReturn(categorizations);
 		final ViewModelContext vmc = mock(ViewModelContext.class);
-		categorizatrionElementRenderer.init(categorization, vmc);
+		final CompositeCategorySWTTabRenderer categorizatrionElementRenderer = new CompositeCategorySWTTabRenderer(
+			categorization, vmc, reportService, emfFormsRendererFactory);
+		categorizatrionElementRenderer.init();
 		final Control render = categorizatrionElementRenderer.render(gridCell, shell);
 		assertTrue(CTabFolder.class.isInstance(render));
 	}
diff --git a/tests/org.eclipse.emf.ecp.view.context.test/ContextTests.launch b/tests/org.eclipse.emf.ecp.view.context.test/ContextTests.launch
new file mode 100644
index 0000000..9c7b8b0
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.context.test/ContextTests.launch
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<setAttribute key="additional_plugins">
+<setEntry value="org.eclipse.emfforms.core.services.emf:1.6.0.qualifier:default:true"/>
+<setEntry value="org.eclipse.emfforms.core.services:1.6.0.qualifier:default:true"/>
+<setEntry value="org.eclipse.emfforms.localization.default:1.6.0.qualifier:default:true"/>
+<setEntry value="org.eclipse.equinox.ds:1.4.200.v20131126-2331:default:false"/>
+<setEntry value="org.hamcrest.library:1.3.0.v201305281000:default:false"/>
+<setEntry value="org.junit:4.11.0.v201303080030:default:false"/>
+<setEntry value="org.mockito.mockito-all:1.9.5:default:false"/>
+</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="false"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bad_container_name" value="\org.eclipse.emf.ecp.view.context.test\ContextTest"/>
+<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="featureDefaultLocation" value="workspace"/>
+<stringAttribute key="featurePluginResolution" value="workspace"/>
+<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.context.test/src/org/eclipse/emf/ecp/view/context/reporting/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.7"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.ecp.view.context.reporting.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.context.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.viewmodel.feature:default"/>
+</setAttribute>
+<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.apache.commons.codec@default:default,org.apache.commons.logging@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.compatibility.registry@default:false,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.cdo.ecore.retrofit@default:false,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@-1:true,org.eclipse.swt.win32.win32.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-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.core@default:default,org.eclipse.emf.ecp.edit.swt.nl_de@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.ui.nl_de@default:false,org.eclipse.emf.ecp.ui.rcp@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.test@default:false,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.core.swt.nl_de@default:false,org.eclipse.emf.ecp.view.core.swt@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.table.model@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.vertical.model@default:default,org.eclipse.emf.rap.edit.ui.minimal@default:default"/>
+<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.context.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.context.test/META-INF/MANIFEST.MF
index 1fc3723..239ec92 100644
--- a/tests/org.eclipse.emf.ecp.view.context.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.context.test/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.context.test
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Fragment-Host: org.eclipse.emf.ecp.view.context;bundle-version="[1.5.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: Eclipse Modeling Project
@@ -12,9 +12,15 @@
  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.5.0,2.0.0)",
- org.hamcrest.library;bundle-version="[1.3.0,2.0.0)"
-Export-Package: org.eclipse.emf.ecp.view.context;version="1.5.1";x-int
+ org.hamcrest.library;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.6.0,2.0.0)",
+ org.mockito.mockito-all;bundle-version="1.9.5",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)"
+Export-Package: org.eclipse.emf.ecp.view.context;version="1.6.0";x-int
  ernal:=true,org.eclipse.emf.ecp.view.context.reporting.test;version="
- 1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.context.test.mockup;
- version="1.5.1";x-internal:=true
-Import-Package: org.eclipse.swt.widgets;version="0.0.0"
+ 1.6.0";x-internal:=true,org.eclipse.emf.ecp.view.context.test.mockup;
+ version="1.6.0";x-internal:=true
+Import-Package: org.eclipse.emfforms.spi.common.locale;version="1.6.0",
+ org.eclipse.swt.widgets;version="0.0.0"
diff --git a/tests/org.eclipse.emf.ecp.view.context.test/ViewModelContextTest.launch b/tests/org.eclipse.emf.ecp.view.context.test/ViewModelContextTest.launch
deleted file mode 100644
index 114d912..0000000
--- a/tests/org.eclipse.emf.ecp.view.context.test/ViewModelContextTest.launch
+++ /dev/null
@@ -1,43 +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.context.test/src/org/eclipse/emf/ecp/view/context/ViewModelContextTest.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.7"/>

-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.ecp.view.context.ViewModelContextTest"/>

-<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.context.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.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.apache.commons.codec@default:default,org.apache.commons.logging@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.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.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@-1:true,org.eclipse.swt.win32.win32.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.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.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@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.test@default:false,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.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.table.model.edit@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"/>

-<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.context.test/pom.xml b/tests/org.eclipse.emf.ecp.view.context.test/pom.xml
index 2e3486a..08c33b6 100644
--- a/tests/org.eclipse.emf.ecp.view.context.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.context.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.5.1-SNAPSHOT</version>
+		<version>1.6.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.test</artifactId>
-	<version>1.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -19,31 +19,22 @@
 		<plugins>
 			<plugin>
 				<groupId>org.eclipse.tycho</groupId>
-				<artifactId>tycho-surefire-plugin</artifactId>
-				<version>${tycho-version}</version>
+				<artifactId>target-platform-configuration</artifactId>
 				<configuration>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.viewmodel.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.emfstore.example.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-					</dependencies>
+					<dependency-resolution>
+						<extraRequirements>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.viewmodel.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.target.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
diff --git a/tests/org.eclipse.emf.ecp.view.context.test/src/org/eclipse/emf/ecp/view/context/reporting/test/AllTests.java b/tests/org.eclipse.emf.ecp.view.context.test/src/org/eclipse/emf/ecp/view/context/reporting/test/AllTests.java
new file mode 100644
index 0000000..8f8cf0a
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.context.test/src/org/eclipse/emf/ecp/view/context/reporting/test/AllTests.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.context.reporting.test;
+
+import org.eclipse.emf.ecp.view.context.ViewModelContext_PTest;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+@RunWith(Suite.class)
+@SuiteClasses({ ViewModelContext_PTest.class, RendererError_PTest.class })
+public class AllTests {
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.context.test/src/org/eclipse/emf/ecp/view/context/reporting/test/FailingRenderer.java b/tests/org.eclipse.emf.ecp.view.context.test/src/org/eclipse/emf/ecp/view/context/reporting/test/FailingRenderer.java
new file mode 100644
index 0000000..3a3f822
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.context.test/src/org/eclipse/emf/ecp/view/context/reporting/test/FailingRenderer.java
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Jonas - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.context.reporting.test;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emf.ecp.view.spi.model.VView;
+import org.eclipse.emf.ecp.view.spi.renderer.NoPropertyDescriptorFoundExeption;
+import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+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;
+
+/**
+ * @author Jonas
+ *
+ */
+public class FailingRenderer extends AbstractSWTRenderer<VElement> {
+
+	/**
+	 * @param vElement
+	 * @param viewContext
+	 * @param reportService
+	 */
+	public FailingRenderer(VView vElement, ViewModelContext viewContext, ReportService reportService) {
+		super(vElement, viewContext, reportService);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#getGridDescription(org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription)
+	 */
+	@Override
+	public SWTGridDescription getGridDescription(SWTGridDescription gridDescription) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#renderControl(org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell,
+	 *      org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	protected Control renderControl(SWTGridCell cell, Composite parent) throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	protected void postInit() {
+		throw new RuntimeException();
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.context.test/src/org/eclipse/emf/ecp/view/context/reporting/test/RendererError_PTest.java b/tests/org.eclipse.emf.ecp.view.context.test/src/org/eclipse/emf/ecp/view/context/reporting/test/RendererError_PTest.java
index f8a8d42..90a7142 100644
--- a/tests/org.eclipse.emf.ecp.view.context.test/src/org/eclipse/emf/ecp/view/context/reporting/test/RendererError_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.context.test/src/org/eclipse/emf/ecp/view/context/reporting/test/RendererError_PTest.java
@@ -20,20 +20,18 @@
 
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecp.ui.view.ECPRendererException;
+import org.eclipse.emf.ecp.view.context.reporting.test.TestSWTRendererFactory.TestEMFFormsRendererService;
 import org.eclipse.emf.ecp.view.context.test.mockup.MockViewSWTRenderer;
 import org.eclipse.emf.ecp.view.internal.core.swt.renderer.ViewSWTRenderer;
 import org.eclipse.emf.ecp.view.internal.provider.ViewProviderImpl;
 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.impl.Activator;
-import org.eclipse.emf.ecp.view.spi.model.reporting.ReportService;
 import org.eclipse.emf.ecp.view.spi.provider.IViewProvider;
 import org.eclipse.emf.ecp.view.spi.provider.ViewProviderHelper;
 import org.eclipse.emf.ecp.view.spi.provider.reporting.NoViewProviderFoundReport;
 import org.eclipse.emf.ecp.view.spi.provider.reporting.ViewModelIsNullReport;
-import org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer;
 import org.eclipse.emf.ecp.view.spi.swt.reporting.AmbiguousRendererPriorityReport;
 import org.eclipse.emf.ecp.view.spi.swt.reporting.InvalidGridDescriptionReport;
 import org.eclipse.emf.ecp.view.spi.swt.reporting.NoRendererFoundReport;
@@ -43,6 +41,7 @@
 import org.eclipse.emf.ecp.view.test.common.swt.spi.SWTViewTestHelper;
 import org.eclipse.emf.emfstore.bowling.BowlingFactory;
 import org.eclipse.emf.emfstore.bowling.League;
+import org.eclipse.emfforms.spi.common.report.ReportService;
 import org.eclipse.swt.widgets.Shell;
 import org.junit.After;
 import org.junit.Before;
@@ -88,67 +87,71 @@
 	}
 
 	@Test
+	@Ignore
+	// this test should not be here but on the emfformsrendererFactory
 	public void missingRenderer() throws ECPRendererException {
-		swtViewTestHelper.clearRenderers();
 		swtViewTestHelper.render(shell, viewContext);
 		assertThat(reportService.getReports(), hasSize(1));
 		assertThat(reportService.getReports().get(0), instanceOf(NoRendererFoundReport.class));
 	}
 
 	@Test
+	@Ignore
 	public void rendererInit() throws ECPRendererException {
-		final ViewSWTRenderer failingInitRenderer = new ViewSWTRenderer() {
-			@Override
-			protected void postInit() {
-				throw new RuntimeException();
-			}
-		};
 
-		swtViewTestHelper.registerRenderer(3, cast(failingInitRenderer.getClass()), VView.class);
+		final TestEMFFormsRendererService registerRenderer = swtViewTestHelper.registerRenderer(3, new FailingRenderer(
+			view, viewContext, reportService), VView.class);
 
 		swtViewTestHelper.render(shell, viewContext);
+		swtViewTestHelper.deleteRegisteredRenderer(registerRenderer);
 		assertThat(reportService.getReports(), hasSize(1));
 		assertThat(reportService.getReports().get(0), instanceOf(RendererInitFailedReport.class));
 	}
 
 	@Test
+	@Ignore
 	public void samePriorityRenderers() throws ECPRendererException {
 		// modifiableSWTViewTestHelper.clearRenderers();
 
-		final ViewSWTRenderer viewRenderer = new ViewSWTRenderer();
+		final ViewSWTRenderer viewRenderer = MockViewSWTRenderer.newRenderer();
 
-		swtViewTestHelper.registerRenderer(1, cast(viewRenderer.getClass()), VView.class);
+		final TestEMFFormsRendererService registerRenderer = swtViewTestHelper.registerRenderer(1, viewRenderer,
+			VView.class);
 
 		swtViewTestHelper.render(shell, viewContext);
+		swtViewTestHelper.deleteRegisteredRenderer(registerRenderer);
 		assertThat(reportService.getReports(), hasSize(1));
 		assertThat(reportService.getReports().get(0), instanceOf(AmbiguousRendererPriorityReport.class));
 	}
 
 	@Test
 	public void invalidGridDescription() throws ECPRendererException {
-		swtViewTestHelper.replaceViewRenderer(1, cast(
-			MockViewSWTRenderer.withInvalidGridDescription().getClass()), VView.class);
+		final TestEMFFormsRendererService registerRenderer = swtViewTestHelper.registerRenderer(5,
+			MockViewSWTRenderer.withInvalidGridDescription(), VView.class);
 		swtViewTestHelper.render(shell, viewContext);
+		swtViewTestHelper.deleteRegisteredRenderer(registerRenderer);
 		assertThat(reportService.getReports(), hasSize(1));
 		assertThat(reportService.getReports().get(0), instanceOf(InvalidGridDescriptionReport.class));
 	}
 
 	@Test
 	public void noRendererFound() throws ECPRendererException {
-		swtViewTestHelper.replaceViewRenderer(1, cast(
-			MockViewSWTRenderer.withoutPropertyDescriptor().getClass()), VView.class);
+		final TestEMFFormsRendererService registerRenderer = swtViewTestHelper.registerRenderer(5,
+			MockViewSWTRenderer.withoutPropertyDescriptor(), VView.class);
 
 		swtViewTestHelper.render(shell, viewContext);
+		swtViewTestHelper.deleteRegisteredRenderer(registerRenderer);
 		assertThat(reportService.getReports(), hasSize(1));
 		assertThat(reportService.getReports().get(0), instanceOf(RenderingFailedReport.class));
 	}
 
 	@Test
 	public void noPropertyDescriptorFound() throws ECPRendererException {
-		swtViewTestHelper.replaceViewRenderer(1, cast(
-			MockViewSWTRenderer.withoutPropertyDescriptor().getClass()), VView.class);
+		final TestEMFFormsRendererService registerRenderer = swtViewTestHelper.registerRenderer(5,
+			MockViewSWTRenderer.withoutPropertyDescriptor(), VView.class);
 
 		swtViewTestHelper.render(shell, viewContext);
+		swtViewTestHelper.deleteRegisteredRenderer(registerRenderer);
 		assertThat(reportService.getReports(), hasSize(1));
 		assertThat(reportService.getReports().get(0), instanceOf(RenderingFailedReport.class));
 	}
@@ -192,9 +195,4 @@
 		assertThat(reportService.getReports(), hasSize(1));
 		assertThat(reportService.getReports().get(0), instanceOf(NoViewProviderFoundReport.class));
 	}
-
-	@SuppressWarnings({ "unchecked" })
-	private Class<AbstractSWTRenderer<VElement>> cast(Class<?> clazz) {
-		return (Class<AbstractSWTRenderer<VElement>>) clazz;
-	}
 }
diff --git a/tests/org.eclipse.emf.ecp.view.context.test/src/org/eclipse/emf/ecp/view/context/reporting/test/TestSWTRendererFactory.java b/tests/org.eclipse.emf.ecp.view.context.test/src/org/eclipse/emf/ecp/view/context/reporting/test/TestSWTRendererFactory.java
index b697439..acd1be3 100644
--- a/tests/org.eclipse.emf.ecp.view.context.test/src/org/eclipse/emf/ecp/view/context/reporting/test/TestSWTRendererFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.context.test/src/org/eclipse/emf/ecp/view/context/reporting/test/TestSWTRendererFactory.java
@@ -11,20 +11,19 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.context.reporting.test;
 
-import java.util.LinkedHashSet;
-import java.util.Set;
-
 import org.eclipse.emf.ecp.ui.view.ECPRendererException;
 import org.eclipse.emf.ecp.ui.view.swt.ECPSWTView;
-import org.eclipse.emf.ecp.view.internal.swt.ECPRendererDescription;
 import org.eclipse.emf.ecp.view.internal.swt.ECPSWTViewRendererImpl;
-import org.eclipse.emf.ecp.view.model.common.ECPRendererTester;
-import org.eclipse.emf.ecp.view.model.common.ECPStaticRendererTester;
 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.swt.AbstractSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.swt.SWTRendererFactory;
+import org.eclipse.emfforms.internal.swt.core.EMFFormsRendererFactoryImpl;
+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.swt.widgets.Composite;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
 
 /**
  * SWT Test renderer factory that allows to register and unregister renderers.
@@ -34,10 +33,13 @@
  */
 public class TestSWTRendererFactory {
 
-	private final SWTTestRendererFactoryImpl factory;
+	private final EMFFormsRendererFactoryImpl factory;
 
 	public TestSWTRendererFactory() {
-		factory = new SWTTestRendererFactoryImpl();
+		final BundleContext bundleContext = FrameworkUtil.getBundle(getClass()).getBundleContext();
+		final ServiceReference<EMFFormsRendererFactory> serviceReference = bundleContext
+			.getServiceReference(EMFFormsRendererFactory.class);
+		factory = (EMFFormsRendererFactoryImpl) bundleContext.getService(serviceReference);
 	}
 
 	public void clearRenderers() {
@@ -46,31 +48,58 @@
 
 	public ECPSWTView render(Composite parent, ViewModelContext viewModelContext) throws ECPRendererException {
 		final ECPSWTViewRendererImpl renderer = new ECPSWTViewRendererImpl() {
-			@Override
-			protected SWTRendererFactory createFactory() {
-				return factory;
-			}
 		};
 		return renderer.render(parent, viewModelContext);
 	}
 
-	public void registerRenderer(int priority,
-		Class<AbstractSWTRenderer<VElement>> class1,
-		Class<? extends VElement> supportedEObject) {
-
-		final Set<ECPRendererTester> tester = new LinkedHashSet<ECPRendererTester>();
-		tester.add(new ECPStaticRendererTester(priority, supportedEObject));
-		final ECPRendererDescription descriptor = new ECPRendererDescription(class1, tester);
-		factory.registerRenderer(descriptor);
+	public TestEMFFormsRendererService registerRenderer(int priority, AbstractSWTRenderer renderer,
+		Class<?> supportedEClass) {
+		final TestEMFFormsRendererService rendererService = new TestEMFFormsRendererService(priority, renderer,
+			supportedEClass);
+		factory.addEMFFormsRendererService(rendererService);
+		return rendererService;
 	}
 
-	public void replaceViewRenderer(int priority, Class<AbstractSWTRenderer<VElement>> class1,
-		Class<? extends VElement> supportedEObject) {
-
-		final Set<ECPRendererTester> tester = new LinkedHashSet<ECPRendererTester>();
-		tester.add(new ECPStaticRendererTester(priority, supportedEObject));
-		final ECPRendererDescription descriptor = new ECPRendererDescription(class1, tester);
-		factory.replaceViewRenderer(descriptor);
+	public void deleteRegisteredRenderer(TestEMFFormsRendererService rendererService) {
+		factory.removeEMFFormsRendererService(rendererService);
 	}
 
+	public static class TestEMFFormsRendererService implements EMFFormsRendererService {
+
+		private final double priority;
+		private final AbstractSWTRenderer renderer;
+		private final Class<?> supportedEClass;
+
+		public TestEMFFormsRendererService(double priority, AbstractSWTRenderer renderer, Class<?> supportedEClass) {
+			this.priority = priority;
+			this.renderer = renderer;
+			this.supportedEClass = supportedEClass;
+		}
+
+		/**
+		 * {@inheritDoc}
+		 *
+		 * @see org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService#isApplicable(VElement,ViewModelContext)
+		 */
+		@Override
+		public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+			if (supportedEClass.isInstance(vElement)) {
+				return priority;
+			}
+			return NOT_APPLICABLE;
+		}
+
+		/**
+		 * {@inheritDoc}
+		 *
+		 * @see org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService#getRendererInstance(org.eclipse.emf.ecp.view.spi.model.VElement,
+		 *      org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
+		 */
+		@Override
+		public AbstractSWTRenderer getRendererInstance(VElement vElement, ViewModelContext viewModelContext) {
+
+			return renderer;
+		}
+
+	}
 }
diff --git a/tests/org.eclipse.emf.ecp.view.context.test/src/org/eclipse/emf/ecp/view/context/test/mockup/MockViewSWTRenderer.java b/tests/org.eclipse.emf.ecp.view.context.test/src/org/eclipse/emf/ecp/view/context/test/mockup/MockViewSWTRenderer.java
index 83d4d23..ac4fa02 100644
--- a/tests/org.eclipse.emf.ecp.view.context.test/src/org/eclipse/emf/ecp/view/context/test/mockup/MockViewSWTRenderer.java
+++ b/tests/org.eclipse.emf.ecp.view.context.test/src/org/eclipse/emf/ecp/view/context/test/mockup/MockViewSWTRenderer.java
@@ -11,23 +11,55 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.context.test.mockup;
 
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecp.view.internal.context.ViewModelContextImpl;
 import org.eclipse.emf.ecp.view.internal.core.swt.renderer.ViewSWTRenderer;
+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.emfforms.spi.common.locale.EMFFormsLocaleProvider;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
+import org.mockito.Mockito;
 
 public final class MockViewSWTRenderer {
 
-	private MockViewSWTRenderer() {
+	// private static ViewModelContext viewModelContext = mock(ViewModelContext.class);
+	// private static VView vElement = mock(VView.class);
+	// private static SWTRendererFactory rendererFactory = mock(SWTRendererFactory.class);
+
+	private static VView vElement = VViewFactory.eINSTANCE.createView();
+	private static ViewModelContext viewModelContext = new ViewModelContextImpl(vElement,
+		EcoreFactory.eINSTANCE.createEObject());
+	private static ReportService reportService = Mockito.mock(ReportService.class);
+
+	private static EMFFormsDatabinding emfFormsDatabinding = Mockito.mock(EMFFormsDatabinding.class);
+	private static EMFFormsRendererFactory emfFormsRendererFactory = Mockito.mock(EMFFormsRendererFactory.class);
+	private static EMFFormsLocaleProvider emfFormsLocaleProvider = Mockito.mock(EMFFormsLocaleProvider.class);
+
+	public MockViewSWTRenderer(VView vElement, ViewModelContext viewModelContext, ReportService rendererFactory) {
+
 	}
 
 	public static ViewSWTRenderer withInvalidGridDescription() {
-		return new ViewSWTRendererWithInvalidGridDescription();
+		return new ViewSWTRendererWithInvalidGridDescription(vElement, viewModelContext, reportService,
+			emfFormsLocaleProvider);
 	}
 
 	public static ViewSWTRenderer withoutPropertyDescriptor() {
-		return new ViewSWTRendererWithNoPropertyDescriptorFoundException();
+		return new ViewSWTRendererWithNoPropertyDescriptorFoundException(vElement, viewModelContext, reportService,
+			emfFormsLocaleProvider);
 	}
 
 	public static ViewSWTRenderer withoutRenderer() {
-		return new ViewSWTRendererWithNoRendererFoundException();
+		return new ViewSWTRendererWithNoRendererFoundException(vElement, viewModelContext, reportService,
+			emfFormsLocaleProvider);
+	}
+
+	public static ViewSWTRenderer newRenderer() {
+		return new ViewSWTRenderer(vElement, viewModelContext, reportService, emfFormsRendererFactory,
+			emfFormsDatabinding, emfFormsLocaleProvider);
 	}
 
 }
diff --git a/tests/org.eclipse.emf.ecp.view.context.test/src/org/eclipse/emf/ecp/view/context/test/mockup/ViewSWTRendererWithInvalidGridDescription.java b/tests/org.eclipse.emf.ecp.view.context.test/src/org/eclipse/emf/ecp/view/context/test/mockup/ViewSWTRendererWithInvalidGridDescription.java
index c428663..a84a97a 100644
--- a/tests/org.eclipse.emf.ecp.view.context.test/src/org/eclipse/emf/ecp/view/context/test/mockup/ViewSWTRendererWithInvalidGridDescription.java
+++ b/tests/org.eclipse.emf.ecp.view.context.test/src/org/eclipse/emf/ecp/view/context/test/mockup/ViewSWTRendererWithInvalidGridDescription.java
@@ -12,11 +12,26 @@
 package org.eclipse.emf.ecp.view.context.test.mockup;
 
 import org.eclipse.emf.ecp.view.internal.core.swt.renderer.ViewSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.swt.layout.GridDescriptionFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
+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.SWTRendererFactory;
+import org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleProvider;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.swt.core.layout.GridDescriptionFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription;
 
 public class ViewSWTRendererWithInvalidGridDescription extends ViewSWTRenderer {
 
+	/**
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param factory the {@link SWTRendererFactory}
+	 */
+	public ViewSWTRendererWithInvalidGridDescription(VView vElement, ViewModelContext viewContext,
+		ReportService factory, EMFFormsLocaleProvider localeProvider) {
+		super(vElement, viewContext, factory, null, null, localeProvider);
+	}
+
 	@Override
 	public SWTGridDescription getGridDescription(
 		SWTGridDescription gridDescription) {
diff --git a/tests/org.eclipse.emf.ecp.view.context.test/src/org/eclipse/emf/ecp/view/context/test/mockup/ViewSWTRendererWithNoPropertyDescriptorFoundException.java b/tests/org.eclipse.emf.ecp.view.context.test/src/org/eclipse/emf/ecp/view/context/test/mockup/ViewSWTRendererWithNoPropertyDescriptorFoundException.java
index 1e5671b..6f4f483 100644
--- a/tests/org.eclipse.emf.ecp.view.context.test/src/org/eclipse/emf/ecp/view/context/test/mockup/ViewSWTRendererWithNoPropertyDescriptorFoundException.java
+++ b/tests/org.eclipse.emf.ecp.view.context.test/src/org/eclipse/emf/ecp/view/context/test/mockup/ViewSWTRendererWithNoPropertyDescriptorFoundException.java
@@ -12,17 +12,28 @@
 package org.eclipse.emf.ecp.view.context.test.mockup;
 
 import org.eclipse.emf.ecp.view.internal.core.swt.renderer.ViewSWTRenderer;
+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.renderer.NoPropertyDescriptorFoundExeption;
 import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
+import org.eclipse.emf.ecp.view.spi.swt.SWTRendererFactory;
 import org.eclipse.emf.emfstore.bowling.BowlingPackage;
+import org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleProvider;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 
 public class ViewSWTRendererWithNoPropertyDescriptorFoundException extends ViewSWTRenderer {
 
-	public ViewSWTRendererWithNoPropertyDescriptorFoundException() {
-
+	/**
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param factory the {@link SWTRendererFactory}
+	 */
+	public ViewSWTRendererWithNoPropertyDescriptorFoundException(VView vElement, ViewModelContext viewContext,
+		ReportService factory, EMFFormsLocaleProvider localeProvider) {
+		super(vElement, viewContext, factory, null, null, localeProvider);
 	}
 
 	@Override
diff --git a/tests/org.eclipse.emf.ecp.view.context.test/src/org/eclipse/emf/ecp/view/context/test/mockup/ViewSWTRendererWithNoRendererFoundException.java b/tests/org.eclipse.emf.ecp.view.context.test/src/org/eclipse/emf/ecp/view/context/test/mockup/ViewSWTRendererWithNoRendererFoundException.java
index aa80970..b8aae70 100644
--- a/tests/org.eclipse.emf.ecp.view.context.test/src/org/eclipse/emf/ecp/view/context/test/mockup/ViewSWTRendererWithNoRendererFoundException.java
+++ b/tests/org.eclipse.emf.ecp.view.context.test/src/org/eclipse/emf/ecp/view/context/test/mockup/ViewSWTRendererWithNoRendererFoundException.java
@@ -12,16 +12,26 @@
 package org.eclipse.emf.ecp.view.context.test.mockup;
 
 import org.eclipse.emf.ecp.view.internal.core.swt.renderer.ViewSWTRenderer;
+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.renderer.NoPropertyDescriptorFoundExeption;
 import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
+import org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleProvider;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 
 public class ViewSWTRendererWithNoRendererFoundException extends ViewSWTRenderer {
 
-	public ViewSWTRendererWithNoRendererFoundException() {
-
+	/**
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 */
+	public ViewSWTRendererWithNoRendererFoundException(VView vElement, ViewModelContext viewContext,
+		ReportService reportService, EMFFormsLocaleProvider localeProvider) {
+		super(vElement, viewContext, reportService, null, null, localeProvider);
 	}
 
 	@Override
diff --git a/tests/org.eclipse.emf.ecp.view.control.multireference.tests/.checkstyle b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/.checkstyle
new file mode 100644
index 0000000..32e02a4
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/.checkstyle
@@ -0,0 +1,13 @@
+<?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="c" location="esmCheckstyleTest.xml" type="project" description="">
+    <additional-data name="protect-config-file" value="false"/>
+  </local-check-config>
+  <local-check-config name="ESMCheckstyleTest" location="/org.eclipse.emf.ecp.releng/checkstyle/esmCheckstyleTest.xml" type="project" description="">
+    <additional-data name="protect-config-file" value="false"/>
+  </local-check-config>
+  <fileset name="Java Files" enabled="true" check-config-name="ESMCheckstyleTest" local="true">
+    <file-match-pattern match-pattern=".java" include-pattern="true"/>
+  </fileset>
+</fileset-config>
diff --git a/tests/org.eclipse.emf.ecp.view.control.multireference.tests/.classpath b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/.classpath
new file mode 100644
index 0000000..8a8f166
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/.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/tests/org.eclipse.emf.ecp.view.control.multireference.tests/.project b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/.project
new file mode 100644
index 0000000..449e591
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>org.eclipse.emf.ecp.view.control.multireference.tests</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.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
copy to tests/org.eclipse.emf.ecp.view.control.multireference.tests/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to tests/org.eclipse.emf.ecp.view.control.multireference.tests/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.core.prefs
copy to tests/org.eclipse.emf.ecp.view.control.multireference.tests/.settings/org.eclipse.jdt.core.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
copy to tests/org.eclipse.emf.ecp.view.control.multireference.tests/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs
copy to tests/org.eclipse.emf.ecp.view.control.multireference.tests/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to tests/org.eclipse.emf.ecp.view.control.multireference.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
copy to tests/org.eclipse.emf.ecp.view.control.multireference.tests/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
copy to tests/org.eclipse.emf.ecp.view.control.multireference.tests/.settings/org.eclipse.pde.prefs
diff --git a/tests/org.eclipse.emf.ecp.view.control.multireference.tests/AllPluginTests for view.control.multireference.launch b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/AllPluginTests for view.control.multireference.launch
new file mode 100644
index 0000000..066db74
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/AllPluginTests for view.control.multireference.launch
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

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

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

+<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.control.multireference.tests/src/org/eclipse/emf/ecp/view/control/multireference/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.emf.ecp.view.control.multireference.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.emf.ecp.view.control.multireference.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="true"/>

+<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.apache.commons.codec@default:default,org.apache.commons.logging@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.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.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@-1:true,org.eclipse.swt.win32.win32.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-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.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@default:default,org.eclipse.emf.ecp.ui.view.test@default:default,org.eclipse.emf.ecp.ui.view@default:default,org.eclipse.emf.ecp.ui@default:default,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.control.multireference.tests@default:false,org.eclipse.emf.ecp.view.control.multireference@default:default,org.eclipse.emf.ecp.view.core.swt@default:default,org.eclipse.emf.ecp.view.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.template.model@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.emf.emfforms.core.services.emfspecificservice@default:default,org.eclipse.emf.emfforms.localization@default:default,org.eclipse.emfforms.core.services.databinding.testmodel@default:default,org.eclipse.emfforms.core.services.databinding@default:default,org.eclipse.emfforms.core.services.editsupport@default:default,org.eclipse.emfforms.core.services.emf@default:default,org.eclipse.emfforms.core.services@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>

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
new file mode 100644
index 0000000..4ee7f97
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,20 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Multi Reference Control Tests
+Bundle-SymbolicName: org.eclipse.emf.ecp.view.control.multireference.tests
+Bundle-Version: 1.6.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Fragment-Host: org.eclipse.emf.ecp.view.control.multireference;bundle-version="[1.5.0,2.0.0)"
+Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
+ org.mockito.mockito-all;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.6.0,2.0.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.6.0,2.0.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)"
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.emf.ecp.view.control.multireference.tests;
+ version="1.6.0";x-internal:=true,org.eclipse.emf.ecp.view.internal.co
+ ntrol.multireference;version="1.6.0";x-internal:=true
diff --git a/tests/org.eclipse.emf.ecp.view.control.multireference.tests/build.properties b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/build.properties
new file mode 100644
index 0000000..41eb6ad
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/build.properties
@@ -0,0 +1,4 @@
+source.. = src/

+output.. = bin/

+bin.includes = META-INF/,\

+               .

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
new file mode 100644
index 0000000..9353a49
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/pom.xml
@@ -0,0 +1,71 @@
+<?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.6.0-SNAPSHOT</version>
+		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
+	</parent>
+	<artifactId>org.eclipse.emf.ecp.view.control.multireference.tests</artifactId>
+	<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.target.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.template.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.viewmodel.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.emfforms.runtime.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>p2-installable-unit</type>
+								<id>org.eclipse.equinox.ds</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+	<groupId>org.eclipse.emf.ecp</groupId>
+	<version>1.6.0-SNAPSHOT</version>
+</project>
diff --git a/tests/org.eclipse.emf.ecp.view.control.multireference.tests/src/org/eclipse/emf/ecp/view/control/multireference/tests/AllPluginTests.java b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/src/org/eclipse/emf/ecp/view/control/multireference/tests/AllPluginTests.java
new file mode 100644
index 0000000..d1d1319
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/src/org/eclipse/emf/ecp/view/control/multireference/tests/AllPluginTests.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.control.multireference.tests;
+
+import org.eclipse.emf.ecp.view.internal.control.multireference.MultiReferenceRenderer_PTest;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+/**
+ * JUnit test suite for all plugin tests for view.control.multireference.
+ *
+ * @author Lucas Koehler
+ *
+ */
+@RunWith(Suite.class)
+@SuiteClasses({ MultiReferenceRenderer_PTest.class })
+public class AllPluginTests {
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.control.multireference.tests/src/org/eclipse/emf/ecp/view/internal/control/multireference/MultiReferenceRenderer_PTest.java b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/src/org/eclipse/emf/ecp/view/internal/control/multireference/MultiReferenceRenderer_PTest.java
new file mode 100644
index 0000000..04a52e2
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/src/org/eclipse/emf/ecp/view/internal/control/multireference/MultiReferenceRenderer_PTest.java
@@ -0,0 +1,287 @@
+/*******************************************************************************

+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.

+ *

+ * All rights reserved. This program and the accompanying materials

+ * are made available under the terms of the Eclipse Public License v1.0

+ * which accompanies this distribution, and is available at

+ * http://www.eclipse.org/legal/epl-v10.html

+ *

+ * Contributors:

+ * Lucas Koehler - initial API and implementation

+ ******************************************************************************/

+package org.eclipse.emf.ecp.view.internal.control.multireference;

+

+import static org.junit.Assert.assertEquals;

+import static org.mockito.Matchers.any;

+import static org.mockito.Mockito.mock;

+import static org.mockito.Mockito.when;

+

+import java.util.LinkedList;

+import java.util.List;

+

+import org.eclipse.core.databinding.observable.IObserving;

+import org.eclipse.core.databinding.observable.Observables;

+import org.eclipse.core.databinding.observable.Realm;

+import org.eclipse.core.databinding.observable.list.IObservableList;

+import org.eclipse.core.databinding.observable.list.WritableList;

+import org.eclipse.core.databinding.observable.value.IObservableValue;

+import org.eclipse.emf.common.util.BasicEList;

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.ecore.EStructuralFeature;

+import org.eclipse.emf.ecore.EStructuralFeature.Setting;

+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;

+import org.eclipse.emf.ecp.view.spi.model.DomainModelReferenceChangeListener;

+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.spi.util.swt.ImageRegistryService;

+import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;

+import org.eclipse.emf.ecp.view.test.common.swt.spi.DatabindingClassRunner;

+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.D;

+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestFactory;

+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage;

+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.label.EMFFormsLabelProvider;

+import org.eclipse.emfforms.spi.core.services.label.NoLabelFoundException;

+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;

+import org.eclipse.swt.widgets.Composite;

+import org.eclipse.swt.widgets.Shell;

+import org.eclipse.swt.widgets.Table;

+import org.eclipse.swt.widgets.TableColumn;

+import org.junit.After;

+import org.junit.Before;

+import org.junit.BeforeClass;

+import org.junit.Test;

+import org.junit.runner.RunWith;

+import org.mockito.Mockito;

+

+/**

+ * JUnit plugin tests for {@link MultiReferenceSWTRenderer}.

+ *

+ * @author Lucas Koehler

+ *

+ */

+@RunWith(DatabindingClassRunner.class)

+public class MultiReferenceRenderer_PTest {

+	private static final String TEST_DESCRIPTION = "test-description"; //$NON-NLS-1$

+	private static final String TEST_DISPLAYNAME = "test-displayName"; //$NON-NLS-1$

+	private static Realm realm;

+	private EMFFormsDatabinding databindingService;

+	private MultiReferenceSWTRenderer renderer;

+	private Shell shell;

+	private EMFFormsLabelProvider labelProvider;

+

+	/**

+	 * Get {@link Realm} for the tests.

+	 */

+	@BeforeClass

+	public static void setUpBeforeClass() {

+		realm = Realm.getDefault();

+

+	}

+

+	/**

+	 * Set up executed before every test.

+	 * Mocks and registers the databinding and label services.

+	 * Creates a new {@link MultiReferenceSWTRenderer} to be tested. Mocks needed parameters and contents (e.g.

+	 * VControl, ViewModelContext).

+	 *

+	 * @throws DatabindingFailedException if the databinding failed

+	 * @throws NoLabelFoundException

+	 */

+	@Before

+	public void setUp() throws DatabindingFailedException, NoLabelFoundException {

+		databindingService = mock(EMFFormsDatabinding.class);

+		labelProvider = mock(EMFFormsLabelProvider.class);

+		when(labelProvider.getDescription(any(VDomainModelReference.class), any(EObject.class))).thenReturn(

+			Observables.constantObservableValue(TEST_DESCRIPTION));

+		when(labelProvider.getDisplayName(any(VDomainModelReference.class), any(EObject.class))).thenReturn(

+			Observables.constantObservableValue(TEST_DISPLAYNAME));

+

+		shell = new Shell();

+

+		final D eObject = TestFactory.eINSTANCE.createD();

+		final EStructuralFeature eStructuralFeature = TestPackage.eINSTANCE.getD_YList();

+

+		final ReportService reportService = mock(ReportService.class);

+		final ViewModelContext viewContext = mock(ViewModelContext.class);

+		final VControl vControl = Mockito.mock(VControl.class);

+		final Setting setting = mock(Setting.class);

+		final VDomainModelReference domainModelReference = mock(VDomainModelReference.class);

+

+		when(viewContext.getDomainModel()).thenReturn(eObject);

+		when(viewContext.getViewModel()).thenReturn(vControl);

+

+		when(vControl.getDomainModelReference()).thenReturn(domainModelReference);

+

+		when(setting.getEObject()).thenReturn(eObject);

+		when(setting.getEStructuralFeature()).thenReturn(eStructuralFeature);

+

+		final BasicEList<DomainModelReferenceChangeListener> changeListener = new BasicEList<DomainModelReferenceChangeListener>();

+		when(domainModelReference.getChangeListener()).thenReturn(changeListener);

+

+		final ImageRegistryService imageRegistryService = mock(ImageRegistryService.class);

+		final VTViewTemplateProvider templateProvider = mock(VTViewTemplateProvider.class);

+

+		renderer = new MultiReferenceSWTRenderer(vControl, viewContext, reportService, databindingService,

+			labelProvider, templateProvider, imageRegistryService);

+		renderer.init();

+	}

+

+	/**

+	 * Unregister databinding and label service after every test.

+	 */

+	@After

+	public void tearDown() {

+	}

+

+	/**

+	 * Test if the initial data binding is working.

+	 *

+	 * @throws NoRendererFoundException Renderer could not be found

+	 * @throws NoPropertyDescriptorFoundExeption Property descriptor could not be found

+	 * @throws DatabindingFailedException if the databinding failed

+	 */

+	@Test

+	public void testDatabindingServiceUsageInitialBinding() throws NoRendererFoundException,

+		NoPropertyDescriptorFoundExeption, DatabindingFailedException {

+		final List<Integer> initialList = new LinkedList<Integer>();

+		initialList.add(2);

+		initialList.add(4);

+		final WritableList mockedObservableList = new WritableList(realm, initialList, Integer.class);

+

+		final Table table = setUpDatabindingTests(mockedObservableList);

+

+		assertEquals(mockedObservableList.size(), table.getItemCount());

+		for (int i = 0; i < mockedObservableList.size(); i++) {

+			assertEquals(mockedObservableList.get(i).toString(), table.getItems()[i].getText(0));

+		}

+	}

+

+	/**

+	 * Tests whether adding values to the model is reflected in the control.

+	 *

+	 * @throws NoRendererFoundException Renderer could not be found

+	 * @throws NoPropertyDescriptorFoundExeption Property descriptor could not be found

+	 * @throws DatabindingFailedException if the databinding failed

+	 */

+	@Test

+	public void testDatabindingServiceUsageAddToModel() throws NoRendererFoundException,

+		NoPropertyDescriptorFoundExeption, DatabindingFailedException {

+		final List<Integer> initialList = new LinkedList<Integer>();

+		initialList.add(2);

+		initialList.add(4);

+		final WritableList mockedObservableList = new WritableList(realm, initialList, Integer.class);

+

+		final Table table = setUpDatabindingTests(mockedObservableList);

+

+		mockedObservableList.add(new Integer(6));

+

+		assertEquals(mockedObservableList.size(), table.getItemCount());

+		for (int i = 0; i < mockedObservableList.size(); i++) {

+			assertEquals(mockedObservableList.get(i).toString(), table.getItems()[i].getText(0));

+		}

+	}

+

+	/**

+	 * Tests whether removing values to the model is reflected in the control.

+	 *

+	 * @throws NoRendererFoundException Renderer could not be found

+	 * @throws NoPropertyDescriptorFoundExeption Property descriptor could not be found

+	 * @throws DatabindingFailedException if the databinding failed

+	 */

+	@Test

+	public void testDatabindingServiceUsageRemoveFromModel() throws NoRendererFoundException,

+		NoPropertyDescriptorFoundExeption, DatabindingFailedException {

+		final List<Integer> initialList = new LinkedList<Integer>();

+		initialList.add(2);

+		initialList.add(4);

+		final WritableList mockedObservableList = new WritableList(realm, initialList, Integer.class);

+

+		final Table table = setUpDatabindingTests(mockedObservableList);

+

+		mockedObservableList.remove(0);

+

+		assertEquals(mockedObservableList.size(), table.getItemCount());

+		for (int i = 0; i < mockedObservableList.size(); i++) {

+			assertEquals(mockedObservableList.get(i).toString(), table.getItems()[i].getText(0));

+		}

+	}

+

+	/**

+	 * Tests whether changing values of the model is reflected in the control.

+	 *

+	 * @throws NoRendererFoundException Renderer could not be found

+	 * @throws NoPropertyDescriptorFoundExeption Property descriptor could not be found

+	 * @throws DatabindingFailedException if the databinding failed

+	 */

+	@Test

+	public void testDatabindingServiceUsageChangeModel() throws NoRendererFoundException,

+		NoPropertyDescriptorFoundExeption, DatabindingFailedException {

+		final List<Integer> initialList = new LinkedList<Integer>();

+		initialList.add(2);

+		initialList.add(4);

+		final WritableList mockedObservableList = new WritableList(realm, initialList, Integer.class);

+

+		final Table table = setUpDatabindingTests(mockedObservableList);

+

+		mockedObservableList.set(1, 7);

+

+		assertEquals(mockedObservableList.size(), table.getItemCount());

+		for (int i = 0; i < mockedObservableList.size(); i++) {

+			assertEquals(mockedObservableList.get(i).toString(), table.getItems()[i].getText(0));

+		}

+	}

+

+	private Table setUpDatabindingTests(IObservableList mockedObservableList) throws NoRendererFoundException,

+		NoPropertyDescriptorFoundExeption, DatabindingFailedException {

+		when(databindingService.getObservableList(any(VDomainModelReference.class), any(EObject.class))).thenReturn(

+			mockedObservableList);

+		final TestObservableValue observableValue = mock(TestObservableValue.class);

+		when(databindingService.getObservableValue(any(VDomainModelReference.class), any(EObject.class))).thenReturn(

+			observableValue);

+		when(observableValue.getObserved()).thenReturn(mock(EObject.class));

+		final Composite composite = (Composite) renderer.render(new SWTGridCell(0, 0, renderer), shell);

+		final Composite controlComposite = (Composite) composite.getChildren()[1];

+		final Table table = (Table) controlComposite.getChildren()[0];

+

+		return table;

+	}

+

+	/**

+	 * Tests whether a {@link EMFFormsLabelProvider} is used to get labels.

+	 *

+	 * @throws NoRendererFoundException Renderer could not be found

+	 * @throws NoPropertyDescriptorFoundExeption Property descriptor could not be found

+	 * @throws DatabindingFailedException if the databinding failed

+	 */

+	@Test

+	public void testLabelServiceUsage() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,

+		DatabindingFailedException {

+

+		final TestObservableValue observableValue = mock(TestObservableValue.class);

+		when(databindingService.getObservableValue(any(VDomainModelReference.class), any(EObject.class))).thenReturn(

+			observableValue);

+		when(observableValue.getObserved()).thenReturn(mock(EObject.class));

+

+		final Composite composite = (Composite) renderer.render(new SWTGridCell(0, 0, renderer), shell);

+		final Composite controlComposite = (Composite) composite.getChildren()[1];

+		final Table table = (Table) controlComposite.getChildren()[0];

+

+		final TableColumn column = table.getColumn(0);

+		assertEquals(TEST_DISPLAYNAME, column.getText());

+		assertEquals(TEST_DESCRIPTION, column.getToolTipText());

+	}

+

+	/**

+	 * Helper Interface for mocking.

+	 *

+	 * @author Eugen Neufeld

+	 *

+	 */

+	public interface TestObservableValue extends IObservableValue, IObserving {

+	}

+}

diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/.gitignore b/tests/org.eclipse.emf.ecp.view.core.swt.tests/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/.gitignore
@@ -0,0 +1 @@
+/bin/
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
new file mode 100644
index 0000000..65395f1
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/AllPluginTests core.swt.launch
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

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

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

+<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.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/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.7"/>

+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.ecp.view.core.swt.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.emf.ecp.view.core.swt.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="true"/>

+<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.apache.commons.codec@default:default,org.apache.commons.logging@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.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.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.win32.win32.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-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.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.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.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.core.services.databinding.featurepath@default:default,org.eclipse.emfforms.core.services.databinding@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.locale.default@default:default,org.eclipse.emfforms.core.services@default:default,org.eclipse.emfforms.localization@default:default,org.eclipse.emfforms.swt.core@default:default,org.eclipse.emfforms.view.model.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>

diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/AllTests ecp.view.core.swt.launch b/tests/org.eclipse.emf.ecp.view.core.swt.tests/AllTests ecp.view.core.swt.launch
new file mode 100644
index 0000000..c6de550
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/AllTests ecp.view.core.swt.launch
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/tests/AllTests.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.ecp.view.core.swt.tests.AllTests"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.ecp.view.core.swt.tests"/>
+</launchConfiguration>
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 ac2bf5c..55fda1d 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,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.core.swt.tests;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Fragment-Host: org.eclipse.emf.ecp.view.core.swt;bundle-version="1.4.0"
+Fragment-Host: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.6.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.view.core.swt.test.model;version="
- 1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.core.swt.test.model.
- impl;version="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.core.s
- wt.test.model.util;version="1.5.1";x-internal:=true,org.eclipse.emf.e
- cp.view.core.swt.tests;version="1.5.1";x-internal:=true,org.eclipse.e
- mf.ecp.view.internal.core.swt.renderer;version="1.5.1";x-internal:=tr
- ue,org.eclipse.emf.ecp.view.spi.core.swt.renderer;version="1.5.1"
+ 1.6.0";x-internal:=true,org.eclipse.emf.ecp.view.core.swt.test.model.
+ impl;version="1.6.0";x-internal:=true,org.eclipse.emf.ecp.view.core.s
+ wt.test.model.util;version="1.6.0";x-internal:=true,org.eclipse.emf.e
+ cp.view.core.swt.tests;version="1.6.0";x-internal:=true,org.eclipse.e
+ mf.ecp.view.internal.core.swt.renderer;version="1.6.0";x-internal:=tr
+ ue,org.eclipse.emf.ecp.view.spi.core.swt.renderer;version="1.6.0"
 Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
  org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)",
@@ -22,5 +22,10 @@
  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
  org.eclipse.emf.emfstore.examplemodel.edit;bundle-version="[1.3.0,2.0.0)",
- org.mockito.mockito-all;bundle-version="[1.9.5,2.0.0)"
+ org.mockito.mockito-all;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.5.0,2.0.0)",
+ org.eclipse.emf.ecp.view.swt.layout;bundle-version="[1.5.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
+Import-Package: com.ibm.icu.text;version="52.1.1",
+ org.eclipse.swt.widgets;version="0.0.0"
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/build.properties b/tests/org.eclipse.emf.ecp.view.core.swt.tests/build.properties
index 37e8828..337661f 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/build.properties
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/build.properties
@@ -1,8 +1,20 @@
-#
+# /*******************************************************************************
+#  * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+#  *
+#  * All rights reserved. This program and the accompanying materials
+#  * are made available under the terms of the Eclipse Public License v1.0
+#  * which accompanies this distribution, and is available at
+#  * http://www.eclipse.org/legal/epl-v10.html
+#  *
+#  * Contributors:
+#  * Eugen Neufeld - initial API and implementation
+#  * Lucas Koehler - extension for EnumComboViewerRenderer_PTest
+#  ******************************************************************************/
 
 bin.includes = .,\
                model/,\
                META-INF/,\
+               plugin.xml,\
                plugin.properties
 jars.compile.order = .
 source.. = src/
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 b8d064d..70ed261 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
@@ -4,6 +4,12 @@
   <eClassifiers xsi:type="ecore:EClass" name="SimpleTestObject">
     <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"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="TestEnum" instanceTypeName="TestEnum">
+    <eLiterals name="a"/>
+    <eLiterals name="b" value="1"/>
+    <eLiterals name="c" value="2"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EDataType" name="XMLDate" instanceClassName="javax.xml.datatype.XMLGregorianCalendar"/>
 </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 a26e51a..209c6bd 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
@@ -1,7 +1,8 @@
 <?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" modelDirectory="/org.eclipse.emf.ecp.view.core.swt.tests/src" modelPluginID="org.eclipse.emf.ecp.view.core.swt.tests"
-    modelName="Test" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (c) 2011-2015 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;Eugen Neufeld - initial API and implementation&#xD;&#xA;Lucas Koehler - extension for EnumComboViewerRenderer_PTest"
+    modelDirectory="/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"
     importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0" copyrightFields="false"
     operationReflection="true" importOrganizing="true">
   <foreignModel>test.ecore</foreignModel>
@@ -9,10 +10,15 @@
       interfacePackageSuffix="model" metaDataPackageSuffix="model" classPackageSuffix="model.impl"
       utilityPackageSuffix="model.util" providerPackageSuffix="model.provider" presentationPackageSuffix="model.presentation"
       testsPackageSuffix="model.tests" ecorePackage="test.ecore#/">
+    <genEnums typeSafeEnumCompatible="false" ecoreEnum="test.ecore#//Enum">
+      <genEnumLiterals ecoreEnumLiteral="test.ecore#//Enum/a"/>
+      <genEnumLiterals ecoreEnumLiteral="test.ecore#//Enum/b"/>
+    </genEnums>
     <genDataTypes ecoreDataType="test.ecore#//XMLDate"/>
     <genClasses ecoreClass="test.ecore#//SimpleTestObject">
       <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/enum"/>
     </genClasses>
   </genPackages>
 </genmodel:GenModel>
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/plugin.xml b/tests/org.eclipse.emf.ecp.view.core.swt.tests/plugin.xml
new file mode 100644
index 0000000..ddab2ae
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/plugin.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ /*******************************************************************************
+  * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+  *
+  * All rights reserved. This program and the accompanying materials
+  * are made available under the terms of the Eclipse Public License v1.0
+  * which accompanies this distribution, and is available at
+  * http://www.eclipse.org/legal/epl-v10.html
+  *
+  * Contributors:
+  * Eugen Neufeld - initial API and implementation
+  * Lucas Koehler - extension for EnumComboViewerRenderer_PTest
+  ******************************************************************************/
+-->
+
+<plugin>
+
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <!-- @generated test -->
+      <package
+            uri="http://eclipse.org/emf/ecp/core/test"
+            class="org.eclipse.emf.ecp.view.core.swt.test.model.TestPackage"
+            genModel="model/test.genmodel"/>
+   </extension>
+
+</plugin>
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 b6f5f14..957c834 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.5.1-SNAPSHOT</version>
+		<version>1.6.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<artifactId>org.eclipse.emf.ecp.view.core.swt.tests</artifactId>
@@ -22,41 +22,45 @@
 				<configuration>
 		          	<useUIHarness>true</useUIHarness>
 		          	<useUIThread>true</useUIThread>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.template.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.viewmodel.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.emfforms.runtime.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>p2-installable-unit</type>
-							<artifactId>org.eclipse.equinox.ds</artifactId>
-						</dependency>
-					</dependencies>
+				</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.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>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
 	</build>
 	<groupId>org.eclipse.emf.ecp</groupId>
-	<version>1.5.1-SNAPSHOT</version>
+	<version>1.6.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/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 46999a6..287e3f9 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
@@ -1,4 +1,14 @@
 /**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ * Lucas Koehler - extension for EnumComboViewerRenderer_PTest
  */
 package org.eclipse.emf.ecp.view.core.swt.test.model;
 
@@ -18,6 +28,7 @@
  * <ul>
  * <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>
  * </ul>
  * </p>
  *
@@ -33,7 +44,7 @@
 	 * If the meaning of the '<em>Date</em>' attribute isn't clear, there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @return the value of the '<em>Date</em>' attribute.
 	 * @see #setDate(Date)
 	 * @see org.eclipse.emf.ecp.view.core.swt.test.model.TestPackage#getSimpleTestObject_Date()
@@ -47,7 +58,7 @@
 	 * <em>Date</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @param value the new value of the '<em>Date</em>' attribute.
 	 * @see #getDate()
 	 * @generated
@@ -62,7 +73,7 @@
 	 * here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @return the value of the '<em>Xml Date</em>' attribute.
 	 * @see #setXmlDate(XMLGregorianCalendar)
 	 * @see org.eclipse.emf.ecp.view.core.swt.test.model.TestPackage#getSimpleTestObject_XmlDate()
@@ -76,11 +87,43 @@
 	 * <em>Xml Date</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @param value the new value of the '<em>Xml Date</em>' attribute.
 	 * @see #getXmlDate()
 	 * @generated
 	 */
 	void setXmlDate(XMLGregorianCalendar value);
 
+	/**
+	 * 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 -->
+	 * <p>
+	 * If the meaning of the '<em>My Enum</em>' attribute isn't clear, there really should be more of a description
+	 * here...
+	 * </p>
+	 * <!-- 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#getSimpleTestObject_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.SimpleTestObject#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);
+
 } // SimpleTestObject
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/TestEnum.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/TestEnum.java
new file mode 100644
index 0000000..7d86c9c
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/test/model/TestEnum.java
@@ -0,0 +1,271 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ * Lucas Koehler - extension for EnumComboViewerRenderer_PTest
+ */
+package org.eclipse.emf.ecp.view.core.swt.test.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * 
+ * @see org.eclipse.emf.ecp.view.core.swt.test.model.TestPackage#getTestEnum()
+ * @model instanceClass="org.eclipse.emf.ecp.view.core.swt.test.model.TestEnum"
+ * @generated
+ */
+public enum TestEnum implements Enumerator {
+	/**
+	 * The '<em><b>A</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @see #A_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	A(0, "a", "a"), //$NON-NLS-1$ //$NON-NLS-2$
+
+	/**
+	 * The '<em><b>B</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @see #B_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	B(1, "b", "b"), //$NON-NLS-1$ //$NON-NLS-2$
+
+	/**
+	 * The '<em><b>C</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @see #C_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	C(2, "c", "c"); //$NON-NLS-1$ //$NON-NLS-2$
+
+	/**
+	 * The '<em><b>A</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>A</b></em>' literal object isn't clear, there really should be more of a description
+	 * here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @see #A
+	 * @model name="a"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int A_VALUE = 0;
+
+	/**
+	 * The '<em><b>B</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>B</b></em>' literal object isn't clear, there really should be more of a description
+	 * here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @see #B
+	 * @model name="b"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int B_VALUE = 1;
+
+	/**
+	 * The '<em><b>C</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>C</b></em>' literal object isn't clear, there really should be more of a description
+	 * here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @see #C
+	 * @model name="c"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int C_VALUE = 2;
+
+	/**
+	 * An array of all the '<em><b>Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private static final TestEnum[] VALUES_ARRAY =
+		new TestEnum[] {
+			A,
+			B,
+			C,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public static final List<TestEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public static TestEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			final TestEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public static TestEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			final TestEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public static TestEnum get(int value) {
+		switch (value) {
+		case A_VALUE:
+			return A;
+		case B_VALUE:
+			return B;
+		case C_VALUE:
+			return C;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private TestEnum(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public int getValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public String getLiteral() {
+		return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+
+} // TestEnum
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 8f1c3f4..e24bb48 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
@@ -1,4 +1,14 @@
 /**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ * Lucas Koehler - extension for EnumComboViewerRenderer_PTest
  */
 package org.eclipse.emf.ecp.view.core.swt.test.model;
 
@@ -9,7 +19,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.emf.ecp.view.core.swt.test.model.TestPackage
  * @generated
  */
@@ -18,7 +28,7 @@
 	 * The singleton instance of the factory.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	TestFactory eINSTANCE = org.eclipse.emf.ecp.view.core.swt.test.model.impl.TestFactoryImpl.init();
@@ -27,7 +37,7 @@
 	 * Returns a new object of class '<em>Simple Test Object</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @return a new object of class '<em>Simple Test Object</em>'.
 	 * @generated
 	 */
@@ -37,7 +47,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/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 785e692..b9521f7 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
@@ -1,10 +1,21 @@
 /**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ * Lucas Koehler - extension for EnumComboViewerRenderer_PTest
  */
 package org.eclipse.emf.ecp.view.core.swt.test.model;
 
 import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
 import org.eclipse.emf.ecore.EPackage;
 
 /**
@@ -19,7 +30,7 @@
  * <li>and each data type</li>
  * </ul>
  * <!-- end-user-doc -->
- *
+ * 
  * @see org.eclipse.emf.ecp.view.core.swt.test.model.TestFactory
  * @model kind="package"
  * @generated
@@ -29,34 +40,34 @@
 	 * The package name.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
-	String eNAME = "test";
+	String eNAME = "test"; //$NON-NLS-1$
 
 	/**
 	 * The package namespace URI.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
-	String eNS_URI = "http://eclipse.org/emf/ecp/core/test";
+	String eNS_URI = "http://eclipse.org/emf/ecp/core/test"; //$NON-NLS-1$
 
 	/**
 	 * The package namespace name.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
-	String eNS_PREFIX = "org.eclipse.emf.ecp.core.test";
+	String eNS_PREFIX = "org.eclipse.emf.ecp.core.test"; //$NON-NLS-1$
 
 	/**
 	 * The singleton instance of the package.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	TestPackage eINSTANCE = org.eclipse.emf.ecp.view.core.swt.test.model.impl.TestPackageImpl.init();
@@ -66,7 +77,7 @@
 	 * <em>Simple Test Object</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @see org.eclipse.emf.ecp.view.core.swt.test.model.impl.SimpleTestObjectImpl
 	 * @see org.eclipse.emf.ecp.view.core.swt.test.model.impl.TestPackageImpl#getSimpleTestObject()
 	 * @generated
@@ -77,7 +88,7 @@
 	 * The feature id for the '<em><b>Date</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 * @ordered
 	 */
@@ -87,49 +98,70 @@
 	 * The feature id for the '<em><b>Xml Date</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 * @ordered
 	 */
 	int SIMPLE_TEST_OBJECT__XML_DATE = 1;
 
 	/**
-	 * The number of structural features of the '<em>Simple Test Object</em>' class.
+	 * The feature id for the '<em><b>My Enum</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 * @ordered
 	 */
-	int SIMPLE_TEST_OBJECT_FEATURE_COUNT = 2;
+	int SIMPLE_TEST_OBJECT__MY_ENUM = 2;
+
+	/**
+	 * The number of structural features of the '<em>Simple Test Object</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int SIMPLE_TEST_OBJECT_FEATURE_COUNT = 3;
 
 	/**
 	 * The number of operations of the '<em>Simple Test Object</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 * @ordered
 	 */
 	int SIMPLE_TEST_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 -->
+	 * 
+	 * @see org.eclipse.emf.ecp.view.core.swt.test.model.TestEnum
+	 * @see org.eclipse.emf.ecp.view.core.swt.test.model.impl.TestPackageImpl#getTestEnum()
+	 * @generated
+	 */
+	int TEST_ENUM = 1;
+
+	/**
 	 * The meta object id for the '<em>XML Date</em>' data type.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @see javax.xml.datatype.XMLGregorianCalendar
 	 * @see org.eclipse.emf.ecp.view.core.swt.test.model.impl.TestPackageImpl#getXMLDate()
 	 * @generated
 	 */
-	int XML_DATE = 1;
+	int XML_DATE = 2;
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.emf.ecp.view.core.swt.test.model.SimpleTestObject
 	 * <em>Simple Test Object</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @return the meta object for class '<em>Simple Test Object</em>'.
 	 * @see org.eclipse.emf.ecp.view.core.swt.test.model.SimpleTestObject
 	 * @generated
@@ -141,7 +173,7 @@
 	 * {@link org.eclipse.emf.ecp.view.core.swt.test.model.SimpleTestObject#getDate <em>Date</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @return the meta object for the attribute '<em>Date</em>'.
 	 * @see org.eclipse.emf.ecp.view.core.swt.test.model.SimpleTestObject#getDate()
 	 * @see #getSimpleTestObject()
@@ -154,7 +186,7 @@
 	 * {@link org.eclipse.emf.ecp.view.core.swt.test.model.SimpleTestObject#getXmlDate <em>Xml Date</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @return the meta object for the attribute '<em>Xml Date</em>'.
 	 * @see org.eclipse.emf.ecp.view.core.swt.test.model.SimpleTestObject#getXmlDate()
 	 * @see #getSimpleTestObject()
@@ -163,10 +195,34 @@
 	EAttribute getSimpleTestObject_XmlDate();
 
 	/**
+	 * Returns the meta object for the attribute '
+	 * {@link org.eclipse.emf.ecp.view.core.swt.test.model.SimpleTestObject#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.SimpleTestObject#getMyEnum()
+	 * @see #getSimpleTestObject()
+	 * @generated
+	 */
+	EAttribute getSimpleTestObject_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 -->
+	 * 
+	 * @return the meta object for enum '<em>Enum</em>'.
+	 * @see org.eclipse.emf.ecp.view.core.swt.test.model.TestEnum
+	 * @generated
+	 */
+	EEnum getTestEnum();
+
+	/**
 	 * Returns the meta object for data type '{@link javax.xml.datatype.XMLGregorianCalendar <em>XML Date</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @return the meta object for data type '<em>XML Date</em>'.
 	 * @see javax.xml.datatype.XMLGregorianCalendar
 	 * @model instanceClass="javax.xml.datatype.XMLGregorianCalendar"
@@ -178,7 +234,7 @@
 	 * Returns the factory that creates the instances of the model.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @return the factory that creates the instances of the model.
 	 * @generated
 	 */
@@ -195,7 +251,7 @@
 	 * <li>and each data type</li>
 	 * </ul>
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	interface Literals {
@@ -205,7 +261,7 @@
 		 * class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 *
+		 * 
 		 * @see org.eclipse.emf.ecp.view.core.swt.test.model.impl.SimpleTestObjectImpl
 		 * @see org.eclipse.emf.ecp.view.core.swt.test.model.impl.TestPackageImpl#getSimpleTestObject()
 		 * @generated
@@ -216,7 +272,7 @@
 		 * The meta object literal for the '<em><b>Date</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 *
+		 * 
 		 * @generated
 		 */
 		EAttribute SIMPLE_TEST_OBJECT__DATE = eINSTANCE.getSimpleTestObject_Date();
@@ -225,16 +281,37 @@
 		 * The meta object literal for the '<em><b>Xml Date</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 *
+		 * 
 		 * @generated
 		 */
 		EAttribute SIMPLE_TEST_OBJECT__XML_DATE = eINSTANCE.getSimpleTestObject_XmlDate();
 
 		/**
+		 * The meta object literal for the '<em><b>My Enum</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * 
+		 * @generated
+		 */
+		EAttribute SIMPLE_TEST_OBJECT__MY_ENUM = eINSTANCE.getSimpleTestObject_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 -->
+		 * <!-- end-user-doc -->
+		 * 
+		 * @see org.eclipse.emf.ecp.view.core.swt.test.model.TestEnum
+		 * @see org.eclipse.emf.ecp.view.core.swt.test.model.impl.TestPackageImpl#getTestEnum()
+		 * @generated
+		 */
+		EEnum TEST_ENUM = eINSTANCE.getTestEnum();
+
+		/**
 		 * The meta object literal for the '<em>XML Date</em>' data type.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 *
+		 * 
 		 * @see javax.xml.datatype.XMLGregorianCalendar
 		 * @see org.eclipse.emf.ecp.view.core.swt.test.model.impl.TestPackageImpl#getXMLDate()
 		 * @generated
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 6072e19..8a3c526 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
@@ -1,4 +1,14 @@
 /**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ * Lucas Koehler - extension for EnumComboViewerRenderer_PTest
  */
 package org.eclipse.emf.ecp.view.core.swt.test.model.impl;
 
@@ -11,6 +21,7 @@
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
 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;
 
 /**
@@ -22,6 +33,7 @@
  * <ul>
  * <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>
  * </ul>
  * </p>
  *
@@ -73,6 +85,17 @@
 	protected XMLGregorianCalendar xmlDate = XML_DATE_EDEFAULT;
 
 	/**
+	 * 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 -->
 	 *
@@ -153,12 +176,41 @@
 	 * @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.SIMPLE_TEST_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.SIMPLE_TEST_OBJECT__DATE:
 			return getDate();
 		case TestPackage.SIMPLE_TEST_OBJECT__XML_DATE:
 			return getXmlDate();
+		case TestPackage.SIMPLE_TEST_OBJECT__MY_ENUM:
+			return getMyEnum();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -178,6 +230,9 @@
 		case TestPackage.SIMPLE_TEST_OBJECT__XML_DATE:
 			setXmlDate((XMLGregorianCalendar) newValue);
 			return;
+		case TestPackage.SIMPLE_TEST_OBJECT__MY_ENUM:
+			setMyEnum((TestEnum) newValue);
+			return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -197,6 +252,9 @@
 		case TestPackage.SIMPLE_TEST_OBJECT__XML_DATE:
 			setXmlDate(XML_DATE_EDEFAULT);
 			return;
+		case TestPackage.SIMPLE_TEST_OBJECT__MY_ENUM:
+			setMyEnum((TestEnum) null);
+			return;
 		}
 		super.eUnset(featureID);
 	}
@@ -214,6 +272,8 @@
 			return DATE_EDEFAULT == null ? date != null : !DATE_EDEFAULT.equals(date);
 		case TestPackage.SIMPLE_TEST_OBJECT__XML_DATE:
 			return XML_DATE_EDEFAULT == null ? xmlDate != null : !XML_DATE_EDEFAULT.equals(xmlDate);
+		case TestPackage.SIMPLE_TEST_OBJECT__MY_ENUM:
+			return myEnum != null;
 		}
 		return super.eIsSet(featureID);
 	}
@@ -231,10 +291,12 @@
 		}
 
 		final StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (date: ");
+		result.append(" (date: "); //$NON-NLS-1$
 		result.append(date);
-		result.append(", xmlDate: ");
+		result.append(", xmlDate: "); //$NON-NLS-1$
 		result.append(xmlDate);
+		result.append(", myEnum: "); //$NON-NLS-1$
+		result.append(myEnum);
 		result.append(')');
 		return result.toString();
 	}
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 f421657..6f07baf 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
@@ -1,4 +1,14 @@
 /**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ * Lucas Koehler - extension for EnumComboViewerRenderer_PTest
  */
 package org.eclipse.emf.ecp.view.core.swt.test.model.impl;
 
@@ -11,6 +21,7 @@
 import org.eclipse.emf.ecore.impl.EFactoryImpl;
 import org.eclipse.emf.ecore.plugin.EcorePlugin;
 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;
 
@@ -18,7 +29,7 @@
  * <!-- begin-user-doc -->
  * An implementation of the model <b>Factory</b>.
  * <!-- end-user-doc -->
- *
+ * 
  * @generated
  */
 public class TestFactoryImpl extends EFactoryImpl implements TestFactory {
@@ -26,7 +37,7 @@
 	 * Creates the default factory implementation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	public static TestFactory init() {
@@ -46,7 +57,7 @@
 	 * Creates an instance of the factory.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	public TestFactoryImpl() {
@@ -56,7 +67,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -65,46 +76,50 @@
 		case TestPackage.SIMPLE_TEST_OBJECT:
 			return createSimpleTestObject();
 		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
 	public Object createFromString(EDataType eDataType, String initialValue) {
 		switch (eDataType.getClassifierID()) {
+		case TestPackage.TEST_ENUM:
+			return createTestEnumFromString(eDataType, initialValue);
 		case TestPackage.XML_DATE:
 			return createXMLDateFromString(eDataType, initialValue);
 		default:
-			throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+			throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
 		}
 	}
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	@Override
 	public String convertToString(EDataType eDataType, Object instanceValue) {
 		switch (eDataType.getClassifierID()) {
+		case TestPackage.TEST_ENUM:
+			return convertTestEnumToString(eDataType, instanceValue);
 		case TestPackage.XML_DATE:
 			return convertXMLDateToString(eDataType, instanceValue);
 		default:
-			throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+			throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
 		}
 	}
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -116,7 +131,33 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
+	 * @generated
+	 */
+	public TestEnum createTestEnumFromString(EDataType eDataType, String initialValue) {
+		final TestEnum result = TestEnum.get(initialValue);
+		if (result == null)
+		{
+			throw new IllegalArgumentException(
+				"The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		}
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public String convertTestEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public XMLGregorianCalendar createXMLDateFromString(EDataType eDataType, String initialValue) {
@@ -126,7 +167,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	public String convertXMLDateToString(EDataType eDataType, Object instanceValue) {
@@ -136,7 +177,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -147,7 +188,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @deprecated
 	 * @generated
 	 */
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 2e68145..88a5506 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
@@ -1,4 +1,14 @@
 /**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ * Lucas Koehler - extension for EnumComboViewerRenderer_PTest
  */
 package org.eclipse.emf.ecp.view.core.swt.test.model.impl;
 
@@ -7,9 +17,11 @@
 import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.impl.EPackageImpl;
 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;
 
@@ -17,14 +29,14 @@
  * <!-- begin-user-doc -->
  * An implementation of the model <b>Package</b>.
  * <!-- end-user-doc -->
- *
+ * 
  * @generated
  */
 public class TestPackageImpl extends EPackageImpl implements TestPackage {
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	private EClass simpleTestObjectEClass = null;
@@ -32,7 +44,15 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
+	 * @generated
+	 */
+	private EEnum testEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EDataType xmlDateEDataType = null;
@@ -45,7 +65,7 @@
 	 * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
 	 * performs initialization of the package, or returns the registered package, if one already exists. <!--
 	 * begin-user-doc --> <!-- end-user-doc -->
-	 *
+	 * 
 	 * @see org.eclipse.emf.ecore.EPackage.Registry
 	 * @see org.eclipse.emf.ecp.view.core.swt.test.model.TestPackage#eNS_URI
 	 * @see #init()
@@ -58,7 +78,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	private static boolean isInited = false;
@@ -70,7 +90,7 @@
 	 * This method is used to initialize {@link TestPackage#eINSTANCE} when that field is accessed. 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()
@@ -83,8 +103,7 @@
 
 		// Obtain or create and register package
 		final TestPackageImpl theTestPackage = (TestPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof TestPackageImpl ? EPackage.Registry.INSTANCE
-			.get(eNS_URI)
-			: new TestPackageImpl());
+			.get(eNS_URI) : new TestPackageImpl());
 
 		isInited = true;
 
@@ -105,7 +124,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -116,7 +135,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -127,7 +146,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -138,7 +157,29 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EAttribute getSimpleTestObject_MyEnum() {
+		return (EAttribute) simpleTestObjectEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EEnum getTestEnum() {
+		return testEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -149,7 +190,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -160,7 +201,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	private boolean isCreated = false;
@@ -170,7 +211,7 @@
 	 * guarded to have no affect on any invocation but its first.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	public void createPackageContents() {
@@ -183,6 +224,10 @@
 		simpleTestObjectEClass = createEClass(SIMPLE_TEST_OBJECT);
 		createEAttribute(simpleTestObjectEClass, SIMPLE_TEST_OBJECT__DATE);
 		createEAttribute(simpleTestObjectEClass, SIMPLE_TEST_OBJECT__XML_DATE);
+		createEAttribute(simpleTestObjectEClass, SIMPLE_TEST_OBJECT__MY_ENUM);
+
+		// Create enums
+		testEnumEEnum = createEEnum(TEST_ENUM);
 
 		// Create data types
 		xmlDateEDataType = createEDataType(XML_DATE);
@@ -191,7 +236,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	private boolean isInitialized = false;
@@ -201,7 +246,7 @@
 	 * method is guarded to have no affect on any invocation but its first.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	public void initializePackageContents() {
@@ -222,16 +267,30 @@
 		// Add supertypes to classes
 
 		// Initialize classes, features, and operations; add parameters
-		initEClass(simpleTestObjectEClass, SimpleTestObject.class, "SimpleTestObject", !IS_ABSTRACT, !IS_INTERFACE,
-			IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getSimpleTestObject_Date(), ecorePackage.getEDate(), "date", null, 0, 1, SimpleTestObject.class,
-			!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getSimpleTestObject_XmlDate(), getXMLDate(), "xmlDate", null, 0, 1, SimpleTestObject.class,
-			!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEClass(simpleTestObjectEClass, SimpleTestObject.class,
+			"SimpleTestObject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(
+			getSimpleTestObject_Date(),
+			ecorePackage.getEDate(),
+			"date", null, 0, 1, SimpleTestObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(
+			getSimpleTestObject_XmlDate(),
+			getXMLDate(),
+			"xmlDate", null, 0, 1, SimpleTestObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(
+			getSimpleTestObject_MyEnum(),
+			getTestEnum(),
+			"myEnum", null, 0, 1, SimpleTestObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		// Initialize enums and add enum literals
+		initEEnum(testEnumEEnum, TestEnum.class, "TestEnum"); //$NON-NLS-1$
+		addEEnumLiteral(testEnumEEnum, TestEnum.A);
+		addEEnumLiteral(testEnumEEnum, TestEnum.B);
+		addEEnumLiteral(testEnumEEnum, TestEnum.C);
 
 		// Initialize data types
-		initEDataType(xmlDateEDataType, XMLGregorianCalendar.class, "XMLDate", IS_SERIALIZABLE,
-			!IS_GENERATED_INSTANCE_CLASS);
+		initEDataType(xmlDateEDataType, XMLGregorianCalendar.class,
+			"XMLDate", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 
 		// Create resource
 		createResource(eNS_URI);
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 da28aa0..f816571 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
@@ -1,4 +1,14 @@
 /**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ * Lucas Koehler - extension for EnumComboViewerRenderer_PTest
  */
 package org.eclipse.emf.ecp.view.core.swt.test.model.util;
 
@@ -14,7 +24,6 @@
  * 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.emf.ecp.view.core.swt.test.model.TestPackage
  * @generated
  */
@@ -23,7 +32,6 @@
 	 * The cached model package.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
 	 * @generated
 	 */
 	protected static TestPackage modelPackage;
@@ -32,7 +40,6 @@
 	 * Creates an instance of the adapter factory.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
 	 * @generated
 	 */
 	public TestAdapterFactory() {
@@ -44,10 +51,8 @@
 	/**
 	 * Returns whether this factory is applicable for the type of the object.
 	 * <!-- begin-user-doc -->
-	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance
-	 * object of the model.
+	 * 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
 	 */
@@ -57,7 +62,7 @@
 			return true;
 		}
 		if (object instanceof EObject) {
-			return ((EObject) object).eClass().getEPackage() == modelPackage;
+			return ((EObject)object).eClass().getEPackage() == modelPackage;
 		}
 		return false;
 	}
@@ -66,7 +71,6 @@
 	 * The switch that delegates to the <code>createXXX</code> methods.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
 	 * @generated
 	 */
 	protected TestSwitch<Adapter> modelSwitch =
@@ -75,7 +79,6 @@
 			public Adapter caseSimpleTestObject(SimpleTestObject object) {
 				return createSimpleTestObjectAdapter();
 			}
-
 			@Override
 			public Adapter defaultCase(EObject object) {
 				return createEObjectAdapter();
@@ -86,24 +89,22 @@
 	 * 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
 	 */
 	@Override
 	public Adapter createAdapter(Notifier target) {
-		return modelSwitch.doSwitch((EObject) target);
+		return modelSwitch.doSwitch((EObject)target);
 	}
 
+
 	/**
-	 * Creates a new adapter for an object of class '
-	 * {@link org.eclipse.emf.ecp.view.core.swt.test.model.SimpleTestObject <em>Simple Test Object</em>}'.
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecp.view.core.swt.test.model.SimpleTestObject <em>Simple Test 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.SimpleTestObject
 	 * @generated
@@ -117,7 +118,6 @@
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null.
 	 * <!-- end-user-doc -->
-	 *
 	 * @return the new adapter.
 	 * @generated
 	 */
@@ -125,4 +125,4 @@
 		return null;
 	}
 
-} // TestAdapterFactory
+} //TestAdapterFactory
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 ce02cf3..c55d4d1 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
@@ -1,4 +1,14 @@
 /**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ * Lucas Koehler - extension for EnumComboViewerRenderer_PTest
  */
 package org.eclipse.emf.ecp.view.core.swt.test.model.util;
 
@@ -11,14 +21,13 @@
 /**
  * <!-- begin-user-doc -->
  * The <b>Switch</b> for the model's inheritance hierarchy.
- * It supports the call {@link #doSwitch(EObject) doSwitch(object)} to invoke the <code>caseXXX</code> method for each
- * class of the model,
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
  * starting with the actual class of the object
  * and proceeding up the inheritance hierarchy
  * until a non-null result is returned,
  * which is the result of the switch.
  * <!-- end-user-doc -->
- *
  * @see org.eclipse.emf.ecp.view.core.swt.test.model.TestPackage
  * @generated
  */
@@ -27,7 +36,6 @@
 	 * The cached model package
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
 	 * @generated
 	 */
 	protected static TestPackage modelPackage;
@@ -36,7 +44,6 @@
 	 * Creates an instance of the switch.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
 	 * @generated
 	 */
 	public TestSwitch() {
@@ -49,7 +56,6 @@
 	 * Checks whether this is a switch for the given package.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
 	 * @parameter ePackage the package in question.
 	 * @return whether this is a switch for the given package.
 	 * @generated
@@ -60,27 +66,22 @@
 	}
 
 	/**
-	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that
-	 * result.
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
 	 * @return the first non-null result returned by a <code>caseXXX</code> call.
 	 * @generated
 	 */
 	@Override
 	protected T doSwitch(int classifierID, EObject theEObject) {
 		switch (classifierID) {
-		case TestPackage.SIMPLE_TEST_OBJECT: {
-			final SimpleTestObject simpleTestObject = (SimpleTestObject) theEObject;
-			T result = caseSimpleTestObject(simpleTestObject);
-			if (result == null) {
-				result = defaultCase(theEObject);
+			case TestPackage.SIMPLE_TEST_OBJECT: {
+				SimpleTestObject simpleTestObject = (SimpleTestObject)theEObject;
+				T result = caseSimpleTestObject(simpleTestObject);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
 			}
-			return result;
-		}
-		default:
-			return defaultCase(theEObject);
+			default: return defaultCase(theEObject);
 		}
 	}
 
@@ -90,7 +91,6 @@
 	 * 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>Simple Test Object</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
@@ -106,7 +106,6 @@
 	 * 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)
@@ -117,4 +116,4 @@
 		return null;
 	}
 
-} // TestSwitch
+} //TestSwitch
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
new file mode 100644
index 0000000..38efef3
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/tests/AllPluginTests.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.core.swt.tests;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+/**
+ * Test Suite for OSGi Tests.
+ * 
+ * @author Eugen Neufeld
+ *
+ */
+@RunWith(Suite.class)
+@SuiteClasses({ CorrectDipose_PTest.class, DynamicDMR_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
new file mode 100644
index 0000000..33c8ef8
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/tests/AllTests.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.core.swt.tests;
+
+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.EnumComboViewerRenderer_PTest;
+import org.eclipse.emf.ecp.view.internal.core.swt.renderer.NumberControlRenderer_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.renderer.TextControlRenderer_PTest;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+/**
+ * Test Suite for Unit Tests.
+ * 
+ * @author Eugen Neufeld
+ *
+ */
+@RunWith(Suite.class)
+@SuiteClasses({ BooleanControlRenderer_PTest.class, DateTimeControlRenderer_PTest.class,
+	EnumComboViewerRenderer_PTest.class,
+	NumberControlRenderer_PTest.class, ViewRenderer_PTest.class, XMLDateControlRenderer_PTest.class,
+	TextControlRenderer_PTest.class })
+public class AllTests {
+	// JUnit 4 Test Suite
+}
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/tests/CorrectDipose_PTest.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/tests/CorrectDipose_PTest.java
index 6386b3e..21405bc 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/tests/CorrectDipose_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/tests/CorrectDipose_PTest.java
@@ -9,6 +9,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.emf.ecp.view.test.common.swt.spi.DatabindingClassRunner;
 import org.eclipse.emf.ecp.view.test.common.swt.spi.SWTViewTestHelper;
 import org.eclipse.emf.emfstore.bowling.BowlingFactory;
 import org.eclipse.emf.emfstore.bowling.BowlingPackage;
@@ -16,7 +17,9 @@
 import org.eclipse.swt.widgets.Shell;
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.runner.RunWith;
 
+@RunWith(DatabindingClassRunner.class)
 public class CorrectDipose_PTest {
 
 	private VView view;
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 1d14bda..8943ba7 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
@@ -30,6 +30,7 @@
 import org.eclipse.emf.emfstore.bowling.Fan;
 import org.eclipse.emf.emfstore.bowling.Merchandise;
 import org.eclipse.emf.emfstore.bowling.Player;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Display;
@@ -208,6 +209,8 @@
 			fail("Could not render view: " + e.getMessage());
 		} catch (final NoPropertyDescriptorFoundExeption e) {
 			fail("Could not render view: " + e.getMessage());
+		} catch (final EMFFormsNoRendererException e) {
+			fail("Could not render view: " + e.getMessage());
 		}
 	}
 
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/tests/ObservingWritableValue.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/tests/ObservingWritableValue.java
new file mode 100644
index 0000000..66aae88
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/core/swt/tests/ObservingWritableValue.java
@@ -0,0 +1,68 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.core.swt.tests;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import org.eclipse.core.databinding.observable.IObserving;
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.value.WritableValue;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.emf.ecore.InternalEObject;
+
+/**
+ * A {@link WritableValue} that returns a mocked EObject for {@link IObserving#getObserved()}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class ObservingWritableValue extends WritableValue implements IObserving {
+
+	/**
+	 * Creates a new instance.
+	 *
+	 * @param realm The realm.
+	 * @param initialValue The initial value
+	 * @param valueType The value type
+	 */
+	public ObservingWritableValue(Realm realm, Object initialValue, Object valueType)
+	{
+		super(realm, initialValue, valueType);
+	}
+
+	/**
+	 * Creates a new instance based on another ObservingWritableValue.
+	 *
+	 * @param observingWritableValue The ObservingWritableValue.
+	 */
+	public ObservingWritableValue(ObservingWritableValue observingWritableValue)
+	{
+		super(observingWritableValue.getRealm(), observingWritableValue.getValue(), observingWritableValue
+			.getValueType());
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.core.databinding.observable.IObserving#getObserved()
+	 */
+	@Override
+	public Object getObserved() {
+		final InternalEObject eObject = mock(InternalEObject.class);
+		final Setting setting = mock(Setting.class);
+		when(eObject.eSetting(any(EStructuralFeature.class))).thenReturn(setting);
+		return eObject;
+	}
+}
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/AbstractControl_PTest.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/AbstractControl_PTest.java
index d2c7e9c..75e4e09 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/AbstractControl_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/AbstractControl_PTest.java
@@ -1,14 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ * Lucas Koehler - adjustments for databinding tests
+ ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.core.swt.renderer;
 
 import static org.junit.Assert.assertEquals;
 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.when;
 
-import java.util.Collections;
-import java.util.Iterator;
 import java.util.Map;
 
+import org.eclipse.core.databinding.observable.IObserving;
+import org.eclipse.core.databinding.observable.Observables;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.emf.common.command.BasicCommandStack;
 import org.eclipse.emf.common.util.BasicEList;
 import org.eclipse.emf.common.util.URI;
@@ -28,22 +44,30 @@
 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.spi.swt.layout.GridDescriptionFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
+import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
 import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
+import org.eclipse.emfforms.spi.core.services.label.NoLabelFoundException;
+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.widgets.Control;
+import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Shell;
 import org.junit.Test;
 import org.mockito.Mockito;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.stubbing.Answer;
 
 public abstract class AbstractControl_PTest {
 	protected static final String CUSTOM_VARIANT = "org.eclipse.rap.rwt.customVariant"; //$NON-NLS-1$
+	protected EMFFormsDatabinding databindingService;
+	protected VTViewTemplateProvider templateProvider;
 	protected AbstractControlSWTRenderer<VControl> renderer;
+	protected EMFFormsLabelProvider labelProvider;
 
 	private Resource createResource() {
 		final Resource.Factory.Registry registry = Resource.Factory.Registry.INSTANCE;
@@ -68,7 +92,7 @@
 	}
 
 	protected void mockControl(EObject eObject,
-		final EStructuralFeature eStructuralFeature) {
+		final EStructuralFeature eStructuralFeature) throws DatabindingFailedException {
 		final VDomainModelReference domainModelReference = Mockito
 			.mock(VDomainModelReference.class);
 		final Setting setting = mock(Setting.class);
@@ -77,39 +101,38 @@
 
 		when(setting.getEObject()).thenReturn(eObject);
 		when(setting.getEStructuralFeature()).thenReturn(eStructuralFeature);
-		when(domainModelReference.getIterator()).then(new Answer<Iterator<Setting>>() {
-			@Override
-			public Iterator<Setting> answer(InvocationOnMock invocation) throws Throwable {
-				return Collections.singleton(setting).iterator();
-			}
-		});
-		when(domainModelReference.getEStructuralFeatureIterator()).then(new Answer<Iterator<EStructuralFeature>>() {
-			@Override
-			public Iterator<EStructuralFeature> answer(
-				InvocationOnMock invocation) throws Throwable {
-				return Collections.singleton(eStructuralFeature).iterator();
-			}
-		});
+
+		mockDatabindingIsUnsettable();
+
 		final BasicEList<DomainModelReferenceChangeListener> changeListener = new BasicEList<DomainModelReferenceChangeListener>();
 		when(domainModelReference.getChangeListener()).thenReturn(changeListener);
-		Mockito.when(control.getDomainModelReference()).thenReturn(
+		Mockito.when(vControl.getDomainModelReference()).thenReturn(
 			domainModelReference);
 	}
 
-	protected void setMockLabelAlignment(LabelAlignment labelAlignment) {
-		Mockito.when(control.getLabelAlignment()).thenReturn(labelAlignment);
+	protected void mockDatabindingIsUnsettable() throws DatabindingFailedException {
+		final EStructuralFeature structuralFeature = mock(EStructuralFeature.class);
+		when(structuralFeature.isUnsettable()).thenReturn(false);
+		final IValueProperty valueProperty = mock(IValueProperty.class);
+		when(valueProperty.getValueType()).thenReturn(structuralFeature);
+		when(databindingService.getValueProperty(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			valueProperty);
 	}
 
-	private ViewModelContext context;
-	private VControl control;
+	protected void setMockLabelAlignment(LabelAlignment labelAlignment) {
+		Mockito.when(vControl.getLabelAlignment()).thenReturn(labelAlignment);
+	}
+
+	protected ViewModelContext context;
+	protected VControl vControl;
 	private Shell shell;
 
-	protected void setup(AbstractControlSWTRenderer<VControl> renderer) {
-
-		this.renderer = renderer;
-		control = Mockito.mock(VControl.class);
+	protected void setup() throws DatabindingFailedException {
+		vControl = Mockito.mock(VControl.class);
+		mockControl();
 		context = Mockito.mock(ViewModelContext.class);
-		shell = new Shell();
+		when(context.getDomainModel()).thenReturn(mock(EObject.class));
+		shell = new Shell(Display.getDefault(), SWT.NONE);
 	}
 
 	protected void dispose() {
@@ -119,8 +142,6 @@
 	@Test
 	public void testGridDescriptionLabelAlignmentNone() {
 		setMockLabelAlignment(LabelAlignment.NONE);
-		mockControl();
-		renderer.init(control, context);
 		final SWTGridDescription gridDescription = renderer.getGridDescription(GridDescriptionFactory.INSTANCE
 			.createEmptyGridDescription());
 		assertEquals(2, gridDescription.getColumns());
@@ -130,8 +151,6 @@
 	@Test
 	public void testGridDescriptionLabelAlignmentLeft() {
 		setMockLabelAlignment(LabelAlignment.LEFT);
-		mockControl();
-		renderer.init(control, context);
 		final SWTGridDescription gridDescription = renderer.getGridDescription(GridDescriptionFactory.INSTANCE
 			.createEmptyGridDescription());
 		assertEquals(3, gridDescription.getColumns());
@@ -154,8 +173,6 @@
 
 	private void renderValidationIcon(SWTGridCell gridCell)
 		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
-		mockControl();
-		renderer.init(control, context);
 		final Control render = renderer.render(gridCell, shell);
 		assertTrue(Label.class.isInstance(render));
 		assertEquals("", Label.class.cast(render).getText());
@@ -164,20 +181,51 @@
 	protected void renderLabel(String text) throws NoRendererFoundException,
 		NoPropertyDescriptorFoundExeption {
 		setMockLabelAlignment(LabelAlignment.LEFT);
-		mockControl();
-		renderer.init(control, context);
 		final Control render = renderer.render(new SWTGridCell(0, 0, renderer), shell);
 		assertTrue(Label.class.isInstance(render));
 		assertEquals(text, Label.class.cast(render).getText());
 	}
 
+	/**
+	 * Tests whether the {@link EMFFormsLabelProvider} is used to get the labels of a control.
+	 *
+	 * @throws NoRendererFoundException
+	 * @throws NoPropertyDescriptorFoundExeption
+	 * @throws NoLabelFoundException
+	 */
+	protected void labelServiceUsage() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		NoLabelFoundException {
+		reset(labelProvider);
+		final IObservableValue testDescription = Observables.constantObservableValue("test-description", String.class);
+		final IObservableValue testDisplayName = Observables.constantObservableValue("test-displayname", String.class);
+		when(labelProvider.getDescription(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			testDescription);
+		when(labelProvider.getDisplayName(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			testDisplayName);
+
+		setMockLabelAlignment(LabelAlignment.LEFT);
+		final Control renderControl = renderControl(new SWTGridCell(0, 0, renderer));
+		assertTrue(Label.class.isInstance(renderControl));
+
+		final Label label = (Label) renderControl;
+		assertEquals(testDescription.getValue(), label.getToolTipText());
+		assertEquals(testDisplayName.getValue(), label.getText());
+	}
+
 	protected Control renderControl(SWTGridCell gridCell)
 		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
-		mockControl();
-		renderer.init(control, context);
 		final Control render = renderer.render(gridCell, shell);
 		return render;
 	}
 
-	protected abstract void mockControl();
+	protected abstract void mockControl() throws DatabindingFailedException;
+
+	/**
+	 * Helper Interface for mocking.
+	 *
+	 * @author Eugen Neufeld
+	 *
+	 */
+	public interface TestObservableValue extends IObservableValue, IObserving {
+	}
 }
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 3d2622a..56515e5 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
@@ -1,63 +1,98 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ * Lucas Koehler - databinding tests
+ ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.core.swt.renderer;
 
 import static org.junit.Assert.assertEquals;
 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 org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.EcoreFactory;
 import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecp.test.common.DefaultRealm;
+import org.eclipse.emf.ecp.view.core.swt.tests.ObservingWritableValue;
 import org.eclipse.emf.ecp.view.spi.model.LabelAlignment;
+import org.eclipse.emf.ecp.view.spi.model.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.spi.swt.SWTRendererFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.test.common.swt.spi.DatabindingClassRunner;
+import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
+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;
+import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
+import org.eclipse.emfforms.spi.core.services.label.NoLabelFoundException;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Control;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.mockito.Mockito;
 
-@RunWith(DatabindingClassRunner.class)
 public class BooleanControlRenderer_PTest extends AbstractControl_PTest {
 
+	private DefaultRealm realm;
+
 	@Before
-	public void before() {
-		final SWTRendererFactory factory = mock(SWTRendererFactory.class);
-		setup(new BooleanControlSWTRenderer(factory));
+	public void before() throws DatabindingFailedException {
+		realm = new DefaultRealm();
+		final ReportService reportService = mock(ReportService.class);
+		databindingService = mock(EMFFormsDatabinding.class);
+		labelProvider = mock(EMFFormsLabelProvider.class);
+		templateProvider = mock(VTViewTemplateProvider.class);
+		setup();
+		renderer = new BooleanControlSWTRenderer(vControl, context, reportService, databindingService, labelProvider,
+			templateProvider);
+		renderer.init();
 	}
 
 	@After
 	public void testTearDown() {
+		realm.dispose();
 		dispose();
 	}
 
 	@Test
 	public void renderControlLabelAlignmentNone()
-		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException {
 		setMockLabelAlignment(LabelAlignment.NONE);
+		final TestObservableValue mockedObservableValue = mock(TestObservableValue.class);
+		when(mockedObservableValue.getRealm()).thenReturn(realm);
+		when(databindingService.getObservableValue(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			mockedObservableValue);
 		final Control render = renderControl(new SWTGridCell(0, 1, renderer));
 		assertControl(render);
 	}
 
 	@Test
 	public void renderControlLabelAlignmentLeft()
-		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException {
 		setMockLabelAlignment(LabelAlignment.LEFT);
+		final TestObservableValue mockedObservableValue = mock(TestObservableValue.class);
+		when(mockedObservableValue.getRealm()).thenReturn(realm);
+		when(databindingService.getObservableValue(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			mockedObservableValue);
 		final Control render = renderControl(new SWTGridCell(0, 2, renderer));
 
 		assertControl(render);
 	}
 
-	@Test
-	public void renderLabel() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
-		renderLabel("Interface");
-	}
-
 	private void assertControl(Control render) {
 		assertTrue(Button.class.isInstance(render));
 		assertEquals(SWT.CHECK, Button.class.cast(render).getStyle()
@@ -66,11 +101,82 @@
 	}
 
 	@Override
-	protected void mockControl() {
+	protected void mockControl() throws DatabindingFailedException {
 		final EClass eObject = EcoreFactory.eINSTANCE.createEClass();
 		final EStructuralFeature eStructuralFeature = EcorePackage.eINSTANCE
 			.getEClass_Interface();
 		super.mockControl(eObject, eStructuralFeature);
 	}
 
+	@Test
+	public void testDatabindingServiceUsageInitialBinding() throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, DatabindingFailedException {
+		final boolean initialValue = true;
+		final ObservingWritableValue mockedObservable = new ObservingWritableValue(realm, initialValue, Boolean.class);
+
+		final Button button = setUpDatabindingTest(mockedObservable);
+		assertEquals(initialValue, button.getSelection());
+
+	}
+
+	@Test
+	public void testDatabindingServiceUsageChangeObservable() throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, DatabindingFailedException {
+		final boolean initialValue = true;
+		final boolean changedValue = false;
+		final ObservingWritableValue mockedObservable = new ObservingWritableValue(realm, initialValue, Boolean.class);
+
+		final Button button = setUpDatabindingTest(mockedObservable);
+		mockedObservable.setValue(changedValue);
+		assertEquals(changedValue, button.getSelection());
+
+	}
+
+	@Test
+	public void testDatabindingServiceUsageChangeControl() throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, DatabindingFailedException {
+		final boolean initialValue = true;
+		final ObservingWritableValue mockedObservable = new ObservingWritableValue(realm, initialValue, Boolean.class);
+
+		final Button button = setUpDatabindingTest(mockedObservable);
+		SWTTestUtil.clickButton(button);
+
+		assertEquals(button.getSelection(), mockedObservable.getValue());
+
+	}
+
+	/**
+	 * Universal set up stuff for the data binding test cases.
+	 *
+	 * @param mockedObservable
+	 * @return
+	 * @throws NoRendererFoundException
+	 * @throws NoPropertyDescriptorFoundExeption
+	 * @throws DatabindingFailedException
+	 */
+	private Button setUpDatabindingTest(final ObservingWritableValue mockedObservable) throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, DatabindingFailedException {
+		Mockito.reset(databindingService);
+
+		mockDatabindingIsUnsettable();
+		when(databindingService.getObservableValue(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			mockedObservable);
+
+		final Control renderControl = renderControl(new SWTGridCell(0, 2, renderer));
+		final Button button = (Button) renderControl;
+		return button;
+	}
+
+	/**
+	 * Tests whether the {@link EMFFormsLabelProvider} is used to get the labels of the control.
+	 *
+	 * @throws NoRendererFoundException
+	 * @throws NoPropertyDescriptorFoundExeption
+	 * @throws NoLabelFoundException
+	 */
+	@Test
+	public void testLabelServiceUsage() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		NoLabelFoundException {
+		labelServiceUsage();
+	}
 }
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 0e15196..8ab8b7d 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
@@ -1,55 +1,122 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ * Lucas Koehler - databinding tests
+ ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.core.swt.renderer;
 
 import static org.junit.Assert.assertEquals;
 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.Calendar;
+import java.util.Date;
+import java.util.LinkedHashSet;
+import java.util.Set;
+
+import org.eclipse.core.databinding.observable.Diffs;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.observable.value.IValueChangeListener;
+import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.test.common.DefaultRealm;
 import org.eclipse.emf.ecp.view.core.swt.test.model.SimpleTestObject;
 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.ecp.view.internal.core.swt.MessageKeys;
 import org.eclipse.emf.ecp.view.spi.model.LabelAlignment;
+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.spi.swt.SWTRendererFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.test.common.swt.spi.DatabindingClassRunner;
+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.DatabindingFailedException;
+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.layout.SWTGridCell;
+import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.StackLayout;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.DateTime;
+import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Label;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.mockito.Mockito;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
 
-@RunWith(DatabindingClassRunner.class)
 public class DateTimeControlRenderer_PTest extends AbstractControl_PTest {
 
+	private DefaultRealm realm;
+
 	@Before
-	public void before() {
-		final SWTRendererFactory factory = mock(SWTRendererFactory.class);
-		setup(new DateTimeControlSWTRenderer(factory));
+	public void before() throws DatabindingFailedException {
+		realm = new DefaultRealm();
+		final ReportService reportService = mock(ReportService.class);
+		databindingService = mock(EMFFormsDatabinding.class);
+		labelProvider = mock(EMFFormsLabelProvider.class);
+		templateProvider = mock(VTViewTemplateProvider.class);
+		final EMFFormsLocalizationService localizationService = mock(EMFFormsLocalizationService.class);
+		final ImageRegistryService imageRegistryService = mock(ImageRegistryService.class);
+		when(
+			localizationService.getString(DateTimeControlSWTRenderer.class,
+				MessageKeys.DateTimeControl_NoDateSetClickToSetDate)).thenReturn("Unset");
+		setup();
+		renderer = new DateTimeControlSWTRenderer(vControl, context, reportService, databindingService, labelProvider,
+			templateProvider, localizationService, imageRegistryService);
+		renderer.init();
 	}
 
 	@After
 	public void testTearDown() {
+		realm.dispose();
 		dispose();
 	}
 
 	@Test
 	public void renderControlLabelAlignmentNone()
-		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException {
 		setMockLabelAlignment(LabelAlignment.NONE);
+		final TestObservableValue mockedObservableValue = mock(TestObservableValue.class);
+		when(mockedObservableValue.getRealm()).thenReturn(realm);
+		final EObject mockedEObject = mock(EObject.class);
+		when(mockedEObject.eIsSet(any(EStructuralFeature.class))).thenReturn(true);
+		when(mockedObservableValue.getObserved()).thenReturn(mockedEObject);
+
+		when(databindingService.getObservableValue(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			mockedObservableValue);
 		final Control render = renderControl(new SWTGridCell(0, 1, renderer));
 		assertControl(render);
 	}
 
 	@Test
 	public void renderControlLabelAlignmentLeft()
-		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException {
 		setMockLabelAlignment(LabelAlignment.LEFT);
+		final TestObservableValue mockedObservableValue = mock(TestObservableValue.class);
+		when(mockedObservableValue.getRealm()).thenReturn(realm);
+		final EObject mockedEObject = mock(EObject.class);
+		when(mockedEObject.eIsSet(any(EStructuralFeature.class))).thenReturn(true);
+		when(mockedObservableValue.getObserved()).thenReturn(mockedEObject);
+		when(databindingService.getObservableValue(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			mockedObservableValue);
 		final Control render = renderControl(new SWTGridCell(0, 2, renderer));
 
 		assertControl(render);
@@ -74,9 +141,182 @@
 	}
 
 	@Override
-	protected void mockControl() {
+	protected void mockControl() throws DatabindingFailedException {
 		final SimpleTestObject eObject = TestFactory.eINSTANCE.createSimpleTestObject();
 		super.mockControl(eObject, TestPackage.eINSTANCE.getSimpleTestObject_Date());
 	}
 
+	@Test
+	public void testDatabindingServiceUsageInitialBinding() throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, DatabindingFailedException {
+		final Date initialValue = new Date();
+		final EStructuralFeature mockedEStructuralFeature = mock(EStructuralFeature.class);
+		final EObject mockedEObject = mock(EObject.class);
+		when(mockedEObject.eIsSet(mockedEStructuralFeature)).thenReturn(true);
+
+		final TestObservableValue mockedObservable = mock(TestObservableValue.class);
+		when(mockedObservable.getRealm()).thenReturn(realm);
+		when(mockedObservable.getValueType()).thenReturn(mockedEStructuralFeature);
+		when(mockedObservable.getObserved()).thenReturn(mockedEObject);
+		when(mockedObservable.getValue()).thenReturn(initialValue);
+
+		final DateTime[] widgets = setUpDatabindingTest(mockedObservable);
+		final DateTime dateWidget = widgets[0];
+		final DateTime timeWidget = widgets[1];
+
+		assertTrue(isDateEqualToDateTimes(initialValue, dateWidget, timeWidget));
+
+	}
+
+	@Test
+	public void testDatabindingServiceUsageChangeObservable() throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, DatabindingFailedException {
+		final Date initialValue = new Date();
+		final Date changedValue = new Date(System.currentTimeMillis() * 2);
+		final Set<IValueChangeListener> listeners = new LinkedHashSet<IValueChangeListener>();
+		final EStructuralFeature mockedEStructuralFeature = mock(EStructuralFeature.class);
+		final EObject mockedEObject = mock(EObject.class);
+		when(mockedEObject.eIsSet(mockedEStructuralFeature)).thenReturn(true);
+
+		final TestObservableValue mockedObservable = mock(TestObservableValue.class);
+		when(mockedObservable.getRealm()).thenReturn(realm);
+		when(mockedObservable.getValueType()).thenReturn(mockedEStructuralFeature);
+		when(mockedObservable.getObserved()).thenReturn(mockedEObject);
+		when(mockedObservable.getValue()).thenReturn(initialValue);
+		Mockito.doAnswer(new Answer<Void>() {
+
+			@Override
+			public Void answer(InvocationOnMock invocation) throws Throwable {
+				listeners.add((IValueChangeListener) invocation.getArguments()[0]);
+				return null;
+			}
+		}).when(mockedObservable).addValueChangeListener(any(IValueChangeListener.class));
+
+		final DateTime[] widgets = setUpDatabindingTest(mockedObservable);
+		final DateTime dateWidget = widgets[0];
+		final DateTime timeWidget = widgets[1];
+
+		when(mockedObservable.getValue()).thenReturn(changedValue);
+		for (final IValueChangeListener valueChangeListener : listeners) {
+			valueChangeListener.handleValueChange(new ValueChangeEvent(mockedObservable, Diffs.createValueDiff(
+				initialValue, changedValue)));
+		}
+
+		assertTrue(isDateEqualToDateTimes(changedValue, dateWidget, timeWidget));
+
+	}
+
+	@Test
+	public void testDatabindingServiceUsageChangeControl() throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, DatabindingFailedException {
+		final Date initialValue = new Date();
+		final Date changedValue = new Date(System.currentTimeMillis() * 2);
+		final Date[] setValue = new Date[1];
+		final EStructuralFeature mockedEStructuralFeature = mock(EStructuralFeature.class);
+		final EObject mockedEObject = mock(EObject.class);
+		when(mockedEObject.eIsSet(mockedEStructuralFeature)).thenReturn(true);
+
+		final TestObservableValue mockedObservable = mock(TestObservableValue.class);
+		when(mockedObservable.getRealm()).thenReturn(realm);
+		when(mockedObservable.getValueType()).thenReturn(mockedEStructuralFeature);
+		when(mockedObservable.getObserved()).thenReturn(mockedEObject);
+		when(mockedObservable.getValue()).thenReturn(initialValue);
+		Mockito.doAnswer(new Answer<Void>() {
+
+			@Override
+			public Void answer(InvocationOnMock invocation) throws Throwable {
+				setValue[0] = (Date) invocation.getArguments()[0];
+				return null;
+			}
+		}).when(mockedObservable).setValue(any(Object.class));
+		final DateTime[] widgets = setUpDatabindingTest(mockedObservable);
+		final DateTime dateWidget = widgets[0];
+		final DateTime timeWidget = widgets[1];
+
+		final Calendar cal = Calendar.getInstance();
+		cal.setTime(changedValue);
+		dateWidget.setDate(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH));
+		// dateWidget.notifyListeners(SWT.Selection, new Event());
+		timeWidget.setTime(cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE), cal.get(Calendar.SECOND));
+		timeWidget.notifyListeners(SWT.Selection, new Event());
+
+		// mockedObservable.getValue() cannot be compared directly to changedValue because the widgets can't save
+		// milliseconds. From this it follows that mockedObservable.getValue() and changedValue might not be equal
+		// even though the binding is working.
+
+		final Calendar calChangedValue = Calendar.getInstance();
+		calChangedValue.setTime(changedValue);
+		calChangedValue.set(Calendar.MILLISECOND, 0);
+
+		final Calendar calSetValue = Calendar.getInstance();
+		calSetValue.setTime(setValue[0]);
+		calSetValue.set(Calendar.MILLISECOND, 0);
+
+		assertTrue(calChangedValue.equals(calSetValue));
+	}
+
+	/**
+	 * Universal set up stuff for the data binding test cases.
+	 *
+	 * @param mockedObservable
+	 * @return A DateTime array. DateTime[0] contains the date widget and DateTime[1] the time widget.
+	 * @throws NoRendererFoundException
+	 * @throws NoPropertyDescriptorFoundExeption
+	 * @throws DatabindingFailedException
+	 */
+	private DateTime[] setUpDatabindingTest(final IObservableValue mockedObservable) throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, DatabindingFailedException {
+		mockDatabindingIsUnsettable();
+		when(databindingService.getObservableValue(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			mockedObservable);
+
+		final Control renderControl = renderControl(new SWTGridCell(0, 2, renderer));
+
+		final Composite composite = (Composite) renderControl;
+		final Composite stackComposite = (Composite) composite.getChildren()[0];
+		final Composite dateTimeComposite = (Composite) stackComposite.getChildren()[0];
+		final DateTime dateWidget = (DateTime) dateTimeComposite.getChildren()[0];
+		final DateTime timeWidget = (DateTime) dateTimeComposite.getChildren()[1];
+		final DateTime[] widgets = new DateTime[] { dateWidget, timeWidget };
+
+		return widgets;
+	}
+
+	private boolean isDateEqualToDateTimes(Date date, DateTime dateWidget, DateTime timeWidget) {
+		final Calendar cal = Calendar.getInstance();
+		cal.setTime(date);
+		final int dateYear = cal.get(Calendar.YEAR);
+		final int dateMonth = cal.get(Calendar.MONTH);
+		final int dateDay = cal.get(Calendar.DAY_OF_MONTH);
+		final int dateHour = cal.get(Calendar.HOUR_OF_DAY);
+		final int dateMinute = cal.get(Calendar.MINUTE);
+		final int dateSeconds = cal.get(Calendar.SECOND);
+
+		final int widgetYear = dateWidget.getYear();
+		final int widgetMonth = dateWidget.getMonth();
+		final int widgetDay = dateWidget.getDay();
+		final int widgetHour = timeWidget.getHours();
+		final int widgetMinute = timeWidget.getMinutes();
+		final int widgetSeconds = timeWidget.getSeconds();
+
+		if (dateYear == widgetYear && dateMonth == widgetMonth && dateDay == widgetDay
+			&& dateHour == widgetHour && dateMinute == widgetMinute && dateSeconds == widgetSeconds) {
+			return true;
+		}
+		return false;
+	}
+
+	/**
+	 * Tests whether the {@link EMFFormsLabelProvider} is used to get the labels of the control.
+	 *
+	 * @throws NoRendererFoundException
+	 * @throws NoPropertyDescriptorFoundExeption
+	 * @throws DatabindingFailedException
+	 * @throws NoLabelFoundException
+	 */
+	@Test
+	public void testLabelServiceUsage() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		DatabindingFailedException, NoLabelFoundException {
+		labelServiceUsage();
+	}
 }
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
new file mode 100644
index 0000000..f3e9a40
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/EnumComboViewerRenderer_PTest.java
@@ -0,0 +1,186 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.core.swt.renderer;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import org.eclipse.core.databinding.property.Properties;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.test.common.DefaultRealm;
+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.ecp.view.core.swt.tests.ObservingWritableValue;
+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.VTViewTemplateProvider;
+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.swt.core.layout.SWTGridCell;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Matchers;
+
+/**
+ * Plugin test for {@link EnumComboViewerSWTRenderer}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class EnumComboViewerRenderer_PTest extends AbstractControl_PTest {
+
+	private EMFFormsEditSupport editSupport;
+	private DefaultRealm realm;
+
+	@Before
+	public void before() throws DatabindingFailedException {
+		realm = new DefaultRealm();
+		final ReportService reportService = mock(ReportService.class);
+		databindingService = mock(EMFFormsDatabinding.class);
+		labelProvider = mock(EMFFormsLabelProvider.class);
+		templateProvider = mock(VTViewTemplateProvider.class);
+		editSupport = mock(EMFFormsEditSupport.class);
+
+		setup();
+		renderer = new EnumComboViewerSWTRenderer(vControl, context, reportService, databindingService, labelProvider,
+			templateProvider, editSupport);
+		renderer.init();
+	}
+
+	@After
+	public void testTearDown() {
+		realm.dispose();
+		dispose();
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @throws DatabindingFailedException
+	 *
+	 * @see org.AbstractControl_PTest.eclipse.emf.ecp.view.internal.core.swt.renderer.AbstractControl_PTest#mockControl()
+	 */
+	@Override
+	protected void mockControl() throws DatabindingFailedException {
+		final SimpleTestObject eObject = TestFactory.eINSTANCE.createSimpleTestObject();
+		super.mockControl(eObject, TestPackage.eINSTANCE.getSimpleTestObject_MyEnum());
+	}
+
+	@Test
+	public void testDatabindingServiceUsageInitialBinding() throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, DatabindingFailedException {
+		final TestEnum initialValue = TestEnum.B;
+
+		final ObservingWritableValue mockedObservable = new ObservingWritableValue(realm, initialValue,
+			TestPackage.eINSTANCE.getSimpleTestObject_MyEnum());
+
+		when(
+			editSupport.getText(any(VDomainModelReference.class), any(EObject.class),
+				Matchers.eq(mockedObservable.getValue())))
+			.thenReturn(mockedObservable.getValue().toString());
+
+		final Combo combo = setUpDatabindingTest(mockedObservable);
+		assertEquals(initialValue.getName(), combo.getText());
+
+	}
+
+	@Test
+	public void testDatabindingServiceUsageChangeObservable() throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, DatabindingFailedException {
+		final TestEnum initialValue = TestEnum.B;
+		final TestEnum changedValue = TestEnum.C;
+		final ObservingWritableValue mockedObservable = new ObservingWritableValue(realm, initialValue,
+			TestPackage.eINSTANCE.getSimpleTestObject_MyEnum());
+		when(
+			editSupport.getText(any(VDomainModelReference.class), any(EObject.class),
+				Matchers.same(initialValue)))
+			.thenReturn(initialValue.toString());
+
+		when(
+			editSupport.getText(any(VDomainModelReference.class), any(EObject.class),
+				Matchers.same(changedValue)))
+			.thenReturn(changedValue.toString());
+
+		final Combo combo = setUpDatabindingTest(mockedObservable);
+		mockedObservable.setValue(changedValue);
+
+		assertEquals(changedValue.getName(), combo.getText());
+
+	}
+
+	@Test
+	public void testDatabindingServiceUsageChangeControl() throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, DatabindingFailedException {
+		final TestEnum initialValue = TestEnum.B;
+		final TestEnum changedValue = TestEnum.C;
+		final ObservingWritableValue mockedObservable = new ObservingWritableValue(realm, initialValue,
+			TestPackage.eINSTANCE.getSimpleTestObject_MyEnum());
+
+		final Combo combo = setUpDatabindingTest(mockedObservable);
+		combo.select(2);
+		combo.notifyListeners(SWT.Selection, new Event());
+
+		assertEquals(changedValue.getName(), ((TestEnum) mockedObservable.getValue()).getName());
+
+	}
+
+	/**
+	 * Universal set up stuff for the data binding test cases.
+	 *
+	 * @param mockedObservable
+	 * @return
+	 * @throws NoRendererFoundException
+	 * @throws NoPropertyDescriptorFoundExeption
+	 * @throws DatabindingFailedException
+	 */
+	private Combo setUpDatabindingTest(final ObservingWritableValue mockedObservable) throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, DatabindingFailedException {
+		mockDatabindingIsUnsettable();
+		when(databindingService.getObservableValue(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			mockedObservable);
+		when(databindingService.getValueProperty(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			Properties.selfValue(mockedObservable.getValueType()));
+
+		final Control renderControl = renderControl(new SWTGridCell(0, 2, renderer));
+
+		final Combo combo = (Combo) renderControl;
+		return combo;
+	}
+
+	/**
+	 * Tests whether the {@link EMFFormsLabelProvider} is used to get the labels of the control.
+	 *
+	 * @throws NoRendererFoundException
+	 * @throws NoPropertyDescriptorFoundExeption
+	 * @throws DatabindingFailedException
+	 * @throws NoLabelFoundException
+	 */
+	@Test
+	public void testLabelServiceUsage() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		DatabindingFailedException, NoLabelFoundException {
+		labelServiceUsage();
+	}
+}
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 c58ce34..508cdbe 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
@@ -1,60 +1,154 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ * Lucas Koehler - databinding tests
+ ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.core.swt.renderer;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
+import java.text.DecimalFormat;
+import java.util.Locale;
+
+import org.eclipse.core.databinding.property.Properties;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.EcoreFactory;
 import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecp.edit.internal.swt.controls.NumericalHelper;
+import org.eclipse.emf.ecp.test.common.DefaultRealm;
+import org.eclipse.emf.ecp.view.core.swt.tests.ObservingWritableValue;
+import org.eclipse.emf.ecp.view.internal.core.swt.MessageKeys;
 import org.eclipse.emf.ecp.view.spi.model.LabelAlignment;
+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.spi.swt.SWTRendererFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.test.common.swt.spi.DatabindingClassRunner;
+import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
+import org.eclipse.emf.ecp.view.test.common.swt.spi.SWTTestUtil;
+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;
+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.swt.SWT;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Text;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
-import org.junit.runner.RunWith;
 
-@RunWith(DatabindingClassRunner.class)
+@SuppressWarnings("restriction")
 public class NumberControlRenderer_PTest extends AbstractControl_PTest {
 
+	private DefaultRealm realm;
+
 	@Before
-	public void before() {
-		final SWTRendererFactory factory = mock(SWTRendererFactory.class);
-		setup(new NumberControlSWTRenderer(factory));
+	public void before() throws DatabindingFailedException {
+		realm = new DefaultRealm();
+		final ReportService reportService = mock(ReportService.class);
+		databindingService = mock(EMFFormsDatabinding.class);
+		labelProvider = mock(EMFFormsLabelProvider.class);
+		templateProvider = mock(VTViewTemplateProvider.class);
+		final EMFFormsLocalizationService localizationService = mock(EMFFormsLocalizationService.class);
+		when(
+			localizationService.getString(NumberControlSWTRenderer.class, MessageKeys.NumericalControl_FormatNumerical))
+			.thenReturn("#");
+		when(
+			localizationService.getString(NumberControlSWTRenderer.class,
+				MessageKeys.NumericalControl_FormatNumericalDecimal)).thenReturn("#.#");
+		final EMFFormsLocaleProvider localeProvider = mock(EMFFormsLocaleProvider.class);
+		when(localeProvider.getLocale()).thenReturn(Locale.getDefault());
+		final EMFFormsEditSupport editSupport = mock(EMFFormsEditSupport.class);
+		setup();
+		renderer = new NumberControlSWTRenderer(vControl, context, reportService, databindingService, labelProvider,
+			templateProvider, editSupport, localizationService, localeProvider);
+		renderer.init();
 	}
 
 	@After
 	public void testTearDown() {
+		realm.dispose();
 		dispose();
 	}
 
+	@SuppressWarnings({ "rawtypes", "unchecked" })
 	@Test
 	public void renderControlLabelAlignmentNone()
-		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException {
 		setMockLabelAlignment(LabelAlignment.NONE);
+		final TestObservableValue mockedObservableValue = mock(TestObservableValue.class);
+		when(mockedObservableValue.getRealm()).thenReturn(realm);
+		final EObject mockedEObject = mock(EObject.class);
+		when(mockedEObject.eIsSet(any(EStructuralFeature.class))).thenReturn(true);
+		when(mockedObservableValue.getObserved()).thenReturn(mockedEObject);
+		final EStructuralFeature mockedEStructuralFeature = mock(EStructuralFeature.class);
+		final EClassifier mockedEClassifier = mock(EClassifier.class);
+		final Class clazz = Double.class;
+		when(mockedEClassifier.getInstanceClass()).thenReturn(clazz);
+		when(mockedEStructuralFeature.getEType()).thenReturn(mockedEClassifier);
+		when(mockedObservableValue.getValueType()).thenReturn(mockedEStructuralFeature);
+		when(databindingService.getObservableValue(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			mockedObservableValue);
+		when(databindingService.getValueProperty(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			Properties.selfValue(mockedEStructuralFeature));
 		final Control render = renderControl(new SWTGridCell(0, 1, renderer));
 		assertControl(render);
 	}
 
+	@SuppressWarnings({ "unchecked", "rawtypes" })
 	@Test
 	public void renderControlLabelAlignmentLeft()
-		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException {
 		setMockLabelAlignment(LabelAlignment.LEFT);
+		final TestObservableValue mockedObservableValue = mock(TestObservableValue.class);
+		when(mockedObservableValue.getRealm()).thenReturn(realm);
+		final EObject mockedEObject = mock(EObject.class);
+		when(mockedEObject.eIsSet(any(EStructuralFeature.class))).thenReturn(true);
+		when(mockedObservableValue.getObserved()).thenReturn(mockedEObject);
+		final EStructuralFeature mockedEStructuralFeature = mock(EStructuralFeature.class);
+		final EClassifier mockedEClassifier = mock(EClassifier.class);
+		final Class clazz = Double.class;
+		when(mockedEClassifier.getInstanceClass()).thenReturn(clazz);
+		when(mockedEStructuralFeature.getEType()).thenReturn(mockedEClassifier);
+		when(mockedObservableValue.getValueType()).thenReturn(mockedEStructuralFeature);
+		when(databindingService.getObservableValue(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			mockedObservableValue);
+		when(databindingService.getValueProperty(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			Properties.selfValue(mockedEStructuralFeature));
+
 		final Control render = renderControl(new SWTGridCell(0, 2, renderer));
 
 		assertControl(render);
 	}
 
+	/**
+	 * Tests whether the {@link EMFFormsLabelProvider} is used to get the labels of the control.
+	 *
+	 * @throws NoRendererFoundException
+	 * @throws NoPropertyDescriptorFoundExeption
+	 * @throws DatabindingFailedException
+	 * @throws NoLabelFoundException
+	 */
 	@Test
-	public void renderLabel() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
-		renderLabel("Lower Bound");
+	public void testLabelServiceUsage() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		DatabindingFailedException, NoLabelFoundException {
+		labelServiceUsage();
 	}
 
 	private void assertControl(Control render) {
@@ -68,10 +162,84 @@
 	}
 
 	@Override
-	protected void mockControl() {
+	protected void mockControl() throws DatabindingFailedException {
 		final EStructuralFeature eObject = EcoreFactory.eINSTANCE.createEAttribute();
 		final EStructuralFeature eStructuralFeature = EcorePackage.eINSTANCE.getETypedElement_LowerBound();
 		super.mockControl(eObject, eStructuralFeature);
 	}
 
+	@Test
+	public void testDatabindingServiceUsageInitialBinding() throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, DatabindingFailedException {
+		final int initialValue = 13;
+		final ObservingWritableValue mockedObservable = new ObservingWritableValue(realm, initialValue,
+			EcorePackage.eINSTANCE.getETypedElement_LowerBound());
+		final Text text = setUpDatabindingTest(mockedObservable);
+
+		final DecimalFormat format = getDecimalFormat(Integer.class);
+
+		assertEquals(format.format(initialValue), text.getText());
+
+	}
+
+	@Test
+	public void testDatabindingServiceUsageChangeObservable() throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, DatabindingFailedException {
+		final int initialValue = 13;
+		final int changedValue = 42;
+		final ObservingWritableValue mockedObservable = new ObservingWritableValue(realm, initialValue,
+			EcorePackage.eINSTANCE.getETypedElement_LowerBound());
+
+		final Text text = setUpDatabindingTest(mockedObservable);
+		mockedObservable.setValue(changedValue);
+
+		final DecimalFormat format = getDecimalFormat(Integer.class);
+
+		assertEquals(format.format(changedValue), text.getText());
+
+	}
+
+	@Test
+	public void testDatabindingServiceUsageChangeControl() throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, DatabindingFailedException {
+		final int initialValue = 13;
+		final int changedValue = 42;
+		final ObservingWritableValue mockedObservable = new ObservingWritableValue(realm, initialValue,
+			EcorePackage.eINSTANCE.getETypedElement_LowerBound());
+
+		final Text text = setUpDatabindingTest(mockedObservable);
+
+		final DecimalFormat format = getDecimalFormat(Integer.class);
+		SWTTestUtil.typeAndFocusOut(text, format.format(changedValue));
+
+		assertEquals(changedValue, mockedObservable.getValue());
+
+	}
+
+	/**
+	 * Universal set up stuff for the data binding test cases.
+	 *
+	 * @param mockedObservable
+	 * @return
+	 * @throws NoRendererFoundException
+	 * @throws NoPropertyDescriptorFoundExeption
+	 * @throws DatabindingFailedException
+	 */
+	private Text setUpDatabindingTest(final ObservingWritableValue mockedObservable) throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, DatabindingFailedException {
+		mockDatabindingIsUnsettable();
+		when(databindingService.getObservableValue(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			mockedObservable, new ObservingWritableValue(mockedObservable));
+		when(databindingService.getValueProperty(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			Properties.selfValue(mockedObservable.getValueType()));
+
+		final Control renderControl = renderControl(new SWTGridCell(0, 2, renderer));
+		final Text text = (Text) renderControl;
+		return text;
+	}
+
+	private DecimalFormat getDecimalFormat(Class<?> instanceClass) {
+		return NumericalHelper.setupFormat(Locale.getDefault(), instanceClass);
+	}
+
 }
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 04d06fd..142efdd 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
@@ -7,18 +7,22 @@
 import static org.mockito.Mockito.when;
 
 import org.eclipse.emf.common.util.BasicEList;
+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.VContainedElement;
 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.renderer.NoPropertyDescriptorFoundExeption;
 import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException;
-import org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.swt.SWTRendererFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.GridDescriptionFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
-import org.eclipse.emf.ecp.view.test.common.swt.spi.DatabindingClassRunner;
+import org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleProvider;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
+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.GridData;
 import org.eclipse.swt.widgets.Composite;
@@ -26,42 +30,50 @@
 import org.eclipse.swt.widgets.Shell;
 import org.junit.After;
 import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
-import org.junit.runner.RunWith;
 import org.mockito.Mockito;
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
 
-@RunWith(DatabindingClassRunner.class)
 public class ViewRenderer_PTest {
 
 	private ViewSWTRenderer viewRenderer;
 	private VView view;
 	private ViewModelContext context;
 	private Shell shell;
-	private SWTRendererFactory factory;
+	private EMFFormsRendererFactory rendererFactory;
+	private DefaultRealm realm;
+
+	@BeforeClass
+	public static void setupClass() {
+	}
 
 	@Before
 	public void setUp() {
-		factory = mock(SWTRendererFactory.class);
-
-		viewRenderer = new ViewSWTRenderer(factory);
+		realm = new DefaultRealm();
+		final ReportService reportService = mock(ReportService.class);
+		final EMFFormsDatabinding databindingService = mock(EMFFormsDatabinding.class);
+		rendererFactory = mock(EMFFormsRendererFactory.class);
+		final EMFFormsLocaleProvider localeProvider = mock(EMFFormsLocaleProvider.class);
 		view = Mockito.mock(VView.class);
 
 		context = Mockito.mock(ViewModelContext.class);
 		shell = new Shell();
-
+		viewRenderer = new ViewSWTRenderer(view, context, reportService, rendererFactory, databindingService,
+			localeProvider);
+		viewRenderer.init();
 	}
 
 	@After
 	public void tearDown() {
+		realm.dispose();
 		shell.dispose();
 	}
 
 	@Test
 	public void testGridDescription() throws NoRendererFoundException,
 		NoPropertyDescriptorFoundExeption {
-		viewRenderer.init(view, context);
 		final SWTGridDescription gridDescription = viewRenderer.getGridDescription(GridDescriptionFactory.INSTANCE
 			.createEmptyGridDescription());
 		assertEquals(1, gridDescription.getColumns());
@@ -73,7 +85,6 @@
 		NoPropertyDescriptorFoundExeption {
 		when(view.getChildren())
 			.thenReturn(new BasicEList<VContainedElement>());
-		viewRenderer.init(view, context);
 		final Control render = viewRenderer.render(new SWTGridCell(0, 0, viewRenderer), shell);
 		assertTrue(Composite.class.isInstance(render));
 		assertEquals(0, Composite.class.cast(render).getChildren().length);
@@ -81,7 +92,7 @@
 
 	@Test
 	public void testMultipleSimpleCompositeView() throws NoRendererFoundException,
-		NoPropertyDescriptorFoundExeption {
+		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
 		final BasicEList<VContainedElement> basicEList = new BasicEList<VContainedElement>();
 		final VContainedElement control1 = mock(VContainedElement.class);
 		final VContainedElement control2 = mock(VContainedElement.class);
@@ -92,10 +103,9 @@
 		final AbstractSWTRenderer<VElement> mockRenderer1 = createCompositeMockRenderer(control1, 1);
 		final AbstractSWTRenderer<VElement> mockRenderer2 = createCompositeMockRenderer(control2, 1);
 
-		when(factory.getRenderer(control1, context)).thenReturn(mockRenderer1);
-		when(factory.getRenderer(control2, context)).thenReturn(mockRenderer2);
+		when(rendererFactory.getRendererInstance(control1, context)).thenReturn(mockRenderer1);
+		when(rendererFactory.getRendererInstance(control2, context)).thenReturn(mockRenderer2);
 
-		viewRenderer.init(view, context);
 		final Control render = viewRenderer.render(new SWTGridCell(0, 0, viewRenderer), shell);
 		assertTrue(Composite.class.isInstance(render));
 		assertEquals(2, Composite.class.cast(render).getChildren().length);
@@ -110,7 +120,7 @@
 
 	@Test
 	public void testMultipleComplexGridDescriptionView() throws NoRendererFoundException,
-		NoPropertyDescriptorFoundExeption {
+		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
 		final BasicEList<VContainedElement> basicEList = new BasicEList<VContainedElement>();
 		final VContainedElement control1 = mock(VContainedElement.class);
 		final VContainedElement control2 = mock(VContainedElement.class);
@@ -124,11 +134,10 @@
 		final AbstractSWTRenderer<VElement> mockRenderer2 = createCompositeMockRenderer(control2, 3);
 		final AbstractSWTRenderer<VElement> mockRenderer3 = createCompositeMockRenderer(control3, 2);
 
-		when(factory.getRenderer(control1, context)).thenReturn(mockRenderer1);
-		when(factory.getRenderer(control2, context)).thenReturn(mockRenderer2);
-		when(factory.getRenderer(control3, context)).thenReturn(mockRenderer3);
+		when(rendererFactory.getRendererInstance(control1, context)).thenReturn(mockRenderer1);
+		when(rendererFactory.getRendererInstance(control2, context)).thenReturn(mockRenderer2);
+		when(rendererFactory.getRendererInstance(control3, context)).thenReturn(mockRenderer3);
 
-		viewRenderer.init(view, context);
 		final Control render = viewRenderer.render(new SWTGridCell(0, 0, viewRenderer), shell);
 		assertTrue(Composite.class.isInstance(render));
 		assertEquals(6, Composite.class.cast(render).getChildren().length);
@@ -170,7 +179,6 @@
 			}
 
 		});
-		mockRenderer.init(control1, context);
 		return mockRenderer;
 	}
 
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 244fe65..13351c1 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
@@ -1,18 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ * Lucas Koehler - databinding tests
+ ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.core.swt.renderer;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
+import java.text.DateFormat;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.Locale;
+
+import javax.xml.datatype.DatatypeConfigurationException;
+import javax.xml.datatype.DatatypeFactory;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+import org.eclipse.core.databinding.property.Properties;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.test.common.DefaultRealm;
 import org.eclipse.emf.ecp.view.core.swt.test.model.SimpleTestObject;
 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.ecp.view.core.swt.tests.ObservingWritableValue;
 import org.eclipse.emf.ecp.view.spi.model.LabelAlignment;
+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.spi.swt.SWTRendererFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.test.common.swt.spi.DatabindingClassRunner;
+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.test.common.swt.spi.SWTTestUtil;
+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;
+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.swt.SWT;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
@@ -21,42 +59,86 @@
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.mockito.Mockito;
 
-@RunWith(DatabindingClassRunner.class)
 public class XMLDateControlRenderer_PTest extends AbstractControl_PTest {
 
+	private DefaultRealm realm;
+
 	@Before
-	public void before() {
-		final SWTRendererFactory factory = mock(SWTRendererFactory.class);
-		setup(new XMLDateControlSWTRenderer(factory));
+	public void before() throws DatabindingFailedException {
+		realm = new DefaultRealm();
+		final ReportService reportService = mock(ReportService.class);
+		databindingService = mock(EMFFormsDatabinding.class);
+		labelProvider = mock(EMFFormsLabelProvider.class);
+		templateProvider = mock(VTViewTemplateProvider.class);
+		final EMFFormsEditSupport editSupport = mock(EMFFormsEditSupport.class);
+		final EMFFormsLocalizationService localizationService = mock(EMFFormsLocalizationService.class);
+		final EMFFormsLocaleProvider localeProvider = mock(EMFFormsLocaleProvider.class);
+		when(localeProvider.getLocale()).thenReturn(Locale.getDefault());
+		final ImageRegistryService imageRegistryService = mock(ImageRegistryService.class);
+
+		setup();
+		renderer = new XMLDateControlSWTRenderer(vControl, context, reportService, databindingService, labelProvider,
+			templateProvider, editSupport, localizationService, localeProvider, imageRegistryService);
+		renderer.init();
 	}
 
 	@After
 	public void testTearDown() {
+		realm.dispose();
 		dispose();
 	}
 
 	@Test
 	public void renderControlLabelAlignmentNone()
-		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException {
 		setMockLabelAlignment(LabelAlignment.NONE);
+		final TestObservableValue mockedObservableValue = mock(TestObservableValue.class);
+		when(mockedObservableValue.getRealm()).thenReturn(realm);
+		final EObject mockedEObject = mock(EObject.class);
+		when(mockedEObject.eIsSet(any(EStructuralFeature.class))).thenReturn(true);
+		when(mockedObservableValue.getObserved()).thenReturn(mockedEObject);
+		final EStructuralFeature mockedEStructuralFeature = mock(EStructuralFeature.class);
+		when(mockedEStructuralFeature.isUnsettable()).thenReturn(false);
+		when(mockedObservableValue.getValueType()).thenReturn(mockedEStructuralFeature);
+		when(databindingService.getObservableValue(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			mockedObservableValue);
 		final Control render = renderControl(new SWTGridCell(0, 1, renderer));
 		assertControl(render);
 	}
 
 	@Test
 	public void renderControlLabelAlignmentLeft()
-		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException {
 		setMockLabelAlignment(LabelAlignment.LEFT);
+		final TestObservableValue mockedObservableValue = mock(TestObservableValue.class);
+		when(mockedObservableValue.getRealm()).thenReturn(realm);
+		final EObject mockedEObject = mock(EObject.class);
+		when(mockedEObject.eIsSet(any(EStructuralFeature.class))).thenReturn(true);
+		when(mockedObservableValue.getObserved()).thenReturn(mockedEObject);
+		final EStructuralFeature mockedEStructuralFeature = mock(EStructuralFeature.class);
+		when(mockedEStructuralFeature.isUnsettable()).thenReturn(false);
+		when(mockedObservableValue.getValueType()).thenReturn(mockedEStructuralFeature);
+		when(databindingService.getObservableValue(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			mockedObservableValue);
 		final Control render = renderControl(new SWTGridCell(0, 2, renderer));
 
 		assertControl(render);
 	}
 
+	/**
+	 * Tests whether the {@link EMFFormsLabelProvider} is used to get the labels of the control.
+	 *
+	 * @throws NoRendererFoundException
+	 * @throws NoPropertyDescriptorFoundExeption
+	 * @throws DatabindingFailedException
+	 * @throws NoLabelFoundException
+	 */
 	@Test
-	public void renderLabel() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
-		renderLabel("Xml Date");
+	public void testLabelServiceUsage() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		DatabindingFailedException, NoLabelFoundException {
+		labelServiceUsage();
 	}
 
 	private void assertControl(Control render) {
@@ -71,9 +153,112 @@
 	}
 
 	@Override
-	protected void mockControl() {
+	protected void mockControl() throws DatabindingFailedException {
 		final SimpleTestObject eObject = TestFactory.eINSTANCE.createSimpleTestObject();
 		super.mockControl(eObject, TestPackage.eINSTANCE.getSimpleTestObject_XmlDate());
 	}
 
+	@Test
+	public void testDatabindingServiceUsageInitialBinding() throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, DatatypeConfigurationException, DatabindingFailedException {
+		final XMLGregorianCalendar initialValue = getXMLGregorianCalendarFromDate(new Date());
+
+		final ObservingWritableValue mockedObservable = new ObservingWritableValue(realm, initialValue,
+			TestPackage.eINSTANCE.getSimpleTestObject_XmlDate());
+		final Text text = setUpDatabindingTest(mockedObservable);
+
+		final String expected = formatXMLGregorianCalendar(initialValue);
+		assertEquals(expected, text.getText());
+
+	}
+
+	@Test
+	public void testDatabindingServiceUsageChangeObservable() throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, DatatypeConfigurationException, DatabindingFailedException {
+		final XMLGregorianCalendar initialValue = getXMLGregorianCalendarFromDate(new Date());
+		final XMLGregorianCalendar changedValue = getXMLGregorianCalendarFromDate(new Date(
+			System.currentTimeMillis() * 2));
+		final ObservingWritableValue mockedObservable = new ObservingWritableValue(realm, initialValue,
+			TestPackage.eINSTANCE.getSimpleTestObject_XmlDate());
+
+		final Text text = setUpDatabindingTest(mockedObservable);
+		mockedObservable.setValue(changedValue);
+
+		final String expected = formatXMLGregorianCalendar(changedValue);
+		assertEquals(expected, text.getText());
+
+	}
+
+	@Test
+	public void testDatabindingServiceUsageChangeControl() throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, DatatypeConfigurationException, DatabindingFailedException {
+		// TODO
+		final XMLGregorianCalendar initialValue = getXMLGregorianCalendarFromDate(new Date());
+		final XMLGregorianCalendar changedValue = getXMLGregorianCalendarFromDate(new Date(
+			System.currentTimeMillis() * 2));
+		final ObservingWritableValue mockedObservable = new ObservingWritableValue(realm, initialValue,
+			TestPackage.eINSTANCE.getSimpleTestObject_XmlDate());
+
+		final Text text = setUpDatabindingTest(mockedObservable);
+		SWTTestUtil.typeAndFocusOut(text, formatXMLGregorianCalendar(changedValue));
+
+		final String actual = formatXMLGregorianCalendar((XMLGregorianCalendar) mockedObservable.getValue());
+		assertEquals(text.getText(), actual);
+
+	}
+
+	/**
+	 * Universal set up stuff for the data binding test cases.
+	 *
+	 * @param mockedObservable
+	 * @return
+	 * @throws NoRendererFoundException
+	 * @throws NoPropertyDescriptorFoundExeption
+	 * @throws DatabindingFailedException
+	 */
+	private Text setUpDatabindingTest(final ObservingWritableValue mockedObservable) throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, DatabindingFailedException {
+		Mockito.reset(databindingService);
+		mockDatabindingIsUnsettable();
+		when(databindingService.getObservableValue(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			mockedObservable, new ObservingWritableValue(mockedObservable));
+		when(databindingService.getValueProperty(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			Properties.selfValue(mockedObservable.getValueType()));
+
+		final Control renderControl = renderControl(new SWTGridCell(0, 2, renderer));
+		final Composite composite = (Composite) renderControl;
+		final Text text = (Text) composite.getChildren()[0];
+		return text;
+	}
+
+	private String formatXMLGregorianCalendar(XMLGregorianCalendar calendar) {
+		final DateFormat format = setupFormat();
+		if (calendar == null) {
+			return null;
+		}
+		final Date date = calendar.toGregorianCalendar().getTime();
+		return format.format(date);
+	}
+
+	/**
+	 * Setups the {@link DateFormat}.
+	 *
+	 * @return the {@link DateFormat}
+	 */
+	private DateFormat setupFormat() {
+		final DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.getDefault());
+		df.setLenient(false);
+		return df;
+	}
+
+	/**
+	 * @return
+	 * @throws DatatypeConfigurationException
+	 */
+	private XMLGregorianCalendar getXMLGregorianCalendarFromDate(Date date) throws DatatypeConfigurationException {
+		final GregorianCalendar cal = new GregorianCalendar();
+		cal.setTime(date);
+		final XMLGregorianCalendar initialValue = DatatypeFactory.newInstance().newXMLGregorianCalendar(cal);
+		return initialValue;
+	}
 }
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 2b4d313..c1952cf 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
@@ -1,61 +1,131 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ * Lucas Koehler - databinding tests
+ ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.core.swt.renderer;
 
 import static org.junit.Assert.assertEquals;
 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 org.eclipse.core.databinding.observable.Observables;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.EcoreFactory;
 import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecp.test.common.DefaultRealm;
+import org.eclipse.emf.ecp.view.core.swt.tests.ObservingWritableValue;
 import org.eclipse.emf.ecp.view.internal.core.swt.renderer.AbstractControl_PTest;
 import org.eclipse.emf.ecp.view.spi.model.LabelAlignment;
+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.spi.swt.SWTRendererFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.test.common.swt.spi.DatabindingClassRunner;
+import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
+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;
+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.swt.core.layout.SWTGridCell;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Text;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.mockito.Mockito;
 
-@RunWith(DatabindingClassRunner.class)
 public class TextControlRenderer_PTest extends AbstractControl_PTest {
 
+	private DefaultRealm realm;
+
 	@Before
-	public void before() {
-		final SWTRendererFactory factory = mock(SWTRendererFactory.class);
-		setup(new TextControlSWTRenderer(factory));
+	public void before() throws DatabindingFailedException {
+		realm = new DefaultRealm();
+		final ReportService reportService = mock(ReportService.class);
+		databindingService = mock(EMFFormsDatabinding.class);
+		labelProvider = mock(EMFFormsLabelProvider.class);
+		templateProvider = mock(VTViewTemplateProvider.class);
+		final EMFFormsEditSupport editSupport = mock(EMFFormsEditSupport.class);
+		setup();
+		renderer = new TextControlSWTRenderer(vControl, context, reportService, databindingService, labelProvider,
+			templateProvider, editSupport);
+		renderer.init();
 	}
 
 	@After
 	public void testTearDown() {
+		realm.dispose();
 		dispose();
 	}
 
 	@Test
 	public void renderControlLabelAlignmentNone()
-		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException,
+		NoLabelFoundException {
+		when(labelProvider.getDisplayName(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			Observables.constantObservableValue("antiException", String.class));
 		setMockLabelAlignment(LabelAlignment.NONE);
+		final TestObservableValue mockedObservableValue = mock(TestObservableValue.class);
+		when(mockedObservableValue.getRealm()).thenReturn(realm);
+		final EObject mockedEObject = mock(EObject.class);
+		when(mockedEObject.eIsSet(any(EStructuralFeature.class))).thenReturn(true);
+		when(mockedObservableValue.getObserved()).thenReturn(mockedEObject);
+		final EStructuralFeature mockedEStructuralFeature = EcorePackage.eINSTANCE.getENamedElement_Name();
+		when(mockedObservableValue.getValueType()).thenReturn(mockedEStructuralFeature);
+		when(databindingService.getObservableValue(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			mockedObservableValue);
 		final Control render = renderControl(new SWTGridCell(0, 1, renderer));
 		assertControl(render);
 	}
 
 	@Test
 	public void renderControlLabelAlignmentLeft()
-		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException,
+		NoLabelFoundException {
+		when(labelProvider.getDisplayName(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			Observables.constantObservableValue("antiException", String.class));
 		setMockLabelAlignment(LabelAlignment.LEFT);
+		final TestObservableValue mockedObservableValue = mock(TestObservableValue.class);
+		when(mockedObservableValue.getRealm()).thenReturn(realm);
+		final EObject mockedEObject = mock(EObject.class);
+		when(mockedEObject.eIsSet(any(EStructuralFeature.class))).thenReturn(true);
+		when(mockedObservableValue.getObserved()).thenReturn(mockedEObject);
+		final EStructuralFeature mockedEStructuralFeature = mock(EStructuralFeature.class);
+		when(mockedEStructuralFeature.isUnsettable()).thenReturn(false);
+		when(mockedObservableValue.getValueType()).thenReturn(mockedEStructuralFeature);
+		when(databindingService.getObservableValue(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			mockedObservableValue);
 		final Control render = renderControl(new SWTGridCell(0, 2, renderer));
 
 		assertControl(render);
 	}
 
+	/**
+	 * Tests whether the {@link EMFFormsLabelProvider} is used to get the labels of the control.
+	 *
+	 * @throws NoRendererFoundException
+	 * @throws NoPropertyDescriptorFoundExeption
+	 * @throws DatabindingFailedException
+	 * @throws NoLabelFoundException
+	 */
 	@Test
-	public void renderLabel() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
-		renderLabel("Name");
+	public void testLabelServiceUsage() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		DatabindingFailedException, NoLabelFoundException {
+		labelServiceUsage();
 	}
 
 	private void assertControl(Control render) {
@@ -67,10 +137,110 @@
 	}
 
 	@Override
-	protected void mockControl() {
+	protected void mockControl() throws DatabindingFailedException {
 		final EStructuralFeature eObject = EcoreFactory.eINSTANCE.createEAttribute();
 		final EStructuralFeature eStructuralFeature = EcorePackage.eINSTANCE.getENamedElement_Name();
 		super.mockControl(eObject, eStructuralFeature);
 	}
 
+	@Test
+	public void testDatabindingServiceUsageInitialBinding() throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, DatabindingFailedException, NoLabelFoundException {
+		final String initialValue = "initial";
+		final ObservingWritableValue mockedObservable = new ObservingWritableValue(realm, initialValue,
+			EcorePackage.eINSTANCE.getENamedElement_Name());
+		final Text text = setUpDatabindingTest(mockedObservable);
+
+		assertEquals(initialValue, text.getText());
+
+	}
+
+	@Test
+	public void testDatabindingServiceUsageChangeObservable() throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, DatabindingFailedException, NoLabelFoundException {
+		final String initialValue = "initial";
+		final String changedValue = "changed";
+		final ObservingWritableValue mockedObservable = new ObservingWritableValue(realm, initialValue,
+			EcorePackage.eINSTANCE.getENamedElement_Name());
+
+		final Text text = setUpDatabindingTest(mockedObservable);
+		mockedObservable.setValue(changedValue);
+
+		assertEquals(changedValue, text.getText());
+
+	}
+
+	@Test
+	public void testDatabindingServiceUsageChangeControl() throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, DatabindingFailedException, NoLabelFoundException {
+		final String initialValue = "initial";
+		final String changedValue = "changed";
+		final ObservingWritableValue mockedObservable = new ObservingWritableValue(realm, initialValue,
+			EcorePackage.eINSTANCE.getENamedElement_Name());
+
+		final Text text = setUpDatabindingTest(mockedObservable);
+		SWTTestUtil.typeAndFocusOut(text, changedValue);
+
+		assertEquals(changedValue, mockedObservable.getValue());
+
+	}
+
+	/**
+	 * Universal set up stuff for the data binding test cases.
+	 *
+	 * @param mockedObservable
+	 * @return
+	 * @throws NoRendererFoundException
+	 * @throws NoPropertyDescriptorFoundExeption
+	 * @throws DatabindingFailedException if the databinding failed
+	 * @throws NoLabelFoundException
+	 */
+	private Text setUpDatabindingTest(final ObservingWritableValue mockedObservable) throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, DatabindingFailedException, NoLabelFoundException {
+		when(labelProvider.getDisplayName(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			Observables.constantObservableValue("antiException"));
+		Mockito.reset(databindingService);
+		mockDatabindingIsUnsettable();
+		when(databindingService.getObservableValue(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			mockedObservable, new ObservingWritableValue(mockedObservable));
+
+		final Control renderControl = renderControl(new SWTGridCell(0, 2, renderer));
+		final Text text = (Text) renderControl;
+		return text;
+	}
+
+	/**
+	 * Tests whether the {@link EMFFormsLabelProvider} is used to get the message of the text field of the text
+	 * control.
+	 *
+	 * @throws NoPropertyDescriptorFoundExeption
+	 * @throws NoRendererFoundException
+	 * @throws DatabindingFailedException
+	 * @throws NoLabelFoundException
+	 */
+	@Test
+	public void testLabelServiceUsageTextField() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		DatabindingFailedException, NoLabelFoundException {
+		final IObservableValue testDisplayName = Observables.constantObservableValue("test-displayname", String.class);
+		when(labelProvider.getDisplayName(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			testDisplayName);
+
+		setMockLabelAlignment(LabelAlignment.LEFT);
+
+		final TestObservableValue mockedObservableValue = mock(TestObservableValue.class);
+		when(mockedObservableValue.getRealm()).thenReturn(realm);
+		final EObject mockedEObject = mock(EObject.class);
+		when(mockedEObject.eIsSet(any(EStructuralFeature.class))).thenReturn(true);
+		when(mockedObservableValue.getObserved()).thenReturn(mockedEObject);
+		final EStructuralFeature mockedEStructuralFeature = EcorePackage.eINSTANCE.getENamedElement_Name();
+		when(mockedObservableValue.getValueType()).thenReturn(mockedEStructuralFeature);
+		when(databindingService.getObservableValue(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			mockedObservableValue);
+
+		final Control renderControl = renderControl(new SWTGridCell(0, 2, renderer));
+		assertTrue(Text.class.isInstance(renderControl));
+
+		final Text text = (Text) renderControl;
+		assertEquals(testDisplayName.getValue(), text.getMessage());
+	}
 }
diff --git a/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/.gitignore b/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/AllCustomControlSWTTests.launch b/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/AllCustomControlSWTTests.launch
index 5109eee..9319346 100644
--- a/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/AllCustomControlSWTTests.launch
+++ b/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/AllCustomControlSWTTests.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,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.apache.commons.codec@default:default,org.apache.commons.logging@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.win32.x86_64@default:default,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources.win32.x86_64@default:default,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.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@-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.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-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.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.ui.rcp@default:false,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.test@default:false,org.eclipse.emf.ecp.view.context@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.custom.model.edit@default:default,org.eclipse.emf.ecp.view.custom.model@default:default,org.eclipse.emf.ecp.view.custom.ui.swt.test@default:default,org.eclipse.emf.ecp.view.custom.ui.swt@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:false,org.eclipse.emf.ecp.view.model.provider.xmi@default:default,org.eclipse.emf.ecp.view.model.test@default:false,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emf.ecp.view.table.model.edit@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.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.edit@default:default,org.eclipse.emf.ecp.view.vertical.model@default:default"/>

+<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.apache.commons.codec@default:default,org.apache.commons.logging@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.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.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@-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.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-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.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.test.common@default:default,org.eclipse.emf.ecp.ui.rcp@default:false,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.test@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.edit@default:default,org.eclipse.emf.ecp.view.custom.model@default:default,org.eclipse.emf.ecp.view.custom.ui.swt.test@default:false,org.eclipse.emf.ecp.view.custom.ui.swt@default:default,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.edit@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.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.edit@default:default,org.eclipse.emf.ecp.view.vertical.model@default:default,org.eclipse.emfforms.common@default:default,org.eclipse.emfforms.core.services.databinding.featurepath@default:default,org.eclipse.emfforms.core.services.databinding@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.locale.default@default:default,org.eclipse.emfforms.core.services@default:default,org.eclipse.emfforms.localization@default:default,org.eclipse.emfforms.swt.core.plugin@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"/>

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 ef7073a..0cfe0a4 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,7 +2,7 @@
 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.5.0,2.0.0)",
@@ -13,16 +13,22 @@
  org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.ui.view;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.view.custom.ui.swt;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.equinox.common;bundle-version="[3.6.0,4.0.0)",
- org.eclipse.core.runtime;bundle-version="3.8.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.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.validation;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
- org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.5.0,2.0.0)"
+ org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.5.0,2.0.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.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.custom.ui.swt;bundle-version="[1.6.0,2.0.0)"
 Export-Package: org.eclipse.emf.ecp.view.custom.ui.swt.test;version="1
- .5.1";x-internal:=true
-Import-Package: org.eclipse.jface.layout;version="0.0.0",
+ .6.0";x-internal:=true
+Import-Package: org.eclipse.emfforms.spi.common.report;version="1.6.0",
+ org.eclipse.jface.layout;version="0.0.0",
  org.eclipse.jface.viewers;version="0.0.0"
+Bundle-ActivationPolicy: lazy
+Bundle-Activator: org.eclipse.emf.ecp.view.custom.ui.swt.test.Activator
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 2ea45a5..dd93384 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -24,38 +24,46 @@
 				<configuration>
 		          	<useUIHarness>true</useUIHarness>
 		          	<useUIThread>true</useUIThread>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.template.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.viewmodel.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.custom.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.emfstore.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-					</dependencies>
+				</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.target.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.template.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.viewmodel.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.custom.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.emfstore.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
diff --git a/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/Activator.java b/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/Activator.java
new file mode 100644
index 0000000..b8bdceb
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/Activator.java
@@ -0,0 +1,92 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.custom.ui.swt.test;
+
+import org.eclipse.core.runtime.Plugin;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * Activator of the custom.ui.swt.test bundle.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class Activator extends Plugin {
+	/** The plug-in ID. */
+	public static final String PLUGIN_ID = "org.eclipse.emf.ecp.view.custom.ui.swt.test"; //$NON-NLS-1$
+
+	// The shared instance
+	private static Activator plugin;
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+	 */
+	@Override
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+	 */
+	@Override
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance.
+	 *
+	 * @return the shared instance
+	 */
+	public static Activator getDefault() {
+		return plugin;
+	}
+
+	private ServiceReference<ReportService> reportServiceReference;
+
+	/**
+	 * Returns the {@link ReportService}.
+	 *
+	 * @return the {@link ReportService}
+	 */
+	public ReportService getReportService() {
+		if (reportServiceReference == null) {
+			reportServiceReference = plugin.getBundle().getBundleContext()
+				.getServiceReference(ReportService.class);
+		}
+		return plugin.getBundle().getBundleContext().getService(reportServiceReference);
+	}
+
+	/**
+	 * Returns the {@link EMFFormsDatabinding} service.
+	 *
+	 * @return The {@link EMFFormsDatabinding}
+	 */
+	public EMFFormsDatabinding getEMFFormsDatabinding() {
+		final ServiceReference<EMFFormsDatabinding> serviceReference = plugin.getBundle().getBundleContext()
+			.getServiceReference(EMFFormsDatabinding.class);
+
+		final EMFFormsDatabinding service = plugin.getBundle().getBundleContext()
+			.getService(serviceReference);
+		plugin.getBundle().getBundleContext().ungetService(serviceReference);
+
+		return service;
+	}
+}
diff --git a/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/CustomControlDMR_PTest.java b/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/CustomControlDMR_PTest.java
index 86f11ac..b347058 100644
--- a/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/CustomControlDMR_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/CustomControlDMR_PTest.java
@@ -31,6 +31,7 @@
 import org.eclipse.emf.emfstore.bowling.BowlingFactory;
 import org.eclipse.emf.emfstore.bowling.Fan;
 import org.eclipse.emf.emfstore.bowling.Merchandise;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
 import org.junit.Test;
@@ -48,7 +49,7 @@
 
 	@Test
 	public void testDMRChangeListener() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
-		InterruptedException {
+		InterruptedException, EMFFormsNoRendererException {
 		final Fan fan = BowlingFactory.eINSTANCE.createFan();
 		final Merchandise old = BowlingFactory.eINSTANCE.createMerchandise();
 		old.setName(OLD_NAME);
diff --git a/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/CustomControlStub.java b/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/CustomControlStub.java
index a951cbc..69a2fd2 100644
--- a/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/CustomControlStub.java
+++ b/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/CustomControlStub.java
@@ -19,9 +19,9 @@
 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.spi.swt.layout.GridDescriptionFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
+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.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
@@ -116,7 +116,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.custom.swt.ECPAbstractCustomControlSWT#renderControl(org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell,
+	 * @see org.eclipse.emf.ecp.view.spi.custom.swt.ECPAbstractCustomControlSWT#renderControl(org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell,
 	 *      org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
diff --git a/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/CustomControlStub2.java b/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/CustomControlStub2.java
index df9aeb3..6439c95 100644
--- a/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/CustomControlStub2.java
+++ b/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/CustomControlStub2.java
@@ -22,10 +22,10 @@
 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.layout.GridDescriptionFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
 import org.eclipse.emf.emfstore.bowling.BowlingPackage;
+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.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
@@ -80,7 +80,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.custom.swt.ECPAbstractCustomControlSWT#renderControl(org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell,
+	 * @see org.eclipse.emf.ecp.view.spi.custom.swt.ECPAbstractCustomControlSWT#renderControl(org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell,
 	 *      org.eclipse.swt.widgets.Composite)
 	 */
 	@SuppressWarnings({ "restriction", "deprecation" })
diff --git a/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/CustomControlStub3.java b/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/CustomControlStub3.java
index f219ce0..f07f3b9 100644
--- a/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/CustomControlStub3.java
+++ b/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/CustomControlStub3.java
@@ -24,10 +24,10 @@
 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.layout.GridDescriptionFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
 import org.eclipse.emf.emfstore.bowling.BowlingPackage;
+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.jface.layout.TableColumnLayout;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.swt.SWT;
@@ -97,7 +97,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.custom.swt.ECPAbstractCustomControlSWT#renderControl(org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell,
+	 * @see org.eclipse.emf.ecp.view.spi.custom.swt.ECPAbstractCustomControlSWT#renderControl(org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell,
 	 *      org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
diff --git a/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/CustomControlTwoRowWithViewer_PTest.java b/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/CustomControlTwoRowWithViewer_PTest.java
index baf6f14..40687d7 100644
--- a/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/CustomControlTwoRowWithViewer_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/CustomControlTwoRowWithViewer_PTest.java
@@ -25,12 +25,12 @@
 import org.eclipse.emf.ecp.view.spi.custom.model.VCustomFactory;
 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.layout.SWTGridCell;
 import org.eclipse.emf.ecp.view.test.common.swt.spi.DatabindingClassRunner;
 import org.eclipse.emf.ecp.view.test.common.swt.spi.SWTViewTestHelper;
 import org.eclipse.emf.emfstore.bowling.BowlingFactory;
 import org.eclipse.emf.emfstore.bowling.League;
 import org.eclipse.emf.emfstore.bowling.Player;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
diff --git a/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/ECPAbstractCustomControlSWTStub.java b/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/ECPAbstractCustomControlSWTStub.java
index e4ec8b7..494ed15 100644
--- a/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/ECPAbstractCustomControlSWTStub.java
+++ b/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/ECPAbstractCustomControlSWTStub.java
@@ -26,9 +26,9 @@
 import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
 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.layout.GridDescriptionFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
+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.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
@@ -111,7 +111,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.custom.swt.ECPAbstractCustomControlSWT#renderControl(org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell,
+	 * @see org.eclipse.emf.ecp.view.spi.custom.swt.ECPAbstractCustomControlSWT#renderControl(org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell,
 	 *      org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
diff --git a/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/ECPAbstractCustomControlSWT_PTest.java b/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/ECPAbstractCustomControlSWT_PTest.java
index 7958772..2701cc6 100644
--- a/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/ECPAbstractCustomControlSWT_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/ECPAbstractCustomControlSWT_PTest.java
@@ -28,6 +28,7 @@
 import java.util.NoSuchElementException;
 import java.util.Set;
 
+import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.emf.common.util.BasicDiagnostic;
 import org.eclipse.emf.common.util.Diagnostic;
 import org.eclipse.emf.ecore.EAttribute;
@@ -47,12 +48,14 @@
 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.layout.SWTGridCell;
 import org.eclipse.emf.ecp.view.test.common.swt.spi.DatabindingClassRunner;
 import org.eclipse.emf.ecp.view.test.common.swt.spi.SWTViewTestHelper;
 import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
 import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
@@ -471,13 +474,15 @@
 	}
 
 	private VDomainModelReference getFeature(Collection<VDomainModelReference> features,
-		EStructuralFeature structuralFeature, boolean isEditable) {
+		EStructuralFeature structuralFeature, boolean isEditable) throws DatabindingFailedException {
 		final Iterator<VDomainModelReference> iterator = features.iterator();
 
 		while (iterator.hasNext()) {
 			final VDomainModelReference feature = iterator.next();
-			final Setting setting = feature.getIterator().next();
-			if (setting.getEStructuralFeature() == structuralFeature) { // && feature.isEditable() == isEditable
+			final IValueProperty valueProperty = Activator.getDefault().getEMFFormsDatabinding()
+				.getValueProperty(feature, null);
+			final EStructuralFeature currentStructuralFeature = (EStructuralFeature) valueProperty.getValueType();
+			if (currentStructuralFeature == structuralFeature) { // && feature.isEditable() == isEditable
 				return feature;
 			}
 		}
@@ -486,7 +491,7 @@
 	}
 
 	@Test
-	public void testCustomControlGetHelp() {
+	public void testCustomControlGetHelp() throws DatabindingFailedException {
 		final VDomainModelReference feature = getFeature(customControl.getResolvedReferences(),
 			VCustomPackage.eINSTANCE.getCustomDomainModelReference_BundleName(), true);
 		final String help = customControl.getStubSWTHelper().getHelp(feature);
@@ -512,7 +517,7 @@
 	}
 
 	@Test
-	public void testCustomControlGetLabel() {
+	public void testCustomControlGetLabel() throws DatabindingFailedException {
 		final VDomainModelReference feature = getFeature(customControl.getResolvedReferences(),
 			VCustomPackage.eINSTANCE.getCustomDomainModelReference_BundleName(), true);
 		final String label = customControl.getStubSWTHelper().getLabel(feature);
@@ -613,7 +618,8 @@
 	// }
 
 	@Test
-	public void testReadonlyCustomControl() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+	public void testReadonlyCustomControl() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		EMFFormsNoRendererException {
 
 		controlModel.setReadonly(true);
 		controlModel.setBundleName("org.eclipse.emf.ecp.view.custom.ui.swt.test");
diff --git a/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/SWTCustomControl_PTest.java b/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/SWTCustomControl_PTest.java
index fe7ade2..c53984a 100644
--- a/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/SWTCustomControl_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/SWTCustomControl_PTest.java
@@ -1,14 +1,14 @@
 /*******************************************************************************
  * 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 v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  * Johannes Faltermeier
- * 
+ *
  *******************************************************************************/
 package org.eclipse.emf.ecp.view.custom.ui.swt.test;
 
@@ -17,7 +17,6 @@
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-import org.eclipse.emf.ecp.view.spi.context.ViewModelContextFactory;
 import org.eclipse.emf.ecp.view.spi.custom.model.VCustomControl;
 import org.eclipse.emf.ecp.view.spi.custom.model.VCustomDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.custom.model.VCustomFactory;
@@ -31,6 +30,7 @@
 import org.eclipse.emf.ecp.view.test.common.swt.spi.SWTViewTestHelper;
 import org.eclipse.emf.emfstore.bowling.BowlingFactory;
 import org.eclipse.emf.emfstore.bowling.Fan;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Shell;
 import org.junit.Ignore;
@@ -42,7 +42,7 @@
 
 	/**
 	 * @author Jonas
-	 * 
+	 *
 	 */
 	public class TestHandel {
 
@@ -80,12 +80,14 @@
 	private static final String BUNDLE_ID = "org.eclipse.emf.ecp.view.custom.ui.swt.test";
 
 	/**
-	 * 
+	 * @throws EMFFormsNoRendererException
+	 *
 	 */
 	// FIXME what to expect
 	@Test
 	@Ignore
-	public void testCustomControlinView() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+	public void testCustomControlinView() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		EMFFormsNoRendererException {
 		final VElement controlInView = createCustomControlInView();
 		final Shell shell = SWTViewTestHelper.createShell();
 		final Composite composite = (Composite) SWTViewTestHelper.render(controlInView, shell);
@@ -112,9 +114,9 @@
 		return view;
 	}
 
-	@Test
+	@Test(expected = IllegalStateException.class)
 	public void testCustomControlinViewWithoutClass() throws NoRendererFoundException,
-		NoPropertyDescriptorFoundExeption {
+		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
 		final VView view = VViewFactory.eINSTANCE.createView();
 
 		final VCustomControl customControl = createCustomControl();
@@ -139,7 +141,8 @@
 	}
 
 	@Test
-	public void testCustomControlInit() {
+	public void testCustomControlInit() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		EMFFormsNoRendererException {
 		final VView view = VViewFactory.eINSTANCE.createView();
 
 		final VCustomControl customControl = createCustomControl();
@@ -155,7 +158,9 @@
 		customControl.setDomainModelReference(domainModelReference);
 
 		final Fan domainModel = BowlingFactory.eINSTANCE.createFan();
-		ViewModelContextFactory.INSTANCE.createViewModelContext(view, domainModel);
+		final Shell shell = SWTViewTestHelper.createShell();
+		SWTViewTestHelper.render(view, domainModel, shell);
+		// ViewModelContextFactory.INSTANCE.createViewModelContext(view, domainModel);
 
 		assertNotNull(domainModel.getFavouriteMerchandise());
 	}
diff --git a/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/ValidationCustomControl.java b/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/ValidationCustomControl.java
index 7e61582..a1777eb 100644
--- a/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/ValidationCustomControl.java
+++ b/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/src/org/eclipse/emf/ecp/view/custom/ui/swt/test/ValidationCustomControl.java
@@ -21,10 +21,10 @@
 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.layout.GridDescriptionFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
 import org.eclipse.emf.emfstore.bowling.BowlingPackage;
+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.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
@@ -70,7 +70,7 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.ecp.view.spi.custom.swt.ECPAbstractCustomControlSWT#renderControl(org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell,
+	 * @see org.eclipse.emf.ecp.view.spi.custom.swt.ECPAbstractCustomControlSWT#renderControl(org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell,
 	 *      org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
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 9232aff..ae7bd64 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.5.1.qualifier"
+      version="1.6.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.5.1.qualifier">
+      license-feature-version="1.6.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 6aa6766..f624d3d 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.model.edit/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.dynamictree.model.edit/META-INF/MANIFEST.MF
index d254476..1ed871b 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,7 +2,7 @@
 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.dynamictree.model.provider.DynamicTreeEditPlugin$Implementation
 Bundle-Vendor: Eclipse Modeling Project
@@ -19,4 +19,4 @@
  org.eclipse.emf.ecp.view.model.edit;visibility:=reexport;bundle-version="[1.5.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.emf.ecp.view.dynamictree.model.provider;ve
- rsion="1.5.1"
+ rsion="1.6.0"
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 1b99780..cfc9d19 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.model.test/DynamicTreeTest.launch b/tests/org.eclipse.emf.ecp.view.dynamictree.model.test/DynamicTreeTest.launch
index e314802..240ee47 100644
--- a/tests/org.eclipse.emf.ecp.view.dynamictree.model.test/DynamicTreeTest.launch
+++ b/tests/org.eclipse.emf.ecp.view.dynamictree.model.test/DynamicTreeTest.launch
@@ -32,8 +32,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,javax.servlet@default:default,javax.xml@default:default,org.apache.batik.css*1.6.0.v201011041432@default:default,org.apache.batik.css*1.7.0.v201011041433@default:default,org.apache.batik.util*1.6.0.v201011041432@default:default,org.apache.batik.util*1.7.0.v201011041433@default:default,org.apache.batik.util.gui*1.6.0.v201011041432@default:default,org.apache.batik.util.gui*1.7.0.v200903091627@default:default,org.apache.commons.codec@default:default,org.apache.commons.logging@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.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.transaction@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.registry@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.win32.x86_64@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@-1:true,org.eclipse.swt.win32.win32.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.trace@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.win32@default:false,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.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.ui.rcp@default:false,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.test@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.dynamictree.model.edit@default:default,org.eclipse.emf.ecp.view.dynamictree.model.test@default:default,org.eclipse.emf.ecp.view.dynamictree.model@default:default,org.eclipse.emf.ecp.view.dynamictree.ui.swt@default:default,org.eclipse.emf.ecp.view.dynamictree.ui@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.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.editor.testplugin@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.test@default:false,org.eclipse.emf.ecp.view.model@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.swt@default:default,org.eclipse.emf.ecp.view.test.common@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"/>

+<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.apache.commons.codec@default:default,org.apache.commons.logging@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.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.transaction@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.registry@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.win32.x86_64@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@-1:true,org.eclipse.swt.win32.win32.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.trace@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.win32@default:false,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.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.rcp@default:false,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@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.dynamictree.model.edit@default:default,org.eclipse.emf.ecp.view.dynamictree.model.test@default:default,org.eclipse.emf.ecp.view.dynamictree.model@default:default,org.eclipse.emf.ecp.view.dynamictree.ui.swt@default:default,org.eclipse.emf.ecp.view.dynamictree.ui@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.indexdmr.model@default:default,org.eclipse.emf.ecp.view.label.model@default:default,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.editor.testplugin@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.table.model@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.test.common.swt@default:default,org.eclipse.emf.ecp.view.test.common@default:default,org.eclipse.emf.ecp.view.util.swt@default:default,org.eclipse.emf.ecp.view.validation@default:default,org.eclipse.emf.ecp.view.vertical.model@default:default,org.eclipse.emf.emfforms.core.services.emfspecificservice@default:default,org.eclipse.emf.emfforms.core.services.labelprovider@default:default,org.eclipse.emf.emfforms.localization@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@default:default,org.eclipse.emfforms.core.services.editsupport@default:default,org.eclipse.emfforms.swt.core.plugin@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"/>

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 b809f1b..5478a26 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Dynamic Containment Tree Tests
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.dynamictree.model.test;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.dynamictree.model.test.Activator
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
  org.junit;bundle-version="4.11.0",
@@ -23,7 +23,7 @@
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.view.dynamictree.model.test;versio
- n="1.5.1"; uses:="org.eclipse.emf.ecore,  org.eclipse.core.databindin
+ n="1.6.0"; uses:="org.eclipse.emf.ecore,  org.eclipse.core.databindin
  g,  org.eclipse.emf.ecp.view.context,  org.eclipse.emf.ecp.internal.u
  i.view.renderer,  org.osgi.framework,  org.eclipse.emf.ecp.view.dynam
  ictree.model,  org.eclipse.emf.edit.provider,  org.eclipse.emf.ecp.ed
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 78f91d4..54ab7c5 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -28,33 +28,41 @@
 					<useUIHarness>true</useUIHarness>
 					<useUIThread>true</useUIThread>
 					<testFailureIgnore>true</testFailureIgnore>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.viewmodel.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-                            <type>eclipse-feature</type>
-                            <artifactId>org.eclipse.emf.ecp.view.validation.feature</artifactId>
-                            <version>0.0.0</version>
-                        </dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.dynamictree.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-					</dependencies>
+				</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.target.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.viewmodel.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+	                            <type>eclipse-feature</type>
+	                            <id>org.eclipse.emf.ecp.view.validation.feature</id>
+	                            <versionRange>0.0.0</versionRange>
+	                        </requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.dynamictree.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.model/.gitignore b/tests/org.eclipse.emf.ecp.view.dynamictree.model/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.dynamictree.model/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.model/.project b/tests/org.eclipse.emf.ecp.view.dynamictree.model/.project
index e394e2e..c920f1f 100644
--- a/tests/org.eclipse.emf.ecp.view.dynamictree.model/.project
+++ b/tests/org.eclipse.emf.ecp.view.dynamictree.model/.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/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 9fb37be..6fbccd5 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,16 +2,20 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Dynamic Containment Tree Model Plugin
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.dynamictree.model;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.view.dynamictree.model;version="1.
- 5.1",org.eclipse.emf.ecp.view.dynamictree.model.impl;version="1.5.1",
- org.eclipse.emf.ecp.view.dynamictree.model.util;version="1.5.1"
+ 6.0",org.eclipse.emf.ecp.view.dynamictree.model.impl;version="1.6.0",
+ org.eclipse.emf.ecp.view.dynamictree.model.util;version="1.6.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.emf.ecore;visibility:=reexport;bundle-version="[2.5.0,3.0.0)",
- org.eclipse.emf.ecp.view.categorization.model;visibility:=reexport;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.view.model;visibility:=reexport;bundle-version="[1.5.0,2.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.5.0,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.5.0,2.0.0)";visibility:=reexport,
+ org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.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)"
 Bundle-ActivationPolicy: lazy
+Service-Component: OSGI-INF/dynamicContainmentTreeDMRConverter.xml
diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.model/OSGI-INF/dynamicContainmentTreeDMRConverter.xml b/tests/org.eclipse.emf.ecp.view.dynamictree.model/OSGI-INF/dynamicContainmentTreeDMRConverter.xml
new file mode 100644
index 0000000..2d4c3f2
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.dynamictree.model/OSGI-INF/dynamicContainmentTreeDMRConverter.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emf.ecp.view.dynamictree.model">

+   <implementation class="org.eclipse.emf.ecp.view.dynamictree.model.impl.DynamicContainmentTreeDMRConverter"/>

+   <service>

+      <provide interface="org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter"/>

+   </service>

+</scr:component>

diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.model/build.properties b/tests/org.eclipse.emf.ecp.view.dynamictree.model/build.properties
index 4465407..0150138 100644
--- a/tests/org.eclipse.emf.ecp.view.dynamictree.model/build.properties
+++ b/tests/org.eclipse.emf.ecp.view.dynamictree.model/build.properties
@@ -1,10 +1,9 @@
-#
-
 bin.includes = .,\
                model/,\
                META-INF/,\
                plugin.xml,\
-               plugin.properties
+               plugin.properties,\
+               OSGI-INF/
+output.. = bin/
 jars.compile.order = .
 source.. = src/
-output.. = bin/
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 4a3744c..bb40159 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.model/src/org/eclipse/emf/ecp/view/dynamictree/model/Activator.java b/tests/org.eclipse.emf.ecp.view.dynamictree.model/src/org/eclipse/emf/ecp/view/dynamictree/model/Activator.java
new file mode 100644
index 0000000..97e48ee
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.dynamictree.model/src/org/eclipse/emf/ecp/view/dynamictree/model/Activator.java
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.dynamictree.model;
+
+import org.eclipse.core.runtime.Plugin;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * The activator class controls the plug-in life cycle.
+ *
+ * @author Lucas Koehler
+ */
+public class Activator extends Plugin {
+
+	/** The plug-in ID. */
+	public static final String PLUGIN_ID = "org.eclipse.emf.ecp.view.dynamictree.model"; //$NON-NLS-1$
+
+	// The shared instance
+	private static Activator plugin;
+
+	/**
+	 * The constructor.
+	 */
+	public Activator() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+	 */
+	@Override
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+	 */
+	@Override
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance.
+	 *
+	 * @return the shared instance
+	 */
+	public static Activator getDefault() {
+		return plugin;
+	}
+
+	/**
+	 * Returns the {@link EMFFormsDatabinding} service.
+	 *
+	 * @return The {@link EMFFormsDatabinding}
+	 */
+	public EMFFormsDatabinding getEMFFormsDatabinding() {
+		final ServiceReference<EMFFormsDatabinding> serviceReference = plugin.getBundle().getBundleContext()
+			.getServiceReference(EMFFormsDatabinding.class);
+
+		final EMFFormsDatabinding service = plugin.getBundle().getBundleContext()
+			.getService(serviceReference);
+		plugin.getBundle().getBundleContext().ungetService(serviceReference);
+
+		return service;
+	}
+}
diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.model/src/org/eclipse/emf/ecp/view/dynamictree/model/impl/DynamicContainmentTreeDMRConverter.java b/tests/org.eclipse.emf.ecp.view.dynamictree.model/src/org/eclipse/emf/ecp/view/dynamictree/model/impl/DynamicContainmentTreeDMRConverter.java
new file mode 100644
index 0000000..ca8d52e
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.dynamictree.model/src/org/eclipse/emf/ecp/view/dynamictree/model/impl/DynamicContainmentTreeDMRConverter.java
@@ -0,0 +1,204 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.dynamictree.model.impl;
+
+import org.eclipse.core.databinding.property.list.IListProperty;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.view.dynamictree.model.DynamicContainmentItem;
+import org.eclipse.emf.ecp.view.dynamictree.model.DynamicContainmentTreeDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * A {@link DomainModelReferenceConverter} that converts a {@link DynamicContainmentTreeDomainModelReference} to an
+ * {@link IListProperty IListProperty} or an {@link IValueProperty}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class DynamicContainmentTreeDMRConverter implements DomainModelReferenceConverter {
+	private EMFFormsDatabinding emfFormsDatabinding;
+	private ServiceReference<EMFFormsDatabinding> databindingServiceReference;
+
+	/**
+	 * Sets the {@link EMFFormsDatabinding}.
+	 *
+	 * @param emfFormsDatabinding the emfFormsDatabinding to set
+	 */
+	void setEMFFormsDatabinding(EMFFormsDatabinding emfFormsDatabinding) {
+		this.emfFormsDatabinding = emfFormsDatabinding;
+	}
+
+	/**
+	 * Unsets the {@link EMFFormsDatabinding}.
+	 */
+	void unsetEMFFormsDatabinding() {
+		emfFormsDatabinding = null;
+	}
+
+	/**
+	 * This method is called by the OSGI framework when this {@link DomainModelReferenceConverter} is activated. It
+	 * retrieves the {@link EMFFormsDatabinding EMF Forms databinding service}.
+	 *
+	 * @param bundleContext The {@link BundleContext} of this classes bundle.
+	 */
+	protected final void activate(BundleContext bundleContext) {
+		databindingServiceReference = bundleContext.getServiceReference(EMFFormsDatabinding.class);
+		setEMFFormsDatabinding(bundleContext.getService(databindingServiceReference));
+
+	}
+
+	/**
+	 * This method is called by the OSGI framework when this {@link DomainModelReferenceConverter} is deactivated.
+	 * It frees the {@link EMFFormsDatabinding EMF Forms databinding service}.
+	 *
+	 * @param bundleContext The {@link BundleContext} of this classes bundle.
+	 */
+	protected final void deactivate(BundleContext bundleContext) {
+		unsetEMFFormsDatabinding();
+		bundleContext.ungetService(databindingServiceReference);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter#isApplicable(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference)
+	 */
+	@Override
+	public double isApplicable(VDomainModelReference domainModelReference) {
+		if (domainModelReference == null) {
+			throw new IllegalArgumentException("The given VDomainModelReference must not be null."); //$NON-NLS-1$
+		}
+		if (domainModelReference instanceof DynamicContainmentTreeDomainModelReference) {
+			return 10d;
+		}
+		return NOT_APPLICABLE;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter#convertToValueProperty(VDomainModelReference,EObject)
+	 */
+	@Override
+	public IValueProperty convertToValueProperty(VDomainModelReference domainModelReference, EObject object)
+		throws DatabindingFailedException {
+		final DynamicContainmentTreeDomainModelReference dynamicContainmentTreeReference = getAndCheckDynamicContainmentTreeDMR(domainModelReference);
+
+		final int index = getIndex(dynamicContainmentTreeReference);
+
+		final EMFIndexedValuePropertyDelegator indexedProperty = getIndexedRootProperty(
+			dynamicContainmentTreeReference, index, object);
+		final IValueProperty valuePropertyFromBase = emfFormsDatabinding
+			.getValueProperty(dynamicContainmentTreeReference.getPathFromBase(), object);
+
+		return indexedProperty.value(valuePropertyFromBase);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter#convertToListProperty(VDomainModelReference,EObject)
+	 */
+	@Override
+	public IListProperty convertToListProperty(VDomainModelReference domainModelReference, EObject object)
+		throws DatabindingFailedException {
+		final DynamicContainmentTreeDomainModelReference dynamicContainmentTreeReference = getAndCheckDynamicContainmentTreeDMR(domainModelReference);
+
+		final int index = getIndex(dynamicContainmentTreeReference);
+
+		final EMFIndexedValuePropertyDelegator indexedProperty = getIndexedRootProperty(
+			dynamicContainmentTreeReference, index, object);
+		final IListProperty listPropertyFromBase = emfFormsDatabinding
+			.getListProperty(dynamicContainmentTreeReference.getPathFromBase(), object);
+
+		return indexedProperty.list(listPropertyFromBase);
+	}
+
+	private EMFIndexedValuePropertyDelegator getIndexedRootProperty(
+		final DynamicContainmentTreeDomainModelReference dynamicContainmentTreeReference, final int index,
+		EObject object)
+		throws DatabindingFailedException, IllegalListTypeException {
+		final IValueProperty valuePropertyFromRoot = emfFormsDatabinding
+			.getValueProperty(dynamicContainmentTreeReference.getPathFromRoot(), object);
+		final EStructuralFeature structuralFeature = (EStructuralFeature) valuePropertyFromRoot.getValueType();
+		checkListType(structuralFeature);
+
+		final EMFIndexedValuePropertyDelegator indexedProperty = new EMFIndexedValuePropertyDelegator(
+			valuePropertyFromRoot, index);
+		return indexedProperty;
+	}
+
+	private DynamicContainmentTreeDomainModelReference getAndCheckDynamicContainmentTreeDMR(
+		VDomainModelReference domainModelReference) throws DatabindingFailedException {
+		if (domainModelReference == null) {
+			throw new IllegalArgumentException("The given VDomainModelReference must not be null."); //$NON-NLS-1$
+		}
+		if (!DynamicContainmentTreeDomainModelReference.class.isInstance(domainModelReference)) {
+			throw new IllegalArgumentException(
+				"DomainModelReference must be an instance of DynamicContainmentTreeDomainModelReference."); //$NON-NLS-1$
+		}
+
+		final DynamicContainmentTreeDomainModelReference dynamicContainmentTreeReference = DynamicContainmentTreeDomainModelReference.class
+			.cast(domainModelReference);
+		if (dynamicContainmentTreeReference.getPathFromRoot() == null) {
+			throw new DatabindingFailedException(
+				"The field pathFromRoot of the given DynamicContainmentTreeDomainModelReference must not be null."); //$NON-NLS-1$
+		}
+		if (dynamicContainmentTreeReference.getPathFromBase() == null) {
+			throw new DatabindingFailedException(
+				"The field pathFromBase of the given DynamicContainmentTreeDomainModelReference must not be null."); //$NON-NLS-1$
+		}
+		return dynamicContainmentTreeReference;
+	}
+
+	private int getIndex(DynamicContainmentTreeDomainModelReference reference) throws DatabindingFailedException {
+		EObject parent = reference.eContainer();
+		while (!DynamicContainmentItem.class.isInstance(parent) && parent != null) {
+			parent = parent.eContainer();
+		}
+		if (parent == null) {
+			throw new DatabindingFailedException(
+				"The base item index of the DynamicContainmentTreeDomainModelReference could not be resolved because its container is null."); //$NON-NLS-1$
+		}
+		final DynamicContainmentItem packingItem = (DynamicContainmentItem) parent;
+		if (packingItem.getBaseItemIndex() == null) {
+			throw new DatabindingFailedException(
+				"The base item index of the DynamicContainmentTreeDomainModelReference must not be null."); //$NON-NLS-1$
+		}
+		return packingItem.getBaseItemIndex();
+	}
+
+	/**
+	 * Checks whether the given structural feature references a proper list to generate a value or list property.
+	 *
+	 * @param structuralFeature The feature to check
+	 * @throws IllegalListTypeException if the structural feature doesn't reference a proper list.
+	 */
+	private void checkListType(EStructuralFeature structuralFeature) throws IllegalListTypeException {
+		if (!structuralFeature.isMany()) {
+			throw new IllegalListTypeException(
+				"The DynamicContainmentTreeDomainModelReference's base feature must reference a list."); //$NON-NLS-1$
+		}
+		if (!EReference.class.isInstance(structuralFeature)) {
+			throw new IllegalListTypeException(
+				"The DynamicContainmentTreeDomainModelReference's base feature must reference a list of EObjects."); //$NON-NLS-1$
+		}
+	}
+}
diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.model/src/org/eclipse/emf/ecp/view/dynamictree/model/impl/EMFIndexedValuePropertyDelegator.java b/tests/org.eclipse.emf.ecp.view.dynamictree.model/src/org/eclipse/emf/ecp/view/dynamictree/model/impl/EMFIndexedValuePropertyDelegator.java
new file mode 100644
index 0000000..62e9e64
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.dynamictree.model/src/org/eclipse/emf/ecp/view/dynamictree/model/impl/EMFIndexedValuePropertyDelegator.java
@@ -0,0 +1,98 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.dynamictree.model.impl;
+
+import java.util.List;
+
+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;
+
+/**
+ * This class adds support for addressing specific elements of a list by an index to an encapsulated
+ * {@link IValueProperty}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class EMFIndexedValuePropertyDelegator extends SimpleValueProperty {
+
+	private final IValueProperty delegate;
+	private final int index;
+
+	/**
+	 * Creates a new instance of {@link EMFIndexedValuePropertyDelegator}.
+	 *
+	 * @param delegate The encapsulated {@link IValueProperty}
+	 * @param index The list index
+	 */
+	public EMFIndexedValuePropertyDelegator(IValueProperty delegate, int index) {
+		this.delegate = delegate;
+		if (index < 0) {
+			throw new IllegalArgumentException("The list index must not be negative!"); //$NON-NLS-1$
+		}
+		this.index = index;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.core.databinding.property.value.IValueProperty#getValueType()
+	 */
+	@Override
+	public Object getValueType() {
+		return delegate.getValueType();
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.core.databinding.property.value.SimpleValueProperty#doGetValue(java.lang.Object)
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	protected Object doGetValue(Object source) {
+		final Object result = delegate.getValue(source);
+		final List<Object> list = (List<Object>) result;
+		if (list != null && index >= list.size()) {
+			return null;
+		}
+		return list.get(index);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.core.databinding.property.value.SimpleValueProperty#doSetValue(java.lang.Object,
+	 *      java.lang.Object)
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	protected void doSetValue(Object source, Object value) {
+		final Object result = delegate.getValue(source);
+		final List<Object> list = (List<Object>) result;
+		list.set(index, value);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.core.databinding.property.value.SimpleValueProperty#adaptListener(org.eclipse.core.databinding.property.ISimplePropertyListener)
+	 */
+	@Override
+	public INativePropertyListener adaptListener(ISimplePropertyListener listener) {
+		// TODO return suitable listener; maybe not needed as some other implementation of SimpleValueProperty return
+		// null, too.
+		return null;
+	}
+}
diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.model/src/org/eclipse/emf/ecp/view/dynamictree/model/impl/IllegalListTypeException.java b/tests/org.eclipse.emf.ecp.view.dynamictree.model/src/org/eclipse/emf/ecp/view/dynamictree/model/impl/IllegalListTypeException.java
new file mode 100644
index 0000000..054d3e2
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.dynamictree.model/src/org/eclipse/emf/ecp/view/dynamictree/model/impl/IllegalListTypeException.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.dynamictree.model.impl;
+
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+
+/**
+ * This {@link IllegalListTypeException} is thrown by a {@link DynamicContainmentTreeDMRConverter} when the base
+ * feature of a {@link org.eclipse.emf.ecp.view.dynamictree.model.DynamicContainmentTreeDomainModelReference
+ * DynamicContainmentTreeDomainModelReference} is not a list or the list is not of the type
+ * {@link org.eclipse.emf.ecore.EReference EReference} .
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class IllegalListTypeException extends DatabindingFailedException {
+
+	private static final long serialVersionUID = 5721328492316894438L;
+
+	/**
+	 * Creates a new {@link IllegalListTypeException} with the given message.
+	 *
+	 * @param message The message text of the exception
+	 */
+	public IllegalListTypeException(String message) {
+		super(message);
+	}
+}
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 5f6fe17..fa908e8 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,18 +2,21 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Dynamic Tree SWT UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.dynamictree.ui.swt;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.emf.ecp.view.dynamictree.model;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.ui;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.edit;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.5.0,2.0.0)"
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emfforms.swt.core
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Import-Package: org.eclipse.jface.layout;version="0.0.0",
+Import-Package: org.eclipse.emfforms.spi.common.report;version="1.6.0",
+ org.eclipse.emfforms.spi.core.services.databinding;version="1.6.0",
+ org.eclipse.jface.layout;version="0.0.0",
  org.eclipse.swt;version="0.0.0",
  org.eclipse.swt.widgets;version="0.0.0"
 Export-Package: org.eclipse.emf.ecp.view.dynamictree.ui.swt;version="1
- .5.1";x-internal:=true
+ .6.0";x-internal:=true
 Bundle-Vendor: Eclipse Modeling Project
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 76f130d..557f8a2 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.5.1-SNAPSHOT</version>

+		<version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.0-SNAPSHOT</version>

 </project>

diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.ui.swt/src/org/eclipse/emf/ecp/view/dynamictree/ui/swt/SWTDynamicContainmentItemRenderer.java b/tests/org.eclipse.emf.ecp.view.dynamictree.ui.swt/src/org/eclipse/emf/ecp/view/dynamictree/ui/swt/SWTDynamicContainmentItemRenderer.java
index 4e395c5..405501d 100644
--- a/tests/org.eclipse.emf.ecp.view.dynamictree.ui.swt/src/org/eclipse/emf/ecp/view/dynamictree/ui/swt/SWTDynamicContainmentItemRenderer.java
+++ b/tests/org.eclipse.emf.ecp.view.dynamictree.ui.swt/src/org/eclipse/emf/ecp/view/dynamictree/ui/swt/SWTDynamicContainmentItemRenderer.java
@@ -1,50 +1,82 @@
-/**

- * 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 v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- * Edgar Mueller - initial API and implementation

- */

-package org.eclipse.emf.ecp.view.dynamictree.ui.swt;

-

-import java.util.Collection;

-import java.util.Collections;

-

-import org.eclipse.emf.ecp.view.dynamictree.model.DynamicContainmentItem;

-import org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer;

-import org.eclipse.emf.ecp.view.spi.model.VContainedElement;

-

-/**

- * SWT renderer for {@link DynamicContainmentItem}s.

- *

- * @author emueller

- */

-public class SWTDynamicContainmentItemRenderer extends ContainerSWTRenderer<DynamicContainmentItem> {

-

-	/**

-	 * {@inheritDoc}

-	 *

-	 * @see org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer#getCustomVariant()

-	 */

-	@Override

-	protected String getCustomVariant() {

-		// TODO Auto-generated method stub

-		return "test";

-	}

-

-	/**

-	 * {@inheritDoc}

-	 *

-	 * @see org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer#getChildren()

-	 */

-

-	@Override

-	protected Collection<VContainedElement> getChildren() {

-		return Collections.singleton(getVElement().getComposite());

-	}

-

-}

+/**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Edgar Mueller - initial API and implementation
+ */
+package org.eclipse.emf.ecp.view.dynamictree.ui.swt;
+
+import java.util.Collection;
+import java.util.Collections;
+
+import org.eclipse.emf.ecp.view.dynamictree.model.DynamicContainmentItem;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer;
+import org.eclipse.emf.ecp.view.spi.model.VContainedElement;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * SWT renderer for {@link DynamicContainmentItem}s.
+ *
+ * @author emueller
+ */
+public class SWTDynamicContainmentItemRenderer extends ContainerSWTRenderer<DynamicContainmentItem> {
+
+	private static final EMFFormsDatabinding emfFormsDatabinding;
+	private static final EMFFormsRendererFactory emfFormsRendererFactory;
+
+	static {
+		final BundleContext bundleContext = FrameworkUtil.getBundle(SWTDynamicContainmentTreeRenderer.class)
+			.getBundleContext();
+		final ServiceReference<EMFFormsDatabinding> emfFormsDatabindingServiceReference = bundleContext
+			.getServiceReference(EMFFormsDatabinding.class);
+		emfFormsDatabinding = bundleContext.getService(emfFormsDatabindingServiceReference);
+		final ServiceReference<EMFFormsRendererFactory> emfFormsLabelProviderServiceReference = bundleContext
+			.getServiceReference(EMFFormsRendererFactory.class);
+		emfFormsRendererFactory = bundleContext.getService(emfFormsLabelProviderServiceReference);
+	}
+
+	/**
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 */
+	public SWTDynamicContainmentItemRenderer(DynamicContainmentItem vElement, ViewModelContext viewContext,
+		ReportService reportService) {
+		super(vElement, viewContext, reportService, emfFormsRendererFactory, emfFormsDatabinding);
+		// TODO Auto-generated constructor stub
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer#getCustomVariant()
+	 */
+	@Override
+	protected String getCustomVariant() {
+		// TODO Auto-generated method stub
+		return "test";
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer#getChildren()
+	 */
+
+	@Override
+	protected Collection<VContainedElement> getChildren() {
+		return Collections.singleton(getVElement().getComposite());
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.ui.swt/src/org/eclipse/emf/ecp/view/dynamictree/ui/swt/SWTDynamicContainmentTreeRenderer.java b/tests/org.eclipse.emf.ecp.view.dynamictree.ui.swt/src/org/eclipse/emf/ecp/view/dynamictree/ui/swt/SWTDynamicContainmentTreeRenderer.java
index 2352913..f6f4461 100644
--- a/tests/org.eclipse.emf.ecp.view.dynamictree.ui.swt/src/org/eclipse/emf/ecp/view/dynamictree/ui/swt/SWTDynamicContainmentTreeRenderer.java
+++ b/tests/org.eclipse.emf.ecp.view.dynamictree.ui.swt/src/org/eclipse/emf/ecp/view/dynamictree/ui/swt/SWTDynamicContainmentTreeRenderer.java
@@ -1,50 +1,81 @@
-/**

- * 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 v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- * Edgar Mueller - initial API and implementation

- */

-package org.eclipse.emf.ecp.view.dynamictree.ui.swt;

-

-import java.util.Collection;

-import java.util.Collections;

-

-import org.eclipse.emf.ecp.view.dynamictree.model.DynamicContainmentTree;

-import org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer;

-import org.eclipse.emf.ecp.view.spi.model.VContainedElement;

-

-/**

- * SWT renderer for {@link DynamicContainmentTree}s.

- *

- * @author emueller

- */

-public class SWTDynamicContainmentTreeRenderer extends ContainerSWTRenderer<DynamicContainmentTree> {

-

-	/**

-	 * {@inheritDoc}

-	 *

-	 * @see org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer#getCustomVariant()

-	 */

-	@Override

-	protected String getCustomVariant() {

-		// TODO Auto-generated method stub

-		return "testTree";

-	}

-

-	/**

-	 * {@inheritDoc}

-	 *

-	 * @see org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer#getChildren()

-	 */

-	@Override

-	protected Collection<VContainedElement> getChildren() {

-		// TODO Auto-generated method stub

-		return Collections.singleton(getVElement().getComposite());

-	}

-

-}

+/**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Edgar Mueller - initial API and implementation
+ */
+package org.eclipse.emf.ecp.view.dynamictree.ui.swt;
+
+import java.util.Collection;
+import java.util.Collections;
+
+import org.eclipse.emf.ecp.view.dynamictree.model.DynamicContainmentTree;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer;
+import org.eclipse.emf.ecp.view.spi.model.VContainedElement;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * SWT renderer for {@link DynamicContainmentTree}s.
+ *
+ * @author emueller
+ */
+public class SWTDynamicContainmentTreeRenderer extends ContainerSWTRenderer<DynamicContainmentTree> {
+
+	private static final EMFFormsDatabinding emfFormsDatabinding;
+	private static final EMFFormsRendererFactory emfFormsRendererFactory;
+
+	static {
+		final BundleContext bundleContext = FrameworkUtil.getBundle(SWTDynamicContainmentTreeRenderer.class)
+			.getBundleContext();
+		final ServiceReference<EMFFormsDatabinding> emfFormsDatabindingServiceReference = bundleContext
+			.getServiceReference(EMFFormsDatabinding.class);
+		emfFormsDatabinding = bundleContext.getService(emfFormsDatabindingServiceReference);
+		final ServiceReference<EMFFormsRendererFactory> emfFormsLabelProviderServiceReference = bundleContext
+			.getServiceReference(EMFFormsRendererFactory.class);
+		emfFormsRendererFactory = bundleContext.getService(emfFormsLabelProviderServiceReference);
+	}
+
+	/**
+	 * @param vElement the view model element to be rendered
+	 * @param viewContext the view context
+	 * @param reportService the {@link ReportService}
+	 */
+	public SWTDynamicContainmentTreeRenderer(DynamicContainmentTree vElement, ViewModelContext viewContext,
+		ReportService reportService) {
+		super(vElement, viewContext, reportService, emfFormsRendererFactory, emfFormsDatabinding);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer#getCustomVariant()
+	 */
+	@Override
+	protected String getCustomVariant() {
+		// TODO Auto-generated method stub
+		return "testTree";
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer#getChildren()
+	 */
+	@Override
+	protected Collection<VContainedElement> getChildren() {
+		// TODO Auto-generated method stub
+		return Collections.singleton(getVElement().getComposite());
+	}
+
+}
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 85b2575..ddd2420 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Dynamic Tree UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.dynamictree.ui;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
 Bundle-Vendor: Eclipse Modeling Project
@@ -10,6 +10,7 @@
  org.eclipse.emf.ecp.view.dynamictree.model;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.edit;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.core.runtime;bundle-version="3.9.0",
- org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.5.0,2.0.0)"
-Export-Package: org.eclipse.emf.ecp.view.dynamictree.ui;version="1.5.1
+ org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)"
+Export-Package: org.eclipse.emf.ecp.view.dynamictree.ui;version="1.6.0
  ";x-internal:=true
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 e055ef3..9e6bdbd 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.5.1-SNAPSHOT</version>

+		<version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.0-SNAPSHOT</version>

 </project>

diff --git a/tests/org.eclipse.emf.ecp.view.edapt.test/.gitignore b/tests/org.eclipse.emf.ecp.view.edapt.test/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.test/.gitignore
@@ -0,0 +1 @@
+/bin/
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 3836b45..9c59742 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.edapt.test;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Fragment-Host: org.eclipse.emf.ecp.view.edapt;bundle-version="1.4.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
@@ -17,6 +17,6 @@
  org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.5.0,2.0.0)"
-Export-Package: org.eclipse.emf.ecp.view.edapt.test;version="1.5.1";x-
+Export-Package: org.eclipse.emf.ecp.view.edapt.test;version="1.6.0";x-
  internal:=true,org.eclipse.emf.ecp.view.edapt.test._140to150;version=
- "1.5.1";x-internal:=true
+ "1.6.0";x-internal:=true
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.test/MigrationTest.launch b/tests/org.eclipse.emf.ecp.view.edapt.test/MigrationTest.launch
index bce96df..6a8913c 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.test/MigrationTest.launch
+++ b/tests/org.eclipse.emf.ecp.view.edapt.test/MigrationTest.launch
@@ -33,7 +33,7 @@
 <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,javax.xml@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.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.logging@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.compatibility@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.cdo.ecore.retrofit@default:false,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.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@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.win32.x86_64@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.jdt.annotation*2.0.0.v20140415-1436@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.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@-1:true,org.eclipse.swt.win32.win32.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.win32@default:false,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.update.configurator@3:true,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="ViewModelProjectTemplate@default:default,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.ide.editor.view@default:default,org.eclipse.emf.ecp.ide.editor.viewmodel@default:default,org.eclipse.emf.ecp.ide.util@default:default,org.eclipse.emf.ecp.ide.view.service@default:default,org.eclipse.emf.ecp.makeithappen.model.viewmodel@default:default,org.eclipse.emf.ecp.ui.rcp@default:false,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.edit@default:default,org.eclipse.emf.ecp.view.categorization.model@default:default,org.eclipse.emf.ecp.view.compoundcontrol.model.edit@default:default,org.eclipse.emf.ecp.view.compoundcontrol.model@default:default,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.core.swt@default:default,org.eclipse.emf.ecp.view.custom.model.edit@default:default,org.eclipse.emf.ecp.view.custom.model@default:default,org.eclipse.emf.ecp.view.dynamictree.model.edit@default:default,org.eclipse.emf.ecp.view.dynamictree.model@default:default,org.eclipse.emf.ecp.view.edapt.test@default:false,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.groupedgrid.model.edit@default:default,org.eclipse.emf.ecp.view.groupedgrid.model@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.indexdmr.databinding@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.keyattributedmr.model.edit@default:default,org.eclipse.emf.ecp.view.keyattributedmr.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.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.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.preview.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.edit@default:default,org.eclipse.emf.ecp.view.rule.model@default:default,org.eclipse.emf.ecp.view.section.model.edit@default:default,org.eclipse.emf.ecp.view.section.model@default:default,org.eclipse.emf.ecp.view.stack.model.edit@default:default,org.eclipse.emf.ecp.view.stack.model@default:default,org.eclipse.emf.ecp.view.stack.viewmodel@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.template.model.edit@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.util.swt@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.viewproxy.model.edit@default:default,org.eclipse.emf.ecp.view.viewproxy.model@default:default,org.eclipse.emf.ecp.workspace.core@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="ViewModelProjectTemplate@default:default,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.ide.editor.view@default:default,org.eclipse.emf.ecp.ide.editor.viewmodel@default:default,org.eclipse.emf.ecp.ide.util@default:default,org.eclipse.emf.ecp.ide.view.service@default:default,org.eclipse.emf.ecp.makeithappen.model.viewmodel@default:default,org.eclipse.emf.ecp.ui.rcp@default:false,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.edit@default:default,org.eclipse.emf.ecp.view.categorization.model@default:default,org.eclipse.emf.ecp.view.compoundcontrol.model.edit@default:default,org.eclipse.emf.ecp.view.compoundcontrol.model@default:default,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.core.swt@default:default,org.eclipse.emf.ecp.view.custom.model.edit@default:default,org.eclipse.emf.ecp.view.custom.model@default:default,org.eclipse.emf.ecp.view.dynamictree.model.edit@default:default,org.eclipse.emf.ecp.view.dynamictree.model@default:default,org.eclipse.emf.ecp.view.edapt.test@default:false,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.groupedgrid.model.edit@default:default,org.eclipse.emf.ecp.view.groupedgrid.model@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.indexdmr.model.edit@default:default,org.eclipse.emf.ecp.view.indexdmr.model@default:default,org.eclipse.emf.ecp.view.keyattributedmr.model.edit@default:default,org.eclipse.emf.ecp.view.keyattributedmr.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.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.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.preview.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.edit@default:default,org.eclipse.emf.ecp.view.rule.model@default:default,org.eclipse.emf.ecp.view.section.model.edit@default:default,org.eclipse.emf.ecp.view.section.model@default:default,org.eclipse.emf.ecp.view.stack.model.edit@default:default,org.eclipse.emf.ecp.view.stack.model@default:default,org.eclipse.emf.ecp.view.stack.viewmodel@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.template.model.edit@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.util.swt@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.viewproxy.model.edit@default:default,org.eclipse.emf.ecp.view.viewproxy.model@default:default,org.eclipse.emf.ecp.workspace.core@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.edapt.test/pom.xml b/tests/org.eclipse.emf.ecp.view.edapt.test/pom.xml
index 6fdc0a9..eede019 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -24,33 +24,41 @@
 				<configuration>
 		          	<useUIHarness>true</useUIHarness>
 		          	<useUIThread>true</useUIThread>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.viewmodel.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.template.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.edapt.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-					</dependencies>
+				</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.target.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.viewmodel.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.template.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.edapt.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/.gitignore b/tests/org.eclipse.emf.ecp.view.edapt.util.test/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/.gitignore
@@ -0,0 +1 @@
+/bin/
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 e016634..2429d8f 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,52 +2,45 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.edapt.util.test;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Fragment-Host: org.eclipse.emf.ecp.view.edapt;bundle-version="[1.5.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.ecp.view.edapt;version="1.5.1";x-inter
- nal:=true,org.eclipse.emf.ecp.view.edapt.util.test.model.a;version="1
- .5.1";x-internal:=true,org.eclipse.emf.ecp.view.edapt.util.test.model
- .a.impl;version="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.eda
- pt.util.test.model.a.util;version="1.5.1";x-internal:=true,org.eclips
- e.emf.ecp.view.edapt.util.test.model.b;version="1.5.1";x-internal:=tr
- ue,org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl;version="1.5
- .1";x-internal:=true,org.eclipse.emf.ecp.view.edapt.util.test.model.b
- .util;version="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.edapt
- .util.test.model.c;version="1.5.1";x-internal:=true,org.eclipse.emf.e
- cp.view.edapt.util.test.model.c.impl;version="1.5.1";x-internal:=true
- ,org.eclipse.emf.ecp.view.edapt.util.test.model.c.util;version="1.5.1
- ";x-internal:=true,org.eclipse.emf.ecp.view.edapt.util.test.model.d;v
- ersion="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.edapt.util.t
- est.model.d.impl;version="1.5.1";x-internal:=true,org.eclipse.emf.ecp
- .view.edapt.util.test.model.d.util;version="1.5.1";x-internal:=true,o
- rg.eclipse.emf.ecp.view.edapt.util.test.model.e;version="1.5.1";x-int
- ernal:=true,org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl;ver
- sion="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.edapt.util.tes
- t.model.e.util;version="1.5.1";x-internal:=true,org.eclipse.emf.ecp.v
- iew.edapt.util.test.model.f;version="1.5.1";x-internal:=true,org.ecli
- pse.emf.ecp.view.edapt.util.test.model.f.impl;version="1.5.1";x-inter
- nal:=true,org.eclipse.emf.ecp.view.edapt.util.test.model.f.util;versi
- on="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.edapt.util.test.
- model.w;version="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.eda
- pt.util.test.model.w.impl;version="1.5.1";x-internal:=true,org.eclips
- e.emf.ecp.view.edapt.util.test.model.w.util;version="1.5.1";x-interna
- l:=true,org.eclipse.emf.ecp.view.edapt.util.test.model.x;version="1.5
- .1";x-internal:=true,org.eclipse.emf.ecp.view.edapt.util.test.model.x
- .impl;version="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.edapt
- .util.test.model.x.util;version="1.5.1";x-internal:=true,org.eclipse.
- emf.ecp.view.edapt.util.test.model.y;version="1.5.1";x-internal:=true
- ,org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl;version="1.5.1
- ";x-internal:=true,org.eclipse.emf.ecp.view.edapt.util.test.model.y.u
- til;version="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.edapt.u
- til.test.model.z;version="1.5.1";x-internal:=true,org.eclipse.emf.ecp
- .view.edapt.util.test.model.z.impl;version="1.5.1";x-internal:=true,o
- rg.eclipse.emf.ecp.view.edapt.util.test.model.z.util;version="1.5.1";
- x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.edapt;version="1.6.0",
+ org.eclipse.emf.ecp.view.edapt.util.test.model.a;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.a.util;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.b;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.b.util;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.c;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.c.util;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.d;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.d.util;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.e;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.e.util;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.f;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.f.util;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.w;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.w.impl;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.w.util;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.x;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.x.impl;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.x.util;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.y;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.y.util;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.z;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.z.impl;version="1.6.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.z.util;version="1.6.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.core.runtime.compatibility;bundle-version="[3.2.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)"
 Bundle-ActivationPolicy: lazy
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/model/circle.genmodel b/tests/org.eclipse.emf.ecp.view.edapt.util.test/model/circle.genmodel
index 43df4a9..c15d7d4 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/model/circle.genmodel
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/model/circle.genmodel
@@ -1,7 +1,8 @@
 <?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" modelDirectory="/org.eclipse.emf.ecp.view.edapt.util.test/src"
-    modelPluginID="org.eclipse.emf.ecp.view.edapt.util.test" modelName="Circle" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (c) 2011-2013 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:"
+    modelDirectory="/org.eclipse.emf.ecp.view.edapt.util.test/src" modelPluginID="org.eclipse.emf.ecp.view.edapt.util.test"
+    modelName="Circle" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
     rootImplementsInterface="" runtimeCompatibility="true" importerID="org.eclipse.emf.importer.ecore"
     complianceLevel="6.0" copyrightFields="false" interfaceNamePattern="EdaptTest{0}"
     classNamePattern="EdaptTest{0}Impl" operationReflection="true" importOrganizing="true">
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/plugin.properties b/tests/org.eclipse.emf.ecp.view.edapt.util.test/plugin.properties
index 0648245..ac94672 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/plugin.properties
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/plugin.properties
@@ -1,4 +1,4 @@
 #
 
 pluginName = Circle Model
-providerName = www.example.org
+providerName = Eclipse Modeling Project
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 1dcbc3e..cfd956d 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-plugin</packaging>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/EdaptTestA.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/EdaptTestA.java
index eb8c989..5b58b38 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/EdaptTestA.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/EdaptTestA.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.a;
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/EdaptTestAFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/EdaptTestAFactory.java
index 58501ed..f69aa44 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/EdaptTestAFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/EdaptTestAFactory.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.a;
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/EdaptTestAPackage.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/EdaptTestAPackage.java
index 2c3cda2..4776294 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/EdaptTestAPackage.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/EdaptTestAPackage.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.a;
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/impl/EdaptTestAFactoryImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/impl/EdaptTestAFactoryImpl.java
index aa0b00e..058e0bb 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/impl/EdaptTestAFactoryImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/impl/EdaptTestAFactoryImpl.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl;
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/impl/EdaptTestAImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/impl/EdaptTestAImpl.java
index de45765..8e48870 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/impl/EdaptTestAImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/impl/EdaptTestAImpl.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl;
 
@@ -11,8 +19,6 @@
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>A</b></em>'.
  * <!-- end-user-doc -->
- * <p>
- * </p>
  *
  * @generated
  */
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/impl/EdaptTestAPackageImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/impl/EdaptTestAPackageImpl.java
index 3486f03..1868286 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/impl/EdaptTestAPackageImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/impl/EdaptTestAPackageImpl.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl;
 
@@ -44,13 +52,16 @@
 	private EClass aEClass = null;
 
 	/**
-	 * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
-	 * EPackage.Registry} by the package
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
 	 * package URI value.
 	 * <p>
-	 * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
-	 * performs initialization of the package, or returns the registered package, if one already exists. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
+	 * Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
 	 * 
 	 * @see org.eclipse.emf.ecore.EPackage.Registry
 	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.a.EdaptTestAPackage#eNS_URI
@@ -73,9 +84,10 @@
 	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
 	 *
 	 * <p>
-	 * This method is used to initialize {@link EdaptTestAPackage#eINSTANCE} when that field is accessed. Clients should
-	 * not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc
-	 * --> <!-- end-user-doc -->
+	 * This method is used to initialize {@link EdaptTestAPackage#eINSTANCE} when that field is accessed.
+	 * 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()
@@ -88,40 +100,40 @@
 		}
 
 		// Obtain or create and register package
-		final EdaptTestAPackageImpl theAPackage = (EdaptTestAPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EdaptTestAPackageImpl ? EPackage.Registry.INSTANCE
-			.get(eNS_URI)
-			: new EdaptTestAPackageImpl());
+		final EdaptTestAPackageImpl theAPackage = (EdaptTestAPackageImpl) (EPackage.Registry.INSTANCE
+			.get(eNS_URI) instanceof EdaptTestAPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI)
+				: new EdaptTestAPackageImpl());
 
 		isInited = true;
 
 		// Obtain or create and register interdependencies
 		final EdaptTestBPackageImpl theBPackage = (EdaptTestBPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestBPackage.eNS_URI) instanceof EdaptTestBPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestBPackage.eNS_URI) : EdaptTestBPackage.eINSTANCE);
+			.getEPackage(EdaptTestBPackage.eNS_URI) instanceof EdaptTestBPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestBPackage.eNS_URI) : EdaptTestBPackage.eINSTANCE);
 		final EdaptTestCPackageImpl theCPackage = (EdaptTestCPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestCPackage.eNS_URI) instanceof EdaptTestCPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestCPackage.eNS_URI) : EdaptTestCPackage.eINSTANCE);
+			.getEPackage(EdaptTestCPackage.eNS_URI) instanceof EdaptTestCPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestCPackage.eNS_URI) : EdaptTestCPackage.eINSTANCE);
 		final EdaptTestDPackageImpl theDPackage = (EdaptTestDPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestDPackage.eNS_URI) instanceof EdaptTestDPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestDPackage.eNS_URI) : EdaptTestDPackage.eINSTANCE);
+			.getEPackage(EdaptTestDPackage.eNS_URI) instanceof EdaptTestDPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestDPackage.eNS_URI) : EdaptTestDPackage.eINSTANCE);
 		final EdaptTestEPackageImpl theEPackage = (EdaptTestEPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestEPackage.eNS_URI) instanceof EdaptTestEPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestEPackage.eNS_URI) : EdaptTestEPackage.eINSTANCE);
+			.getEPackage(EdaptTestEPackage.eNS_URI) instanceof EdaptTestEPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestEPackage.eNS_URI) : EdaptTestEPackage.eINSTANCE);
 		final EdaptTestFPackageImpl theFPackage = (EdaptTestFPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestFPackage.eNS_URI) instanceof EdaptTestFPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestFPackage.eNS_URI) : EdaptTestFPackage.eINSTANCE);
+			.getEPackage(EdaptTestFPackage.eNS_URI) instanceof EdaptTestFPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestFPackage.eNS_URI) : EdaptTestFPackage.eINSTANCE);
 		final EdaptTestWPackageImpl theWPackage = (EdaptTestWPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestWPackage.eNS_URI) instanceof EdaptTestWPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestWPackage.eNS_URI) : EdaptTestWPackage.eINSTANCE);
+			.getEPackage(EdaptTestWPackage.eNS_URI) instanceof EdaptTestWPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestWPackage.eNS_URI) : EdaptTestWPackage.eINSTANCE);
 		final EdaptTestXPackageImpl theXPackage = (EdaptTestXPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestXPackage.eNS_URI) instanceof EdaptTestXPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestXPackage.eNS_URI) : EdaptTestXPackage.eINSTANCE);
+			.getEPackage(EdaptTestXPackage.eNS_URI) instanceof EdaptTestXPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestXPackage.eNS_URI) : EdaptTestXPackage.eINSTANCE);
 		final EdaptTestYPackageImpl theYPackage = (EdaptTestYPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestYPackage.eNS_URI) instanceof EdaptTestYPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestYPackage.eNS_URI) : EdaptTestYPackage.eINSTANCE);
+			.getEPackage(EdaptTestYPackage.eNS_URI) instanceof EdaptTestYPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestYPackage.eNS_URI) : EdaptTestYPackage.eINSTANCE);
 		final EdaptTestZPackageImpl theZPackage = (EdaptTestZPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestZPackage.eNS_URI) instanceof EdaptTestZPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestZPackage.eNS_URI) : EdaptTestZPackage.eINSTANCE);
+			.getEPackage(EdaptTestZPackage.eNS_URI) instanceof EdaptTestZPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestZPackage.eNS_URI) : EdaptTestZPackage.eINSTANCE);
 
 		// Create package meta-data objects
 		theAPackage.createPackageContents();
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/util/AAdapterFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/util/AAdapterFactory.java
index 54f2eb1..28110f3 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/util/AAdapterFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/util/AAdapterFactory.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.a.util;
 
@@ -69,18 +77,17 @@
 	 * 
 	 * @generated
 	 */
-	protected ASwitch<Adapter> modelSwitch =
-		new ASwitch<Adapter>() {
-			@Override
-			public Adapter caseA(EdaptTestA object) {
-				return createAAdapter();
-			}
+	protected ASwitch<Adapter> modelSwitch = new ASwitch<Adapter>() {
+		@Override
+		public Adapter caseA(EdaptTestA object) {
+			return createAAdapter();
+		}
 
-			@Override
-			public Adapter defaultCase(EObject object) {
-				return createEObjectAdapter();
-			}
-		};
+		@Override
+		public Adapter defaultCase(EObject object) {
+			return createEObjectAdapter();
+		}
+	};
 
 	/**
 	 * Creates an adapter for the <code>target</code>.
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/util/ASwitch.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/util/ASwitch.java
index 4e3c579..a46ca06 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/util/ASwitch.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/a/util/ASwitch.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.a.util;
 
@@ -11,8 +19,8 @@
 /**
  * <!-- begin-user-doc -->
  * The <b>Switch</b> for the model's inheritance hierarchy.
- * It supports the call {@link #doSwitch(EObject) doSwitch(object)} to invoke the <code>caseXXX</code> method for each
- * class of the model,
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
  * starting with the actual class of the object
  * and proceeding up the inheritance hierarchy
  * until a non-null result is returned,
@@ -50,7 +58,7 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
-	 * @parameter ePackage the package in question.
+	 * @param ePackage the package in question.
 	 * @return whether this is a switch for the given package.
 	 * @generated
 	 */
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/EdaptTestB.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/EdaptTestB.java
index e409d20..11c87af 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/EdaptTestB.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/EdaptTestB.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.b;
 
@@ -13,11 +21,11 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestB#getA <em>A</em>}</li>
  * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestB#getC <em>C</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestBPackage#getB()
  * @model
@@ -28,7 +36,8 @@
 	 * Returns the value of the '<em><b>A</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>A</em>' reference isn't clear, there really should be more of a description here...
+	 * If the meaning of the '<em>A</em>' reference isn't clear,
+	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * 
@@ -56,7 +65,8 @@
 	 * Returns the value of the '<em><b>C</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>C</em>' reference isn't clear, there really should be more of a description here...
+	 * If the meaning of the '<em>C</em>' reference isn't clear,
+	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/EdaptTestBFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/EdaptTestBFactory.java
index ff43eee..8b77ac0 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/EdaptTestBFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/EdaptTestBFactory.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.b;
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/EdaptTestBPackage.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/EdaptTestBPackage.java
index 4859c3d..e6f5c09 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/EdaptTestBPackage.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/EdaptTestBPackage.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.b;
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/impl/EdaptTestBFactoryImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/impl/EdaptTestBFactoryImpl.java
index 9f8da5f..78f3e89 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/impl/EdaptTestBFactoryImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/impl/EdaptTestBFactoryImpl.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl;
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/impl/EdaptTestBImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/impl/EdaptTestBImpl.java
index 3a3556b..00ddd1c 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/impl/EdaptTestBImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/impl/EdaptTestBImpl.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl;
 
@@ -18,11 +26,11 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.EdaptTestBImpl#getA <em>A</em>}</li>
  * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl.EdaptTestBImpl#getC <em>C</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/impl/EdaptTestBPackageImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/impl/EdaptTestBPackageImpl.java
index 24e214d..e01e030 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/impl/EdaptTestBPackageImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/impl/EdaptTestBPackageImpl.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl;
 
@@ -45,13 +53,16 @@
 	private EClass bEClass = null;
 
 	/**
-	 * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
-	 * EPackage.Registry} by the package
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
 	 * package URI value.
 	 * <p>
-	 * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
-	 * performs initialization of the package, or returns the registered package, if one already exists. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
+	 * Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
 	 * 
 	 * @see org.eclipse.emf.ecore.EPackage.Registry
 	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.b.EdaptTestBPackage#eNS_URI
@@ -74,9 +85,10 @@
 	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
 	 *
 	 * <p>
-	 * This method is used to initialize {@link EdaptTestBPackage#eINSTANCE} when that field is accessed. Clients should
-	 * not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc
-	 * --> <!-- end-user-doc -->
+	 * This method is used to initialize {@link EdaptTestBPackage#eINSTANCE} when that field is accessed.
+	 * 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()
@@ -89,40 +101,40 @@
 		}
 
 		// Obtain or create and register package
-		final EdaptTestBPackageImpl theBPackage = (EdaptTestBPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EdaptTestBPackageImpl ? EPackage.Registry.INSTANCE
-			.get(eNS_URI)
-			: new EdaptTestBPackageImpl());
+		final EdaptTestBPackageImpl theBPackage = (EdaptTestBPackageImpl) (EPackage.Registry.INSTANCE
+			.get(eNS_URI) instanceof EdaptTestBPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI)
+				: new EdaptTestBPackageImpl());
 
 		isInited = true;
 
 		// Obtain or create and register interdependencies
 		final EdaptTestAPackageImpl theAPackage = (EdaptTestAPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestAPackage.eNS_URI) instanceof EdaptTestAPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestAPackage.eNS_URI) : EdaptTestAPackage.eINSTANCE);
+			.getEPackage(EdaptTestAPackage.eNS_URI) instanceof EdaptTestAPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestAPackage.eNS_URI) : EdaptTestAPackage.eINSTANCE);
 		final EdaptTestCPackageImpl theCPackage = (EdaptTestCPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestCPackage.eNS_URI) instanceof EdaptTestCPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestCPackage.eNS_URI) : EdaptTestCPackage.eINSTANCE);
+			.getEPackage(EdaptTestCPackage.eNS_URI) instanceof EdaptTestCPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestCPackage.eNS_URI) : EdaptTestCPackage.eINSTANCE);
 		final EdaptTestDPackageImpl theDPackage = (EdaptTestDPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestDPackage.eNS_URI) instanceof EdaptTestDPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestDPackage.eNS_URI) : EdaptTestDPackage.eINSTANCE);
+			.getEPackage(EdaptTestDPackage.eNS_URI) instanceof EdaptTestDPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestDPackage.eNS_URI) : EdaptTestDPackage.eINSTANCE);
 		final EdaptTestEPackageImpl theEPackage = (EdaptTestEPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestEPackage.eNS_URI) instanceof EdaptTestEPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestEPackage.eNS_URI) : EdaptTestEPackage.eINSTANCE);
+			.getEPackage(EdaptTestEPackage.eNS_URI) instanceof EdaptTestEPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestEPackage.eNS_URI) : EdaptTestEPackage.eINSTANCE);
 		final EdaptTestFPackageImpl theFPackage = (EdaptTestFPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestFPackage.eNS_URI) instanceof EdaptTestFPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestFPackage.eNS_URI) : EdaptTestFPackage.eINSTANCE);
+			.getEPackage(EdaptTestFPackage.eNS_URI) instanceof EdaptTestFPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestFPackage.eNS_URI) : EdaptTestFPackage.eINSTANCE);
 		final EdaptTestWPackageImpl theWPackage = (EdaptTestWPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestWPackage.eNS_URI) instanceof EdaptTestWPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestWPackage.eNS_URI) : EdaptTestWPackage.eINSTANCE);
+			.getEPackage(EdaptTestWPackage.eNS_URI) instanceof EdaptTestWPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestWPackage.eNS_URI) : EdaptTestWPackage.eINSTANCE);
 		final EdaptTestXPackageImpl theXPackage = (EdaptTestXPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestXPackage.eNS_URI) instanceof EdaptTestXPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestXPackage.eNS_URI) : EdaptTestXPackage.eINSTANCE);
+			.getEPackage(EdaptTestXPackage.eNS_URI) instanceof EdaptTestXPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestXPackage.eNS_URI) : EdaptTestXPackage.eINSTANCE);
 		final EdaptTestYPackageImpl theYPackage = (EdaptTestYPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestYPackage.eNS_URI) instanceof EdaptTestYPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestYPackage.eNS_URI) : EdaptTestYPackage.eINSTANCE);
+			.getEPackage(EdaptTestYPackage.eNS_URI) instanceof EdaptTestYPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestYPackage.eNS_URI) : EdaptTestYPackage.eINSTANCE);
 		final EdaptTestZPackageImpl theZPackage = (EdaptTestZPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestZPackage.eNS_URI) instanceof EdaptTestZPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestZPackage.eNS_URI) : EdaptTestZPackage.eINSTANCE);
+			.getEPackage(EdaptTestZPackage.eNS_URI) instanceof EdaptTestZPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestZPackage.eNS_URI) : EdaptTestZPackage.eINSTANCE);
 
 		// Create package meta-data objects
 		theBPackage.createPackageContents();
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/util/BAdapterFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/util/BAdapterFactory.java
index d6076aa..1731c4f 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/util/BAdapterFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/util/BAdapterFactory.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.b.util;
 
@@ -69,18 +77,17 @@
 	 * 
 	 * @generated
 	 */
-	protected BSwitch<Adapter> modelSwitch =
-		new BSwitch<Adapter>() {
-			@Override
-			public Adapter caseB(EdaptTestB object) {
-				return createBAdapter();
-			}
+	protected BSwitch<Adapter> modelSwitch = new BSwitch<Adapter>() {
+		@Override
+		public Adapter caseB(EdaptTestB object) {
+			return createBAdapter();
+		}
 
-			@Override
-			public Adapter defaultCase(EObject object) {
-				return createEObjectAdapter();
-			}
-		};
+		@Override
+		public Adapter defaultCase(EObject object) {
+			return createEObjectAdapter();
+		}
+	};
 
 	/**
 	 * Creates an adapter for the <code>target</code>.
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/util/BSwitch.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/util/BSwitch.java
index 615689f..819e835 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/util/BSwitch.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/b/util/BSwitch.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.b.util;
 
@@ -11,8 +19,8 @@
 /**
  * <!-- begin-user-doc -->
  * The <b>Switch</b> for the model's inheritance hierarchy.
- * It supports the call {@link #doSwitch(EObject) doSwitch(object)} to invoke the <code>caseXXX</code> method for each
- * class of the model,
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
  * starting with the actual class of the object
  * and proceeding up the inheritance hierarchy
  * until a non-null result is returned,
@@ -50,7 +58,7 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
-	 * @parameter ePackage the package in question.
+	 * @param ePackage the package in question.
 	 * @return whether this is a switch for the given package.
 	 * @generated
 	 */
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/EdaptTestC.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/EdaptTestC.java
index 5673075..ef3fd98 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/EdaptTestC.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/EdaptTestC.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.c;
 
@@ -12,10 +20,10 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestC#getD <em>D</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestCPackage#getC()
  * @model
@@ -26,7 +34,8 @@
 	 * Returns the value of the '<em><b>D</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>D</em>' reference isn't clear, there really should be more of a description here...
+	 * If the meaning of the '<em>D</em>' reference isn't clear,
+	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/EdaptTestCFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/EdaptTestCFactory.java
index 3f9efe6..9397c55 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/EdaptTestCFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/EdaptTestCFactory.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.c;
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/EdaptTestCPackage.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/EdaptTestCPackage.java
index 9628462..760b96f 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/EdaptTestCPackage.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/EdaptTestCPackage.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.c;
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/impl/EdaptTestCFactoryImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/impl/EdaptTestCFactoryImpl.java
index 6371322..fc9713d 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/impl/EdaptTestCFactoryImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/impl/EdaptTestCFactoryImpl.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl;
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/impl/EdaptTestCImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/impl/EdaptTestCImpl.java
index 8040b92..cc10b70 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/impl/EdaptTestCImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/impl/EdaptTestCImpl.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl;
 
@@ -17,10 +25,10 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl.EdaptTestCImpl#getD <em>D</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/impl/EdaptTestCPackageImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/impl/EdaptTestCPackageImpl.java
index 40b3260..8a08083 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/impl/EdaptTestCPackageImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/impl/EdaptTestCPackageImpl.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl;
 
@@ -45,13 +53,16 @@
 	private EClass cEClass = null;
 
 	/**
-	 * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
-	 * EPackage.Registry} by the package
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
 	 * package URI value.
 	 * <p>
-	 * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
-	 * performs initialization of the package, or returns the registered package, if one already exists. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
+	 * Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
 	 * 
 	 * @see org.eclipse.emf.ecore.EPackage.Registry
 	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.c.EdaptTestCPackage#eNS_URI
@@ -74,9 +85,10 @@
 	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
 	 *
 	 * <p>
-	 * This method is used to initialize {@link EdaptTestCPackage#eINSTANCE} when that field is accessed. Clients should
-	 * not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc
-	 * --> <!-- end-user-doc -->
+	 * This method is used to initialize {@link EdaptTestCPackage#eINSTANCE} when that field is accessed.
+	 * 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()
@@ -89,40 +101,40 @@
 		}
 
 		// Obtain or create and register package
-		final EdaptTestCPackageImpl theCPackage = (EdaptTestCPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EdaptTestCPackageImpl ? EPackage.Registry.INSTANCE
-			.get(eNS_URI)
-			: new EdaptTestCPackageImpl());
+		final EdaptTestCPackageImpl theCPackage = (EdaptTestCPackageImpl) (EPackage.Registry.INSTANCE
+			.get(eNS_URI) instanceof EdaptTestCPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI)
+				: new EdaptTestCPackageImpl());
 
 		isInited = true;
 
 		// Obtain or create and register interdependencies
 		final EdaptTestAPackageImpl theAPackage = (EdaptTestAPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestAPackage.eNS_URI) instanceof EdaptTestAPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestAPackage.eNS_URI) : EdaptTestAPackage.eINSTANCE);
+			.getEPackage(EdaptTestAPackage.eNS_URI) instanceof EdaptTestAPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestAPackage.eNS_URI) : EdaptTestAPackage.eINSTANCE);
 		final EdaptTestBPackageImpl theBPackage = (EdaptTestBPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestBPackage.eNS_URI) instanceof EdaptTestBPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestBPackage.eNS_URI) : EdaptTestBPackage.eINSTANCE);
+			.getEPackage(EdaptTestBPackage.eNS_URI) instanceof EdaptTestBPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestBPackage.eNS_URI) : EdaptTestBPackage.eINSTANCE);
 		final EdaptTestDPackageImpl theDPackage = (EdaptTestDPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestDPackage.eNS_URI) instanceof EdaptTestDPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestDPackage.eNS_URI) : EdaptTestDPackage.eINSTANCE);
+			.getEPackage(EdaptTestDPackage.eNS_URI) instanceof EdaptTestDPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestDPackage.eNS_URI) : EdaptTestDPackage.eINSTANCE);
 		final EdaptTestEPackageImpl theEPackage = (EdaptTestEPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestEPackage.eNS_URI) instanceof EdaptTestEPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestEPackage.eNS_URI) : EdaptTestEPackage.eINSTANCE);
+			.getEPackage(EdaptTestEPackage.eNS_URI) instanceof EdaptTestEPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestEPackage.eNS_URI) : EdaptTestEPackage.eINSTANCE);
 		final EdaptTestFPackageImpl theFPackage = (EdaptTestFPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestFPackage.eNS_URI) instanceof EdaptTestFPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestFPackage.eNS_URI) : EdaptTestFPackage.eINSTANCE);
+			.getEPackage(EdaptTestFPackage.eNS_URI) instanceof EdaptTestFPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestFPackage.eNS_URI) : EdaptTestFPackage.eINSTANCE);
 		final EdaptTestWPackageImpl theWPackage = (EdaptTestWPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestWPackage.eNS_URI) instanceof EdaptTestWPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestWPackage.eNS_URI) : EdaptTestWPackage.eINSTANCE);
+			.getEPackage(EdaptTestWPackage.eNS_URI) instanceof EdaptTestWPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestWPackage.eNS_URI) : EdaptTestWPackage.eINSTANCE);
 		final EdaptTestXPackageImpl theXPackage = (EdaptTestXPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestXPackage.eNS_URI) instanceof EdaptTestXPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestXPackage.eNS_URI) : EdaptTestXPackage.eINSTANCE);
+			.getEPackage(EdaptTestXPackage.eNS_URI) instanceof EdaptTestXPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestXPackage.eNS_URI) : EdaptTestXPackage.eINSTANCE);
 		final EdaptTestYPackageImpl theYPackage = (EdaptTestYPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestYPackage.eNS_URI) instanceof EdaptTestYPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestYPackage.eNS_URI) : EdaptTestYPackage.eINSTANCE);
+			.getEPackage(EdaptTestYPackage.eNS_URI) instanceof EdaptTestYPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestYPackage.eNS_URI) : EdaptTestYPackage.eINSTANCE);
 		final EdaptTestZPackageImpl theZPackage = (EdaptTestZPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestZPackage.eNS_URI) instanceof EdaptTestZPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestZPackage.eNS_URI) : EdaptTestZPackage.eINSTANCE);
+			.getEPackage(EdaptTestZPackage.eNS_URI) instanceof EdaptTestZPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestZPackage.eNS_URI) : EdaptTestZPackage.eINSTANCE);
 
 		// Create package meta-data objects
 		theCPackage.createPackageContents();
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/util/CAdapterFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/util/CAdapterFactory.java
index f57ef12..cdef6ea 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/util/CAdapterFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/util/CAdapterFactory.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.c.util;
 
@@ -69,18 +77,17 @@
 	 * 
 	 * @generated
 	 */
-	protected CSwitch<Adapter> modelSwitch =
-		new CSwitch<Adapter>() {
-			@Override
-			public Adapter caseC(EdaptTestC object) {
-				return createCAdapter();
-			}
+	protected CSwitch<Adapter> modelSwitch = new CSwitch<Adapter>() {
+		@Override
+		public Adapter caseC(EdaptTestC object) {
+			return createCAdapter();
+		}
 
-			@Override
-			public Adapter defaultCase(EObject object) {
-				return createEObjectAdapter();
-			}
-		};
+		@Override
+		public Adapter defaultCase(EObject object) {
+			return createEObjectAdapter();
+		}
+	};
 
 	/**
 	 * Creates an adapter for the <code>target</code>.
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/util/CSwitch.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/util/CSwitch.java
index a606cbf..254e47b 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/util/CSwitch.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/c/util/CSwitch.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.c.util;
 
@@ -11,8 +19,8 @@
 /**
  * <!-- begin-user-doc -->
  * The <b>Switch</b> for the model's inheritance hierarchy.
- * It supports the call {@link #doSwitch(EObject) doSwitch(object)} to invoke the <code>caseXXX</code> method for each
- * class of the model,
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
  * starting with the actual class of the object
  * and proceeding up the inheritance hierarchy
  * until a non-null result is returned,
@@ -50,7 +58,7 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
-	 * @parameter ePackage the package in question.
+	 * @param ePackage the package in question.
 	 * @return whether this is a switch for the given package.
 	 * @generated
 	 */
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/EdaptTestD.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/EdaptTestD.java
index e345083..16297c8 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/EdaptTestD.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/EdaptTestD.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.d;
 
@@ -12,10 +20,10 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestD#getB <em>B</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestDPackage#getD()
  * @model
@@ -26,7 +34,8 @@
 	 * Returns the value of the '<em><b>B</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>B</em>' reference isn't clear, there really should be more of a description here...
+	 * If the meaning of the '<em>B</em>' reference isn't clear,
+	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/EdaptTestDFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/EdaptTestDFactory.java
index 07d9a98..8088d8b 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/EdaptTestDFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/EdaptTestDFactory.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.d;
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/EdaptTestDPackage.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/EdaptTestDPackage.java
index 0b864ff..a68d4a1 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/EdaptTestDPackage.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/EdaptTestDPackage.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.d;
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/impl/EdaptTestDFactoryImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/impl/EdaptTestDFactoryImpl.java
index 3dd44b3..66c43c7 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/impl/EdaptTestDFactoryImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/impl/EdaptTestDFactoryImpl.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl;
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/impl/EdaptTestDImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/impl/EdaptTestDImpl.java
index 6ec04cd..55b85a0 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/impl/EdaptTestDImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/impl/EdaptTestDImpl.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl;
 
@@ -17,10 +25,10 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl.EdaptTestDImpl#getB <em>B</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/impl/EdaptTestDPackageImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/impl/EdaptTestDPackageImpl.java
index 0a2bf52..ae15977 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/impl/EdaptTestDPackageImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/impl/EdaptTestDPackageImpl.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl;
 
@@ -45,13 +53,16 @@
 	private EClass dEClass = null;
 
 	/**
-	 * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
-	 * EPackage.Registry} by the package
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
 	 * package URI value.
 	 * <p>
-	 * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
-	 * performs initialization of the package, or returns the registered package, if one already exists. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
+	 * Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
 	 * 
 	 * @see org.eclipse.emf.ecore.EPackage.Registry
 	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.d.EdaptTestDPackage#eNS_URI
@@ -74,9 +85,10 @@
 	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
 	 *
 	 * <p>
-	 * This method is used to initialize {@link EdaptTestDPackage#eINSTANCE} when that field is accessed. Clients should
-	 * not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc
-	 * --> <!-- end-user-doc -->
+	 * This method is used to initialize {@link EdaptTestDPackage#eINSTANCE} when that field is accessed.
+	 * 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()
@@ -89,40 +101,40 @@
 		}
 
 		// Obtain or create and register package
-		final EdaptTestDPackageImpl theDPackage = (EdaptTestDPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EdaptTestDPackageImpl ? EPackage.Registry.INSTANCE
-			.get(eNS_URI)
-			: new EdaptTestDPackageImpl());
+		final EdaptTestDPackageImpl theDPackage = (EdaptTestDPackageImpl) (EPackage.Registry.INSTANCE
+			.get(eNS_URI) instanceof EdaptTestDPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI)
+				: new EdaptTestDPackageImpl());
 
 		isInited = true;
 
 		// Obtain or create and register interdependencies
 		final EdaptTestAPackageImpl theAPackage = (EdaptTestAPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestAPackage.eNS_URI) instanceof EdaptTestAPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestAPackage.eNS_URI) : EdaptTestAPackage.eINSTANCE);
+			.getEPackage(EdaptTestAPackage.eNS_URI) instanceof EdaptTestAPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestAPackage.eNS_URI) : EdaptTestAPackage.eINSTANCE);
 		final EdaptTestBPackageImpl theBPackage = (EdaptTestBPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestBPackage.eNS_URI) instanceof EdaptTestBPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestBPackage.eNS_URI) : EdaptTestBPackage.eINSTANCE);
+			.getEPackage(EdaptTestBPackage.eNS_URI) instanceof EdaptTestBPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestBPackage.eNS_URI) : EdaptTestBPackage.eINSTANCE);
 		final EdaptTestCPackageImpl theCPackage = (EdaptTestCPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestCPackage.eNS_URI) instanceof EdaptTestCPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestCPackage.eNS_URI) : EdaptTestCPackage.eINSTANCE);
+			.getEPackage(EdaptTestCPackage.eNS_URI) instanceof EdaptTestCPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestCPackage.eNS_URI) : EdaptTestCPackage.eINSTANCE);
 		final EdaptTestEPackageImpl theEPackage = (EdaptTestEPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestEPackage.eNS_URI) instanceof EdaptTestEPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestEPackage.eNS_URI) : EdaptTestEPackage.eINSTANCE);
+			.getEPackage(EdaptTestEPackage.eNS_URI) instanceof EdaptTestEPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestEPackage.eNS_URI) : EdaptTestEPackage.eINSTANCE);
 		final EdaptTestFPackageImpl theFPackage = (EdaptTestFPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestFPackage.eNS_URI) instanceof EdaptTestFPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestFPackage.eNS_URI) : EdaptTestFPackage.eINSTANCE);
+			.getEPackage(EdaptTestFPackage.eNS_URI) instanceof EdaptTestFPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestFPackage.eNS_URI) : EdaptTestFPackage.eINSTANCE);
 		final EdaptTestWPackageImpl theWPackage = (EdaptTestWPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestWPackage.eNS_URI) instanceof EdaptTestWPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestWPackage.eNS_URI) : EdaptTestWPackage.eINSTANCE);
+			.getEPackage(EdaptTestWPackage.eNS_URI) instanceof EdaptTestWPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestWPackage.eNS_URI) : EdaptTestWPackage.eINSTANCE);
 		final EdaptTestXPackageImpl theXPackage = (EdaptTestXPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestXPackage.eNS_URI) instanceof EdaptTestXPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestXPackage.eNS_URI) : EdaptTestXPackage.eINSTANCE);
+			.getEPackage(EdaptTestXPackage.eNS_URI) instanceof EdaptTestXPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestXPackage.eNS_URI) : EdaptTestXPackage.eINSTANCE);
 		final EdaptTestYPackageImpl theYPackage = (EdaptTestYPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestYPackage.eNS_URI) instanceof EdaptTestYPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestYPackage.eNS_URI) : EdaptTestYPackage.eINSTANCE);
+			.getEPackage(EdaptTestYPackage.eNS_URI) instanceof EdaptTestYPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestYPackage.eNS_URI) : EdaptTestYPackage.eINSTANCE);
 		final EdaptTestZPackageImpl theZPackage = (EdaptTestZPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestZPackage.eNS_URI) instanceof EdaptTestZPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestZPackage.eNS_URI) : EdaptTestZPackage.eINSTANCE);
+			.getEPackage(EdaptTestZPackage.eNS_URI) instanceof EdaptTestZPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestZPackage.eNS_URI) : EdaptTestZPackage.eINSTANCE);
 
 		// Create package meta-data objects
 		theDPackage.createPackageContents();
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/util/DAdapterFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/util/DAdapterFactory.java
index dfaa4ba..ccdaea3 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/util/DAdapterFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/util/DAdapterFactory.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.d.util;
 
@@ -69,18 +77,17 @@
 	 * 
 	 * @generated
 	 */
-	protected DSwitch<Adapter> modelSwitch =
-		new DSwitch<Adapter>() {
-			@Override
-			public Adapter caseD(EdaptTestD object) {
-				return createDAdapter();
-			}
+	protected DSwitch<Adapter> modelSwitch = new DSwitch<Adapter>() {
+		@Override
+		public Adapter caseD(EdaptTestD object) {
+			return createDAdapter();
+		}
 
-			@Override
-			public Adapter defaultCase(EObject object) {
-				return createEObjectAdapter();
-			}
-		};
+		@Override
+		public Adapter defaultCase(EObject object) {
+			return createEObjectAdapter();
+		}
+	};
 
 	/**
 	 * Creates an adapter for the <code>target</code>.
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/util/DSwitch.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/util/DSwitch.java
index dccc119..f6d674b 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/util/DSwitch.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/d/util/DSwitch.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.d.util;
 
@@ -11,8 +19,8 @@
 /**
  * <!-- begin-user-doc -->
  * The <b>Switch</b> for the model's inheritance hierarchy.
- * It supports the call {@link #doSwitch(EObject) doSwitch(object)} to invoke the <code>caseXXX</code> method for each
- * class of the model,
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
  * starting with the actual class of the object
  * and proceeding up the inheritance hierarchy
  * until a non-null result is returned,
@@ -50,7 +58,7 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
-	 * @parameter ePackage the package in question.
+	 * @param ePackage the package in question.
 	 * @return whether this is a switch for the given package.
 	 * @generated
 	 */
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/EdaptTestE.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/EdaptTestE.java
index d636e4c..fd02783 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/EdaptTestE.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/EdaptTestE.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.e;
 
@@ -13,11 +21,11 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestE#getD <em>D</em>}</li>
  * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestE#getF <em>F</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestEPackage#getE()
  * @model
@@ -28,7 +36,8 @@
 	 * Returns the value of the '<em><b>D</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>D</em>' reference isn't clear, there really should be more of a description here...
+	 * If the meaning of the '<em>D</em>' reference isn't clear,
+	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * 
@@ -56,7 +65,8 @@
 	 * Returns the value of the '<em><b>F</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>F</em>' reference isn't clear, there really should be more of a description here...
+	 * If the meaning of the '<em>F</em>' reference isn't clear,
+	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/EdaptTestEFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/EdaptTestEFactory.java
index 469c06b..5eef829 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/EdaptTestEFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/EdaptTestEFactory.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.e;
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/EdaptTestEPackage.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/EdaptTestEPackage.java
index 771b97f..886e4ec 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/EdaptTestEPackage.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/EdaptTestEPackage.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.e;
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/impl/EdaptTestEFactoryImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/impl/EdaptTestEFactoryImpl.java
index 575d7da..315094c 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/impl/EdaptTestEFactoryImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/impl/EdaptTestEFactoryImpl.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl;
 
@@ -82,11 +90,11 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 *
-	 * @generated NOT
+	 * @generated
 	 */
 	@Override
 	public EdaptTestEPackage getEPackage() {
-		return (EdaptTestEPackage) super.getEPackage();
+		return getEPackage();
 	}
 
 	/**
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/impl/EdaptTestEImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/impl/EdaptTestEImpl.java
index 6dbb944..c7e16cb 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/impl/EdaptTestEImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/impl/EdaptTestEImpl.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl;
 
@@ -18,11 +26,11 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EdaptTestEImpl#getD <em>D</em>}</li>
  * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl.EdaptTestEImpl#getF <em>F</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/impl/EdaptTestEPackageImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/impl/EdaptTestEPackageImpl.java
index b29513d..06777ec 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/impl/EdaptTestEPackageImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/impl/EdaptTestEPackageImpl.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl;
 
@@ -45,13 +53,16 @@
 	private EClass eEClass = null;
 
 	/**
-	 * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
-	 * EPackage.Registry} by the package
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
 	 * package URI value.
 	 * <p>
-	 * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
-	 * performs initialization of the package, or returns the registered package, if one already exists. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
+	 * Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
 	 * 
 	 * @see org.eclipse.emf.ecore.EPackage.Registry
 	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.e.EdaptTestEPackage#eNS_URI
@@ -74,9 +85,10 @@
 	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
 	 *
 	 * <p>
-	 * This method is used to initialize {@link EdaptTestEPackage#eINSTANCE} when that field is accessed. Clients should
-	 * not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc
-	 * --> <!-- end-user-doc -->
+	 * This method is used to initialize {@link EdaptTestEPackage#eINSTANCE} when that field is accessed.
+	 * 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()
@@ -89,40 +101,40 @@
 		}
 
 		// Obtain or create and register package
-		final EdaptTestEPackageImpl theEPackage = (EdaptTestEPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EdaptTestEPackageImpl ? EPackage.Registry.INSTANCE
-			.get(eNS_URI)
-			: new EdaptTestEPackageImpl());
+		final EdaptTestEPackageImpl theEPackage = (EdaptTestEPackageImpl) (EPackage.Registry.INSTANCE
+			.get(eNS_URI) instanceof EdaptTestEPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI)
+				: new EdaptTestEPackageImpl());
 
 		isInited = true;
 
 		// Obtain or create and register interdependencies
 		final EdaptTestAPackageImpl theAPackage = (EdaptTestAPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestAPackage.eNS_URI) instanceof EdaptTestAPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestAPackage.eNS_URI) : EdaptTestAPackage.eINSTANCE);
+			.getEPackage(EdaptTestAPackage.eNS_URI) instanceof EdaptTestAPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestAPackage.eNS_URI) : EdaptTestAPackage.eINSTANCE);
 		final EdaptTestBPackageImpl theBPackage = (EdaptTestBPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestBPackage.eNS_URI) instanceof EdaptTestBPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestBPackage.eNS_URI) : EdaptTestBPackage.eINSTANCE);
+			.getEPackage(EdaptTestBPackage.eNS_URI) instanceof EdaptTestBPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestBPackage.eNS_URI) : EdaptTestBPackage.eINSTANCE);
 		final EdaptTestCPackageImpl theCPackage = (EdaptTestCPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestCPackage.eNS_URI) instanceof EdaptTestCPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestCPackage.eNS_URI) : EdaptTestCPackage.eINSTANCE);
+			.getEPackage(EdaptTestCPackage.eNS_URI) instanceof EdaptTestCPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestCPackage.eNS_URI) : EdaptTestCPackage.eINSTANCE);
 		final EdaptTestDPackageImpl theDPackage = (EdaptTestDPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestDPackage.eNS_URI) instanceof EdaptTestDPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestDPackage.eNS_URI) : EdaptTestDPackage.eINSTANCE);
+			.getEPackage(EdaptTestDPackage.eNS_URI) instanceof EdaptTestDPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestDPackage.eNS_URI) : EdaptTestDPackage.eINSTANCE);
 		final EdaptTestFPackageImpl theFPackage = (EdaptTestFPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestFPackage.eNS_URI) instanceof EdaptTestFPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestFPackage.eNS_URI) : EdaptTestFPackage.eINSTANCE);
+			.getEPackage(EdaptTestFPackage.eNS_URI) instanceof EdaptTestFPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestFPackage.eNS_URI) : EdaptTestFPackage.eINSTANCE);
 		final EdaptTestWPackageImpl theWPackage = (EdaptTestWPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestWPackage.eNS_URI) instanceof EdaptTestWPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestWPackage.eNS_URI) : EdaptTestWPackage.eINSTANCE);
+			.getEPackage(EdaptTestWPackage.eNS_URI) instanceof EdaptTestWPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestWPackage.eNS_URI) : EdaptTestWPackage.eINSTANCE);
 		final EdaptTestXPackageImpl theXPackage = (EdaptTestXPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestXPackage.eNS_URI) instanceof EdaptTestXPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestXPackage.eNS_URI) : EdaptTestXPackage.eINSTANCE);
+			.getEPackage(EdaptTestXPackage.eNS_URI) instanceof EdaptTestXPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestXPackage.eNS_URI) : EdaptTestXPackage.eINSTANCE);
 		final EdaptTestYPackageImpl theYPackage = (EdaptTestYPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestYPackage.eNS_URI) instanceof EdaptTestYPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestYPackage.eNS_URI) : EdaptTestYPackage.eINSTANCE);
+			.getEPackage(EdaptTestYPackage.eNS_URI) instanceof EdaptTestYPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestYPackage.eNS_URI) : EdaptTestYPackage.eINSTANCE);
 		final EdaptTestZPackageImpl theZPackage = (EdaptTestZPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestZPackage.eNS_URI) instanceof EdaptTestZPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestZPackage.eNS_URI) : EdaptTestZPackage.eINSTANCE);
+			.getEPackage(EdaptTestZPackage.eNS_URI) instanceof EdaptTestZPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestZPackage.eNS_URI) : EdaptTestZPackage.eINSTANCE);
 
 		// Create package meta-data objects
 		theEPackage.createPackageContents();
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EAdapterFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EAdapterFactory.java
index 99895ac..f551b56 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EAdapterFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/EAdapterFactory.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.e.util;
 
@@ -69,18 +77,17 @@
 	 * 
 	 * @generated
 	 */
-	protected ESwitch<Adapter> modelSwitch =
-		new ESwitch<Adapter>() {
-			@Override
-			public Adapter caseE(EdaptTestE object) {
-				return createEAdapter();
-			}
+	protected ESwitch<Adapter> modelSwitch = new ESwitch<Adapter>() {
+		@Override
+		public Adapter caseE(EdaptTestE object) {
+			return createEAdapter();
+		}
 
-			@Override
-			public Adapter defaultCase(EObject object) {
-				return createEObjectAdapter();
-			}
-		};
+		@Override
+		public Adapter defaultCase(EObject object) {
+			return createEObjectAdapter();
+		}
+	};
 
 	/**
 	 * Creates an adapter for the <code>target</code>.
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/ESwitch.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/ESwitch.java
index 50dc274..d4e871f 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/ESwitch.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/e/util/ESwitch.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.e.util;
 
@@ -11,8 +19,8 @@
 /**
  * <!-- begin-user-doc -->
  * The <b>Switch</b> for the model's inheritance hierarchy.
- * It supports the call {@link #doSwitch(EObject) doSwitch(object)} to invoke the <code>caseXXX</code> method for each
- * class of the model,
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
  * starting with the actual class of the object
  * and proceeding up the inheritance hierarchy
  * until a non-null result is returned,
@@ -50,7 +58,7 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
-	 * @parameter ePackage the package in question.
+	 * @param ePackage the package in question.
 	 * @return whether this is a switch for the given package.
 	 * @generated
 	 */
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/EdaptTestF.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/EdaptTestF.java
index d98808f..3eaa2f6 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/EdaptTestF.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/EdaptTestF.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.f;
 
@@ -12,10 +20,10 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestF#getE <em>E</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestFPackage#getF()
  * @model
@@ -26,7 +34,8 @@
 	 * Returns the value of the '<em><b>E</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>E</em>' reference isn't clear, there really should be more of a description here...
+	 * If the meaning of the '<em>E</em>' reference isn't clear,
+	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/EdaptTestFFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/EdaptTestFFactory.java
index 43bc80a..2ee50c6 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/EdaptTestFFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/EdaptTestFFactory.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.f;
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/EdaptTestFPackage.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/EdaptTestFPackage.java
index fc2df56..2ce7c39 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/EdaptTestFPackage.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/EdaptTestFPackage.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.f;
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/impl/EdaptTestFFactoryImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/impl/EdaptTestFFactoryImpl.java
index eab6aaa..87a3ddb 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/impl/EdaptTestFFactoryImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/impl/EdaptTestFFactoryImpl.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl;
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/impl/EdaptTestFImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/impl/EdaptTestFImpl.java
index c261dda..34da761 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/impl/EdaptTestFImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/impl/EdaptTestFImpl.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl;
 
@@ -17,10 +25,10 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl.EdaptTestFImpl#getE <em>E</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/impl/EdaptTestFPackageImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/impl/EdaptTestFPackageImpl.java
index 921038c..c9813d9 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/impl/EdaptTestFPackageImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/impl/EdaptTestFPackageImpl.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl;
 
@@ -45,13 +53,16 @@
 	private EClass fEClass = null;
 
 	/**
-	 * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
-	 * EPackage.Registry} by the package
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
 	 * package URI value.
 	 * <p>
-	 * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
-	 * performs initialization of the package, or returns the registered package, if one already exists. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
+	 * Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
 	 * 
 	 * @see org.eclipse.emf.ecore.EPackage.Registry
 	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.f.EdaptTestFPackage#eNS_URI
@@ -74,9 +85,10 @@
 	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
 	 *
 	 * <p>
-	 * This method is used to initialize {@link EdaptTestFPackage#eINSTANCE} when that field is accessed. Clients should
-	 * not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc
-	 * --> <!-- end-user-doc -->
+	 * This method is used to initialize {@link EdaptTestFPackage#eINSTANCE} when that field is accessed.
+	 * 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()
@@ -89,40 +101,40 @@
 		}
 
 		// Obtain or create and register package
-		final EdaptTestFPackageImpl theFPackage = (EdaptTestFPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EdaptTestFPackageImpl ? EPackage.Registry.INSTANCE
-			.get(eNS_URI)
-			: new EdaptTestFPackageImpl());
+		final EdaptTestFPackageImpl theFPackage = (EdaptTestFPackageImpl) (EPackage.Registry.INSTANCE
+			.get(eNS_URI) instanceof EdaptTestFPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI)
+				: new EdaptTestFPackageImpl());
 
 		isInited = true;
 
 		// Obtain or create and register interdependencies
 		final EdaptTestAPackageImpl theAPackage = (EdaptTestAPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestAPackage.eNS_URI) instanceof EdaptTestAPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestAPackage.eNS_URI) : EdaptTestAPackage.eINSTANCE);
+			.getEPackage(EdaptTestAPackage.eNS_URI) instanceof EdaptTestAPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestAPackage.eNS_URI) : EdaptTestAPackage.eINSTANCE);
 		final EdaptTestBPackageImpl theBPackage = (EdaptTestBPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestBPackage.eNS_URI) instanceof EdaptTestBPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestBPackage.eNS_URI) : EdaptTestBPackage.eINSTANCE);
+			.getEPackage(EdaptTestBPackage.eNS_URI) instanceof EdaptTestBPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestBPackage.eNS_URI) : EdaptTestBPackage.eINSTANCE);
 		final EdaptTestCPackageImpl theCPackage = (EdaptTestCPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestCPackage.eNS_URI) instanceof EdaptTestCPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestCPackage.eNS_URI) : EdaptTestCPackage.eINSTANCE);
+			.getEPackage(EdaptTestCPackage.eNS_URI) instanceof EdaptTestCPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestCPackage.eNS_URI) : EdaptTestCPackage.eINSTANCE);
 		final EdaptTestDPackageImpl theDPackage = (EdaptTestDPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestDPackage.eNS_URI) instanceof EdaptTestDPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestDPackage.eNS_URI) : EdaptTestDPackage.eINSTANCE);
+			.getEPackage(EdaptTestDPackage.eNS_URI) instanceof EdaptTestDPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestDPackage.eNS_URI) : EdaptTestDPackage.eINSTANCE);
 		final EdaptTestEPackageImpl theEPackage = (EdaptTestEPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestEPackage.eNS_URI) instanceof EdaptTestEPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestEPackage.eNS_URI) : EdaptTestEPackage.eINSTANCE);
+			.getEPackage(EdaptTestEPackage.eNS_URI) instanceof EdaptTestEPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestEPackage.eNS_URI) : EdaptTestEPackage.eINSTANCE);
 		final EdaptTestWPackageImpl theWPackage = (EdaptTestWPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestWPackage.eNS_URI) instanceof EdaptTestWPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestWPackage.eNS_URI) : EdaptTestWPackage.eINSTANCE);
+			.getEPackage(EdaptTestWPackage.eNS_URI) instanceof EdaptTestWPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestWPackage.eNS_URI) : EdaptTestWPackage.eINSTANCE);
 		final EdaptTestXPackageImpl theXPackage = (EdaptTestXPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestXPackage.eNS_URI) instanceof EdaptTestXPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestXPackage.eNS_URI) : EdaptTestXPackage.eINSTANCE);
+			.getEPackage(EdaptTestXPackage.eNS_URI) instanceof EdaptTestXPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestXPackage.eNS_URI) : EdaptTestXPackage.eINSTANCE);
 		final EdaptTestYPackageImpl theYPackage = (EdaptTestYPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestYPackage.eNS_URI) instanceof EdaptTestYPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestYPackage.eNS_URI) : EdaptTestYPackage.eINSTANCE);
+			.getEPackage(EdaptTestYPackage.eNS_URI) instanceof EdaptTestYPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestYPackage.eNS_URI) : EdaptTestYPackage.eINSTANCE);
 		final EdaptTestZPackageImpl theZPackage = (EdaptTestZPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestZPackage.eNS_URI) instanceof EdaptTestZPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestZPackage.eNS_URI) : EdaptTestZPackage.eINSTANCE);
+			.getEPackage(EdaptTestZPackage.eNS_URI) instanceof EdaptTestZPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestZPackage.eNS_URI) : EdaptTestZPackage.eINSTANCE);
 
 		// Create package meta-data objects
 		theFPackage.createPackageContents();
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/util/FAdapterFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/util/FAdapterFactory.java
index cbdf7f3..ea4749b 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/util/FAdapterFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/util/FAdapterFactory.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.f.util;
 
@@ -69,18 +77,17 @@
 	 * 
 	 * @generated
 	 */
-	protected FSwitch<Adapter> modelSwitch =
-		new FSwitch<Adapter>() {
-			@Override
-			public Adapter caseF(EdaptTestF object) {
-				return createFAdapter();
-			}
+	protected FSwitch<Adapter> modelSwitch = new FSwitch<Adapter>() {
+		@Override
+		public Adapter caseF(EdaptTestF object) {
+			return createFAdapter();
+		}
 
-			@Override
-			public Adapter defaultCase(EObject object) {
-				return createEObjectAdapter();
-			}
-		};
+		@Override
+		public Adapter defaultCase(EObject object) {
+			return createEObjectAdapter();
+		}
+	};
 
 	/**
 	 * Creates an adapter for the <code>target</code>.
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/util/FSwitch.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/util/FSwitch.java
index 0338a5f..f320d5e 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/util/FSwitch.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/f/util/FSwitch.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.f.util;
 
@@ -11,8 +19,8 @@
 /**
  * <!-- begin-user-doc -->
  * The <b>Switch</b> for the model's inheritance hierarchy.
- * It supports the call {@link #doSwitch(EObject) doSwitch(object)} to invoke the <code>caseXXX</code> method for each
- * class of the model,
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
  * starting with the actual class of the object
  * and proceeding up the inheritance hierarchy
  * until a non-null result is returned,
@@ -50,7 +58,7 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
-	 * @parameter ePackage the package in question.
+	 * @param ePackage the package in question.
 	 * @return whether this is a switch for the given package.
 	 * @generated
 	 */
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/EdaptTestW.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/EdaptTestW.java
index 36c5854..8816bb8 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/EdaptTestW.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/EdaptTestW.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.w;
 
@@ -12,10 +20,10 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestW#getX <em>X</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestWPackage#getW()
  * @model
@@ -26,7 +34,8 @@
 	 * Returns the value of the '<em><b>X</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>X</em>' reference isn't clear, there really should be more of a description here...
+	 * If the meaning of the '<em>X</em>' reference isn't clear,
+	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/EdaptTestWFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/EdaptTestWFactory.java
index 81cfcaf..d2efde2 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/EdaptTestWFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/EdaptTestWFactory.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.w;
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/EdaptTestWPackage.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/EdaptTestWPackage.java
index 630fbb5..b860b2a 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/EdaptTestWPackage.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/EdaptTestWPackage.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.w;
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/impl/EdaptTestWFactoryImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/impl/EdaptTestWFactoryImpl.java
index a14ca0f..1c5455b 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/impl/EdaptTestWFactoryImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/impl/EdaptTestWFactoryImpl.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.w.impl;
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/impl/EdaptTestWImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/impl/EdaptTestWImpl.java
index beb776a..a42d5f0 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/impl/EdaptTestWImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/impl/EdaptTestWImpl.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.w.impl;
 
@@ -17,10 +25,10 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.w.impl.EdaptTestWImpl#getX <em>X</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/impl/EdaptTestWPackageImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/impl/EdaptTestWPackageImpl.java
index 7979ec1..00651c1 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/impl/EdaptTestWPackageImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/impl/EdaptTestWPackageImpl.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.w.impl;
 
@@ -45,13 +53,16 @@
 	private EClass wEClass = null;
 
 	/**
-	 * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
-	 * EPackage.Registry} by the package
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
 	 * package URI value.
 	 * <p>
-	 * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
-	 * performs initialization of the package, or returns the registered package, if one already exists. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
+	 * Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
 	 * 
 	 * @see org.eclipse.emf.ecore.EPackage.Registry
 	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.w.EdaptTestWPackage#eNS_URI
@@ -74,9 +85,10 @@
 	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
 	 *
 	 * <p>
-	 * This method is used to initialize {@link EdaptTestWPackage#eINSTANCE} when that field is accessed. Clients should
-	 * not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc
-	 * --> <!-- end-user-doc -->
+	 * This method is used to initialize {@link EdaptTestWPackage#eINSTANCE} when that field is accessed.
+	 * 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()
@@ -89,40 +101,40 @@
 		}
 
 		// Obtain or create and register package
-		final EdaptTestWPackageImpl theWPackage = (EdaptTestWPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EdaptTestWPackageImpl ? EPackage.Registry.INSTANCE
-			.get(eNS_URI)
-			: new EdaptTestWPackageImpl());
+		final EdaptTestWPackageImpl theWPackage = (EdaptTestWPackageImpl) (EPackage.Registry.INSTANCE
+			.get(eNS_URI) instanceof EdaptTestWPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI)
+				: new EdaptTestWPackageImpl());
 
 		isInited = true;
 
 		// Obtain or create and register interdependencies
 		final EdaptTestAPackageImpl theAPackage = (EdaptTestAPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestAPackage.eNS_URI) instanceof EdaptTestAPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestAPackage.eNS_URI) : EdaptTestAPackage.eINSTANCE);
+			.getEPackage(EdaptTestAPackage.eNS_URI) instanceof EdaptTestAPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestAPackage.eNS_URI) : EdaptTestAPackage.eINSTANCE);
 		final EdaptTestBPackageImpl theBPackage = (EdaptTestBPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestBPackage.eNS_URI) instanceof EdaptTestBPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestBPackage.eNS_URI) : EdaptTestBPackage.eINSTANCE);
+			.getEPackage(EdaptTestBPackage.eNS_URI) instanceof EdaptTestBPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestBPackage.eNS_URI) : EdaptTestBPackage.eINSTANCE);
 		final EdaptTestCPackageImpl theCPackage = (EdaptTestCPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestCPackage.eNS_URI) instanceof EdaptTestCPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestCPackage.eNS_URI) : EdaptTestCPackage.eINSTANCE);
+			.getEPackage(EdaptTestCPackage.eNS_URI) instanceof EdaptTestCPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestCPackage.eNS_URI) : EdaptTestCPackage.eINSTANCE);
 		final EdaptTestDPackageImpl theDPackage = (EdaptTestDPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestDPackage.eNS_URI) instanceof EdaptTestDPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestDPackage.eNS_URI) : EdaptTestDPackage.eINSTANCE);
+			.getEPackage(EdaptTestDPackage.eNS_URI) instanceof EdaptTestDPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestDPackage.eNS_URI) : EdaptTestDPackage.eINSTANCE);
 		final EdaptTestEPackageImpl theEPackage = (EdaptTestEPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestEPackage.eNS_URI) instanceof EdaptTestEPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestEPackage.eNS_URI) : EdaptTestEPackage.eINSTANCE);
+			.getEPackage(EdaptTestEPackage.eNS_URI) instanceof EdaptTestEPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestEPackage.eNS_URI) : EdaptTestEPackage.eINSTANCE);
 		final EdaptTestFPackageImpl theFPackage = (EdaptTestFPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestFPackage.eNS_URI) instanceof EdaptTestFPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestFPackage.eNS_URI) : EdaptTestFPackage.eINSTANCE);
+			.getEPackage(EdaptTestFPackage.eNS_URI) instanceof EdaptTestFPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestFPackage.eNS_URI) : EdaptTestFPackage.eINSTANCE);
 		final EdaptTestXPackageImpl theXPackage = (EdaptTestXPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestXPackage.eNS_URI) instanceof EdaptTestXPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestXPackage.eNS_URI) : EdaptTestXPackage.eINSTANCE);
+			.getEPackage(EdaptTestXPackage.eNS_URI) instanceof EdaptTestXPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestXPackage.eNS_URI) : EdaptTestXPackage.eINSTANCE);
 		final EdaptTestYPackageImpl theYPackage = (EdaptTestYPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestYPackage.eNS_URI) instanceof EdaptTestYPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestYPackage.eNS_URI) : EdaptTestYPackage.eINSTANCE);
+			.getEPackage(EdaptTestYPackage.eNS_URI) instanceof EdaptTestYPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestYPackage.eNS_URI) : EdaptTestYPackage.eINSTANCE);
 		final EdaptTestZPackageImpl theZPackage = (EdaptTestZPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestZPackage.eNS_URI) instanceof EdaptTestZPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestZPackage.eNS_URI) : EdaptTestZPackage.eINSTANCE);
+			.getEPackage(EdaptTestZPackage.eNS_URI) instanceof EdaptTestZPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestZPackage.eNS_URI) : EdaptTestZPackage.eINSTANCE);
 
 		// Create package meta-data objects
 		theWPackage.createPackageContents();
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/util/WAdapterFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/util/WAdapterFactory.java
index 7db3c6e..9e04a8f 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/util/WAdapterFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/util/WAdapterFactory.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.w.util;
 
@@ -69,18 +77,17 @@
 	 * 
 	 * @generated
 	 */
-	protected WSwitch<Adapter> modelSwitch =
-		new WSwitch<Adapter>() {
-			@Override
-			public Adapter caseW(EdaptTestW object) {
-				return createWAdapter();
-			}
+	protected WSwitch<Adapter> modelSwitch = new WSwitch<Adapter>() {
+		@Override
+		public Adapter caseW(EdaptTestW object) {
+			return createWAdapter();
+		}
 
-			@Override
-			public Adapter defaultCase(EObject object) {
-				return createEObjectAdapter();
-			}
-		};
+		@Override
+		public Adapter defaultCase(EObject object) {
+			return createEObjectAdapter();
+		}
+	};
 
 	/**
 	 * Creates an adapter for the <code>target</code>.
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/util/WSwitch.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/util/WSwitch.java
index c251371..6787db7 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/util/WSwitch.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/w/util/WSwitch.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.w.util;
 
@@ -11,8 +19,8 @@
 /**
  * <!-- begin-user-doc -->
  * The <b>Switch</b> for the model's inheritance hierarchy.
- * It supports the call {@link #doSwitch(EObject) doSwitch(object)} to invoke the <code>caseXXX</code> method for each
- * class of the model,
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
  * starting with the actual class of the object
  * and proceeding up the inheritance hierarchy
  * until a non-null result is returned,
@@ -50,7 +58,7 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
-	 * @parameter ePackage the package in question.
+	 * @param ePackage the package in question.
 	 * @return whether this is a switch for the given package.
 	 * @generated
 	 */
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/EdaptTestX.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/EdaptTestX.java
index bd96825..dcd7484 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/EdaptTestX.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/EdaptTestX.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.x;
 
@@ -12,10 +20,10 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestX#getW <em>W</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestXPackage#getX()
  * @model
@@ -26,7 +34,8 @@
 	 * Returns the value of the '<em><b>W</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>W</em>' reference isn't clear, there really should be more of a description here...
+	 * If the meaning of the '<em>W</em>' reference isn't clear,
+	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/EdaptTestXFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/EdaptTestXFactory.java
index 6da1e3d..71278ac 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/EdaptTestXFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/EdaptTestXFactory.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.x;
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/EdaptTestXPackage.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/EdaptTestXPackage.java
index f733659..ec8fa19 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/EdaptTestXPackage.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/EdaptTestXPackage.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.x;
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/impl/EdaptTestXFactoryImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/impl/EdaptTestXFactoryImpl.java
index 8605c95..92a5344 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/impl/EdaptTestXFactoryImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/impl/EdaptTestXFactoryImpl.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.x.impl;
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/impl/EdaptTestXImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/impl/EdaptTestXImpl.java
index d3eda7e..a8312b1 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/impl/EdaptTestXImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/impl/EdaptTestXImpl.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.x.impl;
 
@@ -17,10 +25,10 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.x.impl.EdaptTestXImpl#getW <em>W</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/impl/EdaptTestXPackageImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/impl/EdaptTestXPackageImpl.java
index b0ddc50..6990b27 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/impl/EdaptTestXPackageImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/impl/EdaptTestXPackageImpl.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.x.impl;
 
@@ -45,13 +53,16 @@
 	private EClass xEClass = null;
 
 	/**
-	 * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
-	 * EPackage.Registry} by the package
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
 	 * package URI value.
 	 * <p>
-	 * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
-	 * performs initialization of the package, or returns the registered package, if one already exists. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
+	 * Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
 	 * 
 	 * @see org.eclipse.emf.ecore.EPackage.Registry
 	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.x.EdaptTestXPackage#eNS_URI
@@ -74,9 +85,10 @@
 	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
 	 *
 	 * <p>
-	 * This method is used to initialize {@link EdaptTestXPackage#eINSTANCE} when that field is accessed. Clients should
-	 * not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc
-	 * --> <!-- end-user-doc -->
+	 * This method is used to initialize {@link EdaptTestXPackage#eINSTANCE} when that field is accessed.
+	 * 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()
@@ -89,40 +101,40 @@
 		}
 
 		// Obtain or create and register package
-		final EdaptTestXPackageImpl theXPackage = (EdaptTestXPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EdaptTestXPackageImpl ? EPackage.Registry.INSTANCE
-			.get(eNS_URI)
-			: new EdaptTestXPackageImpl());
+		final EdaptTestXPackageImpl theXPackage = (EdaptTestXPackageImpl) (EPackage.Registry.INSTANCE
+			.get(eNS_URI) instanceof EdaptTestXPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI)
+				: new EdaptTestXPackageImpl());
 
 		isInited = true;
 
 		// Obtain or create and register interdependencies
 		final EdaptTestAPackageImpl theAPackage = (EdaptTestAPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestAPackage.eNS_URI) instanceof EdaptTestAPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestAPackage.eNS_URI) : EdaptTestAPackage.eINSTANCE);
+			.getEPackage(EdaptTestAPackage.eNS_URI) instanceof EdaptTestAPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestAPackage.eNS_URI) : EdaptTestAPackage.eINSTANCE);
 		final EdaptTestBPackageImpl theBPackage = (EdaptTestBPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestBPackage.eNS_URI) instanceof EdaptTestBPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestBPackage.eNS_URI) : EdaptTestBPackage.eINSTANCE);
+			.getEPackage(EdaptTestBPackage.eNS_URI) instanceof EdaptTestBPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestBPackage.eNS_URI) : EdaptTestBPackage.eINSTANCE);
 		final EdaptTestCPackageImpl theCPackage = (EdaptTestCPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestCPackage.eNS_URI) instanceof EdaptTestCPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestCPackage.eNS_URI) : EdaptTestCPackage.eINSTANCE);
+			.getEPackage(EdaptTestCPackage.eNS_URI) instanceof EdaptTestCPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestCPackage.eNS_URI) : EdaptTestCPackage.eINSTANCE);
 		final EdaptTestDPackageImpl theDPackage = (EdaptTestDPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestDPackage.eNS_URI) instanceof EdaptTestDPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestDPackage.eNS_URI) : EdaptTestDPackage.eINSTANCE);
+			.getEPackage(EdaptTestDPackage.eNS_URI) instanceof EdaptTestDPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestDPackage.eNS_URI) : EdaptTestDPackage.eINSTANCE);
 		final EdaptTestEPackageImpl theEPackage = (EdaptTestEPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestEPackage.eNS_URI) instanceof EdaptTestEPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestEPackage.eNS_URI) : EdaptTestEPackage.eINSTANCE);
+			.getEPackage(EdaptTestEPackage.eNS_URI) instanceof EdaptTestEPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestEPackage.eNS_URI) : EdaptTestEPackage.eINSTANCE);
 		final EdaptTestFPackageImpl theFPackage = (EdaptTestFPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestFPackage.eNS_URI) instanceof EdaptTestFPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestFPackage.eNS_URI) : EdaptTestFPackage.eINSTANCE);
+			.getEPackage(EdaptTestFPackage.eNS_URI) instanceof EdaptTestFPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestFPackage.eNS_URI) : EdaptTestFPackage.eINSTANCE);
 		final EdaptTestWPackageImpl theWPackage = (EdaptTestWPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestWPackage.eNS_URI) instanceof EdaptTestWPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestWPackage.eNS_URI) : EdaptTestWPackage.eINSTANCE);
+			.getEPackage(EdaptTestWPackage.eNS_URI) instanceof EdaptTestWPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestWPackage.eNS_URI) : EdaptTestWPackage.eINSTANCE);
 		final EdaptTestYPackageImpl theYPackage = (EdaptTestYPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestYPackage.eNS_URI) instanceof EdaptTestYPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestYPackage.eNS_URI) : EdaptTestYPackage.eINSTANCE);
+			.getEPackage(EdaptTestYPackage.eNS_URI) instanceof EdaptTestYPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestYPackage.eNS_URI) : EdaptTestYPackage.eINSTANCE);
 		final EdaptTestZPackageImpl theZPackage = (EdaptTestZPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestZPackage.eNS_URI) instanceof EdaptTestZPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestZPackage.eNS_URI) : EdaptTestZPackage.eINSTANCE);
+			.getEPackage(EdaptTestZPackage.eNS_URI) instanceof EdaptTestZPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestZPackage.eNS_URI) : EdaptTestZPackage.eINSTANCE);
 
 		// Create package meta-data objects
 		theXPackage.createPackageContents();
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/util/XAdapterFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/util/XAdapterFactory.java
index 448f999..fb83e30 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/util/XAdapterFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/util/XAdapterFactory.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.x.util;
 
@@ -69,18 +77,17 @@
 	 * 
 	 * @generated
 	 */
-	protected XSwitch<Adapter> modelSwitch =
-		new XSwitch<Adapter>() {
-			@Override
-			public Adapter caseX(EdaptTestX object) {
-				return createXAdapter();
-			}
+	protected XSwitch<Adapter> modelSwitch = new XSwitch<Adapter>() {
+		@Override
+		public Adapter caseX(EdaptTestX object) {
+			return createXAdapter();
+		}
 
-			@Override
-			public Adapter defaultCase(EObject object) {
-				return createEObjectAdapter();
-			}
-		};
+		@Override
+		public Adapter defaultCase(EObject object) {
+			return createEObjectAdapter();
+		}
+	};
 
 	/**
 	 * Creates an adapter for the <code>target</code>.
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/util/XSwitch.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/util/XSwitch.java
index 36fe360..a4d7f1c 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/util/XSwitch.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/x/util/XSwitch.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.x.util;
 
@@ -11,8 +19,8 @@
 /**
  * <!-- begin-user-doc -->
  * The <b>Switch</b> for the model's inheritance hierarchy.
- * It supports the call {@link #doSwitch(EObject) doSwitch(object)} to invoke the <code>caseXXX</code> method for each
- * class of the model,
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
  * starting with the actual class of the object
  * and proceeding up the inheritance hierarchy
  * until a non-null result is returned,
@@ -50,7 +58,7 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
-	 * @parameter ePackage the package in question.
+	 * @param ePackage the package in question.
 	 * @return whether this is a switch for the given package.
 	 * @generated
 	 */
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/EdaptTestY.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/EdaptTestY.java
index 380ea2d..2cebfc3 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/EdaptTestY.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/EdaptTestY.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.y;
 
@@ -13,11 +21,11 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestY#getX <em>X</em>}</li>
  * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestY#getZ <em>Z</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestYPackage#getY()
  * @model
@@ -28,7 +36,8 @@
 	 * Returns the value of the '<em><b>X</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>X</em>' reference isn't clear, there really should be more of a description here...
+	 * If the meaning of the '<em>X</em>' reference isn't clear,
+	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * 
@@ -56,7 +65,8 @@
 	 * Returns the value of the '<em><b>Z</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Z</em>' reference isn't clear, there really should be more of a description here...
+	 * If the meaning of the '<em>Z</em>' reference isn't clear,
+	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/EdaptTestYFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/EdaptTestYFactory.java
index 375cf67..cf668f9 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/EdaptTestYFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/EdaptTestYFactory.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.y;
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/EdaptTestYPackage.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/EdaptTestYPackage.java
index 8f50e69..2e2a2c7 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/EdaptTestYPackage.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/EdaptTestYPackage.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.y;
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/impl/EdaptTestYFactoryImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/impl/EdaptTestYFactoryImpl.java
index bf2e1c1..acb8a5c 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/impl/EdaptTestYFactoryImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/impl/EdaptTestYFactoryImpl.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl;
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/impl/EdaptTestYImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/impl/EdaptTestYImpl.java
index 06b4aa3..a9f2a50 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/impl/EdaptTestYImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/impl/EdaptTestYImpl.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl;
 
@@ -18,11 +26,11 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl.EdaptTestYImpl#getX <em>X</em>}</li>
  * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl.EdaptTestYImpl#getZ <em>Z</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/impl/EdaptTestYPackageImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/impl/EdaptTestYPackageImpl.java
index 2e5c848..8d89283 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/impl/EdaptTestYPackageImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/impl/EdaptTestYPackageImpl.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl;
 
@@ -45,13 +53,16 @@
 	private EClass yEClass = null;
 
 	/**
-	 * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
-	 * EPackage.Registry} by the package
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
 	 * package URI value.
 	 * <p>
-	 * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
-	 * performs initialization of the package, or returns the registered package, if one already exists. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
+	 * Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
 	 * 
 	 * @see org.eclipse.emf.ecore.EPackage.Registry
 	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.y.EdaptTestYPackage#eNS_URI
@@ -74,9 +85,10 @@
 	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
 	 *
 	 * <p>
-	 * This method is used to initialize {@link EdaptTestYPackage#eINSTANCE} when that field is accessed. Clients should
-	 * not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc
-	 * --> <!-- end-user-doc -->
+	 * This method is used to initialize {@link EdaptTestYPackage#eINSTANCE} when that field is accessed.
+	 * 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()
@@ -89,40 +101,40 @@
 		}
 
 		// Obtain or create and register package
-		final EdaptTestYPackageImpl theYPackage = (EdaptTestYPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EdaptTestYPackageImpl ? EPackage.Registry.INSTANCE
-			.get(eNS_URI)
-			: new EdaptTestYPackageImpl());
+		final EdaptTestYPackageImpl theYPackage = (EdaptTestYPackageImpl) (EPackage.Registry.INSTANCE
+			.get(eNS_URI) instanceof EdaptTestYPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI)
+				: new EdaptTestYPackageImpl());
 
 		isInited = true;
 
 		// Obtain or create and register interdependencies
 		final EdaptTestAPackageImpl theAPackage = (EdaptTestAPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestAPackage.eNS_URI) instanceof EdaptTestAPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestAPackage.eNS_URI) : EdaptTestAPackage.eINSTANCE);
+			.getEPackage(EdaptTestAPackage.eNS_URI) instanceof EdaptTestAPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestAPackage.eNS_URI) : EdaptTestAPackage.eINSTANCE);
 		final EdaptTestBPackageImpl theBPackage = (EdaptTestBPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestBPackage.eNS_URI) instanceof EdaptTestBPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestBPackage.eNS_URI) : EdaptTestBPackage.eINSTANCE);
+			.getEPackage(EdaptTestBPackage.eNS_URI) instanceof EdaptTestBPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestBPackage.eNS_URI) : EdaptTestBPackage.eINSTANCE);
 		final EdaptTestCPackageImpl theCPackage = (EdaptTestCPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestCPackage.eNS_URI) instanceof EdaptTestCPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestCPackage.eNS_URI) : EdaptTestCPackage.eINSTANCE);
+			.getEPackage(EdaptTestCPackage.eNS_URI) instanceof EdaptTestCPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestCPackage.eNS_URI) : EdaptTestCPackage.eINSTANCE);
 		final EdaptTestDPackageImpl theDPackage = (EdaptTestDPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestDPackage.eNS_URI) instanceof EdaptTestDPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestDPackage.eNS_URI) : EdaptTestDPackage.eINSTANCE);
+			.getEPackage(EdaptTestDPackage.eNS_URI) instanceof EdaptTestDPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestDPackage.eNS_URI) : EdaptTestDPackage.eINSTANCE);
 		final EdaptTestEPackageImpl theEPackage = (EdaptTestEPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestEPackage.eNS_URI) instanceof EdaptTestEPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestEPackage.eNS_URI) : EdaptTestEPackage.eINSTANCE);
+			.getEPackage(EdaptTestEPackage.eNS_URI) instanceof EdaptTestEPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestEPackage.eNS_URI) : EdaptTestEPackage.eINSTANCE);
 		final EdaptTestFPackageImpl theFPackage = (EdaptTestFPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestFPackage.eNS_URI) instanceof EdaptTestFPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestFPackage.eNS_URI) : EdaptTestFPackage.eINSTANCE);
+			.getEPackage(EdaptTestFPackage.eNS_URI) instanceof EdaptTestFPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestFPackage.eNS_URI) : EdaptTestFPackage.eINSTANCE);
 		final EdaptTestWPackageImpl theWPackage = (EdaptTestWPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestWPackage.eNS_URI) instanceof EdaptTestWPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestWPackage.eNS_URI) : EdaptTestWPackage.eINSTANCE);
+			.getEPackage(EdaptTestWPackage.eNS_URI) instanceof EdaptTestWPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestWPackage.eNS_URI) : EdaptTestWPackage.eINSTANCE);
 		final EdaptTestXPackageImpl theXPackage = (EdaptTestXPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestXPackage.eNS_URI) instanceof EdaptTestXPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestXPackage.eNS_URI) : EdaptTestXPackage.eINSTANCE);
+			.getEPackage(EdaptTestXPackage.eNS_URI) instanceof EdaptTestXPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestXPackage.eNS_URI) : EdaptTestXPackage.eINSTANCE);
 		final EdaptTestZPackageImpl theZPackage = (EdaptTestZPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestZPackage.eNS_URI) instanceof EdaptTestZPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestZPackage.eNS_URI) : EdaptTestZPackage.eINSTANCE);
+			.getEPackage(EdaptTestZPackage.eNS_URI) instanceof EdaptTestZPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestZPackage.eNS_URI) : EdaptTestZPackage.eINSTANCE);
 
 		// Create package meta-data objects
 		theYPackage.createPackageContents();
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/util/YAdapterFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/util/YAdapterFactory.java
index 61c41a8..646e8ed 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/util/YAdapterFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/util/YAdapterFactory.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.y.util;
 
@@ -69,18 +77,17 @@
 	 * 
 	 * @generated
 	 */
-	protected YSwitch<Adapter> modelSwitch =
-		new YSwitch<Adapter>() {
-			@Override
-			public Adapter caseY(EdaptTestY object) {
-				return createYAdapter();
-			}
+	protected YSwitch<Adapter> modelSwitch = new YSwitch<Adapter>() {
+		@Override
+		public Adapter caseY(EdaptTestY object) {
+			return createYAdapter();
+		}
 
-			@Override
-			public Adapter defaultCase(EObject object) {
-				return createEObjectAdapter();
-			}
-		};
+		@Override
+		public Adapter defaultCase(EObject object) {
+			return createEObjectAdapter();
+		}
+	};
 
 	/**
 	 * Creates an adapter for the <code>target</code>.
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/util/YSwitch.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/util/YSwitch.java
index 9f60acc..93b0ada 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/util/YSwitch.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/y/util/YSwitch.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.y.util;
 
@@ -11,8 +19,8 @@
 /**
  * <!-- begin-user-doc -->
  * The <b>Switch</b> for the model's inheritance hierarchy.
- * It supports the call {@link #doSwitch(EObject) doSwitch(object)} to invoke the <code>caseXXX</code> method for each
- * class of the model,
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
  * starting with the actual class of the object
  * and proceeding up the inheritance hierarchy
  * until a non-null result is returned,
@@ -50,7 +58,7 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
-	 * @parameter ePackage the package in question.
+	 * @param ePackage the package in question.
 	 * @return whether this is a switch for the given package.
 	 * @generated
 	 */
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/EdaptTestZ.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/EdaptTestZ.java
index 43717b4..7d5c7de 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/EdaptTestZ.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/EdaptTestZ.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.z;
 
@@ -12,10 +20,10 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZ#getY <em>Y</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZPackage#getZ()
  * @model
@@ -26,7 +34,8 @@
 	 * Returns the value of the '<em><b>Y</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Y</em>' reference isn't clear, there really should be more of a description here...
+	 * If the meaning of the '<em>Y</em>' reference isn't clear,
+	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/EdaptTestZFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/EdaptTestZFactory.java
index 81a7e0f..facd3f1 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/EdaptTestZFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/EdaptTestZFactory.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.z;
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/EdaptTestZPackage.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/EdaptTestZPackage.java
index 84eb3b3..823fd4c 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/EdaptTestZPackage.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/EdaptTestZPackage.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.z;
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/impl/EdaptTestZFactoryImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/impl/EdaptTestZFactoryImpl.java
index 8d08d94..9434f4a 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/impl/EdaptTestZFactoryImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/impl/EdaptTestZFactoryImpl.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.z.impl;
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/impl/EdaptTestZImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/impl/EdaptTestZImpl.java
index ccfba14..e51dea7 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/impl/EdaptTestZImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/impl/EdaptTestZImpl.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.z.impl;
 
@@ -17,10 +25,10 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  * <li>{@link org.eclipse.emf.ecp.view.edapt.util.test.model.z.impl.EdaptTestZImpl#getY <em>Y</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/impl/EdaptTestZPackageImpl.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/impl/EdaptTestZPackageImpl.java
index 17238c5..fab5461 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/impl/EdaptTestZPackageImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/impl/EdaptTestZPackageImpl.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.z.impl;
 
@@ -45,13 +53,16 @@
 	private EClass zEClass = null;
 
 	/**
-	 * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
-	 * EPackage.Registry} by the package
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
 	 * package URI value.
 	 * <p>
-	 * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
-	 * performs initialization of the package, or returns the registered package, if one already exists. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
+	 * Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
 	 * 
 	 * @see org.eclipse.emf.ecore.EPackage.Registry
 	 * @see org.eclipse.emf.ecp.view.edapt.util.test.model.z.EdaptTestZPackage#eNS_URI
@@ -74,9 +85,10 @@
 	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
 	 *
 	 * <p>
-	 * This method is used to initialize {@link EdaptTestZPackage#eINSTANCE} when that field is accessed. Clients should
-	 * not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc
-	 * --> <!-- end-user-doc -->
+	 * This method is used to initialize {@link EdaptTestZPackage#eINSTANCE} when that field is accessed.
+	 * 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()
@@ -89,40 +101,40 @@
 		}
 
 		// Obtain or create and register package
-		final EdaptTestZPackageImpl theZPackage = (EdaptTestZPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EdaptTestZPackageImpl ? EPackage.Registry.INSTANCE
-			.get(eNS_URI)
-			: new EdaptTestZPackageImpl());
+		final EdaptTestZPackageImpl theZPackage = (EdaptTestZPackageImpl) (EPackage.Registry.INSTANCE
+			.get(eNS_URI) instanceof EdaptTestZPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI)
+				: new EdaptTestZPackageImpl());
 
 		isInited = true;
 
 		// Obtain or create and register interdependencies
 		final EdaptTestAPackageImpl theAPackage = (EdaptTestAPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestAPackage.eNS_URI) instanceof EdaptTestAPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestAPackage.eNS_URI) : EdaptTestAPackage.eINSTANCE);
+			.getEPackage(EdaptTestAPackage.eNS_URI) instanceof EdaptTestAPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestAPackage.eNS_URI) : EdaptTestAPackage.eINSTANCE);
 		final EdaptTestBPackageImpl theBPackage = (EdaptTestBPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestBPackage.eNS_URI) instanceof EdaptTestBPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestBPackage.eNS_URI) : EdaptTestBPackage.eINSTANCE);
+			.getEPackage(EdaptTestBPackage.eNS_URI) instanceof EdaptTestBPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestBPackage.eNS_URI) : EdaptTestBPackage.eINSTANCE);
 		final EdaptTestCPackageImpl theCPackage = (EdaptTestCPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestCPackage.eNS_URI) instanceof EdaptTestCPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestCPackage.eNS_URI) : EdaptTestCPackage.eINSTANCE);
+			.getEPackage(EdaptTestCPackage.eNS_URI) instanceof EdaptTestCPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestCPackage.eNS_URI) : EdaptTestCPackage.eINSTANCE);
 		final EdaptTestDPackageImpl theDPackage = (EdaptTestDPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestDPackage.eNS_URI) instanceof EdaptTestDPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestDPackage.eNS_URI) : EdaptTestDPackage.eINSTANCE);
+			.getEPackage(EdaptTestDPackage.eNS_URI) instanceof EdaptTestDPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestDPackage.eNS_URI) : EdaptTestDPackage.eINSTANCE);
 		final EdaptTestEPackageImpl theEPackage = (EdaptTestEPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestEPackage.eNS_URI) instanceof EdaptTestEPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestEPackage.eNS_URI) : EdaptTestEPackage.eINSTANCE);
+			.getEPackage(EdaptTestEPackage.eNS_URI) instanceof EdaptTestEPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestEPackage.eNS_URI) : EdaptTestEPackage.eINSTANCE);
 		final EdaptTestFPackageImpl theFPackage = (EdaptTestFPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestFPackage.eNS_URI) instanceof EdaptTestFPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestFPackage.eNS_URI) : EdaptTestFPackage.eINSTANCE);
+			.getEPackage(EdaptTestFPackage.eNS_URI) instanceof EdaptTestFPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestFPackage.eNS_URI) : EdaptTestFPackage.eINSTANCE);
 		final EdaptTestWPackageImpl theWPackage = (EdaptTestWPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestWPackage.eNS_URI) instanceof EdaptTestWPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestWPackage.eNS_URI) : EdaptTestWPackage.eINSTANCE);
+			.getEPackage(EdaptTestWPackage.eNS_URI) instanceof EdaptTestWPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestWPackage.eNS_URI) : EdaptTestWPackage.eINSTANCE);
 		final EdaptTestXPackageImpl theXPackage = (EdaptTestXPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestXPackage.eNS_URI) instanceof EdaptTestXPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestXPackage.eNS_URI) : EdaptTestXPackage.eINSTANCE);
+			.getEPackage(EdaptTestXPackage.eNS_URI) instanceof EdaptTestXPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestXPackage.eNS_URI) : EdaptTestXPackage.eINSTANCE);
 		final EdaptTestYPackageImpl theYPackage = (EdaptTestYPackageImpl) (EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestYPackage.eNS_URI) instanceof EdaptTestYPackageImpl ? EPackage.Registry.INSTANCE
-			.getEPackage(EdaptTestYPackage.eNS_URI) : EdaptTestYPackage.eINSTANCE);
+			.getEPackage(EdaptTestYPackage.eNS_URI) instanceof EdaptTestYPackageImpl
+				? EPackage.Registry.INSTANCE.getEPackage(EdaptTestYPackage.eNS_URI) : EdaptTestYPackage.eINSTANCE);
 
 		// Create package meta-data objects
 		theZPackage.createPackageContents();
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/util/ZAdapterFactory.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/util/ZAdapterFactory.java
index 53534aa..8793d00 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/util/ZAdapterFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/util/ZAdapterFactory.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.z.util;
 
@@ -69,18 +77,17 @@
 	 * 
 	 * @generated
 	 */
-	protected ZSwitch<Adapter> modelSwitch =
-		new ZSwitch<Adapter>() {
-			@Override
-			public Adapter caseZ(EdaptTestZ object) {
-				return createZAdapter();
-			}
+	protected ZSwitch<Adapter> modelSwitch = new ZSwitch<Adapter>() {
+		@Override
+		public Adapter caseZ(EdaptTestZ object) {
+			return createZAdapter();
+		}
 
-			@Override
-			public Adapter defaultCase(EObject object) {
-				return createEObjectAdapter();
-			}
-		};
+		@Override
+		public Adapter defaultCase(EObject object) {
+			return createEObjectAdapter();
+		}
+	};
 
 	/**
 	 * Creates an adapter for the <code>target</code>.
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/util/ZSwitch.java b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/util/ZSwitch.java
index aae577e..028ba88 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/util/ZSwitch.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/src/org/eclipse/emf/ecp/view/edapt/util/test/model/z/util/ZSwitch.java
@@ -1,4 +1,12 @@
 /**
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
  */
 package org.eclipse.emf.ecp.view.edapt.util.test.model.z.util;
 
@@ -11,8 +19,8 @@
 /**
  * <!-- begin-user-doc -->
  * The <b>Switch</b> for the model's inheritance hierarchy.
- * It supports the call {@link #doSwitch(EObject) doSwitch(object)} to invoke the <code>caseXXX</code> method for each
- * class of the model,
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
  * starting with the actual class of the object
  * and proceeding up the inheritance hierarchy
  * until a non-null result is returned,
@@ -50,7 +58,7 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * 
-	 * @parameter ePackage the package in question.
+	 * @param ePackage the package in question.
 	 * @return whether this is a switch for the given package.
 	 * @generated
 	 */
diff --git a/tests/org.eclipse.emf.ecp.view.group.ui.swt.test/.gitignore b/tests/org.eclipse.emf.ecp.view.group.ui.swt.test/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.group.ui.swt.test/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/tests/org.eclipse.emf.ecp.view.group.ui.swt.test/GroupSWTTests.launch b/tests/org.eclipse.emf.ecp.view.group.ui.swt.test/GroupSWTTests.launch
index fa37428..6cfa54f 100644
--- a/tests/org.eclipse.emf.ecp.view.group.ui.swt.test/GroupSWTTests.launch
+++ b/tests/org.eclipse.emf.ecp.view.group.ui.swt.test/GroupSWTTests.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,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.apache.commons.codec@default:default,org.apache.commons.logging@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.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.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@-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.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-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.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.ui.rcp@default:false,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.test@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.edit@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.label.model@default:default,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@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.util.swt@default:default,org.eclipse.emf.ecp.view.vertical.model@default:default"/>

+<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.apache.commons.codec@default:default,org.apache.commons.logging@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.compatibility.registry@default:false,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.cdo.ecore.retrofit@default:false,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@-1:true,org.eclipse.swt.win32.win32.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-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.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.rcp@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.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.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.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.emf.rap.edit.ui.minimal@default:default,org.eclipse.emfforms.core.services.databinding.featurepath@default:default,org.eclipse.emfforms.core.services.databinding@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.locale.default@default:default,org.eclipse.emfforms.core.services@default:default,org.eclipse.emfforms.localization@default:default,org.eclipse.emfforms.swt.core@default:default,org.eclipse.emfforms.view.model.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.group.ui.swt.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.group.ui.swt.test/META-INF/MANIFEST.MF
index 5ee7070..81f8bf9 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,9 +2,10 @@
 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Fragment-Host: org.eclipse.emf.ecp.view.group.ui.swt;bundle-version="[1.6.0,2.0.0)"
 Require-Bundle: org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.5.0,2.0.0)",
  org.junit;bundle-version="[4.0.0,5.0.0)",
  org.eclipse.emf.ecp.view.model;bundle-version="[1.5.0,2.0.0)",
@@ -15,4 +16,4 @@
  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.group.model;bundle-version="[1.5.0,2.0.0)"
 Export-Package: org.eclipse.emf.ecp.view.group.ui.swt.test;version="1.
- 5.1";x-internal:=true
+ 6.0";x-internal:=true
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 17be151..1b1c07f 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -24,38 +24,71 @@
 				<configuration>
 		          	<useUIHarness>true</useUIHarness>
 		          	<useUIThread>true</useUIThread>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.viewmodel.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.group.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.emfstore.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.template.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-					</dependencies>
+				</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.ds</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.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.ecore.edit</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>p2-installable-unit</type>
+								<id>org.eclipse.emf.ecp.view.model.edit</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>p2-installable-unit</type>
+								<id>org.eclipse.emfforms.view.model.localization</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
diff --git a/tests/org.eclipse.emf.ecp.view.group.ui.swt.test/src/org/eclipse/emf/ecp/view/group/ui/swt/test/SWTGroup_PTest.java b/tests/org.eclipse.emf.ecp.view.group.ui.swt.test/src/org/eclipse/emf/ecp/view/group/ui/swt/test/SWTGroup_PTest.java
index 0b21f3f..a5f7bcb 100644
--- a/tests/org.eclipse.emf.ecp.view.group.ui.swt.test/src/org/eclipse/emf/ecp/view/group/ui/swt/test/SWTGroup_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.group.ui.swt.test/src/org/eclipse/emf/ecp/view/group/ui/swt/test/SWTGroup_PTest.java
@@ -28,6 +28,7 @@
 import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException;
 import org.eclipse.emf.ecp.view.test.common.swt.spi.DatabindingClassRunner;
 import org.eclipse.emf.ecp.view.test.common.swt.spi.SWTViewTestHelper;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Group;
@@ -105,7 +106,8 @@
 	}
 
 	@Test
-	public void testOneGroupinView() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+	public void testOneGroupinView() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		EMFFormsNoRendererException {
 
 		// setup model
 		final VView view = createViewWithOneGroup();
@@ -132,7 +134,8 @@
 	}
 
 	@Test
-	public void testTwoGroupsinView() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+	public void testTwoGroupsinView() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		EMFFormsNoRendererException {
 
 		// setup model
 		final VView view = createViewWithTwoGroups();
@@ -173,7 +176,8 @@
 	}
 
 	@Test
-	public void testTwoGroupsHierachicalinView() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+	public void testTwoGroupsHierachicalinView() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		EMFFormsNoRendererException {
 
 		final VView view = createViewWithTwoHierachicalGroups();
 		final org.eclipse.emf.ecp.view.spi.group.model.VGroup group = (org.eclipse.emf.ecp.view.spi.group.model.VGroup) view
@@ -212,7 +216,8 @@
 	}
 
 	@Test
-	public void testTwoGroupsWithTwoControlsInView() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+	public void testTwoGroupsWithTwoControlsInView() throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
 		final VView view = createViewWithTwoGroupsWithTwoControls();
 		final org.eclipse.emf.ecp.view.spi.group.model.VGroup group1 = (org.eclipse.emf.ecp.view.spi.group.model.VGroup) view
 			.getChildren()
@@ -256,7 +261,8 @@
 	}
 
 	@Test
-	public void testEmptyGroup() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+	public void testEmptyGroup() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		EMFFormsNoRendererException {
 
 		// setup model
 		final VView view = createViewWithOneGroup();
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 55bced3..c6f8415 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,9 +2,10 @@
 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Fragment-Host: org.eclipse.emf.ecp.view.horizontal.ui.swt;bundle-version="[1.6.0,2.0.0)"
 Require-Bundle: org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.5.0,2.0.0)",
  org.junit;bundle-version="[4.0.0,5.0.0)",
  org.eclipse.emf.ecp.view.model;bundle-version="[1.5.0,2.0.0)",
@@ -16,4 +17,4 @@
  org.eclipse.jface;bundle-version="3.8.102",
  org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.5.0,2.0.0)"
 Export-Package: org.eclipse.emf.ecp.view.horizontal.ui.swt.test;versio
- n="1.5.1";x-internal:=true
+ n="1.6.0";x-internal:=true
diff --git a/tests/org.eclipse.emf.ecp.view.horizontal.ui.swt.test/SWTHorizontalTest.launch b/tests/org.eclipse.emf.ecp.view.horizontal.ui.swt.test/SWTHorizontalTest.launch
index 70aaaa4..2cb644f 100644
--- a/tests/org.eclipse.emf.ecp.view.horizontal.ui.swt.test/SWTHorizontalTest.launch
+++ b/tests/org.eclipse.emf.ecp.view.horizontal.ui.swt.test/SWTHorizontalTest.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,javax.servlet@default:default,javax.xml@default:default,org.apache.batik.css@default:default,org.apache.batik.util.gui@default:default,org.apache.batik.util@default:default,org.apache.commons.codec*1.4.0.v201209201156@default:default,org.apache.commons.logging@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.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts*1.3.1.v20130905-0905@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*0.10.101.v20130801-2002@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*1.0.1.v20130909-1436@default:default,org.eclipse.e4.ui.services*1.0.1.v20130909-1436@default:default,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench*1.0.1.v20130910-2014@default:default,org.eclipse.e4.ui.workbench.addons.swt*1.0.1.v20130823-1518@default:default,org.eclipse.e4.ui.workbench.renderers.swt*0.11.1.v20130812-1345@default:default,org.eclipse.e4.ui.workbench.swt*0.12.1.v20130815-1438@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.emf.cdo.ecore.retrofit@default:false,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.4.101.v20130813-1853@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*3.5.301.v20130717-1549@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*3.9.1.v20130725-1141@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.net4j.util@default:default,org.eclipse.osgi*3.9.1.v20130814-1242@-1:true,org.eclipse.osgi.services@default:default,org.eclipse.swt*3.102.1.v20130827-2021@default:default,org.eclipse.swt.win32.win32.x86_64*3.102.1.v20130827-2048@default:false,org.eclipse.ui.forms*3.6.1.v20130822-1117@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench*3.105.1.v20130821-1411@default:default,org.eclipse.ui@default:default,org.hamcrest.core*1.1.0.v20090501071000@default:default,org.hamcrest.core*1.3.0.v201303031735@default:default,org.junit*4.10.0.v4_10_0_v20120426-0900@default:default,org.junit*4.11.0.v201303080030@default:default,org.w3c.css.sac@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@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.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.test@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.custom.ui@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.horizontal.ui.swt.test@default:default,org.eclipse.emf.ecp.view.horizontal.ui.swt@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@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.swt@default:default,org.eclipse.emf.ecp.view.test.common@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"/>

+<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.6.0.v201011041432@default:default,org.apache.batik.css*1.7.0.v201011041433@default:default,org.apache.batik.util*1.6.0.v201011041432@default:default,org.apache.batik.util*1.7.0.v201011041433@default:default,org.apache.batik.util.gui*1.6.0.v201011041432@default:default,org.apache.batik.util.gui*1.7.0.v200903091627@default:default,org.apache.commons.codec@default:default,org.apache.commons.logging@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.compatibility.registry@default:false,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.cdo.ecore.retrofit@default:false,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.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.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.win32.win32.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@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.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.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.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@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.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.emfforms.core.services.emfspecificservice@default:default,org.eclipse.emf.emfforms.core.services.labelprovider@default:default,org.eclipse.emf.emfforms.localization@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@default:default,org.eclipse.emfforms.core.services.editsupport@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"/>

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 6628e1d..f99d665 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -24,38 +24,61 @@
 				<configuration>
 		          	<useUIHarness>true</useUIHarness>
 		          	<useUIThread>true</useUIThread>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.viewmodel.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.horizontal.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.emfstore.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.template.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-					</dependencies>
+				</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.ds</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.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.ecore.edit</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
diff --git a/tests/org.eclipse.emf.ecp.view.horizontal.ui.swt.test/src/org/eclipse/emf/ecp/view/horizontal/ui/swt/test/SWTHorizontal_PTest.java b/tests/org.eclipse.emf.ecp.view.horizontal.ui.swt.test/src/org/eclipse/emf/ecp/view/horizontal/ui/swt/test/SWTHorizontal_PTest.java
index dc7f314..7c902e1 100644
--- a/tests/org.eclipse.emf.ecp.view.horizontal.ui.swt.test/src/org/eclipse/emf/ecp/view/horizontal/ui/swt/test/SWTHorizontal_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.horizontal.ui.swt.test/src/org/eclipse/emf/ecp/view/horizontal/ui/swt/test/SWTHorizontal_PTest.java
@@ -30,6 +30,7 @@
 import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException;
 import org.eclipse.emf.ecp.view.test.common.swt.spi.DatabindingClassRunner;
 import org.eclipse.emf.ecp.view.test.common.swt.spi.SWTViewTestHelper;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
@@ -93,7 +94,7 @@
 
 	@Test
 	public void testHorizontalWithoutChildren() throws NoRendererFoundException,
-		NoPropertyDescriptorFoundExeption {
+		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
 		// setup model
 		final HierarchyViewModelHandle handle = createHorizontalWithoutChildren();
 		final Control render = SWTViewTestHelper.render(handle.getRoot(), domainElement, shell);
@@ -104,7 +105,7 @@
 
 	@Test
 	public void testHorizontalWithTwoControlsAsChildren() throws NoRendererFoundException,
-		NoPropertyDescriptorFoundExeption {
+		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
 		// setup model
 		final HierarchyViewModelHandle handle = createHorizontalWithTwoControlsAsChildren();
 		final Control render = SWTViewTestHelper.render(handle.getRoot(), domainElement, shell);
@@ -118,7 +119,7 @@
 
 	@Test
 	public void testHorizontalWithTwoHorizontalAsChildrenAndControlAsSubChildren() throws NoRendererFoundException,
-		NoPropertyDescriptorFoundExeption {
+		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
 		// setup model
 		final HierarchyViewModelHandle handle =
 			createHorizontalWithTwoHorizontalAsChildrenAndControlAsSubChildren();
diff --git a/tests/org.eclipse.emf.ecp.view.indexdmr.model.test/.gitignore b/tests/org.eclipse.emf.ecp.view.indexdmr.model.test/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.indexdmr.model.test/.gitignore
@@ -0,0 +1 @@
+/bin/
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 99364d9..b7073f1 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,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.indexdmr.model.test;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.view.index.test.example;version="1
- .5.1";x-internal:=true,org.eclipse.emf.ecp.view.index.test.example.im
- pl;version="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.index.te
- st.example.util;version="1.5.1";x-internal:=true,org.eclipse.emf.ecp.
- view.indexdmr.model.test;version="1.5.1";x-internal:=true
+ .6.0";x-internal:=true,org.eclipse.emf.ecp.view.index.test.example.im
+ pl;version="1.6.0";x-internal:=true,org.eclipse.emf.ecp.view.index.te
+ st.example.util;version="1.6.0";x-internal:=true,org.eclipse.emf.ecp.
+ view.indexdmr.model.test;version="1.6.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)",
diff --git a/tests/org.eclipse.emf.ecp.view.indexdmr.model.test/plugin.properties b/tests/org.eclipse.emf.ecp.view.indexdmr.model.test/plugin.properties
index bb12185..a922ec2 100644
--- a/tests/org.eclipse.emf.ecp.view.indexdmr.model.test/plugin.properties
+++ b/tests/org.eclipse.emf.ecp.view.indexdmr.model.test/plugin.properties
@@ -1,4 +1,4 @@
 #
 
 pluginName = Example Model
-providerName = www.example.org
+providerName = Eclipse Modeling Project
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 f51c56b..66386a2 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.indexdmr.model.test/src/org/eclipse/emf/ecp/view/indexdmr/model/test/IndexDMRValidation_Test.java b/tests/org.eclipse.emf.ecp.view.indexdmr.model.test/src/org/eclipse/emf/ecp/view/indexdmr/model/test/IndexDMRValidation_Test.java
index 6f36d84..87bae6a 100644
--- a/tests/org.eclipse.emf.ecp.view.indexdmr.model.test/src/org/eclipse/emf/ecp/view/indexdmr/model/test/IndexDMRValidation_Test.java
+++ b/tests/org.eclipse.emf.ecp.view.indexdmr.model.test/src/org/eclipse/emf/ecp/view/indexdmr/model/test/IndexDMRValidation_Test.java
@@ -90,6 +90,7 @@
 		index = VIndexdmrFactory.eINSTANCE.createIndexDomainModelReference();
 		target = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
 		index.setTargetDMR(target);
+		index.setPrefixDMR(VViewFactory.eINSTANCE.createFeaturePathDomainModelReference());
 		control.setDomainModelReference(index);
 
 		validator = IndexdmrValidator.INSTANCE;
diff --git a/tests/org.eclipse.emf.ecp.view.keyattributedmr.model.test/.gitignore b/tests/org.eclipse.emf.ecp.view.keyattributedmr.model.test/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.keyattributedmr.model.test/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/tests/org.eclipse.emf.ecp.view.keyattributedmr.model.test/KeyAttributeDMR_Test.launch b/tests/org.eclipse.emf.ecp.view.keyattributedmr.model.test/KeyAttributeDMR_Test.launch
index f698b7d..a337e3c 100644
--- a/tests/org.eclipse.emf.ecp.view.keyattributedmr.model.test/KeyAttributeDMR_Test.launch
+++ b/tests/org.eclipse.emf.ecp.view.keyattributedmr.model.test/KeyAttributeDMR_Test.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="_viewmodelTest,com.eclipsesource.bean.rcp,com.eclipsesource.bean.viewModel,de.neufeld.trainingplan.model,exampleeditor,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.common,org.eclipse.emf.ecp.common.test.fx,org.eclipse.emf.ecp.controls.fx,org.eclipse.emf.ecp.controls.fx.test,org.eclipse.emf.ecp.core,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.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,org.eclipse.emf.ecp.edit.ecore.swt,org.eclipse.emf.ecp.edit.swt,org.eclipse.emf.ecp.edit.swt.nl_de,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.view.control,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.model,org.eclipse.emf.ecp.makeithappen.model.edit,org.eclipse.emf.ecp.makeithappen.model.editor,org.eclipse.emf.ecp.makeithappen.model.viewmodel,org.eclipse.emf.ecp.makeithappen.view.group.renderer,org.eclipse.emf.ecp.makeithappen.wizards,org.eclipse.emf.ecp.products,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.nl_de,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.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.control.multireference.nl_de,org.eclipse.emf.ecp.view.core.swt,org.eclipse.emf.ecp.view.core.swt.nl_de,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.example,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.ecore.viewmodels,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.keyattributedmr.model.edit,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.layout.custom,org.eclipse.emf.ecp.view.mappingdmr.databinding,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.common,org.eclipse.emf.ecp.view.model.common.di,org.eclipse.emf.ecp.view.model.common.test,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.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.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.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.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.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,test,testCDO,testTemplate,userViewModel"/>
+<stringAttribute key="deselected_workspace_plugins" value="_viewmodelTest,com.eclipsesource.bean.rcp,com.eclipsesource.bean.viewModel,de.neufeld.trainingplan.model,exampleeditor,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.common,org.eclipse.emf.ecp.common.test.fx,org.eclipse.emf.ecp.controls.fx,org.eclipse.emf.ecp.controls.fx.test,org.eclipse.emf.ecp.core,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.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,org.eclipse.emf.ecp.edit.ecore.swt,org.eclipse.emf.ecp.edit.swt,org.eclipse.emf.ecp.edit.swt.nl_de,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.view.control,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.model,org.eclipse.emf.ecp.makeithappen.model.edit,org.eclipse.emf.ecp.makeithappen.model.editor,org.eclipse.emf.ecp.makeithappen.model.viewmodel,org.eclipse.emf.ecp.makeithappen.view.group.renderer,org.eclipse.emf.ecp.makeithappen.wizards,org.eclipse.emf.ecp.products,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.nl_de,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.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.control.multireference.nl_de,org.eclipse.emf.ecp.view.core.swt,org.eclipse.emf.ecp.view.core.swt.nl_de,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.example,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.ecore.viewmodels,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.keyattributedmr.model.edit,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.layout.custom,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.common,org.eclipse.emf.ecp.view.model.common.di,org.eclipse.emf.ecp.view.model.common.test,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.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.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.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.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.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,test,testCDO,testTemplate,userViewModel"/>
 <booleanAttribute key="includeOptional" value="true"/>
 <stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
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 94638ff..4215b97 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.keyattributedmr.model.test;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -13,7 +13,7 @@
  org.eclipse.emf.ecp.view.keyattributedmr.model;bundle-version="[1.5.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.emf.ecp.view.keyattribute.test.example;ver
- sion="1.5.1",org.eclipse.emf.ecp.view.keyattribute.test.example.impl;
- version="1.5.1",org.eclipse.emf.ecp.view.keyattribute.test.example.ut
- il;version="1.5.1",org.eclipse.emf.ecp.view.keyattributedmr.model.tes
- t;version="1.5.1";x-internal:=true
+ sion="1.6.0",org.eclipse.emf.ecp.view.keyattribute.test.example.impl;
+ version="1.6.0",org.eclipse.emf.ecp.view.keyattribute.test.example.ut
+ il;version="1.6.0",org.eclipse.emf.ecp.view.keyattributedmr.model.tes
+ t;version="1.6.0";x-internal:=true
diff --git a/tests/org.eclipse.emf.ecp.view.keyattributedmr.model.test/plugin.properties b/tests/org.eclipse.emf.ecp.view.keyattributedmr.model.test/plugin.properties
index bb12185..a922ec2 100644
--- a/tests/org.eclipse.emf.ecp.view.keyattributedmr.model.test/plugin.properties
+++ b/tests/org.eclipse.emf.ecp.view.keyattributedmr.model.test/plugin.properties
@@ -1,4 +1,4 @@
 #
 
 pluginName = Example Model
-providerName = www.example.org
+providerName = Eclipse Modeling Project
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 775d278..fc091f7 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.mappingdmr.model.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.mappingdmr.model.test/META-INF/MANIFEST.MF
index 2a37258..7fd1acc 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,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.mappingdmr.model.test;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.ecp.view.mapping.test.example;version=
- "1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.mapping.test.exampl
- e.impl;version="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.mapp
- ing.test.example.util;version="1.5.1";x-internal:=true,org.eclipse.em
- f.ecp.view.mappingdmr.model.test;version="1.5.1";x-internal:=true
+ "1.6.0";x-internal:=true,org.eclipse.emf.ecp.view.mapping.test.exampl
+ e.impl;version="1.6.0";x-internal:=true,org.eclipse.emf.ecp.view.mapp
+ ing.test.example.util;version="1.6.0";x-internal:=true,org.eclipse.em
+ f.ecp.view.mappingdmr.model.test;version="1.6.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)",
diff --git a/tests/org.eclipse.emf.ecp.view.mappingdmr.model.test/MappingDMR_MTest.launch b/tests/org.eclipse.emf.ecp.view.mappingdmr.model.test/MappingDMR_MTest.launch
index 3dbe714..88b0afb 100644
--- a/tests/org.eclipse.emf.ecp.view.mappingdmr.model.test/MappingDMR_MTest.launch
+++ b/tests/org.eclipse.emf.ecp.view.mappingdmr.model.test/MappingDMR_MTest.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.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.view.control,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.databinding,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.databinding,org.eclipse.emf.ecp.view.mappingdmr.model.edit,org.eclipse.emf.ecp.view.mappingdmr.tooling,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.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.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"/>
+<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.view.control,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.edit,org.eclipse.emf.ecp.view.mappingdmr.tooling,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.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.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"/>
 <booleanAttribute key="includeOptional" value="true"/>
 <stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
diff --git a/tests/org.eclipse.emf.ecp.view.mappingdmr.model.test/plugin.properties b/tests/org.eclipse.emf.ecp.view.mappingdmr.model.test/plugin.properties
index 8591e55..3da1b08 100644
--- a/tests/org.eclipse.emf.ecp.view.mappingdmr.model.test/plugin.properties
+++ b/tests/org.eclipse.emf.ecp.view.mappingdmr.model.test/plugin.properties
@@ -9,4 +9,4 @@
 # Johannes Faltermeier - initial API and implementation
 
 pluginName = Example Model
-providerName = www.example.org
+providerName = Eclipse Modeling Project
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 aa918a6..a4233b1 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath b/tests/org.eclipse.emf.ecp.view.model.common.test/.classpath
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath
copy to tests/org.eclipse.emf.ecp.view.model.common.test/.classpath
diff --git a/tests/org.eclipse.emf.ecp.view.model.common.test/.project b/tests/org.eclipse.emf.ecp.view.model.common.test/.project
new file mode 100644
index 0000000..e983079
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.common.test/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emf.ecp.view.model.common.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/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.emf.ecp.view.model.common.test/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
copy to tests/org.eclipse.emf.ecp.view.model.common.test/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/tests/org.eclipse.emf.ecp.view.model.common.test/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to tests/org.eclipse.emf.ecp.view.model.common.test/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emf.ecp.view.model.common.test/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.core.prefs
copy to tests/org.eclipse.emf.ecp.view.model.common.test/.settings/org.eclipse.jdt.core.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/tests/org.eclipse.emf.ecp.view.model.common.test/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
copy to tests/org.eclipse.emf.ecp.view.model.common.test/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.emf.ecp.view.model.common.test/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.ui.prefs
copy to tests/org.eclipse.emf.ecp.view.model.common.test/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/tests/org.eclipse.emf.ecp.view.model.common.test/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to tests/org.eclipse.emf.ecp.view.model.common.test/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.model.common.test/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
copy to tests/org.eclipse.emf.ecp.view.model.common.test/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.pde.core.prefs b/tests/org.eclipse.emf.ecp.view.model.common.test/.settings/org.eclipse.pde.core.prefs
similarity index 100%
copy from examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.pde.core.prefs
copy to tests/org.eclipse.emf.ecp.view.model.common.test/.settings/org.eclipse.pde.core.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.emf.ecp.view.model.common.test/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
copy to tests/org.eclipse.emf.ecp.view.model.common.test/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..91214b0
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.common.test/META-INF/MANIFEST.MF
@@ -0,0 +1,12 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: View Model Common Test
+Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.common.test
+Bundle-Version: 1.6.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Fragment-Host: org.eclipse.emf.ecp.view.model.common;bundle-version="1.5.0"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
+ org.mockito.mockito-all;bundle-version="[1.9.5,2.0.0)"
+Export-Package: org.eclipse.emf.ecp.view.model.common;version="1.6.0"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.6.0,2.0.0)"
diff --git a/tests/org.eclipse.emf.ecp.view.model.common.test/build.properties b/tests/org.eclipse.emf.ecp.view.model.common.test/build.properties
new file mode 100644
index 0000000..34d2e4d
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.common.test/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .
diff --git a/tests/org.eclipse.emf.ecp.view.model.common.test/pom.xml b/tests/org.eclipse.emf.ecp.view.model.common.test/pom.xml
new file mode 100644
index 0000000..3bc0719
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.common.test/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.eclipse.emf.ecp</groupId>
+		<artifactId>ecp-tests-parent</artifactId>
+		<version>1.6.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.common.test</artifactId>
+	<packaging>eclipse-plugin</packaging>
+
+</project>
diff --git a/tests/org.eclipse.emf.ecp.view.model.common.test/src/org/eclipse/emf/ecp/view/model/common/AbstractRenderer_Test.java b/tests/org.eclipse.emf.ecp.view.model.common.test/src/org/eclipse/emf/ecp/view/model/common/AbstractRenderer_Test.java
new file mode 100644
index 0000000..4db1f23
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.common.test/src/org/eclipse/emf/ecp/view/model/common/AbstractRenderer_Test.java
@@ -0,0 +1,106 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Jonas - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.model.common;
+
+import static org.junit.Assert.assertSame;
+import static org.mockito.Mockito.mock;
+
+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;
+import org.junit.After;
+import org.junit.Test;
+
+/**
+ * @author Jonas
+ *
+ */
+public class AbstractRenderer_Test {
+
+	private AbstractRenderer<VElement> abstractRenderer;
+
+	@After
+	public void dispose() {
+		abstractRenderer = null;
+	}
+
+	@Test
+	public void testInitNotNull() {
+		final VElement vElement = mock(VElement.class);
+		final ViewModelContext viewModelContext = mock(ViewModelContext.class);
+		final ReportService reportService = mock(ReportService.class);
+		abstractRenderer = new AbstractRenderer<VElement>(vElement, viewModelContext, reportService) {
+		};
+		assertSame(vElement, abstractRenderer.getVElement());
+		assertSame(viewModelContext, abstractRenderer.getViewModelContext());
+	}
+
+	@Test(expected = IllegalArgumentException.class)
+	public void testInitVElementNull() {
+		final VElement vElement = mock(VElement.class);
+		final ReportService reportService = mock(ReportService.class);
+		abstractRenderer = new AbstractRenderer<VElement>(vElement, null, reportService) {
+		};
+	}
+
+	@Test(expected = IllegalArgumentException.class)
+	public void testInitVContextNull() {
+		final ViewModelContext viewModelContext = mock(ViewModelContext.class);
+		final ReportService reportService = mock(ReportService.class);
+		abstractRenderer = new AbstractRenderer<VElement>(null, viewModelContext, reportService) {
+		};
+	}
+
+	@Test(expected = IllegalStateException.class)
+	public void testDispose() {
+		final VElement vElement = mock(VElement.class);
+		final ViewModelContext viewModelContext = mock(ViewModelContext.class);
+		final ReportService reportService = mock(ReportService.class);
+		abstractRenderer = new AbstractRenderer<VElement>(vElement, viewModelContext, reportService) {
+		};
+		abstractRenderer.dispose();
+		abstractRenderer.checkRenderer();
+	}
+
+	@Test(expected = IllegalStateException.class)
+	public void testDisposeGetVElement() {
+		final VElement vElement = mock(VElement.class);
+		final ViewModelContext viewModelContext = mock(ViewModelContext.class);
+		final ReportService reportService = mock(ReportService.class);
+		abstractRenderer = new AbstractRenderer<VElement>(vElement, viewModelContext, reportService) {
+		};
+		abstractRenderer.dispose();
+		abstractRenderer.getVElement();
+	}
+
+	@Test(expected = IllegalStateException.class)
+	public void testDisposeGetVContext() {
+		final VElement vElement = mock(VElement.class);
+		final ViewModelContext viewModelContext = mock(ViewModelContext.class);
+		final ReportService reportService = mock(ReportService.class);
+		abstractRenderer = new AbstractRenderer<VElement>(vElement, viewModelContext, reportService) {
+		};
+		abstractRenderer.dispose();
+		abstractRenderer.getViewModelContext();
+	}
+
+	@Test
+	public void testNotDisposes() {
+		final VElement vElement = mock(VElement.class);
+		final ViewModelContext viewModelContext = mock(ViewModelContext.class);
+		final ReportService reportService = mock(ReportService.class);
+		abstractRenderer = new AbstractRenderer<VElement>(vElement, viewModelContext, reportService) {
+		};
+		abstractRenderer.checkRenderer();
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.model.edit.test/.gitignore b/tests/org.eclipse.emf.ecp.view.model.edit.test/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.edit.test/.gitignore
@@ -0,0 +1 @@
+/bin/
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 c5a9fb7..9e1df15 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Fragment-Host: org.eclipse.emf.ecp.view.model.edit;bundle-version="1.4.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)"
-Export-Package: org.eclipse.emf.ecp.view.model.edit.test;version="1.5.
- 1";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.model.edit.test;version="1.6.
+ 0";x-internal:=true
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 2701734..39ef786 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -24,23 +24,31 @@
 				<configuration>
 		          	<useUIHarness>true</useUIHarness>
 		          	<useUIThread>true</useUIThread>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.viewmodel.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-					</dependencies>
+				</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.target.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.viewmodel.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
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 8c9a168..65c1b51 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.5.1.qualifier">
+      version="1.6.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 6d5439f..f366d33 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.5.1-SNAPSHOT</version>
+    <version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.testplugin/.gitignore b/tests/org.eclipse.emf.ecp.view.model.editor.testplugin/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.testplugin/.gitignore
@@ -0,0 +1 @@
+/bin/
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 0cbb97a..4d285dc4 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,7 +2,7 @@
 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.5.0,2.0.0)"
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 ef86a8d..1f33f91 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-plugin</packaging>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.model.integrationtest/.gitignore b/tests/org.eclipse.emf.ecp.view.model.integrationtest/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.integrationtest/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/tests/org.eclipse.emf.ecp.view.model.integrationtest/ChildrenDescriptorExtension_PTest.launch b/tests/org.eclipse.emf.ecp.view.model.integrationtest/ChildrenDescriptorExtension_PTest.launch
index 1666945..cf6ba64 100644
--- a/tests/org.eclipse.emf.ecp.view.model.integrationtest/ChildrenDescriptorExtension_PTest.launch
+++ b/tests/org.eclipse.emf.ecp.view.model.integrationtest/ChildrenDescriptorExtension_PTest.launch
@@ -1,43 +1,43 @@
-<?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.integrationtest/src/org/eclipse/emf/ecp/view/model/integrationtest/ChildrenDescriptorExtension_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.7"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.ecp.view.model.integrationtest.ChildrenDescriptorExtension_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.model.integrationtest"/>
-<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.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@default:default,org.apache.batik.util.gui@default:default,org.apache.batik.util@default:default,org.apache.commons.codec*1.3.0.v201101211617@default:default,org.apache.commons.codec*1.4.0.v201209201156@default:default,org.apache.commons.logging@default:default,org.eclipse.ant.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.win32.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources*3.8.101.v20130717-0806@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*1.3.1.v20130905-0905@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*0.10.101.v20130801-2002@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*1.0.1.v20130909-1436@default:default,org.eclipse.e4.ui.services*1.0.1.v20130909-1436@default:default,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench*1.0.1.v20130910-2014@default:default,org.eclipse.e4.ui.workbench.addons.swt*1.0.1.v20130823-1518@default:default,org.eclipse.e4.ui.workbench.renderers.swt*0.11.1.v20130812-1345@default:default,org.eclipse.e4.ui.workbench.swt*0.12.1.v20130815-1438@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.emf.cdo.ecore.retrofit@default:false,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.4.100.v20130515-2026@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.registry*3.5.300.v20130327-1442@default:default,org.eclipse.equinox.security.win32.x86_64@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*3.9.0.v20130521-1714@default:default,org.eclipse.jface*3.9.1.v20130725-1141@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text*3.8.100.v20130515-1957@default:default,org.eclipse.jface.text*3.8.101.v20130802-1147@default:default,org.eclipse.net4j.util@default:default,org.eclipse.osgi*3.9.0.v20130529-1710@-1:true,org.eclipse.osgi.services@default:default,org.eclipse.swt*3.102.1.v20130827-2021@default:default,org.eclipse.swt.win32.win32.x86_64*3.102.1.v20130827-2048@default:false,org.eclipse.text@default:default,org.eclipse.ui.forms*3.6.1.v20130822-1117@default:default,org.eclipse.ui.ide*3.9.1.v20130704-1828@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench*3.105.1.v20130821-1411@default:default,org.eclipse.ui@default:default,org.hamcrest.core*1.1.0.v20090501071000@default:default,org.hamcrest.core*1.3.0.v201303031735@default:default,org.junit*4.10.0.v4_10_0_v20120426-0900@default:default,org.junit*4.11.0.v201303080030@default:default,org.w3c.css.sac@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@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.examplemodel.ui@default:default,org.eclipse.emf.ecp.explorereditorbridge@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.edit@default:default,org.eclipse.emf.ecp.view.categorization.model@default:default,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.core.swt@default:default,org.eclipse.emf.ecp.view.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.custom.ui@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.label.model.edit@default:default,org.eclipse.emf.ecp.view.label.model@default:default,org.eclipse.emf.ecp.view.model.edit@default:default,org.eclipse.emf.ecp.view.model.integrationtest@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.separator.model.edit@default:default,org.eclipse.emf.ecp.view.separator.model@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.template.model@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"/>
-<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.integrationtest/src/org/eclipse/emf/ecp/view/model/integrationtest/ChildrenDescriptorExtension_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.7"/>

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

+<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.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.xml@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.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.edit@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.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.hamcrest.core@default:default,org.junit@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.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.compoundcontrol.model.edit@default:default,org.eclipse.emf.ecp.view.compoundcontrol.model@default:default,org.eclipse.emf.ecp.view.context@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.group.model.edit@default:default,org.eclipse.emf.ecp.view.group.model@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.horizontal.model.edit@default:default,org.eclipse.emf.ecp.view.horizontal.model@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.keyattributedmr.model.edit@default:default,org.eclipse.emf.ecp.view.keyattributedmr.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.mappingdmr.model.edit@default:default,org.eclipse.emf.ecp.view.mappingdmr.model@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.integrationtest@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.section.model.edit@default:default,org.eclipse.emf.ecp.view.section.model@default:default,org.eclipse.emf.ecp.view.stack.model.edit@default:default,org.eclipse.emf.ecp.view.stack.model@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.template.model.edit@default:default,org.eclipse.emf.ecp.view.template.model@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.vertical.model.edit@default:default,org.eclipse.emf.ecp.view.vertical.model@default:default,org.eclipse.emf.ecp.view.viewproxy.model.edit@default:default,org.eclipse.emf.ecp.view.viewproxy.model@default:default,org.eclipse.emfforms.common@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>

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 48cb3c3..1b0ebfb 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,19 +2,27 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Integrationtest
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.integrationtest
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
  org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.groupedgrid.model;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.label.model;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.group.model;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.common
+ org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.viewproxy.model;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.stack.model;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.section.model;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.compoundcontrol.model;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.6.0,2.0.0)"
 Export-Package: org.eclipse.emf.ecp.view.model.integrationtest;version
- ="1.5.1";x-internal:=true
+ ="1.6.0";x-internal:=true
 
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 6452ad5..24a293f 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -24,73 +24,121 @@
 				<configuration>
 		          	<useUIHarness>true</useUIHarness>
 		          	<useUIThread>true</useUIThread>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.viewmodel.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.custom.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.groupedgrid.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.label.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.rule.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.vertical.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.horizontal.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.group.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.table.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.categorization.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.emfstore.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-					</dependencies>
+				</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.target.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.viewmodel.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.custom.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.groupedgrid.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>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.rule.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.vertical.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.horizontal.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.group.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.table.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.categorization.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.treemasterdetail.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.section.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.viewproxy.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.stack.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.compoundcontrol.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.indexdmr.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.mappingdmr.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.keyattributedmr.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.emfstore.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
diff --git a/tests/org.eclipse.emf.ecp.view.model.integrationtest/src/org/eclipse/emf/ecp/view/model/integrationtest/ChildrenDescriptorExtension_PTest.java b/tests/org.eclipse.emf.ecp.view.model.integrationtest/src/org/eclipse/emf/ecp/view/model/integrationtest/ChildrenDescriptorExtension_PTest.java
index c792fce..e716ce5 100644
--- a/tests/org.eclipse.emf.ecp.view.model.integrationtest/src/org/eclipse/emf/ecp/view/model/integrationtest/ChildrenDescriptorExtension_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.model.integrationtest/src/org/eclipse/emf/ecp/view/model/integrationtest/ChildrenDescriptorExtension_PTest.java
@@ -22,15 +22,25 @@
 import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.emf.ecp.common.spi.ChildrenDescriptorCollector;
 import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage;
+import org.eclipse.emf.ecp.view.spi.compoundcontrol.model.VCompoundcontrolPackage;
+import org.eclipse.emf.ecp.view.spi.custom.model.VCustomPackage;
 import org.eclipse.emf.ecp.view.spi.group.model.VGroupPackage;
 import org.eclipse.emf.ecp.view.spi.groupedgrid.model.VGroupedGridPackage;
+import org.eclipse.emf.ecp.view.spi.horizontal.model.VHorizontalPackage;
+import org.eclipse.emf.ecp.view.spi.label.model.VLabelPackage;
 import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
 import org.eclipse.emf.ecp.view.spi.rule.model.RulePackage;
+import org.eclipse.emf.ecp.view.spi.section.model.VSectionPackage;
+import org.eclipse.emf.ecp.view.spi.stack.model.VStackPackage;
 import org.eclipse.emf.ecp.view.spi.table.model.VTablePackage;
+import org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalPackage;
+import org.eclipse.emf.ecp.view.spi.viewproxy.model.VViewproxyPackage;
+import org.eclipse.emf.ecp.view.treemasterdetail.model.VTreeMasterDetailPackage;
 import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
 import org.junit.Test;
 
+@SuppressWarnings("restriction")
 public class ChildrenDescriptorExtension_PTest {
 
 	/**
@@ -43,8 +53,11 @@
 	private static final int COMPOSITE_CHILD_COUNT = RENDERABLE_CHILD_COUNT;
 	private static final int ABSTRACTCATEGORIZATION_CHILD_COUNT = RENDERABLE_CHILD_COUNT + 1;
 	private static final int NUMBER_OF_MAIN_COMPOSITES = 1;
-	// label, table, vertical, horizontal, group, groupedgrid, categorizationElement, custom control
-	private static final int NUMBER_OF_EXTERNAL_COMPOSITES = 8;
+	// label, table, vertical, horizontal, group, groupedgrid, categorizationElement, custom control, section,
+	// stack,viewproxy, compoundcontrol, treemasterdetail
+	private static final int NUMBER_OF_EXTERNAL_COMPOSITES = 13;
+	// VDomainModelReference -> VFeaturePathDR, VPredefinedDR, VTableDR,KEYDMR, MAPPINGDMR,IndexDMR
+	private static final int DOMAINMODELREFERENCE_COUNT = 6;
 	private static final int NUMBER_OF_COMPOSITES = NUMBER_OF_MAIN_COMPOSITES + NUMBER_OF_EXTERNAL_COMPOSITES;
 	// categorization, category
 	private static final int NUMBER_OF_CATEGORIZATIONS = 2;
@@ -57,24 +70,19 @@
 	private static final int LEAFCONDITION_CHILD_COUNT = 1;
 	private static final int ORCONDITION_CHILD_COUNT = 3;
 	private static final int ANDCONDITION_CHILD_COUNT = 3;
-	// TODO: Should be not -10, labels, groupedgrid, span, 2 rules, vertical, horizontal, table, group
-	// are missing
+	// TODO: Should be not - NUMBER_OF_EXTERNAL_COMPOSITES
 	// TODO: upper hierarchy is missing, can't find children +2 because of hardcoded layouts
-	private static final int CATEGORY_CHILD_COUNT = NUMBER_OF_COMPOSITES + ABSTRACTCATEGORIZATION_CHILD_COUNT - 10 + 3
-		+ 2;
-	// VDomainModelReference -> VFeaturePathDR, VPredefinedDR, VTableDR
-	private static final int CONTROL_CHILD_COUNT = COMPOSITE_CHILD_COUNT + 3;
+	private static final int CATEGORY_CHILD_COUNT = NUMBER_OF_COMPOSITES + ABSTRACTCATEGORIZATION_CHILD_COUNT
+		- NUMBER_OF_EXTERNAL_COMPOSITES + 2 + 1;
+
+	private static final int CONTROL_CHILD_COUNT = COMPOSITE_CHILD_COUNT + DOMAINMODELREFERENCE_COUNT;
 	private static final int TABLECONTROL_CHILD_COUNT = CONTROL_CHILD_COUNT + 2;
-	private static final int SEPARATOR_CHILD_COUNT = RENDERABLE_CHILD_COUNT;
-	// private static final int COLUMNCOMPOSITE_CHILD_COUNT = COMPOSITECOLLECTION_CHILD_COUNT;
-	// private static final int COLUMN_CHILD_COUNT = COMPOSITECOLLECTION_CHILD_COUNT;
-	private static final int GROUP_CHILD_COUNT = COMPOSITECOLLECTION_CHILD_COUNT;
 	private static final int ACTION_CHILD_COUNT = 0;
 	private static final int GROUPEDGRID_CHILD_COUNT = RENDERABLE_CHILD_COUNT + 1;
 	private static final int GRIDEDGROUP_CHILD_COUNT = 1;
-	// TODO: Should be not -7, labels, group, vertical, horizontal, table,categorizationelement are missing
+	// TODO: Should be not - NUMBER_OF_EXTERNAL_COMPOSITES are missing
 	// TODO: upper hierarchy is missing, can't find children
-	private static final int GRIDEDGROUPROW_CHILD_COUNT = NUMBER_OF_COMPOSITES - 7;
+	private static final int GRIDEDGROUPROW_CHILD_COUNT = NUMBER_OF_COMPOSITES - NUMBER_OF_EXTERNAL_COMPOSITES + 1;
 	private static final int GRIDEDGROUPSPAN_CHILD_COUNT = 0;
 
 	private final ChildrenDescriptorCollector descriptorCollector = new ChildrenDescriptorCollector();
@@ -206,7 +214,79 @@
 	@Test
 	public void testGroupDescriptors() {
 		final int size = getChildrenSize(VGroupPackage.eINSTANCE.getGroup());
-		assertEquals(GROUP_CHILD_COUNT, size);
+		assertEquals(COMPOSITECOLLECTION_CHILD_COUNT, size);
+	}
+
+	@Test
+	public void testHorizontalDescriptors() {
+		final int size = getChildrenSize(VHorizontalPackage.eINSTANCE.getHorizontalLayout());
+		assertEquals(COMPOSITECOLLECTION_CHILD_COUNT, size);
+	}
+
+	@Test
+	public void testVerticalDescriptors() {
+		final int size = getChildrenSize(VVerticalPackage.eINSTANCE.getVerticalLayout());
+		assertEquals(COMPOSITECOLLECTION_CHILD_COUNT, size);
+	}
+
+	@Test
+	public void testLabelDescriptors() {
+		final int size = getChildrenSize(VLabelPackage.eINSTANCE.getLabel());
+		// -5 because only the VFeaturePath is found
+		assertEquals(ATTACHMENT_CHILD_COUNT + DOMAINMODELREFERENCE_COUNT - 5, size);
+	}
+
+	@Test
+	public void testCustomControlDescriptors() {
+		final int size = getChildrenSize(VCustomPackage.eINSTANCE.getCustomControl());
+		assertEquals(CONTROL_CHILD_COUNT, size);
+	}
+
+	@Test
+	public void testSectionDescriptors() {
+		final int size = getChildrenSize(VSectionPackage.eINSTANCE.getSection());
+		assertEquals(COMPOSITECOLLECTION_CHILD_COUNT, size);
+	}
+
+	@Test
+	public void testSectionAreaDescriptors() {
+		final int size = getChildrenSize(VSectionPackage.eINSTANCE.getSectionedArea());
+		// +1 because of section
+		assertEquals(ATTACHMENT_CHILD_COUNT + 1, size);
+	}
+
+	@Test
+	public void testStackItemDescriptors() {
+		final int size = getChildrenSize(VStackPackage.eINSTANCE.getStackItem());
+		// -1 because of treemasterdetail as it only can be added to containedContainer
+		assertEquals(COMPOSITECOLLECTION_CHILD_COUNT - 1, size);
+	}
+
+	@Test
+	public void testStackLayoutDescriptors() {
+		final int size = getChildrenSize(VStackPackage.eINSTANCE.getStackLayout());
+		// +1 for stack items
+		assertEquals(ATTACHMENT_CHILD_COUNT + 1, size);
+	}
+
+	@Test
+	public void testViewProxyDescriptors() {
+		final int size = getChildrenSize(VViewproxyPackage.eINSTANCE.getViewProxy());
+		assertEquals(ATTACHMENT_CHILD_COUNT, size);
+	}
+
+	@Test
+	public void testCompoundControlDescriptors() {
+		final int size = getChildrenSize(VCompoundcontrolPackage.eINSTANCE.getCompoundControl());
+		// +1 because of vcontrol TODO table and custom control is missing
+		assertEquals(ATTACHMENT_CHILD_COUNT + 1, size);
+	}
+
+	@Test
+	public void testTreeMasterDetailDescriptors() {
+		final int size = getChildrenSize(VTreeMasterDetailPackage.eINSTANCE.getTreeMasterDetail());
+		// +1 because of VView
+		assertEquals(ATTACHMENT_CHILD_COUNT + 1, size);
 	}
 
 	/**
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 6f35f60..976bb2f 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,7 +2,7 @@
 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Fragment-Host: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="1.4.0"
 Bundle-ClassPath: .
 Require-Bundle: org.eclipse.core.runtime;bundle-version="3.8.0",
@@ -11,5 +11,6 @@
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.model.provider.xmi.test;versi
- on="1.5.1";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.model.provider.xmi;version="1
+ .6.0";x-internal:=true,org.eclipse.emf.ecp.view.model.provider.xmi.te
+ st;version="1.6.0";x-internal:=true
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 41f3a8c..6b64676 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -24,28 +24,36 @@
 				<configuration>
 		          	<useUIHarness>false</useUIHarness>
 		          	<useUIThread>false</useUIThread>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.emfstore.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.viewmodel.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-					</dependencies>
+				</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.target.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.emfstore.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.viewmodel.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
diff --git a/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/src/org/eclipse/emf/ecp/view/model/provider/xmi/ViewModelFileExtensionsManager_PTest.java b/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/src/org/eclipse/emf/ecp/view/model/provider/xmi/ViewModelFileExtensionsManager_PTest.java
new file mode 100644
index 0000000..b547f37
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/src/org/eclipse/emf/ecp/view/model/provider/xmi/ViewModelFileExtensionsManager_PTest.java
@@ -0,0 +1,79 @@
+/*******************************************************************************
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Jonas - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.model.provider.xmi;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+import java.util.Map;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecp.view.model.provider.xmi.ViewModelFileExtensionsManager.ExtensionDescription;
+import org.eclipse.emf.ecp.view.spi.model.VView;
+import org.eclipse.emf.ecp.view.spi.provider.ViewProviderHelper;
+import org.eclipse.emf.emfstore.bowling.BowlingPackage;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * @author Jonas
+ *
+ */
+public class ViewModelFileExtensionsManager_PTest {
+
+	private static final String FILEPATH = "viewmodel.view";
+
+	private static final URI FILE_URI = URI.createPlatformPluginURI("org.eclipse.emf.ecp.view.model.provider.xmi"
+		+ "/" + FILEPATH, false);
+	private static final String VIEWNAME = "the view name";
+	private ViewModelFileExtensionsManager manager;
+	private final EClass eClass1 = BowlingPackage.eINSTANCE.getLeague();
+
+	@Before
+	public void init() throws IOException {
+		ViewModelFileExtensionsManager.dispose();
+		manager = ViewModelFileExtensionsManager.getInstance();
+	}
+
+	@Test
+	public void testGetExtensionURIs() {
+		final Map<URI, ExtensionDescription> extensionURIS = ViewModelFileExtensionsManager.getExtensionURIS();
+		assertEquals(1, extensionURIS.size());
+		final URI uri = extensionURIS.keySet().iterator().next();
+		assertEquals(FILE_URI, uri);
+
+	}
+
+	@Test
+	public void testHasViewModelFor() {
+		final EObject eObject = EcoreUtil.create(eClass1);
+		assertTrue(manager.hasViewModelFor(eObject, null));
+	}
+
+	@Test
+	public void testCreateViewModel() {
+		final EObject eObject = EcoreUtil.create(eClass1);
+		final VView view = manager.createView(eObject, null);
+		assertEquals(VIEWNAME, view.getName());
+	}
+
+	@Test
+	public void testIntegrationWithViewProvider() {
+		final EObject eObject = EcoreUtil.create(eClass1);
+		final VView view = ViewProviderHelper.getView(eObject, null);
+		assertEquals(VIEWNAME, view.getName());
+	}
+}
diff --git a/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/src/org/eclipse/emf/ecp/view/model/provider/xmi/test/AllTests.java b/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/src/org/eclipse/emf/ecp/view/model/provider/xmi/test/AllTests.java
index 8764ed7..674561c 100644
--- a/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/src/org/eclipse/emf/ecp/view/model/provider/xmi/test/AllTests.java
+++ b/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/src/org/eclipse/emf/ecp/view/model/provider/xmi/test/AllTests.java
@@ -12,6 +12,7 @@
  *******************************************************************************/
 package org.eclipse.emf.ecp.view.model.provider.xmi.test;
 
+import org.eclipse.emf.ecp.view.model.provider.xmi.ViewModelFileExtensionsManager_PTest;
 import org.junit.runner.RunWith;
 import org.junit.runners.Suite;
 import org.junit.runners.Suite.SuiteClasses;
diff --git a/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/src/org/eclipse/emf/ecp/view/model/provider/xmi/test/ViewModelFileExtensionsManager_PTest.java b/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/src/org/eclipse/emf/ecp/view/model/provider/xmi/test/ViewModelFileExtensionsManager_PTest.java
deleted file mode 100644
index fe7d32d..0000000
--- a/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/src/org/eclipse/emf/ecp/view/model/provider/xmi/test/ViewModelFileExtensionsManager_PTest.java
+++ /dev/null
@@ -1,79 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Jonas - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.model.provider.xmi.test;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import java.io.IOException;
-import java.util.Map;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecp.view.model.provider.xmi.ViewModelFileExtensionsManager;
-import org.eclipse.emf.ecp.view.spi.model.VView;
-import org.eclipse.emf.ecp.view.spi.provider.ViewProviderHelper;
-import org.eclipse.emf.emfstore.bowling.BowlingPackage;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * @author Jonas
- *
- */
-public class ViewModelFileExtensionsManager_PTest {
-
-	private static final String FILEPATH = "viewmodel.view";
-
-	private static final URI FILE_URI = URI.createPlatformPluginURI("org.eclipse.emf.ecp.view.model.provider.xmi"
-		+ "/" + FILEPATH, false);
-	private static final String VIEWNAME = "the view name";
-	private ViewModelFileExtensionsManager manager;
-	private final EClass eClass1 = BowlingPackage.eINSTANCE.getLeague();
-
-	@Before
-	public void init() throws IOException {
-		ViewModelFileExtensionsManager.dispose();
-		manager = ViewModelFileExtensionsManager.getInstance();
-	}
-
-	@Test
-	public void testGetExtensionURIs() {
-		final Map<URI, Map<String, String>> extensionURIS = ViewModelFileExtensionsManager.getExtensionURIS();
-		assertEquals(1, extensionURIS.size());
-		final URI uri = extensionURIS.keySet().iterator().next();
-		assertEquals(FILE_URI, uri);
-
-	}
-
-	@Test
-	public void testHasViewModelFor() {
-		final EObject eObject = EcoreUtil.create(eClass1);
-		assertTrue(manager.hasViewModelFor(eObject, null));
-	}
-
-	@Test
-	public void testCreateViewModel() {
-		final EObject eObject = EcoreUtil.create(eClass1);
-		final VView view = manager.createView(eObject, null);
-		assertEquals(VIEWNAME, view.getName());
-	}
-
-	@Test
-	public void testIntegrationWithViewProvider() {
-		final EObject eObject = EcoreUtil.create(eClass1);
-		final VView view = ViewProviderHelper.getView(eObject, null);
-		assertEquals(VIEWNAME, view.getName());
-	}
-}
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 29d18af..ac8bfd6 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,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Model Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.test
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Fragment-Host: org.eclipse.emf.ecp.view.model;bundle-version="[1.5.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: Eclipse Modeling Project
 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-all;bundle-version="[1.9.5,2.0.0)"
-Export-Package: org.eclipse.emf.ecp.view.model.test;version="1.5.1";x-
- internal:=true,org.eclipse.emf.ecp.view.spi.model;version="1.5.1"
+Export-Package: org.eclipse.emf.ecp.view.model.test;version="1.6.0";x-
+ internal:=true,org.eclipse.emf.ecp.view.spi.model;version="1.6.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 b763477..bb67e6d 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.5.1-SNAPSHOT</version>
+		<version>1.6.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/AllRuleTests.launch b/tests/org.eclipse.emf.ecp.view.rule.test/AllRuleTests.launch
index 34ee85b..ba06a54 100644
--- a/tests/org.eclipse.emf.ecp.view.rule.test/AllRuleTests.launch
+++ b/tests/org.eclipse.emf.ecp.view.rule.test/AllRuleTests.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,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.apache.commons.codec@default:default,org.apache.commons.logging@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.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.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@-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.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.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.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.test.model@default:default,org.eclipse.emf.ecp.ui.rcp@default:false,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.test@default:false,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.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.rule.test@default:default,org.eclipse.emf.ecp.view.rule.ui.swt.test@default:false,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.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"/>

+<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.apache.commons.codec@default:default,org.apache.commons.logging@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.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.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@-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.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-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.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.test.common@default:default,org.eclipse.emf.ecp.test.model@default:default,org.eclipse.emf.ecp.ui.rcp@default:false,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.test@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.model.common@default:default,org.eclipse.emf.ecp.view.model.provider.generator@default:default,org.eclipse.emf.ecp.view.model.provider.xmi.test@default:false,org.eclipse.emf.ecp.view.model.provider.xmi@default:default,org.eclipse.emf.ecp.view.model.test@default:false,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emf.ecp.view.rule.model@default:default,org.eclipse.emf.ecp.view.rule.test@default:default,org.eclipse.emf.ecp.view.rule.ui.swt.test@default:false,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.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.emfforms.core.services.emfspecificservice@default:default,org.eclipse.emf.emfforms.core.services.labelprovider@default:default,org.eclipse.emf.emfforms.localization@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@default:default,org.eclipse.emfforms.core.services.editsupport@default:default,org.eclipse.emfforms.view.model.localization@default:default"/>

 <booleanAttribute key="show_selected_only" value="false"/>

 <stringAttribute key="timestamp" value="1383829357863"/>

 <booleanAttribute key="tracing" value="false"/>

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 8459c8e..0e4bfca 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Rule Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.rule.test
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 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)",
@@ -15,6 +15,8 @@
  org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.test.common;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.test.model;bundle-version="[1.5.0,2.0.0)"
-Export-Package: org.eclipse.emf.ecp.view.rule.test;version="1.5.1"
+ org.eclipse.emf.ecp.test.model;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="1.6.0"
+Export-Package: org.eclipse.emf.ecp.view.rule.test;version="1.6.0"
 Bundle-Vendor: Eclipse Modeling Project
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 62434e6..a0e6ffd 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -24,38 +24,51 @@
 				<configuration>
 		          	<useUIHarness>true</useUIHarness>
 		          	<useUIThread>true</useUIThread>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.viewmodel.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.vertical.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.rule.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.emfstore.example.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-					</dependencies>
+				</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.target.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.viewmodel.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.vertical.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.rule.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.emfstore.example.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.indexdmr.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
diff --git a/tests/org.eclipse.emf.ecp.view.rule.test/src/org/eclipse/emf/ecp/view/rule/test/AllTests.java b/tests/org.eclipse.emf.ecp.view.rule.test/src/org/eclipse/emf/ecp/view/rule/test/AllTests.java
index aaa89af..79e126b 100644
--- a/tests/org.eclipse.emf.ecp.view.rule.test/src/org/eclipse/emf/ecp/view/rule/test/AllTests.java
+++ b/tests/org.eclipse.emf.ecp.view.rule.test/src/org/eclipse/emf/ecp/view/rule/test/AllTests.java
@@ -17,11 +17,11 @@
 
 @RunWith(Suite.class)
 @SuiteClasses({
-	RuleServiceGC_Test.class,
+	RuleServiceGC_PTest.class,
 	RuleService_PTest.class,
 	ConditionEvaluator_Test.class,
-	DynamicRuleService_Test.class,
-	RuleRegistry_Test.class
+	DynamicRuleService_PTest.class,
+	RuleRegistry_PTest.class
 })
 public class AllTests {
 
diff --git a/tests/org.eclipse.emf.ecp.view.rule.test/src/org/eclipse/emf/ecp/view/rule/test/DynamicRuleService_PTest.java b/tests/org.eclipse.emf.ecp.view.rule.test/src/org/eclipse/emf/ecp/view/rule/test/DynamicRuleService_PTest.java
new file mode 100644
index 0000000..6aa6dd3
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.rule.test/src/org/eclipse/emf/ecp/view/rule/test/DynamicRuleService_PTest.java
@@ -0,0 +1,633 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.rule.test;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.util.NoSuchElementException;
+
+import org.eclipse.emf.ecp.test.common.DefaultRealm;
+import org.eclipse.emf.ecp.view.internal.rule.RuleService;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContextFactory;
+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.VControl;
+import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.model.VView;
+import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
+import org.eclipse.emf.ecp.view.spi.rule.model.EnableRule;
+import org.eclipse.emf.ecp.view.spi.rule.model.LeafCondition;
+import org.eclipse.emf.ecp.view.spi.rule.model.OrCondition;
+import org.eclipse.emf.ecp.view.spi.rule.model.RuleFactory;
+import org.eclipse.emf.ecp.view.spi.rule.model.ShowRule;
+import org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalFactory;
+import org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalLayout;
+import org.eclipse.emf.emfstore.bowling.BowlingFactory;
+import org.eclipse.emf.emfstore.bowling.BowlingPackage;
+import org.eclipse.emf.emfstore.bowling.Player;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * @author Eugen
+ * @author jfaltermeier
+ *
+ */
+public class DynamicRuleService_PTest {
+
+	private static final double HEIGHT = 2;
+	private static final double HEIGHT_ALT = 3;
+	private static final double PLAYER_HEIGHT = 1;
+
+	private RuleService rs;
+	private VView view;
+	private Player domainObject;
+	private DefaultRealm realm;
+
+	/**
+	 * @throws java.lang.Exception
+	 */
+	@Before
+	public void setUp() throws Exception {
+		realm = new DefaultRealm();
+		rs = new RuleService();
+		domainObject = createDomainObject();
+	}
+
+	@After
+	public void tearDown() {
+		realm.dispose();
+	}
+
+	private void initialize() {
+		ViewModelContextFactory.INSTANCE.createViewModelContext(view, domainObject,
+			rs);
+	}
+
+	private Player createDomainObject() {
+		final Player player = BowlingFactory.eINSTANCE.createPlayer();
+		player.setName("Test");
+		player.setHeight(PLAYER_HEIGHT);
+		return player;
+	}
+
+	private ShowRule createShowRule(double expectedValue) {
+		final ShowRule showRule = RuleFactory.eINSTANCE.createShowRule();
+		final LeafCondition lc = RuleFactory.eINSTANCE.createLeafCondition();
+		showRule.setCondition(lc);
+		final VFeaturePathDomainModelReference dmr = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
+		dmr.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_Height());
+		lc.setDomainModelReference(dmr);
+		lc.setExpectedValue(expectedValue);
+		return showRule;
+	}
+
+	private EnableRule createEnableRule(double expectedValue) {
+		final EnableRule enabelRule = RuleFactory.eINSTANCE.createEnableRule();
+		final LeafCondition lc = RuleFactory.eINSTANCE.createLeafCondition();
+		enabelRule.setCondition(lc);
+		final VFeaturePathDomainModelReference dmr = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
+		dmr.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_Height());
+		lc.setDomainModelReference(dmr);
+		lc.setExpectedValue(expectedValue);
+		return enabelRule;
+	}
+
+	private EnableRule createEnableRule(double expectedValue1, double expectedValue2) {
+		final EnableRule enableRule = RuleFactory.eINSTANCE.createEnableRule();
+
+		final OrCondition oc = RuleFactory.eINSTANCE.createOrCondition();
+
+		final LeafCondition lc1 = RuleFactory.eINSTANCE.createLeafCondition();
+		final VFeaturePathDomainModelReference dmr1 = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
+		dmr1.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_Height());
+		lc1.setDomainModelReference(dmr1);
+		lc1.setExpectedValue(expectedValue1);
+		oc.getConditions().add(lc1);
+
+		final LeafCondition lc2 = RuleFactory.eINSTANCE.createLeafCondition();
+		final VFeaturePathDomainModelReference dmr2 = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
+		dmr2.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_Height());
+		lc2.setDomainModelReference(dmr2);
+		lc2.setExpectedValue(expectedValue2);
+		oc.getConditions().add(lc2);
+
+		enableRule.setCondition(oc);
+
+		return enableRule;
+	}
+
+	private VView createSimpleView() {
+		final VView view = VViewFactory.eINSTANCE.createView();
+		final VControl controlName = VViewFactory.eINSTANCE.createControl();
+		final VFeaturePathDomainModelReference dmrName = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
+		dmrName.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_Name());
+		controlName.setDomainModelReference(dmrName);
+		view.getChildren().add(controlName);
+		return view;
+	}
+
+	private VView createContainerView() {
+		final VView view = VViewFactory.eINSTANCE.createView();
+		final VVerticalLayout verticalLayout = VVerticalFactory.eINSTANCE.createVerticalLayout();
+		view.getChildren().add(verticalLayout);
+		final VControl controlName = VViewFactory.eINSTANCE.createControl();
+		final VFeaturePathDomainModelReference dmrName = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
+		dmrName.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_Name());
+		controlName.setDomainModelReference(dmrName);
+		verticalLayout.getChildren().add(controlName);
+		return view;
+	}
+
+	private VVerticalLayout getVerticalLayout(VView view) {
+		for (final VContainedElement element : view.getChildren()) {
+			if (element instanceof VVerticalLayout) {
+				return (VVerticalLayout) element;
+			}
+		}
+		throw new NoSuchElementException("No vertical layout found in the view's children.");
+	}
+
+	@Test
+	public void testInitEmptyShowRuleOnControl() {
+		view = createSimpleView();
+		final ShowRule sr = RuleFactory.eINSTANCE.createShowRule();
+		view.getChildren().get(0).getAttachments().add(sr);
+		initialize();
+
+		assertTrue(view.getChildren().get(0).isVisible());
+	}
+
+	@Test
+	public void testInitEmptyShowRuleOppositeOnControl() {
+		view = createSimpleView();
+		final ShowRule sr = RuleFactory.eINSTANCE.createShowRule();
+		sr.setHide(true);
+		view.getChildren().get(0).getAttachments().add(sr);
+		initialize();
+
+		assertTrue(view.getChildren().get(0).isVisible());
+	}
+
+	@Test
+	public void testInitEmptyConditionOnControl() {
+		view = createSimpleView();
+		final ShowRule sr = RuleFactory.eINSTANCE.createShowRule();
+		final LeafCondition lc = RuleFactory.eINSTANCE.createLeafCondition();
+		sr.setCondition(lc);
+		view.getChildren().get(0).getAttachments().add(sr);
+		initialize();
+
+		assertTrue(view.getChildren().get(0).isVisible());
+	}
+
+	@Test
+	public void testInitEmptyDMROnControl() {
+		view = createSimpleView();
+		final ShowRule sr = RuleFactory.eINSTANCE.createShowRule();
+		final LeafCondition lc = RuleFactory.eINSTANCE.createLeafCondition();
+		final VFeaturePathDomainModelReference dmr = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
+		lc.setDomainModelReference(dmr);
+		sr.setCondition(lc);
+		view.getChildren().get(0).getAttachments().add(sr);
+		initialize();
+
+		assertTrue(view.getChildren().get(0).isVisible());
+	}
+
+	@Test
+	public void testUnsetDMROnControl() {
+		view = createSimpleView();
+		final ShowRule sr = RuleFactory.eINSTANCE.createShowRule();
+		final LeafCondition lc = RuleFactory.eINSTANCE.createLeafCondition();
+		final VFeaturePathDomainModelReference dmr = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
+		dmr.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_Height());
+		lc.setDomainModelReference(dmr);
+		sr.setCondition(lc);
+		view.getChildren().get(0).getAttachments().add(sr);
+		initialize();
+
+		assertFalse(view.getChildren().get(0).isVisible());
+
+		dmr.setDomainModelEFeature(null);
+
+		assertTrue(view.getChildren().get(0).isVisible());
+
+	}
+
+	@Test
+	public void testAddEmptyShowRuleOnControl() {
+		view = createSimpleView();
+		initialize();
+
+		final ShowRule sr = RuleFactory.eINSTANCE.createShowRule();
+		view.getChildren().get(0).getAttachments().add(sr);
+		assertTrue(view.getChildren().get(0).isVisible());
+	}
+
+	@Test
+	public void testAddEmptyConditionOnControl() {
+		view = createSimpleView();
+		final ShowRule sr = RuleFactory.eINSTANCE.createShowRule();
+		view.getChildren().get(0).getAttachments().add(sr);
+		initialize();
+		final LeafCondition lc = RuleFactory.eINSTANCE.createLeafCondition();
+		sr.setCondition(lc);
+		assertTrue(view.getChildren().get(0).isVisible());
+	}
+
+	@Test
+	public void testAddEmptyShowRuleOppositeOnControl() {
+		view = createSimpleView();
+		initialize();
+
+		final ShowRule sr = RuleFactory.eINSTANCE.createShowRule();
+		sr.setHide(true);
+		view.getChildren().get(0).getAttachments().add(sr);
+		assertTrue(view.getChildren().get(0).isVisible());
+	}
+
+	@Test
+	public void testAddAndRemoveEmptyShowRuleOnControl() {
+		view = createSimpleView();
+		initialize();
+
+		final ShowRule sr = RuleFactory.eINSTANCE.createShowRule();
+		view.getChildren().get(0).getAttachments().add(sr);
+		assertTrue(view.getChildren().get(0).isVisible());
+		view.getChildren().get(0).getAttachments().remove(sr);
+		assertTrue(view.getChildren().get(0).isVisible());
+	}
+
+	@Test
+	public void testAddEmptyEnableRuleOnControl() {
+		view = createSimpleView();
+		initialize();
+
+		final EnableRule er = RuleFactory.eINSTANCE.createEnableRule();
+		view.getChildren().get(0).getAttachments().add(er);
+		assertTrue(view.getChildren().get(0).isEnabled());
+	}
+
+	@Test
+	public void testAddAndRemoveEmptyEnableRuleOnControl() {
+		view = createSimpleView();
+		initialize();
+
+		final EnableRule er = RuleFactory.eINSTANCE.createEnableRule();
+		view.getChildren().get(0).getAttachments().add(er);
+		assertTrue(view.getChildren().get(0).isEnabled());
+		view.getChildren().get(0).getAttachments().remove(er);
+		assertTrue(view.getChildren().get(0).isEnabled());
+	}
+
+	@Test
+	public void testAddEmptyShowRuleOnContainer() {
+		view = createContainerView();
+		initialize();
+
+		final ShowRule sr = RuleFactory.eINSTANCE.createShowRule();
+		view.getChildren().get(0).getAttachments().add(sr);
+		assertTrue(view.getChildren().get(0).isVisible());
+		assertTrue(VContainedContainer.class.cast(view.getChildren().get(0)).getChildren().get(0).isVisible());
+	}
+
+	@Test
+	public void testAddAndRemoveEmptyShowRuleOnContainer() {
+		view = createContainerView();
+		initialize();
+
+		final ShowRule sr = RuleFactory.eINSTANCE.createShowRule();
+		view.getChildren().get(0).getAttachments().add(sr);
+		assertTrue(view.getChildren().get(0).isVisible());
+		assertTrue(VContainedContainer.class.cast(view.getChildren().get(0)).getChildren().get(0).isVisible());
+		view.getChildren().get(0).getAttachments().remove(sr);
+		assertTrue(view.getChildren().get(0).isVisible());
+		assertTrue(VContainedContainer.class.cast(view.getChildren().get(0)).getChildren().get(0).isVisible());
+	}
+
+	@Test
+	public void testAddEmptyEnableRuleOnContainer() {
+		view = createContainerView();
+		initialize();
+
+		final EnableRule er = RuleFactory.eINSTANCE.createEnableRule();
+		view.getChildren().get(0).getAttachments().add(er);
+		assertTrue(view.getChildren().get(0).isEnabled());
+		assertTrue(VContainedContainer.class.cast(view.getChildren().get(0)).getChildren().get(0).isEnabled());
+	}
+
+	@Test
+	public void testAddAndRemoveEmptyEnableRuleOnContainer() {
+		view = createContainerView();
+		initialize();
+
+		final EnableRule er = RuleFactory.eINSTANCE.createEnableRule();
+		view.getChildren().get(0).getAttachments().add(er);
+		assertTrue(view.getChildren().get(0).isEnabled());
+		assertTrue(VContainedContainer.class.cast(view.getChildren().get(0)).getChildren().get(0).isEnabled());
+		view.getChildren().get(0).getAttachments().remove(er);
+		assertTrue(view.getChildren().get(0).isEnabled());
+		assertTrue(VContainedContainer.class.cast(view.getChildren().get(0)).getChildren().get(0).isEnabled());
+	}
+
+	@Test
+	public void testAddEmptyShowRuleOnContainerAndControl() {
+		view = createContainerView();
+		initialize();
+
+		final VContainedContainer container = VContainedContainer.class.cast(view.getChildren().get(0));
+		final ShowRule sr = RuleFactory.eINSTANCE.createShowRule();
+		final ShowRule sr2 = RuleFactory.eINSTANCE.createShowRule();
+		container.getAttachments().add(sr);
+		container.getChildren().get(0).getAttachments().add(sr2);
+
+		assertTrue(container.isVisible());
+		assertTrue(container.getChildren().get(0).isVisible());
+	}
+
+	@Test
+	public void testAddAndRemoveEmptyShowRuleOnContainerAndControl() {
+		view = createContainerView();
+		initialize();
+
+		final VContainedContainer container = VContainedContainer.class.cast(view.getChildren().get(0));
+		final ShowRule sr = RuleFactory.eINSTANCE.createShowRule();
+		final ShowRule sr2 = RuleFactory.eINSTANCE.createShowRule();
+		container.getAttachments().add(sr);
+		container.getChildren().get(0).getAttachments().add(sr2);
+
+		assertTrue(view.getChildren().get(0).isVisible());
+		assertTrue(VContainedContainer.class.cast(view.getChildren().get(0)).getChildren().get(0).isVisible());
+		container.getAttachments().remove(sr);
+		assertTrue(container.isVisible());
+		assertTrue(container.getChildren().get(0).isVisible());
+	}
+
+	@Test
+	public void testAddEmptyEnableRuleOnContainerAndControl() {
+		view = createContainerView();
+		initialize();
+
+		final VContainedContainer container = VContainedContainer.class.cast(view.getChildren().get(0));
+		final EnableRule er = RuleFactory.eINSTANCE.createEnableRule();
+		final EnableRule er2 = RuleFactory.eINSTANCE.createEnableRule();
+		container.getAttachments().add(er);
+		container.getChildren().get(0).getAttachments().add(er2);
+		assertTrue(container.isEnabled());
+		assertTrue(container.getChildren().get(0).isEnabled());
+	}
+
+	@Test
+	public void testAddAndRemoveEmptyEnableRuleOnContainerAndControl() {
+		view = createContainerView();
+		initialize();
+
+		final VContainedContainer container = VContainedContainer.class.cast(view.getChildren().get(0));
+		final EnableRule er = RuleFactory.eINSTANCE.createEnableRule();
+		final EnableRule er2 = RuleFactory.eINSTANCE.createEnableRule();
+		container.getAttachments().add(er);
+		container.getChildren().get(0).getAttachments().add(er2);
+		assertTrue(container.isEnabled());
+		assertTrue(container.getChildren().get(0).isEnabled());
+
+		container.getAttachments().remove(er);
+		assertTrue(container.isEnabled());
+		assertTrue(container.getChildren().get(0).isEnabled());
+	}
+
+	@Test
+	public void testAddShowRuleOnControl() {
+		view = createSimpleView();
+		initialize();
+
+		final ShowRule sr = createShowRule(HEIGHT);
+		view.getChildren().get(0).getAttachments().add(sr);
+		assertFalse(view.getChildren().get(0).isVisible());
+	}
+
+	@Test
+	public void testAddAndRemoveShowRuleOnControl() {
+		view = createSimpleView();
+		initialize();
+
+		final ShowRule sr = createShowRule(HEIGHT);
+		view.getChildren().get(0).getAttachments().add(sr);
+		assertFalse(view.getChildren().get(0).isVisible());
+		view.getChildren().get(0).getAttachments().remove(sr);
+		assertTrue(view.getChildren().get(0).isVisible());
+	}
+
+	@Test
+	public void testAddEnableRuleOnControl() {
+		view = createSimpleView();
+		initialize();
+
+		final EnableRule er = createEnableRule(HEIGHT);
+		view.getChildren().get(0).getAttachments().add(er);
+		assertFalse(view.getChildren().get(0).isEnabled());
+	}
+
+	@Test
+	public void testAddAndRemoveEnableRuleOnControl() {
+		view = createSimpleView();
+		initialize();
+
+		final EnableRule er = createEnableRule(HEIGHT);
+		view.getChildren().get(0).getAttachments().add(er);
+		assertFalse(view.getChildren().get(0).isEnabled());
+		view.getChildren().get(0).getAttachments().remove(er);
+		assertTrue(view.getChildren().get(0).isEnabled());
+	}
+
+	@Test
+	public void testAddShowRuleOnContainer() {
+		view = createContainerView();
+		initialize();
+
+		final ShowRule sr = createShowRule(HEIGHT);
+		view.getChildren().get(0).getAttachments().add(sr);
+		assertFalse(view.getChildren().get(0).isVisible());
+		assertFalse(VContainedContainer.class.cast(view.getChildren().get(0)).getChildren().get(0).isVisible());
+	}
+
+	@Test
+	public void testAddAndRemoveShowRuleOnContainer() {
+		view = createContainerView();
+		initialize();
+
+		final ShowRule sr = createShowRule(HEIGHT);
+		view.getChildren().get(0).getAttachments().add(sr);
+		assertFalse(view.getChildren().get(0).isVisible());
+		assertFalse(VContainedContainer.class.cast(view.getChildren().get(0)).getChildren().get(0).isVisible());
+		view.getChildren().get(0).getAttachments().remove(sr);
+		assertTrue(view.getChildren().get(0).isVisible());
+		assertTrue(VContainedContainer.class.cast(view.getChildren().get(0)).getChildren().get(0).isVisible());
+	}
+
+	@Test
+	public void testAddEnableRuleOnContainer() {
+		view = createContainerView();
+		initialize();
+
+		final EnableRule er = createEnableRule(HEIGHT);
+		view.getChildren().get(0).getAttachments().add(er);
+		assertFalse(view.getChildren().get(0).isEnabled());
+		assertFalse(VContainedContainer.class.cast(view.getChildren().get(0)).getChildren().get(0).isEnabled());
+	}
+
+	@Test
+	public void testAddAndRemoveEnableRuleOnContainer() {
+		view = createContainerView();
+		initialize();
+
+		final EnableRule er = createEnableRule(HEIGHT);
+		view.getChildren().get(0).getAttachments().add(er);
+		assertFalse(view.getChildren().get(0).isEnabled());
+		assertFalse(VContainedContainer.class.cast(view.getChildren().get(0)).getChildren().get(0).isEnabled());
+		view.getChildren().get(0).getAttachments().remove(er);
+		assertTrue(view.getChildren().get(0).isEnabled());
+		assertTrue(VContainedContainer.class.cast(view.getChildren().get(0)).getChildren().get(0).isEnabled());
+	}
+
+	@Test
+	public void testAddShowRuleOnContainerAndControl() {
+		view = createContainerView();
+		initialize();
+
+		final VContainedContainer container = VContainedContainer.class.cast(view.getChildren().get(0));
+		final ShowRule sr = createShowRule(HEIGHT);
+		final ShowRule sr2 = createShowRule(HEIGHT);
+		container.getAttachments().add(sr);
+		container.getChildren().get(0).getAttachments().add(sr2);
+
+		assertFalse(container.isVisible());
+		assertFalse(container.getChildren().get(0).isVisible());
+	}
+
+	@Test
+	public void testAddAndRemoveShowRuleOnContainerAndControl() {
+		view = createContainerView();
+		initialize();
+
+		final VContainedContainer container = VContainedContainer.class.cast(view.getChildren().get(0));
+		final ShowRule sr = createShowRule(HEIGHT);
+		final ShowRule sr2 = createShowRule(HEIGHT);
+		container.getAttachments().add(sr);
+		container.getChildren().get(0).getAttachments().add(sr2);
+
+		assertFalse(view.getChildren().get(0).isVisible());
+		assertFalse(VContainedContainer.class.cast(view.getChildren().get(0)).getChildren().get(0).isVisible());
+		container.getAttachments().remove(sr);
+		assertTrue(container.isVisible());
+		assertFalse(container.getChildren().get(0).isVisible());
+	}
+
+	@Test
+	public void testAddEnableRuleOnContainerAndControl() {
+		view = createContainerView();
+		initialize();
+
+		final VContainedContainer container = VContainedContainer.class.cast(view.getChildren().get(0));
+		final EnableRule er = createEnableRule(HEIGHT);
+		final EnableRule er2 = createEnableRule(HEIGHT);
+		container.getAttachments().add(er);
+		container.getChildren().get(0).getAttachments().add(er2);
+		assertFalse(container.isEnabled());
+		assertFalse(container.getChildren().get(0).isEnabled());
+	}
+
+	@Test
+	public void testAddAndRemoveEnableRuleOnContainerAndControl() {
+		view = createContainerView();
+		initialize();
+
+		final VContainedContainer container = VContainedContainer.class.cast(view.getChildren().get(0));
+		final EnableRule er = createEnableRule(HEIGHT);
+		final EnableRule er2 = createEnableRule(HEIGHT);
+		container.getAttachments().add(er);
+		container.getChildren().get(0).getAttachments().add(er2);
+		assertFalse(container.isEnabled());
+		assertFalse(container.getChildren().get(0).isEnabled());
+
+		container.getAttachments().remove(er);
+		assertTrue(container.isEnabled());
+		assertFalse(container.getChildren().get(0).isEnabled());
+	}
+
+	@Test
+	public void testAddNewVElementWithoutRule() {
+		// setup
+		view = createContainerView();
+		initialize();
+
+		// act
+		final VVerticalLayout verticalLayout = getVerticalLayout(view);
+		final VControl controlName = VViewFactory.eINSTANCE.createControl();
+		final VFeaturePathDomainModelReference dmrName = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
+		dmrName.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_Name());
+		controlName.setDomainModelReference(dmrName);
+		verticalLayout.getChildren().add(controlName);
+
+		// assert
+		// no exceptions expected
+	}
+
+	@Test
+	public void testAddNewVElementWithLeafCondition() {
+		// setup
+		view = createContainerView();
+		initialize();
+
+		// act
+		final VVerticalLayout verticalLayout = getVerticalLayout(view);
+		final VControl controlName = VViewFactory.eINSTANCE.createControl();
+		final VFeaturePathDomainModelReference dmrName = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
+		dmrName.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_Name());
+		controlName.setDomainModelReference(dmrName);
+
+		final EnableRule er = createEnableRule(HEIGHT);
+		controlName.getAttachments().add(er);
+
+		verticalLayout.getChildren().add(controlName);
+
+		// assert
+		assertTrue(verticalLayout.getChildren().get(0).isEnabled());
+		assertFalse(verticalLayout.getChildren().get(1).isEnabled());
+	}
+
+	@Test
+	public void testAddNewVElementWithNonLeafCondition() {
+		// setup
+		view = createContainerView();
+		initialize();
+
+		// act
+		final VVerticalLayout verticalLayout = getVerticalLayout(view);
+		final VControl controlName = VViewFactory.eINSTANCE.createControl();
+		final VFeaturePathDomainModelReference dmrName = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
+		dmrName.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_Name());
+		controlName.setDomainModelReference(dmrName);
+
+		final EnableRule er = createEnableRule(HEIGHT, HEIGHT_ALT);
+		controlName.getAttachments().add(er);
+
+		verticalLayout.getChildren().add(controlName);
+
+		// assert
+		assertTrue(verticalLayout.getChildren().get(0).isEnabled());
+		assertFalse(verticalLayout.getChildren().get(1).isEnabled());
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.rule.test/src/org/eclipse/emf/ecp/view/rule/test/DynamicRuleService_Test.java b/tests/org.eclipse.emf.ecp.view.rule.test/src/org/eclipse/emf/ecp/view/rule/test/DynamicRuleService_Test.java
deleted file mode 100644
index 8eb4e58..0000000
--- a/tests/org.eclipse.emf.ecp.view.rule.test/src/org/eclipse/emf/ecp/view/rule/test/DynamicRuleService_Test.java
+++ /dev/null
@@ -1,624 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eugen - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.rule.test;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-import java.util.NoSuchElementException;
-
-import org.eclipse.emf.ecp.view.internal.rule.RuleService;
-import org.eclipse.emf.ecp.view.spi.context.ViewModelContextFactory;
-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.VControl;
-import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
-import org.eclipse.emf.ecp.view.spi.model.VView;
-import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
-import org.eclipse.emf.ecp.view.spi.rule.model.EnableRule;
-import org.eclipse.emf.ecp.view.spi.rule.model.LeafCondition;
-import org.eclipse.emf.ecp.view.spi.rule.model.OrCondition;
-import org.eclipse.emf.ecp.view.spi.rule.model.RuleFactory;
-import org.eclipse.emf.ecp.view.spi.rule.model.ShowRule;
-import org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalFactory;
-import org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalLayout;
-import org.eclipse.emf.emfstore.bowling.BowlingFactory;
-import org.eclipse.emf.emfstore.bowling.BowlingPackage;
-import org.eclipse.emf.emfstore.bowling.Player;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * @author Eugen
- * @author jfaltermeier
- *
- */
-public class DynamicRuleService_Test {
-
-	private static final double HEIGHT = 2;
-	private static final double HEIGHT_ALT = 3;
-	private static final double PLAYER_HEIGHT = 1;
-
-	private RuleService rs;
-	private VView view;
-	private Player domainObject;
-
-	/**
-	 * @throws java.lang.Exception
-	 */
-	@Before
-	public void setUp() throws Exception {
-		rs = new RuleService();
-		domainObject = createDomainObject();
-	}
-
-	private void initialize() {
-		ViewModelContextFactory.INSTANCE.createViewModelContext(view, domainObject,
-			rs);
-	}
-
-	private Player createDomainObject() {
-		final Player player = BowlingFactory.eINSTANCE.createPlayer();
-		player.setName("Test");
-		player.setHeight(PLAYER_HEIGHT);
-		return player;
-	}
-
-	private ShowRule createShowRule(double expectedValue) {
-		final ShowRule showRule = RuleFactory.eINSTANCE.createShowRule();
-		final LeafCondition lc = RuleFactory.eINSTANCE.createLeafCondition();
-		showRule.setCondition(lc);
-		final VFeaturePathDomainModelReference dmr = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
-		dmr.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_Height());
-		lc.setDomainModelReference(dmr);
-		lc.setExpectedValue(expectedValue);
-		return showRule;
-	}
-
-	private EnableRule createEnableRule(double expectedValue) {
-		final EnableRule enabelRule = RuleFactory.eINSTANCE.createEnableRule();
-		final LeafCondition lc = RuleFactory.eINSTANCE.createLeafCondition();
-		enabelRule.setCondition(lc);
-		final VFeaturePathDomainModelReference dmr = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
-		dmr.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_Height());
-		lc.setDomainModelReference(dmr);
-		lc.setExpectedValue(expectedValue);
-		return enabelRule;
-	}
-
-	private EnableRule createEnableRule(double expectedValue1, double expectedValue2) {
-		final EnableRule enableRule = RuleFactory.eINSTANCE.createEnableRule();
-
-		final OrCondition oc = RuleFactory.eINSTANCE.createOrCondition();
-
-		final LeafCondition lc1 = RuleFactory.eINSTANCE.createLeafCondition();
-		final VFeaturePathDomainModelReference dmr1 = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
-		dmr1.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_Height());
-		lc1.setDomainModelReference(dmr1);
-		lc1.setExpectedValue(expectedValue1);
-		oc.getConditions().add(lc1);
-
-		final LeafCondition lc2 = RuleFactory.eINSTANCE.createLeafCondition();
-		final VFeaturePathDomainModelReference dmr2 = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
-		dmr2.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_Height());
-		lc2.setDomainModelReference(dmr2);
-		lc2.setExpectedValue(expectedValue2);
-		oc.getConditions().add(lc2);
-
-		enableRule.setCondition(oc);
-
-		return enableRule;
-	}
-
-	private VView createSimpleView() {
-		final VView view = VViewFactory.eINSTANCE.createView();
-		final VControl controlName = VViewFactory.eINSTANCE.createControl();
-		final VFeaturePathDomainModelReference dmrName = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
-		dmrName.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_Name());
-		controlName.setDomainModelReference(dmrName);
-		view.getChildren().add(controlName);
-		return view;
-	}
-
-	private VView createContainerView() {
-		final VView view = VViewFactory.eINSTANCE.createView();
-		final VVerticalLayout verticalLayout = VVerticalFactory.eINSTANCE.createVerticalLayout();
-		view.getChildren().add(verticalLayout);
-		final VControl controlName = VViewFactory.eINSTANCE.createControl();
-		final VFeaturePathDomainModelReference dmrName = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
-		dmrName.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_Name());
-		controlName.setDomainModelReference(dmrName);
-		verticalLayout.getChildren().add(controlName);
-		return view;
-	}
-
-	private VVerticalLayout getVerticalLayout(VView view) {
-		for (final VContainedElement element : view.getChildren()) {
-			if (element instanceof VVerticalLayout) {
-				return (VVerticalLayout) element;
-			}
-		}
-		throw new NoSuchElementException("No vertical layout found in the view's children.");
-	}
-
-	@Test
-	public void testInitEmptyShowRuleOnControl() {
-		view = createSimpleView();
-		final ShowRule sr = RuleFactory.eINSTANCE.createShowRule();
-		view.getChildren().get(0).getAttachments().add(sr);
-		initialize();
-
-		assertTrue(view.getChildren().get(0).isVisible());
-	}
-
-	@Test
-	public void testInitEmptyShowRuleOppositeOnControl() {
-		view = createSimpleView();
-		final ShowRule sr = RuleFactory.eINSTANCE.createShowRule();
-		sr.setHide(true);
-		view.getChildren().get(0).getAttachments().add(sr);
-		initialize();
-
-		assertTrue(view.getChildren().get(0).isVisible());
-	}
-
-	@Test
-	public void testInitEmptyConditionOnControl() {
-		view = createSimpleView();
-		final ShowRule sr = RuleFactory.eINSTANCE.createShowRule();
-		final LeafCondition lc = RuleFactory.eINSTANCE.createLeafCondition();
-		sr.setCondition(lc);
-		view.getChildren().get(0).getAttachments().add(sr);
-		initialize();
-
-		assertTrue(view.getChildren().get(0).isVisible());
-	}
-
-	@Test
-	public void testInitEmptyDMROnControl() {
-		view = createSimpleView();
-		final ShowRule sr = RuleFactory.eINSTANCE.createShowRule();
-		final LeafCondition lc = RuleFactory.eINSTANCE.createLeafCondition();
-		final VFeaturePathDomainModelReference dmr = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
-		lc.setDomainModelReference(dmr);
-		sr.setCondition(lc);
-		view.getChildren().get(0).getAttachments().add(sr);
-		initialize();
-
-		assertTrue(view.getChildren().get(0).isVisible());
-	}
-
-	@Test
-	public void testUnsetDMROnControl() {
-		view = createSimpleView();
-		final ShowRule sr = RuleFactory.eINSTANCE.createShowRule();
-		final LeafCondition lc = RuleFactory.eINSTANCE.createLeafCondition();
-		final VFeaturePathDomainModelReference dmr = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
-		dmr.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_Height());
-		lc.setDomainModelReference(dmr);
-		sr.setCondition(lc);
-		view.getChildren().get(0).getAttachments().add(sr);
-		initialize();
-
-		assertFalse(view.getChildren().get(0).isVisible());
-
-		dmr.setDomainModelEFeature(null);
-
-		assertTrue(view.getChildren().get(0).isVisible());
-
-	}
-
-	@Test
-	public void testAddEmptyShowRuleOnControl() {
-		view = createSimpleView();
-		initialize();
-
-		final ShowRule sr = RuleFactory.eINSTANCE.createShowRule();
-		view.getChildren().get(0).getAttachments().add(sr);
-		assertTrue(view.getChildren().get(0).isVisible());
-	}
-
-	@Test
-	public void testAddEmptyConditionOnControl() {
-		view = createSimpleView();
-		final ShowRule sr = RuleFactory.eINSTANCE.createShowRule();
-		view.getChildren().get(0).getAttachments().add(sr);
-		initialize();
-		final LeafCondition lc = RuleFactory.eINSTANCE.createLeafCondition();
-		sr.setCondition(lc);
-		assertTrue(view.getChildren().get(0).isVisible());
-	}
-
-	@Test
-	public void testAddEmptyShowRuleOppositeOnControl() {
-		view = createSimpleView();
-		initialize();
-
-		final ShowRule sr = RuleFactory.eINSTANCE.createShowRule();
-		sr.setHide(true);
-		view.getChildren().get(0).getAttachments().add(sr);
-		assertTrue(view.getChildren().get(0).isVisible());
-	}
-
-	@Test
-	public void testAddAndRemoveEmptyShowRuleOnControl() {
-		view = createSimpleView();
-		initialize();
-
-		final ShowRule sr = RuleFactory.eINSTANCE.createShowRule();
-		view.getChildren().get(0).getAttachments().add(sr);
-		assertTrue(view.getChildren().get(0).isVisible());
-		view.getChildren().get(0).getAttachments().remove(sr);
-		assertTrue(view.getChildren().get(0).isVisible());
-	}
-
-	@Test
-	public void testAddEmptyEnableRuleOnControl() {
-		view = createSimpleView();
-		initialize();
-
-		final EnableRule er = RuleFactory.eINSTANCE.createEnableRule();
-		view.getChildren().get(0).getAttachments().add(er);
-		assertTrue(view.getChildren().get(0).isEnabled());
-	}
-
-	@Test
-	public void testAddAndRemoveEmptyEnableRuleOnControl() {
-		view = createSimpleView();
-		initialize();
-
-		final EnableRule er = RuleFactory.eINSTANCE.createEnableRule();
-		view.getChildren().get(0).getAttachments().add(er);
-		assertTrue(view.getChildren().get(0).isEnabled());
-		view.getChildren().get(0).getAttachments().remove(er);
-		assertTrue(view.getChildren().get(0).isEnabled());
-	}
-
-	@Test
-	public void testAddEmptyShowRuleOnContainer() {
-		view = createContainerView();
-		initialize();
-
-		final ShowRule sr = RuleFactory.eINSTANCE.createShowRule();
-		view.getChildren().get(0).getAttachments().add(sr);
-		assertTrue(view.getChildren().get(0).isVisible());
-		assertTrue(VContainedContainer.class.cast(view.getChildren().get(0)).getChildren().get(0).isVisible());
-	}
-
-	@Test
-	public void testAddAndRemoveEmptyShowRuleOnContainer() {
-		view = createContainerView();
-		initialize();
-
-		final ShowRule sr = RuleFactory.eINSTANCE.createShowRule();
-		view.getChildren().get(0).getAttachments().add(sr);
-		assertTrue(view.getChildren().get(0).isVisible());
-		assertTrue(VContainedContainer.class.cast(view.getChildren().get(0)).getChildren().get(0).isVisible());
-		view.getChildren().get(0).getAttachments().remove(sr);
-		assertTrue(view.getChildren().get(0).isVisible());
-		assertTrue(VContainedContainer.class.cast(view.getChildren().get(0)).getChildren().get(0).isVisible());
-	}
-
-	@Test
-	public void testAddEmptyEnableRuleOnContainer() {
-		view = createContainerView();
-		initialize();
-
-		final EnableRule er = RuleFactory.eINSTANCE.createEnableRule();
-		view.getChildren().get(0).getAttachments().add(er);
-		assertTrue(view.getChildren().get(0).isEnabled());
-		assertTrue(VContainedContainer.class.cast(view.getChildren().get(0)).getChildren().get(0).isEnabled());
-	}
-
-	@Test
-	public void testAddAndRemoveEmptyEnableRuleOnContainer() {
-		view = createContainerView();
-		initialize();
-
-		final EnableRule er = RuleFactory.eINSTANCE.createEnableRule();
-		view.getChildren().get(0).getAttachments().add(er);
-		assertTrue(view.getChildren().get(0).isEnabled());
-		assertTrue(VContainedContainer.class.cast(view.getChildren().get(0)).getChildren().get(0).isEnabled());
-		view.getChildren().get(0).getAttachments().remove(er);
-		assertTrue(view.getChildren().get(0).isEnabled());
-		assertTrue(VContainedContainer.class.cast(view.getChildren().get(0)).getChildren().get(0).isEnabled());
-	}
-
-	@Test
-	public void testAddEmptyShowRuleOnContainerAndControl() {
-		view = createContainerView();
-		initialize();
-
-		final VContainedContainer container = VContainedContainer.class.cast(view.getChildren().get(0));
-		final ShowRule sr = RuleFactory.eINSTANCE.createShowRule();
-		final ShowRule sr2 = RuleFactory.eINSTANCE.createShowRule();
-		container.getAttachments().add(sr);
-		container.getChildren().get(0).getAttachments().add(sr2);
-
-		assertTrue(container.isVisible());
-		assertTrue(container.getChildren().get(0).isVisible());
-	}
-
-	@Test
-	public void testAddAndRemoveEmptyShowRuleOnContainerAndControl() {
-		view = createContainerView();
-		initialize();
-
-		final VContainedContainer container = VContainedContainer.class.cast(view.getChildren().get(0));
-		final ShowRule sr = RuleFactory.eINSTANCE.createShowRule();
-		final ShowRule sr2 = RuleFactory.eINSTANCE.createShowRule();
-		container.getAttachments().add(sr);
-		container.getChildren().get(0).getAttachments().add(sr2);
-
-		assertTrue(view.getChildren().get(0).isVisible());
-		assertTrue(VContainedContainer.class.cast(view.getChildren().get(0)).getChildren().get(0).isVisible());
-		container.getAttachments().remove(sr);
-		assertTrue(container.isVisible());
-		assertTrue(container.getChildren().get(0).isVisible());
-	}
-
-	@Test
-	public void testAddEmptyEnableRuleOnContainerAndControl() {
-		view = createContainerView();
-		initialize();
-
-		final VContainedContainer container = VContainedContainer.class.cast(view.getChildren().get(0));
-		final EnableRule er = RuleFactory.eINSTANCE.createEnableRule();
-		final EnableRule er2 = RuleFactory.eINSTANCE.createEnableRule();
-		container.getAttachments().add(er);
-		container.getChildren().get(0).getAttachments().add(er2);
-		assertTrue(container.isEnabled());
-		assertTrue(container.getChildren().get(0).isEnabled());
-	}
-
-	@Test
-	public void testAddAndRemoveEmptyEnableRuleOnContainerAndControl() {
-		view = createContainerView();
-		initialize();
-
-		final VContainedContainer container = VContainedContainer.class.cast(view.getChildren().get(0));
-		final EnableRule er = RuleFactory.eINSTANCE.createEnableRule();
-		final EnableRule er2 = RuleFactory.eINSTANCE.createEnableRule();
-		container.getAttachments().add(er);
-		container.getChildren().get(0).getAttachments().add(er2);
-		assertTrue(container.isEnabled());
-		assertTrue(container.getChildren().get(0).isEnabled());
-
-		container.getAttachments().remove(er);
-		assertTrue(container.isEnabled());
-		assertTrue(container.getChildren().get(0).isEnabled());
-	}
-
-	@Test
-	public void testAddShowRuleOnControl() {
-		view = createSimpleView();
-		initialize();
-
-		final ShowRule sr = createShowRule(HEIGHT);
-		view.getChildren().get(0).getAttachments().add(sr);
-		assertFalse(view.getChildren().get(0).isVisible());
-	}
-
-	@Test
-	public void testAddAndRemoveShowRuleOnControl() {
-		view = createSimpleView();
-		initialize();
-
-		final ShowRule sr = createShowRule(HEIGHT);
-		view.getChildren().get(0).getAttachments().add(sr);
-		assertFalse(view.getChildren().get(0).isVisible());
-		view.getChildren().get(0).getAttachments().remove(sr);
-		assertTrue(view.getChildren().get(0).isVisible());
-	}
-
-	@Test
-	public void testAddEnableRuleOnControl() {
-		view = createSimpleView();
-		initialize();
-
-		final EnableRule er = createEnableRule(HEIGHT);
-		view.getChildren().get(0).getAttachments().add(er);
-		assertFalse(view.getChildren().get(0).isEnabled());
-	}
-
-	@Test
-	public void testAddAndRemoveEnableRuleOnControl() {
-		view = createSimpleView();
-		initialize();
-
-		final EnableRule er = createEnableRule(HEIGHT);
-		view.getChildren().get(0).getAttachments().add(er);
-		assertFalse(view.getChildren().get(0).isEnabled());
-		view.getChildren().get(0).getAttachments().remove(er);
-		assertTrue(view.getChildren().get(0).isEnabled());
-	}
-
-	@Test
-	public void testAddShowRuleOnContainer() {
-		view = createContainerView();
-		initialize();
-
-		final ShowRule sr = createShowRule(HEIGHT);
-		view.getChildren().get(0).getAttachments().add(sr);
-		assertFalse(view.getChildren().get(0).isVisible());
-		assertFalse(VContainedContainer.class.cast(view.getChildren().get(0)).getChildren().get(0).isVisible());
-	}
-
-	@Test
-	public void testAddAndRemoveShowRuleOnContainer() {
-		view = createContainerView();
-		initialize();
-
-		final ShowRule sr = createShowRule(HEIGHT);
-		view.getChildren().get(0).getAttachments().add(sr);
-		assertFalse(view.getChildren().get(0).isVisible());
-		assertFalse(VContainedContainer.class.cast(view.getChildren().get(0)).getChildren().get(0).isVisible());
-		view.getChildren().get(0).getAttachments().remove(sr);
-		assertTrue(view.getChildren().get(0).isVisible());
-		assertTrue(VContainedContainer.class.cast(view.getChildren().get(0)).getChildren().get(0).isVisible());
-	}
-
-	@Test
-	public void testAddEnableRuleOnContainer() {
-		view = createContainerView();
-		initialize();
-
-		final EnableRule er = createEnableRule(HEIGHT);
-		view.getChildren().get(0).getAttachments().add(er);
-		assertFalse(view.getChildren().get(0).isEnabled());
-		assertFalse(VContainedContainer.class.cast(view.getChildren().get(0)).getChildren().get(0).isEnabled());
-	}
-
-	@Test
-	public void testAddAndRemoveEnableRuleOnContainer() {
-		view = createContainerView();
-		initialize();
-
-		final EnableRule er = createEnableRule(HEIGHT);
-		view.getChildren().get(0).getAttachments().add(er);
-		assertFalse(view.getChildren().get(0).isEnabled());
-		assertFalse(VContainedContainer.class.cast(view.getChildren().get(0)).getChildren().get(0).isEnabled());
-		view.getChildren().get(0).getAttachments().remove(er);
-		assertTrue(view.getChildren().get(0).isEnabled());
-		assertTrue(VContainedContainer.class.cast(view.getChildren().get(0)).getChildren().get(0).isEnabled());
-	}
-
-	@Test
-	public void testAddShowRuleOnContainerAndControl() {
-		view = createContainerView();
-		initialize();
-
-		final VContainedContainer container = VContainedContainer.class.cast(view.getChildren().get(0));
-		final ShowRule sr = createShowRule(HEIGHT);
-		final ShowRule sr2 = createShowRule(HEIGHT);
-		container.getAttachments().add(sr);
-		container.getChildren().get(0).getAttachments().add(sr2);
-
-		assertFalse(container.isVisible());
-		assertFalse(container.getChildren().get(0).isVisible());
-	}
-
-	@Test
-	public void testAddAndRemoveShowRuleOnContainerAndControl() {
-		view = createContainerView();
-		initialize();
-
-		final VContainedContainer container = VContainedContainer.class.cast(view.getChildren().get(0));
-		final ShowRule sr = createShowRule(HEIGHT);
-		final ShowRule sr2 = createShowRule(HEIGHT);
-		container.getAttachments().add(sr);
-		container.getChildren().get(0).getAttachments().add(sr2);
-
-		assertFalse(view.getChildren().get(0).isVisible());
-		assertFalse(VContainedContainer.class.cast(view.getChildren().get(0)).getChildren().get(0).isVisible());
-		container.getAttachments().remove(sr);
-		assertTrue(container.isVisible());
-		assertFalse(container.getChildren().get(0).isVisible());
-	}
-
-	@Test
-	public void testAddEnableRuleOnContainerAndControl() {
-		view = createContainerView();
-		initialize();
-
-		final VContainedContainer container = VContainedContainer.class.cast(view.getChildren().get(0));
-		final EnableRule er = createEnableRule(HEIGHT);
-		final EnableRule er2 = createEnableRule(HEIGHT);
-		container.getAttachments().add(er);
-		container.getChildren().get(0).getAttachments().add(er2);
-		assertFalse(container.isEnabled());
-		assertFalse(container.getChildren().get(0).isEnabled());
-	}
-
-	@Test
-	public void testAddAndRemoveEnableRuleOnContainerAndControl() {
-		view = createContainerView();
-		initialize();
-
-		final VContainedContainer container = VContainedContainer.class.cast(view.getChildren().get(0));
-		final EnableRule er = createEnableRule(HEIGHT);
-		final EnableRule er2 = createEnableRule(HEIGHT);
-		container.getAttachments().add(er);
-		container.getChildren().get(0).getAttachments().add(er2);
-		assertFalse(container.isEnabled());
-		assertFalse(container.getChildren().get(0).isEnabled());
-
-		container.getAttachments().remove(er);
-		assertTrue(container.isEnabled());
-		assertFalse(container.getChildren().get(0).isEnabled());
-	}
-
-	@Test
-	public void testAddNewVElementWithoutRule() {
-		// setup
-		view = createContainerView();
-		initialize();
-
-		// act
-		final VVerticalLayout verticalLayout = getVerticalLayout(view);
-		final VControl controlName = VViewFactory.eINSTANCE.createControl();
-		final VFeaturePathDomainModelReference dmrName = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
-		dmrName.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_Name());
-		controlName.setDomainModelReference(dmrName);
-		verticalLayout.getChildren().add(controlName);
-
-		// assert
-		// no exceptions expected
-	}
-
-	@Test
-	public void testAddNewVElementWithLeafCondition() {
-		// setup
-		view = createContainerView();
-		initialize();
-
-		// act
-		final VVerticalLayout verticalLayout = getVerticalLayout(view);
-		final VControl controlName = VViewFactory.eINSTANCE.createControl();
-		final VFeaturePathDomainModelReference dmrName = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
-		dmrName.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_Name());
-		controlName.setDomainModelReference(dmrName);
-
-		final EnableRule er = createEnableRule(HEIGHT);
-		controlName.getAttachments().add(er);
-
-		verticalLayout.getChildren().add(controlName);
-
-		// assert
-		assertTrue(verticalLayout.getChildren().get(0).isEnabled());
-		assertFalse(verticalLayout.getChildren().get(1).isEnabled());
-	}
-
-	@Test
-	public void testAddNewVElementWithNonLeafCondition() {
-		// setup
-		view = createContainerView();
-		initialize();
-
-		// act
-		final VVerticalLayout verticalLayout = getVerticalLayout(view);
-		final VControl controlName = VViewFactory.eINSTANCE.createControl();
-		final VFeaturePathDomainModelReference dmrName = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
-		dmrName.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_Name());
-		controlName.setDomainModelReference(dmrName);
-
-		final EnableRule er = createEnableRule(HEIGHT, HEIGHT_ALT);
-		controlName.getAttachments().add(er);
-
-		verticalLayout.getChildren().add(controlName);
-
-		// assert
-		assertTrue(verticalLayout.getChildren().get(0).isEnabled());
-		assertFalse(verticalLayout.getChildren().get(1).isEnabled());
-	}
-
-}
diff --git a/tests/org.eclipse.emf.ecp.view.rule.test/src/org/eclipse/emf/ecp/view/rule/test/RuleRegistry_PTest.java b/tests/org.eclipse.emf.ecp.view.rule.test/src/org/eclipse/emf/ecp/view/rule/test/RuleRegistry_PTest.java
new file mode 100644
index 0000000..a8d7cb3
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.rule.test/src/org/eclipse/emf/ecp/view/rule/test/RuleRegistry_PTest.java
@@ -0,0 +1,1551 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * jfaltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.rule.test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.lang.reflect.Field;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+
+import org.eclipse.emf.ecp.common.spi.BidirectionalMap;
+import org.eclipse.emf.ecp.common.spi.UniqueSetting;
+import org.eclipse.emf.ecp.test.common.DefaultRealm;
+import org.eclipse.emf.ecp.view.internal.rule.RuleRegistry;
+import org.eclipse.emf.ecp.view.internal.rule.RuleService;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContextFactory;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+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.rule.model.Condition;
+import org.eclipse.emf.ecp.view.spi.rule.model.LeafCondition;
+import org.eclipse.emf.ecp.view.spi.rule.model.OrCondition;
+import org.eclipse.emf.ecp.view.spi.rule.model.RuleFactory;
+import org.eclipse.emf.ecp.view.spi.rule.model.ShowRule;
+import org.eclipse.emf.emfstore.bowling.BowlingFactory;
+import org.eclipse.emf.emfstore.bowling.BowlingPackage;
+import org.eclipse.emf.emfstore.bowling.Fan;
+import org.eclipse.emf.emfstore.bowling.Merchandise;
+import org.eclipse.emf.emfstore.bowling.Tournament;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests that assert that the {@link RuleRegistry}'s maps are updated correctly, especially on deletes.
+ *
+ * @author jfaltermeier
+ *
+ */
+public class RuleRegistry_PTest {
+	// assertions are pretty complex
+	// BEGIN COMPLEX CODE
+	private static final String CONDITION_TO_SETTINGS_FIELD_NAME = "conditionToSettings";
+	private static final String RULES_TO_RENDERABLES_FIELD_NAME = "rulesToRenderables";
+	private static final String SETTING_TO_RULES_FIELD_NAME = "settingToRules";
+	private static final String REFLECTION_FAIL_FIX_TEST_SETUP = "Reflection fail. Fix test setup!";
+	private static final String SHOW_RULE_REGISTRY_FIELD_NAME = "showRuleRegistry";
+	private static final String FM_RIGHT = "Bowling Ball";
+	private static final String M2_RIGHT = "Shirt";
+	private static final String M1_RIGHT = "Scarf";
+
+	private RuleService ruleService;
+
+	private Fan fan;
+	private Merchandise merchandise1;
+	private Merchandise merchandise2;
+	private Merchandise favMerchandise;
+
+	private UniqueSetting favMerchandiseSetting;
+	private UniqueSetting merchandise1Setting;
+	private UniqueSetting merchandise2Setting;
+	private UniqueSetting fanSetting;
+
+	private VView view;
+	private VControl control1;
+	private VControl control2;
+	private DefaultRealm realm;
+
+	@Before
+	public void setUp() {
+		realm = new DefaultRealm();
+		ruleService = new RuleService();
+		createView();
+		createDomainObject();
+	}
+
+	@After
+	public void tearDown() {
+		realm.dispose();
+	}
+
+	private void createDomainObject() {
+		fan = BowlingFactory.eINSTANCE.createFan();
+
+		merchandise1 = BowlingFactory.eINSTANCE.createMerchandise();
+		merchandise1.setName(M1_RIGHT);
+		merchandise1Setting = UniqueSetting.createSetting(merchandise1, BowlingPackage.eINSTANCE.getMerchandise_Name());
+
+		merchandise2 = BowlingFactory.eINSTANCE.createMerchandise();
+		merchandise2.setName(M2_RIGHT);
+		merchandise2Setting = UniqueSetting.createSetting(merchandise2, BowlingPackage.eINSTANCE.getMerchandise_Name());
+
+		favMerchandise = BowlingFactory.eINSTANCE.createMerchandise();
+		favMerchandise.setName(FM_RIGHT);
+		favMerchandiseSetting = UniqueSetting.createSetting(favMerchandise,
+			BowlingPackage.eINSTANCE.getMerchandise_Name());
+
+		fan.setFavouriteMerchandise(favMerchandise);
+		fan.getFanMerchandise().add(merchandise1);
+		fan.getFanMerchandise().add(merchandise2);
+		fanSetting = UniqueSetting.createSetting(fan, BowlingPackage.eINSTANCE.getFan_FanMerchandise());
+	}
+
+	private void createView() {
+		view = VViewFactory.eINSTANCE.createView();
+
+		control1 = VViewFactory.eINSTANCE.createControl();
+		control1.setDomainModelReference(BowlingPackage.eINSTANCE.getFan_DateOfBirth());
+
+		control2 = VViewFactory.eINSTANCE.createControl();
+		control2.setDomainModelReference(BowlingPackage.eINSTANCE.getFan_EMails());
+
+		view.getChildren().add(control1);
+		view.getChildren().add(control2);
+	}
+
+	private void initialize() {
+		ViewModelContextFactory.INSTANCE.createViewModelContext(view, fan, ruleService);
+	}
+
+	private static ShowRule addFavMerchandiseRule(VElement element) {
+		final ShowRule rule = RuleFactory.eINSTANCE.createShowRule();
+
+		final LeafCondition condition = RuleFactory.eINSTANCE.createLeafCondition();
+
+		final VFeaturePathDomainModelReference dmr = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
+		dmr.getDomainModelEReferencePath().add(BowlingPackage.eINSTANCE.getFan_FavouriteMerchandise());
+		dmr.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_Name());
+
+		condition.setExpectedValue(FM_RIGHT);
+		condition.setDomainModelReference(dmr);
+		rule.setCondition(condition);
+
+		element.getAttachments().add(rule);
+
+		return rule;
+	}
+
+	private static ShowRule addFanMerchandiseRule(VElement element) {
+		final ShowRule rule = RuleFactory.eINSTANCE.createShowRule();
+
+		final LeafCondition condition = RuleFactory.eINSTANCE.createLeafCondition();
+
+		final VFeaturePathDomainModelReference dmr = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
+		dmr.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_FanMerchandise());
+
+		final VFeaturePathDomainModelReference valueDMR = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		valueDMR.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_Name());
+
+		condition.setExpectedValue(M1_RIGHT);
+		condition.setDomainModelReference(dmr);
+		condition.setValueDomainModelReference(valueDMR);
+		rule.setCondition(condition);
+
+		element.getAttachments().add(rule);
+
+		return rule;
+	}
+
+	private static ShowRule addFanMerchandiseOrRule(VElement element) {
+		final ShowRule rule = RuleFactory.eINSTANCE.createShowRule();
+
+		final OrCondition condition = RuleFactory.eINSTANCE.createOrCondition();
+
+		final LeafCondition condition1 = RuleFactory.eINSTANCE.createLeafCondition();
+		final VFeaturePathDomainModelReference dmr1 = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
+		dmr1.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_FanMerchandise());
+		final VFeaturePathDomainModelReference valueDMR1 = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		valueDMR1.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_Name());
+		condition1.setExpectedValue(M1_RIGHT);
+		condition1.setDomainModelReference(dmr1);
+		condition1.setValueDomainModelReference(valueDMR1);
+
+		final LeafCondition condition2 = RuleFactory.eINSTANCE.createLeafCondition();
+		final VFeaturePathDomainModelReference dmr2 = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
+		dmr2.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_FanMerchandise());
+		final VFeaturePathDomainModelReference valueDMR2 = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		valueDMR2.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_Name());
+		condition2.setExpectedValue(M2_RIGHT);
+		condition2.setDomainModelReference(dmr2);
+		condition2.setValueDomainModelReference(valueDMR2);
+
+		condition.getConditions().add(condition1);
+		condition.getConditions().add(condition2);
+
+		rule.setCondition(condition);
+
+		element.getAttachments().add(rule);
+
+		return rule;
+	}
+
+	private Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> getSettingsToRules() {
+		try {
+			final RuleRegistry<ShowRule> ruleRegistry = getRuleRegistry();
+
+			final Field field = ruleRegistry.getClass().getDeclaredField(SETTING_TO_RULES_FIELD_NAME);
+			field.setAccessible(true);
+			@SuppressWarnings("unchecked")
+			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> result = (Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>>) field
+				.get(ruleRegistry);
+			return result;
+		} catch (final SecurityException ex) {
+		} catch (final NoSuchFieldException ex) {
+		} catch (final IllegalArgumentException ex) {
+		} catch (final IllegalAccessException ex) {
+		}
+		fail(REFLECTION_FAIL_FIX_TEST_SETUP);
+		return null;
+	}
+
+	private BidirectionalMap<ShowRule, VElement> getRulesToRenderables() {
+		try {
+			final RuleRegistry<ShowRule> ruleRegistry = getRuleRegistry();
+
+			final Field field = ruleRegistry.getClass().getDeclaredField(RULES_TO_RENDERABLES_FIELD_NAME);
+			field.setAccessible(true);
+			@SuppressWarnings("unchecked")
+			final BidirectionalMap<ShowRule, VElement> result = (BidirectionalMap<ShowRule, VElement>) field
+				.get(ruleRegistry);
+			return result;
+		} catch (final SecurityException ex) {
+		} catch (final NoSuchFieldException ex) {
+		} catch (final IllegalArgumentException ex) {
+		} catch (final IllegalAccessException ex) {
+		}
+		fail(REFLECTION_FAIL_FIX_TEST_SETUP);
+		return null;
+	}
+
+	private Map<Condition, Set<UniqueSetting>> getConditionsToSettings() {
+		try {
+			final RuleRegistry<ShowRule> ruleRegistry = getRuleRegistry();
+
+			final Field field = ruleRegistry.getClass().getDeclaredField(CONDITION_TO_SETTINGS_FIELD_NAME);
+			field.setAccessible(true);
+			@SuppressWarnings("unchecked")
+			final Map<Condition, Set<UniqueSetting>> result = (Map<Condition, Set<UniqueSetting>>) field
+				.get(ruleRegistry);
+			return result;
+		} catch (final SecurityException ex) {
+		} catch (final NoSuchFieldException ex) {
+		} catch (final IllegalArgumentException ex) {
+		} catch (final IllegalAccessException ex) {
+		}
+		fail(REFLECTION_FAIL_FIX_TEST_SETUP);
+		return null;
+	}
+
+	private RuleRegistry<ShowRule> getRuleRegistry() {
+		try {
+			final Field field = ruleService.getClass().getDeclaredField(SHOW_RULE_REGISTRY_FIELD_NAME);
+			field.setAccessible(true);
+			@SuppressWarnings("unchecked")
+			final RuleRegistry<ShowRule> result = (RuleRegistry<ShowRule>) field.get(ruleService);
+			return result;
+		} catch (final SecurityException ex) {
+		} catch (final NoSuchFieldException ex) {
+		} catch (final IllegalArgumentException ex) {
+		} catch (final IllegalAccessException ex) {
+		}
+		fail(REFLECTION_FAIL_FIX_TEST_SETUP);
+		return null;
+	}
+
+	@Test
+	public void testInitOneSingleRefRule() {
+		// setup
+		final ShowRule rule = addFavMerchandiseRule(control1);
+
+		// act
+		initialize();
+
+		// assert settingsToRules
+		{
+			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
+			assertEquals(1, settingsToRules.size());
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry = settingsToRules.entrySet()
+				.iterator()
+				.next();
+			assertEquals(favMerchandiseSetting, entry.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules = entry.getValue();
+			assertEquals(1, conditionToRules.keys().size());
+			assertEquals(1, conditionToRules.values().size());
+			final Condition condition = conditionToRules.keys().iterator().next();
+			assertEquals(rule.getCondition(), condition);
+			assertEquals(rule, conditionToRules.getValue(condition));
+		}
+
+		// assert rulesToRenderables
+		{
+			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
+			assertEquals(1, rulesToRenderables.keys().size());
+			assertEquals(1, rulesToRenderables.values().size());
+			final ShowRule ruleKey = rulesToRenderables.keys().iterator().next();
+			assertEquals(rule, ruleKey);
+			assertEquals(control1, rulesToRenderables.getValue(ruleKey));
+		}
+
+		// assert conditionToSettings
+		{
+			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
+			assertEquals(1, conditionsToSettings.size());
+			final Entry<Condition, Set<UniqueSetting>> entry = conditionsToSettings.entrySet().iterator().next();
+			assertEquals(rule.getCondition(), entry.getKey());
+			assertEquals(1, entry.getValue().size());
+			assertEquals(favMerchandiseSetting, entry.getValue().iterator().next());
+		}
+	}
+
+	@Test
+	public void testInitTwoSimilarSingleRefRule() {
+		// setup
+		final ShowRule rule1 = addFavMerchandiseRule(control1);
+		final ShowRule rule2 = addFavMerchandiseRule(control2);
+
+		// act
+		initialize();
+
+		// assert settingsToRules
+		{
+			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
+			assertEquals(1, settingsToRules.size());
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry = settingsToRules.entrySet()
+				.iterator().next();
+			assertEquals(favMerchandiseSetting, entry.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules = entry.getValue();
+			assertEquals(2, conditionToRules.keys().size());
+			assertEquals(2, conditionToRules.values().size());
+			final Iterator<Condition> iterator = conditionToRules.keys().iterator();
+			final Condition condition1 = iterator.next();
+			assertEquals(rule1.getCondition(), condition1);
+			assertEquals(rule1, conditionToRules.getValue(condition1));
+			final Condition condition2 = iterator.next();
+			assertEquals(rule2.getCondition(), condition2);
+			assertEquals(rule2, conditionToRules.getValue(condition2));
+		}
+
+		// assert rulesToRenderables
+		{
+			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
+			assertEquals(2, rulesToRenderables.keys().size());
+			assertEquals(2, rulesToRenderables.values().size());
+			final Iterator<ShowRule> iterator = rulesToRenderables.keys().iterator();
+			final ShowRule ruleKey1 = iterator.next();
+			assertEquals(rule1, ruleKey1);
+			assertEquals(control1, rulesToRenderables.getValue(ruleKey1));
+			final ShowRule ruleKey2 = iterator.next();
+			assertEquals(rule2, ruleKey2);
+			assertEquals(control2, rulesToRenderables.getValue(ruleKey2));
+		}
+
+		// assert conditionToSettings
+		{
+			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
+			assertEquals(2, conditionsToSettings.size());
+			final Iterator<Entry<Condition, Set<UniqueSetting>>> iterator = conditionsToSettings.entrySet().iterator();
+			final Entry<Condition, Set<UniqueSetting>> entry1 = iterator.next();
+			assertEquals(rule1.getCondition(), entry1.getKey());
+			assertEquals(1, entry1.getValue().size());
+			assertEquals(favMerchandiseSetting, entry1.getValue().iterator().next());
+			final Entry<Condition, Set<UniqueSetting>> entry2 = iterator.next();
+			assertEquals(rule2.getCondition(), entry2.getKey());
+			assertEquals(1, entry2.getValue().size());
+			assertEquals(favMerchandiseSetting, entry2.getValue().iterator().next());
+		}
+	}
+
+	@Test
+	public void testInitOneMultiRefRule() {
+		// setup
+		final ShowRule rule = addFanMerchandiseRule(control1);
+
+		// act
+		initialize();
+
+		// assert settingsToRules
+		{
+			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
+			assertEquals(3, settingsToRules.size());
+			final Iterator<Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>>> iterator = settingsToRules
+				.entrySet().iterator();
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry1 = iterator.next();
+			assertEquals(fanSetting, entry1.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules1 = entry1.getValue();
+			assertEquals(1, conditionToRules1.keys().size());
+			assertEquals(1, conditionToRules1.values().size());
+			final Condition condition1 = conditionToRules1.keys().iterator().next();
+			assertEquals(rule.getCondition(), condition1);
+			assertEquals(rule, conditionToRules1.getValue(condition1));
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry2 = iterator.next();
+			assertEquals(merchandise1Setting, entry2.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules2 = entry2.getValue();
+			assertEquals(1, conditionToRules2.keys().size());
+			assertEquals(1, conditionToRules2.values().size());
+			final Condition condition2 = conditionToRules2.keys().iterator().next();
+			assertEquals(rule.getCondition(), condition2);
+			assertEquals(rule, conditionToRules2.getValue(condition2));
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry3 = iterator.next();
+			assertEquals(merchandise2Setting, entry3.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules3 = entry3.getValue();
+			assertEquals(1, conditionToRules3.keys().size());
+			assertEquals(1, conditionToRules3.values().size());
+			final Condition condition3 = conditionToRules3.keys().iterator().next();
+			assertEquals(rule.getCondition(), condition3);
+			assertEquals(rule, conditionToRules3.getValue(condition3));
+		}
+
+		// assert rulesToRenderables
+		{
+			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
+			assertEquals(1, rulesToRenderables.keys().size());
+			assertEquals(1, rulesToRenderables.values().size());
+			final ShowRule ruleKey = rulesToRenderables.keys().iterator().next();
+			assertEquals(rule, ruleKey);
+			assertEquals(control1, rulesToRenderables.getValue(ruleKey));
+		}
+
+		// assert conditionToSettings
+		{
+			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
+			assertEquals(1, conditionsToSettings.size());
+			final Entry<Condition, Set<UniqueSetting>> entry = conditionsToSettings.entrySet().iterator().next();
+			assertEquals(rule.getCondition(), entry.getKey());
+			assertEquals(3, entry.getValue().size());
+			final Iterator<UniqueSetting> iterator = entry.getValue().iterator();
+			assertEquals(fanSetting, iterator.next());
+			assertEquals(merchandise1Setting, iterator.next());
+			assertEquals(merchandise2Setting, iterator.next());
+		}
+	}
+
+	@Test
+	public void testInitTwoSimilarMultiRefRule() {
+		// setup
+		final ShowRule rule1 = addFanMerchandiseRule(control1);
+		final ShowRule rule2 = addFanMerchandiseRule(control2);
+
+		// act
+		initialize();
+
+		// assert settingsToRules
+		{
+			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
+			assertEquals(3, settingsToRules.size());
+			final Iterator<Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>>> iterator = settingsToRules
+				.entrySet().iterator();
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry1 = iterator.next();
+			assertEquals(fanSetting, entry1.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules1 = entry1.getValue();
+			assertEquals(2, conditionToRules1.keys().size());
+			assertEquals(2, conditionToRules1.values().size());
+			final Iterator<Condition> conditionToRulesIterator1 = conditionToRules1.keys().iterator();
+			final Condition condition11 = conditionToRulesIterator1.next();
+			assertEquals(rule1.getCondition(), condition11);
+			assertEquals(rule1, conditionToRules1.getValue(condition11));
+			final Condition condition12 = conditionToRulesIterator1.next();
+			assertEquals(rule2.getCondition(), condition12);
+			assertEquals(rule2, conditionToRules1.getValue(condition12));
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry2 = iterator.next();
+			assertEquals(merchandise1Setting, entry2.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules2 = entry2.getValue();
+			assertEquals(2, conditionToRules2.keys().size());
+			assertEquals(2, conditionToRules2.values().size());
+			final Iterator<Condition> conditionToRulesIterator2 = conditionToRules2.keys().iterator();
+			final Condition condition21 = conditionToRulesIterator2.next();
+			assertEquals(rule1.getCondition(), condition21);
+			assertEquals(rule1, conditionToRules2.getValue(condition21));
+			final Condition condition22 = conditionToRulesIterator2.next();
+			assertEquals(rule2.getCondition(), condition22);
+			assertEquals(rule2, conditionToRules2.getValue(condition22));
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry3 = iterator.next();
+			assertEquals(merchandise2Setting, entry3.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules3 = entry3.getValue();
+			assertEquals(2, conditionToRules3.keys().size());
+			assertEquals(2, conditionToRules3.values().size());
+			final Iterator<Condition> conditionToRulesIterator3 = conditionToRules3.keys().iterator();
+			final Condition condition31 = conditionToRulesIterator3.next();
+			assertEquals(rule1.getCondition(), condition31);
+			assertEquals(rule1, conditionToRules3.getValue(condition31));
+			final Condition condition32 = conditionToRulesIterator3.next();
+			assertEquals(rule2.getCondition(), condition32);
+			assertEquals(rule2, conditionToRules3.getValue(condition32));
+		}
+
+		// assert rulesToRenderables
+		{
+			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
+			assertEquals(2, rulesToRenderables.keys().size());
+			assertEquals(2, rulesToRenderables.values().size());
+			final Iterator<ShowRule> iterator = rulesToRenderables.keys().iterator();
+
+			final ShowRule ruleKey1 = iterator.next();
+			assertEquals(rule1, ruleKey1);
+			assertEquals(control1, rulesToRenderables.getValue(ruleKey1));
+
+			final ShowRule ruleKey2 = iterator.next();
+			assertEquals(rule2, ruleKey2);
+			assertEquals(control2, rulesToRenderables.getValue(ruleKey2));
+		}
+
+		// assert conditionToSettings
+		{
+			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
+			assertEquals(2, conditionsToSettings.size());
+			final Iterator<Entry<Condition, Set<UniqueSetting>>> iterator = conditionsToSettings.entrySet().iterator();
+
+			final Entry<Condition, Set<UniqueSetting>> entry1 = iterator.next();
+			assertEquals(rule1.getCondition(), entry1.getKey());
+			assertEquals(3, entry1.getValue().size());
+			assertTrue(entry1.getValue().contains(fanSetting));
+			assertTrue(entry1.getValue().contains(merchandise1Setting));
+			assertTrue(entry1.getValue().contains(merchandise2Setting));
+
+			final Entry<Condition, Set<UniqueSetting>> entry2 = iterator.next();
+			assertEquals(rule2.getCondition(), entry2.getKey());
+			assertEquals(3, entry2.getValue().size());
+			assertTrue(entry2.getValue().contains(fanSetting));
+			assertTrue(entry2.getValue().contains(merchandise1Setting));
+			assertTrue(entry2.getValue().contains(merchandise2Setting));
+		}
+	}
+
+	@Test
+	public void testInitOrMultiRefRule() {
+		// setup
+		final ShowRule rule = addFanMerchandiseOrRule(control1);
+		final OrCondition orCondition = (OrCondition) rule.getCondition();
+		final Condition condition1 = orCondition.getConditions().get(0);
+		final Condition condition2 = orCondition.getConditions().get(1);
+
+		// act
+		initialize();
+
+		// assert settingsToRules
+		{
+			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
+			assertEquals(3, settingsToRules.size());
+			final Iterator<Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>>> iterator = settingsToRules
+				.entrySet().iterator();
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry1 = iterator.next();
+			assertEquals(fanSetting, entry1.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules1 = entry1.getValue();
+			assertEquals(2, conditionToRules1.keys().size());
+			assertEquals(1, conditionToRules1.values().size());
+			assertTrue(conditionToRules1.keys().contains(condition1));
+			assertEquals(rule, conditionToRules1.getValue(condition1));
+			assertTrue(conditionToRules1.keys().contains(condition2));
+			assertEquals(rule, conditionToRules1.getValue(condition2));
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry2 = iterator.next();
+			assertEquals(merchandise1Setting, entry2.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules2 = entry2.getValue();
+			assertEquals(2, conditionToRules2.keys().size());
+			assertEquals(1, conditionToRules2.values().size());
+			assertTrue(conditionToRules2.keys().contains(condition1));
+			assertEquals(rule, conditionToRules2.getValue(condition1));
+			assertTrue(conditionToRules2.keys().contains(condition2));
+			assertEquals(rule, conditionToRules2.getValue(condition2));
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry3 = iterator.next();
+			assertEquals(merchandise2Setting, entry3.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules3 = entry3.getValue();
+			assertEquals(2, conditionToRules3.keys().size());
+			assertEquals(1, conditionToRules3.values().size());
+			assertTrue(conditionToRules3.keys().contains(condition1));
+			assertEquals(rule, conditionToRules3.getValue(condition1));
+			assertTrue(conditionToRules3.keys().contains(condition2));
+			assertEquals(rule, conditionToRules3.getValue(condition2));
+		}
+
+		// assert rulesToRenderables
+		{
+			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
+			assertEquals(1, rulesToRenderables.keys().size());
+			assertEquals(1, rulesToRenderables.values().size());
+			final ShowRule ruleKey = rulesToRenderables.keys().iterator().next();
+			assertEquals(rule, ruleKey);
+			assertEquals(control1, rulesToRenderables.getValue(ruleKey));
+		}
+
+		// assert conditionToSettings
+		{
+			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
+			assertEquals(2, conditionsToSettings.size());
+			final Iterator<Entry<Condition, Set<UniqueSetting>>> iterator = conditionsToSettings.entrySet().iterator();
+
+			final Entry<Condition, Set<UniqueSetting>> entry1 = iterator.next();
+			assertEquals(condition1, entry1.getKey());
+			assertEquals(3, entry1.getValue().size());
+			assertTrue(entry1.getValue().contains(fanSetting));
+			assertTrue(entry1.getValue().contains(merchandise1Setting));
+			assertTrue(entry1.getValue().contains(merchandise2Setting));
+
+			final Entry<Condition, Set<UniqueSetting>> entry2 = iterator.next();
+			assertEquals(condition2, entry2.getKey());
+			assertEquals(3, entry2.getValue().size());
+			assertTrue(entry2.getValue().contains(fanSetting));
+			assertTrue(entry2.getValue().contains(merchandise1Setting));
+			assertTrue(entry2.getValue().contains(merchandise2Setting));
+		}
+	}
+
+	@Test
+	public void testInitOneMultiRefRuleEmptyList() {
+		// setup
+		fan.getFanMerchandise().clear();
+		final ShowRule rule = addFanMerchandiseRule(control1);
+
+		// act
+		initialize();
+
+		// assert settingsToRules
+		{
+			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
+			assertEquals(1, settingsToRules.size());
+			final Iterator<Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>>> iterator = settingsToRules
+				.entrySet().iterator();
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry1 = iterator.next();
+			assertEquals(fanSetting, entry1.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules1 = entry1.getValue();
+			assertEquals(1, conditionToRules1.keys().size());
+			assertEquals(1, conditionToRules1.values().size());
+			final Condition condition1 = conditionToRules1.keys().iterator().next();
+			assertEquals(rule.getCondition(), condition1);
+			assertEquals(rule, conditionToRules1.getValue(condition1));
+		}
+
+		// assert rulesToRenderables
+		{
+			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
+			assertEquals(1, rulesToRenderables.keys().size());
+			assertEquals(1, rulesToRenderables.values().size());
+			final ShowRule ruleKey = rulesToRenderables.keys().iterator().next();
+			assertEquals(rule, ruleKey);
+			assertEquals(control1, rulesToRenderables.getValue(ruleKey));
+		}
+
+		// assert conditionToSettings
+		{
+			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
+			assertEquals(1, conditionsToSettings.size());
+			final Entry<Condition, Set<UniqueSetting>> entry = conditionsToSettings.entrySet().iterator().next();
+			assertEquals(rule.getCondition(), entry.getKey());
+			assertEquals(1, entry.getValue().size());
+			final Iterator<UniqueSetting> iterator = entry.getValue().iterator();
+			assertEquals(fanSetting, iterator.next());
+		}
+	}
+
+	@Test
+	public void testDynmicOneSingleRefRuleChangeDomain() {
+		// setup
+		final ShowRule rule = addFavMerchandiseRule(control1);
+		initialize();
+
+		// act
+		final Merchandise newMerchandise = BowlingFactory.eINSTANCE.createMerchandise();
+		fan.setFavouriteMerchandise(newMerchandise);
+		final UniqueSetting newSetting = UniqueSetting.createSetting(newMerchandise,
+			BowlingPackage.eINSTANCE.getMerchandise_Name());
+
+		// assert settingsToRules
+		{
+			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
+			assertEquals(1, settingsToRules.size());
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry = settingsToRules.entrySet()
+				.iterator()
+				.next();
+			assertEquals(newSetting, entry.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules = entry.getValue();
+			assertEquals(1, conditionToRules.keys().size());
+			assertEquals(1, conditionToRules.values().size());
+			final Condition condition = conditionToRules.keys().iterator().next();
+			assertEquals(rule.getCondition(), condition);
+			assertEquals(rule, conditionToRules.getValue(condition));
+		}
+
+		// assert rulesToRenderables
+		{
+			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
+			assertEquals(1, rulesToRenderables.keys().size());
+			assertEquals(1, rulesToRenderables.values().size());
+			final ShowRule ruleKey = rulesToRenderables.keys().iterator().next();
+			assertEquals(rule, ruleKey);
+			assertEquals(control1, rulesToRenderables.getValue(ruleKey));
+		}
+
+		// assert conditionToSettings
+		{
+			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
+			assertEquals(1, conditionsToSettings.size());
+			final Entry<Condition, Set<UniqueSetting>> entry = conditionsToSettings.entrySet().iterator().next();
+			assertEquals(rule.getCondition(), entry.getKey());
+			assertEquals(1, entry.getValue().size());
+			assertEquals(newSetting, entry.getValue().iterator().next());
+		}
+	}
+
+	@Test
+	public void testDynamicOneMultiRefRuleChangeDomainAdd() {
+		// setup
+		final ShowRule rule = addFanMerchandiseRule(control1);
+		initialize();
+
+		// act
+		final Merchandise newMerchandise = BowlingFactory.eINSTANCE.createMerchandise();
+		fan.getFanMerchandise().add(newMerchandise);
+		final UniqueSetting newSetting = UniqueSetting.createSetting(newMerchandise,
+			BowlingPackage.eINSTANCE.getMerchandise_Name());
+
+		// assert settingsToRules
+		{
+			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
+			assertEquals(4, settingsToRules.size());
+			final Iterator<Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>>> iterator = settingsToRules
+				.entrySet().iterator();
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry1 = iterator.next();
+			assertEquals(fanSetting, entry1.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules1 = entry1.getValue();
+			assertEquals(1, conditionToRules1.keys().size());
+			assertEquals(1, conditionToRules1.values().size());
+			final Condition condition1 = conditionToRules1.keys().iterator().next();
+			assertEquals(rule.getCondition(), condition1);
+			assertEquals(rule, conditionToRules1.getValue(condition1));
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry2 = iterator.next();
+			assertEquals(merchandise1Setting, entry2.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules2 = entry2.getValue();
+			assertEquals(1, conditionToRules2.keys().size());
+			assertEquals(1, conditionToRules2.values().size());
+			final Condition condition2 = conditionToRules2.keys().iterator().next();
+			assertEquals(rule.getCondition(), condition2);
+			assertEquals(rule, conditionToRules2.getValue(condition2));
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry3 = iterator.next();
+			assertEquals(merchandise2Setting, entry3.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules3 = entry3.getValue();
+			assertEquals(1, conditionToRules3.keys().size());
+			assertEquals(1, conditionToRules3.values().size());
+			final Condition condition3 = conditionToRules3.keys().iterator().next();
+			assertEquals(rule.getCondition(), condition3);
+			assertEquals(rule, conditionToRules3.getValue(condition3));
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry4 = iterator.next();
+			assertEquals(newSetting, entry4.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules4 = entry4.getValue();
+			assertEquals(1, conditionToRules4.keys().size());
+			assertEquals(1, conditionToRules4.values().size());
+			final Condition condition4 = conditionToRules4.keys().iterator().next();
+			assertEquals(rule.getCondition(), condition4);
+			assertEquals(rule, conditionToRules4.getValue(condition4));
+		}
+
+		// assert rulesToRenderables
+		{
+			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
+			assertEquals(1, rulesToRenderables.keys().size());
+			assertEquals(1, rulesToRenderables.values().size());
+			final ShowRule ruleKey = rulesToRenderables.keys().iterator().next();
+			assertEquals(rule, ruleKey);
+			assertEquals(control1, rulesToRenderables.getValue(ruleKey));
+		}
+
+		// assert conditionToSettings
+		{
+			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
+			assertEquals(1, conditionsToSettings.size());
+			final Entry<Condition, Set<UniqueSetting>> entry = conditionsToSettings.entrySet().iterator().next();
+			assertEquals(rule.getCondition(), entry.getKey());
+			assertEquals(4, entry.getValue().size());
+			final Iterator<UniqueSetting> iterator = entry.getValue().iterator();
+			assertEquals(fanSetting, iterator.next());
+			assertEquals(merchandise1Setting, iterator.next());
+			assertEquals(merchandise2Setting, iterator.next());
+			assertEquals(newSetting, iterator.next());
+		}
+	}
+
+	@Test
+	public void testDynamicOneMultiRefRuleChangeDomainRemove() {
+		// setup
+		final ShowRule rule = addFanMerchandiseRule(control1);
+		initialize();
+
+		// act
+		fan.getFanMerchandise().remove(1);
+
+		// assert settingsToRules
+		{
+			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
+			assertEquals(2, settingsToRules.size());
+			final Iterator<Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>>> iterator = settingsToRules
+				.entrySet().iterator();
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry1 = iterator.next();
+			assertEquals(fanSetting, entry1.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules1 = entry1.getValue();
+			assertEquals(1, conditionToRules1.keys().size());
+			assertEquals(1, conditionToRules1.values().size());
+			final Condition condition1 = conditionToRules1.keys().iterator().next();
+			assertEquals(rule.getCondition(), condition1);
+			assertEquals(rule, conditionToRules1.getValue(condition1));
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry2 = iterator.next();
+			assertEquals(merchandise1Setting, entry2.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules2 = entry2.getValue();
+			assertEquals(1, conditionToRules2.keys().size());
+			assertEquals(1, conditionToRules2.values().size());
+			final Condition condition2 = conditionToRules2.keys().iterator().next();
+			assertEquals(rule.getCondition(), condition2);
+			assertEquals(rule, conditionToRules2.getValue(condition2));
+		}
+
+		// assert rulesToRenderables
+		{
+			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
+			assertEquals(1, rulesToRenderables.keys().size());
+			assertEquals(1, rulesToRenderables.values().size());
+			final ShowRule ruleKey = rulesToRenderables.keys().iterator().next();
+			assertEquals(rule, ruleKey);
+			assertEquals(control1, rulesToRenderables.getValue(ruleKey));
+		}
+
+		// assert conditionToSettings
+		{
+			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
+			assertEquals(1, conditionsToSettings.size());
+			final Entry<Condition, Set<UniqueSetting>> entry = conditionsToSettings.entrySet().iterator().next();
+			assertEquals(rule.getCondition(), entry.getKey());
+			assertEquals(2, entry.getValue().size());
+			final Iterator<UniqueSetting> iterator = entry.getValue().iterator();
+			assertEquals(fanSetting, iterator.next());
+			assertEquals(merchandise1Setting, iterator.next());
+		}
+	}
+
+	@Test
+	public void testDynamicOneMultiRefRuleChangeDomainClear() {
+		// setup
+		final ShowRule rule = addFanMerchandiseRule(control1);
+		initialize();
+
+		// act
+		fan.getFanMerchandise().clear();
+
+		// assert settingsToRules
+		{
+			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
+			assertEquals(1, settingsToRules.size());
+			final Iterator<Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>>> iterator = settingsToRules
+				.entrySet().iterator();
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry1 = iterator.next();
+			assertEquals(fanSetting, entry1.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules1 = entry1.getValue();
+			assertEquals(1, conditionToRules1.keys().size());
+			assertEquals(1, conditionToRules1.values().size());
+			final Condition condition1 = conditionToRules1.keys().iterator().next();
+			assertEquals(rule.getCondition(), condition1);
+			assertEquals(rule, conditionToRules1.getValue(condition1));
+		}
+
+		// assert rulesToRenderables
+		{
+			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
+			assertEquals(1, rulesToRenderables.keys().size());
+			assertEquals(1, rulesToRenderables.values().size());
+			final ShowRule ruleKey = rulesToRenderables.keys().iterator().next();
+			assertEquals(rule, ruleKey);
+			assertEquals(control1, rulesToRenderables.getValue(ruleKey));
+		}
+
+		// assert conditionToSettings
+		{
+			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
+			assertEquals(1, conditionsToSettings.size());
+			final Entry<Condition, Set<UniqueSetting>> entry = conditionsToSettings.entrySet().iterator().next();
+			assertEquals(rule.getCondition(), entry.getKey());
+			assertEquals(1, entry.getValue().size());
+			final Iterator<UniqueSetting> iterator = entry.getValue().iterator();
+			assertEquals(fanSetting, iterator.next());
+		}
+	}
+
+	@Test
+	public void testDynamicOneMultiRefRuleChangeDomainUnaffected() {
+		// setup
+		final ShowRule rule = addFanMerchandiseRule(control1);
+		initialize();
+
+		// act
+		fan.getVisitedTournaments().add(BowlingFactory.eINSTANCE.createTournament());
+
+		// assert settingsToRules
+		{
+			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
+			assertEquals(3, settingsToRules.size());
+			final Iterator<Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>>> iterator = settingsToRules
+				.entrySet().iterator();
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry1 = iterator.next();
+			assertEquals(fanSetting, entry1.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules1 = entry1.getValue();
+			assertEquals(1, conditionToRules1.keys().size());
+			assertEquals(1, conditionToRules1.values().size());
+			final Condition condition1 = conditionToRules1.keys().iterator().next();
+			assertEquals(rule.getCondition(), condition1);
+			assertEquals(rule, conditionToRules1.getValue(condition1));
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry2 = iterator.next();
+			assertEquals(merchandise1Setting, entry2.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules2 = entry2.getValue();
+			assertEquals(1, conditionToRules2.keys().size());
+			assertEquals(1, conditionToRules2.values().size());
+			final Condition condition2 = conditionToRules2.keys().iterator().next();
+			assertEquals(rule.getCondition(), condition2);
+			assertEquals(rule, conditionToRules2.getValue(condition2));
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry3 = iterator.next();
+			assertEquals(merchandise2Setting, entry3.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules3 = entry3.getValue();
+			assertEquals(1, conditionToRules3.keys().size());
+			assertEquals(1, conditionToRules3.values().size());
+			final Condition condition3 = conditionToRules3.keys().iterator().next();
+			assertEquals(rule.getCondition(), condition3);
+			assertEquals(rule, conditionToRules3.getValue(condition3));
+		}
+
+		// assert rulesToRenderables
+		{
+			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
+			assertEquals(1, rulesToRenderables.keys().size());
+			assertEquals(1, rulesToRenderables.values().size());
+			final ShowRule ruleKey = rulesToRenderables.keys().iterator().next();
+			assertEquals(rule, ruleKey);
+			assertEquals(control1, rulesToRenderables.getValue(ruleKey));
+		}
+
+		// assert conditionToSettings
+		{
+			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
+			assertEquals(1, conditionsToSettings.size());
+			final Entry<Condition, Set<UniqueSetting>> entry = conditionsToSettings.entrySet().iterator().next();
+			assertEquals(rule.getCondition(), entry.getKey());
+			assertEquals(3, entry.getValue().size());
+			final Iterator<UniqueSetting> iterator = entry.getValue().iterator();
+			assertEquals(fanSetting, iterator.next());
+			assertEquals(merchandise1Setting, iterator.next());
+			assertEquals(merchandise2Setting, iterator.next());
+		}
+	}
+
+	@Test
+	public void testDynamicOneMultiRefRuleChangeDomainAddNonContainment() {
+		// setup
+		final ShowRule rule = RuleFactory.eINSTANCE.createShowRule();
+		final LeafCondition condition = RuleFactory.eINSTANCE.createLeafCondition();
+		final VFeaturePathDomainModelReference dmr = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
+		dmr.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_VisitedTournaments());
+		final VFeaturePathDomainModelReference valueDMR = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		valueDMR.setDomainModelEFeature(BowlingPackage.eINSTANCE.getTournament_PriceMoney());
+		condition.setExpectedValue(99.99);
+		condition.setDomainModelReference(dmr);
+		condition.setValueDomainModelReference(valueDMR);
+		rule.setCondition(condition);
+		control1.getAttachments().add(rule);
+
+		final Tournament tournament1 = BowlingFactory.eINSTANCE.createTournament();
+		fan.getVisitedTournaments().add(tournament1);
+
+		final UniqueSetting newSettingList = UniqueSetting.createSetting(fan,
+			BowlingPackage.eINSTANCE.getFan_VisitedTournaments());
+		final UniqueSetting newSettingLeaf1 = UniqueSetting.createSetting(tournament1,
+			BowlingPackage.eINSTANCE.getTournament_PriceMoney());
+
+		initialize();
+
+		// act
+		final Tournament tournament2 = BowlingFactory.eINSTANCE.createTournament();
+		fan.getVisitedTournaments().add(tournament2);
+		final UniqueSetting newSettingLeaf2 = UniqueSetting.createSetting(tournament2,
+			BowlingPackage.eINSTANCE.getTournament_PriceMoney());
+
+		// assert settingsToRules
+		{
+			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
+			assertEquals(3, settingsToRules.size());
+			final Iterator<Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>>> iterator = settingsToRules
+				.entrySet().iterator();
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry1 = iterator.next();
+			assertEquals(newSettingList, entry1.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules1 = entry1.getValue();
+			assertEquals(1, conditionToRules1.keys().size());
+			assertEquals(1, conditionToRules1.values().size());
+			final Condition condition1 = conditionToRules1.keys().iterator().next();
+			assertEquals(rule.getCondition(), condition1);
+			assertEquals(rule, conditionToRules1.getValue(condition1));
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry2 = iterator.next();
+			assertEquals(newSettingLeaf1, entry2.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules2 = entry2.getValue();
+			assertEquals(1, conditionToRules2.keys().size());
+			assertEquals(1, conditionToRules2.values().size());
+			final Condition condition2 = conditionToRules2.keys().iterator().next();
+			assertEquals(rule.getCondition(), condition2);
+			assertEquals(rule, conditionToRules2.getValue(condition2));
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry3 = iterator.next();
+			assertEquals(newSettingLeaf2, entry3.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules3 = entry3.getValue();
+			assertEquals(1, conditionToRules3.keys().size());
+			assertEquals(1, conditionToRules3.values().size());
+			final Condition condition3 = conditionToRules3.keys().iterator().next();
+			assertEquals(rule.getCondition(), condition3);
+			assertEquals(rule, conditionToRules3.getValue(condition3));
+		}
+
+		// assert rulesToRenderables
+		{
+			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
+			assertEquals(1, rulesToRenderables.keys().size());
+			assertEquals(1, rulesToRenderables.values().size());
+			final ShowRule ruleKey = rulesToRenderables.keys().iterator().next();
+			assertEquals(rule, ruleKey);
+			assertEquals(control1, rulesToRenderables.getValue(ruleKey));
+		}
+
+		// assert conditionToSettings
+		{
+			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
+			assertEquals(1, conditionsToSettings.size());
+			final Entry<Condition, Set<UniqueSetting>> entry = conditionsToSettings.entrySet().iterator().next();
+			assertEquals(rule.getCondition(), entry.getKey());
+			assertEquals(3, entry.getValue().size());
+			final Iterator<UniqueSetting> iterator = entry.getValue().iterator();
+			assertEquals(newSettingList, iterator.next());
+			assertEquals(newSettingLeaf1, iterator.next());
+			assertEquals(newSettingLeaf2, iterator.next());
+		}
+	}
+
+	@Test
+	public void testDynamicOneSingleRefRuleRemoveRule() {
+		// setup
+		addFavMerchandiseRule(control1);
+		initialize();
+
+		// act
+		control1.getAttachments().clear();
+
+		// assert settingsToRules
+		{
+			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
+			assertEquals(0, settingsToRules.size());
+		}
+
+		// assert rulesToRenderables
+		{
+			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
+			assertEquals(0, rulesToRenderables.keys().size());
+			assertEquals(0, rulesToRenderables.values().size());
+		}
+
+		// assert conditionToSettings
+		{
+			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
+			assertEquals(0, conditionsToSettings.size());
+		}
+	}
+
+	@Test
+	public void testDynamicTwoSimilarSingleRefRuleRemoveOneRule() {
+		// setup
+		final ShowRule rule1 = addFavMerchandiseRule(control1);
+		addFavMerchandiseRule(control2);
+		initialize();
+
+		// act
+		control2.getAttachments().clear();
+
+		// assert settingsToRules
+		{
+			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
+			assertEquals(1, settingsToRules.size());
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry = settingsToRules.entrySet()
+				.iterator().next();
+			assertEquals(favMerchandiseSetting, entry.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules = entry.getValue();
+			assertEquals(1, conditionToRules.keys().size());
+			assertEquals(1, conditionToRules.values().size());
+			final Iterator<Condition> iterator = conditionToRules.keys().iterator();
+			final Condition condition1 = iterator.next();
+			assertEquals(rule1.getCondition(), condition1);
+			assertEquals(rule1, conditionToRules.getValue(condition1));
+		}
+
+		// assert rulesToRenderables
+		{
+			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
+			assertEquals(1, rulesToRenderables.keys().size());
+			assertEquals(1, rulesToRenderables.values().size());
+			final Iterator<ShowRule> iterator = rulesToRenderables.keys().iterator();
+			final ShowRule ruleKey1 = iterator.next();
+			assertEquals(rule1, ruleKey1);
+			assertEquals(control1, rulesToRenderables.getValue(ruleKey1));
+		}
+
+		// assert conditionToSettings
+		{
+			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
+			assertEquals(1, conditionsToSettings.size());
+			final Iterator<Entry<Condition, Set<UniqueSetting>>> iterator = conditionsToSettings.entrySet().iterator();
+			final Entry<Condition, Set<UniqueSetting>> entry1 = iterator.next();
+			assertEquals(rule1.getCondition(), entry1.getKey());
+			assertEquals(1, entry1.getValue().size());
+			assertEquals(favMerchandiseSetting, entry1.getValue().iterator().next());
+		}
+	}
+
+	@Test
+	public void testDynmicOneMultiRefRuleRemoveRule() {
+		// setup
+		addFanMerchandiseRule(control1);
+		initialize();
+
+		// act
+		control1.getAttachments().clear();
+
+		// assert settingsToRules
+		{
+			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
+			assertEquals(0, settingsToRules.size());
+		}
+
+		// assert rulesToRenderables
+		{
+			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
+			assertEquals(0, rulesToRenderables.keys().size());
+			assertEquals(0, rulesToRenderables.values().size());
+		}
+
+		// assert conditionToSettings
+		{
+			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
+			assertEquals(0, conditionsToSettings.size());
+		}
+	}
+
+	@Test
+	public void testDynamicTwoSimilarMultiRefRuleRemoveOneRule() {
+		// setup
+		final ShowRule rule1 = addFanMerchandiseRule(control1);
+		addFanMerchandiseRule(control2);
+		initialize();
+
+		// act
+		control2.getAttachments().clear();
+
+		// assert settingsToRules
+		{
+			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
+			assertEquals(3, settingsToRules.size());
+			final Iterator<Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>>> iterator = settingsToRules
+				.entrySet().iterator();
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry1 = iterator.next();
+			assertEquals(fanSetting, entry1.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules1 = entry1.getValue();
+			assertEquals(1, conditionToRules1.keys().size());
+			assertEquals(1, conditionToRules1.values().size());
+			final Iterator<Condition> conditionToRulesIterator1 = conditionToRules1.keys().iterator();
+			final Condition condition11 = conditionToRulesIterator1.next();
+			assertEquals(rule1.getCondition(), condition11);
+			assertEquals(rule1, conditionToRules1.getValue(condition11));
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry2 = iterator.next();
+			assertEquals(merchandise1Setting, entry2.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules2 = entry2.getValue();
+			assertEquals(1, conditionToRules2.keys().size());
+			assertEquals(1, conditionToRules2.values().size());
+			final Iterator<Condition> conditionToRulesIterator2 = conditionToRules2.keys().iterator();
+			final Condition condition21 = conditionToRulesIterator2.next();
+			assertEquals(rule1.getCondition(), condition21);
+			assertEquals(rule1, conditionToRules2.getValue(condition21));
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry3 = iterator.next();
+			assertEquals(merchandise2Setting, entry3.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules3 = entry3.getValue();
+			assertEquals(1, conditionToRules3.keys().size());
+			assertEquals(1, conditionToRules3.values().size());
+			final Iterator<Condition> conditionToRulesIterator3 = conditionToRules3.keys().iterator();
+			final Condition condition31 = conditionToRulesIterator3.next();
+			assertEquals(rule1.getCondition(), condition31);
+			assertEquals(rule1, conditionToRules3.getValue(condition31));
+		}
+
+		// assert rulesToRenderables
+		{
+			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
+			assertEquals(1, rulesToRenderables.keys().size());
+			assertEquals(1, rulesToRenderables.values().size());
+			final Iterator<ShowRule> iterator = rulesToRenderables.keys().iterator();
+
+			final ShowRule ruleKey1 = iterator.next();
+			assertEquals(rule1, ruleKey1);
+			assertEquals(control1, rulesToRenderables.getValue(ruleKey1));
+		}
+
+		// assert conditionToSettings
+		{
+			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
+			assertEquals(1, conditionsToSettings.size());
+			final Iterator<Entry<Condition, Set<UniqueSetting>>> iterator = conditionsToSettings.entrySet().iterator();
+
+			final Entry<Condition, Set<UniqueSetting>> entry1 = iterator.next();
+			assertEquals(rule1.getCondition(), entry1.getKey());
+			assertEquals(3, entry1.getValue().size());
+			assertTrue(entry1.getValue().contains(fanSetting));
+			assertTrue(entry1.getValue().contains(merchandise1Setting));
+			assertTrue(entry1.getValue().contains(merchandise2Setting));
+		}
+	}
+
+	@Test
+	public void testDynmicOneSingleRefRuleChangeCondition() {
+		// setup
+		final ShowRule rule = addFavMerchandiseRule(control1);
+		initialize();
+
+		// act
+		final LeafCondition leafCondition = (LeafCondition) rule.getCondition();
+		final VFeaturePathDomainModelReference reference = (VFeaturePathDomainModelReference) leafCondition
+			.getDomainModelReference();
+		reference.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_SerialNumber());
+		leafCondition.setExpectedValue(1234567890);
+		final UniqueSetting newSetting = UniqueSetting.createSetting(favMerchandise,
+			BowlingPackage.eINSTANCE.getMerchandise_SerialNumber());
+
+		// assert settingsToRules
+		{
+			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
+			assertEquals(1, settingsToRules.size());
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry = settingsToRules.entrySet()
+				.iterator()
+				.next();
+			assertEquals(newSetting, entry.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules = entry.getValue();
+			assertEquals(1, conditionToRules.keys().size());
+			assertEquals(1, conditionToRules.values().size());
+			final Condition condition = conditionToRules.keys().iterator().next();
+			assertEquals(rule.getCondition(), condition);
+			assertEquals(rule, conditionToRules.getValue(condition));
+		}
+
+		// assert rulesToRenderables
+		{
+			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
+			assertEquals(1, rulesToRenderables.keys().size());
+			assertEquals(1, rulesToRenderables.values().size());
+			final ShowRule ruleKey = rulesToRenderables.keys().iterator().next();
+			assertEquals(rule, ruleKey);
+			assertEquals(control1, rulesToRenderables.getValue(ruleKey));
+		}
+
+		// assert conditionToSettings
+		{
+			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
+			assertEquals(1, conditionsToSettings.size());
+			final Entry<Condition, Set<UniqueSetting>> entry = conditionsToSettings.entrySet().iterator().next();
+			assertEquals(rule.getCondition(), entry.getKey());
+			assertEquals(1, entry.getValue().size());
+			assertEquals(newSetting, entry.getValue().iterator().next());
+		}
+	}
+
+	@Test
+	public void testDynamicTwoSimilarSingleRefRuleChangeOneCondition() {
+		// setup
+		final ShowRule rule1 = addFavMerchandiseRule(control1);
+		final ShowRule rule2 = addFavMerchandiseRule(control2);
+		initialize();
+
+		// act
+		final LeafCondition leafCondition = (LeafCondition) rule2.getCondition();
+		final VFeaturePathDomainModelReference reference = (VFeaturePathDomainModelReference) leafCondition
+			.getDomainModelReference();
+		reference.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_SerialNumber());
+		leafCondition.setExpectedValue(1234567890);
+		final UniqueSetting newSetting = UniqueSetting.createSetting(favMerchandise,
+			BowlingPackage.eINSTANCE.getMerchandise_SerialNumber());
+
+		// assert settingsToRules
+		{
+			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
+			assertEquals(2, settingsToRules.size());
+
+			assertTrue(settingsToRules.containsKey(favMerchandiseSetting));
+			final BidirectionalMap<Condition, ShowRule> conditionToRules1 = settingsToRules.get(favMerchandiseSetting);
+			assertEquals(1, conditionToRules1.keys().size());
+			assertEquals(1, conditionToRules1.values().size());
+			final Iterator<Condition> iterator1 = conditionToRules1.keys().iterator();
+			final Condition condition1 = iterator1.next();
+			assertEquals(rule1.getCondition(), condition1);
+			assertEquals(rule1, conditionToRules1.getValue(condition1));
+
+			assertTrue(settingsToRules.containsKey(newSetting));
+			final BidirectionalMap<Condition, ShowRule> conditionToRules2 = settingsToRules.get(newSetting);
+			assertEquals(1, conditionToRules2.keys().size());
+			assertEquals(1, conditionToRules2.values().size());
+			final Iterator<Condition> iterator2 = conditionToRules2.keys().iterator();
+			final Condition condition2 = iterator2.next();
+			assertEquals(rule2.getCondition(), condition2);
+			assertEquals(rule2, conditionToRules2.getValue(condition2));
+		}
+
+		// assert rulesToRenderables
+		{
+			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
+			assertEquals(2, rulesToRenderables.keys().size());
+			assertEquals(2, rulesToRenderables.values().size());
+			final Iterator<ShowRule> iterator = rulesToRenderables.keys().iterator();
+			final ShowRule ruleKey1 = iterator.next();
+			assertEquals(rule1, ruleKey1);
+			assertEquals(control1, rulesToRenderables.getValue(ruleKey1));
+			final ShowRule ruleKey2 = iterator.next();
+			assertEquals(rule2, ruleKey2);
+			assertEquals(control2, rulesToRenderables.getValue(ruleKey2));
+		}
+
+		// assert conditionToSettings
+		{
+			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
+			assertEquals(2, conditionsToSettings.size());
+			final Iterator<Entry<Condition, Set<UniqueSetting>>> iterator = conditionsToSettings.entrySet().iterator();
+			final Entry<Condition, Set<UniqueSetting>> entry1 = iterator.next();
+			assertEquals(rule1.getCondition(), entry1.getKey());
+			assertEquals(1, entry1.getValue().size());
+			assertEquals(favMerchandiseSetting, entry1.getValue().iterator().next());
+			final Entry<Condition, Set<UniqueSetting>> entry2 = iterator.next();
+			assertEquals(rule2.getCondition(), entry2.getKey());
+			assertEquals(1, entry2.getValue().size());
+			assertEquals(newSetting, entry2.getValue().iterator().next());
+		}
+	}
+
+	@Test
+	public void testDynamicOneMultiRefRuleChangeConditionToOtherMultiRef() {
+		// setup
+		final ShowRule rule = addFanMerchandiseRule(control1);
+		initialize();
+
+		// act
+		final Tournament tournament = BowlingFactory.eINSTANCE.createTournament();
+		fan.getVisitedTournaments().add(tournament);
+
+		final LeafCondition leafCondition = (LeafCondition) rule.getCondition();
+		final VFeaturePathDomainModelReference reference = (VFeaturePathDomainModelReference) leafCondition
+			.getDomainModelReference();
+		reference.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_VisitedTournaments());
+		final VFeaturePathDomainModelReference valueDMR = (VFeaturePathDomainModelReference) leafCondition
+			.getValueDomainModelReference();
+		valueDMR.setDomainModelEFeature(BowlingPackage.eINSTANCE.getTournament_PriceMoney());
+		leafCondition.setExpectedValue(99.99);
+
+		final UniqueSetting newSettingList = UniqueSetting.createSetting(fan,
+			BowlingPackage.eINSTANCE.getFan_VisitedTournaments());
+		final UniqueSetting newSettingLeaf = UniqueSetting.createSetting(tournament,
+			BowlingPackage.eINSTANCE.getTournament_PriceMoney());
+
+		// assert settingsToRules
+		{
+			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
+			assertEquals(2, settingsToRules.size());
+			final Iterator<Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>>> iterator = settingsToRules
+				.entrySet().iterator();
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry1 = iterator.next();
+			assertEquals(newSettingList, entry1.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules1 = entry1.getValue();
+			assertEquals(1, conditionToRules1.keys().size());
+			assertEquals(1, conditionToRules1.values().size());
+			final Condition condition1 = conditionToRules1.keys().iterator().next();
+			assertEquals(rule.getCondition(), condition1);
+			assertEquals(rule, conditionToRules1.getValue(condition1));
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry2 = iterator.next();
+			assertEquals(newSettingLeaf, entry2.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules2 = entry2.getValue();
+			assertEquals(1, conditionToRules2.keys().size());
+			assertEquals(1, conditionToRules2.values().size());
+			final Condition condition2 = conditionToRules2.keys().iterator().next();
+			assertEquals(rule.getCondition(), condition2);
+			assertEquals(rule, conditionToRules2.getValue(condition2));
+		}
+
+		// assert rulesToRenderables
+		{
+			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
+			assertEquals(1, rulesToRenderables.keys().size());
+			assertEquals(1, rulesToRenderables.values().size());
+			final ShowRule ruleKey = rulesToRenderables.keys().iterator().next();
+			assertEquals(rule, ruleKey);
+			assertEquals(control1, rulesToRenderables.getValue(ruleKey));
+		}
+
+		// assert conditionToSettings
+		{
+			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
+			assertEquals(1, conditionsToSettings.size());
+			final Entry<Condition, Set<UniqueSetting>> entry = conditionsToSettings.entrySet().iterator().next();
+			assertEquals(rule.getCondition(), entry.getKey());
+			assertEquals(2, entry.getValue().size());
+			final Iterator<UniqueSetting> iterator = entry.getValue().iterator();
+			assertEquals(newSettingList, iterator.next());
+			assertEquals(newSettingLeaf, iterator.next());
+		}
+	}
+
+	@Test
+	public void testDynamicTwoSimilarMultiRefRuleChangeOneConditionNoNonMulti() {
+		// setup
+		final ShowRule rule1 = addFanMerchandiseRule(control1);
+		final ShowRule rule2 = addFanMerchandiseRule(control2);
+		initialize();
+
+		// act
+		final LeafCondition leafCondition = (LeafCondition) rule2.getCondition();
+		final VFeaturePathDomainModelReference reference = (VFeaturePathDomainModelReference) leafCondition
+			.getDomainModelReference();
+		reference.getDomainModelEReferencePath().clear();
+		reference.getDomainModelEReferencePath().add(BowlingPackage.eINSTANCE.getFan_FavouriteMerchandise());
+		reference.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_SerialNumber());
+		leafCondition.setExpectedValue(1234567890);
+		final UniqueSetting newSetting = UniqueSetting.createSetting(favMerchandise,
+			BowlingPackage.eINSTANCE.getMerchandise_SerialNumber());
+
+		// assert settingsToRules
+		{
+			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
+			assertEquals(4, settingsToRules.size());
+			final Iterator<Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>>> iterator = settingsToRules
+				.entrySet().iterator();
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry1 = iterator.next();
+			assertEquals(fanSetting, entry1.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules1 = entry1.getValue();
+			assertEquals(1, conditionToRules1.keys().size());
+			assertEquals(1, conditionToRules1.values().size());
+			final Iterator<Condition> conditionToRulesIterator1 = conditionToRules1.keys().iterator();
+			final Condition condition11 = conditionToRulesIterator1.next();
+			assertEquals(rule1.getCondition(), condition11);
+			assertEquals(rule1, conditionToRules1.getValue(condition11));
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry2 = iterator.next();
+			assertEquals(merchandise1Setting, entry2.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules2 = entry2.getValue();
+			assertEquals(1, conditionToRules2.keys().size());
+			assertEquals(1, conditionToRules2.values().size());
+			final Iterator<Condition> conditionToRulesIterator2 = conditionToRules2.keys().iterator();
+			final Condition condition21 = conditionToRulesIterator2.next();
+			assertEquals(rule1.getCondition(), condition21);
+			assertEquals(rule1, conditionToRules2.getValue(condition21));
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry3 = iterator.next();
+			assertEquals(merchandise2Setting, entry3.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules3 = entry3.getValue();
+			assertEquals(1, conditionToRules3.keys().size());
+			assertEquals(1, conditionToRules3.values().size());
+			final Iterator<Condition> conditionToRulesIterator3 = conditionToRules3.keys().iterator();
+			final Condition condition31 = conditionToRulesIterator3.next();
+			assertEquals(rule1.getCondition(), condition31);
+			assertEquals(rule1, conditionToRules3.getValue(condition31));
+
+			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry4 = iterator.next();
+			assertEquals(newSetting, entry4.getKey());
+			final BidirectionalMap<Condition, ShowRule> conditionToRules4 = entry4.getValue();
+			assertEquals(1, conditionToRules4.keys().size());
+			assertEquals(1, conditionToRules4.values().size());
+			final Iterator<Condition> conditionToRulesIterator4 = conditionToRules4.keys().iterator();
+			final Condition condition41 = conditionToRulesIterator4.next();
+			assertEquals(rule2.getCondition(), condition41);
+			assertEquals(rule2, conditionToRules4.getValue(condition41));
+		}
+
+		// assert rulesToRenderables
+		{
+			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
+			assertEquals(2, rulesToRenderables.keys().size());
+			assertEquals(2, rulesToRenderables.values().size());
+			final Iterator<ShowRule> iterator = rulesToRenderables.keys().iterator();
+
+			final ShowRule ruleKey1 = iterator.next();
+			assertEquals(rule1, ruleKey1);
+			assertEquals(control1, rulesToRenderables.getValue(ruleKey1));
+
+			final ShowRule ruleKey2 = iterator.next();
+			assertEquals(rule2, ruleKey2);
+			assertEquals(control2, rulesToRenderables.getValue(ruleKey2));
+		}
+
+		// assert conditionToSettings
+		{
+			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
+			assertEquals(2, conditionsToSettings.size());
+			final Iterator<Entry<Condition, Set<UniqueSetting>>> iterator = conditionsToSettings.entrySet().iterator();
+
+			final Entry<Condition, Set<UniqueSetting>> entry1 = iterator.next();
+			assertEquals(rule1.getCondition(), entry1.getKey());
+			assertEquals(3, entry1.getValue().size());
+			assertTrue(entry1.getValue().contains(fanSetting));
+			assertTrue(entry1.getValue().contains(merchandise1Setting));
+			assertTrue(entry1.getValue().contains(merchandise2Setting));
+
+			final Entry<Condition, Set<UniqueSetting>> entry2 = iterator.next();
+			assertEquals(rule2.getCondition(), entry2.getKey());
+			assertEquals(1, entry2.getValue().size());
+			assertTrue(entry2.getValue().contains(newSetting));
+		}
+	}
+
+}// END COMPLEX CODE
diff --git a/tests/org.eclipse.emf.ecp.view.rule.test/src/org/eclipse/emf/ecp/view/rule/test/RuleRegistry_Test.java b/tests/org.eclipse.emf.ecp.view.rule.test/src/org/eclipse/emf/ecp/view/rule/test/RuleRegistry_Test.java
deleted file mode 100644
index 30bdfbe..0000000
--- a/tests/org.eclipse.emf.ecp.view.rule.test/src/org/eclipse/emf/ecp/view/rule/test/RuleRegistry_Test.java
+++ /dev/null
@@ -1,1542 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * jfaltermeier - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.rule.test;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.lang.reflect.Field;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import org.eclipse.emf.ecp.common.spi.BidirectionalMap;
-import org.eclipse.emf.ecp.common.spi.UniqueSetting;
-import org.eclipse.emf.ecp.view.internal.rule.RuleRegistry;
-import org.eclipse.emf.ecp.view.internal.rule.RuleService;
-import org.eclipse.emf.ecp.view.spi.context.ViewModelContextFactory;
-import org.eclipse.emf.ecp.view.spi.model.VControl;
-import org.eclipse.emf.ecp.view.spi.model.VElement;
-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.rule.model.Condition;
-import org.eclipse.emf.ecp.view.spi.rule.model.LeafCondition;
-import org.eclipse.emf.ecp.view.spi.rule.model.OrCondition;
-import org.eclipse.emf.ecp.view.spi.rule.model.RuleFactory;
-import org.eclipse.emf.ecp.view.spi.rule.model.ShowRule;
-import org.eclipse.emf.emfstore.bowling.BowlingFactory;
-import org.eclipse.emf.emfstore.bowling.BowlingPackage;
-import org.eclipse.emf.emfstore.bowling.Fan;
-import org.eclipse.emf.emfstore.bowling.Merchandise;
-import org.eclipse.emf.emfstore.bowling.Tournament;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests that assert that the {@link RuleRegistry}'s maps are updated correctly, especially on deletes.
- *
- * @author jfaltermeier
- *
- */
-public class RuleRegistry_Test {
-	// assertions are pretty complex
-	// BEGIN COMPLEX CODE
-	private static final String CONDITION_TO_SETTINGS_FIELD_NAME = "conditionToSettings";
-	private static final String RULES_TO_RENDERABLES_FIELD_NAME = "rulesToRenderables";
-	private static final String SETTING_TO_RULES_FIELD_NAME = "settingToRules";
-	private static final String REFLECTION_FAIL_FIX_TEST_SETUP = "Reflection fail. Fix test setup!";
-	private static final String SHOW_RULE_REGISTRY_FIELD_NAME = "showRuleRegistry";
-	private static final String FM_RIGHT = "Bowling Ball";
-	private static final String M2_RIGHT = "Shirt";
-	private static final String M1_RIGHT = "Scarf";
-
-	private RuleService ruleService;
-
-	private Fan fan;
-	private Merchandise merchandise1;
-	private Merchandise merchandise2;
-	private Merchandise favMerchandise;
-
-	private UniqueSetting favMerchandiseSetting;
-	private UniqueSetting merchandise1Setting;
-	private UniqueSetting merchandise2Setting;
-	private UniqueSetting fanSetting;
-
-	private VView view;
-	private VControl control1;
-	private VControl control2;
-
-	@Before
-	public void setUp() {
-		ruleService = new RuleService();
-		createView();
-		createDomainObject();
-	}
-
-	private void createDomainObject() {
-		fan = BowlingFactory.eINSTANCE.createFan();
-
-		merchandise1 = BowlingFactory.eINSTANCE.createMerchandise();
-		merchandise1.setName(M1_RIGHT);
-		merchandise1Setting = UniqueSetting.createSetting(merchandise1, BowlingPackage.eINSTANCE.getMerchandise_Name());
-
-		merchandise2 = BowlingFactory.eINSTANCE.createMerchandise();
-		merchandise2.setName(M2_RIGHT);
-		merchandise2Setting = UniqueSetting.createSetting(merchandise2, BowlingPackage.eINSTANCE.getMerchandise_Name());
-
-		favMerchandise = BowlingFactory.eINSTANCE.createMerchandise();
-		favMerchandise.setName(FM_RIGHT);
-		favMerchandiseSetting = UniqueSetting.createSetting(favMerchandise,
-			BowlingPackage.eINSTANCE.getMerchandise_Name());
-
-		fan.setFavouriteMerchandise(favMerchandise);
-		fan.getFanMerchandise().add(merchandise1);
-		fan.getFanMerchandise().add(merchandise2);
-		fanSetting = UniqueSetting.createSetting(fan, BowlingPackage.eINSTANCE.getFan_FanMerchandise());
-	}
-
-	private void createView() {
-		view = VViewFactory.eINSTANCE.createView();
-
-		control1 = VViewFactory.eINSTANCE.createControl();
-		control1.setDomainModelReference(BowlingPackage.eINSTANCE.getFan_DateOfBirth());
-
-		control2 = VViewFactory.eINSTANCE.createControl();
-		control2.setDomainModelReference(BowlingPackage.eINSTANCE.getFan_EMails());
-
-		view.getChildren().add(control1);
-		view.getChildren().add(control2);
-	}
-
-	private void initialize() {
-		ViewModelContextFactory.INSTANCE.createViewModelContext(view, fan, ruleService);
-	}
-
-	private static ShowRule addFavMerchandiseRule(VElement element) {
-		final ShowRule rule = RuleFactory.eINSTANCE.createShowRule();
-
-		final LeafCondition condition = RuleFactory.eINSTANCE.createLeafCondition();
-
-		final VFeaturePathDomainModelReference dmr = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
-		dmr.getDomainModelEReferencePath().add(BowlingPackage.eINSTANCE.getFan_FavouriteMerchandise());
-		dmr.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_Name());
-
-		condition.setExpectedValue(FM_RIGHT);
-		condition.setDomainModelReference(dmr);
-		rule.setCondition(condition);
-
-		element.getAttachments().add(rule);
-
-		return rule;
-	}
-
-	private static ShowRule addFanMerchandiseRule(VElement element) {
-		final ShowRule rule = RuleFactory.eINSTANCE.createShowRule();
-
-		final LeafCondition condition = RuleFactory.eINSTANCE.createLeafCondition();
-
-		final VFeaturePathDomainModelReference dmr = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
-		dmr.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_FanMerchandise());
-
-		final VFeaturePathDomainModelReference valueDMR = VViewFactory.eINSTANCE
-			.createFeaturePathDomainModelReference();
-		valueDMR.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_Name());
-
-		condition.setExpectedValue(M1_RIGHT);
-		condition.setDomainModelReference(dmr);
-		condition.setValueDomainModelReference(valueDMR);
-		rule.setCondition(condition);
-
-		element.getAttachments().add(rule);
-
-		return rule;
-	}
-
-	private static ShowRule addFanMerchandiseOrRule(VElement element) {
-		final ShowRule rule = RuleFactory.eINSTANCE.createShowRule();
-
-		final OrCondition condition = RuleFactory.eINSTANCE.createOrCondition();
-
-		final LeafCondition condition1 = RuleFactory.eINSTANCE.createLeafCondition();
-		final VFeaturePathDomainModelReference dmr1 = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
-		dmr1.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_FanMerchandise());
-		final VFeaturePathDomainModelReference valueDMR1 = VViewFactory.eINSTANCE
-			.createFeaturePathDomainModelReference();
-		valueDMR1.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_Name());
-		condition1.setExpectedValue(M1_RIGHT);
-		condition1.setDomainModelReference(dmr1);
-		condition1.setValueDomainModelReference(valueDMR1);
-
-		final LeafCondition condition2 = RuleFactory.eINSTANCE.createLeafCondition();
-		final VFeaturePathDomainModelReference dmr2 = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
-		dmr2.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_FanMerchandise());
-		final VFeaturePathDomainModelReference valueDMR2 = VViewFactory.eINSTANCE
-			.createFeaturePathDomainModelReference();
-		valueDMR2.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_Name());
-		condition2.setExpectedValue(M2_RIGHT);
-		condition2.setDomainModelReference(dmr2);
-		condition2.setValueDomainModelReference(valueDMR2);
-
-		condition.getConditions().add(condition1);
-		condition.getConditions().add(condition2);
-
-		rule.setCondition(condition);
-
-		element.getAttachments().add(rule);
-
-		return rule;
-	}
-
-	private Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> getSettingsToRules() {
-		try {
-			final RuleRegistry<ShowRule> ruleRegistry = getRuleRegistry();
-
-			final Field field = ruleRegistry.getClass().getDeclaredField(SETTING_TO_RULES_FIELD_NAME);
-			field.setAccessible(true);
-			@SuppressWarnings("unchecked")
-			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> result = (Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>>) field
-				.get(ruleRegistry);
-			return result;
-		} catch (final SecurityException ex) {
-		} catch (final NoSuchFieldException ex) {
-		} catch (final IllegalArgumentException ex) {
-		} catch (final IllegalAccessException ex) {
-		}
-		fail(REFLECTION_FAIL_FIX_TEST_SETUP);
-		return null;
-	}
-
-	private BidirectionalMap<ShowRule, VElement> getRulesToRenderables() {
-		try {
-			final RuleRegistry<ShowRule> ruleRegistry = getRuleRegistry();
-
-			final Field field = ruleRegistry.getClass().getDeclaredField(RULES_TO_RENDERABLES_FIELD_NAME);
-			field.setAccessible(true);
-			@SuppressWarnings("unchecked")
-			final BidirectionalMap<ShowRule, VElement> result = (BidirectionalMap<ShowRule, VElement>) field
-				.get(ruleRegistry);
-			return result;
-		} catch (final SecurityException ex) {
-		} catch (final NoSuchFieldException ex) {
-		} catch (final IllegalArgumentException ex) {
-		} catch (final IllegalAccessException ex) {
-		}
-		fail(REFLECTION_FAIL_FIX_TEST_SETUP);
-		return null;
-	}
-
-	private Map<Condition, Set<UniqueSetting>> getConditionsToSettings() {
-		try {
-			final RuleRegistry<ShowRule> ruleRegistry = getRuleRegistry();
-
-			final Field field = ruleRegistry.getClass().getDeclaredField(CONDITION_TO_SETTINGS_FIELD_NAME);
-			field.setAccessible(true);
-			@SuppressWarnings("unchecked")
-			final Map<Condition, Set<UniqueSetting>> result = (Map<Condition, Set<UniqueSetting>>) field
-				.get(ruleRegistry);
-			return result;
-		} catch (final SecurityException ex) {
-		} catch (final NoSuchFieldException ex) {
-		} catch (final IllegalArgumentException ex) {
-		} catch (final IllegalAccessException ex) {
-		}
-		fail(REFLECTION_FAIL_FIX_TEST_SETUP);
-		return null;
-	}
-
-	private RuleRegistry<ShowRule> getRuleRegistry() {
-		try {
-			final Field field = ruleService.getClass().getDeclaredField(SHOW_RULE_REGISTRY_FIELD_NAME);
-			field.setAccessible(true);
-			@SuppressWarnings("unchecked")
-			final RuleRegistry<ShowRule> result = (RuleRegistry<ShowRule>) field.get(ruleService);
-			return result;
-		} catch (final SecurityException ex) {
-		} catch (final NoSuchFieldException ex) {
-		} catch (final IllegalArgumentException ex) {
-		} catch (final IllegalAccessException ex) {
-		}
-		fail(REFLECTION_FAIL_FIX_TEST_SETUP);
-		return null;
-	}
-
-	@Test
-	public void testInitOneSingleRefRule() {
-		// setup
-		final ShowRule rule = addFavMerchandiseRule(control1);
-
-		// act
-		initialize();
-
-		// assert settingsToRules
-		{
-			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
-			assertEquals(1, settingsToRules.size());
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry = settingsToRules.entrySet()
-				.iterator()
-				.next();
-			assertEquals(favMerchandiseSetting, entry.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules = entry.getValue();
-			assertEquals(1, conditionToRules.keys().size());
-			assertEquals(1, conditionToRules.values().size());
-			final Condition condition = conditionToRules.keys().iterator().next();
-			assertEquals(rule.getCondition(), condition);
-			assertEquals(rule, conditionToRules.getValue(condition));
-		}
-
-		// assert rulesToRenderables
-		{
-			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
-			assertEquals(1, rulesToRenderables.keys().size());
-			assertEquals(1, rulesToRenderables.values().size());
-			final ShowRule ruleKey = rulesToRenderables.keys().iterator().next();
-			assertEquals(rule, ruleKey);
-			assertEquals(control1, rulesToRenderables.getValue(ruleKey));
-		}
-
-		// assert conditionToSettings
-		{
-			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
-			assertEquals(1, conditionsToSettings.size());
-			final Entry<Condition, Set<UniqueSetting>> entry = conditionsToSettings.entrySet().iterator().next();
-			assertEquals(rule.getCondition(), entry.getKey());
-			assertEquals(1, entry.getValue().size());
-			assertEquals(favMerchandiseSetting, entry.getValue().iterator().next());
-		}
-	}
-
-	@Test
-	public void testInitTwoSimilarSingleRefRule() {
-		// setup
-		final ShowRule rule1 = addFavMerchandiseRule(control1);
-		final ShowRule rule2 = addFavMerchandiseRule(control2);
-
-		// act
-		initialize();
-
-		// assert settingsToRules
-		{
-			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
-			assertEquals(1, settingsToRules.size());
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry = settingsToRules.entrySet()
-				.iterator().next();
-			assertEquals(favMerchandiseSetting, entry.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules = entry.getValue();
-			assertEquals(2, conditionToRules.keys().size());
-			assertEquals(2, conditionToRules.values().size());
-			final Iterator<Condition> iterator = conditionToRules.keys().iterator();
-			final Condition condition1 = iterator.next();
-			assertEquals(rule1.getCondition(), condition1);
-			assertEquals(rule1, conditionToRules.getValue(condition1));
-			final Condition condition2 = iterator.next();
-			assertEquals(rule2.getCondition(), condition2);
-			assertEquals(rule2, conditionToRules.getValue(condition2));
-		}
-
-		// assert rulesToRenderables
-		{
-			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
-			assertEquals(2, rulesToRenderables.keys().size());
-			assertEquals(2, rulesToRenderables.values().size());
-			final Iterator<ShowRule> iterator = rulesToRenderables.keys().iterator();
-			final ShowRule ruleKey1 = iterator.next();
-			assertEquals(rule1, ruleKey1);
-			assertEquals(control1, rulesToRenderables.getValue(ruleKey1));
-			final ShowRule ruleKey2 = iterator.next();
-			assertEquals(rule2, ruleKey2);
-			assertEquals(control2, rulesToRenderables.getValue(ruleKey2));
-		}
-
-		// assert conditionToSettings
-		{
-			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
-			assertEquals(2, conditionsToSettings.size());
-			final Iterator<Entry<Condition, Set<UniqueSetting>>> iterator = conditionsToSettings.entrySet().iterator();
-			final Entry<Condition, Set<UniqueSetting>> entry1 = iterator.next();
-			assertEquals(rule1.getCondition(), entry1.getKey());
-			assertEquals(1, entry1.getValue().size());
-			assertEquals(favMerchandiseSetting, entry1.getValue().iterator().next());
-			final Entry<Condition, Set<UniqueSetting>> entry2 = iterator.next();
-			assertEquals(rule2.getCondition(), entry2.getKey());
-			assertEquals(1, entry2.getValue().size());
-			assertEquals(favMerchandiseSetting, entry2.getValue().iterator().next());
-		}
-	}
-
-	@Test
-	public void testInitOneMultiRefRule() {
-		// setup
-		final ShowRule rule = addFanMerchandiseRule(control1);
-
-		// act
-		initialize();
-
-		// assert settingsToRules
-		{
-			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
-			assertEquals(3, settingsToRules.size());
-			final Iterator<Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>>> iterator = settingsToRules
-				.entrySet().iterator();
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry1 = iterator.next();
-			assertEquals(fanSetting, entry1.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules1 = entry1.getValue();
-			assertEquals(1, conditionToRules1.keys().size());
-			assertEquals(1, conditionToRules1.values().size());
-			final Condition condition1 = conditionToRules1.keys().iterator().next();
-			assertEquals(rule.getCondition(), condition1);
-			assertEquals(rule, conditionToRules1.getValue(condition1));
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry2 = iterator.next();
-			assertEquals(merchandise1Setting, entry2.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules2 = entry2.getValue();
-			assertEquals(1, conditionToRules2.keys().size());
-			assertEquals(1, conditionToRules2.values().size());
-			final Condition condition2 = conditionToRules2.keys().iterator().next();
-			assertEquals(rule.getCondition(), condition2);
-			assertEquals(rule, conditionToRules2.getValue(condition2));
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry3 = iterator.next();
-			assertEquals(merchandise2Setting, entry3.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules3 = entry3.getValue();
-			assertEquals(1, conditionToRules3.keys().size());
-			assertEquals(1, conditionToRules3.values().size());
-			final Condition condition3 = conditionToRules3.keys().iterator().next();
-			assertEquals(rule.getCondition(), condition3);
-			assertEquals(rule, conditionToRules3.getValue(condition3));
-		}
-
-		// assert rulesToRenderables
-		{
-			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
-			assertEquals(1, rulesToRenderables.keys().size());
-			assertEquals(1, rulesToRenderables.values().size());
-			final ShowRule ruleKey = rulesToRenderables.keys().iterator().next();
-			assertEquals(rule, ruleKey);
-			assertEquals(control1, rulesToRenderables.getValue(ruleKey));
-		}
-
-		// assert conditionToSettings
-		{
-			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
-			assertEquals(1, conditionsToSettings.size());
-			final Entry<Condition, Set<UniqueSetting>> entry = conditionsToSettings.entrySet().iterator().next();
-			assertEquals(rule.getCondition(), entry.getKey());
-			assertEquals(3, entry.getValue().size());
-			final Iterator<UniqueSetting> iterator = entry.getValue().iterator();
-			assertEquals(fanSetting, iterator.next());
-			assertEquals(merchandise1Setting, iterator.next());
-			assertEquals(merchandise2Setting, iterator.next());
-		}
-	}
-
-	@Test
-	public void testInitTwoSimilarMultiRefRule() {
-		// setup
-		final ShowRule rule1 = addFanMerchandiseRule(control1);
-		final ShowRule rule2 = addFanMerchandiseRule(control2);
-
-		// act
-		initialize();
-
-		// assert settingsToRules
-		{
-			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
-			assertEquals(3, settingsToRules.size());
-			final Iterator<Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>>> iterator = settingsToRules
-				.entrySet().iterator();
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry1 = iterator.next();
-			assertEquals(fanSetting, entry1.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules1 = entry1.getValue();
-			assertEquals(2, conditionToRules1.keys().size());
-			assertEquals(2, conditionToRules1.values().size());
-			final Iterator<Condition> conditionToRulesIterator1 = conditionToRules1.keys().iterator();
-			final Condition condition11 = conditionToRulesIterator1.next();
-			assertEquals(rule1.getCondition(), condition11);
-			assertEquals(rule1, conditionToRules1.getValue(condition11));
-			final Condition condition12 = conditionToRulesIterator1.next();
-			assertEquals(rule2.getCondition(), condition12);
-			assertEquals(rule2, conditionToRules1.getValue(condition12));
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry2 = iterator.next();
-			assertEquals(merchandise1Setting, entry2.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules2 = entry2.getValue();
-			assertEquals(2, conditionToRules2.keys().size());
-			assertEquals(2, conditionToRules2.values().size());
-			final Iterator<Condition> conditionToRulesIterator2 = conditionToRules2.keys().iterator();
-			final Condition condition21 = conditionToRulesIterator2.next();
-			assertEquals(rule1.getCondition(), condition21);
-			assertEquals(rule1, conditionToRules2.getValue(condition21));
-			final Condition condition22 = conditionToRulesIterator2.next();
-			assertEquals(rule2.getCondition(), condition22);
-			assertEquals(rule2, conditionToRules2.getValue(condition22));
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry3 = iterator.next();
-			assertEquals(merchandise2Setting, entry3.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules3 = entry3.getValue();
-			assertEquals(2, conditionToRules3.keys().size());
-			assertEquals(2, conditionToRules3.values().size());
-			final Iterator<Condition> conditionToRulesIterator3 = conditionToRules3.keys().iterator();
-			final Condition condition31 = conditionToRulesIterator3.next();
-			assertEquals(rule1.getCondition(), condition31);
-			assertEquals(rule1, conditionToRules3.getValue(condition31));
-			final Condition condition32 = conditionToRulesIterator3.next();
-			assertEquals(rule2.getCondition(), condition32);
-			assertEquals(rule2, conditionToRules3.getValue(condition32));
-		}
-
-		// assert rulesToRenderables
-		{
-			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
-			assertEquals(2, rulesToRenderables.keys().size());
-			assertEquals(2, rulesToRenderables.values().size());
-			final Iterator<ShowRule> iterator = rulesToRenderables.keys().iterator();
-
-			final ShowRule ruleKey1 = iterator.next();
-			assertEquals(rule1, ruleKey1);
-			assertEquals(control1, rulesToRenderables.getValue(ruleKey1));
-
-			final ShowRule ruleKey2 = iterator.next();
-			assertEquals(rule2, ruleKey2);
-			assertEquals(control2, rulesToRenderables.getValue(ruleKey2));
-		}
-
-		// assert conditionToSettings
-		{
-			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
-			assertEquals(2, conditionsToSettings.size());
-			final Iterator<Entry<Condition, Set<UniqueSetting>>> iterator = conditionsToSettings.entrySet().iterator();
-
-			final Entry<Condition, Set<UniqueSetting>> entry1 = iterator.next();
-			assertEquals(rule1.getCondition(), entry1.getKey());
-			assertEquals(3, entry1.getValue().size());
-			assertTrue(entry1.getValue().contains(fanSetting));
-			assertTrue(entry1.getValue().contains(merchandise1Setting));
-			assertTrue(entry1.getValue().contains(merchandise2Setting));
-
-			final Entry<Condition, Set<UniqueSetting>> entry2 = iterator.next();
-			assertEquals(rule2.getCondition(), entry2.getKey());
-			assertEquals(3, entry2.getValue().size());
-			assertTrue(entry2.getValue().contains(fanSetting));
-			assertTrue(entry2.getValue().contains(merchandise1Setting));
-			assertTrue(entry2.getValue().contains(merchandise2Setting));
-		}
-	}
-
-	@Test
-	public void testInitOrMultiRefRule() {
-		// setup
-		final ShowRule rule = addFanMerchandiseOrRule(control1);
-		final OrCondition orCondition = (OrCondition) rule.getCondition();
-		final Condition condition1 = orCondition.getConditions().get(0);
-		final Condition condition2 = orCondition.getConditions().get(1);
-
-		// act
-		initialize();
-
-		// assert settingsToRules
-		{
-			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
-			assertEquals(3, settingsToRules.size());
-			final Iterator<Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>>> iterator = settingsToRules
-				.entrySet().iterator();
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry1 = iterator.next();
-			assertEquals(fanSetting, entry1.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules1 = entry1.getValue();
-			assertEquals(2, conditionToRules1.keys().size());
-			assertEquals(1, conditionToRules1.values().size());
-			assertTrue(conditionToRules1.keys().contains(condition1));
-			assertEquals(rule, conditionToRules1.getValue(condition1));
-			assertTrue(conditionToRules1.keys().contains(condition2));
-			assertEquals(rule, conditionToRules1.getValue(condition2));
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry2 = iterator.next();
-			assertEquals(merchandise1Setting, entry2.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules2 = entry2.getValue();
-			assertEquals(2, conditionToRules2.keys().size());
-			assertEquals(1, conditionToRules2.values().size());
-			assertTrue(conditionToRules2.keys().contains(condition1));
-			assertEquals(rule, conditionToRules2.getValue(condition1));
-			assertTrue(conditionToRules2.keys().contains(condition2));
-			assertEquals(rule, conditionToRules2.getValue(condition2));
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry3 = iterator.next();
-			assertEquals(merchandise2Setting, entry3.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules3 = entry3.getValue();
-			assertEquals(2, conditionToRules3.keys().size());
-			assertEquals(1, conditionToRules3.values().size());
-			assertTrue(conditionToRules3.keys().contains(condition1));
-			assertEquals(rule, conditionToRules3.getValue(condition1));
-			assertTrue(conditionToRules3.keys().contains(condition2));
-			assertEquals(rule, conditionToRules3.getValue(condition2));
-		}
-
-		// assert rulesToRenderables
-		{
-			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
-			assertEquals(1, rulesToRenderables.keys().size());
-			assertEquals(1, rulesToRenderables.values().size());
-			final ShowRule ruleKey = rulesToRenderables.keys().iterator().next();
-			assertEquals(rule, ruleKey);
-			assertEquals(control1, rulesToRenderables.getValue(ruleKey));
-		}
-
-		// assert conditionToSettings
-		{
-			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
-			assertEquals(2, conditionsToSettings.size());
-			final Iterator<Entry<Condition, Set<UniqueSetting>>> iterator = conditionsToSettings.entrySet().iterator();
-
-			final Entry<Condition, Set<UniqueSetting>> entry1 = iterator.next();
-			assertEquals(condition1, entry1.getKey());
-			assertEquals(3, entry1.getValue().size());
-			assertTrue(entry1.getValue().contains(fanSetting));
-			assertTrue(entry1.getValue().contains(merchandise1Setting));
-			assertTrue(entry1.getValue().contains(merchandise2Setting));
-
-			final Entry<Condition, Set<UniqueSetting>> entry2 = iterator.next();
-			assertEquals(condition2, entry2.getKey());
-			assertEquals(3, entry2.getValue().size());
-			assertTrue(entry2.getValue().contains(fanSetting));
-			assertTrue(entry2.getValue().contains(merchandise1Setting));
-			assertTrue(entry2.getValue().contains(merchandise2Setting));
-		}
-	}
-
-	@Test
-	public void testInitOneMultiRefRuleEmptyList() {
-		// setup
-		fan.getFanMerchandise().clear();
-		final ShowRule rule = addFanMerchandiseRule(control1);
-
-		// act
-		initialize();
-
-		// assert settingsToRules
-		{
-			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
-			assertEquals(1, settingsToRules.size());
-			final Iterator<Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>>> iterator = settingsToRules
-				.entrySet().iterator();
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry1 = iterator.next();
-			assertEquals(fanSetting, entry1.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules1 = entry1.getValue();
-			assertEquals(1, conditionToRules1.keys().size());
-			assertEquals(1, conditionToRules1.values().size());
-			final Condition condition1 = conditionToRules1.keys().iterator().next();
-			assertEquals(rule.getCondition(), condition1);
-			assertEquals(rule, conditionToRules1.getValue(condition1));
-		}
-
-		// assert rulesToRenderables
-		{
-			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
-			assertEquals(1, rulesToRenderables.keys().size());
-			assertEquals(1, rulesToRenderables.values().size());
-			final ShowRule ruleKey = rulesToRenderables.keys().iterator().next();
-			assertEquals(rule, ruleKey);
-			assertEquals(control1, rulesToRenderables.getValue(ruleKey));
-		}
-
-		// assert conditionToSettings
-		{
-			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
-			assertEquals(1, conditionsToSettings.size());
-			final Entry<Condition, Set<UniqueSetting>> entry = conditionsToSettings.entrySet().iterator().next();
-			assertEquals(rule.getCondition(), entry.getKey());
-			assertEquals(1, entry.getValue().size());
-			final Iterator<UniqueSetting> iterator = entry.getValue().iterator();
-			assertEquals(fanSetting, iterator.next());
-		}
-	}
-
-	@Test
-	public void testDynmicOneSingleRefRuleChangeDomain() {
-		// setup
-		final ShowRule rule = addFavMerchandiseRule(control1);
-		initialize();
-
-		// act
-		final Merchandise newMerchandise = BowlingFactory.eINSTANCE.createMerchandise();
-		fan.setFavouriteMerchandise(newMerchandise);
-		final UniqueSetting newSetting = UniqueSetting.createSetting(newMerchandise,
-			BowlingPackage.eINSTANCE.getMerchandise_Name());
-
-		// assert settingsToRules
-		{
-			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
-			assertEquals(1, settingsToRules.size());
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry = settingsToRules.entrySet()
-				.iterator()
-				.next();
-			assertEquals(newSetting, entry.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules = entry.getValue();
-			assertEquals(1, conditionToRules.keys().size());
-			assertEquals(1, conditionToRules.values().size());
-			final Condition condition = conditionToRules.keys().iterator().next();
-			assertEquals(rule.getCondition(), condition);
-			assertEquals(rule, conditionToRules.getValue(condition));
-		}
-
-		// assert rulesToRenderables
-		{
-			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
-			assertEquals(1, rulesToRenderables.keys().size());
-			assertEquals(1, rulesToRenderables.values().size());
-			final ShowRule ruleKey = rulesToRenderables.keys().iterator().next();
-			assertEquals(rule, ruleKey);
-			assertEquals(control1, rulesToRenderables.getValue(ruleKey));
-		}
-
-		// assert conditionToSettings
-		{
-			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
-			assertEquals(1, conditionsToSettings.size());
-			final Entry<Condition, Set<UniqueSetting>> entry = conditionsToSettings.entrySet().iterator().next();
-			assertEquals(rule.getCondition(), entry.getKey());
-			assertEquals(1, entry.getValue().size());
-			assertEquals(newSetting, entry.getValue().iterator().next());
-		}
-	}
-
-	@Test
-	public void testDynamicOneMultiRefRuleChangeDomainAdd() {
-		// setup
-		final ShowRule rule = addFanMerchandiseRule(control1);
-		initialize();
-
-		// act
-		final Merchandise newMerchandise = BowlingFactory.eINSTANCE.createMerchandise();
-		fan.getFanMerchandise().add(newMerchandise);
-		final UniqueSetting newSetting = UniqueSetting.createSetting(newMerchandise,
-			BowlingPackage.eINSTANCE.getMerchandise_Name());
-
-		// assert settingsToRules
-		{
-			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
-			assertEquals(4, settingsToRules.size());
-			final Iterator<Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>>> iterator = settingsToRules
-				.entrySet().iterator();
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry1 = iterator.next();
-			assertEquals(fanSetting, entry1.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules1 = entry1.getValue();
-			assertEquals(1, conditionToRules1.keys().size());
-			assertEquals(1, conditionToRules1.values().size());
-			final Condition condition1 = conditionToRules1.keys().iterator().next();
-			assertEquals(rule.getCondition(), condition1);
-			assertEquals(rule, conditionToRules1.getValue(condition1));
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry2 = iterator.next();
-			assertEquals(merchandise1Setting, entry2.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules2 = entry2.getValue();
-			assertEquals(1, conditionToRules2.keys().size());
-			assertEquals(1, conditionToRules2.values().size());
-			final Condition condition2 = conditionToRules2.keys().iterator().next();
-			assertEquals(rule.getCondition(), condition2);
-			assertEquals(rule, conditionToRules2.getValue(condition2));
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry3 = iterator.next();
-			assertEquals(merchandise2Setting, entry3.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules3 = entry3.getValue();
-			assertEquals(1, conditionToRules3.keys().size());
-			assertEquals(1, conditionToRules3.values().size());
-			final Condition condition3 = conditionToRules3.keys().iterator().next();
-			assertEquals(rule.getCondition(), condition3);
-			assertEquals(rule, conditionToRules3.getValue(condition3));
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry4 = iterator.next();
-			assertEquals(newSetting, entry4.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules4 = entry4.getValue();
-			assertEquals(1, conditionToRules4.keys().size());
-			assertEquals(1, conditionToRules4.values().size());
-			final Condition condition4 = conditionToRules4.keys().iterator().next();
-			assertEquals(rule.getCondition(), condition4);
-			assertEquals(rule, conditionToRules4.getValue(condition4));
-		}
-
-		// assert rulesToRenderables
-		{
-			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
-			assertEquals(1, rulesToRenderables.keys().size());
-			assertEquals(1, rulesToRenderables.values().size());
-			final ShowRule ruleKey = rulesToRenderables.keys().iterator().next();
-			assertEquals(rule, ruleKey);
-			assertEquals(control1, rulesToRenderables.getValue(ruleKey));
-		}
-
-		// assert conditionToSettings
-		{
-			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
-			assertEquals(1, conditionsToSettings.size());
-			final Entry<Condition, Set<UniqueSetting>> entry = conditionsToSettings.entrySet().iterator().next();
-			assertEquals(rule.getCondition(), entry.getKey());
-			assertEquals(4, entry.getValue().size());
-			final Iterator<UniqueSetting> iterator = entry.getValue().iterator();
-			assertEquals(fanSetting, iterator.next());
-			assertEquals(merchandise1Setting, iterator.next());
-			assertEquals(merchandise2Setting, iterator.next());
-			assertEquals(newSetting, iterator.next());
-		}
-	}
-
-	@Test
-	public void testDynamicOneMultiRefRuleChangeDomainRemove() {
-		// setup
-		final ShowRule rule = addFanMerchandiseRule(control1);
-		initialize();
-
-		// act
-		fan.getFanMerchandise().remove(1);
-
-		// assert settingsToRules
-		{
-			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
-			assertEquals(2, settingsToRules.size());
-			final Iterator<Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>>> iterator = settingsToRules
-				.entrySet().iterator();
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry1 = iterator.next();
-			assertEquals(fanSetting, entry1.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules1 = entry1.getValue();
-			assertEquals(1, conditionToRules1.keys().size());
-			assertEquals(1, conditionToRules1.values().size());
-			final Condition condition1 = conditionToRules1.keys().iterator().next();
-			assertEquals(rule.getCondition(), condition1);
-			assertEquals(rule, conditionToRules1.getValue(condition1));
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry2 = iterator.next();
-			assertEquals(merchandise1Setting, entry2.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules2 = entry2.getValue();
-			assertEquals(1, conditionToRules2.keys().size());
-			assertEquals(1, conditionToRules2.values().size());
-			final Condition condition2 = conditionToRules2.keys().iterator().next();
-			assertEquals(rule.getCondition(), condition2);
-			assertEquals(rule, conditionToRules2.getValue(condition2));
-		}
-
-		// assert rulesToRenderables
-		{
-			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
-			assertEquals(1, rulesToRenderables.keys().size());
-			assertEquals(1, rulesToRenderables.values().size());
-			final ShowRule ruleKey = rulesToRenderables.keys().iterator().next();
-			assertEquals(rule, ruleKey);
-			assertEquals(control1, rulesToRenderables.getValue(ruleKey));
-		}
-
-		// assert conditionToSettings
-		{
-			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
-			assertEquals(1, conditionsToSettings.size());
-			final Entry<Condition, Set<UniqueSetting>> entry = conditionsToSettings.entrySet().iterator().next();
-			assertEquals(rule.getCondition(), entry.getKey());
-			assertEquals(2, entry.getValue().size());
-			final Iterator<UniqueSetting> iterator = entry.getValue().iterator();
-			assertEquals(fanSetting, iterator.next());
-			assertEquals(merchandise1Setting, iterator.next());
-		}
-	}
-
-	@Test
-	public void testDynamicOneMultiRefRuleChangeDomainClear() {
-		// setup
-		final ShowRule rule = addFanMerchandiseRule(control1);
-		initialize();
-
-		// act
-		fan.getFanMerchandise().clear();
-
-		// assert settingsToRules
-		{
-			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
-			assertEquals(1, settingsToRules.size());
-			final Iterator<Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>>> iterator = settingsToRules
-				.entrySet().iterator();
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry1 = iterator.next();
-			assertEquals(fanSetting, entry1.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules1 = entry1.getValue();
-			assertEquals(1, conditionToRules1.keys().size());
-			assertEquals(1, conditionToRules1.values().size());
-			final Condition condition1 = conditionToRules1.keys().iterator().next();
-			assertEquals(rule.getCondition(), condition1);
-			assertEquals(rule, conditionToRules1.getValue(condition1));
-		}
-
-		// assert rulesToRenderables
-		{
-			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
-			assertEquals(1, rulesToRenderables.keys().size());
-			assertEquals(1, rulesToRenderables.values().size());
-			final ShowRule ruleKey = rulesToRenderables.keys().iterator().next();
-			assertEquals(rule, ruleKey);
-			assertEquals(control1, rulesToRenderables.getValue(ruleKey));
-		}
-
-		// assert conditionToSettings
-		{
-			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
-			assertEquals(1, conditionsToSettings.size());
-			final Entry<Condition, Set<UniqueSetting>> entry = conditionsToSettings.entrySet().iterator().next();
-			assertEquals(rule.getCondition(), entry.getKey());
-			assertEquals(1, entry.getValue().size());
-			final Iterator<UniqueSetting> iterator = entry.getValue().iterator();
-			assertEquals(fanSetting, iterator.next());
-		}
-	}
-
-	@Test
-	public void testDynamicOneMultiRefRuleChangeDomainUnaffected() {
-		// setup
-		final ShowRule rule = addFanMerchandiseRule(control1);
-		initialize();
-
-		// act
-		fan.getVisitedTournaments().add(BowlingFactory.eINSTANCE.createTournament());
-
-		// assert settingsToRules
-		{
-			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
-			assertEquals(3, settingsToRules.size());
-			final Iterator<Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>>> iterator = settingsToRules
-				.entrySet().iterator();
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry1 = iterator.next();
-			assertEquals(fanSetting, entry1.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules1 = entry1.getValue();
-			assertEquals(1, conditionToRules1.keys().size());
-			assertEquals(1, conditionToRules1.values().size());
-			final Condition condition1 = conditionToRules1.keys().iterator().next();
-			assertEquals(rule.getCondition(), condition1);
-			assertEquals(rule, conditionToRules1.getValue(condition1));
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry2 = iterator.next();
-			assertEquals(merchandise1Setting, entry2.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules2 = entry2.getValue();
-			assertEquals(1, conditionToRules2.keys().size());
-			assertEquals(1, conditionToRules2.values().size());
-			final Condition condition2 = conditionToRules2.keys().iterator().next();
-			assertEquals(rule.getCondition(), condition2);
-			assertEquals(rule, conditionToRules2.getValue(condition2));
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry3 = iterator.next();
-			assertEquals(merchandise2Setting, entry3.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules3 = entry3.getValue();
-			assertEquals(1, conditionToRules3.keys().size());
-			assertEquals(1, conditionToRules3.values().size());
-			final Condition condition3 = conditionToRules3.keys().iterator().next();
-			assertEquals(rule.getCondition(), condition3);
-			assertEquals(rule, conditionToRules3.getValue(condition3));
-		}
-
-		// assert rulesToRenderables
-		{
-			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
-			assertEquals(1, rulesToRenderables.keys().size());
-			assertEquals(1, rulesToRenderables.values().size());
-			final ShowRule ruleKey = rulesToRenderables.keys().iterator().next();
-			assertEquals(rule, ruleKey);
-			assertEquals(control1, rulesToRenderables.getValue(ruleKey));
-		}
-
-		// assert conditionToSettings
-		{
-			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
-			assertEquals(1, conditionsToSettings.size());
-			final Entry<Condition, Set<UniqueSetting>> entry = conditionsToSettings.entrySet().iterator().next();
-			assertEquals(rule.getCondition(), entry.getKey());
-			assertEquals(3, entry.getValue().size());
-			final Iterator<UniqueSetting> iterator = entry.getValue().iterator();
-			assertEquals(fanSetting, iterator.next());
-			assertEquals(merchandise1Setting, iterator.next());
-			assertEquals(merchandise2Setting, iterator.next());
-		}
-	}
-
-	@Test
-	public void testDynamicOneMultiRefRuleChangeDomainAddNonContainment() {
-		// setup
-		final ShowRule rule = RuleFactory.eINSTANCE.createShowRule();
-		final LeafCondition condition = RuleFactory.eINSTANCE.createLeafCondition();
-		final VFeaturePathDomainModelReference dmr = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
-		dmr.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_VisitedTournaments());
-		final VFeaturePathDomainModelReference valueDMR = VViewFactory.eINSTANCE
-			.createFeaturePathDomainModelReference();
-		valueDMR.setDomainModelEFeature(BowlingPackage.eINSTANCE.getTournament_PriceMoney());
-		condition.setExpectedValue(99.99);
-		condition.setDomainModelReference(dmr);
-		condition.setValueDomainModelReference(valueDMR);
-		rule.setCondition(condition);
-		control1.getAttachments().add(rule);
-
-		final Tournament tournament1 = BowlingFactory.eINSTANCE.createTournament();
-		fan.getVisitedTournaments().add(tournament1);
-
-		final UniqueSetting newSettingList = UniqueSetting.createSetting(fan,
-			BowlingPackage.eINSTANCE.getFan_VisitedTournaments());
-		final UniqueSetting newSettingLeaf1 = UniqueSetting.createSetting(tournament1,
-			BowlingPackage.eINSTANCE.getTournament_PriceMoney());
-
-		initialize();
-
-		// act
-		final Tournament tournament2 = BowlingFactory.eINSTANCE.createTournament();
-		fan.getVisitedTournaments().add(tournament2);
-		final UniqueSetting newSettingLeaf2 = UniqueSetting.createSetting(tournament2,
-			BowlingPackage.eINSTANCE.getTournament_PriceMoney());
-
-		// assert settingsToRules
-		{
-			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
-			assertEquals(3, settingsToRules.size());
-			final Iterator<Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>>> iterator = settingsToRules
-				.entrySet().iterator();
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry1 = iterator.next();
-			assertEquals(newSettingList, entry1.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules1 = entry1.getValue();
-			assertEquals(1, conditionToRules1.keys().size());
-			assertEquals(1, conditionToRules1.values().size());
-			final Condition condition1 = conditionToRules1.keys().iterator().next();
-			assertEquals(rule.getCondition(), condition1);
-			assertEquals(rule, conditionToRules1.getValue(condition1));
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry2 = iterator.next();
-			assertEquals(newSettingLeaf1, entry2.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules2 = entry2.getValue();
-			assertEquals(1, conditionToRules2.keys().size());
-			assertEquals(1, conditionToRules2.values().size());
-			final Condition condition2 = conditionToRules2.keys().iterator().next();
-			assertEquals(rule.getCondition(), condition2);
-			assertEquals(rule, conditionToRules2.getValue(condition2));
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry3 = iterator.next();
-			assertEquals(newSettingLeaf2, entry3.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules3 = entry3.getValue();
-			assertEquals(1, conditionToRules3.keys().size());
-			assertEquals(1, conditionToRules3.values().size());
-			final Condition condition3 = conditionToRules3.keys().iterator().next();
-			assertEquals(rule.getCondition(), condition3);
-			assertEquals(rule, conditionToRules3.getValue(condition3));
-		}
-
-		// assert rulesToRenderables
-		{
-			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
-			assertEquals(1, rulesToRenderables.keys().size());
-			assertEquals(1, rulesToRenderables.values().size());
-			final ShowRule ruleKey = rulesToRenderables.keys().iterator().next();
-			assertEquals(rule, ruleKey);
-			assertEquals(control1, rulesToRenderables.getValue(ruleKey));
-		}
-
-		// assert conditionToSettings
-		{
-			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
-			assertEquals(1, conditionsToSettings.size());
-			final Entry<Condition, Set<UniqueSetting>> entry = conditionsToSettings.entrySet().iterator().next();
-			assertEquals(rule.getCondition(), entry.getKey());
-			assertEquals(3, entry.getValue().size());
-			final Iterator<UniqueSetting> iterator = entry.getValue().iterator();
-			assertEquals(newSettingList, iterator.next());
-			assertEquals(newSettingLeaf1, iterator.next());
-			assertEquals(newSettingLeaf2, iterator.next());
-		}
-	}
-
-	@Test
-	public void testDynamicOneSingleRefRuleRemoveRule() {
-		// setup
-		addFavMerchandiseRule(control1);
-		initialize();
-
-		// act
-		control1.getAttachments().clear();
-
-		// assert settingsToRules
-		{
-			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
-			assertEquals(0, settingsToRules.size());
-		}
-
-		// assert rulesToRenderables
-		{
-			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
-			assertEquals(0, rulesToRenderables.keys().size());
-			assertEquals(0, rulesToRenderables.values().size());
-		}
-
-		// assert conditionToSettings
-		{
-			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
-			assertEquals(0, conditionsToSettings.size());
-		}
-	}
-
-	@Test
-	public void testDynamicTwoSimilarSingleRefRuleRemoveOneRule() {
-		// setup
-		final ShowRule rule1 = addFavMerchandiseRule(control1);
-		addFavMerchandiseRule(control2);
-		initialize();
-
-		// act
-		control2.getAttachments().clear();
-
-		// assert settingsToRules
-		{
-			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
-			assertEquals(1, settingsToRules.size());
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry = settingsToRules.entrySet()
-				.iterator().next();
-			assertEquals(favMerchandiseSetting, entry.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules = entry.getValue();
-			assertEquals(1, conditionToRules.keys().size());
-			assertEquals(1, conditionToRules.values().size());
-			final Iterator<Condition> iterator = conditionToRules.keys().iterator();
-			final Condition condition1 = iterator.next();
-			assertEquals(rule1.getCondition(), condition1);
-			assertEquals(rule1, conditionToRules.getValue(condition1));
-		}
-
-		// assert rulesToRenderables
-		{
-			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
-			assertEquals(1, rulesToRenderables.keys().size());
-			assertEquals(1, rulesToRenderables.values().size());
-			final Iterator<ShowRule> iterator = rulesToRenderables.keys().iterator();
-			final ShowRule ruleKey1 = iterator.next();
-			assertEquals(rule1, ruleKey1);
-			assertEquals(control1, rulesToRenderables.getValue(ruleKey1));
-		}
-
-		// assert conditionToSettings
-		{
-			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
-			assertEquals(1, conditionsToSettings.size());
-			final Iterator<Entry<Condition, Set<UniqueSetting>>> iterator = conditionsToSettings.entrySet().iterator();
-			final Entry<Condition, Set<UniqueSetting>> entry1 = iterator.next();
-			assertEquals(rule1.getCondition(), entry1.getKey());
-			assertEquals(1, entry1.getValue().size());
-			assertEquals(favMerchandiseSetting, entry1.getValue().iterator().next());
-		}
-	}
-
-	@Test
-	public void testDynmicOneMultiRefRuleRemoveRule() {
-		// setup
-		addFanMerchandiseRule(control1);
-		initialize();
-
-		// act
-		control1.getAttachments().clear();
-
-		// assert settingsToRules
-		{
-			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
-			assertEquals(0, settingsToRules.size());
-		}
-
-		// assert rulesToRenderables
-		{
-			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
-			assertEquals(0, rulesToRenderables.keys().size());
-			assertEquals(0, rulesToRenderables.values().size());
-		}
-
-		// assert conditionToSettings
-		{
-			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
-			assertEquals(0, conditionsToSettings.size());
-		}
-	}
-
-	@Test
-	public void testDynamicTwoSimilarMultiRefRuleRemoveOneRule() {
-		// setup
-		final ShowRule rule1 = addFanMerchandiseRule(control1);
-		addFanMerchandiseRule(control2);
-		initialize();
-
-		// act
-		control2.getAttachments().clear();
-
-		// assert settingsToRules
-		{
-			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
-			assertEquals(3, settingsToRules.size());
-			final Iterator<Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>>> iterator = settingsToRules
-				.entrySet().iterator();
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry1 = iterator.next();
-			assertEquals(fanSetting, entry1.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules1 = entry1.getValue();
-			assertEquals(1, conditionToRules1.keys().size());
-			assertEquals(1, conditionToRules1.values().size());
-			final Iterator<Condition> conditionToRulesIterator1 = conditionToRules1.keys().iterator();
-			final Condition condition11 = conditionToRulesIterator1.next();
-			assertEquals(rule1.getCondition(), condition11);
-			assertEquals(rule1, conditionToRules1.getValue(condition11));
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry2 = iterator.next();
-			assertEquals(merchandise1Setting, entry2.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules2 = entry2.getValue();
-			assertEquals(1, conditionToRules2.keys().size());
-			assertEquals(1, conditionToRules2.values().size());
-			final Iterator<Condition> conditionToRulesIterator2 = conditionToRules2.keys().iterator();
-			final Condition condition21 = conditionToRulesIterator2.next();
-			assertEquals(rule1.getCondition(), condition21);
-			assertEquals(rule1, conditionToRules2.getValue(condition21));
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry3 = iterator.next();
-			assertEquals(merchandise2Setting, entry3.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules3 = entry3.getValue();
-			assertEquals(1, conditionToRules3.keys().size());
-			assertEquals(1, conditionToRules3.values().size());
-			final Iterator<Condition> conditionToRulesIterator3 = conditionToRules3.keys().iterator();
-			final Condition condition31 = conditionToRulesIterator3.next();
-			assertEquals(rule1.getCondition(), condition31);
-			assertEquals(rule1, conditionToRules3.getValue(condition31));
-		}
-
-		// assert rulesToRenderables
-		{
-			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
-			assertEquals(1, rulesToRenderables.keys().size());
-			assertEquals(1, rulesToRenderables.values().size());
-			final Iterator<ShowRule> iterator = rulesToRenderables.keys().iterator();
-
-			final ShowRule ruleKey1 = iterator.next();
-			assertEquals(rule1, ruleKey1);
-			assertEquals(control1, rulesToRenderables.getValue(ruleKey1));
-		}
-
-		// assert conditionToSettings
-		{
-			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
-			assertEquals(1, conditionsToSettings.size());
-			final Iterator<Entry<Condition, Set<UniqueSetting>>> iterator = conditionsToSettings.entrySet().iterator();
-
-			final Entry<Condition, Set<UniqueSetting>> entry1 = iterator.next();
-			assertEquals(rule1.getCondition(), entry1.getKey());
-			assertEquals(3, entry1.getValue().size());
-			assertTrue(entry1.getValue().contains(fanSetting));
-			assertTrue(entry1.getValue().contains(merchandise1Setting));
-			assertTrue(entry1.getValue().contains(merchandise2Setting));
-		}
-	}
-
-	@Test
-	public void testDynmicOneSingleRefRuleChangeCondition() {
-		// setup
-		final ShowRule rule = addFavMerchandiseRule(control1);
-		initialize();
-
-		// act
-		final LeafCondition leafCondition = (LeafCondition) rule.getCondition();
-		final VFeaturePathDomainModelReference reference = (VFeaturePathDomainModelReference) leafCondition
-			.getDomainModelReference();
-		reference.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_SerialNumber());
-		leafCondition.setExpectedValue(1234567890);
-		final UniqueSetting newSetting = UniqueSetting.createSetting(favMerchandise,
-			BowlingPackage.eINSTANCE.getMerchandise_SerialNumber());
-
-		// assert settingsToRules
-		{
-			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
-			assertEquals(1, settingsToRules.size());
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry = settingsToRules.entrySet()
-				.iterator()
-				.next();
-			assertEquals(newSetting, entry.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules = entry.getValue();
-			assertEquals(1, conditionToRules.keys().size());
-			assertEquals(1, conditionToRules.values().size());
-			final Condition condition = conditionToRules.keys().iterator().next();
-			assertEquals(rule.getCondition(), condition);
-			assertEquals(rule, conditionToRules.getValue(condition));
-		}
-
-		// assert rulesToRenderables
-		{
-			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
-			assertEquals(1, rulesToRenderables.keys().size());
-			assertEquals(1, rulesToRenderables.values().size());
-			final ShowRule ruleKey = rulesToRenderables.keys().iterator().next();
-			assertEquals(rule, ruleKey);
-			assertEquals(control1, rulesToRenderables.getValue(ruleKey));
-		}
-
-		// assert conditionToSettings
-		{
-			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
-			assertEquals(1, conditionsToSettings.size());
-			final Entry<Condition, Set<UniqueSetting>> entry = conditionsToSettings.entrySet().iterator().next();
-			assertEquals(rule.getCondition(), entry.getKey());
-			assertEquals(1, entry.getValue().size());
-			assertEquals(newSetting, entry.getValue().iterator().next());
-		}
-	}
-
-	@Test
-	public void testDynamicTwoSimilarSingleRefRuleChangeOneCondition() {
-		// setup
-		final ShowRule rule1 = addFavMerchandiseRule(control1);
-		final ShowRule rule2 = addFavMerchandiseRule(control2);
-		initialize();
-
-		// act
-		final LeafCondition leafCondition = (LeafCondition) rule2.getCondition();
-		final VFeaturePathDomainModelReference reference = (VFeaturePathDomainModelReference) leafCondition
-			.getDomainModelReference();
-		reference.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_SerialNumber());
-		leafCondition.setExpectedValue(1234567890);
-		final UniqueSetting newSetting = UniqueSetting.createSetting(favMerchandise,
-			BowlingPackage.eINSTANCE.getMerchandise_SerialNumber());
-
-		// assert settingsToRules
-		{
-			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
-			assertEquals(2, settingsToRules.size());
-
-			assertTrue(settingsToRules.containsKey(favMerchandiseSetting));
-			final BidirectionalMap<Condition, ShowRule> conditionToRules1 = settingsToRules.get(favMerchandiseSetting);
-			assertEquals(1, conditionToRules1.keys().size());
-			assertEquals(1, conditionToRules1.values().size());
-			final Iterator<Condition> iterator1 = conditionToRules1.keys().iterator();
-			final Condition condition1 = iterator1.next();
-			assertEquals(rule1.getCondition(), condition1);
-			assertEquals(rule1, conditionToRules1.getValue(condition1));
-
-			assertTrue(settingsToRules.containsKey(newSetting));
-			final BidirectionalMap<Condition, ShowRule> conditionToRules2 = settingsToRules.get(newSetting);
-			assertEquals(1, conditionToRules2.keys().size());
-			assertEquals(1, conditionToRules2.values().size());
-			final Iterator<Condition> iterator2 = conditionToRules2.keys().iterator();
-			final Condition condition2 = iterator2.next();
-			assertEquals(rule2.getCondition(), condition2);
-			assertEquals(rule2, conditionToRules2.getValue(condition2));
-		}
-
-		// assert rulesToRenderables
-		{
-			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
-			assertEquals(2, rulesToRenderables.keys().size());
-			assertEquals(2, rulesToRenderables.values().size());
-			final Iterator<ShowRule> iterator = rulesToRenderables.keys().iterator();
-			final ShowRule ruleKey1 = iterator.next();
-			assertEquals(rule1, ruleKey1);
-			assertEquals(control1, rulesToRenderables.getValue(ruleKey1));
-			final ShowRule ruleKey2 = iterator.next();
-			assertEquals(rule2, ruleKey2);
-			assertEquals(control2, rulesToRenderables.getValue(ruleKey2));
-		}
-
-		// assert conditionToSettings
-		{
-			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
-			assertEquals(2, conditionsToSettings.size());
-			final Iterator<Entry<Condition, Set<UniqueSetting>>> iterator = conditionsToSettings.entrySet().iterator();
-			final Entry<Condition, Set<UniqueSetting>> entry1 = iterator.next();
-			assertEquals(rule1.getCondition(), entry1.getKey());
-			assertEquals(1, entry1.getValue().size());
-			assertEquals(favMerchandiseSetting, entry1.getValue().iterator().next());
-			final Entry<Condition, Set<UniqueSetting>> entry2 = iterator.next();
-			assertEquals(rule2.getCondition(), entry2.getKey());
-			assertEquals(1, entry2.getValue().size());
-			assertEquals(newSetting, entry2.getValue().iterator().next());
-		}
-	}
-
-	@Test
-	public void testDynamicOneMultiRefRuleChangeConditionToOtherMultiRef() {
-		// setup
-		final ShowRule rule = addFanMerchandiseRule(control1);
-		initialize();
-
-		// act
-		final Tournament tournament = BowlingFactory.eINSTANCE.createTournament();
-		fan.getVisitedTournaments().add(tournament);
-
-		final LeafCondition leafCondition = (LeafCondition) rule.getCondition();
-		final VFeaturePathDomainModelReference reference = (VFeaturePathDomainModelReference) leafCondition
-			.getDomainModelReference();
-		reference.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_VisitedTournaments());
-		final VFeaturePathDomainModelReference valueDMR = (VFeaturePathDomainModelReference) leafCondition
-			.getValueDomainModelReference();
-		valueDMR.setDomainModelEFeature(BowlingPackage.eINSTANCE.getTournament_PriceMoney());
-		leafCondition.setExpectedValue(99.99);
-
-		final UniqueSetting newSettingList = UniqueSetting.createSetting(fan,
-			BowlingPackage.eINSTANCE.getFan_VisitedTournaments());
-		final UniqueSetting newSettingLeaf = UniqueSetting.createSetting(tournament,
-			BowlingPackage.eINSTANCE.getTournament_PriceMoney());
-
-		// assert settingsToRules
-		{
-			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
-			assertEquals(2, settingsToRules.size());
-			final Iterator<Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>>> iterator = settingsToRules
-				.entrySet().iterator();
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry1 = iterator.next();
-			assertEquals(newSettingList, entry1.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules1 = entry1.getValue();
-			assertEquals(1, conditionToRules1.keys().size());
-			assertEquals(1, conditionToRules1.values().size());
-			final Condition condition1 = conditionToRules1.keys().iterator().next();
-			assertEquals(rule.getCondition(), condition1);
-			assertEquals(rule, conditionToRules1.getValue(condition1));
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry2 = iterator.next();
-			assertEquals(newSettingLeaf, entry2.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules2 = entry2.getValue();
-			assertEquals(1, conditionToRules2.keys().size());
-			assertEquals(1, conditionToRules2.values().size());
-			final Condition condition2 = conditionToRules2.keys().iterator().next();
-			assertEquals(rule.getCondition(), condition2);
-			assertEquals(rule, conditionToRules2.getValue(condition2));
-		}
-
-		// assert rulesToRenderables
-		{
-			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
-			assertEquals(1, rulesToRenderables.keys().size());
-			assertEquals(1, rulesToRenderables.values().size());
-			final ShowRule ruleKey = rulesToRenderables.keys().iterator().next();
-			assertEquals(rule, ruleKey);
-			assertEquals(control1, rulesToRenderables.getValue(ruleKey));
-		}
-
-		// assert conditionToSettings
-		{
-			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
-			assertEquals(1, conditionsToSettings.size());
-			final Entry<Condition, Set<UniqueSetting>> entry = conditionsToSettings.entrySet().iterator().next();
-			assertEquals(rule.getCondition(), entry.getKey());
-			assertEquals(2, entry.getValue().size());
-			final Iterator<UniqueSetting> iterator = entry.getValue().iterator();
-			assertEquals(newSettingList, iterator.next());
-			assertEquals(newSettingLeaf, iterator.next());
-		}
-	}
-
-	@Test
-	public void testDynamicTwoSimilarMultiRefRuleChangeOneConditionNoNonMulti() {
-		// setup
-		final ShowRule rule1 = addFanMerchandiseRule(control1);
-		final ShowRule rule2 = addFanMerchandiseRule(control2);
-		initialize();
-
-		// act
-		final LeafCondition leafCondition = (LeafCondition) rule2.getCondition();
-		final VFeaturePathDomainModelReference reference = (VFeaturePathDomainModelReference) leafCondition
-			.getDomainModelReference();
-		reference.getDomainModelEReferencePath().clear();
-		reference.getDomainModelEReferencePath().add(BowlingPackage.eINSTANCE.getFan_FavouriteMerchandise());
-		reference.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_SerialNumber());
-		leafCondition.setExpectedValue(1234567890);
-		final UniqueSetting newSetting = UniqueSetting.createSetting(favMerchandise,
-			BowlingPackage.eINSTANCE.getMerchandise_SerialNumber());
-
-		// assert settingsToRules
-		{
-			final Map<UniqueSetting, BidirectionalMap<Condition, ShowRule>> settingsToRules = getSettingsToRules();
-			assertEquals(4, settingsToRules.size());
-			final Iterator<Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>>> iterator = settingsToRules
-				.entrySet().iterator();
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry1 = iterator.next();
-			assertEquals(fanSetting, entry1.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules1 = entry1.getValue();
-			assertEquals(1, conditionToRules1.keys().size());
-			assertEquals(1, conditionToRules1.values().size());
-			final Iterator<Condition> conditionToRulesIterator1 = conditionToRules1.keys().iterator();
-			final Condition condition11 = conditionToRulesIterator1.next();
-			assertEquals(rule1.getCondition(), condition11);
-			assertEquals(rule1, conditionToRules1.getValue(condition11));
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry2 = iterator.next();
-			assertEquals(merchandise1Setting, entry2.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules2 = entry2.getValue();
-			assertEquals(1, conditionToRules2.keys().size());
-			assertEquals(1, conditionToRules2.values().size());
-			final Iterator<Condition> conditionToRulesIterator2 = conditionToRules2.keys().iterator();
-			final Condition condition21 = conditionToRulesIterator2.next();
-			assertEquals(rule1.getCondition(), condition21);
-			assertEquals(rule1, conditionToRules2.getValue(condition21));
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry3 = iterator.next();
-			assertEquals(merchandise2Setting, entry3.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules3 = entry3.getValue();
-			assertEquals(1, conditionToRules3.keys().size());
-			assertEquals(1, conditionToRules3.values().size());
-			final Iterator<Condition> conditionToRulesIterator3 = conditionToRules3.keys().iterator();
-			final Condition condition31 = conditionToRulesIterator3.next();
-			assertEquals(rule1.getCondition(), condition31);
-			assertEquals(rule1, conditionToRules3.getValue(condition31));
-
-			final Entry<UniqueSetting, BidirectionalMap<Condition, ShowRule>> entry4 = iterator.next();
-			assertEquals(newSetting, entry4.getKey());
-			final BidirectionalMap<Condition, ShowRule> conditionToRules4 = entry4.getValue();
-			assertEquals(1, conditionToRules4.keys().size());
-			assertEquals(1, conditionToRules4.values().size());
-			final Iterator<Condition> conditionToRulesIterator4 = conditionToRules4.keys().iterator();
-			final Condition condition41 = conditionToRulesIterator4.next();
-			assertEquals(rule2.getCondition(), condition41);
-			assertEquals(rule2, conditionToRules4.getValue(condition41));
-		}
-
-		// assert rulesToRenderables
-		{
-			final BidirectionalMap<ShowRule, VElement> rulesToRenderables = getRulesToRenderables();
-			assertEquals(2, rulesToRenderables.keys().size());
-			assertEquals(2, rulesToRenderables.values().size());
-			final Iterator<ShowRule> iterator = rulesToRenderables.keys().iterator();
-
-			final ShowRule ruleKey1 = iterator.next();
-			assertEquals(rule1, ruleKey1);
-			assertEquals(control1, rulesToRenderables.getValue(ruleKey1));
-
-			final ShowRule ruleKey2 = iterator.next();
-			assertEquals(rule2, ruleKey2);
-			assertEquals(control2, rulesToRenderables.getValue(ruleKey2));
-		}
-
-		// assert conditionToSettings
-		{
-			final Map<Condition, Set<UniqueSetting>> conditionsToSettings = getConditionsToSettings();
-			assertEquals(2, conditionsToSettings.size());
-			final Iterator<Entry<Condition, Set<UniqueSetting>>> iterator = conditionsToSettings.entrySet().iterator();
-
-			final Entry<Condition, Set<UniqueSetting>> entry1 = iterator.next();
-			assertEquals(rule1.getCondition(), entry1.getKey());
-			assertEquals(3, entry1.getValue().size());
-			assertTrue(entry1.getValue().contains(fanSetting));
-			assertTrue(entry1.getValue().contains(merchandise1Setting));
-			assertTrue(entry1.getValue().contains(merchandise2Setting));
-
-			final Entry<Condition, Set<UniqueSetting>> entry2 = iterator.next();
-			assertEquals(rule2.getCondition(), entry2.getKey());
-			assertEquals(1, entry2.getValue().size());
-			assertTrue(entry2.getValue().contains(newSetting));
-		}
-	}
-
-}// END COMPLEX CODE
diff --git a/tests/org.eclipse.emf.ecp.view.rule.test/src/org/eclipse/emf/ecp/view/rule/test/RuleServiceGC_PTest.java b/tests/org.eclipse.emf.ecp.view.rule.test/src/org/eclipse/emf/ecp/view/rule/test/RuleServiceGC_PTest.java
new file mode 100644
index 0000000..1bebe77
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.rule.test/src/org/eclipse/emf/ecp/view/rule/test/RuleServiceGC_PTest.java
@@ -0,0 +1,345 @@
+/*******************************************************************************
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Edgar - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.rule.test;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.test.common.DefaultRealm;
+import org.eclipse.emf.ecp.view.internal.rule.RuleService;
+import org.eclipse.emf.ecp.view.internal.rule.RuleServiceHelperImpl;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContextFactory;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.model.VView;
+import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
+import org.eclipse.emf.ecp.view.spi.rule.model.EnableRule;
+import org.eclipse.emf.ecp.view.spi.rule.model.ShowRule;
+import org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalFactory;
+import org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalLayout;
+import org.eclipse.emf.ecp.view.test.common.spi.GCCollectable;
+import org.eclipse.emf.ecp.view.test.common.spi.Tuple;
+import org.eclipse.emf.emfstore.bowling.BowlingFactory;
+import org.eclipse.emf.emfstore.bowling.BowlingPackage;
+import org.eclipse.emf.emfstore.bowling.Fan;
+import org.eclipse.emf.emfstore.bowling.Merchandise;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+public class RuleServiceGC_PTest extends CommonRuleTest {
+
+	private ViewModelContext context;
+	private DefaultRealm realm;
+
+	private Tuple<VView, Fan> createView() {
+		final Merchandise merchandise = BowlingFactory.eINSTANCE.createMerchandise();
+		final Fan fan = BowlingFactory.eINSTANCE.createFan();
+		fan.setFavouriteMerchandise(merchandise);
+
+		final VView view = VViewFactory.eINSTANCE.createView();
+		view.setRootEClass(fan.eClass());
+
+		final VVerticalLayout parentColumn = VVerticalFactory.eINSTANCE.createVerticalLayout();
+		view.getChildren().add(parentColumn);
+
+		final VVerticalLayout column = VVerticalFactory.eINSTANCE.createVerticalLayout();
+		parentColumn.getChildren().add(column);
+
+		final VControl controlPName = VViewFactory.eINSTANCE.createControl();
+
+		final VFeaturePathDomainModelReference domainModelReference = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		domainModelReference.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_Name());
+		domainModelReference.getDomainModelEReferencePath().add(BowlingPackage.eINSTANCE.getFan_FavouriteMerchandise());
+		controlPName.setDomainModelReference(domainModelReference);
+
+		column.getChildren().add(controlPName);
+		return Tuple.create(view, fan);
+	}
+
+	@Before
+	public void setup() {
+		realm = new DefaultRealm();
+	}
+
+	/**
+	 * Tear down.
+	 *
+	 * @throws Exception the exception
+	 */
+	@After
+	public void tearDown() throws Exception {
+		if (context != null) {
+			context.dispose();
+		}
+		realm.dispose();
+	}
+
+	/**
+	 * Instantiate rule service.
+	 *
+	 * @return the rule service
+	 */
+	private RuleService instantiateRuleService(VView view, final EObject domainModel) {
+		final RuleService ruleService = new RuleService();
+		final RuleServiceHelperImpl ruleServiceHelper = new RuleServiceHelperImpl();
+		context = ViewModelContextFactory.INSTANCE.createViewModelContext(view, domainModel);
+		ruleService.instantiate(context);
+		ruleServiceHelper.instantiate(context);
+		return ruleService;
+	}
+
+	@Test
+	public void testRemoveShowRule() {
+		final Tuple<VView, Fan> tuple = createView();
+		final VView view = tuple.first();
+		final Fan fan = tuple.second();
+		fan.setName("foo");
+		addShowRule(view.getChildren().get(0), false, BowlingPackage.eINSTANCE.getFan_Name(), "foo");
+		final GCCollectable collectable = new GCCollectable(
+			view.getChildren().get(0).getAttachments().get(0));
+		instantiateRuleService(view, fan);
+		view.getChildren().get(0).getAttachments().remove(0);
+
+		assertTrue(collectable.isCollectable());
+		assertTrue(view.getChildren().get(0).isVisible());
+	}
+
+	@Test
+	public void testRemoveShowRuleWithoutCondition() {
+		final Tuple<VView, Fan> tuple = createView();
+		final VView view = tuple.first();
+		final Fan fan = tuple.second();
+		addShowRule(view.getChildren().get(0), false);
+		final GCCollectable collectable = new GCCollectable(
+			view.getChildren().get(0).getAttachments().get(0));
+		instantiateRuleService(view, fan);
+		view.getChildren().get(0).getAttachments().remove(0);
+		assertTrue(collectable.isCollectable());
+	}
+
+	@Test
+	public void testRemoveEnableRuleWithoutCondition() {
+		final Tuple<VView, Fan> tuple = createView();
+		final VView view = tuple.first();
+		final Fan fan = tuple.second();
+		addEnableRule(view.getChildren().get(0), false);
+		final GCCollectable collectable = new GCCollectable(
+			view.getChildren().get(0).getAttachments().get(0));
+		instantiateRuleService(view, fan);
+		view.getChildren().get(0).getAttachments().remove(0);
+		assertTrue(collectable.isCollectable());
+	}
+
+	@Test
+	public void testRemoveEnableRule() {
+		final Tuple<VView, Fan> tuple = createView();
+		final VView view = tuple.first();
+		final Fan fan = tuple.second();
+		fan.setName("foo");
+		addEnableRule(view.getChildren().get(0), false, BowlingPackage.eINSTANCE.getFan_Name(), "foo");
+		final GCCollectable collectable = new GCCollectable(
+			view.getChildren().get(0).getAttachments().get(0));
+		instantiateRuleService(view, fan);
+		view.getChildren().get(0).getAttachments().remove(0);
+
+		assertTrue(collectable.isCollectable());
+		assertTrue(view.getChildren().get(0).isEnabled());
+	}
+
+	@Test
+	public void testRemoveLeafConditionOfShowRuleReevaluate() {
+		final Tuple<VView, Fan> tuple = createView();
+		final VView view = tuple.first();
+		final Fan fan = tuple.second();
+		fan.setName("foo");
+		addShowRule(view.getChildren().get(0), false, BowlingPackage.eINSTANCE.getFan_Name(), "foo");
+		final GCCollectable collectable = new GCCollectable(
+			((ShowRule) view.getChildren().get(0).getAttachments().get(0)).getCondition());
+		instantiateRuleService(view, fan);
+		final ShowRule showRule = (ShowRule) view.getChildren().get(0).getAttachments().get(0);
+
+		assertFalse(view.getChildren().get(0).isVisible());
+		showRule.setCondition(null);
+		assertTrue(collectable.isCollectable());
+		assertTrue(view.getChildren().get(0).isVisible());
+	}
+
+	@Test
+	public void testRemoveAndConditionOfShowRule() {
+		final Tuple<VView, Fan> tuple = createView();
+		final VView view = tuple.first();
+		final Fan fan = tuple.second();
+		addLeagueShowRuleWithAndCondition(view.getChildren().get(0), false,
+			createLeafCondition(BowlingPackage.eINSTANCE.getFan_Name(), "Fan"),
+			createLeafCondition(BowlingPackage.eINSTANCE.getFan_Name(), "Fan2"));
+
+		final GCCollectable collectable = new GCCollectable(
+			((ShowRule) view.getChildren().get(0).getAttachments().get(0)).getCondition());
+		instantiateRuleService(view, fan);
+		final ShowRule showRule = (ShowRule) view.getChildren().get(0).getAttachments().get(0);
+		showRule.setCondition(null);
+		assertTrue(collectable.isCollectable());
+	}
+
+	@Test
+	public void testRemoveAndConditionOfEnableRule() {
+		final Tuple<VView, Fan> tuple = createView();
+		final VView view = tuple.first();
+		final Fan fan = tuple.second();
+		addLeagueEnableRuleWithAndCondition(view.getChildren().get(0), false,
+			createLeafCondition(BowlingPackage.eINSTANCE.getFan_Name(), "Fan"),
+			createLeafCondition(BowlingPackage.eINSTANCE.getFan_Name(), "Fan2"));
+
+		final GCCollectable collectable = new GCCollectable(
+			((EnableRule) view.getChildren().get(0).getAttachments().get(0)).getCondition());
+		instantiateRuleService(view, fan);
+		final EnableRule enableRule = (EnableRule) view.getChildren().get(0).getAttachments().get(0);
+		enableRule.setCondition(null);
+		assertTrue(collectable.isCollectable());
+	}
+
+	@Test
+	public void testRemoveOrConditionOfEnableRule() {
+		final Tuple<VView, Fan> tuple = createView();
+		final VView view = tuple.first();
+		final Fan fan = tuple.second();
+		addLeagueShowRuleWithOrCondition(view.getChildren().get(0), false,
+			createLeafCondition(BowlingPackage.eINSTANCE.getFan_Name(), "Fan"),
+			createLeafCondition(BowlingPackage.eINSTANCE.getFan_Name(), "Fan2"));
+
+		final GCCollectable collectable = new GCCollectable(
+			((ShowRule) view.getChildren().get(0).getAttachments().get(0)).getCondition());
+		instantiateRuleService(view, fan);
+		final ShowRule showRule = (ShowRule) view.getChildren().get(0).getAttachments().get(0);
+		showRule.setCondition(null);
+		assertTrue(collectable.isCollectable());
+	}
+
+	@Test
+	public void testRemoveLeafConditionOfEnableRule() {
+		final Tuple<VView, Fan> tuple = createView();
+		final VView view = tuple.first();
+		final Fan fan = tuple.second();
+		addEnableRule(view.getChildren().get(0), false, BowlingPackage.eINSTANCE.getFan_Name(), "foo");
+		final EnableRule enableRule = (EnableRule) view.getChildren().get(0).getAttachments().get(0);
+		final GCCollectable collectable = new GCCollectable(enableRule.getCondition());
+		instantiateRuleService(view, fan);
+		enableRule.setCondition(null);
+		assertTrue(collectable.isCollectable());
+	}
+
+	@Test
+	public void testRemoveLeafConditionOfShowRule() {
+		final Tuple<VView, Fan> tuple = createView();
+		final VView view = tuple.first();
+		final Fan fan = tuple.second();
+		addShowRule(view.getChildren().get(0), false, BowlingPackage.eINSTANCE.getFan_Name(), "foo");
+		final ShowRule showRule = (ShowRule) view.getChildren().get(0).getAttachments().get(0);
+		final GCCollectable collectable = new GCCollectable(showRule.getCondition());
+		instantiateRuleService(view, fan);
+		showRule.setCondition(null);
+		assertTrue(collectable.isCollectable());
+	}
+
+	@Test
+	public void testRemoveLeafConditionOfEnableRuleReevaluate() {
+		final Tuple<VView, Fan> tuple = createView();
+		final VView view = tuple.first();
+		final Fan fan = tuple.second();
+		fan.setName("foo");
+		addEnableRule(view.getChildren().get(0), false, BowlingPackage.eINSTANCE.getFan_Name(), "foo");
+		final GCCollectable collectable = new GCCollectable(
+			((EnableRule) view.getChildren().get(0).getAttachments().get(0)).getCondition());
+		instantiateRuleService(view, fan);
+		final EnableRule enableRule = (EnableRule) view.getChildren().get(0).getAttachments().get(0);
+
+		assertFalse(view.getChildren().get(0).isEnabled());
+		enableRule.setCondition(null);
+		assertTrue(collectable.isCollectable());
+		assertTrue(view.getChildren().get(0).isEnabled());
+	}
+
+	@Test
+	public void testRemoveOrConditionOfShowRule() {
+		final Tuple<VView, Fan> tuple = createView();
+		final VView view = tuple.first();
+		final Fan fan = tuple.second();
+
+		addLeagueShowRuleWithOrCondition(view.getChildren().get(0), false,
+			createLeafCondition(BowlingPackage.eINSTANCE.getFan_Name(), "Fan"),
+			createLeafCondition(BowlingPackage.eINSTANCE.getFan_Name(), "Fan2"));
+
+		final GCCollectable collectable = new GCCollectable(
+			((ShowRule) view.getChildren().get(0).getAttachments().get(0)).getCondition());
+		instantiateRuleService(view, fan);
+		final ShowRule showRule = (ShowRule) view.getChildren().get(0).getAttachments().get(0);
+		showRule.setCondition(null);
+		assertTrue(collectable.isCollectable());
+	}
+
+	@Test
+	public void testRemoveOrConditionBOfEnableRuleReevaluate() {
+		final Tuple<VView, Fan> tuple = createView();
+		final VView view = tuple.first();
+		final Fan fan = tuple.second();
+		fan.setName("foo");
+
+		addLeagueEnableRuleWithOrCondition(view.getChildren().get(0), false,
+			createLeafCondition(BowlingPackage.eINSTANCE.getFan_Name(), "foo"),
+			createLeafCondition(BowlingPackage.eINSTANCE.getFan_Name(), "Fan2"));
+
+		final GCCollectable collectable = new GCCollectable(
+			EnableRule.class.cast(view.getChildren().get(0).getAttachments().get(0)).getCondition());
+		final GCCollectable ruleCollectable = new GCCollectable(
+			view.getChildren().get(0).getAttachments().get(0));
+
+		instantiateRuleService(view, fan);
+		final EnableRule enableRule = (EnableRule) view.getChildren().get(0).getAttachments().get(0);
+
+		assertFalse(view.getChildren().get(0).isEnabled());
+		enableRule.setCondition(null);
+		assertTrue(collectable.isCollectable());
+		assertFalse(ruleCollectable.isCollectable());
+		assertTrue(view.getChildren().get(0).isEnabled());
+	}
+
+	@Test
+	public void testRemoveRenderableWithShowRule() {
+		final Tuple<VView, Fan> tuple = createView();
+		final VView view = tuple.first();
+		final Fan fan = tuple.second();
+		addShowRule(view.getChildren().get(0), false, BowlingPackage.eINSTANCE.getFan_Name(), "foo");
+		final GCCollectable collectable = new GCCollectable(
+			view.getChildren().get(0).getAttachments().get(0));
+		instantiateRuleService(view, fan);
+		view.getChildren().remove(view.getChildren().get(0));
+		assertTrue(collectable.isCollectable());
+	}
+
+	@Test
+	public void testRemoveRenderableWithEnableRule() {
+		final Tuple<VView, Fan> tuple = createView();
+		final VView view = tuple.first();
+		final Fan fan = tuple.second();
+		addEnableRule(view.getChildren().get(0), false, BowlingPackage.eINSTANCE.getFan_Name(), "foo");
+		final GCCollectable collectable = new GCCollectable(
+			view.getChildren().get(0).getAttachments().get(0));
+		instantiateRuleService(view, fan);
+		view.getChildren().remove(view.getChildren().get(0));
+		assertTrue(collectable.isCollectable());
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.rule.test/src/org/eclipse/emf/ecp/view/rule/test/RuleServiceGC_Test.java b/tests/org.eclipse.emf.ecp.view.rule.test/src/org/eclipse/emf/ecp/view/rule/test/RuleServiceGC_Test.java
deleted file mode 100644
index 986e864..0000000
--- a/tests/org.eclipse.emf.ecp.view.rule.test/src/org/eclipse/emf/ecp/view/rule/test/RuleServiceGC_Test.java
+++ /dev/null
@@ -1,336 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Edgar - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.rule.test;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecp.view.internal.rule.RuleService;
-import org.eclipse.emf.ecp.view.internal.rule.RuleServiceHelperImpl;
-import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
-import org.eclipse.emf.ecp.view.spi.context.ViewModelContextFactory;
-import org.eclipse.emf.ecp.view.spi.model.VControl;
-import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
-import org.eclipse.emf.ecp.view.spi.model.VView;
-import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
-import org.eclipse.emf.ecp.view.spi.rule.model.EnableRule;
-import org.eclipse.emf.ecp.view.spi.rule.model.ShowRule;
-import org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalFactory;
-import org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalLayout;
-import org.eclipse.emf.ecp.view.test.common.spi.GCCollectable;
-import org.eclipse.emf.ecp.view.test.common.spi.Tuple;
-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.Player;
-import org.junit.After;
-import org.junit.Test;
-
-public class RuleServiceGC_Test extends CommonRuleTest {
-
-	private ViewModelContext context;
-
-	private Tuple<VView, League> createView() {
-		final Player player = BowlingFactory.eINSTANCE.createPlayer();
-		final League league = BowlingFactory.eINSTANCE.createLeague();
-		league.getPlayers().add(player);
-
-		final VView view = VViewFactory.eINSTANCE.createView();
-		view.setRootEClass(league.eClass());
-
-		final VVerticalLayout parentColumn = VVerticalFactory.eINSTANCE.createVerticalLayout();
-		view.getChildren().add(parentColumn);
-
-		final VVerticalLayout column = VVerticalFactory.eINSTANCE.createVerticalLayout();
-		parentColumn.getChildren().add(column);
-
-		final VControl controlPName = VViewFactory.eINSTANCE.createControl();
-
-		final VFeaturePathDomainModelReference domainModelReference = VViewFactory.eINSTANCE
-			.createFeaturePathDomainModelReference();
-		domainModelReference.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_Name());
-		domainModelReference.getDomainModelEReferencePath().add(BowlingPackage.eINSTANCE.getLeague_Players());
-		controlPName.setDomainModelReference(domainModelReference);
-
-		column.getChildren().add(controlPName);
-		return Tuple.create(view, league);
-	}
-
-	/**
-	 * Tear down.
-	 *
-	 * @throws Exception the exception
-	 */
-	@After
-	public void tearDown() throws Exception {
-		if (context != null) {
-			context.dispose();
-		}
-	}
-
-	/**
-	 * Instantiate rule service.
-	 *
-	 * @return the rule service
-	 */
-	private RuleService instantiateRuleService(VView view, final EObject domainModel) {
-		final RuleService ruleService = new RuleService();
-		final RuleServiceHelperImpl ruleServiceHelper = new RuleServiceHelperImpl();
-		context = ViewModelContextFactory.INSTANCE.createViewModelContext(view, domainModel);
-		ruleService.instantiate(context);
-		ruleServiceHelper.instantiate(context);
-		return ruleService;
-	}
-
-	@Test
-	public void testRemoveShowRule() {
-		final Tuple<VView, League> tuple = createView();
-		final VView view = tuple.first();
-		final League league = tuple.second();
-		league.setName("foo");
-		addShowRule(view.getChildren().get(0), false, BowlingPackage.eINSTANCE.getLeague_Name(), "foo");
-		final GCCollectable collectable = new GCCollectable(
-			view.getChildren().get(0).getAttachments().get(0));
-		instantiateRuleService(view, league);
-		view.getChildren().get(0).getAttachments().remove(0);
-
-		assertTrue(collectable.isCollectable());
-		assertTrue(view.getChildren().get(0).isVisible());
-	}
-
-	@Test
-	public void testRemoveShowRuleWithoutCondition() {
-		final Tuple<VView, League> tuple = createView();
-		final VView view = tuple.first();
-		final League league = tuple.second();
-		addShowRule(view.getChildren().get(0), false);
-		final GCCollectable collectable = new GCCollectable(
-			view.getChildren().get(0).getAttachments().get(0));
-		instantiateRuleService(view, league);
-		view.getChildren().get(0).getAttachments().remove(0);
-		assertTrue(collectable.isCollectable());
-	}
-
-	@Test
-	public void testRemoveEnableRuleWithoutCondition() {
-		final Tuple<VView, League> tuple = createView();
-		final VView view = tuple.first();
-		final League league = tuple.second();
-		addEnableRule(view.getChildren().get(0), false);
-		final GCCollectable collectable = new GCCollectable(
-			view.getChildren().get(0).getAttachments().get(0));
-		instantiateRuleService(view, league);
-		view.getChildren().get(0).getAttachments().remove(0);
-		assertTrue(collectable.isCollectable());
-	}
-
-	@Test
-	public void testRemoveEnableRule() {
-		final Tuple<VView, League> tuple = createView();
-		final VView view = tuple.first();
-		final League league = tuple.second();
-		league.setName("foo");
-		addEnableRule(view.getChildren().get(0), false, BowlingPackage.eINSTANCE.getLeague_Name(), "foo");
-		final GCCollectable collectable = new GCCollectable(
-			view.getChildren().get(0).getAttachments().get(0));
-		instantiateRuleService(view, league);
-		view.getChildren().get(0).getAttachments().remove(0);
-
-		assertTrue(collectable.isCollectable());
-		assertTrue(view.getChildren().get(0).isEnabled());
-	}
-
-	@Test
-	public void testRemoveLeafConditionOfShowRuleReevaluate() {
-		final Tuple<VView, League> tuple = createView();
-		final VView view = tuple.first();
-		final League league = tuple.second();
-		league.setName("foo");
-		addShowRule(view.getChildren().get(0), false, BowlingPackage.eINSTANCE.getLeague_Name(), "foo");
-		final GCCollectable collectable = new GCCollectable(
-			((ShowRule) view.getChildren().get(0).getAttachments().get(0)).getCondition());
-		instantiateRuleService(view, league);
-		final ShowRule showRule = (ShowRule) view.getChildren().get(0).getAttachments().get(0);
-
-		assertFalse(view.getChildren().get(0).isVisible());
-		showRule.setCondition(null);
-		assertTrue(collectable.isCollectable());
-		assertTrue(view.getChildren().get(0).isVisible());
-	}
-
-	@Test
-	public void testRemoveAndConditionOfShowRule() {
-		final Tuple<VView, League> tuple = createView();
-		final VView view = tuple.first();
-		final League league = tuple.second();
-		addLeagueShowRuleWithAndCondition(view.getChildren().get(0), false,
-			createLeafCondition(BowlingPackage.eINSTANCE.getLeague_Name(), "League"),
-			createLeafCondition(BowlingPackage.eINSTANCE.getLeague_Name(), "League2"));
-
-		final GCCollectable collectable = new GCCollectable(
-			((ShowRule) view.getChildren().get(0).getAttachments().get(0)).getCondition());
-		instantiateRuleService(view, league);
-		final ShowRule showRule = (ShowRule) view.getChildren().get(0).getAttachments().get(0);
-		showRule.setCondition(null);
-		assertTrue(collectable.isCollectable());
-	}
-
-	@Test
-	public void testRemoveAndConditionOfEnableRule() {
-		final Tuple<VView, League> tuple = createView();
-		final VView view = tuple.first();
-		final League league = tuple.second();
-		addLeagueEnableRuleWithAndCondition(view.getChildren().get(0), false,
-			createLeafCondition(BowlingPackage.eINSTANCE.getLeague_Name(), "League"),
-			createLeafCondition(BowlingPackage.eINSTANCE.getLeague_Name(), "League2"));
-
-		final GCCollectable collectable = new GCCollectable(
-			((EnableRule) view.getChildren().get(0).getAttachments().get(0)).getCondition());
-		instantiateRuleService(view, league);
-		final EnableRule enableRule = (EnableRule) view.getChildren().get(0).getAttachments().get(0);
-		enableRule.setCondition(null);
-		assertTrue(collectable.isCollectable());
-	}
-
-	@Test
-	public void testRemoveOrConditionOfEnableRule() {
-		final Tuple<VView, League> tuple = createView();
-		final VView view = tuple.first();
-		final League league = tuple.second();
-		addLeagueShowRuleWithOrCondition(view.getChildren().get(0), false,
-			createLeafCondition(BowlingPackage.eINSTANCE.getLeague_Name(), "League"),
-			createLeafCondition(BowlingPackage.eINSTANCE.getLeague_Name(), "League2"));
-
-		final GCCollectable collectable = new GCCollectable(
-			((ShowRule) view.getChildren().get(0).getAttachments().get(0)).getCondition());
-		instantiateRuleService(view, league);
-		final ShowRule showRule = (ShowRule) view.getChildren().get(0).getAttachments().get(0);
-		showRule.setCondition(null);
-		assertTrue(collectable.isCollectable());
-	}
-
-	@Test
-	public void testRemoveLeafConditionOfEnableRule() {
-		final Tuple<VView, League> tuple = createView();
-		final VView view = tuple.first();
-		final League league = tuple.second();
-		addEnableRule(view.getChildren().get(0), false, BowlingPackage.eINSTANCE.getLeague_Name(), "foo");
-		final EnableRule enableRule = (EnableRule) view.getChildren().get(0).getAttachments().get(0);
-		final GCCollectable collectable = new GCCollectable(enableRule.getCondition());
-		instantiateRuleService(view, league);
-		enableRule.setCondition(null);
-		assertTrue(collectable.isCollectable());
-	}
-
-	@Test
-	public void testRemoveLeafConditionOfShowRule() {
-		final Tuple<VView, League> tuple = createView();
-		final VView view = tuple.first();
-		final League league = tuple.second();
-		addShowRule(view.getChildren().get(0), false, BowlingPackage.eINSTANCE.getLeague_Name(), "foo");
-		final ShowRule showRule = (ShowRule) view.getChildren().get(0).getAttachments().get(0);
-		final GCCollectable collectable = new GCCollectable(showRule.getCondition());
-		instantiateRuleService(view, league);
-		showRule.setCondition(null);
-		assertTrue(collectable.isCollectable());
-	}
-
-	@Test
-	public void testRemoveLeafConditionOfEnableRuleReevaluate() {
-		final Tuple<VView, League> tuple = createView();
-		final VView view = tuple.first();
-		final League league = tuple.second();
-		league.setName("foo");
-		addEnableRule(view.getChildren().get(0), false, BowlingPackage.eINSTANCE.getLeague_Name(), "foo");
-		final GCCollectable collectable = new GCCollectable(
-			((EnableRule) view.getChildren().get(0).getAttachments().get(0)).getCondition());
-		instantiateRuleService(view, league);
-		final EnableRule enableRule = (EnableRule) view.getChildren().get(0).getAttachments().get(0);
-
-		assertFalse(view.getChildren().get(0).isEnabled());
-		enableRule.setCondition(null);
-		assertTrue(collectable.isCollectable());
-		assertTrue(view.getChildren().get(0).isEnabled());
-	}
-
-	@Test
-	public void testRemoveOrConditionOfShowRule() {
-		final Tuple<VView, League> tuple = createView();
-		final VView view = tuple.first();
-		final League league = tuple.second();
-
-		addLeagueShowRuleWithOrCondition(view.getChildren().get(0), false,
-			createLeafCondition(BowlingPackage.eINSTANCE.getLeague_Name(), "League"),
-			createLeafCondition(BowlingPackage.eINSTANCE.getLeague_Name(), "League2"));
-
-		final GCCollectable collectable = new GCCollectable(
-			((ShowRule) view.getChildren().get(0).getAttachments().get(0)).getCondition());
-		instantiateRuleService(view, league);
-		final ShowRule showRule = (ShowRule) view.getChildren().get(0).getAttachments().get(0);
-		showRule.setCondition(null);
-		assertTrue(collectable.isCollectable());
-	}
-
-	@Test
-	public void testRemoveOrConditionBOfEnableRuleReevaluate() {
-		final Tuple<VView, League> tuple = createView();
-		final VView view = tuple.first();
-		final League league = tuple.second();
-		league.setName("foo");
-
-		addLeagueEnableRuleWithOrCondition(view.getChildren().get(0), false,
-			createLeafCondition(BowlingPackage.eINSTANCE.getLeague_Name(), "foo"),
-			createLeafCondition(BowlingPackage.eINSTANCE.getLeague_Name(), "League2"));
-
-		final GCCollectable collectable = new GCCollectable(
-			EnableRule.class.cast(view.getChildren().get(0).getAttachments().get(0)).getCondition());
-		final GCCollectable ruleCollectable = new GCCollectable(
-			view.getChildren().get(0).getAttachments().get(0));
-
-		instantiateRuleService(view, league);
-		final EnableRule enableRule = (EnableRule) view.getChildren().get(0).getAttachments().get(0);
-
-		assertFalse(view.getChildren().get(0).isEnabled());
-		enableRule.setCondition(null);
-		assertTrue(collectable.isCollectable());
-		assertFalse(ruleCollectable.isCollectable());
-		assertTrue(view.getChildren().get(0).isEnabled());
-	}
-
-	@Test
-	public void testRemoveRenderableWithShowRule() {
-		final Tuple<VView, League> tuple = createView();
-		final VView view = tuple.first();
-		final League league = tuple.second();
-		addShowRule(view.getChildren().get(0), false, BowlingPackage.eINSTANCE.getLeague_Name(), "foo");
-		final GCCollectable collectable = new GCCollectable(
-			view.getChildren().get(0).getAttachments().get(0));
-		instantiateRuleService(view, league);
-		view.getChildren().remove(view.getChildren().get(0));
-		assertTrue(collectable.isCollectable());
-	}
-
-	@Test
-	public void testRemoveRenderableWithEnableRule() {
-		final Tuple<VView, League> tuple = createView();
-		final VView view = tuple.first();
-		final League league = tuple.second();
-		addEnableRule(view.getChildren().get(0), false, BowlingPackage.eINSTANCE.getLeague_Name(), "foo");
-		final GCCollectable collectable = new GCCollectable(
-			view.getChildren().get(0).getAttachments().get(0));
-		instantiateRuleService(view, league);
-		view.getChildren().remove(view.getChildren().get(0));
-		assertTrue(collectable.isCollectable());
-	}
-
-}
diff --git a/tests/org.eclipse.emf.ecp.view.rule.test/src/org/eclipse/emf/ecp/view/rule/test/RuleService_PTest.java b/tests/org.eclipse.emf.ecp.view.rule.test/src/org/eclipse/emf/ecp/view/rule/test/RuleService_PTest.java
index 05d9e02..8fdb3af 100644
--- a/tests/org.eclipse.emf.ecp.view.rule.test/src/org/eclipse/emf/ecp/view/rule/test/RuleService_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.rule.test/src/org/eclipse/emf/ecp/view/rule/test/RuleService_PTest.java
@@ -32,6 +32,7 @@
 import org.eclipse.emf.ecore.impl.BasicEObjectImpl;
 import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.emf.ecp.common.spi.UniqueSetting;
+import org.eclipse.emf.ecp.test.common.DefaultRealm;
 import org.eclipse.emf.ecp.test.university.Assistant;
 import org.eclipse.emf.ecp.test.university.Person;
 import org.eclipse.emf.ecp.test.university.Professor;
@@ -45,6 +46,8 @@
 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.indexdmr.model.VIndexDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexdmrFactory;
 import org.eclipse.emf.ecp.view.spi.model.ModelChangeListener;
 import org.eclipse.emf.ecp.view.spi.model.VAttachment;
 import org.eclipse.emf.ecp.view.spi.model.VControl;
@@ -276,6 +279,8 @@
 
 	private ViewModelContext context;
 
+	private DefaultRealm realm;
+
 	/**
 	 * Sets the up.
 	 *
@@ -283,6 +288,7 @@
 	 */
 	@Before
 	public void setUp() throws Exception {
+		realm = new DefaultRealm();
 		player = BowlingFactory.eINSTANCE.createPlayer();
 		league = BowlingFactory.eINSTANCE.createLeague();
 		league.getPlayers().add(player);
@@ -298,11 +304,14 @@
 
 		controlPName = VViewFactory.eINSTANCE.createControl();
 
+		final VIndexDomainModelReference indexDMR = VIndexdmrFactory.eINSTANCE.createIndexDomainModelReference();
+		indexDMR.setIndex(0);
+		indexDMR.setDomainModelEFeature(BowlingPackage.eINSTANCE.getLeague_Players());
 		final VFeaturePathDomainModelReference domainModelReference = VViewFactory.eINSTANCE
 			.createFeaturePathDomainModelReference();
 		domainModelReference.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_Name());
-		domainModelReference.getDomainModelEReferencePath().add(BowlingPackage.eINSTANCE.getLeague_Players());
-		controlPName.setDomainModelReference(domainModelReference);
+		indexDMR.setTargetDMR(domainModelReference);
+		controlPName.setDomainModelReference(indexDMR);
 
 		column.getChildren().add(controlPName);
 
@@ -318,6 +327,7 @@
 		if (context != null) {
 			context.dispose();
 		}
+		realm.dispose();
 	}
 
 	private RuleService instantiateRuleService() {
@@ -708,11 +718,14 @@
 	public void testShowRuleWithAndConditionBothConditionsApply() {
 
 		final VControl control1 = VViewFactory.eINSTANCE.createControl();
+		final VIndexDomainModelReference indexDMR = VIndexdmrFactory.eINSTANCE.createIndexDomainModelReference();
+		indexDMR.setDomainModelEFeature(BowlingPackage.eINSTANCE.getLeague_Players());
+		indexDMR.setIndex(0);
 		final VFeaturePathDomainModelReference domainModelReference = VViewFactory.eINSTANCE
 			.createFeaturePathDomainModelReference();
 		domainModelReference.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_Height());
-		domainModelReference.getDomainModelEReferencePath().add(BowlingPackage.eINSTANCE.getLeague_Players());
-		control1.setDomainModelReference(domainModelReference);
+		indexDMR.setTargetDMR(domainModelReference);
+		control1.setDomainModelReference(indexDMR);
 		column.getChildren().add(control1);
 
 		addLeagueShowRuleWithAndCondition(
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 f01d965..dbc785b 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Rule Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.rule.ui.swt.test
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Fragment-Host: org.eclipse.emf.ecp.view.rule;bundle-version="[1.5.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.junit;bundle-version="4.11.0",
@@ -13,6 +13,6 @@
  org.eclipse.swt;bundle-version="[3.1.0,4.0.0)",
  org.eclipse.emf.ecp.view.rule.test;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.5.0,2.0.0)"
-Export-Package: org.eclipse.emf.ecp.view.rule.ui.swt.test;version="1.5
- .1";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.rule.ui.swt.test;version="1.6
+ .0";x-internal:=true
 Bundle-Vendor: Eclipse Modeling Project
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 685cbf7..c47ae96 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -24,38 +24,46 @@
 				<configuration>
 		          	<useUIHarness>true</useUIHarness>
 		          	<useUIThread>true</useUIThread>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.viewmodel.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.template.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.rule.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.emfstore.example.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-					</dependencies>
+				</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.target.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.viewmodel.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.template.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.rule.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.emfstore.example.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
diff --git a/tests/org.eclipse.emf.ecp.view.rule.ui.swt.test/src/org/eclipse/emf/ecp/view/rule/ui/swt/test/RuleSWT_PTest.java b/tests/org.eclipse.emf.ecp.view.rule.ui.swt.test/src/org/eclipse/emf/ecp/view/rule/ui/swt/test/RuleSWT_PTest.java
index 32b17ac..d127e72 100644
--- a/tests/org.eclipse.emf.ecp.view.rule.ui.swt.test/src/org/eclipse/emf/ecp/view/rule/ui/swt/test/RuleSWT_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.rule.ui.swt.test/src/org/eclipse/emf/ecp/view/rule/ui/swt/test/RuleSWT_PTest.java
@@ -1,11 +1,11 @@
 /*******************************************************************************
  * 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 v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  * Jonas - initial API and implementation
  ******************************************************************************/
@@ -31,6 +31,7 @@
 import org.eclipse.emf.emfstore.bowling.BowlingPackage;
 import org.eclipse.emf.emfstore.bowling.Fan;
 import org.eclipse.emf.emfstore.bowling.Merchandise;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Shell;
 import org.junit.Before;
@@ -39,7 +40,7 @@
 
 /**
  * @author Jonas
- * 
+ *
  */
 @RunWith(DatabindingClassRunner.class)
 public class RuleSWT_PTest {
@@ -67,28 +68,32 @@
 	}
 
 	@Test
-	public void testEnableRuleWithFalse() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+	public void testEnableRuleWithFalse() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		EMFFormsNoRendererException {
 		addEnableRule();
 		render();
 		assertTrue(isControlEnabled());
 	}
 
 	@Test
-	public void testDisableRuleWithFalse() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+	public void testDisableRuleWithFalse() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		EMFFormsNoRendererException {
 		addDisableRule();
 		render();
 		assertTrue(isControlEnabled());
 	}
 
 	@Test
-	public void testVisibleRuleWithFalse() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+	public void testVisibleRuleWithFalse() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		EMFFormsNoRendererException {
 		addVisibleRule();
 		render();
 		assertTrue(isControlVisible());
 	}
 
 	@Test
-	public void testInVisibleRuleWithFalse() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+	public void testInVisibleRuleWithFalse() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		EMFFormsNoRendererException {
 		addInVisibleRule();
 		render();
 		assertTrue(isControlVisible());
@@ -96,7 +101,7 @@
 
 	@Test
 	public void testDisableRuleAndTrueLeafCondition() throws NoRendererFoundException,
-		NoPropertyDescriptorFoundExeption {
+		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
 		// setup model
 		final RuleHandle ruleHandle = addDisableRule();
 		RuleTestHelper.addTrueLeafCondition(ruleHandle.getRule());
@@ -106,7 +111,7 @@
 
 	@Test
 	public void testDisableRuleAndFalseLeafCondition() throws NoRendererFoundException,
-		NoPropertyDescriptorFoundExeption {
+		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
 		// setup model
 		final RuleHandle ruleHandle = addDisableRule();
 		RuleTestHelper.addFalseLeafCondition(ruleHandle.getRule());
@@ -116,7 +121,7 @@
 
 	@Test
 	public void testEnableRuleAndFalseLeafCondition() throws NoRendererFoundException,
-		NoPropertyDescriptorFoundExeption {
+		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
 		// setup model
 		final RuleHandle ruleHandle = addEnableRule();
 		RuleTestHelper.addFalseLeafCondition(ruleHandle.getRule());
@@ -126,7 +131,7 @@
 
 	@Test
 	public void testEnabledRuleAndTrueLeafCondition() throws NoRendererFoundException,
-		NoPropertyDescriptorFoundExeption {
+		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
 		// setup model
 		final RuleHandle ruleHandle = addEnableRule();
 		RuleTestHelper.addTrueLeafCondition(ruleHandle.getRule());
@@ -136,7 +141,7 @@
 
 	@Test
 	public void testInvisibleRuleAndFalseLeafCondition() throws NoRendererFoundException,
-		NoPropertyDescriptorFoundExeption {
+		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
 		// setup model
 		final RuleHandle ruleHandle = addInVisibleRule();
 		RuleTestHelper.addFalseLeafCondition(ruleHandle.getRule());
@@ -146,7 +151,7 @@
 
 	@Test
 	public void testInvisibleRuleAndTrueLeafCondition() throws NoRendererFoundException,
-		NoPropertyDescriptorFoundExeption {
+		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
 		// setup model
 		final RuleHandle ruleHandle = addInVisibleRule();
 		RuleTestHelper.addTrueLeafCondition(ruleHandle.getRule());
@@ -156,7 +161,7 @@
 
 	@Test
 	public void testVisibleRuleAndTrueLeafCondition() throws NoRendererFoundException,
-		NoPropertyDescriptorFoundExeption {
+		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
 		// setup model
 		final RuleHandle ruleHandle = addVisibleRule();
 		RuleTestHelper.addTrueLeafCondition(ruleHandle.getRule());
@@ -166,7 +171,7 @@
 
 	@Test
 	public void testVisibleRuleAndFalseLeafCondition() throws NoRendererFoundException,
-		NoPropertyDescriptorFoundExeption {
+		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
 		// setup model
 		final RuleHandle ruleHandle = addVisibleRule();
 		RuleTestHelper.addFalseLeafCondition(ruleHandle.getRule());
@@ -176,7 +181,7 @@
 
 	/**
 	 * @return
-	 * 
+	 *
 	 */
 	private RuleHandle addInVisibleRule() {
 		final RuleHandle invisibleShowRule = RuleTestHelper.createInvisibleShowRule();
@@ -194,7 +199,7 @@
 	}
 
 	/**
-	 * 
+	 *
 	 */
 	private RuleHandle addVisibleRule() {
 		final RuleHandle visibleShowRule = RuleTestHelper.createVisibleShowRule();
@@ -212,9 +217,11 @@
 	/**
 	 * @throws NoPropertyDescriptorFoundExeption
 	 * @throws NoRendererFoundException
-	 * 
+	 * @throws EMFFormsNoRendererException
+	 *
 	 */
-	private void render() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+	private void render() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		EMFFormsNoRendererException {
 		renderedControl = SWTViewTestHelper.render(view, input, shell);
 
 	}
diff --git a/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/.gitignore b/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/AllStackSWTTests.launch b/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/AllStackSWTTests.launch
index 78956a1..80d4bc9 100644
--- a/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/AllStackSWTTests.launch
+++ b/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/AllStackSWTTests.launch
@@ -1,44 +1,43 @@
-<?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="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.test.fx,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.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.graphiti.core,org.eclipse.emf.ecp.graphiti.integration,org.eclipse.emf.ecp.ide.editor.view,org.eclipse.emf.ecp.ide.editor.view.control,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.integrationtest,org.eclipse.emf.ecp.makeithappen.emailControlRenderer,org.eclipse.emf.ecp.makeithappen.model,org.eclipse.emf.ecp.makeithappen.model.edit,org.eclipse.emf.ecp.makeithappen.view.group.renderer,org.eclipse.emf.ecp.makeithappen.wizards,org.eclipse.emf.ecp.products,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.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*1.4.0.qualifier,org.eclipse.emf.ecp.ui.view.editor.controls.test,org.eclipse.emf.ecp.util.e4.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.context.locale,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.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*1.4.0.qualifier,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.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.databinding,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.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.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.stack.model.edit,org.eclipse.emf.ecp.view.stack.viewmodel*1.4.0.qualifier,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.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.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.treemasterdetail.model,org.eclipse.emf.ecp.view.treemasterdetail.model.edit,org.eclipse.emf.ecp.view.treemasterdetail.ui.swt,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,org.eclipse.emf.ecp.view.validation.test,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.viewmodel.fx,org.eclipse.emf.ecp.workspace.core,org.eclipse.emf.ecp.workspace.ui,org.eclipse.emf.emfstore.fx.util"/>
-<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.stack.ui.swt.test/src/org/eclipse/emf/ecp/view/stack/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"/>
-<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.stack.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.stack.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"/>
-<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.ant@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.logging@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.compatibility@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.cdo.ecore.retrofit@default:false,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.win32.x86_64@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@-1:true,org.eclipse.swt.win32.win32.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.win32@default:false,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.update.configurator@3:true,org.hamcrest.core@default:default,org.junit@default:default,org.mockito@default:default,org.objenesis@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@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.ui.rcp@default:false,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.test@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.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.stack.model@default:default,org.eclipse.emf.ecp.view.stack.ui.swt.test@default:false,org.eclipse.emf.ecp.view.stack.ui.swt@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.test.common.swt@default:default,org.eclipse.emf.ecp.view.util.swt@default:default,org.eclipse.emf.ecp.view.vertical.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>
+<?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.stack.ui.swt.test/src/org/eclipse/emf/ecp/view/stack/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"/>

+<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.stack.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.stack.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"/>

+<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.apache.commons.codec@default:default,org.apache.commons.logging@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.compatibility.registry@default:false,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.cdo.ecore.retrofit@default:false,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@-1:true,org.eclipse.swt.win32.win32.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-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.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.rcp@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.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.stack.model.edit@default:default,org.eclipse.emf.ecp.view.stack.model@default:default,org.eclipse.emf.ecp.view.stack.ui.swt.test@default:false,org.eclipse.emf.ecp.view.stack.ui.swt@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.vertical.model@default:default,org.eclipse.emf.rap.edit.ui.minimal@default:default,org.eclipse.emfforms.core.services.databinding.featurepath@default:default,org.eclipse.emfforms.core.services.databinding@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.locale.default@default:default,org.eclipse.emfforms.core.services@default:default,org.eclipse.emfforms.localization@default:default,org.eclipse.emfforms.swt.core.plugin@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>

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 a8a861d..fbb8abe 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,12 +2,13 @@
 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Fragment-Host: org.eclipse.emf.ecp.view.stack.ui.swt;bundle-version="[1.5.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: Eclipse Modeling Project
 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.5.0,2.0.0)"
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.6.0,2.0.0)"
 Export-Package: org.eclipse.emf.ecp.view.stack.ui.swt.test;version="1.
- 5.1";x-internal:=true
+ 6.0";x-internal:=true
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 254a1de..2d8707c 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -24,43 +24,61 @@
 				<configuration>
 					<useUIHarness>true</useUIHarness>
 					<useUIThread>true</useUIThread>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.viewmodel.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-                            <type>eclipse-feature</type>
-                            <artifactId>org.eclipse.emf.ecp.view.validation.feature</artifactId>
-                            <version>0.0.0</version>
-                        </dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.stack.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.template.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-                            <type>eclipse-feature</type>
-                            <artifactId>org.eclipse.emf.ecp.view.rule.feature</artifactId>
-                            <version>0.0.0</version>
-                        </dependency>
-					</dependencies>
+				</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.ds</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.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.emfforms.swt.core.plugin</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
diff --git a/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/src/org/eclipse/emf/ecp/view/stack/ui/swt/test/AllTests.java b/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/src/org/eclipse/emf/ecp/view/stack/ui/swt/test/AllTests.java
index ddb3440..01f9663 100644
--- a/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/src/org/eclipse/emf/ecp/view/stack/ui/swt/test/AllTests.java
+++ b/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/src/org/eclipse/emf/ecp/view/stack/ui/swt/test/AllTests.java
@@ -17,8 +17,8 @@
 
 @RunWith(Suite.class)
 @SuiteClasses({
-	StackItemViewService_Test.class,
-	DynamicDMRStackItemViewService_Test.class,
+	StackItemViewService_PTest.class,
+	DynamicDMRStackItemViewService_PTest.class,
 	SWTStack_PTest.class
 })
 public class AllTests {
diff --git a/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/src/org/eclipse/emf/ecp/view/stack/ui/swt/test/DynamicDMRStackItemViewService_PTest.java b/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/src/org/eclipse/emf/ecp/view/stack/ui/swt/test/DynamicDMRStackItemViewService_PTest.java
new file mode 100644
index 0000000..88a6142
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/src/org/eclipse/emf/ecp/view/stack/ui/swt/test/DynamicDMRStackItemViewService_PTest.java
@@ -0,0 +1,105 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.stack.ui.swt.test;
+
+import static org.junit.Assert.assertEquals;
+
+import org.eclipse.emf.ecp.test.common.DefaultRealm;
+import org.eclipse.emf.ecp.view.internal.stack.ui.swt.StackItemViewService;
+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.stack.model.VStackItem;
+import org.eclipse.emf.ecp.view.spi.stack.model.VStackLayout;
+import org.eclipse.emf.emfstore.bowling.BowlingFactory;
+import org.eclipse.emf.emfstore.bowling.BowlingPackage;
+import org.eclipse.emf.emfstore.bowling.Fan;
+import org.eclipse.emf.emfstore.bowling.Gender;
+import org.eclipse.emf.emfstore.bowling.Player;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+public class DynamicDMRStackItemViewService_PTest {
+
+	private DefaultRealm realm;
+	private Fan fan;
+	private ViewModelContext context;
+	private VView view;
+	private VStackLayout stackLayout;
+	private VStackItem femaleItem;
+	private VStackItem maleItem;
+	private Player player1;
+	private Player player2;
+
+	@After
+	public void after() {
+		if (context != null) {
+			context.dispose();
+		}
+		realm.dispose();
+	}
+
+	@Before
+	public void before() {
+		realm = new DefaultRealm();
+
+		fan = BowlingFactory.eINSTANCE.createFan();
+		player1 = BowlingFactory.eINSTANCE.createPlayer();
+		player2 = BowlingFactory.eINSTANCE.createPlayer();
+
+		view = VViewFactory.eINSTANCE.createView();
+		view.setRootEClass(BowlingPackage.eINSTANCE.getFan());
+
+		stackLayout = TestUtil.createStack(BowlingPackage.eINSTANCE.getPlayer_Gender(),
+			BowlingPackage.eINSTANCE.getFan_FavouritePlayer());
+		view.getChildren().add(stackLayout);
+
+		femaleItem = TestUtil.createItem(Gender.FEMALE, BowlingPackage.eINSTANCE.getPlayer_DateOfBirth());
+		stackLayout.getStackItems().add(femaleItem);
+
+		maleItem = TestUtil.createItem(Gender.MALE, BowlingPackage.eINSTANCE.getPlayer_EMails());
+		stackLayout.getStackItems().add(maleItem);
+	}
+
+	private void toMale(Player player) {
+		player.setGender(Gender.MALE);
+	}
+
+	private void toFemale(Player player) {
+		player.setGender(Gender.FEMALE);
+	}
+
+	private void favouritePlayer(Player player) {
+		fan.setFavouritePlayer(player);
+	}
+
+	private StackItemViewService viewService() {
+		final StackItemViewService unsetService = new StackItemViewService();
+		context = ViewModelContextFactory.INSTANCE.createViewModelContext(view, fan);
+		unsetService.instantiate(context);
+		return unsetService;
+	}
+
+	@Test
+	public void changeFavouritePlayer() {
+		toMale(player1);
+		toFemale(player2);
+		favouritePlayer(player1);
+		viewService();
+		assertEquals(maleItem, stackLayout.getTopElement());
+		favouritePlayer(player2);
+		assertEquals(femaleItem, stackLayout.getTopElement());
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/src/org/eclipse/emf/ecp/view/stack/ui/swt/test/DynamicDMRStackItemViewService_Test.java b/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/src/org/eclipse/emf/ecp/view/stack/ui/swt/test/DynamicDMRStackItemViewService_Test.java
deleted file mode 100644
index b1c3634..0000000
--- a/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/src/org/eclipse/emf/ecp/view/stack/ui/swt/test/DynamicDMRStackItemViewService_Test.java
+++ /dev/null
@@ -1,100 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Johannes Faltermeier - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.stack.ui.swt.test;
-
-import static org.junit.Assert.assertEquals;
-
-import org.eclipse.emf.ecp.view.internal.stack.ui.swt.StackItemViewService;
-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.stack.model.VStackItem;
-import org.eclipse.emf.ecp.view.spi.stack.model.VStackLayout;
-import org.eclipse.emf.emfstore.bowling.BowlingFactory;
-import org.eclipse.emf.emfstore.bowling.BowlingPackage;
-import org.eclipse.emf.emfstore.bowling.Fan;
-import org.eclipse.emf.emfstore.bowling.Gender;
-import org.eclipse.emf.emfstore.bowling.Player;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-public class DynamicDMRStackItemViewService_Test {
-
-	private Fan fan;
-	private ViewModelContext context;
-	private VView view;
-	private VStackLayout stackLayout;
-	private VStackItem femaleItem;
-	private VStackItem maleItem;
-	private Player player1;
-	private Player player2;
-
-	@After
-	public void after() {
-		if (context != null) {
-			context.dispose();
-		}
-	}
-
-	@Before
-	public void before() {
-		fan = BowlingFactory.eINSTANCE.createFan();
-		player1 = BowlingFactory.eINSTANCE.createPlayer();
-		player2 = BowlingFactory.eINSTANCE.createPlayer();
-
-		view = VViewFactory.eINSTANCE.createView();
-		view.setRootEClass(BowlingPackage.eINSTANCE.getFan());
-
-		stackLayout = TestUtil.createStack(BowlingPackage.eINSTANCE.getPlayer_Gender(),
-			BowlingPackage.eINSTANCE.getFan_FavouritePlayer());
-		view.getChildren().add(stackLayout);
-
-		femaleItem = TestUtil.createItem(Gender.FEMALE, BowlingPackage.eINSTANCE.getPlayer_DateOfBirth());
-		stackLayout.getStackItems().add(femaleItem);
-
-		maleItem = TestUtil.createItem(Gender.MALE, BowlingPackage.eINSTANCE.getPlayer_EMails());
-		stackLayout.getStackItems().add(maleItem);
-	}
-
-	private void toMale(Player player) {
-		player.setGender(Gender.MALE);
-	}
-
-	private void toFemale(Player player) {
-		player.setGender(Gender.FEMALE);
-	}
-
-	private void favouritePlayer(Player player) {
-		fan.setFavouritePlayer(player);
-	}
-
-	private StackItemViewService viewService() {
-		final StackItemViewService unsetService = new StackItemViewService();
-		context = ViewModelContextFactory.INSTANCE.createViewModelContext(view, fan);
-		unsetService.instantiate(context);
-		return unsetService;
-	}
-
-	@Test
-	public void changeFavouritePlayer() {
-		toMale(player1);
-		toFemale(player2);
-		favouritePlayer(player1);
-		viewService();
-		assertEquals(maleItem, stackLayout.getTopElement());
-		favouritePlayer(player2);
-		assertEquals(femaleItem, stackLayout.getTopElement());
-	}
-
-}
diff --git a/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/src/org/eclipse/emf/ecp/view/stack/ui/swt/test/StackItemViewService_PTest.java b/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/src/org/eclipse/emf/ecp/view/stack/ui/swt/test/StackItemViewService_PTest.java
new file mode 100644
index 0000000..824f204
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/src/org/eclipse/emf/ecp/view/stack/ui/swt/test/StackItemViewService_PTest.java
@@ -0,0 +1,186 @@
+/**
+ * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ */
+package org.eclipse.emf.ecp.view.stack.ui.swt.test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+import org.eclipse.emf.ecp.test.common.DefaultRealm;
+import org.eclipse.emf.ecp.view.internal.stack.ui.swt.StackItemViewService;
+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.stack.model.VStackItem;
+import org.eclipse.emf.ecp.view.spi.stack.model.VStackLayout;
+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.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+public class StackItemViewService_PTest {
+
+	private static final String NAME = "Name";
+	private DefaultRealm realm;
+	private Player domain;
+	private ViewModelContext context;
+	private VView view;
+	private VStackLayout stackLayout;
+	private VStackItem femaleItem;
+	private VStackItem maleItem;
+
+	@After
+	public void after() {
+		context.dispose();
+		realm.dispose();
+	}
+
+	@Before
+	public void before() {
+		realm = new DefaultRealm();
+
+		domain = BowlingFactory.eINSTANCE.createPlayer();
+
+		view = VViewFactory.eINSTANCE.createView();
+		view.setRootEClass(BowlingPackage.eINSTANCE.getPlayer());
+
+		stackLayout = TestUtil.createStack(BowlingPackage.eINSTANCE.getPlayer_Gender());
+		view.getChildren().add(stackLayout);
+
+		femaleItem = TestUtil.createItem(Gender.FEMALE, BowlingPackage.eINSTANCE.getPlayer_DateOfBirth());
+		stackLayout.getStackItems().add(femaleItem);
+
+		maleItem = TestUtil.createItem(Gender.MALE, BowlingPackage.eINSTANCE.getPlayer_EMails());
+		stackLayout.getStackItems().add(maleItem);
+	}
+
+	private void domainToMale() {
+		domain.setGender(Gender.MALE);
+	}
+
+	private void domainToFemale() {
+		domain.setGender(Gender.FEMALE);
+	}
+
+	private StackItemViewService viewService() {
+		final StackItemViewService stackService = new StackItemViewService();
+		context = ViewModelContextFactory.INSTANCE.createViewModelContext(view, domain);
+		stackService.instantiate(context);
+		return stackService;
+	}
+
+	@Test
+	public void initMale() {
+		domainToMale();
+		viewService();
+		assertEquals(maleItem, stackLayout.getTopElement());
+	}
+
+	@Test
+	public void initFemale() {
+		domainToFemale();
+		viewService();
+		assertEquals(femaleItem, stackLayout.getTopElement());
+	}
+
+	@Test
+	public void initMultipleStacksDifferentDMRs() {
+		final VStackLayout stack2 = TestUtil.createStack(BowlingPackage.eINSTANCE.getPlayer_Name());
+		final VStackItem item2 = TestUtil.createItem(NAME, BowlingPackage.eINSTANCE.getPlayer_IsProfessional());
+		stack2.getStackItems().add(item2);
+		view.getChildren().add(stack2);
+		domainToMale();
+		domain.setName(NAME);
+
+		viewService();
+
+		assertEquals(maleItem, stackLayout.getTopElement());
+		assertEquals(item2, stack2.getTopElement());
+	}
+
+	@Test
+	public void initMultipleStacksSameDMRs() {
+		final VStackLayout stack2 = TestUtil.createStack(BowlingPackage.eINSTANCE.getPlayer_Gender());
+		final VStackItem item2 = TestUtil
+			.createItem(Gender.FEMALE, BowlingPackage.eINSTANCE.getPlayer_IsProfessional());
+		stack2.getStackItems().add(item2);
+		view.getChildren().add(stack2);
+		domainToFemale();
+
+		viewService();
+
+		assertEquals(femaleItem, stackLayout.getTopElement());
+		assertEquals(item2, stack2.getTopElement());
+	}
+
+	@Test
+	public void initWithNullExpected() {
+		stackLayout.setDomainModelReference(TestUtil.createDMR(BowlingPackage.eINSTANCE.getPlayer_Name()));
+		maleItem.setValue(null);
+		domain.setName(null);
+		viewService();
+		assertEquals(maleItem, stackLayout.getTopElement());
+	}
+
+	/**
+	 * Should not cause exceptions.
+	 */
+	@Test
+	public void initWithoutDMR() {
+		stackLayout.setDomainModelReference(null);
+		viewService();
+		assertNull(stackLayout.getTopElement());
+	}
+
+	/**
+	 * Should not cause exceptions.
+	 */
+	@Test
+	public void initWithUnusableDMR() {
+		stackLayout.setDomainModelReference(TestUtil.createDMR(BowlingPackage.eINSTANCE.getFan_DateOfBirth()));
+		viewService();
+		assertNull(stackLayout.getTopElement());
+	}
+
+	@Test
+	public void dynamicFemaleToMale() {
+		domainToFemale();
+		viewService();
+		domainToMale();
+		assertEquals(maleItem, stackLayout.getTopElement());
+	}
+
+	/**
+	 * Should not cause problems.
+	 */
+	@Test
+	public void dynamicUnrelatedChange() {
+		domainToFemale();
+		viewService();
+		domain.setName(NAME);
+		assertEquals(femaleItem, stackLayout.getTopElement());
+	}
+
+	@Test
+	public void enumSetToValueWithoutItem() {
+		stackLayout.getStackItems().remove(maleItem);
+		domainToFemale();
+		viewService();
+		assertEquals(femaleItem, stackLayout.getTopElement());
+		domainToMale();
+		assertNull(stackLayout.getTopElement());
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/src/org/eclipse/emf/ecp/view/stack/ui/swt/test/StackItemViewService_Test.java b/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/src/org/eclipse/emf/ecp/view/stack/ui/swt/test/StackItemViewService_Test.java
deleted file mode 100644
index e02ac78..0000000
--- a/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/src/org/eclipse/emf/ecp/view/stack/ui/swt/test/StackItemViewService_Test.java
+++ /dev/null
@@ -1,181 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Johannes Faltermeier - initial API and implementation
- */
-package org.eclipse.emf.ecp.view.stack.ui.swt.test;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-
-import org.eclipse.emf.ecp.view.internal.stack.ui.swt.StackItemViewService;
-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.stack.model.VStackItem;
-import org.eclipse.emf.ecp.view.spi.stack.model.VStackLayout;
-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.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-public class StackItemViewService_Test {
-
-	private static final String NAME = "Name";
-	private Player domain;
-	private ViewModelContext context;
-	private VView view;
-	private VStackLayout stackLayout;
-	private VStackItem femaleItem;
-	private VStackItem maleItem;
-
-	@After
-	public void after() {
-		context.dispose();
-	}
-
-	@Before
-	public void before() {
-		domain = BowlingFactory.eINSTANCE.createPlayer();
-
-		view = VViewFactory.eINSTANCE.createView();
-		view.setRootEClass(BowlingPackage.eINSTANCE.getPlayer());
-
-		stackLayout = TestUtil.createStack(BowlingPackage.eINSTANCE.getPlayer_Gender());
-		view.getChildren().add(stackLayout);
-
-		femaleItem = TestUtil.createItem(Gender.FEMALE, BowlingPackage.eINSTANCE.getPlayer_DateOfBirth());
-		stackLayout.getStackItems().add(femaleItem);
-
-		maleItem = TestUtil.createItem(Gender.MALE, BowlingPackage.eINSTANCE.getPlayer_EMails());
-		stackLayout.getStackItems().add(maleItem);
-	}
-
-	private void domainToMale() {
-		domain.setGender(Gender.MALE);
-	}
-
-	private void domainToFemale() {
-		domain.setGender(Gender.FEMALE);
-	}
-
-	private StackItemViewService viewService() {
-		final StackItemViewService stackService = new StackItemViewService();
-		context = ViewModelContextFactory.INSTANCE.createViewModelContext(view, domain);
-		stackService.instantiate(context);
-		return stackService;
-	}
-
-	@Test
-	public void initMale() {
-		domainToMale();
-		viewService();
-		assertEquals(maleItem, stackLayout.getTopElement());
-	}
-
-	@Test
-	public void initFemale() {
-		domainToFemale();
-		viewService();
-		assertEquals(femaleItem, stackLayout.getTopElement());
-	}
-
-	@Test
-	public void initMultipleStacksDifferentDMRs() {
-		final VStackLayout stack2 = TestUtil.createStack(BowlingPackage.eINSTANCE.getPlayer_Name());
-		final VStackItem item2 = TestUtil.createItem(NAME, BowlingPackage.eINSTANCE.getPlayer_IsProfessional());
-		stack2.getStackItems().add(item2);
-		view.getChildren().add(stack2);
-		domainToMale();
-		domain.setName(NAME);
-
-		viewService();
-
-		assertEquals(maleItem, stackLayout.getTopElement());
-		assertEquals(item2, stack2.getTopElement());
-	}
-
-	@Test
-	public void initMultipleStacksSameDMRs() {
-		final VStackLayout stack2 = TestUtil.createStack(BowlingPackage.eINSTANCE.getPlayer_Gender());
-		final VStackItem item2 = TestUtil
-			.createItem(Gender.FEMALE, BowlingPackage.eINSTANCE.getPlayer_IsProfessional());
-		stack2.getStackItems().add(item2);
-		view.getChildren().add(stack2);
-		domainToFemale();
-
-		viewService();
-
-		assertEquals(femaleItem, stackLayout.getTopElement());
-		assertEquals(item2, stack2.getTopElement());
-	}
-
-	@Test
-	public void initWithNullExpected() {
-		stackLayout.setDomainModelReference(TestUtil.createDMR(BowlingPackage.eINSTANCE.getPlayer_Name()));
-		maleItem.setValue(null);
-		domain.setName(null);
-		viewService();
-		assertEquals(maleItem, stackLayout.getTopElement());
-	}
-
-	/**
-	 * Should not cause exceptions.
-	 */
-	@Test
-	public void initWithoutDMR() {
-		stackLayout.setDomainModelReference(null);
-		viewService();
-		assertNull(stackLayout.getTopElement());
-	}
-
-	/**
-	 * Should not cause exceptions.
-	 */
-	@Test
-	public void initWithUnusableDMR() {
-		stackLayout.setDomainModelReference(TestUtil.createDMR(BowlingPackage.eINSTANCE.getFan_DateOfBirth()));
-		viewService();
-		assertNull(stackLayout.getTopElement());
-	}
-
-	@Test
-	public void dynamicFemaleToMale() {
-		domainToFemale();
-		viewService();
-		domainToMale();
-		assertEquals(maleItem, stackLayout.getTopElement());
-	}
-
-	/**
-	 * Should not cause problems.
-	 */
-	@Test
-	public void dynamicUnrelatedChange() {
-		domainToFemale();
-		viewService();
-		domain.setName(NAME);
-		assertEquals(femaleItem, stackLayout.getTopElement());
-	}
-
-	@Test
-	public void enumSetToValueWithoutItem() {
-		stackLayout.getStackItems().remove(maleItem);
-		domainToFemale();
-		viewService();
-		assertEquals(femaleItem, stackLayout.getTopElement());
-		domainToMale();
-		assertNull(stackLayout.getTopElement());
-	}
-
-}
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 c8dee2c..e826020 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,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Table Model Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.table.model.test
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Fragment-Host: org.eclipse.emf.ecp.view.table.model;bundle-version="[1.5.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
- org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.4.0,1.5.0)"
-Export-Package: org.eclipse.emf.ecp.view.table.model.test;version="1.5
- .1";x-internal:=true
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.4.0,2.0.0)",
+ org.mockito.mockito-all;bundle-version="[1.9.5,2.0.0)"
+Export-Package: org.eclipse.emf.ecp.view.spi.table.model.util;version="1.6.0",
+ org.eclipse.emf.ecp.view.table.model.test;version="1.6.0";x-internal:=true
 Bundle-Vendor: Eclipse Modeling Project
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 5c02c69..53cae25 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.table.model.test/src/org/eclipse/emf/ecp/view/spi/table/model/util/TableDMRValidation_Test.java b/tests/org.eclipse.emf.ecp.view.table.model.test/src/org/eclipse/emf/ecp/view/spi/table/model/util/TableDMRValidation_Test.java
new file mode 100644
index 0000000..06d2f6d
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.table.model.test/src/org/eclipse/emf/ecp/view/spi/table/model/util/TableDMRValidation_Test.java
@@ -0,0 +1,455 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * jfaltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.table.model.util;
+
+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 java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.databinding.property.Properties;
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.model.VView;
+import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
+import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
+import org.eclipse.emf.ecp.view.spi.model.util.ViewValidator;
+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.VTablePackage;
+import org.eclipse.emf.emfstore.bowling.BowlingPackage;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+import org.mockito.Mockito;
+
+/**
+ * @author jfaltermeier
+ *
+ */
+@RunWith(Parameterized.class)
+public class TableDMRValidation_Test {
+	private VView view;
+	private VControl control;
+	private VTableDomainModelReference table;
+
+	private TableValidator validator;
+	private BasicDiagnostic chain;
+	private LinkedHashMap<Object, Object> context;
+	private final Boolean createChain;
+	private VFeaturePathDomainModelReference column1;
+	private VFeaturePathDomainModelReference column2;
+	private VFeaturePathDomainModelReference tableDMR;
+	private EMFFormsDatabinding emfFormsDatabinding;
+
+	public TableDMRValidation_Test(Boolean createChain) {
+		this.createChain = createChain;
+	}
+
+	@Parameters
+	public static Collection<Object[]> data() {
+		// run all tests once with a diagnostic chain and once without
+		final List<Object[]> parameters = new ArrayList<Object[]>();
+		parameters.add(new Object[] { true });
+		parameters.add(new Object[] { false });
+		return parameters;
+	}
+
+	@Before
+	public void before() {
+		view = VViewFactory.eINSTANCE.createView();
+		view.setRootEClass(BowlingPackage.eINSTANCE.getReferee());
+		control = VViewFactory.eINSTANCE.createControl();
+		view.getChildren().add(control);
+		table = VTableFactory.eINSTANCE.createTableDomainModelReference();
+		tableDMR = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
+		table.setDomainModelReference(tableDMR);
+		column1 = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
+		column2 = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
+		table.getColumnDomainModelReferences().add(column1);
+		table.getColumnDomainModelReferences().add(column2);
+		control.setDomainModelReference(table);
+
+		emfFormsDatabinding = Mockito.mock(EMFFormsDatabinding.class);
+		validator = new TableValidator(emfFormsDatabinding);
+		context = new LinkedHashMap<Object, Object>();
+		if (createChain) {
+			chain = new BasicDiagnostic();
+		} else {
+			chain = null;
+		}
+	}
+
+	private void noContainer() {
+		control.eUnset(VViewPackage.eINSTANCE.getControl_DomainModelReference());
+	}
+
+	private void okTable() {
+		final VFeaturePathDomainModelReference ref = (VFeaturePathDomainModelReference) table.getDomainModelReference();
+		ref.getDomainModelEReferencePath().add(BowlingPackage.eINSTANCE.getReferee_League());
+		ref.setDomainModelEFeature(BowlingPackage.eINSTANCE.getLeague_Players());
+		table.setDomainModelReference(ref);
+		try {
+			Mockito.doReturn(Properties.selfValue(BowlingPackage.eINSTANCE.getLeague_Players())).when(
+				emfFormsDatabinding).getValueProperty(ref, null);
+		} catch (final DatabindingFailedException ex) {
+			fail(ex.getMessage());
+		}
+	}
+
+	private void okColumn1() {
+		column1.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_Name());
+		try {
+			Mockito.doReturn(Properties.selfValue(BowlingPackage.eINSTANCE.getPlayer_Name())).when(
+				emfFormsDatabinding).getValueProperty(column1, null);
+		} catch (final DatabindingFailedException ex) {
+			fail(ex.getMessage());
+		}
+	}
+
+	private void okColumn2() {
+		column2.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_Gender());
+		try {
+			Mockito.doReturn(Properties.selfValue(BowlingPackage.eINSTANCE.getPlayer_Gender())).when(
+				emfFormsDatabinding).getValueProperty(column2, null);
+		} catch (final DatabindingFailedException ex) {
+			fail(ex.getMessage());
+		}
+	}
+
+	private boolean validate() {
+		return validator.validate(table, chain, context);
+	}
+
+	private DiagnosticInfo controlDMR() {
+		return new DiagnosticInfo(Diagnostic.ERROR, control, VViewPackage.eINSTANCE.getControl_DomainModelReference());
+	}
+
+	private DiagnosticInfo controlDMRWarning() {
+		return new DiagnosticInfo(Diagnostic.WARNING, control, VViewPackage.eINSTANCE.getControl_DomainModelReference());
+	}
+
+	private DiagnosticInfo tableDMR() {
+		return new DiagnosticInfo(Diagnostic.ERROR, table,
+			VTablePackage.eINSTANCE.getTableDomainModelReference_DomainModelReference());
+	}
+
+	private DiagnosticInfo tableDMREFeature() {
+		return new DiagnosticInfo(Diagnostic.ERROR, table.getDomainModelReference(),
+			VViewPackage.eINSTANCE.getFeaturePathDomainModelReference_DomainModelEFeature());
+	}
+
+	private DiagnosticInfo tableDMRPath() {
+		return new DiagnosticInfo(Diagnostic.ERROR, table.getDomainModelReference(),
+			VViewPackage.eINSTANCE.getFeaturePathDomainModelReference_DomainModelEReferencePath());
+	}
+
+	private DiagnosticInfo tableColumns() {
+		return new DiagnosticInfo(Diagnostic.WARNING, table,
+			VTablePackage.eINSTANCE.getTableDomainModelReference_ColumnDomainModelReferences());
+	}
+
+	@Test
+	public void testNoColumns() {
+		table.getColumnDomainModelReferences().clear();
+		okTable();
+		assertTrue(validate());
+		if (createChain) {
+			assertEquals(Diagnostic.OK, chain.getSeverity());
+			assertChain();
+		}
+	}
+
+	@Test
+	public void testNoColumnsNoContainer() {
+		noContainer();
+		table.getColumnDomainModelReferences().clear();
+		okTable();
+		assertTrue(validate());
+		if (createChain) {
+			assertEquals(Diagnostic.OK, chain.getSeverity());
+			assertChain();
+		}
+	}
+
+	@Test
+	public void testNoEFeatureOnPathToTable() {
+		okTable();
+		okColumn1();
+		okColumn2();
+		tableDMR.setDomainModelEFeature(null);
+		assertFalse(validate());
+		if (createChain) {
+			assertEquals(Diagnostic.ERROR, chain.getSeverity());
+			assertChain(controlDMR(), tableDMR(), tableDMREFeature());
+		}
+	}
+
+	@Test
+	public void testNoEFeatureOnPathToTableNoContainer() {
+		noContainer();
+		okTable();
+		okColumn1();
+		okColumn2();
+		tableDMR.setDomainModelEFeature(null);
+		assertFalse(validate());
+		if (createChain) {
+			assertEquals(Diagnostic.ERROR, chain.getSeverity());
+			assertChain(tableDMR(), tableDMREFeature());
+		}
+	}
+
+	@Test
+	public void testBadReferenceOnPathToTable() {
+		okTable();
+		okColumn1();
+		okColumn2();
+		tableDMR.getDomainModelEReferencePath().add(BowlingPackage.eINSTANCE.getFan_FanMerchandise());
+		assertFalse(validate());
+		if (createChain) {
+			assertEquals(Diagnostic.ERROR, chain.getSeverity());
+			assertChain(controlDMR(), tableDMR(), tableDMRPath());
+		}
+	}
+
+	@Test
+	public void testBadReferenceOnPathToTableNoContainer() {
+		noContainer();
+		okTable();
+		okColumn1();
+		okColumn2();
+		tableDMR.getDomainModelEReferencePath().add(BowlingPackage.eINSTANCE.getFan_FanMerchandise());
+		assertFalse(validate());
+		if (createChain) {
+			assertEquals(Diagnostic.ERROR, chain.getSeverity());
+			assertChain(tableDMR(), tableDMRPath());
+		}
+	}
+
+	@Test
+	public void testBadEFeatureSingleRef() {
+		okColumn1();
+		okColumn2();
+		view.setRootEClass(BowlingPackage.eINSTANCE.getFan());
+		tableDMR.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_FavouritePlayer());
+		try {
+			Mockito.doReturn(Properties.selfValue(BowlingPackage.eINSTANCE.getFan_FavouritePlayer())).when(
+				emfFormsDatabinding).getValueProperty(tableDMR, null);
+		} catch (final DatabindingFailedException ex) {
+			fail(ex.getMessage());
+		}
+		assertFalse(validate());
+		if (createChain) {
+			assertEquals(Diagnostic.ERROR, chain.getSeverity());
+			assertChain(controlDMR(), tableDMR());
+		}
+	}
+
+	@Test
+	public void testBadEFeatureSingleRefNoContainer() {
+		noContainer();
+		okColumn1();
+		okColumn2();
+		view.setRootEClass(BowlingPackage.eINSTANCE.getFan());
+		tableDMR.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_FavouritePlayer());
+		try {
+			Mockito.doReturn(Properties.selfValue(BowlingPackage.eINSTANCE.getFan_FavouritePlayer())).when(
+				emfFormsDatabinding).getValueProperty(tableDMR, null);
+		} catch (final DatabindingFailedException ex) {
+			fail(ex.getMessage());
+		}
+		assertFalse(validate());
+		if (createChain) {
+			assertEquals(Diagnostic.ERROR, chain.getSeverity());
+			assertChain(tableDMR());
+		}
+	}
+
+	@Test
+	public void testBadEFeatureAttribute() {
+		okColumn1();
+		okColumn2();
+		view.setRootEClass(BowlingPackage.eINSTANCE.getFan());
+		tableDMR.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_EMails());
+		try {
+			Mockito.doReturn(Properties.selfValue(BowlingPackage.eINSTANCE.getFan_EMails())).when(
+				emfFormsDatabinding).getValueProperty(tableDMR, null);
+		} catch (final DatabindingFailedException ex) {
+			fail(ex.getMessage());
+		}
+		assertFalse(validate());
+		if (createChain) {
+			assertEquals(Diagnostic.ERROR, chain.getSeverity());
+			assertChain(controlDMR(), tableDMR());
+		}
+	}
+
+	@Test
+	public void testBadEFeatureAttributeNoContainer() {
+		noContainer();
+		okColumn1();
+		okColumn2();
+		view.setRootEClass(BowlingPackage.eINSTANCE.getFan());
+		tableDMR.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_EMails());
+		try {
+			Mockito.doReturn(Properties.selfValue(BowlingPackage.eINSTANCE.getFan_EMails())).when(
+				emfFormsDatabinding).getValueProperty(tableDMR, null);
+		} catch (final DatabindingFailedException ex) {
+			fail(ex.getMessage());
+		}
+		assertFalse(validate());
+		if (createChain) {
+			assertEquals(Diagnostic.ERROR, chain.getSeverity());
+			assertChain(tableDMR());
+		}
+	}
+
+	@Test
+	public void testBadColumn() {
+		okTable();
+		okColumn1();
+		column2.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_Gender());
+		assertFalse(validate());
+		if (createChain) {
+			assertEquals(Diagnostic.WARNING, chain.getSeverity());
+			assertChain(controlDMRWarning(), tableColumns());
+		}
+	}
+
+	@Test
+	public void testBadColumnNoContainer() {
+		noContainer();
+		okTable();
+		okColumn1();
+		column2.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_Gender());
+		assertFalse(validate());
+		if (createChain) {
+			assertEquals(Diagnostic.WARNING, chain.getSeverity());
+			assertChain(tableColumns());
+		}
+	}
+
+	@Test
+	public void testOK() {
+		okColumn1();
+		okColumn2();
+		okTable();
+		assertTrue(validate());
+		if (createChain) {
+			assertEquals(Diagnostic.OK, chain.getSeverity());
+			assertChain();
+		}
+	}
+
+	@Test
+	public void testOKNoContainer() {
+		noContainer();
+		okColumn1();
+		okColumn2();
+		okTable();
+		assertTrue(validate());
+		if (createChain) {
+			assertEquals(Diagnostic.OK, chain.getSeverity());
+			assertChain();
+		}
+	}
+
+	@Test
+	public void testBadRootEClass() {
+		okColumn1();
+		okColumn2();
+		okTable();
+		view.setRootEClass(BowlingPackage.eINSTANCE.getFan());
+		assertFalse(validate());
+		if (createChain) {
+			assertEquals(Diagnostic.ERROR, chain.getSeverity());
+			assertChain(controlDMR(), tableDMR(), tableDMRPath());
+		}
+	}
+
+	@Test
+	public void testBadRootEClassGoodRootEClassInContext() {
+		okColumn1();
+		okColumn2();
+		okTable();
+		view.setRootEClass(BowlingPackage.eINSTANCE.getFan());
+		context.put(ViewValidator.ECLASS_KEY, BowlingPackage.eINSTANCE.getReferee());
+		assertTrue(validate());
+		if (createChain) {
+			assertEquals(Diagnostic.OK, chain.getSeverity());
+			assertChain();
+		}
+	}
+
+	private void assertChain(DiagnosticInfo... infos) {
+		final Set<DiagnosticInfo> infoSet = new LinkedHashSet<DiagnosticInfo>(Arrays.asList(infos));
+		assertEquals(infos.length, chain.getChildren().size());
+		for (final Diagnostic child : chain.getChildren()) {
+			boolean found = false;
+			final Iterator<DiagnosticInfo> iterator = infoSet.iterator();
+			while (iterator.hasNext()) {
+				final DiagnosticInfo next = iterator.next();
+				if (next.sameData(child)) {
+					found = true;
+					iterator.remove();
+					break;
+				}
+			}
+			if (!found) {
+				fail("Chain is missing child diagnostic."); //$NON-NLS-1$
+			}
+		}
+	}
+
+	private class DiagnosticInfo {
+		private final int severity;
+		private final EObject object;
+		private final EStructuralFeature feature;
+
+		public DiagnosticInfo(int severity, EObject object, EStructuralFeature feature) {
+			this.severity = severity;
+			this.object = object;
+			this.feature = feature;
+		}
+
+		public boolean sameData(Diagnostic diagnostic) {
+			if (diagnostic.getSeverity() != severity) {
+				return false;
+			}
+			if (!object.equals(diagnostic.getData().get(0))) {
+				return false;
+			}
+			if (!feature.equals(diagnostic.getData().get(1))) {
+				return false;
+			}
+			return true;
+		}
+
+	}
+}
diff --git a/tests/org.eclipse.emf.ecp.view.table.model.test/src/org/eclipse/emf/ecp/view/table/model/test/AllTests.java b/tests/org.eclipse.emf.ecp.view.table.model.test/src/org/eclipse/emf/ecp/view/table/model/test/AllTests.java
new file mode 100644
index 0000000..e267243
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.table.model.test/src/org/eclipse/emf/ecp/view/table/model/test/AllTests.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.table.model.test;
+
+import org.eclipse.emf.ecp.view.spi.table.model.util.TableDMRValidation_Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+/**
+ * JUnit Test Suite for ecp.view.table.model .
+ *
+ * @author Eugen Neufeld
+ *
+ */
+@RunWith(Suite.class)
+@SuiteClasses({ TableDMRValidation_Test.class })
+public class AllTests {
+	// JUnit 4 Test suite
+}
diff --git a/tests/org.eclipse.emf.ecp.view.table.model.test/src/org/eclipse/emf/ecp/view/table/model/test/TableDMRValidation_Test.java b/tests/org.eclipse.emf.ecp.view.table.model.test/src/org/eclipse/emf/ecp/view/table/model/test/TableDMRValidation_Test.java
deleted file mode 100644
index 45776c3..0000000
--- a/tests/org.eclipse.emf.ecp.view.table.model.test/src/org/eclipse/emf/ecp/view/table/model/test/TableDMRValidation_Test.java
+++ /dev/null
@@ -1,409 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * jfaltermeier - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.table.model.test;
-
-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 java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.emf.common.util.BasicDiagnostic;
-import org.eclipse.emf.common.util.Diagnostic;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EValidator;
-import org.eclipse.emf.ecp.view.spi.model.VControl;
-import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
-import org.eclipse.emf.ecp.view.spi.model.VView;
-import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
-import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
-import org.eclipse.emf.ecp.view.spi.model.util.ViewValidator;
-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.VTablePackage;
-import org.eclipse.emf.ecp.view.spi.table.model.util.TableValidator;
-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 jfaltermeier
- *
- */
-@RunWith(Parameterized.class)
-public class TableDMRValidation_Test {
-	private VView view;
-	private VControl control;
-	private VTableDomainModelReference table;
-
-	private EValidator validator;
-	private BasicDiagnostic chain;
-	private LinkedHashMap<Object, Object> context;
-	private final Boolean createChain;
-	private VFeaturePathDomainModelReference column1;
-	private VFeaturePathDomainModelReference column2;
-	private VFeaturePathDomainModelReference tableDMR;
-
-	public TableDMRValidation_Test(Boolean createChain) {
-		this.createChain = createChain;
-	}
-
-	@Parameters
-	public static Collection<Object[]> data() {
-		// run all tests once with a diagnostic chain and once without
-		final List<Object[]> parameters = new ArrayList<Object[]>();
-		parameters.add(new Object[] { true });
-		parameters.add(new Object[] { false });
-		return parameters;
-	}
-
-	@Before
-	public void before() {
-		view = VViewFactory.eINSTANCE.createView();
-		view.setRootEClass(BowlingPackage.eINSTANCE.getReferee());
-		control = VViewFactory.eINSTANCE.createControl();
-		view.getChildren().add(control);
-		table = VTableFactory.eINSTANCE.createTableDomainModelReference();
-		tableDMR = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
-		table.setDomainModelReference(tableDMR);
-		column1 = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
-		column2 = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
-		table.getColumnDomainModelReferences().add(column1);
-		table.getColumnDomainModelReferences().add(column2);
-		control.setDomainModelReference(table);
-
-		validator = TableValidator.INSTANCE;
-		context = new LinkedHashMap<Object, Object>();
-		if (createChain) {
-			chain = new BasicDiagnostic();
-		} else {
-			chain = null;
-		}
-	}
-
-	private void noContainer() {
-		control.eUnset(VViewPackage.eINSTANCE.getControl_DomainModelReference());
-	}
-
-	private void okTable() {
-		final VFeaturePathDomainModelReference ref = (VFeaturePathDomainModelReference) table.getDomainModelReference();
-		ref.getDomainModelEReferencePath().add(BowlingPackage.eINSTANCE.getReferee_League());
-		ref.setDomainModelEFeature(BowlingPackage.eINSTANCE.getLeague_Players());
-		table.setDomainModelReference(ref);
-	}
-
-	private void okColumn1() {
-		column1.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_Name());
-	}
-
-	private void okColumn2() {
-		column2.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_Gender());
-	}
-
-	private boolean validate() {
-		return validator.validate(table, chain, context);
-	}
-
-	private DiagnosticInfo controlDMR() {
-		return new DiagnosticInfo(Diagnostic.ERROR, control, VViewPackage.eINSTANCE.getControl_DomainModelReference());
-	}
-
-	private DiagnosticInfo controlDMRWarning() {
-		return new DiagnosticInfo(Diagnostic.WARNING, control, VViewPackage.eINSTANCE.getControl_DomainModelReference());
-	}
-
-	private DiagnosticInfo tableDMR() {
-		return new DiagnosticInfo(Diagnostic.ERROR, table,
-			VTablePackage.eINSTANCE.getTableDomainModelReference_DomainModelReference());
-	}
-
-	private DiagnosticInfo tableDMREFeature() {
-		return new DiagnosticInfo(Diagnostic.ERROR, table.getDomainModelReference(),
-			VViewPackage.eINSTANCE.getFeaturePathDomainModelReference_DomainModelEFeature());
-	}
-
-	private DiagnosticInfo tableDMRPath() {
-		return new DiagnosticInfo(Diagnostic.ERROR, table.getDomainModelReference(),
-			VViewPackage.eINSTANCE.getFeaturePathDomainModelReference_DomainModelEReferencePath());
-	}
-
-	private DiagnosticInfo tableColumns() {
-		return new DiagnosticInfo(Diagnostic.WARNING, table,
-			VTablePackage.eINSTANCE.getTableDomainModelReference_ColumnDomainModelReferences());
-	}
-
-	@Test
-	public void testNoColumns() {
-		table.getColumnDomainModelReferences().clear();
-		okTable();
-		assertTrue(validate());
-		if (createChain) {
-			assertEquals(Diagnostic.OK, chain.getSeverity());
-			assertChain();
-		}
-	}
-
-	@Test
-	public void testNoColumnsNoContainer() {
-		noContainer();
-		table.getColumnDomainModelReferences().clear();
-		okTable();
-		assertTrue(validate());
-		if (createChain) {
-			assertEquals(Diagnostic.OK, chain.getSeverity());
-			assertChain();
-		}
-	}
-
-	@Test
-	public void testNoEFeatureOnPathToTable() {
-		okTable();
-		okColumn1();
-		okColumn2();
-		tableDMR.setDomainModelEFeature(null);
-		assertFalse(validate());
-		if (createChain) {
-			assertEquals(Diagnostic.ERROR, chain.getSeverity());
-			assertChain(controlDMR(), tableDMR(), tableDMREFeature());
-		}
-	}
-
-	@Test
-	public void testNoEFeatureOnPathToTableNoContainer() {
-		noContainer();
-		okTable();
-		okColumn1();
-		okColumn2();
-		tableDMR.setDomainModelEFeature(null);
-		assertFalse(validate());
-		if (createChain) {
-			assertEquals(Diagnostic.ERROR, chain.getSeverity());
-			assertChain(tableDMR(), tableDMREFeature());
-		}
-	}
-
-	@Test
-	public void testBadReferenceOnPathToTable() {
-		okTable();
-		okColumn1();
-		okColumn2();
-		tableDMR.getDomainModelEReferencePath().add(BowlingPackage.eINSTANCE.getFan_FanMerchandise());
-		assertFalse(validate());
-		if (createChain) {
-			assertEquals(Diagnostic.ERROR, chain.getSeverity());
-			assertChain(controlDMR(), tableDMR(), tableDMRPath());
-		}
-	}
-
-	@Test
-	public void testBadReferenceOnPathToTableNoContainer() {
-		noContainer();
-		okTable();
-		okColumn1();
-		okColumn2();
-		tableDMR.getDomainModelEReferencePath().add(BowlingPackage.eINSTANCE.getFan_FanMerchandise());
-		assertFalse(validate());
-		if (createChain) {
-			assertEquals(Diagnostic.ERROR, chain.getSeverity());
-			assertChain(tableDMR(), tableDMRPath());
-		}
-	}
-
-	@Test
-	public void testBadEFeatureSingleRef() {
-		okColumn1();
-		okColumn2();
-		view.setRootEClass(BowlingPackage.eINSTANCE.getFan());
-		tableDMR.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_FavouritePlayer());
-		assertFalse(validate());
-		if (createChain) {
-			assertEquals(Diagnostic.ERROR, chain.getSeverity());
-			assertChain(controlDMR(), tableDMR());
-		}
-	}
-
-	@Test
-	public void testBadEFeatureSingleRefNoContainer() {
-		noContainer();
-		okColumn1();
-		okColumn2();
-		view.setRootEClass(BowlingPackage.eINSTANCE.getFan());
-		tableDMR.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_FavouritePlayer());
-		assertFalse(validate());
-		if (createChain) {
-			assertEquals(Diagnostic.ERROR, chain.getSeverity());
-			assertChain(tableDMR());
-		}
-	}
-
-	@Test
-	public void testBadEFeatureAttribute() {
-		okColumn1();
-		okColumn2();
-		view.setRootEClass(BowlingPackage.eINSTANCE.getFan());
-		tableDMR.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_EMails());
-		assertFalse(validate());
-		if (createChain) {
-			assertEquals(Diagnostic.ERROR, chain.getSeverity());
-			assertChain(controlDMR(), tableDMR());
-		}
-	}
-
-	@Test
-	public void testBadEFeatureAttributeNoContainer() {
-		noContainer();
-		okColumn1();
-		okColumn2();
-		view.setRootEClass(BowlingPackage.eINSTANCE.getFan());
-		tableDMR.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_EMails());
-		assertFalse(validate());
-		if (createChain) {
-			assertEquals(Diagnostic.ERROR, chain.getSeverity());
-			assertChain(tableDMR());
-		}
-	}
-
-	@Test
-	public void testBadColumn() {
-		okTable();
-		okColumn1();
-		column2.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_Gender());
-		assertFalse(validate());
-		if (createChain) {
-			assertEquals(Diagnostic.WARNING, chain.getSeverity());
-			assertChain(controlDMRWarning(), tableColumns());
-		}
-	}
-
-	@Test
-	public void testBadColumnNoContainer() {
-		noContainer();
-		okTable();
-		okColumn1();
-		column2.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_Gender());
-		assertFalse(validate());
-		if (createChain) {
-			assertEquals(Diagnostic.WARNING, chain.getSeverity());
-			assertChain(tableColumns());
-		}
-	}
-
-	@Test
-	public void testOK() {
-		okColumn1();
-		okColumn2();
-		okTable();
-		assertTrue(validate());
-		if (createChain) {
-			assertEquals(Diagnostic.OK, chain.getSeverity());
-			assertChain();
-		}
-	}
-
-	@Test
-	public void testOKNoContainer() {
-		noContainer();
-		okColumn1();
-		okColumn2();
-		okTable();
-		assertTrue(validate());
-		if (createChain) {
-			assertEquals(Diagnostic.OK, chain.getSeverity());
-			assertChain();
-		}
-	}
-
-	@Test
-	public void testBadRootEClass() {
-		okColumn1();
-		okColumn2();
-		okTable();
-		view.setRootEClass(BowlingPackage.eINSTANCE.getFan());
-		assertFalse(validate());
-		if (createChain) {
-			assertEquals(Diagnostic.ERROR, chain.getSeverity());
-			assertChain(controlDMR(), tableDMR(), tableDMRPath());
-		}
-	}
-
-	@Test
-	public void testBadRootEClassGoodRootEClassInContext() {
-		okColumn1();
-		okColumn2();
-		okTable();
-		view.setRootEClass(BowlingPackage.eINSTANCE.getFan());
-		context.put(ViewValidator.ECLASS_KEY, BowlingPackage.eINSTANCE.getReferee());
-		assertTrue(validate());
-		if (createChain) {
-			assertEquals(Diagnostic.OK, chain.getSeverity());
-			assertChain();
-		}
-	}
-
-	private void assertChain(DiagnosticInfo... infos) {
-		final Set<DiagnosticInfo> infoSet = new LinkedHashSet<DiagnosticInfo>(Arrays.asList(infos));
-		assertEquals(infos.length, chain.getChildren().size());
-		for (final Diagnostic child : chain.getChildren()) {
-			boolean found = false;
-			final Iterator<DiagnosticInfo> iterator = infoSet.iterator();
-			while (iterator.hasNext()) {
-				final DiagnosticInfo next = iterator.next();
-				if (next.sameData(child)) {
-					found = true;
-					iterator.remove();
-					break;
-				}
-			}
-			if (!found) {
-				fail("Chain is missing child diagnostic."); //$NON-NLS-1$
-			}
-		}
-	}
-
-	private class DiagnosticInfo {
-		private final int severity;
-		private final EObject object;
-		private final EStructuralFeature feature;
-
-		public DiagnosticInfo(int severity, EObject object, EStructuralFeature feature) {
-			this.severity = severity;
-			this.object = object;
-			this.feature = feature;
-		}
-
-		public boolean sameData(Diagnostic diagnostic) {
-			if (diagnostic.getSeverity() != severity) {
-				return false;
-			}
-			if (!object.equals(diagnostic.getData().get(0))) {
-				return false;
-			}
-			if (!feature.equals(diagnostic.getData().get(1))) {
-				return false;
-			}
-			return true;
-		}
-
-	}
-}
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
new file mode 100644
index 0000000..2a6fd47
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/All Tests for view.table.ui.swt.launch
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

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

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

+<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.table.ui.swt.test/src/org/eclipse/emf/ecp/view/table/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"/>

+<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.table.ui.swt.test.AllTests"/>

+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>

+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.ecp.view.table.ui.swt.test"/>

+<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.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.apache.commons.codec@default:default,org.apache.commons.logging@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.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.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@-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.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-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.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.test.model@default:default,org.eclipse.emf.ecp.ui.rcp@default:false,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.test@default:false,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@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@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.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@default:default,org.eclipse.emfforms.core.services.databinding.featurepath@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.locale.default@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"/>

+<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.table.ui.swt.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/META-INF/MANIFEST.MF
index 50a44ef..527bde9 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Tests for the Group SWT Renderer
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.table.ui.swt.test
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.5.0,2.0.0)",
@@ -19,6 +19,19 @@
  org.eclipse.emf.ecp.view.context;bundle-version="[1.5.0,2.0.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.eclipse.jface;bundle-version="[3.10.0,4.0.0)",
+ org.mockito.mockito-all;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.5.0,2.0.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.5.0,2.0.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.6.0,2.0.0)"
 Export-Package: org.eclipse.emf.ecp.view.table.ui.swt.test;version="1.
- 5.1";x-friends:="org.eclipse.emf.ecp.view.ui.editor.test"
+ 6.0";x-friends:="org.eclipse.emf.ecp.view.ui.editor.test"
+Bundle-ActivationPolicy: lazy
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.6.0,2.0.0)"
diff --git a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/SWTTable_PTest.launch b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/SWTTable_PTest.launch
deleted file mode 100644
index 0f61cb2..0000000
--- a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/SWTTable_PTest.launch
+++ /dev/null
@@ -1,43 +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.table.ui.swt.test/src/org/eclipse/emf/ecp/view/table/ui/swt/test/SWTTable_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.6"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.ecp.view.table.ui.swt.test.SWTTable_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.table.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"/>
-<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.apache.commons.codec@default:default,org.apache.commons.logging@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.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.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@-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.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.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.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.ui.rcp@default:false,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.test@default:false,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@default:default,org.eclipse.emf.ecp.view.model.provider.generator@default:default,org.eclipse.emf.ecp.view.model.provider.xmi.test@default:false,org.eclipse.emf.ecp.view.model.provider.xmi@default:default,org.eclipse.emf.ecp.view.model.test@default:false,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emf.ecp.view.table.columnservice@default:default,org.eclipse.emf.ecp.view.table.model@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.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"/>
-<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.table.ui.swt.test/pom.xml b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/pom.xml
index b8d5103..f3677b1 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -24,43 +24,71 @@
 				<configuration>
 		          	<useUIHarness>true</useUIHarness>
 		          	<useUIThread>true</useUIThread>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.viewmodel.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.table.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.template.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.validation.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.emfstore.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-					</dependencies>
+				</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.emf.ecp.view.swt.layout</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.emf</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>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.target.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.viewmodel.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.table.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.template.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.validation.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.emfstore.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
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 ee23ebc..c82f003 100644
--- a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/table/ui/swt/test/AllTests.java
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/table/ui/swt/test/AllTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2013 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
  *
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -8,6 +8,7 @@
  *
  * Contributors:
  * Jonas - initial API and implementation
+ * Lucas Koehler - added SWTTable_Test
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.table.ui.swt.test;
 
@@ -16,7 +17,7 @@
 import org.junit.runners.Suite.SuiteClasses;
 
 @RunWith(Suite.class)
-@SuiteClasses({ SWTTable_PTest.class })
+@SuiteClasses({ SWTTable_PTest.class, SWTTableDatabindingLabel_PTest.class })
 public class AllTests {
 
 }
diff --git a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/table/ui/swt/test/SWTTableDatabindingLabel_PTest.java b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/table/ui/swt/test/SWTTableDatabindingLabel_PTest.java
new file mode 100644
index 0000000..7ef56d4
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/table/ui/swt/test/SWTTableDatabindingLabel_PTest.java
@@ -0,0 +1,300 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.table.ui.swt.test;
+
+import static org.junit.Assert.assertEquals;
+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.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.databinding.observable.Observables;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.list.WritableList;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.emf.databinding.internal.EMFValueProperty;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.EcorePackage;
+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.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.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.table.model.VTableFactory;
+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.test.common.swt.spi.DatabindingClassRunner;
+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.swt.core.layout.SWTGridCell;
+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.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * JUnit tests for {@link TableControlSWTRenderer} testing the data binding of the table.
+ *
+ * @author Lucas Koehler
+ *
+ */
+@SuppressWarnings("restriction")
+@RunWith(DatabindingClassRunner.class)
+public class SWTTableDatabindingLabel_PTest {
+	private static final IObservableValue DISPLAYNAME = Observables.constantObservableValue("displayname");
+	private static final IObservableValue DISPLAYNAME_COLUMNS = Observables
+		.constantObservableValue("displayname-columns");
+	private static final IObservableValue DESCRIPTION = Observables.constantObservableValue("description");
+	private static final IObservableValue DESCRIPTION_COLUMNS = Observables
+		.constantObservableValue("description-columns");
+	private EMFFormsDatabinding databindingService;
+	private TableControlSWTRenderer renderer;
+	private Shell shell;
+	private EClass domainModel;
+	private VTableControl vTableControl;
+	private EMFFormsLabelProvider labelProvider;
+
+	/**
+	 * Set up executed before every test.
+	 * Mocks and registers the databinding and label service.
+	 * Creates a new {@link TableControlSWTRenderer} to be tested. Mocks needed parameters and contents (e.g.
+	 * VControl, ViewModelContext).
+	 *
+	 * @throws DatabindingFailedException
+	 * @throws NoLabelFoundException
+	 */
+	@Before
+	public void setUp() throws DatabindingFailedException, NoLabelFoundException {
+		databindingService = mock(EMFFormsDatabinding.class);
+		labelProvider = mock(EMFFormsLabelProvider.class);
+
+		when(labelProvider.getDescription(any(VDomainModelReference.class))).thenReturn(DESCRIPTION_COLUMNS);
+		when(labelProvider.getDescription(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			DESCRIPTION);
+		when(labelProvider.getDisplayName(any(VDomainModelReference.class))).thenReturn(DISPLAYNAME_COLUMNS);
+		when(labelProvider.getDisplayName(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			DISPLAYNAME);
+
+		shell = new Shell();
+
+		domainModel = EcoreFactory.eINSTANCE.createEClass();
+		final EStructuralFeature eStructuralFeature = EcorePackage.eINSTANCE.getEClass_ESuperTypes();
+
+		final VTableDomainModelReference tableDomainModelReference = createTableDomainModelReference(eStructuralFeature);
+		vTableControl = VTableFactory.eINSTANCE.createTableControl();
+		vTableControl.setDomainModelReference(tableDomainModelReference);
+
+		final IValueProperty valueProperty = new EMFValueProperty(EcorePackage.eINSTANCE.getEClass_ESuperTypes());
+		final IObservableValue observableValue = valueProperty.observe(domainModel);
+		when(databindingService.getObservableValue(vTableControl.getDomainModelReference(), domainModel)).thenReturn(
+			observableValue);
+
+		final ReportService reportservice = mock(ReportService.class);
+		final VTViewTemplateProvider vtViewTemplateProvider = mock(VTViewTemplateProvider.class);
+		final ImageRegistryService imageRegistryService = mock(ImageRegistryService.class);
+		final EMFFormsEditSupport emfFormsEditSupport = mock(EMFFormsEditSupport.class);
+		final ViewModelContext viewContext = new ViewModelContextImpl(vTableControl, domainModel);
+
+		renderer = new TableControlSWTRenderer(vTableControl, viewContext, reportservice, databindingService,
+			labelProvider, vtViewTemplateProvider, imageRegistryService, emfFormsEditSupport);
+		renderer.init();
+	}
+
+	private VTableDomainModelReference createTableDomainModelReference(EStructuralFeature eStructuralFeature) {
+		final VTableDomainModelReference tableDomainModelReference = VTableFactory.eINSTANCE
+			.createTableDomainModelReference();
+		tableDomainModelReference.setDomainModelEFeature(eStructuralFeature);
+
+		final VFeaturePathDomainModelReference columnReference1 = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		columnReference1.setDomainModelEFeature(EcorePackage.eINSTANCE.getEClass_Abstract());
+
+		tableDomainModelReference.getColumnDomainModelReferences().add(columnReference1);
+
+		return tableDomainModelReference;
+	}
+
+	@Test
+	public void testLabelServiceUsage() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		DatabindingFailedException {
+		final IValueProperty columnValueProperty = new EMFValueProperty(EcorePackage.eINSTANCE.getEClass_Abstract());
+		final VDomainModelReference columnDMR = ((VTableDomainModelReference) vTableControl.getDomainModelReference())
+			.getColumnDomainModelReferences().get(0);
+		when(databindingService.getValueProperty(columnDMR, domainModel)).thenReturn(columnValueProperty);
+
+		final Control renderedControl = renderer.render(new SWTGridCell(0, 0, renderer), shell);
+		final Composite composite = (Composite) renderedControl;
+		final Composite titleComposite = (Composite) composite.getChildren()[0];
+		final Label titleLabel = (Label) titleComposite.getChildren()[0];
+
+		assertEquals(DISPLAYNAME.getValue(), titleLabel.getText());
+
+		final Control tableControl = getTable(renderedControl);
+		assertTrue(Table.class.isInstance(tableControl));
+		final Table table = (Table) tableControl;
+		final TableColumn column = table.getColumn(1);
+		assertEquals(DISPLAYNAME_COLUMNS.getValue(), column.getText());
+		assertEquals(DESCRIPTION_COLUMNS.getValue(), column.getToolTipText());
+	}
+
+	/**
+	 * Tests the initial binding from the model to the table.
+	 *
+	 * @throws NoRendererFoundException Renderer could not be found
+	 * @throws NoPropertyDescriptorFoundExeption Property descriptor could not be found
+	 * @throws DatabindingFailedException if the databinidng failed
+	 */
+	@Test
+	public void testDatabindingServiceUsageInitialBinding() throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, DatabindingFailedException {
+		final List<EClass> initialList = createInitialList();
+
+		final WritableList mockedObservableList = new WritableList(initialList, EClass.class);
+
+		final Table table = setUpDatabindingTests(mockedObservableList, initialList.get(0), initialList.get(1));
+
+		assertDatabinding(mockedObservableList, table);
+	}
+
+	/**
+	 * Tests the binding from the model to the table for the addition of a new element to the model.
+	 *
+	 * @throws NoRendererFoundException Renderer could not be found
+	 * @throws NoPropertyDescriptorFoundExeption Property descriptor could not be found
+	 * @throws DatabindingFailedException if the databinidng failed
+	 */
+	@Test
+	public void testDatabindingServiceUsageAddToModel() throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, DatabindingFailedException {
+		final List<EClass> initialList = createInitialList();
+
+		final WritableList mockedObservableList = new WritableList(initialList, EClass.class);
+
+		final Table table = setUpDatabindingTests(mockedObservableList, initialList.get(0), initialList.get(1));
+
+		final EClass class3 = EcoreFactory.eINSTANCE.createEClass();
+		class3.setAbstract(true);
+		mockedObservableList.add(class3);
+
+		assertDatabinding(mockedObservableList, table);
+	}
+
+	/**
+	 * Tests the binding from the model to the table for the removal of a element from the model .
+	 *
+	 * @throws NoRendererFoundException Renderer could not be found
+	 * @throws NoPropertyDescriptorFoundExeption Property descriptor could not be found
+	 * @throws DatabindingFailedException if the databinidng failed
+	 */
+	@Test
+	public void testDatabindingServiceUsageRemoveFromModel() throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, DatabindingFailedException {
+		final List<EClass> initialList = createInitialList();
+
+		final WritableList mockedObservableList = new WritableList(initialList, EClass.class);
+
+		final Table table = setUpDatabindingTests(mockedObservableList, initialList.get(0), initialList.get(1));
+
+		mockedObservableList.remove(1);
+
+		assertDatabinding(mockedObservableList, table);
+	}
+
+	/**
+	 * Tests the binding from the model to the table for the change of an element of the model.
+	 *
+	 * @throws NoRendererFoundException Renderer could not be found
+	 * @throws NoPropertyDescriptorFoundExeption Property descriptor could not be found
+	 * @throws DatabindingFailedException if the databinidng failed
+	 */
+	@Test
+	public void testDatabindingServiceUsageChangeModel() throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, DatabindingFailedException {
+		final List<EClass> initialList = createInitialList();
+
+		final WritableList mockedObservableList = new WritableList(initialList, EClass.class);
+
+		final Table table = setUpDatabindingTests(mockedObservableList, initialList.get(0), initialList.get(1));
+
+		((EClass) mockedObservableList.get(0)).setAbstract(true);
+
+		assertDatabinding(mockedObservableList, table);
+	}
+
+	private void assertDatabinding(final WritableList mockedObservableList, final Table table) {
+		assertEquals(mockedObservableList.size(), table.getItemCount());
+		for (int i = 0; i < mockedObservableList.size(); i++) {
+			assertEquals(Boolean.toString(((EClass) mockedObservableList.get(i)).isAbstract()), table.getItem(i)
+				.getText(1));
+		}
+	}
+
+	/**
+	 * @return The initial list for data binding tests containing two {@link EClass} objects.
+	 */
+	private List<EClass> createInitialList() {
+		final List<EClass> initialList = new LinkedList<EClass>();
+		final EClass class1 = EcoreFactory.eINSTANCE.createEClass();
+		class1.setAbstract(false);
+		final EClass class2 = EcoreFactory.eINSTANCE.createEClass();
+		class2.setAbstract(true);
+		initialList.add(class1);
+		initialList.add(class2);
+		return initialList;
+	}
+
+	private Table setUpDatabindingTests(IObservableList mockedObservableList, EClass class1, EClass class2)
+		throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, DatabindingFailedException {
+
+		final IValueProperty columnValueProperty = new EMFValueProperty(EcorePackage.eINSTANCE.getEClass_Abstract());
+		final VDomainModelReference columnDMR = ((VTableDomainModelReference) vTableControl.getDomainModelReference())
+			.getColumnDomainModelReferences().get(0);
+		when(databindingService.getValueProperty(columnDMR, domainModel)).thenReturn(columnValueProperty);
+
+		when(databindingService.getObservableList(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			mockedObservableList);
+
+		final Control renderedControl = renderer.render(new SWTGridCell(0, 0, renderer), shell);
+		assertTrue(Composite.class.isInstance(renderedControl));
+		final Control tableControl = getTable(renderedControl);
+		assertTrue(Table.class.isInstance(tableControl));
+		return (Table) tableControl;
+	}
+
+	private Control getTable(Control render) {
+		Composite composite = (Composite) render;
+		composite = (Composite) composite.getChildren()[1];
+		return composite.getChildren()[0];
+	}
+}
diff --git a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/table/ui/swt/test/SWTTable_PTest.java b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/table/ui/swt/test/SWTTable_PTest.java
index 3bdf5f3..4adbc27 100644
--- a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/table/ui/swt/test/SWTTable_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/table/ui/swt/test/SWTTable_PTest.java
@@ -34,7 +34,6 @@
 import org.eclipse.emf.ecore.EcoreFactory;
 import org.eclipse.emf.ecore.EcorePackage;
 import org.eclipse.emf.ecp.common.spi.UniqueSetting;
-import org.eclipse.emf.ecp.view.internal.swt.SWTRendererFactoryImpl;
 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.ViewModelService;
@@ -49,9 +48,6 @@
 import org.eclipse.emf.ecp.view.spi.model.util.ViewModelUtil;
 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.AbstractSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.swt.SWTRendererFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridCell;
 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.model.VTableDomainModelReference;
@@ -60,6 +56,12 @@
 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.internal.swt.core.di.EMFFormsContextProviderImpl;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsContextProvider;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.swt.custom.ScrolledComposite;
@@ -75,11 +77,15 @@
 import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
 
 @RunWith(DatabindingClassRunner.class)
 public class SWTTable_PTest {
 	private static String log;
-	private static SWTRendererFactory rendererFactory = new SWTRendererFactoryImpl();
+	private static ServiceReference<EMFFormsRendererFactory> factoryServiceReference;
+	private static EMFFormsRendererFactory rendererFactory;
 	private static PrintStream systemErr;
 	private Shell shell;
 	private EObject domainElement;
@@ -88,11 +94,16 @@
 	public static void beforeClass() {
 		systemErr = System.err;
 		System.setErr(new PrintStreamWrapper(systemErr));
+		final BundleContext bundleContext = FrameworkUtil.getBundle(SWTTable_PTest.class).getBundleContext();
+		factoryServiceReference = bundleContext.getServiceReference(EMFFormsRendererFactory.class);
+		rendererFactory = bundleContext.getService(factoryServiceReference);
 	}
 
 	@AfterClass
 	public static void afterClass() {
 		System.setErr(systemErr);
+		final BundleContext bundleContext = FrameworkUtil.getBundle(SWTTable_PTest.class).getBundleContext();
+		bundleContext.ungetService(factoryServiceReference);
 	}
 
 	@Before
@@ -102,7 +113,6 @@
 
 		final EClass eClass = EcoreFactory.eINSTANCE.createEClass();
 		eClass.getESuperTypes().add(EcorePackage.eINSTANCE.getEClass());
-		new TableControlSWTRenderer();
 		domainElement = eClass;
 	}
 
@@ -115,7 +125,7 @@
 
 	@Test
 	public void testUninitializedTableWithoutColumns() throws NoRendererFoundException,
-		NoPropertyDescriptorFoundExeption {
+		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
 		// setup model
 		final TableControlHandle handle = createUninitializedTableWithoutColumns();
 		//
@@ -126,7 +136,7 @@
 
 	@Test
 	public void testInitializedTableWithoutColumnsAndEmptyReference() throws NoRendererFoundException,
-		NoPropertyDescriptorFoundExeption {
+		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
 		// setup model
 		final EClass createEClass = EcoreFactory.eINSTANCE.createEClass();
 		createEClass.eUnset(EcorePackage.eINSTANCE.getEClass_ESuperTypes());
@@ -144,7 +154,7 @@
 	@Ignore
 	@Test
 	public void testInitializedTableWithoutColumnsSingleReference() throws NoRendererFoundException,
-		NoPropertyDescriptorFoundExeption {
+		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
 		// setup model
 		final VView view = VViewFactory.eINSTANCE.createView();
 		view.setRootEClass(VViewPackage.eINSTANCE.getView());
@@ -167,7 +177,7 @@
 	@Ignore
 	@Test
 	public void testInitializedTableWithoutColumnsEmptySingleReference() throws NoRendererFoundException,
-		NoPropertyDescriptorFoundExeption {
+		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
 		// setup model
 		final VView view = VViewFactory.eINSTANCE.createView();
 		domainElement = view;
@@ -186,7 +196,8 @@
 	}
 
 	@Test
-	public void testTableWithoutColumns() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+	public void testTableWithoutColumns() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		EMFFormsNoRendererException {
 		// setup model
 		final TableControlHandle handle = createInitializedTableWithoutTableColumns();
 
@@ -205,9 +216,10 @@
 
 	@Test
 	public void testTableWithoutColumnsWithoutViewServices() throws NoRendererFoundException,
-		NoPropertyDescriptorFoundExeption {
+		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
 		final TableControlHandle handle = createInitializedTableWithoutTableColumns();
-		final AbstractSWTRenderer<VElement> tableRenderer = rendererFactory.getRenderer(handle.getTableControl(),
+		final AbstractSWTRenderer<VElement> tableRenderer = rendererFactory.getRendererInstance(
+			handle.getTableControl(),
 			new ViewModelContextWithoutServices(handle.getTableControl()));
 
 		final Control render = tableRenderer.render(new SWTGridCell(0, 0, tableRenderer), shell);
@@ -226,7 +238,8 @@
 	}
 
 	@Test
-	public void testTableWithTwoColumns() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+	public void testTableWithTwoColumns() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		EMFFormsNoRendererException {
 		// setup model
 		final TableControlHandle handle = createTableWithTwoTableColumns();
 		final Control render = SWTViewTestHelper.render(handle.getTableControl(), domainElement, shell);
@@ -241,10 +254,11 @@
 
 	@Test
 	public void testTableWithTwoColumnsWithoutViewServices() throws NoRendererFoundException,
-		NoPropertyDescriptorFoundExeption {
+		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
 		// setup model
 		final TableControlHandle handle = createTableWithTwoTableColumns();
-		final AbstractSWTRenderer<VElement> tableRenderer = rendererFactory.getRenderer(handle.getTableControl(),
+		final AbstractSWTRenderer<VElement> tableRenderer = rendererFactory.getRendererInstance(
+			handle.getTableControl(),
 			new ViewModelContextWithoutServices(handle.getTableControl()));
 
 		final Control render = tableRenderer.render(new SWTGridCell(0, 0, tableRenderer), shell);
@@ -260,9 +274,11 @@
 	}
 
 	@Test
-	public void testTableWithTwoColumnsAdd() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+	public void testTableWithTwoColumnsAdd() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		EMFFormsNoRendererException {
 		final TableControlHandle handle = createTableWithTwoTableColumns();
-		final AbstractSWTRenderer<VElement> tableRenderer = rendererFactory.getRenderer(handle.getTableControl(),
+		final AbstractSWTRenderer<VElement> tableRenderer = rendererFactory.getRendererInstance(
+			handle.getTableControl(),
 			new ViewModelContextWithoutServices(handle.getTableControl()));
 
 		final Control control = tableRenderer.render(new SWTGridCell(0, 0, tableRenderer), shell);
@@ -277,9 +293,11 @@
 	}
 
 	@Test
-	public void testTableWithTwoColumnsRemove() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+	public void testTableWithTwoColumnsRemove() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		EMFFormsNoRendererException {
 		final TableControlHandle handle = createTableWithTwoTableColumns();
-		final AbstractSWTRenderer<VElement> tableRenderer = rendererFactory.getRenderer(handle.getTableControl(),
+		final AbstractSWTRenderer<VElement> tableRenderer = rendererFactory.getRendererInstance(
+			handle.getTableControl(),
 			new ViewModelContextWithoutServices(handle.getTableControl()));
 
 		final Control control = tableRenderer.render(new SWTGridCell(0, 0, tableRenderer), shell);
@@ -294,11 +312,13 @@
 	}
 
 	@Test
-	public void testTableWithTwoColumnsClear() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+	public void testTableWithTwoColumnsClear() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		EMFFormsNoRendererException {
 		final EClass eClass = EcoreFactory.eINSTANCE.createEClass();
 		((EClass) domainElement).getESuperTypes().add(eClass);
 		final TableControlHandle handle = createTableWithTwoTableColumns();
-		final AbstractSWTRenderer<VElement> tableRenderer = rendererFactory.getRenderer(handle.getTableControl(),
+		final AbstractSWTRenderer<VElement> tableRenderer = rendererFactory.getRendererInstance(
+			handle.getTableControl(),
 			new ViewModelContextWithoutServices(handle.getTableControl()));
 
 		final Control control = tableRenderer.render(new SWTGridCell(0, 0, tableRenderer), shell);
@@ -312,13 +332,15 @@
 	}
 
 	@Test
-	public void testPanelTableWithTwoColumns() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+	public void testPanelTableWithTwoColumns() 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 AbstractSWTRenderer<VElement> tableRenderer = rendererFactory.getRenderer(handle.getTableControl(),
+		final AbstractSWTRenderer<VElement> tableRenderer = rendererFactory.getRendererInstance(
+			handle.getTableControl(),
 			new ViewModelContextWithoutServices(handle.getTableControl()));
 		final Control control = tableRenderer.render(new SWTGridCell(0, 0, tableRenderer), shell);
 		if (control == null) {
@@ -357,7 +379,8 @@
 	}
 
 	@Test
-	public void testTableSorting() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+	public void testTableSorting() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		EMFFormsNoRendererException {
 		// domain
 		((EClass) domainElement).getESuperTypes().clear();
 		final EClass class1 = createEClass("a", "b");
@@ -376,7 +399,7 @@
 			createDMR(EcorePackage.eINSTANCE.getEClassifier_InstanceClassName()));
 
 		// render
-		final AbstractSWTRenderer<VElement> tableRenderer = rendererFactory.getRenderer(tableControl,
+		final AbstractSWTRenderer<VElement> tableRenderer = rendererFactory.getRendererInstance(tableControl,
 			new ViewModelContextWithoutServices(tableControl));
 		final Control control = tableRenderer.render(new SWTGridCell(0, 0, tableRenderer), shell);
 		if (control == null) {
@@ -533,9 +556,11 @@
 	private class ViewModelContextWithoutServices implements ViewModelContext {
 
 		private final VElement view;
+		private final EMFFormsContextProvider contextProvider;
 
 		public ViewModelContextWithoutServices(VElement view) {
 			this.view = view;
+			contextProvider = new EMFFormsContextProviderImpl();
 			ViewModelUtil.resolveDomainReferences(getViewModel(), getDomainModel());
 		}
 
@@ -620,6 +645,9 @@
 		 */
 		@Override
 		public <T> boolean hasService(Class<T> serviceType) {
+			if (EMFFormsContextProvider.class.equals(serviceType)) {
+				return true;
+			}
 			return false;
 		}
 
@@ -628,8 +656,12 @@
 		 *
 		 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#getService(java.lang.Class)
 		 */
+		@SuppressWarnings("unchecked")
 		@Override
 		public <T> T getService(Class<T> serviceType) {
+			if (EMFFormsContextProvider.class.equals(serviceType)) {
+				return (T) contextProvider;
+			}
 			return null;
 		}
 
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 7fc25b3..67ca789 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,11 +6,11 @@
 	<parent>

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

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

-		<version>1.5.1-SNAPSHOT</version>

+		<version>1.6.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-plugin</packaging>

-	<version>1.5.1-SNAPSHOT</version>

+	<version>1.6.0-SNAPSHOT</version>

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

 </project>

diff --git a/tests/org.eclipse.emf.ecp.view.test.common.swt/.gitignore b/tests/org.eclipse.emf.ecp.view.test.common.swt/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.test.common.swt/.gitignore
@@ -0,0 +1 @@
+/bin/
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 e783745..7b2a93f 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,7 +2,7 @@
 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.eclipse.swt;bundle-version="[3.1.0,4.0.0)",
@@ -14,6 +14,9 @@
  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.edit;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.5.0,2.0.0)"
+ org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.6.0,2.0.0)";visibility:=reexport
 Export-Package: org.eclipse.emf.ecp.view.test.common.swt;x-internal:=t
- rue,org.eclipse.emf.ecp.view.test.common.swt.spi;version="1.5.1"
+ rue,org.eclipse.emf.ecp.view.test.common.swt.spi;version="1.6.0"
+Import-Package: org.osgi.framework
+Bundle-ActivationPolicy: lazy
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 4d7fad5..f8a88ef 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.5.1-SNAPSHOT</version>

+		<version>1.6.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.5.1-SNAPSHOT</version>

+  <version>1.6.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 5627077..6832716 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
@@ -15,17 +15,17 @@
 import java.util.List;
 
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecp.view.internal.swt.SWTRendererFactoryImpl;
 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.eclipse.emf.ecp.view.spi.renderer.NoPropertyDescriptorFoundExeption;
 import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException;
-import org.eclipse.emf.ecp.view.spi.swt.AbstractSWTRenderer;
-import org.eclipse.emf.ecp.view.spi.swt.SWTRendererFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.GridDescriptionFactory;
-import org.eclipse.emf.ecp.view.spi.swt.layout.SWTGridDescription;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.GridDescriptionFactory;
+import org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription;
 import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
@@ -34,10 +34,20 @@
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.swt.widgets.Text;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
 
 @SuppressWarnings("restriction")
 public final class SWTViewTestHelper {
-	private static SWTRendererFactory factory = new SWTRendererFactoryImpl();
+	// private static SWTRendererFactory factory = new SWTRendererFactoryImpl();
+	private static EMFFormsRendererFactory factory;
+	static {
+		final BundleContext bundleContext = FrameworkUtil.getBundle(SWTViewTestHelper.class).getBundleContext();
+		final ServiceReference<EMFFormsRendererFactory> serviceReference = bundleContext
+			.getServiceReference(EMFFormsRendererFactory.class);
+		factory = bundleContext.getService(serviceReference);
+	}
 
 	private SWTViewTestHelper() {
 
@@ -51,10 +61,10 @@
 	}
 
 	public static Control render(VElement renderable, EObject input, Shell shell) throws NoRendererFoundException,
-		NoPropertyDescriptorFoundExeption {
+		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
 		final ViewModelContext viewContext = ViewModelContextFactory.INSTANCE.createViewModelContext(renderable, input);
 		final AbstractSWTRenderer<VElement> renderer = factory
-			.getRenderer(renderable, viewContext);
+			.getRendererInstance(renderable, viewContext);
 		final SWTGridDescription gridDescription = renderer.getGridDescription(GridDescriptionFactory.INSTANCE
 			.createEmptyGridDescription());
 		final Control control = renderer.render(gridDescription.getGrid().get(gridDescription.getColumns() - 1), shell);
@@ -69,7 +79,7 @@
 	}
 
 	public static Control render(VElement renderable, Shell shell) throws NoRendererFoundException,
-		NoPropertyDescriptorFoundExeption {
+		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
 		return render(renderable, VViewFactory.eINSTANCE.createView(), shell);
 	}
 
diff --git a/tests/org.eclipse.emf.ecp.view.test.common/.gitignore b/tests/org.eclipse.emf.ecp.view.test.common/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.test.common/.gitignore
@@ -0,0 +1 @@
+/bin/
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 cf64fbc..2c74e1b 100644
--- a/tests/org.eclipse.emf.ecp.view.test.common/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.test.common/META-INF/MANIFEST.MF
@@ -2,9 +2,9 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: Common Test Plugin

 Bundle-SymbolicName: org.eclipse.emf.ecp.view.test.common

-Bundle-Version: 1.5.1.qualifier

+Bundle-Version: 1.6.0.qualifier

 Bundle-Vendor: Eclipse Modeling Project

 Bundle-RequiredExecutionEnvironment: JavaSE-1.6

-Export-Package: org.eclipse.emf.ecp.view.test.common.spi;version="1.5.

- 1"

+Export-Package: org.eclipse.emf.ecp.view.test.common.spi;version="1.6.

+ 0"

 Require-Bundle: org.eclipse.emf.ecore;bundle-version="2.9.0"

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 9034a2c..560be14 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/META-INF/MANIFEST.MF
index e4a0e49..76e14cd 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Tests for the TreeMasterDetail Renderer
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.4.0,2.0.0)",
@@ -15,4 +15,4 @@
  org.eclipse.emf.ecp.ui.view.swt;bundle-version="1.4.0",
  org.eclipse.emf.ecp.view.context;bundle-version="[1.5.0,2.0.0)"
 Export-Package: org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test;
- version="1.5.1";x-internal:=true
+ version="1.6.0";x-internal:=true
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
index aa8085b..dca2914 100644
--- 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
@@ -15,7 +15,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.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.view.control,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.databinding,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.databinding,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="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.view.control,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"/>
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 2cadae2..601ffa2 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-test-plugin</packaging>
   
 	<build>
@@ -24,28 +24,36 @@
 				<configuration>
 		          	<useUIHarness>true</useUIHarness>
 		          	<useUIThread>true</useUIThread>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.viewmodel.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-                        <dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.template.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-                        <dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.treemasterdetail.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-					</dependencies>
+				</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.target.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.viewmodel.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+	                        <requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.template.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+	                        <requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.treemasterdetail.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
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 482343b..2e12154 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,15 +2,15 @@
 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.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Fragment-Host: org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.5.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
 Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)"
 Export-Package: org.eclipse.emf.ecp.view.treemasterdetail.validation.t
- est;version="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.treemas
- terdetail.validation.test.TestTMD;version="1.5.1";x-internal:=true,or
+ est;version="1.6.0";x-internal:=true,org.eclipse.emf.ecp.view.treemas
+ terdetail.validation.test.TestTMD;version="1.6.0";x-internal:=true,or
  g.eclipse.emf.ecp.view.treemasterdetail.validation.test.TestTMD.impl;
- version="1.5.1";x-internal:=true,org.eclipse.emf.ecp.view.treemasterd
- etail.validation.test.TestTMD.util;version="1.5.1";x-internal:=true
+ version="1.6.0";x-internal:=true,org.eclipse.emf.ecp.view.treemasterd
+ etail.validation.test.TestTMD.util;version="1.6.0";x-internal:=true
diff --git a/tests/org.eclipse.emf.ecp.view.treemasterdetail.validation.test/plugin.properties b/tests/org.eclipse.emf.ecp.view.treemasterdetail.validation.test/plugin.properties
index 41c8773..731a6c2 100644
--- a/tests/org.eclipse.emf.ecp.view.treemasterdetail.validation.test/plugin.properties
+++ b/tests/org.eclipse.emf.ecp.view.treemasterdetail.validation.test/plugin.properties
@@ -1,4 +1,4 @@
 #
 
 pluginName = TestTMD Model
-providerName = www.example.org
+providerName = Eclipse Modeling Project
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 91b474c..eaa2add 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-parent</artifactId>
-    <version>1.5.1-SNAPSHOT</version>
+    <version>1.6.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng/</relativePath>
   </parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.view.treemasterdetail.validation.test</artifactId>
-	<version>1.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -27,38 +27,46 @@
 		          	<useUIHarness>true</useUIHarness>
 		          	<useUIThread>true</useUIThread>
 		          	<testFailureIgnore>true</testFailureIgnore>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.viewmodel.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.treemasterdetail.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.validation.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.validation.initial.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-					</dependencies>
+				</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.target.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.viewmodel.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.treemasterdetail.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.validation.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.validation.initial.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
diff --git a/tests/org.eclipse.emf.ecp.view.ui.editor.test/AllEditorTests.launch b/tests/org.eclipse.emf.ecp.view.ui.editor.test/AllEditorTests.launch
index 839b9a0..6efcd28 100644
--- a/tests/org.eclipse.emf.ecp.view.ui.editor.test/AllEditorTests.launch
+++ b/tests/org.eclipse.emf.ecp.view.ui.editor.test/AllEditorTests.launch
@@ -31,8 +31,8 @@
 <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.sdk.ide"/>

-<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.apache.commons.codec@default:default,org.apache.commons.logging@default:default,org.apache.log4j@default:default,org.apache.lucene.analysis@default:default,org.apache.lucene.core@default:default,org.eclipse.ant.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.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.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.net.win32.x86_64@default:false,org.eclipse.core.net@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.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.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.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.registry@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.win32.x86_64@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.base@default:default,org.eclipse.help.ui@default:default,org.eclipse.help@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.jetty.continuation@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@-1:true,org.eclipse.swt.win32.win32.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.swtbot.eclipse.core@default:default,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.editors@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.trace@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.hamcrest.core@default:default,org.hamcrest.library@default:default,org.junit@default:default,org.objenesis@default:default,org.slf4j.api@default:default,org.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.core.test@default:false,org.eclipse.emf.ecp.core@default:default,org.eclipse.emf.ecp.edit.swt.test@default:false,org.eclipse.emf.ecp.edit.swt@default:default,org.eclipse.emf.ecp.edit@default:default,org.eclipse.emf.ecp.editor.e3@default:default,org.eclipse.emf.ecp.emfstore.core@default:default,org.eclipse.emf.ecp.explorereditorbridge@default:default,org.eclipse.emf.ecp.ide.util@default:default,org.eclipse.emf.ecp.ide.view.service@default:default,org.eclipse.emf.ecp.ui.rcp@default:false,org.eclipse.emf.ecp.ui.view.editor.controls.test@default:false,org.eclipse.emf.ecp.ui.view.editor.controls@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@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.test@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.custom.ui.swt@default:default,org.eclipse.emf.ecp.view.dynamictree.model.edit@default:default,org.eclipse.emf.ecp.view.dynamictree.model.test@default:default,org.eclipse.emf.ecp.view.dynamictree.model@default:default,org.eclipse.emf.ecp.view.dynamictree.ui.swt@default:default,org.eclipse.emf.ecp.view.dynamictree.ui@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.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.editor.testplugin@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.stack.model@default:default,org.eclipse.emf.ecp.view.swt.layout@default:default,org.eclipse.emf.ecp.view.table.celleditor.rcp@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.test@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.test.common@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.ui.editor.test@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.workspace.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,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.apache.commons.codec@default:default,org.apache.commons.logging@default:default,org.apache.log4j@default:default,org.apache.lucene.analysis@default:default,org.apache.lucene.core@default:default,org.eclipse.ant.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.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.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.net.win32.x86_64@default:false,org.eclipse.core.net@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.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.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.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.registry@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.win32.x86_64@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.base@default:default,org.eclipse.help.ui@default:default,org.eclipse.help@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.jetty.continuation@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@-1:true,org.eclipse.swt.win32.win32.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.swtbot.eclipse.core@default:default,org.eclipse.swtbot.eclipse.finder@default:default,org.eclipse.swtbot.go@default:default,org.eclipse.swtbot.junit4_x@default:default,org.eclipse.swtbot.swt.finder@default:default,org.eclipse.team.core@default:default,org.eclipse.team.ui@default:default,org.eclipse.text@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.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.win32@default:false,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.hamcrest.core@default:default,org.hamcrest.library@default:default,org.junit@default:default,org.mockito.mockito-all@default:default,org.objenesis@default:default,org.slf4j.api@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.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.util@default:default,org.eclipse.emf.ecp.ide.view.service@default:default,org.eclipse.emf.ecp.ui.rcp@default:false,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.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.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@default:default,org.eclipse.emf.ecp.view.custom.ui.swt@default:default,org.eclipse.emf.ecp.view.dynamictree.model.edit@default:default,org.eclipse.emf.ecp.view.dynamictree.model.test@default:default,org.eclipse.emf.ecp.view.dynamictree.model@default:default,org.eclipse.emf.ecp.view.dynamictree.ui.swt@default:default,org.eclipse.emf.ecp.view.dynamictree.ui@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.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.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.stack.model@default:default,org.eclipse.emf.ecp.view.swt.layout@default:default,org.eclipse.emf.ecp.view.table.celleditor.rcp@default:default,org.eclipse.emf.ecp.view.table.columnservice@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.test@default:default,org.eclipse.emf.ecp.view.table.ui.swt@default:default,org.eclipse.emf.ecp.view.table.validation@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.template.service@default:default,org.eclipse.emf.ecp.view.test.common.swt@default:default,org.eclipse.emf.ecp.view.test.common@default:default,org.eclipse.emf.ecp.view.treemasterdetail.model.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.ui.editor.test@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.workspace.core@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.editsupport@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@default:default,org.eclipse.emfforms.localization@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.view.model.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.ui.editor.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.ui.editor.test/META-INF/MANIFEST.MF
index 2287319..71ea289 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Editor SWTBot Tests
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.ui.editor.test;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.ui.editor.test.Activator
 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)",
@@ -29,11 +29,12 @@
  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
  org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.view.table.ui.swt.test;bundle-version="[1.5.0,2.0.0)"
+ org.eclipse.emf.ecp.view.table.ui.swt.test;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emfforms.view.model.localization;bundle-version="[1.6.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.ui.editor.test;version="1.5.1
+Export-Package: org.eclipse.emf.ecp.view.ui.editor.test;version="1.6.0
  ";uses:="org.eclipse.emf.emfstore.bowling,org.eclipse.swtbot.swt.find
  er,org.osgi.framework",org.eclipse.emf.ecp.view.ui.editor.test.contro
- ls;version="1.5.1";x-internal:=true
+ ls;version="1.6.0";x-internal:=true
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 7864c2e..03ac72e 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
@@ -1,19 +1,20 @@
 <?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>
+<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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
-  <packaging>eclipse-test-plugin</packaging>
-  
+
+	<groupId>org.eclipse.emf.ecp</groupId>
+	<artifactId>org.eclipse.emf.ecp.view.ui.editor.test</artifactId>
+	<version>1.6.0-SNAPSHOT</version>
+	<packaging>eclipse-test-plugin</packaging>
+
 	<build>
 		<sourceDirectory>src</sourceDirectory>
 		<plugins>
@@ -22,74 +23,62 @@
 				<artifactId>tycho-surefire-plugin</artifactId>
 				<version>${tycho-version}</version>
 				<configuration>
-		          	<useUIHarness>true</useUIHarness>
-		          	<useUIThread>false</useUIThread>
-		          	<testFailureIgnore>true</testFailureIgnore>
+					<useUIHarness>true</useUIHarness>
+					<useUIThread>false</useUIThread>
+					<testFailureIgnore>true</testFailureIgnore>
 					<product>org.eclipse.sdk.ide</product>
 					<application>org.eclipse.ui.ide.workbench</application>
 					<systemProperties>
-					   <property>
-					       <name>enableDisplaySync</name>
-					       <value>true</value>
-					   </property>
-                    </systemProperties>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.viewmodel.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.categorization.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.rule.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.validation.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.table.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.emfstore.example.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						  <dependency>
-                            <type>eclipse-feature</type>
-                            <artifactId>org.eclipse.emf.ecp.view.dynamictree.feature</artifactId>
-                            <version>0.0.0</version>
-                        </dependency>
-                        <dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.template.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.table.celleditor.rcp.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-					</dependencies>
+						<property>
+							<name>enableDisplaySync</name>
+							<value>true</value>
+						</property>
+					</systemProperties>
+				</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.view.dynamictree.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.viewmodel.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.template.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.categorization.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.emfstore.example.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.table.celleditor.rcp.feature</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>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
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 740c013..90bb7bb 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Unset Service Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.unset.test
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)",
@@ -16,5 +16,6 @@
  org.eclipse.emf.ecp.view.rule.test;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.rule;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.view.table.model;bundle-version="[1.5.0,2.0.0)"
-Export-Package: org.eclipse.emf.ecp.view.unset.test;version="1.5.1"
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.5.0,2.0.0)"
+Export-Package: org.eclipse.emf.ecp.view.unset.test;version="1.6.0"
diff --git a/tests/org.eclipse.emf.ecp.view.unset.test/UnsetServiceTest.launch b/tests/org.eclipse.emf.ecp.view.unset.test/UnsetServiceTest.launch
index a45add7..d3b37c9 100644
--- a/tests/org.eclipse.emf.ecp.view.unset.test/UnsetServiceTest.launch
+++ b/tests/org.eclipse.emf.ecp.view.unset.test/UnsetServiceTest.launch
@@ -32,8 +32,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.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.apache.commons.codec@default:default,org.apache.commons.logging@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.compatibility.registry@default:false,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.cdo.ecore.retrofit@default:false,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@-1:true,org.eclipse.swt.win32.win32.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@default:default,org.w3c.dom.svg@default:default"/>

-<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.ecp.common.ui@default:default,org.eclipse.emf.ecp.common@default:default,org.eclipse.emf.ecp.core.test@default:false,org.eclipse.emf.ecp.core@default:default,org.eclipse.emf.ecp.edit.swt@default:default,org.eclipse.emf.ecp.edit@default:default,org.eclipse.emf.ecp.editor.e3@default:default,org.eclipse.emf.ecp.emfstore.core@default:default,org.eclipse.emf.ecp.explorereditorbridge@default:default,org.eclipse.emf.ecp.ui.rcp@default:false,org.eclipse.emf.ecp.ui.view.swt.test@default:false,org.eclipse.emf.ecp.ui.view.swt@default:default,org.eclipse.emf.ecp.ui.view.test@default:default,org.eclipse.emf.ecp.ui.view@default:default,org.eclipse.emf.ecp.ui@default:default,org.eclipse.emf.ecp.view.categorization.model@default:default,org.eclipse.emf.ecp.view.context@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.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.rule.test@default:default,org.eclipse.emf.ecp.view.rule.ui.swt.test@default:false,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.test.common.swt@default:default,org.eclipse.emf.ecp.view.test.common@default:default,org.eclipse.emf.ecp.view.unset.test@default:default,org.eclipse.emf.ecp.view.unset@default:default,org.eclipse.emf.ecp.view.validation@default:default,org.eclipse.emf.ecp.view.vertical.model@default:default"/>

+<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.apache.commons.codec@default:default,org.apache.commons.logging@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.compatibility.registry@default:false,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.cdo.ecore.retrofit@default:false,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@-1:true,org.eclipse.swt.win32.win32.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-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.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.test.common@default:default,org.eclipse.emf.ecp.test.model@default:default,org.eclipse.emf.ecp.ui.rcp@default:false,org.eclipse.emf.ecp.ui.view.swt.test@default:false,org.eclipse.emf.ecp.ui.view.swt@default:default,org.eclipse.emf.ecp.ui.view.test@default:default,org.eclipse.emf.ecp.ui.view@default:default,org.eclipse.emf.ecp.ui@default:default,org.eclipse.emf.ecp.view.categorization.model@default:default,org.eclipse.emf.ecp.view.context@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.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.rule.test@default:default,org.eclipse.emf.ecp.view.rule.ui.swt.test@default:false,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.test.common.swt@default:default,org.eclipse.emf.ecp.view.test.common@default:default,org.eclipse.emf.ecp.view.unset.test@default:default,org.eclipse.emf.ecp.view.unset@default:default,org.eclipse.emf.ecp.view.validation@default:default,org.eclipse.emf.ecp.view.vertical.model@default:default,org.eclipse.emf.emfforms.core.services.emfspecificservice@default:default,org.eclipse.emf.emfforms.core.services.labelprovider@default:default,org.eclipse.emf.emfforms.localization@default:default,org.eclipse.emfforms.core.services.databinding.featurepath@default:default,org.eclipse.emfforms.core.services.databinding@default:default,org.eclipse.emfforms.core.services.editsupport@default:default,org.eclipse.emfforms.view.model.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.unset.test/pom.xml b/tests/org.eclipse.emf.ecp.view.unset.test/pom.xml
index 9c59cdc..54453a1 100644
--- a/tests/org.eclipse.emf.ecp.view.unset.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.unset.test/pom.xml
@@ -6,11 +6,11 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-plugin</packaging>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.unset.test/src/org/eclipse/emf/ecp/view/unset/test/AllTests.java b/tests/org.eclipse.emf.ecp.view.unset.test/src/org/eclipse/emf/ecp/view/unset/test/AllTests.java
index ffbc20e..6504e83 100644
--- a/tests/org.eclipse.emf.ecp.view.unset.test/src/org/eclipse/emf/ecp/view/unset/test/AllTests.java
+++ b/tests/org.eclipse.emf.ecp.view.unset.test/src/org/eclipse/emf/ecp/view/unset/test/AllTests.java
@@ -21,8 +21,8 @@
  */
 @RunWith(Suite.class)
 @SuiteClasses({
-	UnsetRuleIntegration_Test.class,
-	UnsetService_Test.class })
+	UnsetRuleIntegration_PTest.class,
+	UnsetService_PTest.class })
 public class AllTests {
 
 }
diff --git a/tests/org.eclipse.emf.ecp.view.unset.test/src/org/eclipse/emf/ecp/view/unset/test/UnsetRuleIntegration_PTest.java b/tests/org.eclipse.emf.ecp.view.unset.test/src/org/eclipse/emf/ecp/view/unset/test/UnsetRuleIntegration_PTest.java
new file mode 100644
index 0000000..95974d4
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.unset.test/src/org/eclipse/emf/ecp/view/unset/test/UnsetRuleIntegration_PTest.java
@@ -0,0 +1,316 @@
+/*******************************************************************************
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.unset.test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.math.BigDecimal;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.test.common.DefaultRealm;
+import org.eclipse.emf.ecp.view.internal.rule.RuleService;
+import org.eclipse.emf.ecp.view.internal.rule.RuleServiceHelperImpl;
+import org.eclipse.emf.ecp.view.internal.unset.UnsetService;
+import org.eclipse.emf.ecp.view.rule.test.CommonRuleTest;
+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.context.ViewModelContextFactory;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.model.VView;
+import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
+import org.eclipse.emf.ecp.view.spi.rule.model.RuleFactory;
+import org.eclipse.emf.ecp.view.spi.rule.model.ShowRule;
+import org.eclipse.emf.emfstore.bowling.BowlingFactory;
+import org.eclipse.emf.emfstore.bowling.BowlingPackage;
+import org.eclipse.emf.emfstore.bowling.Fan;
+import org.eclipse.emf.emfstore.bowling.League;
+import org.eclipse.emf.emfstore.bowling.Merchandise;
+import org.eclipse.emf.emfstore.bowling.Player;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * @author jfaltermeier
+ *
+ */
+public class UnsetRuleIntegration_PTest extends CommonRuleTest {
+
+	private static final String FOO = "foo";
+	private Fan fan;
+	private Merchandise merchandise;
+
+	private final EStructuralFeature merchandiseNameFeature = BowlingPackage.eINSTANCE.getMerchandise_Name();
+	private final EStructuralFeature fanNameFeature = BowlingPackage.eINSTANCE.getFan_Name();
+	private final BigDecimal price = new BigDecimal(19.84);
+	private final String mercName = "Wimpel";
+	private final String fanName = "Max Morlock";
+
+	private VView view;
+
+	private ViewModelContext context;
+	private DefaultRealm realm;
+
+	@Before
+	public void before() {
+		realm = new DefaultRealm();
+		fan = BowlingFactory.eINSTANCE.createFan();
+		merchandise = BowlingFactory.eINSTANCE.createMerchandise();
+		merchandise.setPrice(price);
+		merchandise.setName(mercName);
+		fan.setFavouriteMerchandise(merchandise);
+		fan.setName(fanName);
+
+		view = VViewFactory.eINSTANCE.createView();
+		view.setRootEClass(fan.eClass());
+	}
+
+	@After
+	public void after() {
+		if (context != null) {
+			context.dispose();
+		}
+		realm.dispose();
+	}
+
+	@Test
+	public void testPriorities() {
+		final RuleService rule = new RuleService();
+		final UnsetService unset = new UnsetService();
+		assertTrue(rule.getPriority() < unset.getPriority());
+	}
+
+	@Test
+	public void testUnset() {
+		final VControl control1 = addControlToView(merchandiseNameReferenceFromFan());
+		addShowRule(control1, true, BowlingPackage.eINSTANCE.getFan_Name(), FOO);
+
+		fan.setName(FOO);
+		merchandise.setName("bar");
+
+		services(fan);
+
+		fan.setName("quux");
+		assertFalse(control1.isVisible());
+		assertEquals(merchandiseNameFeature.getDefaultValue(), merchandise.getName());
+	}
+
+	@Test
+	public void testMultiUnset() {
+		final League league = BowlingFactory.eINSTANCE.createLeague();
+		final Player player = BowlingFactory.eINSTANCE.createPlayer();
+		league.getPlayers().add(player);
+
+		view.setRootEClass(BowlingPackage.eINSTANCE.getLeague());
+
+		final VControl control = VViewFactory.eINSTANCE.createControl();
+
+		final VFeaturePathDomainModelReference domainModelReference = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		domainModelReference.setDomainModelEFeature(BowlingPackage.eINSTANCE.getLeague_Players());
+		control.setDomainModelReference(domainModelReference);
+
+		view.getChildren().add(control);
+
+		addShowRule(control, true, BowlingPackage.eINSTANCE.getLeague_Name(), "League");
+		league.setName("League");
+		services(league);
+		assertEquals(1, league.getPlayers().size());
+		league.setName("Liga");
+		assertEquals(0, league.getPlayers().size());
+	}
+
+	@Test
+	public void testInitUnset() {
+		final VControl control1 = addControlToView(merchandiseNameReferenceFromFan());
+		addShowRule(control1, true, BowlingPackage.eINSTANCE.getFan_Name(), FOO);
+
+		merchandise.setName("bar");
+		fan.setName("quux");
+		services(fan);
+		assertFalse(control1.isVisible());
+		assertEquals(merchandiseNameFeature.getDefaultValue(), merchandise.getName());
+	}
+
+	@Test
+	public void testVCategorizationElementHideCategory() {
+		// set up view model
+		final VCategorizationElement element = VCategorizationFactory.eINSTANCE.createCategorizationElement();
+		view.getChildren().add(element);
+
+		final VCategorization categorization = VCategorizationFactory.eINSTANCE.createCategorization();
+		element.getCategorizations().add(categorization);
+
+		final VCategory categoryInCategorization = VCategorizationFactory.eINSTANCE.createCategory();
+		categorization.getCategorizations().add(categoryInCategorization);
+
+		final VControl fanNameC = VViewFactory.eINSTANCE.createControl();
+		categoryInCategorization.setComposite(fanNameC);
+		final VFeaturePathDomainModelReference fanDMR = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		fanDMR.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_Name());
+		fanNameC.setDomainModelReference(fanDMR);
+
+		final VCategory category = VCategorizationFactory.eINSTANCE.createCategory();
+		element.getCategorizations().add(category);
+
+		final VControl merchName = VViewFactory.eINSTANCE.createControl();
+		category.setComposite(merchName);
+		final VFeaturePathDomainModelReference merchDMR = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		merchDMR.getDomainModelEReferencePath().add(BowlingPackage.eINSTANCE.getFan_FavouriteMerchandise());
+		merchDMR.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_Name());
+		merchName.setDomainModelReference(merchDMR);
+
+		// set up rules
+		addShowRule(category, false, BowlingPackage.eINSTANCE.getFan_Name(), FOO);
+
+		// init services
+		services(fan);
+		assertTrue(element.isVisible());
+		assertTrue(categorization.isVisible());
+		assertTrue(categoryInCategorization.isVisible());
+		assertTrue(fanNameC.isVisible());
+		assertTrue(category.isVisible());
+		assertTrue(merchName.isVisible());
+		assertTrue(fan.eIsSet(fanNameFeature));
+		assertTrue(merchandise.eIsSet(merchandiseNameFeature));
+		assertEquals(fanName, fan.getName());
+		assertEquals(mercName, merchandise.getName());
+
+		// act
+		fan.setName(FOO);
+
+		// assert
+		assertTrue(element.isVisible());
+		assertTrue(categorization.isVisible());
+		assertTrue(categoryInCategorization.isVisible());
+		assertTrue(fanNameC.isVisible());
+		assertFalse(category.isVisible());
+		assertFalse(merchName.isVisible());
+		assertTrue(fan.eIsSet(fanNameFeature));
+		assertEquals(FOO, fan.getName());
+		assertFalse(merchandise.eIsSet(merchandiseNameFeature));
+		assertEquals(merchandiseNameFeature.getDefaultValue(), merchandise.getName());
+	}
+
+	@Test
+	public void testVCategorizationElementHideCategoryInCategorization() {
+		// set up view model
+		final VCategorizationElement element = VCategorizationFactory.eINSTANCE.createCategorizationElement();
+		view.getChildren().add(element);
+
+		final VCategorization categorization = VCategorizationFactory.eINSTANCE.createCategorization();
+		element.getCategorizations().add(categorization);
+
+		final VCategory categoryInCategorization = VCategorizationFactory.eINSTANCE.createCategory();
+		categorization.getCategorizations().add(categoryInCategorization);
+
+		final VControl fanNameC = VViewFactory.eINSTANCE.createControl();
+		categoryInCategorization.setComposite(fanNameC);
+		final VFeaturePathDomainModelReference fanDMR = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		fanDMR.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_Name());
+		fanNameC.setDomainModelReference(fanDMR);
+
+		final VCategory category = VCategorizationFactory.eINSTANCE.createCategory();
+		element.getCategorizations().add(category);
+
+		final VControl merchName = VViewFactory.eINSTANCE.createControl();
+		category.setComposite(merchName);
+		final VFeaturePathDomainModelReference merchDMR = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		merchDMR.getDomainModelEReferencePath().add(BowlingPackage.eINSTANCE.getFan_FavouriteMerchandise());
+		merchDMR.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_Name());
+		merchName.setDomainModelReference(merchDMR);
+
+		// set up rules
+		final ShowRule rule = RuleFactory.eINSTANCE.createShowRule();
+		rule.setHide(true);
+		rule.setCondition(createLeafCondition(BowlingPackage.eINSTANCE.getMerchandise_Name(), FOO,
+			BowlingPackage.eINSTANCE.getFan_FavouriteMerchandise()));
+		categoryInCategorization.getAttachments().add(rule);
+
+		// init services
+		services(fan);
+		assertTrue(element.isVisible());
+		assertTrue(categorization.isVisible());
+		assertTrue(categoryInCategorization.isVisible());
+		assertTrue(fanNameC.isVisible());
+		assertTrue(category.isVisible());
+		assertTrue(merchName.isVisible());
+		assertTrue(fan.eIsSet(fanNameFeature));
+		assertTrue(merchandise.eIsSet(merchandiseNameFeature));
+		assertEquals(fanName, fan.getName());
+		assertEquals(mercName, merchandise.getName());
+
+		// act
+		merchandise.setName(FOO);
+
+		// assert
+		assertTrue(element.isVisible());
+		assertTrue(categorization.isVisible());
+		assertFalse(categoryInCategorization.isVisible());
+		assertFalse(fanNameC.isVisible());
+		assertTrue(category.isVisible());
+		assertTrue(merchName.isVisible());
+		assertFalse(fan.eIsSet(fanNameFeature));
+		assertEquals(fanNameFeature.getDefaultValue(), fan.getName());
+		assertTrue(merchandise.eIsSet(merchandiseNameFeature));
+		assertEquals(FOO, merchandise.getName());
+	}
+
+	// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
+	// Factory methods
+	// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+	private void services(EObject domain) {
+		context = ViewModelContextFactory.INSTANCE.createViewModelContext(view, domain);
+
+		final UnsetService unsetService = new UnsetService();
+		unsetService.instantiate(context);
+
+		final RuleService ruleService = new RuleService();
+		final RuleServiceHelperImpl ruleServiceHelper = new RuleServiceHelperImpl();
+		ruleService.instantiate(context);
+		ruleServiceHelper.instantiate(context);
+	}
+
+	/**
+	 * Adds a control with the given feature path domain model reference as a direct child of the view.
+	 *
+	 * @param domainModelReference
+	 * @return the created control
+	 */
+	private VControl addControlToView(VFeaturePathDomainModelReference domainModelReference) {
+		final VControl control = VViewFactory.eINSTANCE.createControl();
+		control.setDomainModelReference(domainModelReference);
+		view.getChildren().add(control);
+		return control;
+	}
+
+	private VFeaturePathDomainModelReference merchandiseNameReferenceFromFan() {
+		final VFeaturePathDomainModelReference domainModelReference = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		domainModelReference.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_Name());
+		domainModelReference.getDomainModelEReferencePath().add(BowlingPackage.eINSTANCE.getFan_FavouriteMerchandise());
+		return domainModelReference;
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.unset.test/src/org/eclipse/emf/ecp/view/unset/test/UnsetRuleIntegration_Test.java b/tests/org.eclipse.emf.ecp.view.unset.test/src/org/eclipse/emf/ecp/view/unset/test/UnsetRuleIntegration_Test.java
deleted file mode 100644
index 34cec69..0000000
--- a/tests/org.eclipse.emf.ecp.view.unset.test/src/org/eclipse/emf/ecp/view/unset/test/UnsetRuleIntegration_Test.java
+++ /dev/null
@@ -1,312 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Johannes Faltermeier - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.unset.test;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-import java.math.BigDecimal;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecp.view.internal.rule.RuleService;
-import org.eclipse.emf.ecp.view.internal.rule.RuleServiceHelperImpl;
-import org.eclipse.emf.ecp.view.internal.unset.UnsetService;
-import org.eclipse.emf.ecp.view.rule.test.CommonRuleTest;
-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.context.ViewModelContextFactory;
-import org.eclipse.emf.ecp.view.spi.model.VControl;
-import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
-import org.eclipse.emf.ecp.view.spi.model.VView;
-import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
-import org.eclipse.emf.ecp.view.spi.rule.model.RuleFactory;
-import org.eclipse.emf.ecp.view.spi.rule.model.ShowRule;
-import org.eclipse.emf.emfstore.bowling.BowlingFactory;
-import org.eclipse.emf.emfstore.bowling.BowlingPackage;
-import org.eclipse.emf.emfstore.bowling.Fan;
-import org.eclipse.emf.emfstore.bowling.League;
-import org.eclipse.emf.emfstore.bowling.Merchandise;
-import org.eclipse.emf.emfstore.bowling.Player;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * @author jfaltermeier
- *
- */
-public class UnsetRuleIntegration_Test extends CommonRuleTest {
-
-	private static final String FOO = "foo";
-	private Fan fan;
-	private Merchandise merchandise;
-
-	private final EStructuralFeature merchandiseNameFeature = BowlingPackage.eINSTANCE.getMerchandise_Name();
-	private final EStructuralFeature fanNameFeature = BowlingPackage.eINSTANCE.getFan_Name();
-	private final BigDecimal price = new BigDecimal(19.84);
-	private final String mercName = "Wimpel";
-	private final String fanName = "Max Morlock";
-
-	private VView view;
-
-	private ViewModelContext context;
-
-	@Before
-	public void before() {
-		fan = BowlingFactory.eINSTANCE.createFan();
-		merchandise = BowlingFactory.eINSTANCE.createMerchandise();
-		merchandise.setPrice(price);
-		merchandise.setName(mercName);
-		fan.setFavouriteMerchandise(merchandise);
-		fan.setName(fanName);
-
-		view = VViewFactory.eINSTANCE.createView();
-		view.setRootEClass(fan.eClass());
-	}
-
-	@After
-	public void after() {
-		if (context != null) {
-			context.dispose();
-		}
-	}
-
-	@Test
-	public void testPriorities() {
-		final RuleService rule = new RuleService();
-		final UnsetService unset = new UnsetService();
-		assertTrue(rule.getPriority() < unset.getPriority());
-	}
-
-	@Test
-	public void testUnset() {
-		final VControl control1 = addControlToView(merchandiseNameReferenceFromFan());
-		addShowRule(control1, true, BowlingPackage.eINSTANCE.getFan_Name(), FOO);
-
-		fan.setName(FOO);
-		merchandise.setName("bar");
-
-		services(fan);
-
-		fan.setName("quux");
-		assertFalse(control1.isVisible());
-		assertEquals(merchandiseNameFeature.getDefaultValue(), merchandise.getName());
-	}
-
-	@Test
-	public void testMultiUnset() {
-		final League league = BowlingFactory.eINSTANCE.createLeague();
-		final Player player = BowlingFactory.eINSTANCE.createPlayer();
-		league.getPlayers().add(player);
-
-		view.setRootEClass(BowlingPackage.eINSTANCE.getLeague());
-
-		final VControl control = VViewFactory.eINSTANCE.createControl();
-
-		final VFeaturePathDomainModelReference domainModelReference = VViewFactory.eINSTANCE
-			.createFeaturePathDomainModelReference();
-		domainModelReference.setDomainModelEFeature(BowlingPackage.eINSTANCE.getLeague_Players());
-		control.setDomainModelReference(domainModelReference);
-
-		view.getChildren().add(control);
-
-		addShowRule(control, true, BowlingPackage.eINSTANCE.getLeague_Name(), "League");
-		league.setName("League");
-		services(league);
-		assertEquals(1, league.getPlayers().size());
-		league.setName("Liga");
-		assertEquals(0, league.getPlayers().size());
-	}
-
-	@Test
-	public void testInitUnset() {
-		final VControl control1 = addControlToView(merchandiseNameReferenceFromFan());
-		addShowRule(control1, true, BowlingPackage.eINSTANCE.getFan_Name(), FOO);
-
-		merchandise.setName("bar");
-		fan.setName("quux");
-		services(fan);
-		assertFalse(control1.isVisible());
-		assertEquals(merchandiseNameFeature.getDefaultValue(), merchandise.getName());
-	}
-
-	@Test
-	public void testVCategorizationElementHideCategory() {
-		// set up view model
-		final VCategorizationElement element = VCategorizationFactory.eINSTANCE.createCategorizationElement();
-		view.getChildren().add(element);
-
-		final VCategorization categorization = VCategorizationFactory.eINSTANCE.createCategorization();
-		element.getCategorizations().add(categorization);
-
-		final VCategory categoryInCategorization = VCategorizationFactory.eINSTANCE.createCategory();
-		categorization.getCategorizations().add(categoryInCategorization);
-
-		final VControl fanNameC = VViewFactory.eINSTANCE.createControl();
-		categoryInCategorization.setComposite(fanNameC);
-		final VFeaturePathDomainModelReference fanDMR = VViewFactory.eINSTANCE
-			.createFeaturePathDomainModelReference();
-		fanDMR.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_Name());
-		fanNameC.setDomainModelReference(fanDMR);
-
-		final VCategory category = VCategorizationFactory.eINSTANCE.createCategory();
-		element.getCategorizations().add(category);
-
-		final VControl merchName = VViewFactory.eINSTANCE.createControl();
-		category.setComposite(merchName);
-		final VFeaturePathDomainModelReference merchDMR = VViewFactory.eINSTANCE
-			.createFeaturePathDomainModelReference();
-		merchDMR.getDomainModelEReferencePath().add(BowlingPackage.eINSTANCE.getFan_FavouriteMerchandise());
-		merchDMR.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_Name());
-		merchName.setDomainModelReference(merchDMR);
-
-		// set up rules
-		addShowRule(category, false, BowlingPackage.eINSTANCE.getFan_Name(), FOO);
-
-		// init services
-		services(fan);
-		assertTrue(element.isVisible());
-		assertTrue(categorization.isVisible());
-		assertTrue(categoryInCategorization.isVisible());
-		assertTrue(fanNameC.isVisible());
-		assertTrue(category.isVisible());
-		assertTrue(merchName.isVisible());
-		assertTrue(fan.eIsSet(fanNameFeature));
-		assertTrue(merchandise.eIsSet(merchandiseNameFeature));
-		assertEquals(fanName, fan.getName());
-		assertEquals(mercName, merchandise.getName());
-
-		// act
-		fan.setName(FOO);
-
-		// assert
-		assertTrue(element.isVisible());
-		assertTrue(categorization.isVisible());
-		assertTrue(categoryInCategorization.isVisible());
-		assertTrue(fanNameC.isVisible());
-		assertFalse(category.isVisible());
-		assertFalse(merchName.isVisible());
-		assertTrue(fan.eIsSet(fanNameFeature));
-		assertEquals(FOO, fan.getName());
-		assertFalse(merchandise.eIsSet(merchandiseNameFeature));
-		assertEquals(merchandiseNameFeature.getDefaultValue(), merchandise.getName());
-	}
-
-	@Test
-	public void testVCategorizationElementHideCategoryInCategorization() {
-		// set up view model
-		final VCategorizationElement element = VCategorizationFactory.eINSTANCE.createCategorizationElement();
-		view.getChildren().add(element);
-
-		final VCategorization categorization = VCategorizationFactory.eINSTANCE.createCategorization();
-		element.getCategorizations().add(categorization);
-
-		final VCategory categoryInCategorization = VCategorizationFactory.eINSTANCE.createCategory();
-		categorization.getCategorizations().add(categoryInCategorization);
-
-		final VControl fanNameC = VViewFactory.eINSTANCE.createControl();
-		categoryInCategorization.setComposite(fanNameC);
-		final VFeaturePathDomainModelReference fanDMR = VViewFactory.eINSTANCE
-			.createFeaturePathDomainModelReference();
-		fanDMR.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_Name());
-		fanNameC.setDomainModelReference(fanDMR);
-
-		final VCategory category = VCategorizationFactory.eINSTANCE.createCategory();
-		element.getCategorizations().add(category);
-
-		final VControl merchName = VViewFactory.eINSTANCE.createControl();
-		category.setComposite(merchName);
-		final VFeaturePathDomainModelReference merchDMR = VViewFactory.eINSTANCE
-			.createFeaturePathDomainModelReference();
-		merchDMR.getDomainModelEReferencePath().add(BowlingPackage.eINSTANCE.getFan_FavouriteMerchandise());
-		merchDMR.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_Name());
-		merchName.setDomainModelReference(merchDMR);
-
-		// set up rules
-		final ShowRule rule = RuleFactory.eINSTANCE.createShowRule();
-		rule.setHide(true);
-		rule.setCondition(createLeafCondition(BowlingPackage.eINSTANCE.getMerchandise_Name(), FOO,
-			BowlingPackage.eINSTANCE.getFan_FavouriteMerchandise()));
-		categoryInCategorization.getAttachments().add(rule);
-
-		// init services
-		services(fan);
-		assertTrue(element.isVisible());
-		assertTrue(categorization.isVisible());
-		assertTrue(categoryInCategorization.isVisible());
-		assertTrue(fanNameC.isVisible());
-		assertTrue(category.isVisible());
-		assertTrue(merchName.isVisible());
-		assertTrue(fan.eIsSet(fanNameFeature));
-		assertTrue(merchandise.eIsSet(merchandiseNameFeature));
-		assertEquals(fanName, fan.getName());
-		assertEquals(mercName, merchandise.getName());
-
-		// act
-		merchandise.setName(FOO);
-
-		// assert
-		assertTrue(element.isVisible());
-		assertTrue(categorization.isVisible());
-		assertFalse(categoryInCategorization.isVisible());
-		assertFalse(fanNameC.isVisible());
-		assertTrue(category.isVisible());
-		assertTrue(merchName.isVisible());
-		assertFalse(fan.eIsSet(fanNameFeature));
-		assertEquals(fanNameFeature.getDefaultValue(), fan.getName());
-		assertTrue(merchandise.eIsSet(merchandiseNameFeature));
-		assertEquals(FOO, merchandise.getName());
-	}
-
-	// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
-	// Factory methods
-	// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-	private void services(EObject domain) {
-		context = ViewModelContextFactory.INSTANCE.createViewModelContext(view, domain);
-
-		final UnsetService unsetService = new UnsetService();
-		unsetService.instantiate(context);
-
-		final RuleService ruleService = new RuleService();
-		final RuleServiceHelperImpl ruleServiceHelper = new RuleServiceHelperImpl();
-		ruleService.instantiate(context);
-		ruleServiceHelper.instantiate(context);
-	}
-
-	/**
-	 * Adds a control with the given feature path domain model reference as a direct child of the view.
-	 *
-	 * @param domainModelReference
-	 * @return the created control
-	 */
-	private VControl addControlToView(VFeaturePathDomainModelReference domainModelReference) {
-		final VControl control = VViewFactory.eINSTANCE.createControl();
-		control.setDomainModelReference(domainModelReference);
-		view.getChildren().add(control);
-		return control;
-	}
-
-	private VFeaturePathDomainModelReference merchandiseNameReferenceFromFan() {
-		final VFeaturePathDomainModelReference domainModelReference = VViewFactory.eINSTANCE
-			.createFeaturePathDomainModelReference();
-		domainModelReference.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_Name());
-		domainModelReference.getDomainModelEReferencePath().add(BowlingPackage.eINSTANCE.getFan_FavouriteMerchandise());
-		return domainModelReference;
-	}
-
-}
diff --git a/tests/org.eclipse.emf.ecp.view.unset.test/src/org/eclipse/emf/ecp/view/unset/test/UnsetService_PTest.java b/tests/org.eclipse.emf.ecp.view.unset.test/src/org/eclipse/emf/ecp/view/unset/test/UnsetService_PTest.java
new file mode 100644
index 0000000..4aec8eb
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.unset.test/src/org/eclipse/emf/ecp/view/unset/test/UnsetService_PTest.java
@@ -0,0 +1,1598 @@
+/*******************************************************************************
+ * 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 v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.unset.test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.math.BigDecimal;
+import java.util.Set;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.emf.ecp.common.spi.UniqueSetting;
+import org.eclipse.emf.ecp.test.common.DefaultRealm;
+import org.eclipse.emf.ecp.view.internal.unset.UnsetService;
+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.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.model.ModelChangeListener;
+import org.eclipse.emf.ecp.view.spi.model.VContainedContainer;
+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.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.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.vertical.model.VVerticalFactory;
+import org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalLayout;
+import org.eclipse.emf.emfstore.bowling.BowlingFactory;
+import org.eclipse.emf.emfstore.bowling.BowlingPackage;
+import org.eclipse.emf.emfstore.bowling.Fan;
+import org.eclipse.emf.emfstore.bowling.Merchandise;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * @author jfaltermeier
+ *
+ */
+public class UnsetService_PTest {
+
+	private Fan fan;
+	private Merchandise merchandise;
+
+	private final EStructuralFeature merchandisePriceFeature = BowlingPackage.eINSTANCE.getMerchandise_Price();
+	private final EStructuralFeature merchandiseNameFeature = BowlingPackage.eINSTANCE.getMerchandise_Name();
+	private final EStructuralFeature fanNameFeature = BowlingPackage.eINSTANCE.getFan_Name();
+	private final BigDecimal price = new BigDecimal(19.84);
+	private final String mercName = "Wimpel";
+	private final String fanName = "Max Morlock";
+
+	private VView view;
+
+	private ViewModelContext context;
+	private DefaultRealm realm;
+
+	@Before
+	public void before() {
+		realm = new DefaultRealm();
+		fan = BowlingFactory.eINSTANCE.createFan();
+		merchandise = BowlingFactory.eINSTANCE.createMerchandise();
+		merchandise.setPrice(price);
+		merchandise.setName(mercName);
+		fan.setFavouriteMerchandise(merchandise);
+		fan.setName(fanName);
+
+		view = VViewFactory.eINSTANCE.createView();
+		view.setRootEClass(fan.eClass());
+	}
+
+	@After
+	public void after() {
+		if (context != null) {
+			context.dispose();
+		}
+		realm.dispose();
+	}
+
+	// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
+	// Public methods
+	// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+	@Test
+	public void testInstantiate() {
+		final UnsetService unsetService = new UnsetService();
+		final ViewModelContextStub contextStub = new ViewModelContextStub();
+		unsetService.instantiate(contextStub);
+		assertTrue(contextStub.hasRegisteredViewListener);
+		assertFalse(contextStub.hasRegisteredDomainListener);
+	}
+
+	@Test(expected = IllegalStateException.class)
+	public void testInstantiateWithNullDomainModel() {
+		final UnsetService unsetService = new UnsetService();
+		final ViewModelContextStub contextStub = new ViewModelContextStub() {
+			@Override
+			public EObject getDomainModel() {
+				return null;
+			}
+		};
+		unsetService.instantiate(contextStub);
+	}
+
+	@Test(expected = IllegalStateException.class)
+	public void testInstantiateWithNullViewModel() {
+		final UnsetService unsetService = new UnsetService();
+		final ViewModelContextStub contextStub = new ViewModelContextStub() {
+			@Override
+			public VElement getViewModel() {
+				return null;
+			}
+		};
+		unsetService.instantiate(contextStub);
+	}
+
+	@Test
+	public void testDispose() {
+		final UnsetService unsetService = new UnsetService();
+		final ViewModelContextStub contextStub = new ViewModelContextStub();
+		unsetService.instantiate(contextStub);
+		assertTrue(contextStub.hasRegisteredViewListener);
+		assertFalse(contextStub.hasRegisteredDomainListener);
+		unsetService.dispose();
+		assertFalse(contextStub.hasRegisteredViewListener);
+		assertFalse(contextStub.hasRegisteredDomainListener);
+	}
+
+	@Test
+	public void testGetPriority() {
+		assertEquals(5, unsetService().getPriority());
+	}
+
+	// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
+	// Init
+	// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+	@Test
+	public void testInitSingleControlInViewAllVisible() {
+		addControlToView(merchandisePriceReferenceFromFan());
+		unsetService();
+		assertEquals(price, merchandise.getPrice());
+		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testInitSingleControlInViewWithHiddenControl() {
+		addControlToView(merchandisePriceReferenceFromFan()).setVisible(false);
+		unsetService();
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testInitSingleControlInViewWithHiddenView() {
+		addControlToView(merchandisePriceReferenceFromFan());
+		view.setVisible(false);
+		unsetService();
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testInitSingleControlInContainerAllVisible() {
+		addControlToContainer(addVerticalLayoutToView(), merchandisePriceReferenceFromFan());
+		unsetService();
+		assertEquals(price, merchandise.getPrice());
+		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testInitSingleControlInContainerWithHiddenControl() {
+		addControlToContainer(addVerticalLayoutToView(), merchandisePriceReferenceFromFan()).setVisible(false);
+		unsetService();
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testInitSingleControlInContainerWithHiddenContainer() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		container.setVisible(false);
+		unsetService();
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testInitSingleControlInContainerWithHiddenView() {
+		addControlToContainer(addVerticalLayoutToView(), merchandisePriceReferenceFromFan());
+		view.setVisible(false);
+		unsetService();
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testInitTwoControlsInViewAllVisible() {
+		addControlToView(merchandisePriceReferenceFromFan());
+		addControlToView(merchandisePriceReferenceFromFan());
+		unsetService();
+		assertEquals(price, merchandise.getPrice());
+		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testInitTwoControlsInViewWithOneHiddenControl() {
+		addControlToView(merchandisePriceReferenceFromFan());
+		addControlToView(merchandisePriceReferenceFromFan()).setVisible(false);
+		unsetService();
+		assertEquals(price, merchandise.getPrice());
+		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testInitTwoControlsInViewWithTwoHiddenControls() {
+		addControlToView(merchandisePriceReferenceFromFan()).setVisible(false);
+		addControlToView(merchandisePriceReferenceFromFan()).setVisible(false);
+		unsetService();
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testInitTwoControlsInViewWithHiddenView() {
+		addControlToView(merchandisePriceReferenceFromFan());
+		addControlToView(merchandisePriceReferenceFromFan());
+		view.setVisible(false);
+		unsetService();
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testInitTwoControlsInOneContainerAllVisible() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		unsetService();
+		assertEquals(price, merchandise.getPrice());
+		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testInitTwoControlsInOneContainerWithOneHiddenControl() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		addControlToContainer(container, merchandisePriceReferenceFromFan()).setVisible(false);
+		unsetService();
+		assertEquals(price, merchandise.getPrice());
+		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testInitTwoControlsInOneContainerWithTwoHiddenControls() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		addControlToContainer(container, merchandisePriceReferenceFromFan()).setVisible(false);
+		addControlToContainer(container, merchandisePriceReferenceFromFan()).setVisible(false);
+		unsetService();
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testInitTwoControlsInOneContainerWithHiddenContainer() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		container.setVisible(false);
+		unsetService();
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testInitTwoControlsInOneContainerWithHiddenView() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		view.setVisible(false);
+		unsetService();
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testInitTwoControlsInTwoContainersAllVisible() {
+		final VContainedContainer container1 = addVerticalLayoutToView();
+		final VContainedContainer container2 = addVerticalLayoutToView();
+		addControlToContainer(container1, merchandisePriceReferenceFromFan());
+		addControlToContainer(container2, merchandisePriceReferenceFromFan());
+		unsetService();
+		assertEquals(price, merchandise.getPrice());
+		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testInitTwoControlsInTwoContainersWithOneHiddenControl() {
+		final VContainedContainer container1 = addVerticalLayoutToView();
+		final VContainedContainer container2 = addVerticalLayoutToView();
+		addControlToContainer(container1, merchandisePriceReferenceFromFan());
+		addControlToContainer(container2, merchandisePriceReferenceFromFan()).setVisible(false);
+		unsetService();
+		assertEquals(price, merchandise.getPrice());
+		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testInitTwoControlsInTwoContainersWithOneHiddenContainer() {
+		final VContainedContainer container1 = addVerticalLayoutToView();
+		final VContainedContainer container2 = addVerticalLayoutToView();
+		addControlToContainer(container1, merchandisePriceReferenceFromFan());
+		addControlToContainer(container2, merchandisePriceReferenceFromFan());
+		container1.setVisible(false);
+		unsetService();
+		assertEquals(price, merchandise.getPrice());
+		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testInitTwoControlsInTwoContainersWithTwoHiddenControls() {
+		final VContainedContainer container1 = addVerticalLayoutToView();
+		final VContainedContainer container2 = addVerticalLayoutToView();
+		addControlToContainer(container1, merchandisePriceReferenceFromFan()).setVisible(false);
+		addControlToContainer(container2, merchandisePriceReferenceFromFan()).setVisible(false);
+		unsetService();
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testInitTwoControlsInTwoContainersWithTwoHiddenContainers() {
+		final VContainedContainer container1 = addVerticalLayoutToView();
+		final VContainedContainer container2 = addVerticalLayoutToView();
+		addControlToContainer(container1, merchandisePriceReferenceFromFan());
+		addControlToContainer(container2, merchandisePriceReferenceFromFan());
+		container1.setVisible(false);
+		container2.setVisible(false);
+		unsetService();
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testInitTwoControlsInTwoContainersWithHiddenView() {
+		final VContainedContainer container1 = addVerticalLayoutToView();
+		final VContainedContainer container2 = addVerticalLayoutToView();
+		addControlToContainer(container1, merchandisePriceReferenceFromFan());
+		addControlToContainer(container2, merchandisePriceReferenceFromFan());
+		view.setVisible(false);
+		unsetService();
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
+	// Dynamic
+	// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+	@Test
+	public void testChangeSingleControlInViewAllVisibleToHiddenControl() {
+		final VControl control = addControlToView(merchandisePriceReferenceFromFan());
+		unsetService();
+		control.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeSingleControlInViewAllVisibleToHiddenView() {
+		addControlToView(merchandisePriceReferenceFromFan());
+		unsetService();
+		view.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeSingleControlInViewWithHiddenControlToVisibleControl() {
+		final VControl control = addControlToView(merchandisePriceReferenceFromFan());
+		control.setVisible(false);
+		unsetService();
+		control.setVisible(true);
+		// we dont change the state of the domain model when shown again. if this changes assertions can be added here
+		merchandise.setPrice(price);
+		control.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeSingleControlInViewWithHiddenControlToHiddenView() {
+		final VControl control = addControlToView(merchandisePriceReferenceFromFan());
+		control.setVisible(false);
+		unsetService();
+		view.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeSingleControlInViewWithHiddenViewToHiddenControl() {
+		final VControl control = addControlToView(merchandisePriceReferenceFromFan());
+		view.setVisible(false);
+		unsetService();
+		control.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeSingleControlInViewWithHiddenViewToVisibleView() {
+		addControlToView(merchandisePriceReferenceFromFan());
+		view.setVisible(false);
+		unsetService();
+		view.setVisible(true);
+
+		// we dont change the state of the domain model when shown again. if this changes assertions can be added here
+		merchandise.setPrice(price);
+		view.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeSingleControlInContainerAllVisibleToHiddenControl() {
+		final VControl control = addControlToContainer(addVerticalLayoutToView(), merchandisePriceReferenceFromFan());
+		unsetService();
+		control.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeSingleControlInContainerAllVisibleToHiddenContainer() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		unsetService();
+		container.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeSingleControlInContainerAllVisibleToHiddenView() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		unsetService();
+		view.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeSingleControlInContainerWithHiddenControlToHiddenContainer() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		addControlToContainer(container, merchandisePriceReferenceFromFan()).setVisible(false);
+		unsetService();
+		container.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeSingleControlInContainerWithHiddenControlToHiddenView() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		addControlToContainer(container, merchandisePriceReferenceFromFan()).setVisible(false);
+		unsetService();
+		view.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeSingleControlInContainerWithHiddenControlToVisibleControl() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		final VControl control = addControlToContainer(container, merchandisePriceReferenceFromFan());
+		control.setVisible(false);
+		unsetService();
+		control.setVisible(true);
+
+		// we dont change the state of the domain model when shown again. if this changes assertions can be added here
+		merchandise.setPrice(price);
+		control.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeSingleControlInContainerWithHiddenContainerToHiddenControl() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		final VControl control = addControlToContainer(container, merchandisePriceReferenceFromFan());
+		container.setVisible(false);
+		unsetService();
+		control.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeSingleControlInContainerWithHiddenContainerToHiddenView() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		container.setVisible(false);
+		unsetService();
+		view.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeSingleControlInContainerWithHiddenContainerToVisibleContainer() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		container.setVisible(false);
+		unsetService();
+		container.setVisible(true);
+
+		// we dont change the state of the domain model when shown again. if this changes assertions can be added here
+		merchandise.setPrice(price);
+		container.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeSingleControlInContainerWithHiddenViewToHiddenControl() {
+		final VControl control = addControlToContainer(addVerticalLayoutToView(), merchandisePriceReferenceFromFan());
+		view.setVisible(false);
+		unsetService();
+		control.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeSingleControlInContainerWithHiddenViewToHiddenContainer() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		view.setVisible(false);
+		unsetService();
+		container.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeSingleControlInContainerWithHiddenViewToVisibleView() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		view.setVisible(false);
+		unsetService();
+		view.setVisible(true);
+
+		// we dont change the state of the domain model when shown again. if this changes assertions can be added here
+		merchandise.setPrice(price);
+		view.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInViewAllVisibleToOneHiddenControl() {
+		addControlToView(merchandisePriceReferenceFromFan());
+		final VControl control = addControlToView(merchandisePriceReferenceFromFan());
+		unsetService();
+		control.setVisible(false);
+		assertEquals(price, merchandise.getPrice());
+		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInViewAllVisibleToOneHiddenView() {
+		addControlToView(merchandisePriceReferenceFromFan());
+		addControlToView(merchandisePriceReferenceFromFan());
+		unsetService();
+		view.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInViewWithOneHiddenControlToTwoVisibleControls() {
+		addControlToView(merchandisePriceReferenceFromFan());
+		final VControl control = addControlToView(merchandisePriceReferenceFromFan());
+		control.setVisible(false);
+		unsetService();
+		control.setVisible(true);
+		assertEquals(price, merchandise.getPrice());
+		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInViewWithOneHiddenControlToTwoHiddenControls() {
+		final VControl control = addControlToView(merchandisePriceReferenceFromFan());
+		addControlToView(merchandisePriceReferenceFromFan()).setVisible(false);
+		unsetService();
+		control.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInViewWithOneHiddenControlToHiddenView() {
+		addControlToView(merchandisePriceReferenceFromFan());
+		addControlToView(merchandisePriceReferenceFromFan()).setVisible(false);
+		unsetService();
+		view.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInViewWithTwoHiddenControlsToHiddenView() {
+		addControlToView(merchandisePriceReferenceFromFan()).setVisible(false);
+		addControlToView(merchandisePriceReferenceFromFan()).setVisible(false);
+		unsetService();
+		view.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInViewWithTwoHiddenControlsToOneVisibleControl() {
+		addControlToView(merchandisePriceReferenceFromFan()).setVisible(false);
+		final VControl control = addControlToView(merchandisePriceReferenceFromFan());
+		control.setVisible(false);
+		unsetService();
+		control.setVisible(true);
+
+		// we dont change the state of the domain model when shown again. if this changes assertions can be added here
+		merchandise.setPrice(price);
+		control.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInViewWithHiddenViewToHiddenControl() {
+		addControlToView(merchandisePriceReferenceFromFan());
+		final VControl control = addControlToView(merchandisePriceReferenceFromFan());
+		view.setVisible(false);
+		unsetService();
+		control.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInViewWithHiddenViewToVisibleView() {
+		addControlToView(merchandisePriceReferenceFromFan());
+		addControlToView(merchandisePriceReferenceFromFan());
+		view.setVisible(false);
+		unsetService();
+		view.setVisible(true);
+
+		// we dont change the state of the domain model when shown again. if this changes assertions can be added here
+		merchandise.setPrice(price);
+		view.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInOneContainerAllVisibleToOneHiddenControl() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		final VControl control = addControlToContainer(container, merchandisePriceReferenceFromFan());
+		unsetService();
+		control.setVisible(false);
+		assertEquals(price, merchandise.getPrice());
+		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInOneContainerAllVisibleToHiddenContainer() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		unsetService();
+		container.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInOneContainerAllVisibleToHiddenView() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		unsetService();
+		view.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInOneContainerWithOneHiddenControlToTwoVisibleControls() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		final VControl control = addControlToContainer(container, merchandisePriceReferenceFromFan());
+		control.setVisible(false);
+		unsetService();
+		control.setVisible(true);
+		assertEquals(price, merchandise.getPrice());
+		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInOneContainerWithOneHiddenControlToTwoHiddenControls() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		final VControl control = addControlToContainer(container, merchandisePriceReferenceFromFan());
+		addControlToContainer(container, merchandisePriceReferenceFromFan()).setVisible(false);
+		unsetService();
+		control.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInOneContainerWithOneHiddenControlToHiddenContainer() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		addControlToContainer(container, merchandisePriceReferenceFromFan()).setVisible(false);
+		unsetService();
+		container.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInOneContainerWithOneHiddenControlToHiddenView() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		addControlToContainer(container, merchandisePriceReferenceFromFan()).setVisible(false);
+		unsetService();
+		view.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInOneContainerWithTwoHiddenControlsToHiddenContainer() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		addControlToContainer(container, merchandisePriceReferenceFromFan()).setVisible(false);
+		addControlToContainer(container, merchandisePriceReferenceFromFan()).setVisible(false);
+		unsetService();
+		container.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInOneContainerWithTwoHiddenControlsToHiddenView() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		addControlToContainer(container, merchandisePriceReferenceFromFan()).setVisible(false);
+		addControlToContainer(container, merchandisePriceReferenceFromFan()).setVisible(false);
+		unsetService();
+		view.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInOneContainerWithTwoHiddenControlsToOneVisibleControl() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		addControlToContainer(container, merchandisePriceReferenceFromFan()).setVisible(false);
+		final VControl control = addControlToContainer(container, merchandisePriceReferenceFromFan());
+		control.setVisible(false);
+		unsetService();
+		control.setVisible(true);
+
+		// we dont change the state of the domain model when shown again. if this changes assertions can be added here
+		merchandise.setPrice(price);
+		control.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInOneContainerWithHiddenContainerToOneHiddenControl() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		final VControl control = addControlToContainer(container, merchandisePriceReferenceFromFan());
+		container.setVisible(false);
+		unsetService();
+		control.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInOneContainerWithHiddenContainerToHiddenView() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		container.setVisible(false);
+		unsetService();
+		view.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInOneContainerWithHiddenContainerToVisibleContainer() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		container.setVisible(false);
+		unsetService();
+		container.setVisible(true);
+
+		// we dont change the state of the domain model when shown again. if this changes assertions can be added here
+		merchandise.setPrice(price);
+		container.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInOneContainerWithHiddenViewToOneHiddenControl() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		final VControl control = addControlToContainer(container, merchandisePriceReferenceFromFan());
+		view.setVisible(false);
+		unsetService();
+		control.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInOneContainerWithHiddenViewToHiddenContainer() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		view.setVisible(false);
+		unsetService();
+		container.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInOneContainerWithHiddenViewToVisibleView() {
+		final VContainedContainer container = addVerticalLayoutToView();
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		addControlToContainer(container, merchandisePriceReferenceFromFan());
+		view.setVisible(false);
+		unsetService();
+		view.setVisible(true);
+
+		// we dont change the state of the domain model when shown again. if this changes assertions can be added here
+		merchandise.setPrice(price);
+		view.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInTwoContainersAllVisibleToOneHiddenControl() {
+		final VContainedContainer container1 = addVerticalLayoutToView();
+		final VContainedContainer container2 = addVerticalLayoutToView();
+		addControlToContainer(container1, merchandisePriceReferenceFromFan());
+		final VControl control = addControlToContainer(container2, merchandisePriceReferenceFromFan());
+		unsetService();
+		control.setVisible(false);
+		assertEquals(price, merchandise.getPrice());
+		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInTwoContainersAllVisibleToOneHiddenContainer() {
+		final VContainedContainer container1 = addVerticalLayoutToView();
+		final VContainedContainer container2 = addVerticalLayoutToView();
+		addControlToContainer(container1, merchandisePriceReferenceFromFan());
+		addControlToContainer(container2, merchandisePriceReferenceFromFan());
+		unsetService();
+		container1.setVisible(false);
+		assertEquals(price, merchandise.getPrice());
+		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInTwoContainersAllVisibleToHiddenView() {
+		final VContainedContainer container1 = addVerticalLayoutToView();
+		final VContainedContainer container2 = addVerticalLayoutToView();
+		addControlToContainer(container1, merchandisePriceReferenceFromFan());
+		addControlToContainer(container2, merchandisePriceReferenceFromFan());
+		unsetService();
+		view.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInTwoContainersWithOneHiddenControlToTwoVisibleControls() {
+		final VContainedContainer container1 = addVerticalLayoutToView();
+		final VContainedContainer container2 = addVerticalLayoutToView();
+		addControlToContainer(container1, merchandisePriceReferenceFromFan());
+		final VControl control = addControlToContainer(container2, merchandisePriceReferenceFromFan());
+		control.setVisible(false);
+		unsetService();
+		control.setVisible(true);
+		assertEquals(price, merchandise.getPrice());
+		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInTwoContainersWithOneHiddenControlToHiddenContainerOfHiddenControl() {
+		final VContainedContainer container1 = addVerticalLayoutToView();
+		final VContainedContainer container2 = addVerticalLayoutToView();
+		addControlToContainer(container1, merchandisePriceReferenceFromFan());
+		addControlToContainer(container2, merchandisePriceReferenceFromFan()).setVisible(false);
+		unsetService();
+		container2.setVisible(false);
+		assertEquals(price, merchandise.getPrice());
+		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInTwoContainersWithOneHiddenControlToTwoHiddenControls() {
+		final VContainedContainer container1 = addVerticalLayoutToView();
+		final VContainedContainer container2 = addVerticalLayoutToView();
+		final VControl control = addControlToContainer(container1, merchandisePriceReferenceFromFan());
+		addControlToContainer(container2, merchandisePriceReferenceFromFan()).setVisible(false);
+		unsetService();
+		control.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInTwoContainersWithOneHiddenControlToHiddenContainerOfVisibleControl() {
+		final VContainedContainer container1 = addVerticalLayoutToView();
+		final VContainedContainer container2 = addVerticalLayoutToView();
+		addControlToContainer(container1, merchandisePriceReferenceFromFan());
+		addControlToContainer(container2, merchandisePriceReferenceFromFan()).setVisible(false);
+		unsetService();
+		container1.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInTwoContainersWithOneHiddenControlToHiddenView() {
+		final VContainedContainer container1 = addVerticalLayoutToView();
+		final VContainedContainer container2 = addVerticalLayoutToView();
+		addControlToContainer(container1, merchandisePriceReferenceFromFan());
+		addControlToContainer(container2, merchandisePriceReferenceFromFan()).setVisible(false);
+		unsetService();
+		view.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInTwoContainersWithOneHiddenContainerToHiddenControlInHiddenContainer() {
+		final VContainedContainer container1 = addVerticalLayoutToView();
+		final VContainedContainer container2 = addVerticalLayoutToView();
+		final VControl control = addControlToContainer(container1, merchandisePriceReferenceFromFan());
+		addControlToContainer(container2, merchandisePriceReferenceFromFan());
+		container1.setVisible(false);
+		unsetService();
+		control.setVisible(false);
+		assertEquals(price, merchandise.getPrice());
+		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInTwoContainersWithOneHiddenContainerToTwoVisibleContainers() {
+		final VContainedContainer container1 = addVerticalLayoutToView();
+		final VContainedContainer container2 = addVerticalLayoutToView();
+		addControlToContainer(container1, merchandisePriceReferenceFromFan());
+		addControlToContainer(container2, merchandisePriceReferenceFromFan());
+		container1.setVisible(false);
+		unsetService();
+		container1.setVisible(true);
+		assertEquals(price, merchandise.getPrice());
+		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInTwoContainersWithOneHiddenContainerToHiddenControlInVisibleContainer() {
+		final VContainedContainer container1 = addVerticalLayoutToView();
+		final VContainedContainer container2 = addVerticalLayoutToView();
+		addControlToContainer(container1, merchandisePriceReferenceFromFan());
+		final VControl control = addControlToContainer(container2, merchandisePriceReferenceFromFan());
+		container1.setVisible(false);
+		unsetService();
+		control.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInTwoContainersWithOneHiddenContainerToTwoHiddenContainer() {
+		final VContainedContainer container1 = addVerticalLayoutToView();
+		final VContainedContainer container2 = addVerticalLayoutToView();
+		addControlToContainer(container1, merchandisePriceReferenceFromFan());
+		addControlToContainer(container2, merchandisePriceReferenceFromFan());
+		container1.setVisible(false);
+		unsetService();
+		container2.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInTwoContainersWithOneHiddenContainerToHiddenView() {
+		final VContainedContainer container1 = addVerticalLayoutToView();
+		final VContainedContainer container2 = addVerticalLayoutToView();
+		addControlToContainer(container1, merchandisePriceReferenceFromFan());
+		addControlToContainer(container2, merchandisePriceReferenceFromFan());
+		container1.setVisible(false);
+		unsetService();
+		view.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInTwoContainersWithTwoHiddenControlsToOneHiddenContainer() {
+		final VContainedContainer container1 = addVerticalLayoutToView();
+		final VContainedContainer container2 = addVerticalLayoutToView();
+		addControlToContainer(container1, merchandisePriceReferenceFromFan()).setVisible(false);
+		addControlToContainer(container2, merchandisePriceReferenceFromFan()).setVisible(false);
+		unsetService();
+		container1.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInTwoContainersWithTwoHiddenControlsToHiddenView() {
+		final VContainedContainer container1 = addVerticalLayoutToView();
+		final VContainedContainer container2 = addVerticalLayoutToView();
+		addControlToContainer(container1, merchandisePriceReferenceFromFan()).setVisible(false);
+		addControlToContainer(container2, merchandisePriceReferenceFromFan()).setVisible(false);
+		unsetService();
+		view.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInTwoContainersWithTwoHiddenControlsToOneVisibleControl() {
+		final VContainedContainer container1 = addVerticalLayoutToView();
+		final VContainedContainer container2 = addVerticalLayoutToView();
+		addControlToContainer(container1, merchandisePriceReferenceFromFan()).setVisible(false);
+		final VControl control = addControlToContainer(container2, merchandisePriceReferenceFromFan());
+		control.setVisible(false);
+		unsetService();
+		control.setVisible(true);
+
+		// we dont change the state of the domain model when shown again. if this changes assertions can be added here
+		merchandise.setPrice(price);
+		control.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInTwoContainersWithTwoHiddenContainersToOneHiddenControl() {
+		final VContainedContainer container1 = addVerticalLayoutToView();
+		final VContainedContainer container2 = addVerticalLayoutToView();
+		addControlToContainer(container1, merchandisePriceReferenceFromFan());
+		final VControl control = addControlToContainer(container2, merchandisePriceReferenceFromFan());
+		container1.setVisible(false);
+		container2.setVisible(false);
+		unsetService();
+		control.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInTwoContainersWithTwoHiddenContainersToHiddenView() {
+		final VContainedContainer container1 = addVerticalLayoutToView();
+		final VContainedContainer container2 = addVerticalLayoutToView();
+		addControlToContainer(container1, merchandisePriceReferenceFromFan());
+		addControlToContainer(container2, merchandisePriceReferenceFromFan());
+		container1.setVisible(false);
+		container2.setVisible(false);
+		unsetService();
+		view.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInTwoContainersWithTwoHiddenContainersToOneVisibleContainer() {
+		final VContainedContainer container1 = addVerticalLayoutToView();
+		final VContainedContainer container2 = addVerticalLayoutToView();
+		addControlToContainer(container1, merchandisePriceReferenceFromFan());
+		addControlToContainer(container2, merchandisePriceReferenceFromFan());
+		container1.setVisible(false);
+		container2.setVisible(false);
+		unsetService();
+		container1.setVisible(true);
+
+		// we dont change the state of the domain model when shown again. if this changes assertions can be added here
+		merchandise.setPrice(price);
+		container1.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInTwoContainersWithHiddenViewToOneHiddenControl() {
+		final VContainedContainer container1 = addVerticalLayoutToView();
+		final VContainedContainer container2 = addVerticalLayoutToView();
+		addControlToContainer(container1, merchandisePriceReferenceFromFan());
+		final VControl control = addControlToContainer(container2, merchandisePriceReferenceFromFan());
+		view.setVisible(false);
+		unsetService();
+		control.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInTwoContainersWithHiddenViewToOneHiddenContainer() {
+		final VContainedContainer container1 = addVerticalLayoutToView();
+		final VContainedContainer container2 = addVerticalLayoutToView();
+		addControlToContainer(container1, merchandisePriceReferenceFromFan());
+		addControlToContainer(container2, merchandisePriceReferenceFromFan());
+		view.setVisible(false);
+		unsetService();
+		container1.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testChangeTwoControlsInTwoContainersWithHiddenViewToVisibleView() {
+		final VContainedContainer container1 = addVerticalLayoutToView();
+		final VContainedContainer container2 = addVerticalLayoutToView();
+		addControlToContainer(container1, merchandisePriceReferenceFromFan());
+		addControlToContainer(container2, merchandisePriceReferenceFromFan());
+		view.setVisible(false);
+		unsetService();
+		view.setVisible(true);
+
+		// we dont change the state of the domain model when shown again. if this changes assertions can be added here
+		merchandise.setPrice(price);
+		view.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
+	// More specific test
+	// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+	@Test
+	public void testChangeOtherViewFeatures() {
+		final VControl control = addControlToView(merchandisePriceReferenceFromFan());
+		unsetService();
+		for (final EStructuralFeature feature : control.eClass().getEAllStructuralFeatures()) {
+			if (feature == VViewPackage.eINSTANCE.getElement_Visible()) {
+				continue;
+			}
+			if (!feature.isMany()) {
+				control.eSet(feature, feature.getDefaultValue());
+			}
+		}
+		assertEquals(price, merchandise.getPrice());
+		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
+	}
+
+	@Test
+	public void testInitDifferentControls() {
+		addControlToContainer(addVerticalLayoutToView(), merchandisePriceReferenceFromFan()).setVisible(false);
+		addControlToContainer(addVerticalLayoutToView(), merchandiseNameReferenceFromFan());
+		unsetService();
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+		assertEquals(mercName, merchandise.getName());
+		assertTrue(merchandise.eIsSet(merchandiseNameFeature));
+	}
+
+	@Test
+	public void testChangeDifferentControls() {
+		final VControl mercControl = addControlToContainer(addVerticalLayoutToView(),
+			merchandisePriceReferenceFromFan());
+		final VControl fanControl = addControlToContainer(addVerticalLayoutToView(), fanNameReference());
+		unsetService();
+		mercControl.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+		assertEquals(fanName, fan.getName());
+		assertTrue(fan.eIsSet(fanNameFeature));
+		fanControl.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+		assertEquals(fanNameFeature.getDefaultValue(), fan.getName());
+		assertFalse(fan.eIsSet(fanNameFeature));
+	}
+
+	@Test
+	public void testComplexCategorization() {
+		final VCategorizationElement categorizationElement = VCategorizationFactory.eINSTANCE
+			.createCategorizationElement();
+
+		final VCategorization categorization1 = VCategorizationFactory.eINSTANCE.createCategorization();
+		final VCategorization categorization1a = VCategorizationFactory.eINSTANCE.createCategorization();
+		final VCategorization categorization2 = VCategorizationFactory.eINSTANCE.createCategorization();
+
+		final VCategory category11 = VCategorizationFactory.eINSTANCE.createCategory();
+		final VControl control11 = addControlToCategory(category11, merchandisePriceReferenceFromFan());
+		final VCategory category12 = VCategorizationFactory.eINSTANCE.createCategory();
+		final VControl control12 = addControlToCategory(category12, merchandisePriceReferenceFromFan());
+
+		final VCategory category1a1 = VCategorizationFactory.eINSTANCE.createCategory();
+		addControlToCategory(category1a1, merchandisePriceReferenceFromFan());
+		final VCategory category1a2 = VCategorizationFactory.eINSTANCE.createCategory();
+		final VControl control1a2 = addControlToCategory(category1a2, merchandiseNameReferenceFromFan());
+
+		final VCategory category21 = VCategorizationFactory.eINSTANCE.createCategory();
+		addControlToCategory(category21, merchandisePriceReferenceFromFan());
+		final VCategory category22 = VCategorizationFactory.eINSTANCE.createCategory();
+		addControlToCategory(category22, fanNameReference());
+
+		categorization1.getCategorizations().add(category11);
+		categorization1.getCategorizations().add(category12);
+
+		categorization1a.getCategorizations().add(category1a1);
+		categorization1a.getCategorizations().add(category1a2);
+
+		categorization2.getCategorizations().add(category21);
+		categorization2.getCategorizations().add(category22);
+
+		categorization1.getCategorizations().add(categorization1a);
+		categorizationElement.getCategorizations().add(categorization1);
+		categorizationElement.getCategorizations().add(categorization2);
+		view.getChildren().add(categorizationElement);
+
+		unsetService();
+
+		doLogicForComplexCategorizationTest(categorization2, control11, control12, category1a1, control1a2);
+
+	}
+
+	private void doLogicForComplexCategorizationTest(final VCategorization categorization2,
+		final VControl control11, final VControl control12, final VCategory category1a1, final VControl control1a2) {
+
+		control11.setVisible(false);
+		assertEquals(price, merchandise.getPrice());
+		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
+		assertEquals(mercName, merchandise.getName());
+		assertTrue(merchandise.eIsSet(merchandiseNameFeature));
+		assertEquals(fanName, fan.getName());
+		assertTrue(fan.eIsSet(fanNameFeature));
+
+		control1a2.setVisible(false);
+		assertEquals(price, merchandise.getPrice());
+		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
+		assertEquals(merchandiseNameFeature.getDefaultValue(), merchandise.getName());
+		assertFalse(merchandise.eIsSet(merchandiseNameFeature));
+		assertEquals(fanName, fan.getName());
+		assertTrue(fan.eIsSet(fanNameFeature));
+
+		categorization2.setVisible(false);
+		assertEquals(price, merchandise.getPrice());
+		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
+		assertEquals(merchandiseNameFeature.getDefaultValue(), merchandise.getName());
+		assertFalse(merchandise.eIsSet(merchandiseNameFeature));
+		assertEquals(fanNameFeature.getDefaultValue(), fan.getName());
+		assertFalse(fan.eIsSet(fanNameFeature));
+
+		category1a1.setVisible(false);
+		assertEquals(price, merchandise.getPrice());
+		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
+		assertEquals(merchandiseNameFeature.getDefaultValue(), merchandise.getName());
+		assertFalse(merchandise.eIsSet(merchandiseNameFeature));
+		assertEquals(fanNameFeature.getDefaultValue(), fan.getName());
+		assertFalse(fan.eIsSet(fanNameFeature));
+
+		control12.setVisible(false);
+		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
+		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
+		assertEquals(merchandiseNameFeature.getDefaultValue(), merchandise.getName());
+		assertFalse(merchandise.eIsSet(merchandiseNameFeature));
+		assertEquals(fanNameFeature.getDefaultValue(), fan.getName());
+		assertFalse(fan.eIsSet(fanNameFeature));
+	}
+
+	/**
+	 * Test if exception occurs when control has no setting.
+	 */
+	@Test
+	public void testControlWithoutSetting() {
+		final VFeaturePathDomainModelReference domainModelReference = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		domainModelReference.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_Name());
+		final VControl control = addControlToView(domainModelReference);
+		assertFalse(control.getDomainModelReference().getIterator().hasNext());
+		unsetService();
+	}
+
+	@Test
+	public void testTable() {
+		final Merchandise merc = BowlingFactory.eINSTANCE.createMerchandise();
+		merc.setName("Foo");
+		fan.getFanMerchandise().add(merc);
+
+		final VTableControl table = VTableFactory.eINSTANCE.createTableControl();
+		final VTableDomainModelReference tableDomainModelReference = VTableFactory.eINSTANCE
+			.createTableDomainModelReference();
+		tableDomainModelReference.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_FanMerchandise());
+		table.setDomainModelReference(tableDomainModelReference);
+
+		final VFeaturePathDomainModelReference nameCol = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
+		nameCol.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_Name());
+		final VFeaturePathDomainModelReference priceCol = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		priceCol.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_Price());
+		VTableDomainModelReference.class.cast(table.getDomainModelReference()).getColumnDomainModelReferences()
+			.add(nameCol);
+		VTableDomainModelReference.class.cast(table.getDomainModelReference()).getColumnDomainModelReferences()
+			.add(priceCol);
+
+		view.getChildren().add(table);
+
+		unsetService();
+		assertEquals(1, fan.getFanMerchandise().size());
+		assertEquals(merc, fan.getFanMerchandise().get(0));
+		assertTrue(fan.eIsSet(BowlingPackage.eINSTANCE.getFan_FanMerchandise()));
+
+		table.setVisible(false);
+
+		assertEquals(0, fan.getFanMerchandise().size());
+		assertFalse(fan.eIsSet(BowlingPackage.eINSTANCE.getFan_FanMerchandise()));
+		assertEquals("Foo", merc.getName());
+	}
+
+	// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
+	// Factory methods
+	// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+	/**
+	 * Creates the unset service.
+	 *
+	 * @return
+	 */
+	private UnsetService unsetService() {
+		final UnsetService unsetService = new UnsetService();
+		context = ViewModelContextFactory.INSTANCE.createViewModelContext(view, fan);
+		unsetService.instantiate(context);
+		return unsetService;
+	}
+
+	/**
+	 * Adds a control with the given feature path domain model reference as a direct child of the view.
+	 *
+	 * @param domainModelReference
+	 * @return the created control
+	 */
+	private VControl addControlToView(VFeaturePathDomainModelReference domainModelReference) {
+		final VControl control = VViewFactory.eINSTANCE.createControl();
+		control.setDomainModelReference(domainModelReference);
+		view.getChildren().add(control);
+		return control;
+	}
+
+	/**
+	 * Adds a control with the given feature path domain model reference as a direct child of the container.
+	 *
+	 * @param domainModelReference
+	 * @return the created control
+	 */
+	private VControl addControlToContainer(VContainedContainer container,
+		VFeaturePathDomainModelReference domainModelReference) {
+		final VControl control = VViewFactory.eINSTANCE.createControl();
+		control.setDomainModelReference(domainModelReference);
+		container.getChildren().add(control);
+		return control;
+	}
+
+	private VControl addControlToCategory(VCategory category, VFeaturePathDomainModelReference domainModelReference) {
+		final VControl control = VViewFactory.eINSTANCE.createControl();
+		control.setDomainModelReference(domainModelReference);
+		category.setComposite(control);
+		return control;
+	}
+
+	/**
+	 * Adds a vertical layout as a direct child of the view.
+	 *
+	 * @return the created layout
+	 */
+	private VVerticalLayout addVerticalLayoutToView() {
+		final VVerticalLayout layout = VVerticalFactory.eINSTANCE.createVerticalLayout();
+		view.getChildren().add(layout);
+		return layout;
+	}
+
+	/**
+	 * References the player name from a league object.
+	 *
+	 * @return
+	 */
+	private VFeaturePathDomainModelReference merchandisePriceReferenceFromFan() {
+		final VFeaturePathDomainModelReference domainModelReference = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		domainModelReference.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_Price());
+		domainModelReference.getDomainModelEReferencePath().add(BowlingPackage.eINSTANCE.getFan_FavouriteMerchandise());
+		return domainModelReference;
+	}
+
+	private VFeaturePathDomainModelReference merchandiseNameReferenceFromFan() {
+		final VFeaturePathDomainModelReference domainModelReference = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		domainModelReference.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_Name());
+		domainModelReference.getDomainModelEReferencePath().add(BowlingPackage.eINSTANCE.getFan_FavouriteMerchandise());
+		return domainModelReference;
+	}
+
+	private VFeaturePathDomainModelReference fanNameReference() {
+		final VFeaturePathDomainModelReference domainModelReference = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		domainModelReference.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_Name());
+		return domainModelReference;
+	}
+
+	// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
+	// Helper- & stub classes
+	// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+	/**
+	 * @author Jonas
+	 *
+	 */
+	private class ViewModelContextStub implements ViewModelContext {
+
+		private boolean hasRegisteredViewListener;
+		private boolean hasRegisteredDomainListener;
+
+		@Override
+		public void unregisterViewChangeListener(ModelChangeListener modelChangeListener) {
+			hasRegisteredViewListener = false;
+		}
+
+		@Override
+		public void unregisterDomainChangeListener(ModelChangeListener modelChangeListener) {
+			hasRegisteredDomainListener = false;
+		}
+
+		@Override
+		public void registerViewChangeListener(ModelChangeListener modelChangeListener) {
+			hasRegisteredViewListener = true;
+		}
+
+		@Override
+		public void registerDomainChangeListener(ModelChangeListener modelChangeListener) {
+			hasRegisteredDomainListener = true;
+		}
+
+		@Override
+		public VElement getViewModel() {
+			return view;
+		}
+
+		@Override
+		public EObject getDomainModel() {
+			return fan;
+		}
+
+		@Override
+		public void dispose() {
+		}
+
+		@Override
+		public <T> boolean hasService(Class<T> serviceType) {
+			return false;
+		}
+
+		@Override
+		public <T> T getService(Class<T> serviceType) {
+			return null;
+		}
+
+		/**
+		 * {@inheritDoc}
+		 *
+		 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#getControlsFor(org.eclipse.emf.ecore.EStructuralFeature.Setting)
+		 */
+		@Override
+		public Set<VControl> getControlsFor(Setting setting) {
+			// TODO Auto-generated method stub
+			return null;
+		}
+
+		/**
+		 * {@inheritDoc}
+		 *
+		 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#getControlsFor(UniqueSetting)
+		 */
+		@Override
+		public Set<VElement> getControlsFor(UniqueSetting setting) {
+			// TODO Auto-generated method stub
+			return null;
+		}
+
+		/**
+		 * {@inheritDoc}
+		 *
+		 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#getContextValue(java.lang.String)
+		 */
+		@Override
+		public Object getContextValue(String key) {
+			// TODO Auto-generated method stub
+			return null;
+		}
+
+		/**
+		 * {@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) {
+			// TODO Auto-generated method stub
+
+		}
+
+		/**
+		 * {@inheritDoc}
+		 *
+		 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#registerDisposeListener(org.eclipse.emf.ecp.view.spi.context.ViewModelContextDisposeListener)
+		 */
+		@Override
+		public void registerDisposeListener(ViewModelContextDisposeListener listener) {
+			// TODO Auto-generated method stub
+
+		}
+
+		/**
+		 * {@inheritDoc}
+		 *
+		 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#addContextUser(java.lang.Object)
+		 */
+		@Override
+		public void addContextUser(Object user) {
+			// TODO Auto-generated method stub
+
+		}
+
+		/**
+		 * {@inheritDoc}
+		 *
+		 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#removeContextUser(java.lang.Object)
+		 */
+		@Override
+		public void removeContextUser(Object user) {
+			// TODO Auto-generated method stub
+
+		}
+
+		/**
+		 * {@inheritDoc}
+		 *
+		 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#getChildContext(org.eclipse.emf.ecore.EObject,
+		 *      org.eclipse.emf.ecp.view.spi.model.VElement, org.eclipse.emf.ecp.view.spi.model.VView,
+		 *      org.eclipse.emf.ecp.view.spi.context.ViewModelService[])
+		 */
+		@Override
+		public ViewModelContext getChildContext(EObject eObject, VElement parent, VView vView,
+			ViewModelService... viewModelServices) {
+			// TODO Auto-generated method stub
+			return null;
+		}
+
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.unset.test/src/org/eclipse/emf/ecp/view/unset/test/UnsetService_Test.java b/tests/org.eclipse.emf.ecp.view.unset.test/src/org/eclipse/emf/ecp/view/unset/test/UnsetService_Test.java
deleted file mode 100644
index 294a3c6..0000000
--- a/tests/org.eclipse.emf.ecp.view.unset.test/src/org/eclipse/emf/ecp/view/unset/test/UnsetService_Test.java
+++ /dev/null
@@ -1,1594 +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 v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Johannes Faltermeier - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.ecp.view.unset.test;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-import java.math.BigDecimal;
-import java.util.Set;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
-import org.eclipse.emf.ecp.common.spi.UniqueSetting;
-import org.eclipse.emf.ecp.view.internal.unset.UnsetService;
-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.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.model.ModelChangeListener;
-import org.eclipse.emf.ecp.view.spi.model.VContainedContainer;
-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.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.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.vertical.model.VVerticalFactory;
-import org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalLayout;
-import org.eclipse.emf.emfstore.bowling.BowlingFactory;
-import org.eclipse.emf.emfstore.bowling.BowlingPackage;
-import org.eclipse.emf.emfstore.bowling.Fan;
-import org.eclipse.emf.emfstore.bowling.Merchandise;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * @author jfaltermeier
- *
- */
-public class UnsetService_Test {
-
-	private Fan fan;
-	private Merchandise merchandise;
-
-	private final EStructuralFeature merchandisePriceFeature = BowlingPackage.eINSTANCE.getMerchandise_Price();
-	private final EStructuralFeature merchandiseNameFeature = BowlingPackage.eINSTANCE.getMerchandise_Name();
-	private final EStructuralFeature fanNameFeature = BowlingPackage.eINSTANCE.getFan_Name();
-	private final BigDecimal price = new BigDecimal(19.84);
-	private final String mercName = "Wimpel";
-	private final String fanName = "Max Morlock";
-
-	private VView view;
-
-	private ViewModelContext context;
-
-	@Before
-	public void before() {
-		fan = BowlingFactory.eINSTANCE.createFan();
-		merchandise = BowlingFactory.eINSTANCE.createMerchandise();
-		merchandise.setPrice(price);
-		merchandise.setName(mercName);
-		fan.setFavouriteMerchandise(merchandise);
-		fan.setName(fanName);
-
-		view = VViewFactory.eINSTANCE.createView();
-		view.setRootEClass(fan.eClass());
-	}
-
-	@After
-	public void after() {
-		if (context != null) {
-			context.dispose();
-		}
-	}
-
-	// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
-	// Public methods
-	// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-	@Test
-	public void testInstantiate() {
-		final UnsetService unsetService = new UnsetService();
-		final ViewModelContextStub contextStub = new ViewModelContextStub();
-		unsetService.instantiate(contextStub);
-		assertTrue(contextStub.hasRegisteredViewListener);
-		assertFalse(contextStub.hasRegisteredDomainListener);
-	}
-
-	@Test(expected = IllegalStateException.class)
-	public void testInstantiateWithNullDomainModel() {
-		final UnsetService unsetService = new UnsetService();
-		final ViewModelContextStub contextStub = new ViewModelContextStub() {
-			@Override
-			public EObject getDomainModel() {
-				return null;
-			}
-		};
-		unsetService.instantiate(contextStub);
-	}
-
-	@Test(expected = IllegalStateException.class)
-	public void testInstantiateWithNullViewModel() {
-		final UnsetService unsetService = new UnsetService();
-		final ViewModelContextStub contextStub = new ViewModelContextStub() {
-			@Override
-			public VElement getViewModel() {
-				return null;
-			}
-		};
-		unsetService.instantiate(contextStub);
-	}
-
-	@Test
-	public void testDispose() {
-		final UnsetService unsetService = new UnsetService();
-		final ViewModelContextStub contextStub = new ViewModelContextStub();
-		unsetService.instantiate(contextStub);
-		assertTrue(contextStub.hasRegisteredViewListener);
-		assertFalse(contextStub.hasRegisteredDomainListener);
-		unsetService.dispose();
-		assertFalse(contextStub.hasRegisteredViewListener);
-		assertFalse(contextStub.hasRegisteredDomainListener);
-	}
-
-	@Test
-	public void testGetPriority() {
-		assertEquals(5, unsetService().getPriority());
-	}
-
-	// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
-	// Init
-	// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-	@Test
-	public void testInitSingleControlInViewAllVisible() {
-		addControlToView(merchandisePriceReferenceFromFan());
-		unsetService();
-		assertEquals(price, merchandise.getPrice());
-		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testInitSingleControlInViewWithHiddenControl() {
-		addControlToView(merchandisePriceReferenceFromFan()).setVisible(false);
-		unsetService();
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testInitSingleControlInViewWithHiddenView() {
-		addControlToView(merchandisePriceReferenceFromFan());
-		view.setVisible(false);
-		unsetService();
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testInitSingleControlInContainerAllVisible() {
-		addControlToContainer(addVerticalLayoutToView(), merchandisePriceReferenceFromFan());
-		unsetService();
-		assertEquals(price, merchandise.getPrice());
-		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testInitSingleControlInContainerWithHiddenControl() {
-		addControlToContainer(addVerticalLayoutToView(), merchandisePriceReferenceFromFan()).setVisible(false);
-		unsetService();
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testInitSingleControlInContainerWithHiddenContainer() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		container.setVisible(false);
-		unsetService();
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testInitSingleControlInContainerWithHiddenView() {
-		addControlToContainer(addVerticalLayoutToView(), merchandisePriceReferenceFromFan());
-		view.setVisible(false);
-		unsetService();
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testInitTwoControlsInViewAllVisible() {
-		addControlToView(merchandisePriceReferenceFromFan());
-		addControlToView(merchandisePriceReferenceFromFan());
-		unsetService();
-		assertEquals(price, merchandise.getPrice());
-		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testInitTwoControlsInViewWithOneHiddenControl() {
-		addControlToView(merchandisePriceReferenceFromFan());
-		addControlToView(merchandisePriceReferenceFromFan()).setVisible(false);
-		unsetService();
-		assertEquals(price, merchandise.getPrice());
-		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testInitTwoControlsInViewWithTwoHiddenControls() {
-		addControlToView(merchandisePriceReferenceFromFan()).setVisible(false);
-		addControlToView(merchandisePriceReferenceFromFan()).setVisible(false);
-		unsetService();
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testInitTwoControlsInViewWithHiddenView() {
-		addControlToView(merchandisePriceReferenceFromFan());
-		addControlToView(merchandisePriceReferenceFromFan());
-		view.setVisible(false);
-		unsetService();
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testInitTwoControlsInOneContainerAllVisible() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		unsetService();
-		assertEquals(price, merchandise.getPrice());
-		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testInitTwoControlsInOneContainerWithOneHiddenControl() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		addControlToContainer(container, merchandisePriceReferenceFromFan()).setVisible(false);
-		unsetService();
-		assertEquals(price, merchandise.getPrice());
-		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testInitTwoControlsInOneContainerWithTwoHiddenControls() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		addControlToContainer(container, merchandisePriceReferenceFromFan()).setVisible(false);
-		addControlToContainer(container, merchandisePriceReferenceFromFan()).setVisible(false);
-		unsetService();
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testInitTwoControlsInOneContainerWithHiddenContainer() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		container.setVisible(false);
-		unsetService();
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testInitTwoControlsInOneContainerWithHiddenView() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		view.setVisible(false);
-		unsetService();
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testInitTwoControlsInTwoContainersAllVisible() {
-		final VContainedContainer container1 = addVerticalLayoutToView();
-		final VContainedContainer container2 = addVerticalLayoutToView();
-		addControlToContainer(container1, merchandisePriceReferenceFromFan());
-		addControlToContainer(container2, merchandisePriceReferenceFromFan());
-		unsetService();
-		assertEquals(price, merchandise.getPrice());
-		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testInitTwoControlsInTwoContainersWithOneHiddenControl() {
-		final VContainedContainer container1 = addVerticalLayoutToView();
-		final VContainedContainer container2 = addVerticalLayoutToView();
-		addControlToContainer(container1, merchandisePriceReferenceFromFan());
-		addControlToContainer(container2, merchandisePriceReferenceFromFan()).setVisible(false);
-		unsetService();
-		assertEquals(price, merchandise.getPrice());
-		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testInitTwoControlsInTwoContainersWithOneHiddenContainer() {
-		final VContainedContainer container1 = addVerticalLayoutToView();
-		final VContainedContainer container2 = addVerticalLayoutToView();
-		addControlToContainer(container1, merchandisePriceReferenceFromFan());
-		addControlToContainer(container2, merchandisePriceReferenceFromFan());
-		container1.setVisible(false);
-		unsetService();
-		assertEquals(price, merchandise.getPrice());
-		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testInitTwoControlsInTwoContainersWithTwoHiddenControls() {
-		final VContainedContainer container1 = addVerticalLayoutToView();
-		final VContainedContainer container2 = addVerticalLayoutToView();
-		addControlToContainer(container1, merchandisePriceReferenceFromFan()).setVisible(false);
-		addControlToContainer(container2, merchandisePriceReferenceFromFan()).setVisible(false);
-		unsetService();
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testInitTwoControlsInTwoContainersWithTwoHiddenContainers() {
-		final VContainedContainer container1 = addVerticalLayoutToView();
-		final VContainedContainer container2 = addVerticalLayoutToView();
-		addControlToContainer(container1, merchandisePriceReferenceFromFan());
-		addControlToContainer(container2, merchandisePriceReferenceFromFan());
-		container1.setVisible(false);
-		container2.setVisible(false);
-		unsetService();
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testInitTwoControlsInTwoContainersWithHiddenView() {
-		final VContainedContainer container1 = addVerticalLayoutToView();
-		final VContainedContainer container2 = addVerticalLayoutToView();
-		addControlToContainer(container1, merchandisePriceReferenceFromFan());
-		addControlToContainer(container2, merchandisePriceReferenceFromFan());
-		view.setVisible(false);
-		unsetService();
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
-	// Dynamic
-	// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-	@Test
-	public void testChangeSingleControlInViewAllVisibleToHiddenControl() {
-		final VControl control = addControlToView(merchandisePriceReferenceFromFan());
-		unsetService();
-		control.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeSingleControlInViewAllVisibleToHiddenView() {
-		addControlToView(merchandisePriceReferenceFromFan());
-		unsetService();
-		view.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeSingleControlInViewWithHiddenControlToVisibleControl() {
-		final VControl control = addControlToView(merchandisePriceReferenceFromFan());
-		control.setVisible(false);
-		unsetService();
-		control.setVisible(true);
-		// we dont change the state of the domain model when shown again. if this changes assertions can be added here
-		merchandise.setPrice(price);
-		control.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeSingleControlInViewWithHiddenControlToHiddenView() {
-		final VControl control = addControlToView(merchandisePriceReferenceFromFan());
-		control.setVisible(false);
-		unsetService();
-		view.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeSingleControlInViewWithHiddenViewToHiddenControl() {
-		final VControl control = addControlToView(merchandisePriceReferenceFromFan());
-		view.setVisible(false);
-		unsetService();
-		control.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeSingleControlInViewWithHiddenViewToVisibleView() {
-		addControlToView(merchandisePriceReferenceFromFan());
-		view.setVisible(false);
-		unsetService();
-		view.setVisible(true);
-
-		// we dont change the state of the domain model when shown again. if this changes assertions can be added here
-		merchandise.setPrice(price);
-		view.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeSingleControlInContainerAllVisibleToHiddenControl() {
-		final VControl control = addControlToContainer(addVerticalLayoutToView(), merchandisePriceReferenceFromFan());
-		unsetService();
-		control.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeSingleControlInContainerAllVisibleToHiddenContainer() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		unsetService();
-		container.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeSingleControlInContainerAllVisibleToHiddenView() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		unsetService();
-		view.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeSingleControlInContainerWithHiddenControlToHiddenContainer() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		addControlToContainer(container, merchandisePriceReferenceFromFan()).setVisible(false);
-		unsetService();
-		container.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeSingleControlInContainerWithHiddenControlToHiddenView() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		addControlToContainer(container, merchandisePriceReferenceFromFan()).setVisible(false);
-		unsetService();
-		view.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeSingleControlInContainerWithHiddenControlToVisibleControl() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		final VControl control = addControlToContainer(container, merchandisePriceReferenceFromFan());
-		control.setVisible(false);
-		unsetService();
-		control.setVisible(true);
-
-		// we dont change the state of the domain model when shown again. if this changes assertions can be added here
-		merchandise.setPrice(price);
-		control.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeSingleControlInContainerWithHiddenContainerToHiddenControl() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		final VControl control = addControlToContainer(container, merchandisePriceReferenceFromFan());
-		container.setVisible(false);
-		unsetService();
-		control.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeSingleControlInContainerWithHiddenContainerToHiddenView() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		container.setVisible(false);
-		unsetService();
-		view.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeSingleControlInContainerWithHiddenContainerToVisibleContainer() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		container.setVisible(false);
-		unsetService();
-		container.setVisible(true);
-
-		// we dont change the state of the domain model when shown again. if this changes assertions can be added here
-		merchandise.setPrice(price);
-		container.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeSingleControlInContainerWithHiddenViewToHiddenControl() {
-		final VControl control = addControlToContainer(addVerticalLayoutToView(), merchandisePriceReferenceFromFan());
-		view.setVisible(false);
-		unsetService();
-		control.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeSingleControlInContainerWithHiddenViewToHiddenContainer() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		view.setVisible(false);
-		unsetService();
-		container.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeSingleControlInContainerWithHiddenViewToVisibleView() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		view.setVisible(false);
-		unsetService();
-		view.setVisible(true);
-
-		// we dont change the state of the domain model when shown again. if this changes assertions can be added here
-		merchandise.setPrice(price);
-		view.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInViewAllVisibleToOneHiddenControl() {
-		addControlToView(merchandisePriceReferenceFromFan());
-		final VControl control = addControlToView(merchandisePriceReferenceFromFan());
-		unsetService();
-		control.setVisible(false);
-		assertEquals(price, merchandise.getPrice());
-		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInViewAllVisibleToOneHiddenView() {
-		addControlToView(merchandisePriceReferenceFromFan());
-		addControlToView(merchandisePriceReferenceFromFan());
-		unsetService();
-		view.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInViewWithOneHiddenControlToTwoVisibleControls() {
-		addControlToView(merchandisePriceReferenceFromFan());
-		final VControl control = addControlToView(merchandisePriceReferenceFromFan());
-		control.setVisible(false);
-		unsetService();
-		control.setVisible(true);
-		assertEquals(price, merchandise.getPrice());
-		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInViewWithOneHiddenControlToTwoHiddenControls() {
-		final VControl control = addControlToView(merchandisePriceReferenceFromFan());
-		addControlToView(merchandisePriceReferenceFromFan()).setVisible(false);
-		unsetService();
-		control.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInViewWithOneHiddenControlToHiddenView() {
-		addControlToView(merchandisePriceReferenceFromFan());
-		addControlToView(merchandisePriceReferenceFromFan()).setVisible(false);
-		unsetService();
-		view.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInViewWithTwoHiddenControlsToHiddenView() {
-		addControlToView(merchandisePriceReferenceFromFan()).setVisible(false);
-		addControlToView(merchandisePriceReferenceFromFan()).setVisible(false);
-		unsetService();
-		view.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInViewWithTwoHiddenControlsToOneVisibleControl() {
-		addControlToView(merchandisePriceReferenceFromFan()).setVisible(false);
-		final VControl control = addControlToView(merchandisePriceReferenceFromFan());
-		control.setVisible(false);
-		unsetService();
-		control.setVisible(true);
-
-		// we dont change the state of the domain model when shown again. if this changes assertions can be added here
-		merchandise.setPrice(price);
-		control.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInViewWithHiddenViewToHiddenControl() {
-		addControlToView(merchandisePriceReferenceFromFan());
-		final VControl control = addControlToView(merchandisePriceReferenceFromFan());
-		view.setVisible(false);
-		unsetService();
-		control.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInViewWithHiddenViewToVisibleView() {
-		addControlToView(merchandisePriceReferenceFromFan());
-		addControlToView(merchandisePriceReferenceFromFan());
-		view.setVisible(false);
-		unsetService();
-		view.setVisible(true);
-
-		// we dont change the state of the domain model when shown again. if this changes assertions can be added here
-		merchandise.setPrice(price);
-		view.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInOneContainerAllVisibleToOneHiddenControl() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		final VControl control = addControlToContainer(container, merchandisePriceReferenceFromFan());
-		unsetService();
-		control.setVisible(false);
-		assertEquals(price, merchandise.getPrice());
-		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInOneContainerAllVisibleToHiddenContainer() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		unsetService();
-		container.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInOneContainerAllVisibleToHiddenView() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		unsetService();
-		view.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInOneContainerWithOneHiddenControlToTwoVisibleControls() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		final VControl control = addControlToContainer(container, merchandisePriceReferenceFromFan());
-		control.setVisible(false);
-		unsetService();
-		control.setVisible(true);
-		assertEquals(price, merchandise.getPrice());
-		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInOneContainerWithOneHiddenControlToTwoHiddenControls() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		final VControl control = addControlToContainer(container, merchandisePriceReferenceFromFan());
-		addControlToContainer(container, merchandisePriceReferenceFromFan()).setVisible(false);
-		unsetService();
-		control.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInOneContainerWithOneHiddenControlToHiddenContainer() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		addControlToContainer(container, merchandisePriceReferenceFromFan()).setVisible(false);
-		unsetService();
-		container.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInOneContainerWithOneHiddenControlToHiddenView() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		addControlToContainer(container, merchandisePriceReferenceFromFan()).setVisible(false);
-		unsetService();
-		view.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInOneContainerWithTwoHiddenControlsToHiddenContainer() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		addControlToContainer(container, merchandisePriceReferenceFromFan()).setVisible(false);
-		addControlToContainer(container, merchandisePriceReferenceFromFan()).setVisible(false);
-		unsetService();
-		container.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInOneContainerWithTwoHiddenControlsToHiddenView() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		addControlToContainer(container, merchandisePriceReferenceFromFan()).setVisible(false);
-		addControlToContainer(container, merchandisePriceReferenceFromFan()).setVisible(false);
-		unsetService();
-		view.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInOneContainerWithTwoHiddenControlsToOneVisibleControl() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		addControlToContainer(container, merchandisePriceReferenceFromFan()).setVisible(false);
-		final VControl control = addControlToContainer(container, merchandisePriceReferenceFromFan());
-		control.setVisible(false);
-		unsetService();
-		control.setVisible(true);
-
-		// we dont change the state of the domain model when shown again. if this changes assertions can be added here
-		merchandise.setPrice(price);
-		control.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInOneContainerWithHiddenContainerToOneHiddenControl() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		final VControl control = addControlToContainer(container, merchandisePriceReferenceFromFan());
-		container.setVisible(false);
-		unsetService();
-		control.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInOneContainerWithHiddenContainerToHiddenView() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		container.setVisible(false);
-		unsetService();
-		view.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInOneContainerWithHiddenContainerToVisibleContainer() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		container.setVisible(false);
-		unsetService();
-		container.setVisible(true);
-
-		// we dont change the state of the domain model when shown again. if this changes assertions can be added here
-		merchandise.setPrice(price);
-		container.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInOneContainerWithHiddenViewToOneHiddenControl() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		final VControl control = addControlToContainer(container, merchandisePriceReferenceFromFan());
-		view.setVisible(false);
-		unsetService();
-		control.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInOneContainerWithHiddenViewToHiddenContainer() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		view.setVisible(false);
-		unsetService();
-		container.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInOneContainerWithHiddenViewToVisibleView() {
-		final VContainedContainer container = addVerticalLayoutToView();
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		addControlToContainer(container, merchandisePriceReferenceFromFan());
-		view.setVisible(false);
-		unsetService();
-		view.setVisible(true);
-
-		// we dont change the state of the domain model when shown again. if this changes assertions can be added here
-		merchandise.setPrice(price);
-		view.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInTwoContainersAllVisibleToOneHiddenControl() {
-		final VContainedContainer container1 = addVerticalLayoutToView();
-		final VContainedContainer container2 = addVerticalLayoutToView();
-		addControlToContainer(container1, merchandisePriceReferenceFromFan());
-		final VControl control = addControlToContainer(container2, merchandisePriceReferenceFromFan());
-		unsetService();
-		control.setVisible(false);
-		assertEquals(price, merchandise.getPrice());
-		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInTwoContainersAllVisibleToOneHiddenContainer() {
-		final VContainedContainer container1 = addVerticalLayoutToView();
-		final VContainedContainer container2 = addVerticalLayoutToView();
-		addControlToContainer(container1, merchandisePriceReferenceFromFan());
-		addControlToContainer(container2, merchandisePriceReferenceFromFan());
-		unsetService();
-		container1.setVisible(false);
-		assertEquals(price, merchandise.getPrice());
-		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInTwoContainersAllVisibleToHiddenView() {
-		final VContainedContainer container1 = addVerticalLayoutToView();
-		final VContainedContainer container2 = addVerticalLayoutToView();
-		addControlToContainer(container1, merchandisePriceReferenceFromFan());
-		addControlToContainer(container2, merchandisePriceReferenceFromFan());
-		unsetService();
-		view.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInTwoContainersWithOneHiddenControlToTwoVisibleControls() {
-		final VContainedContainer container1 = addVerticalLayoutToView();
-		final VContainedContainer container2 = addVerticalLayoutToView();
-		addControlToContainer(container1, merchandisePriceReferenceFromFan());
-		final VControl control = addControlToContainer(container2, merchandisePriceReferenceFromFan());
-		control.setVisible(false);
-		unsetService();
-		control.setVisible(true);
-		assertEquals(price, merchandise.getPrice());
-		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInTwoContainersWithOneHiddenControlToHiddenContainerOfHiddenControl() {
-		final VContainedContainer container1 = addVerticalLayoutToView();
-		final VContainedContainer container2 = addVerticalLayoutToView();
-		addControlToContainer(container1, merchandisePriceReferenceFromFan());
-		addControlToContainer(container2, merchandisePriceReferenceFromFan()).setVisible(false);
-		unsetService();
-		container2.setVisible(false);
-		assertEquals(price, merchandise.getPrice());
-		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInTwoContainersWithOneHiddenControlToTwoHiddenControls() {
-		final VContainedContainer container1 = addVerticalLayoutToView();
-		final VContainedContainer container2 = addVerticalLayoutToView();
-		final VControl control = addControlToContainer(container1, merchandisePriceReferenceFromFan());
-		addControlToContainer(container2, merchandisePriceReferenceFromFan()).setVisible(false);
-		unsetService();
-		control.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInTwoContainersWithOneHiddenControlToHiddenContainerOfVisibleControl() {
-		final VContainedContainer container1 = addVerticalLayoutToView();
-		final VContainedContainer container2 = addVerticalLayoutToView();
-		addControlToContainer(container1, merchandisePriceReferenceFromFan());
-		addControlToContainer(container2, merchandisePriceReferenceFromFan()).setVisible(false);
-		unsetService();
-		container1.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInTwoContainersWithOneHiddenControlToHiddenView() {
-		final VContainedContainer container1 = addVerticalLayoutToView();
-		final VContainedContainer container2 = addVerticalLayoutToView();
-		addControlToContainer(container1, merchandisePriceReferenceFromFan());
-		addControlToContainer(container2, merchandisePriceReferenceFromFan()).setVisible(false);
-		unsetService();
-		view.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInTwoContainersWithOneHiddenContainerToHiddenControlInHiddenContainer() {
-		final VContainedContainer container1 = addVerticalLayoutToView();
-		final VContainedContainer container2 = addVerticalLayoutToView();
-		final VControl control = addControlToContainer(container1, merchandisePriceReferenceFromFan());
-		addControlToContainer(container2, merchandisePriceReferenceFromFan());
-		container1.setVisible(false);
-		unsetService();
-		control.setVisible(false);
-		assertEquals(price, merchandise.getPrice());
-		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInTwoContainersWithOneHiddenContainerToTwoVisibleContainers() {
-		final VContainedContainer container1 = addVerticalLayoutToView();
-		final VContainedContainer container2 = addVerticalLayoutToView();
-		addControlToContainer(container1, merchandisePriceReferenceFromFan());
-		addControlToContainer(container2, merchandisePriceReferenceFromFan());
-		container1.setVisible(false);
-		unsetService();
-		container1.setVisible(true);
-		assertEquals(price, merchandise.getPrice());
-		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInTwoContainersWithOneHiddenContainerToHiddenControlInVisibleContainer() {
-		final VContainedContainer container1 = addVerticalLayoutToView();
-		final VContainedContainer container2 = addVerticalLayoutToView();
-		addControlToContainer(container1, merchandisePriceReferenceFromFan());
-		final VControl control = addControlToContainer(container2, merchandisePriceReferenceFromFan());
-		container1.setVisible(false);
-		unsetService();
-		control.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInTwoContainersWithOneHiddenContainerToTwoHiddenContainer() {
-		final VContainedContainer container1 = addVerticalLayoutToView();
-		final VContainedContainer container2 = addVerticalLayoutToView();
-		addControlToContainer(container1, merchandisePriceReferenceFromFan());
-		addControlToContainer(container2, merchandisePriceReferenceFromFan());
-		container1.setVisible(false);
-		unsetService();
-		container2.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInTwoContainersWithOneHiddenContainerToHiddenView() {
-		final VContainedContainer container1 = addVerticalLayoutToView();
-		final VContainedContainer container2 = addVerticalLayoutToView();
-		addControlToContainer(container1, merchandisePriceReferenceFromFan());
-		addControlToContainer(container2, merchandisePriceReferenceFromFan());
-		container1.setVisible(false);
-		unsetService();
-		view.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInTwoContainersWithTwoHiddenControlsToOneHiddenContainer() {
-		final VContainedContainer container1 = addVerticalLayoutToView();
-		final VContainedContainer container2 = addVerticalLayoutToView();
-		addControlToContainer(container1, merchandisePriceReferenceFromFan()).setVisible(false);
-		addControlToContainer(container2, merchandisePriceReferenceFromFan()).setVisible(false);
-		unsetService();
-		container1.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInTwoContainersWithTwoHiddenControlsToHiddenView() {
-		final VContainedContainer container1 = addVerticalLayoutToView();
-		final VContainedContainer container2 = addVerticalLayoutToView();
-		addControlToContainer(container1, merchandisePriceReferenceFromFan()).setVisible(false);
-		addControlToContainer(container2, merchandisePriceReferenceFromFan()).setVisible(false);
-		unsetService();
-		view.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInTwoContainersWithTwoHiddenControlsToOneVisibleControl() {
-		final VContainedContainer container1 = addVerticalLayoutToView();
-		final VContainedContainer container2 = addVerticalLayoutToView();
-		addControlToContainer(container1, merchandisePriceReferenceFromFan()).setVisible(false);
-		final VControl control = addControlToContainer(container2, merchandisePriceReferenceFromFan());
-		control.setVisible(false);
-		unsetService();
-		control.setVisible(true);
-
-		// we dont change the state of the domain model when shown again. if this changes assertions can be added here
-		merchandise.setPrice(price);
-		control.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInTwoContainersWithTwoHiddenContainersToOneHiddenControl() {
-		final VContainedContainer container1 = addVerticalLayoutToView();
-		final VContainedContainer container2 = addVerticalLayoutToView();
-		addControlToContainer(container1, merchandisePriceReferenceFromFan());
-		final VControl control = addControlToContainer(container2, merchandisePriceReferenceFromFan());
-		container1.setVisible(false);
-		container2.setVisible(false);
-		unsetService();
-		control.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInTwoContainersWithTwoHiddenContainersToHiddenView() {
-		final VContainedContainer container1 = addVerticalLayoutToView();
-		final VContainedContainer container2 = addVerticalLayoutToView();
-		addControlToContainer(container1, merchandisePriceReferenceFromFan());
-		addControlToContainer(container2, merchandisePriceReferenceFromFan());
-		container1.setVisible(false);
-		container2.setVisible(false);
-		unsetService();
-		view.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInTwoContainersWithTwoHiddenContainersToOneVisibleContainer() {
-		final VContainedContainer container1 = addVerticalLayoutToView();
-		final VContainedContainer container2 = addVerticalLayoutToView();
-		addControlToContainer(container1, merchandisePriceReferenceFromFan());
-		addControlToContainer(container2, merchandisePriceReferenceFromFan());
-		container1.setVisible(false);
-		container2.setVisible(false);
-		unsetService();
-		container1.setVisible(true);
-
-		// we dont change the state of the domain model when shown again. if this changes assertions can be added here
-		merchandise.setPrice(price);
-		container1.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInTwoContainersWithHiddenViewToOneHiddenControl() {
-		final VContainedContainer container1 = addVerticalLayoutToView();
-		final VContainedContainer container2 = addVerticalLayoutToView();
-		addControlToContainer(container1, merchandisePriceReferenceFromFan());
-		final VControl control = addControlToContainer(container2, merchandisePriceReferenceFromFan());
-		view.setVisible(false);
-		unsetService();
-		control.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInTwoContainersWithHiddenViewToOneHiddenContainer() {
-		final VContainedContainer container1 = addVerticalLayoutToView();
-		final VContainedContainer container2 = addVerticalLayoutToView();
-		addControlToContainer(container1, merchandisePriceReferenceFromFan());
-		addControlToContainer(container2, merchandisePriceReferenceFromFan());
-		view.setVisible(false);
-		unsetService();
-		container1.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testChangeTwoControlsInTwoContainersWithHiddenViewToVisibleView() {
-		final VContainedContainer container1 = addVerticalLayoutToView();
-		final VContainedContainer container2 = addVerticalLayoutToView();
-		addControlToContainer(container1, merchandisePriceReferenceFromFan());
-		addControlToContainer(container2, merchandisePriceReferenceFromFan());
-		view.setVisible(false);
-		unsetService();
-		view.setVisible(true);
-
-		// we dont change the state of the domain model when shown again. if this changes assertions can be added here
-		merchandise.setPrice(price);
-		view.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
-	// More specific test
-	// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-	@Test
-	public void testChangeOtherViewFeatures() {
-		final VControl control = addControlToView(merchandisePriceReferenceFromFan());
-		unsetService();
-		for (final EStructuralFeature feature : control.eClass().getEAllStructuralFeatures()) {
-			if (feature == VViewPackage.eINSTANCE.getElement_Visible()) {
-				continue;
-			}
-			if (!feature.isMany()) {
-				control.eSet(feature, feature.getDefaultValue());
-			}
-		}
-		assertEquals(price, merchandise.getPrice());
-		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
-	}
-
-	@Test
-	public void testInitDifferentControls() {
-		addControlToContainer(addVerticalLayoutToView(), merchandisePriceReferenceFromFan()).setVisible(false);
-		addControlToContainer(addVerticalLayoutToView(), merchandiseNameReferenceFromFan());
-		unsetService();
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-		assertEquals(mercName, merchandise.getName());
-		assertTrue(merchandise.eIsSet(merchandiseNameFeature));
-	}
-
-	@Test
-	public void testChangeDifferentControls() {
-		final VControl mercControl = addControlToContainer(addVerticalLayoutToView(),
-			merchandisePriceReferenceFromFan());
-		final VControl fanControl = addControlToContainer(addVerticalLayoutToView(), fanNameReference());
-		unsetService();
-		mercControl.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-		assertEquals(fanName, fan.getName());
-		assertTrue(fan.eIsSet(fanNameFeature));
-		fanControl.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-		assertEquals(fanNameFeature.getDefaultValue(), fan.getName());
-		assertFalse(fan.eIsSet(fanNameFeature));
-	}
-
-	@Test
-	public void testComplexCategorization() {
-		final VCategorizationElement categorizationElement = VCategorizationFactory.eINSTANCE
-			.createCategorizationElement();
-
-		final VCategorization categorization1 = VCategorizationFactory.eINSTANCE.createCategorization();
-		final VCategorization categorization1a = VCategorizationFactory.eINSTANCE.createCategorization();
-		final VCategorization categorization2 = VCategorizationFactory.eINSTANCE.createCategorization();
-
-		final VCategory category11 = VCategorizationFactory.eINSTANCE.createCategory();
-		final VControl control11 = addControlToCategory(category11, merchandisePriceReferenceFromFan());
-		final VCategory category12 = VCategorizationFactory.eINSTANCE.createCategory();
-		final VControl control12 = addControlToCategory(category12, merchandisePriceReferenceFromFan());
-
-		final VCategory category1a1 = VCategorizationFactory.eINSTANCE.createCategory();
-		addControlToCategory(category1a1, merchandisePriceReferenceFromFan());
-		final VCategory category1a2 = VCategorizationFactory.eINSTANCE.createCategory();
-		final VControl control1a2 = addControlToCategory(category1a2, merchandiseNameReferenceFromFan());
-
-		final VCategory category21 = VCategorizationFactory.eINSTANCE.createCategory();
-		addControlToCategory(category21, merchandisePriceReferenceFromFan());
-		final VCategory category22 = VCategorizationFactory.eINSTANCE.createCategory();
-		addControlToCategory(category22, fanNameReference());
-
-		categorization1.getCategorizations().add(category11);
-		categorization1.getCategorizations().add(category12);
-
-		categorization1a.getCategorizations().add(category1a1);
-		categorization1a.getCategorizations().add(category1a2);
-
-		categorization2.getCategorizations().add(category21);
-		categorization2.getCategorizations().add(category22);
-
-		categorization1.getCategorizations().add(categorization1a);
-		categorizationElement.getCategorizations().add(categorization1);
-		categorizationElement.getCategorizations().add(categorization2);
-		view.getChildren().add(categorizationElement);
-
-		unsetService();
-
-		doLogicForComplexCategorizationTest(categorization2, control11, control12, category1a1, control1a2);
-
-	}
-
-	private void doLogicForComplexCategorizationTest(final VCategorization categorization2,
-		final VControl control11, final VControl control12, final VCategory category1a1, final VControl control1a2) {
-
-		control11.setVisible(false);
-		assertEquals(price, merchandise.getPrice());
-		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
-		assertEquals(mercName, merchandise.getName());
-		assertTrue(merchandise.eIsSet(merchandiseNameFeature));
-		assertEquals(fanName, fan.getName());
-		assertTrue(fan.eIsSet(fanNameFeature));
-
-		control1a2.setVisible(false);
-		assertEquals(price, merchandise.getPrice());
-		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
-		assertEquals(merchandiseNameFeature.getDefaultValue(), merchandise.getName());
-		assertFalse(merchandise.eIsSet(merchandiseNameFeature));
-		assertEquals(fanName, fan.getName());
-		assertTrue(fan.eIsSet(fanNameFeature));
-
-		categorization2.setVisible(false);
-		assertEquals(price, merchandise.getPrice());
-		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
-		assertEquals(merchandiseNameFeature.getDefaultValue(), merchandise.getName());
-		assertFalse(merchandise.eIsSet(merchandiseNameFeature));
-		assertEquals(fanNameFeature.getDefaultValue(), fan.getName());
-		assertFalse(fan.eIsSet(fanNameFeature));
-
-		category1a1.setVisible(false);
-		assertEquals(price, merchandise.getPrice());
-		assertTrue(merchandise.eIsSet(merchandisePriceFeature));
-		assertEquals(merchandiseNameFeature.getDefaultValue(), merchandise.getName());
-		assertFalse(merchandise.eIsSet(merchandiseNameFeature));
-		assertEquals(fanNameFeature.getDefaultValue(), fan.getName());
-		assertFalse(fan.eIsSet(fanNameFeature));
-
-		control12.setVisible(false);
-		assertEquals(merchandisePriceFeature.getDefaultValue(), merchandise.getPrice());
-		assertFalse(merchandise.eIsSet(merchandisePriceFeature));
-		assertEquals(merchandiseNameFeature.getDefaultValue(), merchandise.getName());
-		assertFalse(merchandise.eIsSet(merchandiseNameFeature));
-		assertEquals(fanNameFeature.getDefaultValue(), fan.getName());
-		assertFalse(fan.eIsSet(fanNameFeature));
-	}
-
-	/**
-	 * Test if exception occurs when control has no setting.
-	 */
-	@Test
-	public void testControlWithoutSetting() {
-		final VFeaturePathDomainModelReference domainModelReference = VViewFactory.eINSTANCE
-			.createFeaturePathDomainModelReference();
-		domainModelReference.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_Name());
-		final VControl control = addControlToView(domainModelReference);
-		assertFalse(control.getDomainModelReference().getIterator().hasNext());
-		unsetService();
-	}
-
-	@Test
-	public void testTable() {
-		final Merchandise merc = BowlingFactory.eINSTANCE.createMerchandise();
-		merc.setName("Foo");
-		fan.getFanMerchandise().add(merc);
-
-		final VTableControl table = VTableFactory.eINSTANCE.createTableControl();
-		final VTableDomainModelReference tableDomainModelReference = VTableFactory.eINSTANCE
-			.createTableDomainModelReference();
-		tableDomainModelReference.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_FanMerchandise());
-		table.setDomainModelReference(tableDomainModelReference);
-
-		final VFeaturePathDomainModelReference nameCol = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
-		nameCol.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_Name());
-		final VFeaturePathDomainModelReference priceCol = VViewFactory.eINSTANCE
-			.createFeaturePathDomainModelReference();
-		priceCol.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_Price());
-		VTableDomainModelReference.class.cast(table.getDomainModelReference()).getColumnDomainModelReferences()
-			.add(nameCol);
-		VTableDomainModelReference.class.cast(table.getDomainModelReference()).getColumnDomainModelReferences()
-			.add(priceCol);
-
-		view.getChildren().add(table);
-
-		unsetService();
-		assertEquals(1, fan.getFanMerchandise().size());
-		assertEquals(merc, fan.getFanMerchandise().get(0));
-		assertTrue(fan.eIsSet(BowlingPackage.eINSTANCE.getFan_FanMerchandise()));
-
-		table.setVisible(false);
-
-		assertEquals(0, fan.getFanMerchandise().size());
-		assertFalse(fan.eIsSet(BowlingPackage.eINSTANCE.getFan_FanMerchandise()));
-		assertEquals("Foo", merc.getName());
-	}
-
-	// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
-	// Factory methods
-	// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-	/**
-	 * Creates the unset service.
-	 *
-	 * @return
-	 */
-	private UnsetService unsetService() {
-		final UnsetService unsetService = new UnsetService();
-		context = ViewModelContextFactory.INSTANCE.createViewModelContext(view, fan);
-		unsetService.instantiate(context);
-		return unsetService;
-	}
-
-	/**
-	 * Adds a control with the given feature path domain model reference as a direct child of the view.
-	 *
-	 * @param domainModelReference
-	 * @return the created control
-	 */
-	private VControl addControlToView(VFeaturePathDomainModelReference domainModelReference) {
-		final VControl control = VViewFactory.eINSTANCE.createControl();
-		control.setDomainModelReference(domainModelReference);
-		view.getChildren().add(control);
-		return control;
-	}
-
-	/**
-	 * Adds a control with the given feature path domain model reference as a direct child of the container.
-	 *
-	 * @param domainModelReference
-	 * @return the created control
-	 */
-	private VControl addControlToContainer(VContainedContainer container,
-		VFeaturePathDomainModelReference domainModelReference) {
-		final VControl control = VViewFactory.eINSTANCE.createControl();
-		control.setDomainModelReference(domainModelReference);
-		container.getChildren().add(control);
-		return control;
-	}
-
-	private VControl addControlToCategory(VCategory category, VFeaturePathDomainModelReference domainModelReference) {
-		final VControl control = VViewFactory.eINSTANCE.createControl();
-		control.setDomainModelReference(domainModelReference);
-		category.setComposite(control);
-		return control;
-	}
-
-	/**
-	 * Adds a vertical layout as a direct child of the view.
-	 *
-	 * @return the created layout
-	 */
-	private VVerticalLayout addVerticalLayoutToView() {
-		final VVerticalLayout layout = VVerticalFactory.eINSTANCE.createVerticalLayout();
-		view.getChildren().add(layout);
-		return layout;
-	}
-
-	/**
-	 * References the player name from a league object.
-	 *
-	 * @return
-	 */
-	private VFeaturePathDomainModelReference merchandisePriceReferenceFromFan() {
-		final VFeaturePathDomainModelReference domainModelReference = VViewFactory.eINSTANCE
-			.createFeaturePathDomainModelReference();
-		domainModelReference.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_Price());
-		domainModelReference.getDomainModelEReferencePath().add(BowlingPackage.eINSTANCE.getFan_FavouriteMerchandise());
-		return domainModelReference;
-	}
-
-	private VFeaturePathDomainModelReference merchandiseNameReferenceFromFan() {
-		final VFeaturePathDomainModelReference domainModelReference = VViewFactory.eINSTANCE
-			.createFeaturePathDomainModelReference();
-		domainModelReference.setDomainModelEFeature(BowlingPackage.eINSTANCE.getMerchandise_Name());
-		domainModelReference.getDomainModelEReferencePath().add(BowlingPackage.eINSTANCE.getFan_FavouriteMerchandise());
-		return domainModelReference;
-	}
-
-	private VFeaturePathDomainModelReference fanNameReference() {
-		final VFeaturePathDomainModelReference domainModelReference = VViewFactory.eINSTANCE
-			.createFeaturePathDomainModelReference();
-		domainModelReference.setDomainModelEFeature(BowlingPackage.eINSTANCE.getFan_Name());
-		return domainModelReference;
-	}
-
-	// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
-	// Helper- & stub classes
-	// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-	/**
-	 * @author Jonas
-	 *
-	 */
-	private class ViewModelContextStub implements ViewModelContext {
-
-		private boolean hasRegisteredViewListener;
-		private boolean hasRegisteredDomainListener;
-
-		@Override
-		public void unregisterViewChangeListener(ModelChangeListener modelChangeListener) {
-			hasRegisteredViewListener = false;
-		}
-
-		@Override
-		public void unregisterDomainChangeListener(ModelChangeListener modelChangeListener) {
-			hasRegisteredDomainListener = false;
-		}
-
-		@Override
-		public void registerViewChangeListener(ModelChangeListener modelChangeListener) {
-			hasRegisteredViewListener = true;
-		}
-
-		@Override
-		public void registerDomainChangeListener(ModelChangeListener modelChangeListener) {
-			hasRegisteredDomainListener = true;
-		}
-
-		@Override
-		public VElement getViewModel() {
-			return view;
-		}
-
-		@Override
-		public EObject getDomainModel() {
-			return fan;
-		}
-
-		@Override
-		public void dispose() {
-		}
-
-		@Override
-		public <T> boolean hasService(Class<T> serviceType) {
-			return false;
-		}
-
-		@Override
-		public <T> T getService(Class<T> serviceType) {
-			return null;
-		}
-
-		/**
-		 * {@inheritDoc}
-		 *
-		 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#getControlsFor(org.eclipse.emf.ecore.EStructuralFeature.Setting)
-		 */
-		@Override
-		public Set<VControl> getControlsFor(Setting setting) {
-			// TODO Auto-generated method stub
-			return null;
-		}
-
-		/**
-		 * {@inheritDoc}
-		 *
-		 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#getControlsFor(UniqueSetting)
-		 */
-		@Override
-		public Set<VElement> getControlsFor(UniqueSetting setting) {
-			// TODO Auto-generated method stub
-			return null;
-		}
-
-		/**
-		 * {@inheritDoc}
-		 *
-		 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#getContextValue(java.lang.String)
-		 */
-		@Override
-		public Object getContextValue(String key) {
-			// TODO Auto-generated method stub
-			return null;
-		}
-
-		/**
-		 * {@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) {
-			// TODO Auto-generated method stub
-
-		}
-
-		/**
-		 * {@inheritDoc}
-		 *
-		 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#registerDisposeListener(org.eclipse.emf.ecp.view.spi.context.ViewModelContextDisposeListener)
-		 */
-		@Override
-		public void registerDisposeListener(ViewModelContextDisposeListener listener) {
-			// TODO Auto-generated method stub
-
-		}
-
-		/**
-		 * {@inheritDoc}
-		 *
-		 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#addContextUser(java.lang.Object)
-		 */
-		@Override
-		public void addContextUser(Object user) {
-			// TODO Auto-generated method stub
-
-		}
-
-		/**
-		 * {@inheritDoc}
-		 *
-		 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#removeContextUser(java.lang.Object)
-		 */
-		@Override
-		public void removeContextUser(Object user) {
-			// TODO Auto-generated method stub
-
-		}
-
-		/**
-		 * {@inheritDoc}
-		 *
-		 * @see org.eclipse.emf.ecp.view.spi.context.ViewModelContext#getChildContext(org.eclipse.emf.ecore.EObject,
-		 *      org.eclipse.emf.ecp.view.spi.model.VElement, org.eclipse.emf.ecp.view.spi.model.VView,
-		 *      org.eclipse.emf.ecp.view.spi.context.ViewModelService[])
-		 */
-		@Override
-		public ViewModelContext getChildContext(EObject eObject, VElement parent, VView vView,
-			ViewModelService... viewModelServices) {
-			// TODO Auto-generated method stub
-			return null;
-		}
-
-	}
-
-}
diff --git a/tests/org.eclipse.emf.ecp.view.validation.bean.test/.gitignore b/tests/org.eclipse.emf.ecp.view.validation.bean.test/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.validation.bean.test/.gitignore
@@ -0,0 +1 @@
+/bin/
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 e74ef33..3bef914 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,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.validation.bean.test;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .,
  lib/commons-beanutils-1.9.2.jar,
  lib/commons-lang3-3.3.2.jar,
@@ -11,9 +11,9 @@
 Bundle-Localization: plugin
 Fragment-Host: org.eclipse.emf.ecp.view.validation.bean.default;bundle-version="[1.5.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: car;version="1.5.1";x-internal:=true,car.impl;version=
- "1.5.1";x-internal:=true,car.util;version="1.5.1";x-internal:=true,or
- g.eclipse.emf.ecp.view.validation.bean.test;version="1.5.1";x-interna
+Export-Package: car;version="1.6.0";x-internal:=true,car.impl;version=
+ "1.6.0";x-internal:=true,car.util;version="1.6.0";x-internal:=true,or
+ g.eclipse.emf.ecp.view.validation.bean.test;version="1.6.0";x-interna
  l:=true
 Bundle-ActivationPolicy: lazy
 Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)"
diff --git a/tests/org.eclipse.emf.ecp.view.validation.bean.test/plugin.properties b/tests/org.eclipse.emf.ecp.view.validation.bean.test/plugin.properties
index 17b407d..7faa0a2 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.bean.test/plugin.properties
+++ b/tests/org.eclipse.emf.ecp.view.validation.bean.test/plugin.properties
@@ -1,4 +1,4 @@
 #
 
 pluginName = Car Model
-providerName = www.example.org
+providerName = Eclipse Modeling Project
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 92afbd9..40457cc 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-plugin</packaging>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/Person.java b/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/Person.java
index d2c0bda..7f3527f 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/Person.java
+++ b/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/Person.java
@@ -3,7 +3,6 @@
 package car;
 
 import org.eclipse.emf.common.util.EList;
-
 import org.eclipse.emf.ecore.EObject;
 
 /**
diff --git a/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/impl/CarFactoryImpl.java b/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/impl/CarFactoryImpl.java
index 152e1ea..b57e6a8 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/impl/CarFactoryImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/impl/CarFactoryImpl.java
@@ -2,16 +2,18 @@
  */
 package car.impl;
 
-import car.*;
-
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
-
 import org.eclipse.emf.ecore.impl.EFactoryImpl;
-
 import org.eclipse.emf.ecore.plugin.EcorePlugin;
 
+import car.Car;
+import car.CarFactory;
+import car.CarPackage;
+import car.Driver;
+import car.Person;
+
 /**
  * <!-- begin-user-doc --> An implementation of the model <b>Factory</b>. <!--
  * end-user-doc -->
diff --git a/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/impl/CarImpl.java b/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/impl/CarImpl.java
index 09e1ca0..b37481e 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/impl/CarImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/impl/CarImpl.java
@@ -2,19 +2,17 @@
  */
 package car.impl;
 
+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 car.Car;
 import car.CarPackage;
 import car.Driver;
 
-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;
-
 /**
  * <!-- begin-user-doc --> An implementation of the model object '
  * <em><b>Car</b></em>'. <!-- end-user-doc -->
diff --git a/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/impl/CarPackageImpl.java b/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/impl/CarPackageImpl.java
index 384c2d6..52eba19 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/impl/CarPackageImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/impl/CarPackageImpl.java
@@ -2,19 +2,18 @@
  */
 package car.impl;
 
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
 import car.Car;
 import car.CarFactory;
 import car.CarPackage;
 import car.Driver;
 import car.Person;
 
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-
-import org.eclipse.emf.ecore.impl.EPackageImpl;
-
 /**
  * <!-- begin-user-doc --> An implementation of the model <b>Package</b>. <!--
  * end-user-doc -->
diff --git a/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/impl/DriverImpl.java b/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/impl/DriverImpl.java
index eedac06..0c4f083 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/impl/DriverImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/impl/DriverImpl.java
@@ -2,15 +2,13 @@
  */
 package car.impl;
 
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
 import car.CarPackage;
 import car.Driver;
 
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
 /**
  * <!-- begin-user-doc --> An implementation of the model object '
  * <em><b>Driver</b></em>'. <!-- end-user-doc -->
diff --git a/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/impl/PersonImpl.java b/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/impl/PersonImpl.java
index ea85c55..85845a0 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/impl/PersonImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/impl/PersonImpl.java
@@ -2,25 +2,21 @@
  */
 package car.impl;
 
-import car.CarPackage;
-import car.Person;
-
 import java.util.Collection;
 
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.NotificationChain;
-
 import org.eclipse.emf.common.util.EList;
-
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.InternalEObject;
-
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
 import org.eclipse.emf.ecore.util.EObjectContainmentEList;
 import org.eclipse.emf.ecore.util.InternalEList;
 
+import car.CarPackage;
+import car.Person;
+
 /**
  * <!-- begin-user-doc --> An implementation of the model object '
  * <em><b>Person</b></em>'. <!-- end-user-doc -->
diff --git a/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/util/CarAdapterFactory.java b/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/util/CarAdapterFactory.java
index b2587a9..5ca1642 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/util/CarAdapterFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/util/CarAdapterFactory.java
@@ -2,15 +2,16 @@
  */
 package car.util;
 
-import car.*;
-
 import org.eclipse.emf.common.notify.Adapter;
 import org.eclipse.emf.common.notify.Notifier;
-
 import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
-
 import org.eclipse.emf.ecore.EObject;
 
+import car.Car;
+import car.CarPackage;
+import car.Driver;
+import car.Person;
+
 /**
  * <!-- begin-user-doc --> The <b>Adapter Factory</b> for the model. It provides
  * an adapter <code>createXXX</code> method for each class of the model. <!--
diff --git a/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/util/CarSwitch.java b/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/util/CarSwitch.java
index e0e8376..cfc653e 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/util/CarSwitch.java
+++ b/tests/org.eclipse.emf.ecp.view.validation.bean.test/src/car/util/CarSwitch.java
@@ -2,13 +2,15 @@
  */
 package car.util;
 
-import car.*;
-
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
-
 import org.eclipse.emf.ecore.util.Switch;
 
+import car.Car;
+import car.CarPackage;
+import car.Driver;
+import car.Person;
+
 /**
  * <!-- begin-user-doc --> The <b>Switch</b> for the model's inheritance
  * hierarchy. It supports the call {@link #doSwitch(EObject) doSwitch(object)}
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 042e20f..4027b08 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.test/AllValidationTests.launch
+++ b/tests/org.eclipse.emf.ecp.view.validation.test/AllValidationTests.launch
@@ -33,7 +33,7 @@
 <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.apache.commons.codec@default:default,org.apache.commons.logging@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.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.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.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.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.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.win32.win32.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.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.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@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.test@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.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.table.model.edit@default:default,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@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"/>

+<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.test@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.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.table.model.edit@default:default,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@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.emfforms.core.services.emfspecificservice@default:default,org.eclipse.emf.emfforms.core.services.labelprovider@default:default,org.eclipse.emf.emfforms.localization@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@default:default,org.eclipse.emfforms.core.services.editsupport@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 1e45181..815178d 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,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.validation.test;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Fragment-Host: org.eclipse.emf.ecp.view.validation;bundle-version="1.4.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.ecp.view.validation.test;version="1.5.
- 1",org.eclipse.emf.ecp.view.validation.test.model;version="1.5.1",org
- .eclipse.emf.ecp.view.validation.test.model.impl;version="1.5.1",org.
- eclipse.emf.ecp.view.validation.test.model.util;version="1.5.1"
+Export-Package: org.eclipse.emf.ecp.view.validation.test;version="1.6.
+ 0",org.eclipse.emf.ecp.view.validation.test.model;version="1.6.0",org
+ .eclipse.emf.ecp.view.validation.test.model.impl;version="1.6.0",org.
+ eclipse.emf.ecp.view.validation.test.model.util;version="1.6.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.5.0,2.0.0)",
@@ -20,5 +20,6 @@
  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.test.common;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="1.5.0"
+ org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="1.5.0",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.5.0,2.0.0)"
 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 e67256e..844076f 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -24,48 +24,56 @@
 				<configuration>
 		          	<useUIHarness>true</useUIHarness>
 		          	<useUIThread>true</useUIThread>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.viewmodel.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.vertical.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.validation.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.validation.initial.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.table.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.emfstore.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-					</dependencies>
+				</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.target.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.viewmodel.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.vertical.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.validation.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.validation.initial.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.view.table.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.emfstore.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
diff --git a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/TableValidation_PTest.java b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/TableValidation_PTest.java
index 2b9a373..a483d7e 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/TableValidation_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/TableValidation_PTest.java
@@ -17,6 +17,7 @@
 import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecp.test.common.DefaultRealm;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContextFactory;
 import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.model.VView;
@@ -37,6 +38,8 @@
 import org.eclipse.emf.ecp.view.validation.test.model.TestFactory;
 import org.eclipse.emf.ecp.view.validation.test.model.TestPackage;
 import org.eclipse.emf.ecp.view.validation.test.model.Writer;
+import org.junit.After;
+import org.junit.Before;
 import org.junit.Test;
 
 /**
@@ -52,6 +55,18 @@
  */
 public class TableValidation_PTest {
 
+	private DefaultRealm defaultRealm;
+
+	@Before
+	public void setup() {
+		defaultRealm = new DefaultRealm();
+	}
+
+	@After
+	public void tearDown() {
+		defaultRealm.dispose();
+	}
+
 	private VView createViewWithTableControl(EClass rootClass, EReference tableReference,
 		EAttribute... columnAttributes) {
 		final VView view = VViewFactory.eINSTANCE.createView();
diff --git a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/ValidationProvider_PTest.java b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/ValidationProvider_PTest.java
index 7d1e91a..5f588d0 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/ValidationProvider_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/ValidationProvider_PTest.java
@@ -200,4 +200,49 @@
 		validationService.removeValidationProvider(validationProvider);
 		assertEquals(Diagnostic.OK, control.getDiagnostic().getHighestSeverity());
 	}
+
+	@Test
+	public void testValidationProviderTriggerNoSelfValidation() {
+		final List<Integer> called = new ArrayList<Integer>(1);
+		called.add(0);
+		validationService.addValidationProvider(new ValidationProvider() {
+
+			@Override
+			public List<Diagnostic> validate(EObject eObject) {
+				if (Computer.class.isInstance(eObject)) {
+
+					eObject.eNotify(new ValidationNotification(eObject));
+					called.set(0, called.get(0) + 1);
+				}
+				return Collections.emptyList();
+			}
+		}, false);
+		assertEquals((Integer) 0, called.get(0));
+	}
+
+	@Test
+	public void testRemoveValidationProviderNoRevalidation() {
+		// setup
+		final ValidationProvider validationProvider = new ValidationProvider() {
+			@Override
+			public List<Diagnostic> validate(EObject eObject) {
+				if (!Computer.class.isInstance(eObject)) {
+					return Collections.emptyList();
+				}
+				final Diagnostic diagnostic = new BasicDiagnostic(Diagnostic.WARNING, "bla", 0, "bl", new Object[] {
+					eObject, TestPackage.eINSTANCE.getComputer_Name() });
+				return Collections.singletonList(diagnostic);
+			}
+		};
+		validationService.addValidationProvider(validationProvider);
+		assertEquals(Diagnostic.WARNING, control.getDiagnostic().getHighestSeverity());
+
+		// act
+		validationService.removeValidationProvider(validationProvider, false);
+		/* no revalidation yet */
+		assertEquals(Diagnostic.WARNING, control.getDiagnostic().getHighestSeverity());
+		/* revalidate to see if provider was removed */
+		validationService.validate(Collections.singleton(EObject.class.cast(computer)));
+		assertEquals(Diagnostic.OK, control.getDiagnostic().getHighestSeverity());
+	}
 }
diff --git a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/ValidationServiceGC_PTest.java b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/ValidationServiceGC_PTest.java
index 8776816..989c9a4 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/ValidationServiceGC_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/ValidationServiceGC_PTest.java
@@ -16,6 +16,7 @@
 import static org.junit.Assert.assertTrue;
 
 import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.ecp.test.common.DefaultRealm;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContextFactory;
 import org.eclipse.emf.ecp.view.spi.model.VControl;
 import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
@@ -29,6 +30,8 @@
 import org.eclipse.emf.ecp.view.validation.test.model.TestFactory;
 import org.eclipse.emf.ecp.view.validation.test.model.TestPackage;
 import org.eclipse.emf.ecp.view.validation.test.model.Writer;
+import org.junit.After;
+import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
 
@@ -41,6 +44,18 @@
  */
 public class ValidationServiceGC_PTest extends CommonValidationTest {
 
+	private DefaultRealm defaultRealm;
+
+	@Before
+	public void setup() {
+		defaultRealm = new DefaultRealm();
+	}
+
+	@After
+	public void tearDown() {
+		defaultRealm.dispose();
+	}
+
 	/**
 	 * Creates a basic view with an column that contains a control
 	 * that is bound to the mainboard name feature of a computer.
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 e010fea..8cf3dfb 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,9 +2,10 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Tests for the VerticalSWT Renderer
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.vertical.ui.swt.test
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Fragment-Host: org.eclipse.emf.ecp.view.vertical.ui.swt;bundle-version="[1.6.0,2.0.0)"
 Require-Bundle: org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.5.0,2.0.0)",
  org.junit;bundle-version="[4.0.0,5.0.0)",
  org.eclipse.emf.ecp.view.model;bundle-version="[1.5.0,2.0.0)",
@@ -16,4 +17,4 @@
  org.eclipse.jface;bundle-version="3.8.102",
  org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.5.0,2.0.0)"
 Export-Package: org.eclipse.emf.ecp.view.vertical.ui.swt.test;version=
- "1.5.1";x-internal:=true
+ "1.6.0";x-internal:=true
diff --git a/tests/org.eclipse.emf.ecp.view.vertical.ui.swt.test/SWTVertical_PTest.launch b/tests/org.eclipse.emf.ecp.view.vertical.ui.swt.test/SWTVertical_PTest.launch
index 1acd4b7..1b0be1e 100644
--- a/tests/org.eclipse.emf.ecp.view.vertical.ui.swt.test/SWTVertical_PTest.launch
+++ b/tests/org.eclipse.emf.ecp.view.vertical.ui.swt.test/SWTVertical_PTest.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,javax.servlet@default:default,javax.xml@default:default,org.apache.batik.css@default:default,org.apache.batik.util.gui@default:default,org.apache.batik.util@default:default,org.apache.commons.codec*1.4.0.v201209201156@default:default,org.apache.commons.logging@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.win32.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources*3.8.101.v20130717-0806@default:default,org.eclipse.core.resources.win32.x86_64@default:false,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts*1.3.1.v20130905-0905@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*0.10.101.v20130801-2002@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*1.0.1.v20130909-1436@default:default,org.eclipse.e4.ui.services*1.0.1.v20130909-1436@default:default,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench*1.0.1.v20130910-2014@default:default,org.eclipse.e4.ui.workbench.addons.swt*1.0.1.v20130823-1518@default:default,org.eclipse.e4.ui.workbench.renderers.swt*0.11.1.v20130812-1345@default:default,org.eclipse.e4.ui.workbench.swt*0.12.1.v20130815-1438@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.emf.cdo.ecore.retrofit@default:false,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.4.101.v20130813-1853@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*3.5.301.v20130717-1549@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*3.9.1.v20130725-1141@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.net4j.util@default:default,org.eclipse.osgi*3.9.1.v20130814-1242@-1:true,org.eclipse.osgi.services@default:default,org.eclipse.swt*3.102.1.v20130827-2021@default:default,org.eclipse.swt.win32.win32.x86_64*3.102.1.v20130827-2048@default:false,org.eclipse.team.core@default:default,org.eclipse.ui.forms*3.6.1.v20130822-1117@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench*3.105.1.v20130821-1411@default:default,org.eclipse.ui@default:default,org.hamcrest.core*1.1.0.v20090501071000@default:default,org.hamcrest.core*1.3.0.v201303031735@default:default,org.junit*4.10.0.v4_10_0_v20120426-0900@default:default,org.junit*4.11.0.v201303080030@default:default,org.w3c.css.sac@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@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.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.test@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.custom.ui@default:default,org.eclipse.emf.ecp.view.group.model@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@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.swt@default:default,org.eclipse.emf.ecp.view.test.common@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.edit@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"/>
+<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.apache.commons.codec@default:default,org.apache.commons.logging@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.compatibility.registry@default:false,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.cdo.ecore.retrofit@default:false,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@-1:true,org.eclipse.swt.win32.win32.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-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.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.test.common@default:default,org.eclipse.emf.ecp.ui.rcp@default:false,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.test@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.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.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@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.emf.ecp.view.vertical.ui.swt.test@default:false,org.eclipse.emf.ecp.view.vertical.ui.swt@default:default,org.eclipse.emf.rap.edit.ui.minimal@default:default,org.eclipse.emfforms.core.services.databinding.featurepath@default:default,org.eclipse.emfforms.core.services.databinding.tests@default:false,org.eclipse.emfforms.core.services.databinding@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.locale.default@default:default,org.eclipse.emfforms.core.services@default:default,org.eclipse.emfforms.localization@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"/>
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 7f3fd3b..f266e85 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -24,38 +24,61 @@
 				<configuration>
 		          	<useUIHarness>true</useUIHarness>
 		          	<useUIThread>true</useUIThread>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.viewmodel.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.vertical.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.emfstore.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.view.template.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-					</dependencies>
+				</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.ds</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.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.ecore.edit</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
diff --git a/tests/org.eclipse.emf.ecp.view.vertical.ui.swt.test/src/org/eclipse/emf/ecp/view/vertical/ui/swt/test/SWTVertical_PTest.java b/tests/org.eclipse.emf.ecp.view.vertical.ui.swt.test/src/org/eclipse/emf/ecp/view/vertical/ui/swt/test/SWTVertical_PTest.java
index 38520e6..bf6b2e8 100644
--- a/tests/org.eclipse.emf.ecp.view.vertical.ui.swt.test/src/org/eclipse/emf/ecp/view/vertical/ui/swt/test/SWTVertical_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.vertical.ui.swt.test/src/org/eclipse/emf/ecp/view/vertical/ui/swt/test/SWTVertical_PTest.java
@@ -30,6 +30,7 @@
 import org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalLayout;
 import org.eclipse.emf.ecp.view.test.common.swt.spi.DatabindingClassRunner;
 import org.eclipse.emf.ecp.view.test.common.swt.spi.SWTViewTestHelper;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
@@ -54,7 +55,7 @@
 
 	@Test
 	public void testVerticalWithoutChildren() throws NoRendererFoundException,
-		NoPropertyDescriptorFoundExeption {
+		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
 		// setup model
 		final HierarchyViewModelHandle handle = createVerticalWithoutChildren();
 		final Control render = SWTViewTestHelper.render(handle.getRoot(), domainElement, shell);
@@ -65,7 +66,7 @@
 
 	@Test
 	public void testVerticalWithTwoControlsAsChildren() throws NoRendererFoundException,
-		NoPropertyDescriptorFoundExeption {
+		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
 		// setup model
 		final HierarchyViewModelHandle handle = createVerticalWithTwoControlsAsChildren();
 		final Control render = SWTViewTestHelper.render(handle.getRoot(), domainElement, shell);
@@ -79,7 +80,7 @@
 
 	@Test
 	public void testVerticalWithTwoVerticalAsChildrenAndControlAsSubChildren() throws NoRendererFoundException,
-		NoPropertyDescriptorFoundExeption {
+		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
 		// setup model
 		final HierarchyViewModelHandle handle =
 			createVerticalWithTwoVerticalAsChildrenAndControlAsSubChildren();
diff --git a/tests/org.eclipse.emf.ecp.view.viewproxy.test/.gitignore b/tests/org.eclipse.emf.ecp.view.viewproxy.test/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.viewproxy.test/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/tests/org.eclipse.emf.ecp.view.viewproxy.test/AllProxyTests.launch b/tests/org.eclipse.emf.ecp.view.viewproxy.test/AllProxyTests.launch
index 96b9de0..3afc881 100644
--- a/tests/org.eclipse.emf.ecp.view.viewproxy.test/AllProxyTests.launch
+++ b/tests/org.eclipse.emf.ecp.view.viewproxy.test/AllProxyTests.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.cdo.core,org.eclipse.emf.ecp.cdo.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.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.view.control,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.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.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.locale,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.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.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.databinding,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.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.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.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.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.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.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.test,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.edit,org.eclipse.emf.ecp.workspace.core,org.eclipse.emf.ecp.workspace.ui,org.eclipse.emf.emfstore.examplemodel.edit,proxy.test"/>
+<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.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.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.view.control,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.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.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.locale,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.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.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.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.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.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.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.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.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.test,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.edit,org.eclipse.emf.ecp.workspace.core,org.eclipse.emf.ecp.workspace.ui,org.eclipse.emf.emfstore.examplemodel.edit,proxy.test"/>
 <booleanAttribute key="includeOptional" value="true"/>
 <stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
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 713567e..4b036fd 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,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ViewProxy Tests
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.viewproxy.tests;singleton:=true
-Bundle-Version: 1.5.1.qualifier
+Bundle-Version: 1.6.0.qualifier
 Fragment-Host: org.eclipse.emf.ecp.view.viewproxy.model;bundle-version="[1.5.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 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)"
 Export-Package: org.eclipse.emf.ecp.view.internal.viewproxy.resolver;v
- ersion="1.5.1",org.eclipse.emf.ecp.view.viewproxy.tests;version="1.5.
- 1";x-internal:=true
+ ersion="1.6.0",org.eclipse.emf.ecp.view.viewproxy.tests;version="1.6.
+ 0";x-internal:=true
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 c0b9496..4a0daa1 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.5.1-SNAPSHOT</version>
+		<version>1.6.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.5.1-SNAPSHOT</version>
+	<version>1.6.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
@@ -24,28 +24,36 @@
 				<configuration>
 		          	<useUIHarness>false</useUIHarness>
 		          	<useUIThread>false</useUIThread>
-					<dependencies>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.emfstore.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-						<dependency>
-							<type>eclipse-feature</type>
-							<artifactId>org.eclipse.emf.ecp.viewmodel.feature</artifactId>
-							<version>0.0.0</version>
-						</dependency>
-					</dependencies>
+				</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.target.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.emfstore.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.viewmodel.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
 				</configuration>
 			</plugin>
 		</plugins>
diff --git a/tests/org.eclipse.emfforms.common.tests/.checkstyle b/tests/org.eclipse.emfforms.common.tests/.checkstyle
new file mode 100644
index 0000000..24d357f
--- /dev/null
+++ b/tests/org.eclipse.emfforms.common.tests/.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/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath b/tests/org.eclipse.emfforms.common.tests/.classpath
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath
copy to tests/org.eclipse.emfforms.common.tests/.classpath
diff --git a/tests/org.eclipse.emfforms.common.tests/.project b/tests/org.eclipse.emfforms.common.tests/.project
new file mode 100644
index 0000000..4635603
--- /dev/null
+++ b/tests/org.eclipse.emfforms.common.tests/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.common.tests</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.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.emfforms.common.tests/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
copy to tests/org.eclipse.emfforms.common.tests/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/tests/org.eclipse.emfforms.common.tests/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to tests/org.eclipse.emfforms.common.tests/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emfforms.common.tests/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.core.prefs
copy to tests/org.eclipse.emfforms.common.tests/.settings/org.eclipse.jdt.core.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/tests/org.eclipse.emfforms.common.tests/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
copy to tests/org.eclipse.emfforms.common.tests/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.emfforms.common.tests/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs
copy to tests/org.eclipse.emfforms.common.tests/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/tests/org.eclipse.emfforms.common.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to tests/org.eclipse.emfforms.common.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.common.tests/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
copy to tests/org.eclipse.emfforms.common.tests/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.emfforms.common.tests/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
copy to tests/org.eclipse.emfforms.common.tests/.settings/org.eclipse.pde.prefs
diff --git a/tests/org.eclipse.emfforms.common.tests/AllTests core.services.launch b/tests/org.eclipse.emfforms.common.tests/AllTests core.services.launch
new file mode 100644
index 0000000..ac17da0
--- /dev/null
+++ b/tests/org.eclipse.emfforms.common.tests/AllTests core.services.launch
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

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

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

+<listEntry value="/org.eclipse.emfforms.core.services.tests/src/org/eclipse/emfforms/core/services/tests/AllTests.java"/>

+</listAttribute>

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

+<listEntry value="1"/>

+</listAttribute>

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

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

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

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

+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emfforms.core.services.tests.AllTests"/>

+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emfforms.core.services.tests"/>

+</launchConfiguration>

diff --git a/tests/org.eclipse.emfforms.common.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.common.tests/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..15c1930
--- /dev/null
+++ b/tests/org.eclipse.emfforms.common.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,12 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMFForms Locale Tests
+Bundle-SymbolicName: org.eclipse.emfforms.common.tests
+Bundle-Version: 1.6.0.qualifier
+Fragment-Host: org.eclipse.emfforms.common;bundle-version="[1.6.0,2.0.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-Vendor: Eclipse Modeling Project
+Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
+ org.mockito.mockito-all;bundle-version="[1.9.5,2.0.0)"
+Export-Package: org.eclipse.emfforms.common.tests;version="1.6.0";x-internal:=true,
+ org.eclipse.emfforms.spi.common.locale;version="1.6.0"
diff --git a/tests/org.eclipse.emfforms.common.tests/build.properties b/tests/org.eclipse.emfforms.common.tests/build.properties
new file mode 100644
index 0000000..34d2e4d
--- /dev/null
+++ b/tests/org.eclipse.emfforms.common.tests/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .
diff --git a/tests/org.eclipse.emfforms.common.tests/pom.xml b/tests/org.eclipse.emfforms.common.tests/pom.xml
new file mode 100644
index 0000000..37fe9f8
--- /dev/null
+++ b/tests/org.eclipse.emfforms.common.tests/pom.xml
@@ -0,0 +1,32 @@
+<?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.6.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.6.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>false</useUIHarness>
+		          	<useUIThread>false</useUIThread>
+		          	<failIfNoTests>false</failIfNoTests>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+</project>
diff --git a/tests/org.eclipse.emfforms.common.tests/src/org/eclipse/emfforms/common/tests/AllTests.java b/tests/org.eclipse.emfforms.common.tests/src/org/eclipse/emfforms/common/tests/AllTests.java
new file mode 100644
index 0000000..7e697bb
--- /dev/null
+++ b/tests/org.eclipse.emfforms.common.tests/src/org/eclipse/emfforms/common/tests/AllTests.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.common.tests;
+
+import org.eclipse.emfforms.spi.common.locale.AbstractEMFFormsLocaleProvider_Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+/**
+ * Junit Test cases for core.locale .
+ * 
+ * @author Eugen Neufeld
+ *
+ */
+@RunWith(Suite.class)
+@SuiteClasses({ AbstractEMFFormsLocaleProvider_Test.class })
+public class AllTests {
+	// JUnit 4 Test Suite
+}
diff --git a/tests/org.eclipse.emfforms.common.tests/src/org/eclipse/emfforms/spi/common/locale/AbstractEMFFormsLocaleProvider_Test.java b/tests/org.eclipse.emfforms.common.tests/src/org/eclipse/emfforms/spi/common/locale/AbstractEMFFormsLocaleProvider_Test.java
new file mode 100644
index 0000000..698e0da
--- /dev/null
+++ b/tests/org.eclipse.emfforms.common.tests/src/org/eclipse/emfforms/spi/common/locale/AbstractEMFFormsLocaleProvider_Test.java
@@ -0,0 +1,122 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.common.locale;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+
+import java.util.Locale;
+
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Test cases for the AbstractEMFFormsLocaleProvider.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class AbstractEMFFormsLocaleProvider_Test {
+
+	private AbstractEMFFormsLocaleProvider provider;
+
+	private static class MockAbstractEMFFormsLocaleProvider extends AbstractEMFFormsLocaleProvider {
+
+		/**
+		 * {@inheritDoc}
+		 *
+		 * @see org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleProvider#getLocale()
+		 */
+		@Override
+		public Locale getLocale() {
+			return Locale.ENGLISH;
+		}
+
+	}
+
+	@Before
+	public void setup() {
+		provider = new MockAbstractEMFFormsLocaleProvider();
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.spi.common.locale.AbstractEMFFormsLocaleProvider#addEMFFormsLocaleChangeListener(org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleChangeListener)}
+	 * .
+	 */
+	@Test
+	public void testAddEMFFormsLocaleChangeListener() {
+		final EMFFormsLocaleChangeListener listener = mock(EMFFormsLocaleChangeListener.class);
+		provider.addEMFFormsLocaleChangeListener(listener);
+		provider.notifyListeners();
+		verify(listener).notifyLocaleChange();
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.spi.common.locale.AbstractEMFFormsLocaleProvider#addEMFFormsLocaleChangeListener(org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleChangeListener)}
+	 * .
+	 */
+	@Test
+	public void testAddEMFFormsLocaleChangeListenerTwice() {
+		final EMFFormsLocaleChangeListener listener = mock(EMFFormsLocaleChangeListener.class);
+		provider.addEMFFormsLocaleChangeListener(listener);
+		provider.addEMFFormsLocaleChangeListener(listener);
+		provider.notifyListeners();
+		verify(listener).notifyLocaleChange();
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.spi.common.locale.AbstractEMFFormsLocaleProvider#addEMFFormsLocaleChangeListener(org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleChangeListener)}
+	 * .
+	 */
+	@Test
+	public void testAddEMFFormsLocaleChangeListenerDifferent() {
+		final EMFFormsLocaleChangeListener listener1 = mock(EMFFormsLocaleChangeListener.class);
+		provider.addEMFFormsLocaleChangeListener(listener1);
+		final EMFFormsLocaleChangeListener listener2 = mock(EMFFormsLocaleChangeListener.class);
+		provider.addEMFFormsLocaleChangeListener(listener2);
+		provider.notifyListeners();
+		verify(listener1).notifyLocaleChange();
+		verify(listener2).notifyLocaleChange();
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.spi.common.locale.AbstractEMFFormsLocaleProvider#removeEMFFormsLocaleChangeListener(org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleChangeListener)}
+	 * .
+	 */
+	@Test
+	public void testRemoveEMFFormsLocaleChangeListener() {
+		final EMFFormsLocaleChangeListener listener = mock(EMFFormsLocaleChangeListener.class);
+		provider.addEMFFormsLocaleChangeListener(listener);
+		provider.removeEMFFormsLocaleChangeListener(listener);
+		provider.notifyListeners();
+		verify(listener, never()).notifyLocaleChange();
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.spi.common.locale.AbstractEMFFormsLocaleProvider#removeEMFFormsLocaleChangeListener(org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleChangeListener)}
+	 * .
+	 */
+	@Test
+	public void testRemoveEMFFormsLocaleChangeListenerNotInList() {
+		final EMFFormsLocaleChangeListener listener = mock(EMFFormsLocaleChangeListener.class);
+		provider.removeEMFFormsLocaleChangeListener(listener);
+		provider.notifyListeners();
+		verify(listener, never()).notifyLocaleChange();
+	}
+
+}
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/.checkstyle b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/.checkstyle
new file mode 100644
index 0000000..32e02a4
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/.checkstyle
@@ -0,0 +1,13 @@
+<?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="c" location="esmCheckstyleTest.xml" type="project" description="">
+    <additional-data name="protect-config-file" value="false"/>
+  </local-check-config>
+  <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.core.services.databinding.featurepath.tests/.classpath b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/.classpath
new file mode 100644
index 0000000..8a8f166
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/.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/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/.gitignore b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/.project b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/.project
new file mode 100644
index 0000000..5effae4
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>org.eclipse.emfforms.core.services.databinding.featurepath.tests</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.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/.settings/org.eclipse.core.runtime.prefs
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..1a6b22b
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/.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.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/.settings/org.eclipse.pde.prefs
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/All Integration Tests for core.services.databinding.featurepath.launch b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/All Integration Tests for core.services.databinding.featurepath.launch
new file mode 100644
index 0000000..3cc1a39
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/All Integration Tests for core.services.databinding.featurepath.launch
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

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

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

+<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.emfforms.core.services.databinding.featurepath.tests/src/org/eclipse/emfforms/core/services/databinding/featurepath/tests/AllIntegrationTests.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.core.services.databinding.featurepath.tests.AllIntegrationTests"/>

+<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.core.services.databinding.featurepath.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.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.xml@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.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@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@-1:true,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.view.model@default:default,org.eclipse.emfforms.common@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.databinding@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.core.services.databinding.featurepath.tests/All Tests for core.services.databinding.featurepath.launch b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/All Tests for core.services.databinding.featurepath.launch
new file mode 100644
index 0000000..c7b7d2a
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/All Tests for core.services.databinding.featurepath.launch
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

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

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

+<listEntry value="/org.eclipse.emfforms.core.services.databinding.featurepath.tests/src/org/eclipse/emfforms/core/services/databinding/featurepath/tests/AllTests.java"/>

+</listAttribute>

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

+<listEntry value="1"/>

+</listAttribute>

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

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

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

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

+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emfforms.core.services.databinding.featurepath.tests.AllTests"/>

+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emfforms.core.services.databinding.featurepath.tests"/>

+</launchConfiguration>

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
new file mode 100644
index 0000000..dc081f7
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,19 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Databinding Services Featurepath Tests
+Bundle-SymbolicName: org.eclipse.emfforms.core.services.databinding.featurepath.tests;singleton:=true
+Bundle-Version: 1.6.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: Eclipse Modeling Project
+Fragment-Host: org.eclipse.emfforms.core.services.databinding.featurepath;bundle-version="1.5.0"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: org.eclipse.emfforms.core.services.databinding.feature
+ path.tests;version="1.6.0";x-internal:=true,org.eclipse.emfforms.inte
+ rnal.core.services.databinding.featurepath;version="1.6.0";x-internal
+ :=true
+Bundle-ActivationPolicy: lazy
+Import-Package: org.osgi.framework;version="[1.1.0,2.0.0)"
+Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
+ org.mockito.mockito-all;bundle-version="[1.9.5,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.5.0,2.0.0)"
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/build.properties b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/build.properties
new file mode 100644
index 0000000..d63af81
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/build.properties
@@ -0,0 +1,7 @@
+#

+

+bin.includes = .,\

+               META-INF/

+jars.compile.order = .

+source.. = src/

+output.. = bin/

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
new file mode 100644
index 0000000..def9b33
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/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.6.0-SNAPSHOT</version>
+		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
+	</parent>
+	<artifactId>org.eclipse.emfforms.core.services.databinding.featurepath.tests</artifactId>
+	<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>p2-installable-unit</type>
+								<id>org.eclipse.equinox.ds</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+	<groupId>org.eclipse.emf.ecp</groupId>
+	<version>1.6.0-SNAPSHOT</version>
+</project>
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/src/org/eclipse/emfforms/core/services/databinding/featurepath/tests/AllIntegrationTests.java b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/src/org/eclipse/emfforms/core/services/databinding/featurepath/tests/AllIntegrationTests.java
new file mode 100644
index 0000000..89e1c2a
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/src/org/eclipse/emfforms/core/services/databinding/featurepath/tests/AllIntegrationTests.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.core.services.databinding.featurepath.tests;
+
+import org.eclipse.emfforms.internal.core.services.databinding.featurepath.FeaturePathDomainModelReferenceConverter_ITest;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+/**
+ * JUnit test suite for all integration tests for the feature path databinding services.
+ * 
+ * @author Lucas Koehler
+ *
+ */
+@RunWith(Suite.class)
+@SuiteClasses({ FeaturePathDomainModelReferenceConverter_ITest.class })
+public class AllIntegrationTests {
+
+}
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/src/org/eclipse/emfforms/core/services/databinding/featurepath/tests/AllTests.java b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/src/org/eclipse/emfforms/core/services/databinding/featurepath/tests/AllTests.java
new file mode 100644
index 0000000..8945617
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/src/org/eclipse/emfforms/core/services/databinding/featurepath/tests/AllTests.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler- initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.core.services.databinding.featurepath.tests;
+
+import org.eclipse.emfforms.internal.core.services.databinding.featurepath.FeaturePathDomainModelReferenceConverter_Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+/**
+ * JUnit test suite for feature path databinding services.
+ * 
+ * @author Lucas Koehler
+ *
+ */
+@RunWith(Suite.class)
+@SuiteClasses({ FeaturePathDomainModelReferenceConverter_Test.class })
+public class AllTests {
+
+}
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/src/org/eclipse/emfforms/internal/core/services/databinding/featurepath/FeaturePathDomainModelReferenceConverter_ITest.java b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/src/org/eclipse/emfforms/internal/core/services/databinding/featurepath/FeaturePathDomainModelReferenceConverter_ITest.java
new file mode 100644
index 0000000..4e6ee0e
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/src/org/eclipse/emfforms/internal/core/services/databinding/featurepath/FeaturePathDomainModelReferenceConverter_ITest.java
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.databinding.featurepath;
+
+import static org.junit.Assert.assertTrue;
+
+import org.eclipse.emfforms.core.services.databinding.featurepath.FeaturePathDomainModelReferenceConverter;
+import org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * JUnit integration test for the {@link FeaturePathDomainModelReferenceConverter}.
+ * 
+ * @author Lucas Koehler
+ *
+ */
+public class FeaturePathDomainModelReferenceConverter_ITest {
+
+	private static BundleContext bundleContext;
+	private DomainModelReferenceConverter service;
+	private ServiceReference<DomainModelReferenceConverter> serviceReference;
+
+	@BeforeClass
+	public static void setUpBeforeClass() {
+		bundleContext = FrameworkUtil.getBundle(FeaturePathDomainModelReferenceConverter_ITest.class)
+			.getBundleContext();
+	}
+
+	@Before
+	public void setUp() {
+		serviceReference = bundleContext
+			.getServiceReference(DomainModelReferenceConverter.class);
+		service = bundleContext.getService(serviceReference);
+	}
+
+	@After
+	public void tearDown() {
+		bundleContext.ungetService(serviceReference);
+	}
+
+	@Test
+	public void testServiceType() {
+		assertTrue(FeaturePathDomainModelReferenceConverter.class.isInstance(service));
+
+	}
+
+}
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/src/org/eclipse/emfforms/internal/core/services/databinding/featurepath/FeaturePathDomainModelReferenceConverter_Test.java b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/src/org/eclipse/emfforms/internal/core/services/databinding/featurepath/FeaturePathDomainModelReferenceConverter_Test.java
new file mode 100644
index 0000000..29ab479
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/src/org/eclipse/emfforms/internal/core/services/databinding/featurepath/FeaturePathDomainModelReferenceConverter_Test.java
@@ -0,0 +1,321 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.databinding.featurepath;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+
+import java.util.LinkedList;
+
+import org.eclipse.core.databinding.property.list.IListProperty;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.databinding.IEMFListProperty;
+import org.eclipse.emf.databinding.IEMFValueProperty;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+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.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emfforms.core.services.databinding.featurepath.FeaturePathDomainModelReferenceConverter;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * JUnit test for {@link FeaturePathDomainModelReferenceConverter}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class FeaturePathDomainModelReferenceConverter_Test {
+
+	private FeaturePathDomainModelReferenceConverter converter;
+	private static EObject validEObject;
+
+	@BeforeClass
+	public static void setupClass() {
+		validEObject = createValidEObject();
+	}
+
+	private static EObject createValidEObject() {
+		final ResourceSet rs = new ResourceSetImpl();
+		final AdapterFactoryEditingDomain domain = new AdapterFactoryEditingDomain(
+			new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE),
+			new BasicCommandStack(), rs);
+		rs.eAdapters().add(new AdapterFactoryEditingDomain.EditingDomainProvider(domain));
+		final Resource resource = rs.createResource(URI.createURI("VIRTAUAL_URI")); //$NON-NLS-1$
+		final EObject domainObject = EcoreFactory.eINSTANCE.createEObject();
+		if (resource != null) {
+			resource.getContents().add(domainObject);
+		}
+		return domainObject;
+	}
+
+	/**
+	 * Set up that is executed before every test.
+	 */
+	@Before
+	public void setUp() {
+		converter = new FeaturePathDomainModelReferenceConverter();
+
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.core.services.databinding.featurepath.FeaturePathDomainModelReferenceConverter#isApplicable(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference)}
+	 * .
+	 */
+	@Test
+	public void testIsApplicable() {
+		// The FeaturePathDomainModelReferenceConverter is the standard converter for VFeaturePathDomainModelReference
+		// with a low priority.
+		assertEquals(0.0, converter.isApplicable(mock(VFeaturePathDomainModelReference.class)), 0d);
+
+		// The FeaturePathDomainModelReferenceConverter is not applicable other references than
+		// VFeaturePathDomainModelReferences
+		assertEquals(DomainModelReferenceConverter.NOT_APPLICABLE,
+			converter.isApplicable(mock(VDomainModelReference.class)), 0d);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.core.services.databinding.featurepath.FeaturePathDomainModelReferenceConverter#isApplicable(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference)}
+	 * .
+	 */
+	@Test(expected = IllegalArgumentException.class)
+	public void testIsApplicableNull() {
+		converter.isApplicable(null);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.core.services.databinding.featurepath.FeaturePathDomainModelReferenceConverter#convertToValueProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test
+	public void testConvertToValueProperty() throws DatabindingFailedException {
+		final VFeaturePathDomainModelReference pathReference = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		// create reference path to the attribute
+		final LinkedList<EReference> referencePath = new LinkedList<EReference>();
+		referencePath.add(TestPackage.eINSTANCE.getA_B());
+		referencePath.add(TestPackage.eINSTANCE.getB_C());
+		referencePath.add(TestPackage.eINSTANCE.getC_D());
+
+		final EStructuralFeature feature = TestPackage.eINSTANCE.getD_X();
+
+		pathReference.getDomainModelEReferencePath().addAll(referencePath);
+		pathReference.setDomainModelEFeature(feature);
+
+		final IValueProperty valueProperty = converter.convertToValueProperty(pathReference, validEObject);
+
+		// The converter should return an IEMFValueProperty
+		assertTrue(valueProperty instanceof IEMFValueProperty);
+
+		final IEMFValueProperty emfProperty = (IEMFValueProperty) valueProperty;
+
+		// Check EStructuralFeature of the property.
+		assertEquals(feature, emfProperty.getStructuralFeature());
+
+		// Check correct path.
+		final String expected = "A.b<B> => B.c<C> => C.d<D> => D.x<EString>"; //$NON-NLS-1$
+		assertEquals(expected, emfProperty.toString());
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.core.services.databinding.featurepath.FeaturePathDomainModelReferenceConverter#convertToValueProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test
+	public void testConvertToValuePropertyNoReferencePath() throws DatabindingFailedException {
+		final VFeaturePathDomainModelReference pathReference = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+
+		final EStructuralFeature feature = TestPackage.eINSTANCE.getD_X();
+		pathReference.setDomainModelEFeature(feature);
+
+		final IValueProperty valueProperty = converter.convertToValueProperty(pathReference, validEObject);
+
+		// The converter should return an IEMFValueProperty
+		assertTrue(valueProperty instanceof IEMFValueProperty);
+
+		final IEMFValueProperty emfProperty = (IEMFValueProperty) valueProperty;
+
+		// Check EStructuralFeature of the property.
+		assertEquals(feature, emfProperty.getStructuralFeature());
+
+		// Check correct path.
+		final String expected = "D.x<EString>"; //$NON-NLS-1$
+		assertEquals(expected, emfProperty.toString());
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.core.services.databinding.featurepath.FeaturePathDomainModelReferenceConverter#convertToValueProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test(expected = DatabindingFailedException.class)
+	public void testConvertToValuePropertyNoFeature() throws DatabindingFailedException {
+		final VFeaturePathDomainModelReference pathReference = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		converter.convertToValueProperty(pathReference, validEObject);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.core.services.databinding.featurepath.FeaturePathDomainModelReferenceConverter#convertToValueProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test(expected = IllegalArgumentException.class)
+	public void testConvertToValuePropertyNull() throws DatabindingFailedException {
+		converter.convertToValueProperty(null, validEObject);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.core.services.databinding.featurepath.FeaturePathDomainModelReferenceConverter#convertToValueProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test(expected = IllegalArgumentException.class)
+	public void testConvertToValuePropertyWrongReferenceType() throws DatabindingFailedException {
+		converter.convertToValueProperty(mock(VDomainModelReference.class), validEObject);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.core.services.databinding.featurepath.FeaturePathDomainModelReferenceConverter#convertToListProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test
+	public void testConvertToListProperty() throws DatabindingFailedException {
+		final VFeaturePathDomainModelReference pathReference = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		// create reference path to the list
+		final LinkedList<EReference> referencePath = new LinkedList<EReference>();
+		referencePath.add(TestPackage.eINSTANCE.getA_B());
+		referencePath.add(TestPackage.eINSTANCE.getB_C());
+		referencePath.add(TestPackage.eINSTANCE.getC_D());
+
+		final EStructuralFeature feature = TestPackage.eINSTANCE.getD_YList();
+
+		pathReference.getDomainModelEReferencePath().addAll(referencePath);
+		pathReference.setDomainModelEFeature(feature);
+
+		final IListProperty listProperty = converter.convertToListProperty(pathReference, validEObject);
+
+		// The converter should return an IEMFListProperty
+		assertTrue(listProperty instanceof IEMFListProperty);
+
+		final IEMFListProperty emfProperty = (IEMFListProperty) listProperty;
+
+		// Check EStructuralFeature of the property.
+		assertEquals(feature, emfProperty.getStructuralFeature());
+
+		// Check correct path.
+		final String expected = "A.b<B> => B.c<C> => C.d<D> => D.yList[]<EInt>"; //$NON-NLS-1$
+		assertEquals(expected, emfProperty.toString());
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.core.services.databinding.featurepath.FeaturePathDomainModelReferenceConverter#convertToListProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test(expected = DatabindingFailedException.class)
+	public void testConvertToListPropertyNoFeature() throws DatabindingFailedException {
+		final VFeaturePathDomainModelReference pathReference = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		converter.convertToListProperty(pathReference, validEObject);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.core.services.databinding.featurepath.FeaturePathDomainModelReferenceConverter#convertToListProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test
+	public void testConvertToListPropertyNoReferencePath() throws DatabindingFailedException {
+		final VFeaturePathDomainModelReference pathReference = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+
+		final EStructuralFeature feature = TestPackage.eINSTANCE.getD_YList();
+		pathReference.setDomainModelEFeature(feature);
+
+		final IListProperty listProperty = converter.convertToListProperty(pathReference, validEObject);
+
+		// The converter should return an IEMFListProperty
+		assertTrue(listProperty instanceof IEMFListProperty);
+
+		final IEMFListProperty emfProperty = (IEMFListProperty) listProperty;
+
+		// Check EStructuralFeature of the property.
+		assertEquals(feature, emfProperty.getStructuralFeature());
+
+		// Check correct path.
+		final String expected = "D.yList[]<EInt>"; //$NON-NLS-1$
+		assertEquals(expected, emfProperty.toString());
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.core.services.databinding.featurepath.FeaturePathDomainModelReferenceConverter#convertToListProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test(expected = IllegalArgumentException.class)
+	public void testConvertToListPropertyNull() throws DatabindingFailedException {
+		converter.convertToListProperty(null, validEObject);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.core.services.databinding.featurepath.FeaturePathDomainModelReferenceConverter#convertToListProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test(expected = IllegalArgumentException.class)
+	public void testConvertToListPropertyWrongReferenceType() throws DatabindingFailedException {
+		converter.convertToListProperty(mock(VDomainModelReference.class), validEObject);
+	}
+}
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.index.tests/.checkstyle b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/.checkstyle
new file mode 100644
index 0000000..32e02a4
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/.checkstyle
@@ -0,0 +1,13 @@
+<?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="c" location="esmCheckstyleTest.xml" type="project" description="">
+    <additional-data name="protect-config-file" value="false"/>
+  </local-check-config>
+  <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.core.services.databinding.index.tests/.classpath b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/.classpath
new file mode 100644
index 0000000..8a8f166
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/.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/tests/org.eclipse.emfforms.core.services.databinding.index.tests/.project b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/.project
new file mode 100644
index 0000000..ed9420a
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>org.eclipse.emfforms.core.services.databinding.index.tests</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.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.index.tests/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.index.tests/.settings/org.eclipse.core.runtime.prefs
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.index.tests/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..1a6b22b
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/.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.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.index.tests/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.index.tests/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.index.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.index.tests/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.index.tests/.settings/org.eclipse.pde.prefs
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.index.tests/All Integration Tests for core.services.databinding.index.launch b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/All Integration Tests for core.services.databinding.index.launch
new file mode 100644
index 0000000..3f69a59
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/All Integration Tests for core.services.databinding.index.launch
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

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

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

+<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.emfforms.core.services.databinding.index.tests/src/org/eclipse/emfforms/core/services/databinding/index/tests/AllIntegrationTests.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.core.services.databinding.index.tests.AllIntegrationTests"/>

+<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.core.services.databinding.index.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.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.xml@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.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@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@-1:true,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.view.indexdmr.model@default:default,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emfforms.common@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@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.core.services.databinding.index.tests/All Tests for core.services.databinding.index.launch b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/All Tests for core.services.databinding.index.launch
new file mode 100644
index 0000000..1c73955
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/All Tests for core.services.databinding.index.launch
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

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

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

+<listEntry value="/org.eclipse.emfforms.core.services.databinding.index.tests/src/org/eclipse/emfforms/core/services/databinding/index/tests/AllTests.java"/>

+</listAttribute>

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

+<listEntry value="1"/>

+</listAttribute>

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

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

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

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

+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emfforms.core.services.databinding.index.tests.AllTests"/>

+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emfforms.core.services.databinding.index.tests"/>

+</launchConfiguration>

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
new file mode 100644
index 0000000..6b63317
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,14 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Index DMR Converter Tests
+Bundle-SymbolicName: org.eclipse.emfforms.core.services.databinding.index.tests
+Bundle-Version: 1.6.0.qualifier
+Fragment-Host: org.eclipse.emfforms.core.services.databinding.index;bundle-version="[1.6.0,2.0.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
+ org.mockito.mockito-all;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.6.0,2.0.0)"
+Import-Package: org.osgi.framework;version="[1.3.0,2.0.0]"
+Export-Package: org.eclipse.emfforms.core.services.databinding.index.tests;version="1.6.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.databinding.index;version="1.6.0";x-internal:=true
+Bundle-Vendor: Eclipse Modeling Project
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.index.tests/build.properties b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/build.properties
new file mode 100644
index 0000000..41eb6ad
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/build.properties
@@ -0,0 +1,4 @@
+source.. = src/

+output.. = bin/

+bin.includes = META-INF/,\

+               .

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
new file mode 100644
index 0000000..e7fa203
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/pom.xml
@@ -0,0 +1,31 @@
+<?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.6.0-SNAPSHOT</version>
+		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
+	</parent>
+	<artifactId>org.eclipse.emfforms.core.services.databinding.index.tests</artifactId>
+	<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>
+		</plugins>
+	</build>
+	<groupId>org.eclipse.emfforms</groupId>
+	<version>1.6.0-SNAPSHOT</version>
+</project>
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.index.tests/src/org/eclipse/emfforms/core/services/databinding/index/tests/AllIntegrationTests.java b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/src/org/eclipse/emfforms/core/services/databinding/index/tests/AllIntegrationTests.java
new file mode 100644
index 0000000..ebb3c34
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/src/org/eclipse/emfforms/core/services/databinding/index/tests/AllIntegrationTests.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.core.services.databinding.index.tests;
+
+import org.eclipse.emfforms.internal.core.services.databinding.index.IndexDomainModelReferenceConverter_ITest;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+/**
+ * All integration tests for core.services.databinding.index.
+ * 
+ * @author Lucas Koehler
+ *
+ */
+@RunWith(Suite.class)
+@SuiteClasses({ IndexDomainModelReferenceConverter_ITest.class })
+public class AllIntegrationTests {
+
+}
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.index.tests/src/org/eclipse/emfforms/core/services/databinding/index/tests/AllTests.java b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/src/org/eclipse/emfforms/core/services/databinding/index/tests/AllTests.java
new file mode 100644
index 0000000..451a1c0
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/src/org/eclipse/emfforms/core/services/databinding/index/tests/AllTests.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.core.services.databinding.index.tests;
+
+import org.eclipse.emfforms.internal.core.services.databinding.index.EMFIndexedValueProperty_Test;
+import org.eclipse.emfforms.internal.core.services.databinding.index.IndexDomainModelReferenceConverter_Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+/**
+ * All JUnit tests for core.services.databinding.index
+ *
+ * @author Lucas Koehler
+ *
+ */
+@RunWith(Suite.class)
+@SuiteClasses({ IndexDomainModelReferenceConverter_Test.class, EMFIndexedValueProperty_Test.class })
+public class AllTests {
+
+}
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.index.tests/src/org/eclipse/emfforms/internal/core/services/databinding/index/EMFIndexedValueProperty_Test.java b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/src/org/eclipse/emfforms/internal/core/services/databinding/index/EMFIndexedValueProperty_Test.java
new file mode 100644
index 0000000..2c02a0a
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/src/org/eclipse/emfforms/internal/core/services/databinding/index/EMFIndexedValueProperty_Test.java
@@ -0,0 +1,131 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.databinding.index;
+
+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 org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.B;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.C;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestFactory;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage;
+import org.junit.Test;
+
+/**
+ * JUnit test cases for {@link EMFIndexedValueProperty}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class EMFIndexedValueProperty_Test {
+	/**
+	 * Test method for
+	 * {@link EMFIndexedValueProperty#EMFIndexedValueProperty(org.eclipse.emf.edit.domain.EditingDomain,int, org.eclipse.emf.ecore.EStructuralFeature)}
+	 * .
+	 */
+	@Test(expected = IllegalArgumentException.class)
+	public void testEMFIndexedValuePropertyNegativeIndex() {
+		new EMFIndexedValueProperty(null, -1, TestPackage.eINSTANCE.getB_CList());
+	}
+
+	/**
+	 * Test method for {@link EMFIndexedValueProperty#doGetValue(java.lang.Object)} .
+	 */
+	@Test
+	public void testDoGetValueNull() {
+		final EMFIndexedValueProperty indexedValueProperty = new EMFIndexedValueProperty(null, 0,
+			TestPackage.eINSTANCE.getB_CList());
+		final B b = TestFactory.eINSTANCE.createB();
+		assertNull(indexedValueProperty.doGetValue(b));
+	}
+
+	/**
+	 * Test method for {@link EMFIndexedValueProperty#doGetValue(java.lang.Object)} .
+	 */
+	@Test
+	public void testDoGetValue() {
+		final EMFIndexedValueProperty indexedValueProperty = new EMFIndexedValueProperty(null, 1,
+			TestPackage.eINSTANCE.getB_CList());
+		final B b = TestFactory.eINSTANCE.createB();
+		final C c1 = TestFactory.eINSTANCE.createC();
+		final C c2 = TestFactory.eINSTANCE.createC();
+		b.getCList().add(c1);
+		b.getCList().add(c2);
+
+		assertEquals(c2, indexedValueProperty.doGetValue(b));
+	}
+
+	/**
+	 * Test method for {@link EMFIndexedValueProperty#doSetValue(java.lang.Object, java.lang.Object)} .
+	 */
+	@Test
+	public void testDoSetValueObjectReplace() {
+		final AdapterFactoryEditingDomain domain = new AdapterFactoryEditingDomain(
+			new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE),
+			new BasicCommandStack());
+		final EMFIndexedValueProperty indexedValueProperty = new EMFIndexedValueProperty(domain, 1,
+			TestPackage.eINSTANCE.getB_CList());
+		final B b = TestFactory.eINSTANCE.createB();
+		final C c1 = TestFactory.eINSTANCE.createC();
+		final C c2 = TestFactory.eINSTANCE.createC();
+		final C c3 = TestFactory.eINSTANCE.createC();
+		b.getCList().add(c1);
+		b.getCList().add(c2);
+		indexedValueProperty.doSetValue(b, c3);
+
+		assertEquals(indexedValueProperty.doGetValue(b), c3);
+	}
+
+	/**
+	 * Test method for {@link EMFIndexedValueProperty#doSetValue(java.lang.Object, java.lang.Object)} .
+	 */
+	@Test
+	public void testDoSetValueObjectAdd() {
+		final AdapterFactoryEditingDomain domain = new AdapterFactoryEditingDomain(
+			new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE),
+			new BasicCommandStack());
+		final EMFIndexedValueProperty indexedValueProperty = new EMFIndexedValueProperty(domain, 1,
+			TestPackage.eINSTANCE.getB_CList());
+		final B b = TestFactory.eINSTANCE.createB();
+		final C c1 = TestFactory.eINSTANCE.createC();
+		final C c2 = TestFactory.eINSTANCE.createC();
+		b.getCList().add(c1);
+		indexedValueProperty.doSetValue(b, c2);
+
+		assertEquals(c2, indexedValueProperty.doGetValue(b));
+	}
+
+	/**
+	 * Test method for {@link EMFIndexedValueProperty#doSetValue(java.lang.Object, java.lang.Object)} .
+	 */
+	@Test
+	public void testDoSetValueObjectIndexTooBig() {
+		final AdapterFactoryEditingDomain domain = new AdapterFactoryEditingDomain(
+			new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE),
+			new BasicCommandStack());
+		final EMFIndexedValueProperty indexedValueProperty = new EMFIndexedValueProperty(domain, 5,
+			TestPackage.eINSTANCE.getB_CList());
+		final B b = TestFactory.eINSTANCE.createB();
+		final C c1 = TestFactory.eINSTANCE.createC();
+		final C c2 = TestFactory.eINSTANCE.createC();
+		b.getCList().add(c1);
+		indexedValueProperty.doSetValue(b, c2);
+		assertEquals(1, b.getCList().size());
+		assertTrue(b.getCList().contains(c1));
+		assertFalse(b.getCList().contains(c2));
+	}
+}
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.index.tests/src/org/eclipse/emfforms/internal/core/services/databinding/index/IndexDomainModelReferenceConverter_ITest.java b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/src/org/eclipse/emfforms/internal/core/services/databinding/index/IndexDomainModelReferenceConverter_ITest.java
new file mode 100644
index 0000000..24aba13
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/src/org/eclipse/emfforms/internal/core/services/databinding/index/IndexDomainModelReferenceConverter_ITest.java
@@ -0,0 +1,95 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.databinding.index;
+
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.same;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.util.Dictionary;
+import java.util.Hashtable;
+
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.emf.ecore.EObject;
+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.core.services.databinding.testmodel.test.model.TestPackage;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * JUnit integration test for the {@link IndexDomainModelReferenceConverter}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class IndexDomainModelReferenceConverter_ITest {
+
+	private static BundleContext bundleContext;
+	private DomainModelReferenceConverter service;
+	private ServiceReference<DomainModelReferenceConverter> serviceReference;
+	private EMFFormsDatabinding emfFormsDatabinding;
+
+	@BeforeClass
+	public static void setUpBeforeClass() {
+		bundleContext = FrameworkUtil.getBundle(IndexDomainModelReferenceConverter_ITest.class)
+			.getBundleContext();
+	}
+
+	@Before
+	public void setUp() throws DatabindingFailedException {
+		final Dictionary<String, Object> dictionary = new Hashtable<String, Object>();
+		dictionary.put("service.ranking", 50); //$NON-NLS-1$
+		emfFormsDatabinding = mock(EMFFormsDatabinding.class);
+		when(emfFormsDatabinding.getValueProperty(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			mock(IValueProperty.class));
+		bundleContext.registerService(EMFFormsDatabinding.class, emfFormsDatabinding, dictionary);
+		serviceReference = bundleContext
+			.getServiceReference(DomainModelReferenceConverter.class);
+		service = bundleContext.getService(serviceReference);
+	}
+
+	@After
+	public void tearDown() {
+		bundleContext.ungetService(serviceReference);
+	}
+
+	@Test
+	public void testServiceType() throws DatabindingFailedException {
+		assertTrue(IndexDomainModelReferenceConverter.class.isInstance(service));
+		final IndexDomainModelReferenceConverter indexConverter = (IndexDomainModelReferenceConverter) service;
+
+		final VIndexDomainModelReference indexReference = VIndexdmrFactory.eINSTANCE.createIndexDomainModelReference();
+		indexReference.setDomainModelEFeature(TestPackage.eINSTANCE.getB_CList());
+		final VFeaturePathDomainModelReference targetReference = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		indexReference.setTargetDMR(targetReference);
+
+		indexConverter.convertToValueProperty(indexReference, mock(EObject.class));
+		verify(emfFormsDatabinding).getValueProperty(same(targetReference), any(EObject.class));
+
+	}
+}
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.index.tests/src/org/eclipse/emfforms/internal/core/services/databinding/index/IndexDomainModelReferenceConverter_Test.java b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/src/org/eclipse/emfforms/internal/core/services/databinding/index/IndexDomainModelReferenceConverter_Test.java
new file mode 100644
index 0000000..3b755ee
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/src/org/eclipse/emfforms/internal/core/services/databinding/index/IndexDomainModelReferenceConverter_Test.java
@@ -0,0 +1,358 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.databinding.index;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import org.eclipse.core.databinding.property.list.IListProperty;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.databinding.EMFProperties;
+import org.eclipse.emf.databinding.IEMFListProperty;
+import org.eclipse.emf.databinding.IEMFValueProperty;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+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.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * JUnit tests for {@link IndexDomainModelReferenceConverter}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class IndexDomainModelReferenceConverter_Test {
+
+	private IndexDomainModelReferenceConverter converter;
+	private static EObject validEObject;
+
+	@BeforeClass
+	public static void setupClass() {
+		validEObject = createValidEObject();
+	}
+
+	private static EObject createValidEObject() {
+		final ResourceSet rs = new ResourceSetImpl();
+		final AdapterFactoryEditingDomain domain = new AdapterFactoryEditingDomain(
+			new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE),
+			new BasicCommandStack(), rs);
+		rs.eAdapters().add(new AdapterFactoryEditingDomain.EditingDomainProvider(domain));
+		final Resource resource = rs.createResource(URI.createURI("VIRTAUAL_URI")); //$NON-NLS-1$
+		final EObject domainObject = EcoreFactory.eINSTANCE.createEObject();
+		if (resource != null) {
+			resource.getContents().add(domainObject);
+		}
+		return domainObject;
+	}
+
+	/**
+	 * Set up executed before every test case.
+	 */
+	@Before
+	public void setUp() {
+		converter = new IndexDomainModelReferenceConverter();
+	}
+
+	/**
+	 * @throws java.lang.Exception
+	 */
+	@After
+	public void tearDown() throws Exception {
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.index.IndexDomainModelReferenceConverter#isApplicable(VDomainModelReference)}
+	 * .
+	 */
+	@Test
+	public void testIsApplicable() {
+		assertEquals(10d, converter.isApplicable(mock(VIndexDomainModelReference.class)), 0d);
+
+		// The IndexDomainModelReferenceConverter is not applicable other references than
+		// IndexDomainModelReferences
+		assertEquals(DomainModelReferenceConverter.NOT_APPLICABLE,
+			converter.isApplicable(mock(VDomainModelReference.class)), 0d);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.index.IndexDomainModelReferenceConverter#convertToValueProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test
+	public void testConvertToValueProperty() throws DatabindingFailedException {
+		final VIndexDomainModelReference indexDMR = VIndexdmrFactory.eINSTANCE.createIndexDomainModelReference();
+		indexDMR.getDomainModelEReferencePath().add(TestPackage.eINSTANCE.getA_B());
+		indexDMR.setDomainModelEFeature(TestPackage.eINSTANCE.getB_CList());
+		indexDMR.setIndex(1);
+
+		final VFeaturePathDomainModelReference targetDMR = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		targetDMR.setDomainModelEFeature(TestPackage.eINSTANCE.getD_X());
+		targetDMR.getDomainModelEReferencePath().add(TestPackage.eINSTANCE.getC_D());
+		indexDMR.setTargetDMR(targetDMR);
+
+		IEMFValueProperty targetValueProperty = EMFProperties.value(TestPackage.eINSTANCE.getC_D());
+		targetValueProperty = targetValueProperty.value(TestPackage.eINSTANCE.getD_X());
+		final EMFFormsDatabinding emfFormsDatabinding = mock(EMFFormsDatabinding.class);
+		when(emfFormsDatabinding.getValueProperty(targetDMR, validEObject)).thenReturn(targetValueProperty);
+		converter.setEMFFormsDatabinding(emfFormsDatabinding);
+
+		final IValueProperty resultProperty = converter.convertToValueProperty(indexDMR, validEObject);
+
+		final String expected = "A.b<B> => B.cList<C> index 1 => C.d<D> => D.x<EString>"; //$NON-NLS-1$
+		assertEquals(expected, resultProperty.toString());
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.index.IndexDomainModelReferenceConverter#convertToValueProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test
+	public void testConvertToValuePropertyNoReferencePath() throws DatabindingFailedException {
+		final VIndexDomainModelReference indexDMR = VIndexdmrFactory.eINSTANCE.createIndexDomainModelReference();
+		indexDMR.setDomainModelEFeature(TestPackage.eINSTANCE.getB_CList());
+		indexDMR.setIndex(1);
+
+		final VFeaturePathDomainModelReference targetDMR = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		targetDMR.setDomainModelEFeature(TestPackage.eINSTANCE.getD_X());
+		targetDMR.getDomainModelEReferencePath().add(TestPackage.eINSTANCE.getC_D());
+		indexDMR.setTargetDMR(targetDMR);
+
+		IEMFValueProperty targetValueProperty = EMFProperties.value(TestPackage.eINSTANCE.getC_D());
+		targetValueProperty = targetValueProperty.value(TestPackage.eINSTANCE.getD_X());
+		final EMFFormsDatabinding emfFormsDatabinding = mock(EMFFormsDatabinding.class);
+		when(emfFormsDatabinding.getValueProperty(targetDMR, validEObject)).thenReturn(targetValueProperty);
+		converter.setEMFFormsDatabinding(emfFormsDatabinding);
+
+		final IValueProperty resultProperty = converter.convertToValueProperty(indexDMR, validEObject);
+
+		final String expected = "B.cList<C> index 1 => C.d<D> => D.x<EString>"; //$NON-NLS-1$
+		assertEquals(expected, resultProperty.toString());
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.index.IndexDomainModelReferenceConverter#convertToValueProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test(expected = IllegalListTypeException.class)
+	public void testConvertToValuePropertyWrongListType() throws DatabindingFailedException {
+		final VIndexDomainModelReference indexDMR = VIndexdmrFactory.eINSTANCE.createIndexDomainModelReference();
+		indexDMR.setDomainModelEFeature(TestPackage.eINSTANCE.getD_YList());
+		indexDMR.setIndex(1);
+
+		final VFeaturePathDomainModelReference targetDMR = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		targetDMR.setDomainModelEFeature(TestPackage.eINSTANCE.getD_X());
+		indexDMR.setTargetDMR(targetDMR);
+
+		final IEMFValueProperty targetValueProperty = EMFProperties.value(TestPackage.eINSTANCE.getD_X());
+		final EMFFormsDatabinding emfFormsDatabinding = mock(EMFFormsDatabinding.class);
+		when(emfFormsDatabinding.getValueProperty(targetDMR, validEObject)).thenReturn(targetValueProperty);
+		converter.setEMFFormsDatabinding(emfFormsDatabinding);
+
+		converter.convertToValueProperty(indexDMR, validEObject);
+
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.index.IndexDomainModelReferenceConverter#convertToValueProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test(expected = DatabindingFailedException.class)
+	public void testConvertToValuePropertyNoFeature() throws DatabindingFailedException {
+		final VIndexDomainModelReference indexReference = VIndexdmrFactory.eINSTANCE.createIndexDomainModelReference();
+		converter.convertToValueProperty(indexReference, validEObject);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.index.IndexDomainModelReferenceConverter#convertToValueProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed (expected for this test case)
+	 */
+	@Test(expected = IllegalArgumentException.class)
+	public void testConvertToValuePropertyNull() throws DatabindingFailedException {
+		converter.convertToValueProperty(null, validEObject);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.index.IndexDomainModelReferenceConverter#convertToValueProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test(expected = IllegalArgumentException.class)
+	public void testConvertToValuePropertyWrongReferenceType() throws DatabindingFailedException {
+		converter.convertToValueProperty(mock(VDomainModelReference.class), validEObject);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.index.IndexDomainModelReferenceConverter#convertToListProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test
+	public void testConvertToListProperty() throws DatabindingFailedException {
+		final VIndexDomainModelReference indexDMR = VIndexdmrFactory.eINSTANCE.createIndexDomainModelReference();
+		indexDMR.getDomainModelEReferencePath().add(TestPackage.eINSTANCE.getA_B());
+		indexDMR.setDomainModelEFeature(TestPackage.eINSTANCE.getB_CList());
+		indexDMR.setIndex(1);
+
+		final VFeaturePathDomainModelReference targetDMR = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		targetDMR.setDomainModelEFeature(TestPackage.eINSTANCE.getD_YList());
+		targetDMR.getDomainModelEReferencePath().add(TestPackage.eINSTANCE.getC_D());
+		indexDMR.setTargetDMR(targetDMR);
+
+		final IEMFValueProperty targetValueProperty = EMFProperties.value(TestPackage.eINSTANCE.getC_D());
+		final IEMFListProperty targetListProperty = targetValueProperty.list(TestPackage.eINSTANCE.getD_YList());
+		final EMFFormsDatabinding emfFormsDatabinding = mock(EMFFormsDatabinding.class);
+		when(emfFormsDatabinding.getListProperty(targetDMR, validEObject)).thenReturn(targetListProperty);
+		converter.setEMFFormsDatabinding(emfFormsDatabinding);
+
+		final IListProperty resultProperty = converter.convertToListProperty(indexDMR, validEObject);
+
+		final String expected = "A.b<B> => B.cList<C> index 1 => C.d<D> => D.yList[]<EInt>"; //$NON-NLS-1$
+		assertEquals(expected, resultProperty.toString());
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.index.IndexDomainModelReferenceConverter#convertToListProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test
+	public void testConvertToListPropertyNoReferencePath() throws DatabindingFailedException {
+		final VIndexDomainModelReference indexDMR = VIndexdmrFactory.eINSTANCE.createIndexDomainModelReference();
+		indexDMR.setDomainModelEFeature(TestPackage.eINSTANCE.getB_CList());
+		indexDMR.setIndex(1);
+
+		final VFeaturePathDomainModelReference targetDMR = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		targetDMR.setDomainModelEFeature(TestPackage.eINSTANCE.getD_YList());
+		targetDMR.getDomainModelEReferencePath().add(TestPackage.eINSTANCE.getC_D());
+		indexDMR.setTargetDMR(targetDMR);
+
+		final IEMFValueProperty targetValueProperty = EMFProperties.value(TestPackage.eINSTANCE.getC_D());
+		final IEMFListProperty targetListProperty = targetValueProperty.list(TestPackage.eINSTANCE.getD_YList());
+		final EMFFormsDatabinding emfFormsDatabinding = mock(EMFFormsDatabinding.class);
+		when(emfFormsDatabinding.getListProperty(targetDMR, validEObject)).thenReturn(targetListProperty);
+		converter.setEMFFormsDatabinding(emfFormsDatabinding);
+
+		final IListProperty resultProperty = converter.convertToListProperty(indexDMR, validEObject);
+
+		final String expected = "B.cList<C> index 1 => C.d<D> => D.yList[]<EInt>"; //$NON-NLS-1$
+		assertEquals(expected, resultProperty.toString());
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.index.IndexDomainModelReferenceConverter#convertToListProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test(expected = IllegalListTypeException.class)
+	public void testConvertToListPropertyWrongListType() throws DatabindingFailedException {
+		final VIndexDomainModelReference indexDMR = VIndexdmrFactory.eINSTANCE.createIndexDomainModelReference();
+		indexDMR.setDomainModelEFeature(TestPackage.eINSTANCE.getD_YList());
+		indexDMR.setIndex(1);
+
+		final VFeaturePathDomainModelReference targetDMR = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		targetDMR.setDomainModelEFeature(TestPackage.eINSTANCE.getD_YList());
+		indexDMR.setTargetDMR(targetDMR);
+
+		final IEMFListProperty targetListProperty = EMFProperties.list(TestPackage.eINSTANCE.getD_YList());
+		final EMFFormsDatabinding emfFormsDatabinding = mock(EMFFormsDatabinding.class);
+		when(emfFormsDatabinding.getListProperty(targetDMR, validEObject)).thenReturn(targetListProperty);
+		converter.setEMFFormsDatabinding(emfFormsDatabinding);
+
+		converter.convertToListProperty(indexDMR, validEObject);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.index.IndexDomainModelReferenceConverter#convertToListProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test(expected = IllegalArgumentException.class)
+	public void testConvertToListPropertyNull() throws DatabindingFailedException {
+		converter.convertToListProperty(null, validEObject);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.index.IndexDomainModelReferenceConverter#convertToListProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test(expected = IllegalArgumentException.class)
+	public void testConvertToListPropertyWrongReferenceType() throws DatabindingFailedException {
+		converter.convertToListProperty(mock(VDomainModelReference.class), validEObject);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.index.IndexDomainModelReferenceConverter#convertToListProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed (expected for this test case)
+	 */
+	@Test(expected = DatabindingFailedException.class)
+	public void testConvertToListPropertyNoFeature() throws DatabindingFailedException {
+		final VIndexDomainModelReference indexReference = VIndexdmrFactory.eINSTANCE.createIndexDomainModelReference();
+		converter.convertToListProperty(indexReference, validEObject);
+	}
+}
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/.checkstyle b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/.checkstyle
new file mode 100644
index 0000000..32e02a4
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/.checkstyle
@@ -0,0 +1,13 @@
+<?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="c" location="esmCheckstyleTest.xml" type="project" description="">
+    <additional-data name="protect-config-file" value="false"/>
+  </local-check-config>
+  <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.core.services.databinding.integrationtest/.classpath b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/.classpath
new file mode 100644
index 0000000..8a8f166
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/.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/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/.project b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/.project
new file mode 100644
index 0000000..2138738
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>org.eclipse.emfforms.core.services.databinding.integrationtest</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.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.integrationtest/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.integrationtest/.settings/org.eclipse.core.runtime.prefs
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..1a6b22b
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/.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.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.integrationtest/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.integrationtest/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.integrationtest/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.integrationtest/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.integrationtest/.settings/org.eclipse.pde.prefs
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/Databinding Services Integration Tests.launch b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/Databinding Services Integration Tests.launch
new file mode 100644
index 0000000..d47bfa8
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/Databinding Services Integration Tests.launch
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

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

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

+<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.emfforms.core.services.databinding.integrationtest/src/org/eclipse/emfforms/core/services/databinding/integrationtest/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.8"/>

+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emfforms.core.services.databinding.integrationtest.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.core.services.databinding.integrationtest"/>

+<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.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.xml@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.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@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@-1:true,org.hamcrest.core@default:default,org.junit@default:default"/>

+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.ecp.common@default:default,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emfforms.common@default:default,org.eclipse.emfforms.core.services.databinding.featurepath@default:default,org.eclipse.emfforms.core.services.databinding.integrationtest@default:default,org.eclipse.emfforms.core.services.databinding.testmodel@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>

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
new file mode 100644
index 0000000..c249272
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Databinding Services Integration Test
+Bundle-SymbolicName: org.eclipse.emfforms.core.services.databinding.integrationtest
+Bundle-Version: 1.6.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.2.0,2.0.0)"
+Import-Package: org.osgi.framework;version="[1.1.0,2.0.0)"
+Export-Package: org.eclipse.emfforms.core.services.databinding.integra
+ tiontest;version="1.6.0";x-internal:=true
+Bundle-ActivationPolicy: lazy
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/build.properties b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/build.properties
new file mode 100644
index 0000000..41eb6ad
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/build.properties
@@ -0,0 +1,4 @@
+source.. = src/

+output.. = bin/

+bin.includes = META-INF/,\

+               .

diff --git a/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/pom.xml b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/pom.xml
new file mode 100644
index 0000000..1b27f20
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/pom.xml
@@ -0,0 +1,56 @@
+<?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.6.0-SNAPSHOT</version>
+		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
+	</parent>
+	<artifactId>org.eclipse.emfforms.core.services.databinding.integrationtest</artifactId>
+	<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>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.emf</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>
+			</plugin>
+		</plugins>
+	</build>
+	<groupId>org.eclipse.emf.ecp</groupId>
+	<version>1.6.0-SNAPSHOT</version>
+</project>
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/src/org/eclipse/emfforms/core/services/databinding/integrationtest/AllTests.java b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/src/org/eclipse/emfforms/core/services/databinding/integrationtest/AllTests.java
new file mode 100644
index 0000000..7668596
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/src/org/eclipse/emfforms/core/services/databinding/integrationtest/AllTests.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.core.services.databinding.integrationtest;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+/**
+ * JUnit test suite for all integration tests for the databinding services.
+ * 
+ * @author Lucas Koehler
+ *
+ */
+@RunWith(Suite.class)
+@SuiteClasses({ DatabindingIntegration_ITest.class })
+public class AllTests {
+
+}
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/src/org/eclipse/emfforms/core/services/databinding/integrationtest/DatabindingIntegration_ITest.java b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/src/org/eclipse/emfforms/core/services/databinding/integrationtest/DatabindingIntegration_ITest.java
new file mode 100644
index 0000000..c9989ce
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/src/org/eclipse/emfforms/core/services/databinding/integrationtest/DatabindingIntegration_ITest.java
@@ -0,0 +1,129 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.core.services.databinding.integrationtest;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.util.LinkedList;
+
+import org.eclipse.core.databinding.property.list.IListProperty;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.emf.databinding.IEMFListProperty;
+import org.eclipse.emf.databinding.IEMFValueProperty;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * JUnit test to test the integration of the databinding services.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class DatabindingIntegration_ITest {
+
+	private static BundleContext bundleContext;
+	private EMFFormsDatabinding databindingService;
+	private ServiceReference<EMFFormsDatabinding> serviceReference;
+
+	@BeforeClass
+	public static void setUpBeforeClass() {
+		bundleContext = FrameworkUtil.getBundle(DatabindingIntegration_ITest.class).getBundleContext();
+	}
+
+	@Before
+	public void setUp() {
+		serviceReference = bundleContext
+			.getServiceReference(EMFFormsDatabinding.class);
+		databindingService = bundleContext.getService(serviceReference);
+	}
+
+	@After
+	public void tearDown() {
+		bundleContext.ungetService(serviceReference);
+	}
+
+	@Test
+	public void testIntegrationValue() throws DatabindingFailedException {
+		final VFeaturePathDomainModelReference pathReference = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		// create reference path to the attribute
+		final LinkedList<EReference> referencePath = new LinkedList<EReference>();
+		referencePath.add(TestPackage.eINSTANCE.getA_B());
+		referencePath.add(TestPackage.eINSTANCE.getB_C());
+		referencePath.add(TestPackage.eINSTANCE.getC_D());
+
+		final EStructuralFeature feature = TestPackage.eINSTANCE.getD_X();
+
+		pathReference.getDomainModelEReferencePath().addAll(referencePath);
+		pathReference.setDomainModelEFeature(feature);
+
+		final IValueProperty valueProperty = databindingService.getValueProperty(pathReference, null);
+
+		// The converter should return an IEMFValueProperty
+		assertTrue(valueProperty instanceof IEMFValueProperty);
+
+		final IEMFValueProperty emfProperty = (IEMFValueProperty) valueProperty;
+
+		// Check EStructuralFeature of the property.
+		assertEquals(feature, emfProperty.getStructuralFeature());
+
+		// Check correct path.
+		final String expected = "A.b<B> => B.c<C> => C.d<D> => D.x<EString>"; //$NON-NLS-1$
+		assertEquals(expected, emfProperty.toString());
+
+	}
+
+	@Test
+	public void testIntegrationList() throws DatabindingFailedException {
+		// TODO
+		final VFeaturePathDomainModelReference pathReference = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		// create reference path to the attribute
+		final LinkedList<EReference> referencePath = new LinkedList<EReference>();
+		referencePath.add(TestPackage.eINSTANCE.getA_B());
+		referencePath.add(TestPackage.eINSTANCE.getB_C());
+		referencePath.add(TestPackage.eINSTANCE.getC_D());
+
+		final EStructuralFeature feature = TestPackage.eINSTANCE.getD_YList();
+
+		pathReference.getDomainModelEReferencePath().addAll(referencePath);
+		pathReference.setDomainModelEFeature(feature);
+
+		final IListProperty listProperty = databindingService.getListProperty(pathReference, null);
+
+		// The converter should return an IEMFListProperty
+		assertTrue(listProperty instanceof IEMFListProperty);
+
+		final IEMFListProperty emfListProperty = (IEMFListProperty) listProperty;
+
+		// Check EStructuralFeature of the property.
+		assertEquals(feature, emfListProperty.getStructuralFeature());
+
+		// Check correct path.
+		final String expected = "A.b<B> => B.c<C> => C.d<D> => D.yList[]<EInt>"; //$NON-NLS-1$
+		assertEquals(expected, emfListProperty.toString());
+
+	}
+}
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/.checkstyle b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/.checkstyle
new file mode 100644
index 0000000..32e02a4
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/.checkstyle
@@ -0,0 +1,13 @@
+<?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="c" location="esmCheckstyleTest.xml" type="project" description="">
+    <additional-data name="protect-config-file" value="false"/>
+  </local-check-config>
+  <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.core.services.databinding.mapping.tests/.classpath b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/.classpath
new file mode 100644
index 0000000..8a8f166
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/.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/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/.project b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/.project
new file mode 100644
index 0000000..30dbf4d
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>org.eclipse.emfforms.core.services.databinding.mapping.tests</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.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/.settings/org.eclipse.core.runtime.prefs
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..1a6b22b
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/.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.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/.settings/org.eclipse.pde.prefs
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/All Integration Tests for core.services.databinding.mapping.launch b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/All Integration Tests for core.services.databinding.mapping.launch
new file mode 100644
index 0000000..cef0ee2
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/All Integration Tests for core.services.databinding.mapping.launch
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

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

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

+<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.emfforms.core.services.databinding.mapping.tests/src/org/eclipse/emfforms/core/services/databinding/mapping/tests/AllIntegrationTests.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.core.services.databinding.mapping.tests.AllIntegrationTests"/>

+<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.core.services.databinding.mapping.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.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.xml@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.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@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@-1:true,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.view.mappingdmr.model@default:default,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emfforms.common@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@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.core.services.databinding.mapping.tests/All Tests for core.services.databinding.mapping.launch b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/All Tests for core.services.databinding.mapping.launch
new file mode 100644
index 0000000..c342b92
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/All Tests for core.services.databinding.mapping.launch
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

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

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

+<listEntry value="/org.eclipse.emfforms.core.services.databinding.mapping.tests/src/org/eclipse/emfforms/core/services/databinding/mapping/tests/AllTests.java"/>

+</listAttribute>

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

+<listEntry value="1"/>

+</listAttribute>

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

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

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

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

+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emfforms.core.services.databinding.mapping.tests.AllTests"/>

+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emfforms.core.services.databinding.mapping.tests"/>

+</launchConfiguration>

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
new file mode 100644
index 0000000..f5a0386
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,14 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Mapping DMR Converter Tests
+Bundle-SymbolicName: org.eclipse.emfforms.core.services.databinding.mapping.tests
+Bundle-Version: 1.6.0.qualifier
+Fragment-Host: org.eclipse.emfforms.core.services.databinding.mapping;bundle-version="[1.6.0,2.0.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
+ org.mockito.mockito-all;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.6.0,2.0.0)"
+Export-Package: org.eclipse.emfforms.core.services.databinding.mapping.tests;version="1.6.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.databinding.mapping;version="1.6.0";x-internal:=true
+Import-Package: org.osgi.framework;version="[1.3.0,2.0.0)"
+
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/build.properties b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/build.properties
new file mode 100644
index 0000000..41eb6ad
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/build.properties
@@ -0,0 +1,4 @@
+source.. = src/

+output.. = bin/

+bin.includes = META-INF/,\

+               .

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
new file mode 100644
index 0000000..e63aff9
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/pom.xml
@@ -0,0 +1,31 @@
+<?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.6.0-SNAPSHOT</version>
+		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
+	</parent>
+	<artifactId>org.eclipse.emfforms.core.services.databinding.mapping.tests</artifactId>
+	<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>
+		</plugins>
+	</build>
+	<groupId>org.eclipse.emfforms</groupId>
+	<version>1.6.0-SNAPSHOT</version>
+</project>
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/src/org/eclipse/emfforms/core/services/databinding/mapping/tests/AllIntegrationTests.java b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/src/org/eclipse/emfforms/core/services/databinding/mapping/tests/AllIntegrationTests.java
new file mode 100644
index 0000000..3574bd5
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/src/org/eclipse/emfforms/core/services/databinding/mapping/tests/AllIntegrationTests.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler- initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.core.services.databinding.mapping.tests;
+
+import org.eclipse.emfforms.internal.core.services.databinding.mapping.MappingDomainModelReferenceConverter_ITest;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+/**
+ * All JUnit integration test cases for core.services.databinding.mapping
+ *
+ * @author Lucas Koehler
+ *
+ */
+@RunWith(Suite.class)
+@SuiteClasses({ MappingDomainModelReferenceConverter_ITest.class })
+public class AllIntegrationTests {
+
+}
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/src/org/eclipse/emfforms/core/services/databinding/mapping/tests/AllTests.java b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/src/org/eclipse/emfforms/core/services/databinding/mapping/tests/AllTests.java
new file mode 100644
index 0000000..fc725f5
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/src/org/eclipse/emfforms/core/services/databinding/mapping/tests/AllTests.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.core.services.databinding.mapping.tests;
+
+import org.eclipse.emfforms.internal.core.services.databinding.mapping.EMFMappingValueProperty_Test;
+import org.eclipse.emfforms.internal.core.services.databinding.mapping.MappingDomainModelReferenceConverter_Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+/**
+ * All JUnit test cases for core.services.databinding.mapping
+ *
+ * @author Lucas Koehler
+ *
+ */
+@RunWith(Suite.class)
+@SuiteClasses({ EMFMappingValueProperty_Test.class, MappingDomainModelReferenceConverter_Test.class })
+public class AllTests {
+
+}
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/src/org/eclipse/emfforms/internal/core/services/databinding/mapping/EMFMappingValueProperty_Test.java b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/src/org/eclipse/emfforms/internal/core/services/databinding/mapping/EMFMappingValueProperty_Test.java
new file mode 100644
index 0000000..5688518
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/src/org/eclipse/emfforms/internal/core/services/databinding/mapping/EMFMappingValueProperty_Test.java
@@ -0,0 +1,112 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.databinding.mapping;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.A;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.C;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestFactory;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage;
+import org.junit.Test;
+
+/**
+ * JUnit test cases for {@link EMFMappingValueProperty}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class EMFMappingValueProperty_Test {
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.mapping.EMFMappingValueProperty#doGetValue(java.lang.Object)}
+	 * .
+	 */
+	@Test
+	public void testDoGetValue() {
+		final C c = TestFactory.eINSTANCE.createC();
+		final EClass eClass1 = TestPackage.eINSTANCE.getB();
+		final A a1 = TestFactory.eINSTANCE.createA();
+		c.getEClassToA().put(eClass1, a1);
+
+		final EMFMappingValueProperty mappingValueProperty = new EMFMappingValueProperty(null, eClass1,
+			TestPackage.eINSTANCE.getC_EClassToA());
+		assertEquals(a1, mappingValueProperty.doGetValue(c));
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.mapping.EMFMappingValueProperty#doGetValue(java.lang.Object)}
+	 * .
+	 */
+	@Test
+	public void testDoGetValueNoMapEntry() {
+		final C c = TestFactory.eINSTANCE.createC();
+		final EClass eClass1 = TestPackage.eINSTANCE.getB();
+
+		final EMFMappingValueProperty mappingValueProperty = new EMFMappingValueProperty(null, eClass1,
+			TestPackage.eINSTANCE.getC_EClassToA());
+		assertNull(mappingValueProperty.doGetValue(c));
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.mapping.EMFMappingValueProperty#doSetValue(java.lang.Object, java.lang.Object)}
+	 * .
+	 */
+	@Test
+	public void testDoSetValueObjectReplaceEntry() {
+		final C c = TestFactory.eINSTANCE.createC();
+		final EClass eClass1 = TestPackage.eINSTANCE.getB();
+		final A a1 = TestFactory.eINSTANCE.createA();
+		final A a2 = TestFactory.eINSTANCE.createA();
+		a2.setB(TestFactory.eINSTANCE.createB());
+		c.getEClassToA().put(eClass1, a1);
+
+		final AdapterFactoryEditingDomain domain = new AdapterFactoryEditingDomain(
+			new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE),
+			new BasicCommandStack());
+
+		final EMFMappingValueProperty mappingValueProperty = new EMFMappingValueProperty(domain, eClass1,
+			TestPackage.eINSTANCE.getC_EClassToA());
+		assertEquals(a1, mappingValueProperty.doGetValue(c));
+
+		mappingValueProperty.doSetValue(c, a2);
+		assertEquals(a2, mappingValueProperty.doGetValue(c));
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.mapping.EMFMappingValueProperty#doSetValue(java.lang.Object, java.lang.Object)}
+	 * .
+	 */
+	@Test
+	public void testDoSetValueObjectAddEntry() {
+		final C c = TestFactory.eINSTANCE.createC();
+		final EClass eClass1 = TestPackage.eINSTANCE.getA();
+		final A a1 = TestFactory.eINSTANCE.createA();
+		final AdapterFactoryEditingDomain domain = new AdapterFactoryEditingDomain(
+			new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE),
+			new BasicCommandStack());
+
+		final EMFMappingValueProperty mappingValueProperty = new EMFMappingValueProperty(domain, eClass1,
+			TestPackage.eINSTANCE.getC_EClassToA());
+		mappingValueProperty.doSetValue(c, a1);
+
+		assertEquals(a1, mappingValueProperty.doGetValue(c));
+	}
+}
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/src/org/eclipse/emfforms/internal/core/services/databinding/mapping/MappingDomainModelReferenceConverter_ITest.java b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/src/org/eclipse/emfforms/internal/core/services/databinding/mapping/MappingDomainModelReferenceConverter_ITest.java
new file mode 100644
index 0000000..af42cdd
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/src/org/eclipse/emfforms/internal/core/services/databinding/mapping/MappingDomainModelReferenceConverter_ITest.java
@@ -0,0 +1,96 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.databinding.mapping;
+
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.same;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.util.Dictionary;
+import java.util.Hashtable;
+
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.spi.mappingdmr.model.VMappingDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.mappingdmr.model.VMappingdmrFactory;
+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.core.services.databinding.testmodel.test.model.TestPackage;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * Integration test cases for {@link MappingDomainModelReferenceConverter}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class MappingDomainModelReferenceConverter_ITest {
+
+	private static BundleContext bundleContext;
+	private DomainModelReferenceConverter service;
+	private ServiceReference<DomainModelReferenceConverter> serviceReference;
+	private EMFFormsDatabinding emfFormsDatabinding;
+
+	@BeforeClass
+	public static void setUpBeforeClass() {
+		bundleContext = FrameworkUtil.getBundle(MappingDomainModelReferenceConverter_ITest.class)
+			.getBundleContext();
+	}
+
+	@Before
+	public void setUp() throws DatabindingFailedException {
+		final Dictionary<String, Object> dictionary = new Hashtable<String, Object>();
+		dictionary.put("service.ranking", 50); //$NON-NLS-1$
+		emfFormsDatabinding = mock(EMFFormsDatabinding.class);
+		when(emfFormsDatabinding.getValueProperty(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			mock(IValueProperty.class));
+		bundleContext.registerService(EMFFormsDatabinding.class, emfFormsDatabinding, dictionary);
+		serviceReference = bundleContext
+			.getServiceReference(DomainModelReferenceConverter.class);
+		service = bundleContext.getService(serviceReference);
+	}
+
+	@After
+	public void tearDown() {
+		bundleContext.ungetService(serviceReference);
+	}
+
+	@Test
+	public void testServiceType() throws DatabindingFailedException {
+		assertTrue(MappingDomainModelReferenceConverter.class.isInstance(service));
+		final MappingDomainModelReferenceConverter mappingConverter = (MappingDomainModelReferenceConverter) service;
+
+		final VMappingDomainModelReference mappingReference = VMappingdmrFactory.eINSTANCE
+			.createMappingDomainModelReference();
+		mappingReference.setDomainModelEFeature(TestPackage.eINSTANCE.getC_EClassToA());
+		final VFeaturePathDomainModelReference targetReference = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		mappingReference.setDomainModelReference(targetReference);
+
+		mappingConverter.convertToValueProperty(mappingReference, mock(EObject.class));
+		verify(emfFormsDatabinding).getValueProperty(same(targetReference), any(EObject.class));
+
+	}
+}
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/src/org/eclipse/emfforms/internal/core/services/databinding/mapping/MappingDomainModelReferenceConverter_Test.java b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/src/org/eclipse/emfforms/internal/core/services/databinding/mapping/MappingDomainModelReferenceConverter_Test.java
new file mode 100644
index 0000000..e1c9efb
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/src/org/eclipse/emfforms/internal/core/services/databinding/mapping/MappingDomainModelReferenceConverter_Test.java
@@ -0,0 +1,336 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.databinding.mapping;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import org.eclipse.core.databinding.property.list.IListProperty;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.databinding.EMFProperties;
+import org.eclipse.emf.databinding.IEMFListProperty;
+import org.eclipse.emf.databinding.IEMFValueProperty;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecp.view.spi.mappingdmr.model.VMappingDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.mappingdmr.model.VMappingdmrFactory;
+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.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * JUnit test cases for {@link MappingDomainModelReferenceConverter}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class MappingDomainModelReferenceConverter_Test {
+
+	private MappingDomainModelReferenceConverter converter;
+	private static EObject validEObject;
+
+	@BeforeClass
+	public static void setupClass() {
+		validEObject = createValidEObject();
+	}
+
+	private static EObject createValidEObject() {
+		final ResourceSet rs = new ResourceSetImpl();
+		final AdapterFactoryEditingDomain domain = new AdapterFactoryEditingDomain(
+			new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE),
+			new BasicCommandStack(), rs);
+		rs.eAdapters().add(new AdapterFactoryEditingDomain.EditingDomainProvider(domain));
+		final Resource resource = rs.createResource(URI.createURI("VIRTAUAL_URI")); //$NON-NLS-1$
+		final EObject domainObject = EcoreFactory.eINSTANCE.createEObject();
+		if (resource != null) {
+			resource.getContents().add(domainObject);
+		}
+		return domainObject;
+	}
+
+	/**
+	 * Creates a new {@link MappingDomainModelReferenceConverter} for every test case
+	 */
+	@Before
+	public void setUp() {
+		converter = new MappingDomainModelReferenceConverter();
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.mapping.MappingDomainModelReferenceConverter#isApplicable(VDomainModelReference)}
+	 * .
+	 */
+	@Test
+	public void testIsApplicable() {
+		assertEquals(10d, converter.isApplicable(mock(VMappingDomainModelReference.class)), 0d);
+
+		assertEquals(DomainModelReferenceConverter.NOT_APPLICABLE,
+			converter.isApplicable(mock(VDomainModelReference.class)), 0d);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.mapping.MappingDomainModelReferenceConverter#convertToValueProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test
+	public void testConvertToValueProperty() throws DatabindingFailedException {
+		final VMappingDomainModelReference mappingReference = VMappingdmrFactory.eINSTANCE
+			.createMappingDomainModelReference();
+		mappingReference.setDomainModelEFeature(TestPackage.eINSTANCE.getC_EClassToA());
+		mappingReference.getDomainModelEReferencePath().add(TestPackage.eINSTANCE.getB_C());
+		mappingReference.setMappedClass(TestPackage.eINSTANCE.getD());
+
+		final VFeaturePathDomainModelReference targetReference = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		targetReference.getDomainModelEReferencePath().add(TestPackage.eINSTANCE.getA_B());
+		targetReference.setDomainModelEFeature(TestPackage.eINSTANCE.getB_C());
+		mappingReference.setDomainModelReference(targetReference);
+
+		IEMFValueProperty targetValueProperty = EMFProperties.value(TestPackage.eINSTANCE.getA_B());
+		targetValueProperty = targetValueProperty.value(TestPackage.eINSTANCE.getB_C());
+		final EMFFormsDatabinding emfFormsDatabinding = mock(EMFFormsDatabinding.class);
+		when(emfFormsDatabinding.getValueProperty(targetReference, validEObject)).thenReturn(targetValueProperty);
+		converter.setEMFFormsDatabinding(emfFormsDatabinding);
+
+		final IValueProperty resultProperty = converter.convertToValueProperty(mappingReference, validEObject);
+
+		final String expected = "B.c<C> => C.eClassToA<EClassToAMap> mapping D => A.b<B> => B.c<C>"; //$NON-NLS-1$
+		assertEquals(expected, resultProperty.toString());
+		verify(emfFormsDatabinding).getValueProperty(targetReference, validEObject);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.mapping.MappingDomainModelReferenceConverter#convertToValueProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test
+	public void testConvertToValuePropertyNoReferencePaths() throws DatabindingFailedException {
+		final VMappingDomainModelReference mappingReference = VMappingdmrFactory.eINSTANCE
+			.createMappingDomainModelReference();
+		mappingReference.setDomainModelEFeature(TestPackage.eINSTANCE.getC_EClassToA());
+		mappingReference.setMappedClass(TestPackage.eINSTANCE.getD());
+
+		final VFeaturePathDomainModelReference targetReference = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		targetReference.setDomainModelEFeature(TestPackage.eINSTANCE.getA_B());
+		mappingReference.setDomainModelReference(targetReference);
+
+		final IEMFValueProperty targetValueProperty = EMFProperties.value(TestPackage.eINSTANCE.getA_B());
+		final EMFFormsDatabinding emfFormsDatabinding = mock(EMFFormsDatabinding.class);
+		when(emfFormsDatabinding.getValueProperty(targetReference, validEObject)).thenReturn(targetValueProperty);
+		converter.setEMFFormsDatabinding(emfFormsDatabinding);
+
+		final IValueProperty resultProperty = converter.convertToValueProperty(mappingReference, validEObject);
+
+		final String expected = "C.eClassToA<EClassToAMap> mapping D => A.b<B>"; //$NON-NLS-1$
+		assertEquals(expected, resultProperty.toString());
+		verify(emfFormsDatabinding).getValueProperty(targetReference, validEObject);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.mapping.MappingDomainModelReferenceConverter#convertToValueProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test(expected = IllegalMapTypeException.class)
+	public void testConvertToValuePropertyWrongMapType() throws DatabindingFailedException {
+		final VMappingDomainModelReference mappingReference = VMappingdmrFactory.eINSTANCE
+			.createMappingDomainModelReference();
+		mappingReference.setDomainModelEFeature(TestPackage.eINSTANCE.getC_EClassToString());
+		mappingReference.setMappedClass(TestPackage.eINSTANCE.getD());
+
+		final VFeaturePathDomainModelReference targetReference = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		targetReference.setDomainModelEFeature(TestPackage.eINSTANCE.getA_B());
+		mappingReference.setDomainModelReference(targetReference);
+
+		final IEMFValueProperty targetValueProperty = EMFProperties.value(TestPackage.eINSTANCE.getA_B());
+		final EMFFormsDatabinding emfFormsDatabinding = mock(EMFFormsDatabinding.class);
+		when(emfFormsDatabinding.getValueProperty(targetReference, validEObject)).thenReturn(targetValueProperty);
+		converter.setEMFFormsDatabinding(emfFormsDatabinding);
+
+		converter.convertToValueProperty(mappingReference, validEObject);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.mapping.MappingDomainModelReferenceConverter#convertToValueProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test(expected = IllegalArgumentException.class)
+	public void testConvertToValuePropertyWrongReference() throws DatabindingFailedException {
+		converter.convertToValueProperty(mock(VDomainModelReference.class), validEObject);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.mapping.MappingDomainModelReferenceConverter#convertToValueProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test(expected = DatabindingFailedException.class)
+	public void testConvertToValuePropertyNoFeature() throws DatabindingFailedException {
+		final VMappingDomainModelReference mappingReference = VMappingdmrFactory.eINSTANCE
+			.createMappingDomainModelReference();
+		converter.convertToValueProperty(mappingReference, validEObject);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.mapping.MappingDomainModelReferenceConverter#convertToListProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test
+	public void testConvertToListProperty() throws DatabindingFailedException {
+		final VMappingDomainModelReference mappingReference = VMappingdmrFactory.eINSTANCE
+			.createMappingDomainModelReference();
+		mappingReference.setDomainModelEFeature(TestPackage.eINSTANCE.getC_EClassToA());
+		mappingReference.getDomainModelEReferencePath().add(TestPackage.eINSTANCE.getB_C());
+		mappingReference.setMappedClass(TestPackage.eINSTANCE.getD());
+
+		final VFeaturePathDomainModelReference targetReference = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		targetReference.getDomainModelEReferencePath().add(TestPackage.eINSTANCE.getA_B());
+		targetReference.setDomainModelEFeature(TestPackage.eINSTANCE.getB_C());
+		mappingReference.setDomainModelReference(targetReference);
+
+		final IEMFValueProperty targetValueProperty = EMFProperties.value(TestPackage.eINSTANCE.getA_B());
+		final IEMFListProperty targetListProperty = targetValueProperty.list(TestPackage.eINSTANCE.getB_CList());
+		final EMFFormsDatabinding emfFormsDatabinding = mock(EMFFormsDatabinding.class);
+		when(emfFormsDatabinding.getListProperty(targetReference, validEObject)).thenReturn(targetListProperty);
+		converter.setEMFFormsDatabinding(emfFormsDatabinding);
+
+		final IListProperty resultProperty = converter.convertToListProperty(mappingReference, validEObject);
+
+		final String expected = "B.c<C> => C.eClassToA<EClassToAMap> mapping D => A.b<B> => B.cList[]<C>"; //$NON-NLS-1$
+		assertEquals(expected, resultProperty.toString());
+		verify(emfFormsDatabinding).getListProperty(targetReference, validEObject);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.mapping.MappingDomainModelReferenceConverter#convertToListProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test
+	public void testConvertToListPropertyNoReferencePath() throws DatabindingFailedException {
+		final VMappingDomainModelReference mappingReference = VMappingdmrFactory.eINSTANCE
+			.createMappingDomainModelReference();
+		mappingReference.setDomainModelEFeature(TestPackage.eINSTANCE.getC_EClassToA());
+		mappingReference.setMappedClass(TestPackage.eINSTANCE.getD());
+
+		final VFeaturePathDomainModelReference targetReference = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		targetReference.getDomainModelEReferencePath().add(TestPackage.eINSTANCE.getA_B());
+		targetReference.setDomainModelEFeature(TestPackage.eINSTANCE.getB_C());
+		mappingReference.setDomainModelReference(targetReference);
+
+		final IEMFValueProperty targetValueProperty = EMFProperties.value(TestPackage.eINSTANCE.getA_B());
+		final IEMFListProperty targetListProperty = targetValueProperty.list(TestPackage.eINSTANCE.getB_CList());
+		final EMFFormsDatabinding emfFormsDatabinding = mock(EMFFormsDatabinding.class);
+		when(emfFormsDatabinding.getListProperty(targetReference, validEObject)).thenReturn(targetListProperty);
+		converter.setEMFFormsDatabinding(emfFormsDatabinding);
+
+		final IListProperty resultProperty = converter.convertToListProperty(mappingReference, validEObject);
+
+		final String expected = "C.eClassToA<EClassToAMap> mapping D => A.b<B> => B.cList[]<C>"; //$NON-NLS-1$
+		assertEquals(expected, resultProperty.toString());
+		verify(emfFormsDatabinding).getListProperty(targetReference, validEObject);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.mapping.MappingDomainModelReferenceConverter#convertToListProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test(expected = IllegalMapTypeException.class)
+	public void testConvertToListPropertyWrongMapType() throws DatabindingFailedException {
+		final VMappingDomainModelReference mappingReference = VMappingdmrFactory.eINSTANCE
+			.createMappingDomainModelReference();
+		mappingReference.setDomainModelEFeature(TestPackage.eINSTANCE.getC_EClassToString());
+		mappingReference.setMappedClass(TestPackage.eINSTANCE.getD());
+
+		final VFeaturePathDomainModelReference targetReference = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		targetReference.getDomainModelEReferencePath().add(TestPackage.eINSTANCE.getA_B());
+		targetReference.setDomainModelEFeature(TestPackage.eINSTANCE.getB_C());
+		mappingReference.setDomainModelReference(targetReference);
+
+		final IEMFValueProperty targetValueProperty = EMFProperties.value(TestPackage.eINSTANCE.getA_B());
+		final IEMFListProperty targetListProperty = targetValueProperty.list(TestPackage.eINSTANCE.getB_CList());
+		final EMFFormsDatabinding emfFormsDatabinding = mock(EMFFormsDatabinding.class);
+		when(emfFormsDatabinding.getListProperty(targetReference, validEObject)).thenReturn(targetListProperty);
+		converter.setEMFFormsDatabinding(emfFormsDatabinding);
+
+		converter.convertToListProperty(mappingReference, validEObject);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.mapping.MappingDomainModelReferenceConverter#convertToListProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test(expected = IllegalArgumentException.class)
+	public void testConvertToListPropertyWrongReference() throws DatabindingFailedException {
+		converter.convertToListProperty(mock(VDomainModelReference.class), validEObject);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.mapping.MappingDomainModelReferenceConverter#convertToListProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test(expected = DatabindingFailedException.class)
+	public void testConvertToListPropertyNoFeature() throws DatabindingFailedException {
+		final VMappingDomainModelReference mappingReference = VMappingdmrFactory.eINSTANCE
+			.createMappingDomainModelReference();
+		converter.convertToListProperty(mappingReference, validEObject);
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.checkstyle b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/.checkstyle
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.checkstyle
copy to tests/org.eclipse.emfforms.core.services.databinding.testmodel/.checkstyle
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.testmodel/.classpath b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/.classpath
new file mode 100644
index 0000000..8a8f166
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/.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/tests/org.eclipse.emfforms.core.services.databinding.testmodel/.gitignore b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.testmodel/.project b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/.project
new file mode 100644
index 0000000..1ab3dca
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>org.eclipse.emfforms.core.services.databinding.testmodel</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.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.testmodel/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.testmodel/.settings/org.eclipse.core.runtime.prefs
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.testmodel/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..1a6b22b
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/.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.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.testmodel/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.testmodel/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.testmodel/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.testmodel/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
copy to tests/org.eclipse.emfforms.core.services.databinding.testmodel/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..e6a0d6a
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.emfforms.core.services.databinding.testmodel;singleton:=true
+Bundle-Version: 1.6.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: org.eclipse.emfforms.core.services.databinding.testmodel.test.model;version="1.6.0",
+ org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl;version="1.6.0";x-internal:=true,
+ org.eclipse.emfforms.core.services.databinding.testmodel.test.model.util;version="1.6.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-ActivationPolicy: lazy
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.testmodel/build.properties b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/build.properties
new file mode 100644
index 0000000..dfc6180
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/build.properties
@@ -0,0 +1,18 @@
+# Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.

+# 

+# All rights reserved. This program and the accompanying materials

+# are made available under the terms of the Eclipse Public License v1.0

+# which accompanies this distribution, and is available at

+# http://www.eclipse.org/legal/epl-v10.html

+# 

+# Contributors:

+# Lucas Koehler - initial API and implementation

+

+bin.includes = .,\

+               model/,\

+               META-INF/,\

+               plugin.xml,\

+               plugin.properties

+jars.compile.order = .

+source.. = src/

+output.. = bin/

diff --git a/tests/org.eclipse.emfforms.core.services.databinding.testmodel/model/test.ecore b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/model/test.ecore
new file mode 100644
index 0000000..baafa8a
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/model/test.ecore
@@ -0,0 +1,32 @@
+<?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="test" nsURI="test" nsPrefix="test">

+  <eClassifiers xsi:type="ecore:EClass" name="A">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="b" eType="#//B" containment="true"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="B">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="c" eType="#//C" containment="true"/>

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

+        eType="#//C"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="C">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="d" eType="#//D" containment="true"/>

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

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

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

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

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="D">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="x" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

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

+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="EClassToEStringMap" instanceClassName="java.util.Map$Entry">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="key" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EClass"/>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="EClassToAMap" instanceClassName="java.util.Map$Entry">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="key" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EClass"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//A"/>

+  </eClassifiers>

+</ecore:EPackage>

diff --git a/tests/org.eclipse.emfforms.core.services.databinding.testmodel/model/test.genmodel b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/model/test.genmodel
new file mode 100644
index 0000000..86308f5
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/model/test.genmodel
@@ -0,0 +1,34 @@
+<?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-2015 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;Lucas Koehler - initial API and implementation"

+    modelDirectory="/org.eclipse.emfforms.core.services.databinding.testmodel/src"

+    editDirectory="/org.eclipse.emfforms.core.services.databinding.testmodel.edit/src"

+    editorDirectory="/org.eclipse.emfforms.core.services.databinding.testmodel.editor/src"

+    modelPluginID="org.eclipse.emfforms.core.services.databinding.testmodel" modelName="Test"

+    modelPluginClass="" editPluginClass="org.eclipse.emfforms.core.services.databinding.testmodel.TestEditPlugin"

+    editorPluginClass="org.eclipse.emfforms.core.services.databinding.testmodel.model.presentation.TestEditorPlugin"

+    nonNLSMarkers="true" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"

+    codeFormatting="true" commentFormatting="true" testSuiteClass="org.eclipse.emfforms.core.services.databinding.testmodel.test.tests.TestAllTests"

+    importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" copyrightFields="false"

+    editPluginID="org.eclipse.emfforms.core.services.databinding.testmodel.edit" editorPluginID="org.eclipse.emfforms.core.services.databinding.testmodel.editor"

+    importOrganizing="true">

+  <foreignModel>test.ecore</foreignModel>

+  <genPackages prefix="Test" basePackage="org.eclipse.emfforms.core.services.databinding.testmodel"

+      disposableProviderFactory="true" interfacePackageSuffix="model" metaDataPackageSuffix="model"

+      classPackageSuffix="model.impl" utilityPackageSuffix="model.util" providerPackageSuffix="model.provider"

+      presentationPackageSuffix="model.presentation" extensibleProviderFactory="true"

+      childCreationExtenders="true" ecorePackage="test.ecore#/">

+    <genClasses ecoreClass="test.ecore#//A">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference test.ecore#//A/b"/>

+    </genClasses>

+    <genClasses ecoreClass="test.ecore#//B">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference test.ecore#//B/c"/>

+    </genClasses>

+    <genClasses ecoreClass="test.ecore#//C">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference test.ecore#//C/d"/>

+    </genClasses>

+    <genClasses ecoreClass="test.ecore#//D">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute test.ecore#//D/x"/>

+    </genClasses>

+  </genPackages>

+</genmodel:GenModel>

diff --git a/tests/org.eclipse.emfforms.core.services.databinding.testmodel/plugin.properties b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/plugin.properties
new file mode 100644
index 0000000..378014b
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/plugin.properties
@@ -0,0 +1,12 @@
+# Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.

+# 

+# All rights reserved. This program and the accompanying materials

+# are made available under the terms of the Eclipse Public License v1.0

+# which accompanies this distribution, and is available at

+# http://www.eclipse.org/legal/epl-v10.html

+# 

+# Contributors:

+# Lucas Koehler - initial API and implementation

+

+pluginName = Databinding Services Testmodel

+providerName = Eclipse Modeling Project

diff --git a/tests/org.eclipse.emfforms.core.services.databinding.testmodel/plugin.xml b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/plugin.xml
new file mode 100644
index 0000000..58bf297
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/plugin.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<?eclipse version="3.0"?>

+

+<!--

+ Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.

+ 

+ All rights reserved. This program and the accompanying materials

+ are made available under the terms of the Eclipse Public License v1.0

+ which accompanies this distribution, and is available at

+ http://www.eclipse.org/legal/epl-v10.html

+ 

+ Contributors:

+ Lucas Koehler - initial API and implementation

+-->

+

+<plugin>

+

+   <extension point="org.eclipse.emf.ecore.generated_package">

+      <!-- @generated test -->

+      <package

+            uri="test"

+            class="org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage"

+            genModel="model/test.genmodel"/>

+   </extension>

+

+</plugin>

diff --git a/tests/org.eclipse.emfforms.core.services.databinding.testmodel/pom.xml b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/pom.xml
new file mode 100644
index 0000000..2d327ee
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/pom.xml
@@ -0,0 +1,17 @@
+<?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.6.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.6.0-SNAPSHOT</version>
+</project>
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/A.java b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/A.java
new file mode 100644
index 0000000..8bc8e82
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/A.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ */
+package org.eclipse.emfforms.core.services.databinding.testmodel.test.model;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>A</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.A#getB <em>B</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage#getA()
+ * @model
+ * @generated
+ */
+public interface A extends EObject
+{
+	/**
+	 * Returns the value of the '<em><b>B</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>B</em>' containment reference isn't clear, there really should be more of a
+	 * description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>B</em>' containment reference.
+	 * @see #setB(B)
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage#getA_B()
+	 * @model containment="true"
+	 * @generated
+	 */
+	B getB();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.A#getB
+	 * <em>B</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value the new value of the '<em>B</em>' containment reference.
+	 * @see #getB()
+	 * @generated
+	 */
+	void setB(B value);
+
+} // A
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/B.java b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/B.java
new file mode 100644
index 0000000..ab7cf95
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/B.java
@@ -0,0 +1,82 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ */
+package org.eclipse.emfforms.core.services.databinding.testmodel.test.model;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>B</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.B#getC <em>C</em>}</li>
+ * <li>{@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.B#getCList <em>CList</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage#getB()
+ * @model
+ * @generated
+ */
+public interface B extends EObject
+{
+	/**
+	 * Returns the value of the '<em><b>C</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>C</em>' containment reference isn't clear, there really should be more of a
+	 * description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>C</em>' containment reference.
+	 * @see #setC(C)
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage#getB_C()
+	 * @model containment="true"
+	 * @generated
+	 */
+	C getC();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.B#getC
+	 * <em>C</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value the new value of the '<em>C</em>' containment reference.
+	 * @see #getC()
+	 * @generated
+	 */
+	void setC(C value);
+
+	/**
+	 * Returns the value of the '<em><b>CList</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.C}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>CList</em>' reference list isn't clear, there really should be more of a description
+	 * here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>CList</em>' reference list.
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage#getB_CList()
+	 * @model
+	 * @generated
+	 */
+	EList<C> getCList();
+
+} // B
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/C.java b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/C.java
new file mode 100644
index 0000000..3ae2337
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/C.java
@@ -0,0 +1,106 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ */
+package org.eclipse.emfforms.core.services.databinding.testmodel.test.model;
+
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>C</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.C#getD <em>D</em>}</li>
+ * <li>{@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.C#getEClassToString <em>EClass To
+ * String</em>}</li>
+ * <li>{@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.C#getEClassToA <em>EClass To A</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage#getC()
+ * @model
+ * @generated
+ */
+public interface C extends EObject
+{
+	/**
+	 * Returns the value of the '<em><b>D</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>D</em>' containment reference isn't clear, there really should be more of a
+	 * description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>D</em>' containment reference.
+	 * @see #setD(D)
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage#getC_D()
+	 * @model containment="true"
+	 * @generated
+	 */
+	D getD();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.C#getD
+	 * <em>D</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value the new value of the '<em>D</em>' containment reference.
+	 * @see #getD()
+	 * @generated
+	 */
+	void setD(D value);
+
+	/**
+	 * Returns the value of the '<em><b>EClass To String</b></em>' map.
+	 * The key is of type {@link org.eclipse.emf.ecore.EClass},
+	 * and the value is of type {@link java.lang.String},
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>EClass To String</em>' map isn't clear, there really should be more of a description
+	 * here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>EClass To String</em>' map.
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage#getC_EClassToString()
+	 * @model mapType=
+	 *        "org.eclipse.emfforms.core.services.databinding.testmodel.test.model.EClassToEStringMap<org.eclipse.emf.ecore.EClass, org.eclipse.emf.ecore.EString>"
+	 * @generated
+	 */
+	EMap<EClass, String> getEClassToString();
+
+	/**
+	 * Returns the value of the '<em><b>EClass To A</b></em>' map.
+	 * The key is of type {@link org.eclipse.emf.ecore.EClass},
+	 * and the value is of type {@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.A},
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>EClass To A</em>' map isn't clear, there really should be more of a description
+	 * here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>EClass To A</em>' map.
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage#getC_EClassToA()
+	 * @model mapType=
+	 *        "org.eclipse.emfforms.core.services.databinding.testmodel.test.model.EClassToAMap<org.eclipse.emf.ecore.EClass, org.eclipse.emfforms.core.services.databinding.testmodel.test.model.A>"
+	 * @generated
+	 */
+	EMap<EClass, A> getEClassToA();
+
+} // C
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/D.java b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/D.java
new file mode 100644
index 0000000..1977ba9
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/D.java
@@ -0,0 +1,81 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ */
+package org.eclipse.emfforms.core.services.databinding.testmodel.test.model;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>D</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.D#getX <em>X</em>}</li>
+ * <li>{@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.D#getYList <em>YList</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage#getD()
+ * @model
+ * @generated
+ */
+public interface D extends EObject
+{
+	/**
+	 * Returns the value of the '<em><b>X</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>X</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>X</em>' attribute.
+	 * @see #setX(String)
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage#getD_X()
+	 * @model
+	 * @generated
+	 */
+	String getX();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.D#getX
+	 * <em>X</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value the new value of the '<em>X</em>' attribute.
+	 * @see #getX()
+	 * @generated
+	 */
+	void setX(String value);
+
+	/**
+	 * Returns the value of the '<em><b>YList</b></em>' attribute list.
+	 * The list contents are of type {@link java.lang.Integer}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>YList</em>' attribute list isn't clear, there really should be more of a description
+	 * here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>YList</em>' attribute list.
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage#getD_YList()
+	 * @model
+	 * @generated
+	 */
+	EList<Integer> getYList();
+
+} // D
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/TestFactory.java b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/TestFactory.java
new file mode 100644
index 0000000..96b178c
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/TestFactory.java
@@ -0,0 +1,87 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ */
+package org.eclipse.emfforms.core.services.databinding.testmodel.test.model;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * 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.core.services.databinding.testmodel.test.model.TestPackage
+ * @generated
+ */
+public interface TestFactory extends EFactory
+{
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	TestFactory eINSTANCE = org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.TestFactoryImpl
+		.init();
+
+	/**
+	 * Returns a new object of class '<em>A</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return a new object of class '<em>A</em>'.
+	 * @generated
+	 */
+	A createA();
+
+	/**
+	 * Returns a new object of class '<em>B</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return a new object of class '<em>B</em>'.
+	 * @generated
+	 */
+	B createB();
+
+	/**
+	 * Returns a new object of class '<em>C</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return a new object of class '<em>C</em>'.
+	 * @generated
+	 */
+	C createC();
+
+	/**
+	 * Returns a new object of class '<em>D</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return a new object of class '<em>D</em>'.
+	 * @generated
+	 */
+	D createD();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	TestPackage getTestPackage();
+
+} // TestFactory
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/TestPackage.java b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/TestPackage.java
new file mode 100644
index 0000000..32593fa
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/TestPackage.java
@@ -0,0 +1,764 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ */
+package org.eclipse.emfforms.core.services.databinding.testmodel.test.model;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface TestPackage extends EPackage
+{
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	String eNAME = "test"; //$NON-NLS-1$
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	String eNS_URI = "test"; //$NON-NLS-1$
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	String eNS_PREFIX = "test"; //$NON-NLS-1$
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	TestPackage eINSTANCE = org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.TestPackageImpl
+		.init();
+
+	/**
+	 * The meta object id for the '
+	 * {@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.AImpl <em>A</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.AImpl
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.TestPackageImpl#getA()
+	 * @generated
+	 */
+	int A = 0;
+
+	/**
+	 * The feature id for the '<em><b>B</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int A__B = 0;
+
+	/**
+	 * The number of structural features of the '<em>A</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int A_FEATURE_COUNT = 1;
+
+	/**
+	 * The meta object id for the '
+	 * {@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.BImpl <em>B</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.BImpl
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.TestPackageImpl#getB()
+	 * @generated
+	 */
+	int B = 1;
+
+	/**
+	 * The feature id for the '<em><b>C</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int B__C = 0;
+
+	/**
+	 * The feature id for the '<em><b>CList</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int B__CLIST = 1;
+
+	/**
+	 * The number of structural features of the '<em>B</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int B_FEATURE_COUNT = 2;
+
+	/**
+	 * The meta object id for the '
+	 * {@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.CImpl <em>C</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.CImpl
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.TestPackageImpl#getC()
+	 * @generated
+	 */
+	int C = 2;
+
+	/**
+	 * The feature id for the '<em><b>D</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int C__D = 0;
+
+	/**
+	 * The feature id for the '<em><b>EClass To String</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int C__ECLASS_TO_STRING = 1;
+
+	/**
+	 * The feature id for the '<em><b>EClass To A</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int C__ECLASS_TO_A = 2;
+
+	/**
+	 * The number of structural features of the '<em>C</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int C_FEATURE_COUNT = 3;
+
+	/**
+	 * The meta object id for the '
+	 * {@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.DImpl <em>D</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.DImpl
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.TestPackageImpl#getD()
+	 * @generated
+	 */
+	int D = 3;
+
+	/**
+	 * The feature id for the '<em><b>X</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int D__X = 0;
+
+	/**
+	 * The feature id for the '<em><b>YList</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int D__YLIST = 1;
+
+	/**
+	 * The number of structural features of the '<em>D</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int D_FEATURE_COUNT = 2;
+
+	/**
+	 * The meta object id for the '
+	 * {@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.EClassToEStringMapImpl
+	 * <em>EClass To EString Map</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.EClassToEStringMapImpl
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.TestPackageImpl#getEClassToEStringMap()
+	 * @generated
+	 */
+	int ECLASS_TO_ESTRING_MAP = 4;
+
+	/**
+	 * The feature id for the '<em><b>Key</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int ECLASS_TO_ESTRING_MAP__KEY = 0;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int ECLASS_TO_ESTRING_MAP__VALUE = 1;
+
+	/**
+	 * The number of structural features of the '<em>EClass To EString Map</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int ECLASS_TO_ESTRING_MAP_FEATURE_COUNT = 2;
+
+	/**
+	 * The meta object id for the '
+	 * {@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.EClassToAMapImpl
+	 * <em>EClass To AMap</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.EClassToAMapImpl
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.TestPackageImpl#getEClassToAMap()
+	 * @generated
+	 */
+	int ECLASS_TO_AMAP = 5;
+
+	/**
+	 * The feature id for the '<em><b>Key</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int ECLASS_TO_AMAP__KEY = 0;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int ECLASS_TO_AMAP__VALUE = 1;
+
+	/**
+	 * The number of structural features of the '<em>EClass To AMap</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int ECLASS_TO_AMAP_FEATURE_COUNT = 2;
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.A
+	 * <em>A</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for class '<em>A</em>'.
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.A
+	 * @generated
+	 */
+	EClass getA();
+
+	/**
+	 * Returns the meta object for the containment reference '
+	 * {@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.A#getB <em>B</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the containment reference '<em>B</em>'.
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.A#getB()
+	 * @see #getA()
+	 * @generated
+	 */
+	EReference getA_B();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.B
+	 * <em>B</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for class '<em>B</em>'.
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.B
+	 * @generated
+	 */
+	EClass getB();
+
+	/**
+	 * Returns the meta object for the containment reference '
+	 * {@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.B#getC <em>C</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the containment reference '<em>C</em>'.
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.B#getC()
+	 * @see #getB()
+	 * @generated
+	 */
+	EReference getB_C();
+
+	/**
+	 * Returns the meta object for the reference list '
+	 * {@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.B#getCList <em>CList</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the reference list '<em>CList</em>'.
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.B#getCList()
+	 * @see #getB()
+	 * @generated
+	 */
+	EReference getB_CList();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.C
+	 * <em>C</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for class '<em>C</em>'.
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.C
+	 * @generated
+	 */
+	EClass getC();
+
+	/**
+	 * Returns the meta object for the containment reference '
+	 * {@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.C#getD <em>D</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the containment reference '<em>D</em>'.
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.C#getD()
+	 * @see #getC()
+	 * @generated
+	 */
+	EReference getC_D();
+
+	/**
+	 * Returns the meta object for the map '
+	 * {@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.C#getEClassToString
+	 * <em>EClass To String</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the map '<em>EClass To String</em>'.
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.C#getEClassToString()
+	 * @see #getC()
+	 * @generated
+	 */
+	EReference getC_EClassToString();
+
+	/**
+	 * Returns the meta object for the map '
+	 * {@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.C#getEClassToA <em>EClass To A</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the map '<em>EClass To A</em>'.
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.C#getEClassToA()
+	 * @see #getC()
+	 * @generated
+	 */
+	EReference getC_EClassToA();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.D
+	 * <em>D</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for class '<em>D</em>'.
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.D
+	 * @generated
+	 */
+	EClass getD();
+
+	/**
+	 * Returns the meta object for the attribute '
+	 * {@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.D#getX <em>X</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>X</em>'.
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.D#getX()
+	 * @see #getD()
+	 * @generated
+	 */
+	EAttribute getD_X();
+
+	/**
+	 * Returns the meta object for the attribute list '
+	 * {@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.D#getYList <em>YList</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute list '<em>YList</em>'.
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.D#getYList()
+	 * @see #getD()
+	 * @generated
+	 */
+	EAttribute getD_YList();
+
+	/**
+	 * Returns the meta object for class '{@link java.util.Map.Entry <em>EClass To EString Map</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for class '<em>EClass To EString Map</em>'.
+	 * @see java.util.Map.Entry
+	 * @model keyType="org.eclipse.emf.ecore.EClass"
+	 *        valueDataType="org.eclipse.emf.ecore.EString"
+	 * @generated
+	 */
+	EClass getEClassToEStringMap();
+
+	/**
+	 * Returns the meta object for the reference '{@link java.util.Map.Entry <em>Key</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the reference '<em>Key</em>'.
+	 * @see java.util.Map.Entry
+	 * @see #getEClassToEStringMap()
+	 * @generated
+	 */
+	EReference getEClassToEStringMap_Key();
+
+	/**
+	 * Returns the meta object for the attribute '{@link java.util.Map.Entry <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Value</em>'.
+	 * @see java.util.Map.Entry
+	 * @see #getEClassToEStringMap()
+	 * @generated
+	 */
+	EAttribute getEClassToEStringMap_Value();
+
+	/**
+	 * Returns the meta object for class '{@link java.util.Map.Entry <em>EClass To AMap</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for class '<em>EClass To AMap</em>'.
+	 * @see java.util.Map.Entry
+	 * @model keyType="org.eclipse.emf.ecore.EClass"
+	 *        valueType="org.eclipse.emfforms.core.services.databinding.testmodel.test.model.A"
+	 * @generated
+	 */
+	EClass getEClassToAMap();
+
+	/**
+	 * Returns the meta object for the reference '{@link java.util.Map.Entry <em>Key</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the reference '<em>Key</em>'.
+	 * @see java.util.Map.Entry
+	 * @see #getEClassToAMap()
+	 * @generated
+	 */
+	EReference getEClassToAMap_Key();
+
+	/**
+	 * Returns the meta object for the reference '{@link java.util.Map.Entry <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the reference '<em>Value</em>'.
+	 * @see java.util.Map.Entry
+	 * @see #getEClassToAMap()
+	 * @generated
+	 */
+	EReference getEClassToAMap_Value();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	TestFactory getTestFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 * <li>each class,</li>
+	 * <li>each feature of each class,</li>
+	 * <li>each enum,</li>
+	 * <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	interface Literals
+	{
+		/**
+		 * The meta object literal for the '
+		 * {@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.AImpl <em>A</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.AImpl
+		 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.TestPackageImpl#getA()
+		 * @generated
+		 */
+		EClass A = eINSTANCE.getA();
+
+		/**
+		 * The meta object literal for the '<em><b>B</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EReference A__B = eINSTANCE.getA_B();
+
+		/**
+		 * The meta object literal for the '
+		 * {@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.BImpl <em>B</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.BImpl
+		 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.TestPackageImpl#getB()
+		 * @generated
+		 */
+		EClass B = eINSTANCE.getB();
+
+		/**
+		 * The meta object literal for the '<em><b>C</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EReference B__C = eINSTANCE.getB_C();
+
+		/**
+		 * The meta object literal for the '<em><b>CList</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EReference B__CLIST = eINSTANCE.getB_CList();
+
+		/**
+		 * The meta object literal for the '
+		 * {@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.CImpl <em>C</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.CImpl
+		 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.TestPackageImpl#getC()
+		 * @generated
+		 */
+		EClass C = eINSTANCE.getC();
+
+		/**
+		 * The meta object literal for the '<em><b>D</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EReference C__D = eINSTANCE.getC_D();
+
+		/**
+		 * The meta object literal for the '<em><b>EClass To String</b></em>' map feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EReference C__ECLASS_TO_STRING = eINSTANCE.getC_EClassToString();
+
+		/**
+		 * The meta object literal for the '<em><b>EClass To A</b></em>' map feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EReference C__ECLASS_TO_A = eINSTANCE.getC_EClassToA();
+
+		/**
+		 * The meta object literal for the '
+		 * {@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.DImpl <em>D</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.DImpl
+		 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.TestPackageImpl#getD()
+		 * @generated
+		 */
+		EClass D = eINSTANCE.getD();
+
+		/**
+		 * The meta object literal for the '<em><b>X</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute D__X = eINSTANCE.getD_X();
+
+		/**
+		 * The meta object literal for the '<em><b>YList</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute D__YLIST = eINSTANCE.getD_YList();
+
+		/**
+		 * The meta object literal for the '
+		 * {@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.EClassToEStringMapImpl
+		 * <em>EClass To EString Map</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.EClassToEStringMapImpl
+		 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.TestPackageImpl#getEClassToEStringMap()
+		 * @generated
+		 */
+		EClass ECLASS_TO_ESTRING_MAP = eINSTANCE.getEClassToEStringMap();
+
+		/**
+		 * The meta object literal for the '<em><b>Key</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EReference ECLASS_TO_ESTRING_MAP__KEY = eINSTANCE.getEClassToEStringMap_Key();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute ECLASS_TO_ESTRING_MAP__VALUE = eINSTANCE.getEClassToEStringMap_Value();
+
+		/**
+		 * The meta object literal for the '
+		 * {@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.EClassToAMapImpl
+		 * <em>EClass To AMap</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.EClassToAMapImpl
+		 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.TestPackageImpl#getEClassToAMap()
+		 * @generated
+		 */
+		EClass ECLASS_TO_AMAP = eINSTANCE.getEClassToAMap();
+
+		/**
+		 * The meta object literal for the '<em><b>Key</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EReference ECLASS_TO_AMAP__KEY = eINSTANCE.getEClassToAMap_Key();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EReference ECLASS_TO_AMAP__VALUE = eINSTANCE.getEClassToAMap_Value();
+
+	}
+
+} // TestPackage
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/impl/AImpl.java b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/impl/AImpl.java
new file mode 100644
index 0000000..e9beca3
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/impl/AImpl.java
@@ -0,0 +1,225 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ */
+package org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl;
+
+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.emfforms.core.services.databinding.testmodel.test.model.A;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.B;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>A</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.AImpl#getB <em>B</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AImpl extends MinimalEObjectImpl.Container implements A
+{
+	/**
+	 * The cached value of the '{@link #getB() <em>B</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getB()
+	 * @generated
+	 * @ordered
+	 */
+	protected B b;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected AImpl()
+	{
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass()
+	{
+		return TestPackage.Literals.A;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public B getB()
+	{
+		return b;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public NotificationChain basicSetB(B newB, NotificationChain msgs)
+	{
+		final B oldB = b;
+		b = newB;
+		if (eNotificationRequired())
+		{
+			final ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TestPackage.A__B,
+				oldB, newB);
+			if (msgs == null) {
+				msgs = notification;
+			} else {
+				msgs.add(notification);
+			}
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setB(B newB)
+	{
+		if (newB != b)
+		{
+			NotificationChain msgs = null;
+			if (b != null) {
+				msgs = ((InternalEObject) b)
+					.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TestPackage.A__B, null, msgs);
+			}
+			if (newB != null) {
+				msgs = ((InternalEObject) newB)
+					.eInverseAdd(this, EOPPOSITE_FEATURE_BASE - TestPackage.A__B, null, msgs);
+			}
+			msgs = basicSetB(newB, msgs);
+			if (msgs != null) {
+				msgs.dispatch();
+			}
+		}
+		else if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, TestPackage.A__B, newB, newB));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+	{
+		switch (featureID)
+		{
+		case TestPackage.A__B:
+			return basicSetB(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.A__B:
+			return getB();
+		}
+		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.A__B:
+			setB((B) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID)
+	{
+		switch (featureID)
+		{
+		case TestPackage.A__B:
+			setB((B) null);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID)
+	{
+		switch (featureID)
+		{
+		case TestPackage.A__B:
+			return b != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} // AImpl
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/impl/BImpl.java b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/impl/BImpl.java
new file mode 100644
index 0000000..8c6f86e
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/impl/BImpl.java
@@ -0,0 +1,269 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ */
+package org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.B;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.C;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>B</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.BImpl#getC <em>C</em>}</li>
+ * <li>{@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.BImpl#getCList <em>CList</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class BImpl extends MinimalEObjectImpl.Container implements B
+{
+	/**
+	 * The cached value of the '{@link #getC() <em>C</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getC()
+	 * @generated
+	 * @ordered
+	 */
+	protected C c;
+
+	/**
+	 * The cached value of the '{@link #getCList() <em>CList</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getCList()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<C> cList;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected BImpl()
+	{
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass()
+	{
+		return TestPackage.Literals.B;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public C getC()
+	{
+		return c;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public NotificationChain basicSetC(C newC, NotificationChain msgs)
+	{
+		final C oldC = c;
+		c = newC;
+		if (eNotificationRequired())
+		{
+			final ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TestPackage.B__C,
+				oldC, newC);
+			if (msgs == null) {
+				msgs = notification;
+			} else {
+				msgs.add(notification);
+			}
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setC(C newC)
+	{
+		if (newC != c)
+		{
+			NotificationChain msgs = null;
+			if (c != null) {
+				msgs = ((InternalEObject) c)
+					.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TestPackage.B__C, null, msgs);
+			}
+			if (newC != null) {
+				msgs = ((InternalEObject) newC)
+					.eInverseAdd(this, EOPPOSITE_FEATURE_BASE - TestPackage.B__C, null, msgs);
+			}
+			msgs = basicSetC(newC, msgs);
+			if (msgs != null) {
+				msgs.dispatch();
+			}
+		}
+		else if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, TestPackage.B__C, newC, newC));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EList<C> getCList()
+	{
+		if (cList == null)
+		{
+			cList = new EObjectResolvingEList<C>(C.class, this, TestPackage.B__CLIST);
+		}
+		return cList;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+	{
+		switch (featureID)
+		{
+		case TestPackage.B__C:
+			return basicSetC(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.B__C:
+			return getC();
+		case TestPackage.B__CLIST:
+			return getCList();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue)
+	{
+		switch (featureID)
+		{
+		case TestPackage.B__C:
+			setC((C) newValue);
+			return;
+		case TestPackage.B__CLIST:
+			getCList().clear();
+			getCList().addAll((Collection<? extends C>) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID)
+	{
+		switch (featureID)
+		{
+		case TestPackage.B__C:
+			setC((C) null);
+			return;
+		case TestPackage.B__CLIST:
+			getCList().clear();
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID)
+	{
+		switch (featureID)
+		{
+		case TestPackage.B__C:
+			return c != null;
+		case TestPackage.B__CLIST:
+			return cList != null && !cList.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} // BImpl
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/impl/CImpl.java b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/impl/CImpl.java
new file mode 100644
index 0000000..ce1cc6b
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/impl/CImpl.java
@@ -0,0 +1,320 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ */
+package org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.A;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.C;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.D;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>C</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.CImpl#getD <em>D</em>}</li>
+ * <li>{@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.CImpl#getEClassToString <em>
+ * EClass To String</em>}</li>
+ * <li>{@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.CImpl#getEClassToA <em>EClass To
+ * A</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CImpl extends MinimalEObjectImpl.Container implements C
+{
+	/**
+	 * The cached value of the '{@link #getD() <em>D</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getD()
+	 * @generated
+	 * @ordered
+	 */
+	protected D d;
+
+	/**
+	 * The cached value of the '{@link #getEClassToString() <em>EClass To String</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getEClassToString()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<EClass, String> eClassToString;
+
+	/**
+	 * The cached value of the '{@link #getEClassToA() <em>EClass To A</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getEClassToA()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<EClass, A> eClassToA;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected CImpl()
+	{
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass()
+	{
+		return TestPackage.Literals.C;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public D getD()
+	{
+		return d;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public NotificationChain basicSetD(D newD, NotificationChain msgs)
+	{
+		final D oldD = d;
+		d = newD;
+		if (eNotificationRequired())
+		{
+			final ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TestPackage.C__D,
+				oldD, newD);
+			if (msgs == null) {
+				msgs = notification;
+			} else {
+				msgs.add(notification);
+			}
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setD(D newD)
+	{
+		if (newD != d)
+		{
+			NotificationChain msgs = null;
+			if (d != null) {
+				msgs = ((InternalEObject) d)
+					.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TestPackage.C__D, null, msgs);
+			}
+			if (newD != null) {
+				msgs = ((InternalEObject) newD)
+					.eInverseAdd(this, EOPPOSITE_FEATURE_BASE - TestPackage.C__D, null, msgs);
+			}
+			msgs = basicSetD(newD, msgs);
+			if (msgs != null) {
+				msgs.dispatch();
+			}
+		}
+		else if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, TestPackage.C__D, newD, newD));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EMap<EClass, String> getEClassToString()
+	{
+		if (eClassToString == null)
+		{
+			eClassToString = new EcoreEMap<EClass, String>(TestPackage.Literals.ECLASS_TO_ESTRING_MAP,
+				EClassToEStringMapImpl.class, this, TestPackage.C__ECLASS_TO_STRING);
+		}
+		return eClassToString;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EMap<EClass, A> getEClassToA()
+	{
+		if (eClassToA == null)
+		{
+			eClassToA = new EcoreEMap<EClass, A>(TestPackage.Literals.ECLASS_TO_AMAP, EClassToAMapImpl.class, this,
+				TestPackage.C__ECLASS_TO_A);
+		}
+		return eClassToA;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+	{
+		switch (featureID)
+		{
+		case TestPackage.C__D:
+			return basicSetD(null, msgs);
+		case TestPackage.C__ECLASS_TO_STRING:
+			return ((InternalEList<?>) getEClassToString()).basicRemove(otherEnd, msgs);
+		case TestPackage.C__ECLASS_TO_A:
+			return ((InternalEList<?>) getEClassToA()).basicRemove(otherEnd, 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.C__D:
+			return getD();
+		case TestPackage.C__ECLASS_TO_STRING:
+			if (coreType) {
+				return getEClassToString();
+			}
+			return getEClassToString().map();
+		case TestPackage.C__ECLASS_TO_A:
+			if (coreType) {
+				return getEClassToA();
+			}
+			return getEClassToA().map();
+		}
+		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.C__D:
+			setD((D) newValue);
+			return;
+		case TestPackage.C__ECLASS_TO_STRING:
+			((EStructuralFeature.Setting) getEClassToString()).set(newValue);
+			return;
+		case TestPackage.C__ECLASS_TO_A:
+			((EStructuralFeature.Setting) getEClassToA()).set(newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID)
+	{
+		switch (featureID)
+		{
+		case TestPackage.C__D:
+			setD((D) null);
+			return;
+		case TestPackage.C__ECLASS_TO_STRING:
+			getEClassToString().clear();
+			return;
+		case TestPackage.C__ECLASS_TO_A:
+			getEClassToA().clear();
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID)
+	{
+		switch (featureID)
+		{
+		case TestPackage.C__D:
+			return d != null;
+		case TestPackage.C__ECLASS_TO_STRING:
+			return eClassToString != null && !eClassToString.isEmpty();
+		case TestPackage.C__ECLASS_TO_A:
+			return eClassToA != null && !eClassToA.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} // CImpl
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/impl/DImpl.java b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/impl/DImpl.java
new file mode 100644
index 0000000..50fe870
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/impl/DImpl.java
@@ -0,0 +1,245 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ */
+package org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.D;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>D</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.DImpl#getX <em>X</em>}</li>
+ * <li>{@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.DImpl#getYList <em>YList</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DImpl extends MinimalEObjectImpl.Container implements D
+{
+	/**
+	 * The default value of the '{@link #getX() <em>X</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getX()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String X_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getX() <em>X</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getX()
+	 * @generated
+	 * @ordered
+	 */
+	protected String x = X_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getYList() <em>YList</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getYList()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Integer> yList;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected DImpl()
+	{
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass()
+	{
+		return TestPackage.Literals.D;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String getX()
+	{
+		return x;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setX(String newX)
+	{
+		final String oldX = x;
+		x = newX;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, TestPackage.D__X, oldX, x));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EList<Integer> getYList()
+	{
+		if (yList == null)
+		{
+			yList = new EDataTypeUniqueEList<Integer>(Integer.class, this, TestPackage.D__YLIST);
+		}
+		return yList;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType)
+	{
+		switch (featureID)
+		{
+		case TestPackage.D__X:
+			return getX();
+		case TestPackage.D__YLIST:
+			return getYList();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue)
+	{
+		switch (featureID)
+		{
+		case TestPackage.D__X:
+			setX((String) newValue);
+			return;
+		case TestPackage.D__YLIST:
+			getYList().clear();
+			getYList().addAll((Collection<? extends Integer>) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID)
+	{
+		switch (featureID)
+		{
+		case TestPackage.D__X:
+			setX(X_EDEFAULT);
+			return;
+		case TestPackage.D__YLIST:
+			getYList().clear();
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID)
+	{
+		switch (featureID)
+		{
+		case TestPackage.D__X:
+			return X_EDEFAULT == null ? x != null : !X_EDEFAULT.equals(x);
+		case TestPackage.D__YLIST:
+			return yList != null && !yList.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String toString()
+	{
+		if (eIsProxy()) {
+			return super.toString();
+		}
+
+		final StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (x: "); //$NON-NLS-1$
+		result.append(x);
+		result.append(", yList: "); //$NON-NLS-1$
+		result.append(yList);
+		result.append(')');
+		return result.toString();
+	}
+
+} // DImpl
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/impl/EClassToAMapImpl.java b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/impl/EClassToAMapImpl.java
new file mode 100644
index 0000000..d8cf73a
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/impl/EClassToAMapImpl.java
@@ -0,0 +1,372 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ */
+package org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.BasicEMap;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.A;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>EClass To AMap</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.EClassToAMapImpl#getTypedKey <em>
+ * Key</em>}</li>
+ * <li>{@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.EClassToAMapImpl#getTypedValue
+ * <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EClassToAMapImpl extends MinimalEObjectImpl.Container implements BasicEMap.Entry<EClass, A>
+{
+	/**
+	 * The cached value of the '{@link #getTypedKey() <em>Key</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getTypedKey()
+	 * @generated
+	 * @ordered
+	 */
+	protected EClass key;
+
+	/**
+	 * The cached value of the '{@link #getTypedValue() <em>Value</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getTypedValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected A value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected EClassToAMapImpl()
+	{
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass()
+	{
+		return TestPackage.Literals.ECLASS_TO_AMAP;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public EClass getTypedKey()
+	{
+		if (key != null && key.eIsProxy())
+		{
+			final InternalEObject oldKey = (InternalEObject) key;
+			key = (EClass) eResolveProxy(oldKey);
+			if (key != oldKey)
+			{
+				if (eNotificationRequired()) {
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, TestPackage.ECLASS_TO_AMAP__KEY, oldKey,
+						key));
+				}
+			}
+		}
+		return key;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public EClass basicGetTypedKey()
+	{
+		return key;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public void setTypedKey(EClass newKey)
+	{
+		final EClass oldKey = key;
+		key = newKey;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, TestPackage.ECLASS_TO_AMAP__KEY, oldKey, key));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public A getTypedValue()
+	{
+		if (value != null && value.eIsProxy())
+		{
+			final InternalEObject oldValue = (InternalEObject) value;
+			value = (A) eResolveProxy(oldValue);
+			if (value != oldValue)
+			{
+				if (eNotificationRequired()) {
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, TestPackage.ECLASS_TO_AMAP__VALUE,
+						oldValue, value));
+				}
+			}
+		}
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public A basicGetTypedValue()
+	{
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public void setTypedValue(A newValue)
+	{
+		final A oldValue = value;
+		value = newValue;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, TestPackage.ECLASS_TO_AMAP__VALUE, oldValue, value));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType)
+	{
+		switch (featureID)
+		{
+		case TestPackage.ECLASS_TO_AMAP__KEY:
+			if (resolve) {
+				return getTypedKey();
+			}
+			return basicGetTypedKey();
+		case TestPackage.ECLASS_TO_AMAP__VALUE:
+			if (resolve) {
+				return getTypedValue();
+			}
+			return basicGetTypedValue();
+		}
+		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.ECLASS_TO_AMAP__KEY:
+			setTypedKey((EClass) newValue);
+			return;
+		case TestPackage.ECLASS_TO_AMAP__VALUE:
+			setTypedValue((A) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID)
+	{
+		switch (featureID)
+		{
+		case TestPackage.ECLASS_TO_AMAP__KEY:
+			setTypedKey((EClass) null);
+			return;
+		case TestPackage.ECLASS_TO_AMAP__VALUE:
+			setTypedValue((A) null);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID)
+	{
+		switch (featureID)
+		{
+		case TestPackage.ECLASS_TO_AMAP__KEY:
+			return key != null;
+		case TestPackage.ECLASS_TO_AMAP__VALUE:
+			return value != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected int hash = -1;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public int getHash()
+	{
+		if (hash == -1)
+		{
+			final Object theKey = getKey();
+			hash = theKey == null ? 0 : theKey.hashCode();
+		}
+		return hash;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setHash(int hash)
+	{
+		this.hash = hash;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EClass getKey()
+	{
+		return getTypedKey();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setKey(EClass key)
+	{
+		setTypedKey(key);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public A getValue()
+	{
+		return getTypedValue();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public A setValue(A value)
+	{
+		final A oldValue = getValue();
+		setTypedValue(value);
+		return oldValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	public EMap<EClass, A> getEMap()
+	{
+		final EObject container = eContainer();
+		return container == null ? null : (EMap<EClass, A>) container.eGet(eContainmentFeature());
+	}
+
+} // EClassToAMapImpl
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/impl/EClassToEStringMapImpl.java b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/impl/EClassToEStringMapImpl.java
new file mode 100644
index 0000000..86b7fbe
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/impl/EClassToEStringMapImpl.java
@@ -0,0 +1,379 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ */
+package org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.BasicEMap;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>EClass To EString Map</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>
+ * {@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.EClassToEStringMapImpl#getTypedKey
+ * <em>Key</em>}</li>
+ * <li>
+ * {@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl.EClassToEStringMapImpl#getTypedValue
+ * <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EClassToEStringMapImpl extends MinimalEObjectImpl.Container implements BasicEMap.Entry<EClass, String>
+{
+	/**
+	 * The cached value of the '{@link #getTypedKey() <em>Key</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getTypedKey()
+	 * @generated
+	 * @ordered
+	 */
+	protected EClass key;
+
+	/**
+	 * The default value of the '{@link #getTypedValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getTypedValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String VALUE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTypedValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getTypedValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected String value = VALUE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected EClassToEStringMapImpl()
+	{
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass()
+	{
+		return TestPackage.Literals.ECLASS_TO_ESTRING_MAP;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public EClass getTypedKey()
+	{
+		if (key != null && key.eIsProxy())
+		{
+			final InternalEObject oldKey = (InternalEObject) key;
+			key = (EClass) eResolveProxy(oldKey);
+			if (key != oldKey)
+			{
+				if (eNotificationRequired()) {
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, TestPackage.ECLASS_TO_ESTRING_MAP__KEY,
+						oldKey, key));
+				}
+			}
+		}
+		return key;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public EClass basicGetTypedKey()
+	{
+		return key;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public void setTypedKey(EClass newKey)
+	{
+		final EClass oldKey = key;
+		key = newKey;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, TestPackage.ECLASS_TO_ESTRING_MAP__KEY, oldKey, key));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public String getTypedValue()
+	{
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public void setTypedValue(String newValue)
+	{
+		final String oldValue = value;
+		value = newValue;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, TestPackage.ECLASS_TO_ESTRING_MAP__VALUE, oldValue,
+				value));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType)
+	{
+		switch (featureID)
+		{
+		case TestPackage.ECLASS_TO_ESTRING_MAP__KEY:
+			if (resolve) {
+				return getTypedKey();
+			}
+			return basicGetTypedKey();
+		case TestPackage.ECLASS_TO_ESTRING_MAP__VALUE:
+			return getTypedValue();
+		}
+		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.ECLASS_TO_ESTRING_MAP__KEY:
+			setTypedKey((EClass) newValue);
+			return;
+		case TestPackage.ECLASS_TO_ESTRING_MAP__VALUE:
+			setTypedValue((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID)
+	{
+		switch (featureID)
+		{
+		case TestPackage.ECLASS_TO_ESTRING_MAP__KEY:
+			setTypedKey((EClass) null);
+			return;
+		case TestPackage.ECLASS_TO_ESTRING_MAP__VALUE:
+			setTypedValue(VALUE_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID)
+	{
+		switch (featureID)
+		{
+		case TestPackage.ECLASS_TO_ESTRING_MAP__KEY:
+			return key != null;
+		case TestPackage.ECLASS_TO_ESTRING_MAP__VALUE:
+			return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String toString()
+	{
+		if (eIsProxy()) {
+			return super.toString();
+		}
+
+		final StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (value: "); //$NON-NLS-1$
+		result.append(value);
+		result.append(')');
+		return result.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected int hash = -1;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public int getHash()
+	{
+		if (hash == -1)
+		{
+			final Object theKey = getKey();
+			hash = theKey == null ? 0 : theKey.hashCode();
+		}
+		return hash;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setHash(int hash)
+	{
+		this.hash = hash;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EClass getKey()
+	{
+		return getTypedKey();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setKey(EClass key)
+	{
+		setTypedKey(key);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String getValue()
+	{
+		return getTypedValue();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String setValue(String value)
+	{
+		final String oldValue = getValue();
+		setTypedValue(value);
+		return oldValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	public EMap<EClass, String> getEMap()
+	{
+		final EObject container = eContainer();
+		return container == null ? null : (EMap<EClass, String>) container.eGet(eContainmentFeature());
+	}
+
+} // EClassToEStringMapImpl
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/impl/TestFactoryImpl.java b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/impl/TestFactoryImpl.java
new file mode 100644
index 0000000..dd513a5
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/impl/TestFactoryImpl.java
@@ -0,0 +1,202 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ */
+package org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl;
+
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.A;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.B;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.C;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.D;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestFactory;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class TestFactoryImpl extends EFactoryImpl implements TestFactory
+{
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public static TestFactory init()
+	{
+		try
+		{
+			final TestFactory theTestFactory = (TestFactory) EPackage.Registry.INSTANCE
+				.getEFactory(TestPackage.eNS_URI);
+			if (theTestFactory != null)
+			{
+				return theTestFactory;
+			}
+		} catch (final Exception exception)
+		{
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new TestFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public TestFactoryImpl()
+	{
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass)
+	{
+		switch (eClass.getClassifierID())
+		{
+		case TestPackage.A:
+			return createA();
+		case TestPackage.B:
+			return createB();
+		case TestPackage.C:
+			return createC();
+		case TestPackage.D:
+			return createD();
+		case TestPackage.ECLASS_TO_ESTRING_MAP:
+			return (EObject) createEClassToEStringMap();
+		case TestPackage.ECLASS_TO_AMAP:
+			return (EObject) createEClassToAMap();
+		default:
+			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
+	public A createA()
+	{
+		final AImpl a = new AImpl();
+		return a;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public B createB()
+	{
+		final BImpl b = new BImpl();
+		return b;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public C createC()
+	{
+		final CImpl c = new CImpl();
+		return c;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public D createD()
+	{
+		final DImpl d = new DImpl();
+		return d;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public Map.Entry<EClass, String> createEClassToEStringMap()
+	{
+		final EClassToEStringMapImpl eClassToEStringMap = new EClassToEStringMapImpl();
+		return eClassToEStringMap;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public Map.Entry<EClass, A> createEClassToAMap()
+	{
+		final EClassToAMapImpl eClassToAMap = new EClassToAMapImpl();
+		return eClassToAMap;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public TestPackage getTestPackage()
+	{
+		return (TestPackage) getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static TestPackage getPackage()
+	{
+		return TestPackage.eINSTANCE;
+	}
+
+} // TestFactoryImpl
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/impl/TestPackageImpl.java b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/impl/TestPackageImpl.java
new file mode 100644
index 0000000..a53ca0a
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/impl/TestPackageImpl.java
@@ -0,0 +1,539 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ */
+package org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl;
+
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestFactory;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class TestPackageImpl extends EPackageImpl implements TestPackage
+{
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private EClass aEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private EClass bEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private EClass cEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private EClass dEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private EClass eClassToEStringMapEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private EClass eClassToAMapEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
+	 * EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>
+	 * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
+	 * performs initialization of the package, or returns the registered package, if one already exists. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private TestPackageImpl()
+	{
+		super(eNS_URI, TestFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 *
+	 * <p>
+	 * This method is used to initialize {@link TestPackage#eINSTANCE} when that field is accessed. 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()
+	 * @generated
+	 */
+	public static TestPackage init()
+	{
+		if (isInited) {
+			return (TestPackage) EPackage.Registry.INSTANCE.getEPackage(TestPackage.eNS_URI);
+		}
+
+		// Obtain or create and register package
+		final TestPackageImpl theTestPackage = (TestPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof TestPackageImpl ? EPackage.Registry.INSTANCE
+			.get(eNS_URI)
+			: new TestPackageImpl());
+
+		isInited = true;
+
+		// Create package meta-data objects
+		theTestPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theTestPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theTestPackage.freeze();
+
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(TestPackage.eNS_URI, theTestPackage);
+		return theTestPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EClass getA()
+	{
+		return aEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EReference getA_B()
+	{
+		return (EReference) aEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EClass getB()
+	{
+		return bEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EReference getB_C()
+	{
+		return (EReference) bEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EReference getB_CList()
+	{
+		return (EReference) bEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EClass getC()
+	{
+		return cEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EReference getC_D()
+	{
+		return (EReference) cEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EReference getC_EClassToString()
+	{
+		return (EReference) cEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EReference getC_EClassToA()
+	{
+		return (EReference) cEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EClass getD()
+	{
+		return dEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getD_X()
+	{
+		return (EAttribute) dEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getD_YList()
+	{
+		return (EAttribute) dEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EClass getEClassToEStringMap()
+	{
+		return eClassToEStringMapEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EReference getEClassToEStringMap_Key()
+	{
+		return (EReference) eClassToEStringMapEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getEClassToEStringMap_Value()
+	{
+		return (EAttribute) eClassToEStringMapEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EClass getEClassToAMap()
+	{
+		return eClassToAMapEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EReference getEClassToAMap_Key()
+	{
+		return (EReference) eClassToAMapEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EReference getEClassToAMap_Value()
+	{
+		return (EReference) eClassToAMapEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public TestFactory getTestFactory()
+	{
+		return (TestFactory) getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package. This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public void createPackageContents()
+	{
+		if (isCreated) {
+			return;
+		}
+		isCreated = true;
+
+		// Create classes and their features
+		aEClass = createEClass(A);
+		createEReference(aEClass, A__B);
+
+		bEClass = createEClass(B);
+		createEReference(bEClass, B__C);
+		createEReference(bEClass, B__CLIST);
+
+		cEClass = createEClass(C);
+		createEReference(cEClass, C__D);
+		createEReference(cEClass, C__ECLASS_TO_STRING);
+		createEReference(cEClass, C__ECLASS_TO_A);
+
+		dEClass = createEClass(D);
+		createEAttribute(dEClass, D__X);
+		createEAttribute(dEClass, D__YLIST);
+
+		eClassToEStringMapEClass = createEClass(ECLASS_TO_ESTRING_MAP);
+		createEReference(eClassToEStringMapEClass, ECLASS_TO_ESTRING_MAP__KEY);
+		createEAttribute(eClassToEStringMapEClass, ECLASS_TO_ESTRING_MAP__VALUE);
+
+		eClassToAMapEClass = createEClass(ECLASS_TO_AMAP);
+		createEReference(eClassToAMapEClass, ECLASS_TO_AMAP__KEY);
+		createEReference(eClassToAMapEClass, ECLASS_TO_AMAP__VALUE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model. This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public void initializePackageContents()
+	{
+		if (isInitialized) {
+			return;
+		}
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+
+		// Initialize classes and features; add operations and parameters
+		initEClass(aEClass, org.eclipse.emfforms.core.services.databinding.testmodel.test.model.A.class,
+			"A", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(
+			getA_B(),
+			getB(),
+			null,
+			"b", null, 0, 1, org.eclipse.emfforms.core.services.databinding.testmodel.test.model.A.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(bEClass, org.eclipse.emfforms.core.services.databinding.testmodel.test.model.B.class,
+			"B", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(
+			getB_C(),
+			getC(),
+			null,
+			"c", null, 0, 1, org.eclipse.emfforms.core.services.databinding.testmodel.test.model.B.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(
+			getB_CList(),
+			getC(),
+			null,
+			"cList", null, 0, -1, org.eclipse.emfforms.core.services.databinding.testmodel.test.model.B.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(cEClass, org.eclipse.emfforms.core.services.databinding.testmodel.test.model.C.class,
+			"C", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(
+			getC_D(),
+			getD(),
+			null,
+			"d", null, 0, 1, org.eclipse.emfforms.core.services.databinding.testmodel.test.model.C.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(
+			getC_EClassToString(),
+			getEClassToEStringMap(),
+			null,
+			"eClassToString", null, 0, -1, org.eclipse.emfforms.core.services.databinding.testmodel.test.model.C.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(
+			getC_EClassToA(),
+			getEClassToAMap(),
+			null,
+			"eClassToA", null, 0, -1, org.eclipse.emfforms.core.services.databinding.testmodel.test.model.C.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(dEClass, org.eclipse.emfforms.core.services.databinding.testmodel.test.model.D.class,
+			"D", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(
+			getD_X(),
+			ecorePackage.getEString(),
+			"x", null, 0, 1, org.eclipse.emfforms.core.services.databinding.testmodel.test.model.D.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(
+			getD_YList(),
+			ecorePackage.getEInt(),
+			"yList", null, 0, -1, org.eclipse.emfforms.core.services.databinding.testmodel.test.model.D.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(eClassToEStringMapEClass, Map.Entry.class,
+			"EClassToEStringMap", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(
+			getEClassToEStringMap_Key(),
+			ecorePackage.getEClass(),
+			null,
+			"key", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(
+			getEClassToEStringMap_Value(),
+			ecorePackage.getEString(),
+			"value", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(eClassToAMapEClass, Map.Entry.class,
+			"EClassToAMap", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(
+			getEClassToAMap_Key(),
+			ecorePackage.getEClass(),
+			null,
+			"key", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(
+			getEClassToAMap_Value(),
+			getA(),
+			null,
+			"value", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} // TestPackageImpl
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/util/TestAdapterFactory.java b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/util/TestAdapterFactory.java
new file mode 100644
index 0000000..19bb7ee
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/util/TestAdapterFactory.java
@@ -0,0 +1,268 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ */
+package org.eclipse.emfforms.core.services.databinding.testmodel.test.model.util;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.A;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.B;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.C;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.D;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage
+ * @generated
+ */
+public class TestAdapterFactory extends AdapterFactoryImpl
+{
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected static TestPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public TestAdapterFactory()
+	{
+		if (modelPackage == null)
+		{
+			modelPackage = TestPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * 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
+	 */
+	@Override
+	public boolean isFactoryForType(Object object)
+	{
+		if (object == modelPackage)
+		{
+			return true;
+		}
+		if (object instanceof EObject)
+		{
+			return ((EObject) object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected TestSwitch<Adapter> modelSwitch =
+		new TestSwitch<Adapter>()
+		{
+			@Override
+			public Adapter caseA(A object)
+			{
+				return createAAdapter();
+			}
+
+			@Override
+			public Adapter caseB(B object)
+			{
+				return createBAdapter();
+			}
+
+			@Override
+			public Adapter caseC(C object)
+			{
+				return createCAdapter();
+			}
+
+			@Override
+			public Adapter caseD(D object)
+			{
+				return createDAdapter();
+			}
+
+			@Override
+			public Adapter caseEClassToEStringMap(Map.Entry<EClass, String> object)
+			{
+				return createEClassToEStringMapAdapter();
+			}
+
+			@Override
+			public Adapter caseEClassToAMap(Map.Entry<EClass, A> object)
+			{
+				return createEClassToAMapAdapter();
+			}
+
+			@Override
+			public Adapter defaultCase(EObject object)
+			{
+				return createEObjectAdapter();
+			}
+		};
+
+	/**
+	 * 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
+	 */
+	@Override
+	public Adapter createAdapter(Notifier target)
+	{
+		return modelSwitch.doSwitch((EObject) target);
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '
+	 * {@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.A <em>A</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.emfforms.core.services.databinding.testmodel.test.model.A
+	 * @generated
+	 */
+	public Adapter createAAdapter()
+	{
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '
+	 * {@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.B <em>B</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.emfforms.core.services.databinding.testmodel.test.model.B
+	 * @generated
+	 */
+	public Adapter createBAdapter()
+	{
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '
+	 * {@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.C <em>C</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.emfforms.core.services.databinding.testmodel.test.model.C
+	 * @generated
+	 */
+	public Adapter createCAdapter()
+	{
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '
+	 * {@link org.eclipse.emfforms.core.services.databinding.testmodel.test.model.D <em>D</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.emfforms.core.services.databinding.testmodel.test.model.D
+	 * @generated
+	 */
+	public Adapter createDAdapter()
+	{
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link java.util.Map.Entry <em>EClass To EString Map</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 java.util.Map.Entry
+	 * @generated
+	 */
+	public Adapter createEClassToEStringMapAdapter()
+	{
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link java.util.Map.Entry <em>EClass To AMap</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 java.util.Map.Entry
+	 * @generated
+	 */
+	public Adapter createEClassToAMapAdapter()
+	{
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter()
+	{
+		return null;
+	}
+
+} // TestAdapterFactory
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/util/TestSwitch.java b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/util/TestSwitch.java
new file mode 100644
index 0000000..c594c51
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/src/org/eclipse/emfforms/core/services/databinding/testmodel/test/model/util/TestSwitch.java
@@ -0,0 +1,270 @@
+/**
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ */
+package org.eclipse.emfforms.core.services.databinding.testmodel.test.model.util;
+
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.A;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.B;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.C;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.D;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)} to invoke the <code>caseXXX</code> method for each
+ * class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage
+ * @generated
+ */
+public class TestSwitch<T> extends Switch<T>
+{
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected static TestPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public TestSwitch()
+	{
+		if (modelPackage == null)
+		{
+			modelPackage = TestPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Checks whether this is a switch for the given package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @parameter ePackage the package in question.
+	 * @return whether this is a switch for the given package.
+	 * @generated
+	 */
+	@Override
+	protected boolean isSwitchFor(EPackage ePackage)
+	{
+		return ePackage == modelPackage;
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that
+	 * result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	@Override
+	protected T doSwitch(int classifierID, EObject theEObject)
+	{
+		switch (classifierID)
+		{
+		case TestPackage.A: {
+			final A a = (A) theEObject;
+			T result = caseA(a);
+			if (result == null) {
+				result = defaultCase(theEObject);
+			}
+			return result;
+		}
+		case TestPackage.B: {
+			final B b = (B) theEObject;
+			T result = caseB(b);
+			if (result == null) {
+				result = defaultCase(theEObject);
+			}
+			return result;
+		}
+		case TestPackage.C: {
+			final C c = (C) theEObject;
+			T result = caseC(c);
+			if (result == null) {
+				result = defaultCase(theEObject);
+			}
+			return result;
+		}
+		case TestPackage.D: {
+			final D d = (D) theEObject;
+			T result = caseD(d);
+			if (result == null) {
+				result = defaultCase(theEObject);
+			}
+			return result;
+		}
+		case TestPackage.ECLASS_TO_ESTRING_MAP: {
+			@SuppressWarnings("unchecked")
+			final Map.Entry<EClass, String> eClassToEStringMap = (Map.Entry<EClass, String>) theEObject;
+			T result = caseEClassToEStringMap(eClassToEStringMap);
+			if (result == null) {
+				result = defaultCase(theEObject);
+			}
+			return result;
+		}
+		case TestPackage.ECLASS_TO_AMAP: {
+			@SuppressWarnings("unchecked")
+			final Map.Entry<EClass, A> eClassToAMap = (Map.Entry<EClass, A>) theEObject;
+			T result = caseEClassToAMap(eClassToAMap);
+			if (result == null) {
+				result = defaultCase(theEObject);
+			}
+			return result;
+		}
+		default:
+			return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>A</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>A</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseA(A object)
+	{
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>B</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>B</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseB(B object)
+	{
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>C</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>C</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseC(C object)
+	{
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>D</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>D</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseD(D object)
+	{
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EClass To EString Map</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>EClass To EString Map</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseEClassToEStringMap(Map.Entry<EClass, String> object)
+	{
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EClass To AMap</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>EClass To AMap</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseEClassToAMap(Map.Entry<EClass, A> object)
+	{
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * 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)
+	 * @generated
+	 */
+	@Override
+	public T defaultCase(EObject object)
+	{
+		return null;
+	}
+
+} // TestSwitch
diff --git a/tests/org.eclipse.emfforms.core.services.emf.tests/.checkstyle b/tests/org.eclipse.emfforms.core.services.emf.tests/.checkstyle
new file mode 100644
index 0000000..32e02a4
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.emf.tests/.checkstyle
@@ -0,0 +1,13 @@
+<?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="c" location="esmCheckstyleTest.xml" type="project" description="">
+    <additional-data name="protect-config-file" value="false"/>
+  </local-check-config>
+  <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/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath b/tests/org.eclipse.emfforms.core.services.emf.tests/.classpath
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath
copy to tests/org.eclipse.emfforms.core.services.emf.tests/.classpath
diff --git a/tests/org.eclipse.emfforms.core.services.emf.tests/.project b/tests/org.eclipse.emfforms.core.services.emf.tests/.project
new file mode 100644
index 0000000..6dea147
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.emf.tests/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.core.services.emf.tests</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.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.emfforms.core.services.emf.tests/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
copy to tests/org.eclipse.emfforms.core.services.emf.tests/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/tests/org.eclipse.emfforms.core.services.emf.tests/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to tests/org.eclipse.emfforms.core.services.emf.tests/.settings/org.eclipse.core.runtime.prefs
diff --git a/tests/org.eclipse.emfforms.core.services.emf.tests/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emfforms.core.services.emf.tests/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..66c53c1
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.emf.tests/.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.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/tests/org.eclipse.emfforms.core.services.emf.tests/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
copy to tests/org.eclipse.emfforms.core.services.emf.tests/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.emfforms.core.services.emf.tests/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.ui.prefs
copy to tests/org.eclipse.emfforms.core.services.emf.tests/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/tests/org.eclipse.emfforms.core.services.emf.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to tests/org.eclipse.emfforms.core.services.emf.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.core.services.emf.tests/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
copy to tests/org.eclipse.emfforms.core.services.emf.tests/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.emfforms.core.services.emf.tests/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
copy to tests/org.eclipse.emfforms.core.services.emf.tests/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..ceeb4a8
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.emf.tests/AllIntegrationTests core.services.emf.launch
@@ -0,0 +1,262 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

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

+<setAttribute key="additional_plugins"/>

+<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"/>

+<stringAttribute key="featureDefaultLocation" value="workspace"/>

+<stringAttribute key="featurePluginResolution" value="workspace"/>

+<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.core.services.emf.tests/src/org/eclipse/emfforms/core/services/emf/tests/AllIntegrationTests.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.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"/>

+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emfforms.core.services.emf.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.emf.cdo.server.product.tcp_h2"/>

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

+<setAttribute key="selected_features">

+<setEntry value="org.eclipse.draw2d.sdk:default"/>

+<setEntry value="org.eclipse.draw2d.source:default"/>

+<setEntry value="org.eclipse.draw2d:default"/>

+<setEntry value="org.eclipse.e4.rcp:default"/>

+<setEntry value="org.eclipse.emf.cdo.compare.source:default"/>

+<setEntry value="org.eclipse.emf.cdo.compare:default"/>

+<setEntry value="org.eclipse.emf.cdo.defs.source:default"/>

+<setEntry value="org.eclipse.emf.cdo.defs:default"/>

+<setEntry value="org.eclipse.emf.cdo.doc.source:default"/>

+<setEntry value="org.eclipse.emf.cdo.doc:default"/>

+<setEntry value="org.eclipse.emf.cdo.examples.installer.source:default"/>

+<setEntry value="org.eclipse.emf.cdo.examples.installer:default"/>

+<setEntry value="org.eclipse.emf.cdo.migrator.source:default"/>

+<setEntry value="org.eclipse.emf.cdo.migrator:default"/>

+<setEntry value="org.eclipse.emf.cdo.sdk.source:default"/>

+<setEntry value="org.eclipse.emf.cdo.sdk:default"/>

+<setEntry value="org.eclipse.emf.cdo.server.db.source:default"/>

+<setEntry value="org.eclipse.emf.cdo.server.db:default"/>

+<setEntry value="org.eclipse.emf.cdo.server.lissome.source:default"/>

+<setEntry value="org.eclipse.emf.cdo.server.lissome:default"/>

+<setEntry value="org.eclipse.emf.cdo.server.mongodb.source:default"/>

+<setEntry value="org.eclipse.emf.cdo.server.mongodb:default"/>

+<setEntry value="org.eclipse.emf.cdo.server.source:default"/>

+<setEntry value="org.eclipse.emf.cdo.server:default"/>

+<setEntry value="org.eclipse.emf.cdo.source:default"/>

+<setEntry value="org.eclipse.emf.cdo:default"/>

+<setEntry value="org.eclipse.emf.codegen.ecore.source:default"/>

+<setEntry value="org.eclipse.emf.codegen.ecore.ui.source:default"/>

+<setEntry value="org.eclipse.emf.codegen.ecore.ui:default"/>

+<setEntry value="org.eclipse.emf.codegen.ecore:default"/>

+<setEntry value="org.eclipse.emf.codegen.source:default"/>

+<setEntry value="org.eclipse.emf.codegen.ui.source:default"/>

+<setEntry value="org.eclipse.emf.codegen.ui:default"/>

+<setEntry value="org.eclipse.emf.codegen:default"/>

+<setEntry value="org.eclipse.emf.common.ui.source:default"/>

+<setEntry value="org.eclipse.emf.common.ui:default"/>

+<setEntry value="org.eclipse.emf.common:default"/>

+<setEntry value="org.eclipse.emf.converter.source:default"/>

+<setEntry value="org.eclipse.emf.converter:default"/>

+<setEntry value="org.eclipse.emf.databinding.edit.source:default"/>

+<setEntry value="org.eclipse.emf.databinding.edit:default"/>

+<setEntry value="org.eclipse.emf.databinding.source:default"/>

+<setEntry value="org.eclipse.emf.databinding:default"/>

+<setEntry value="org.eclipse.emf.doc.source:default"/>

+<setEntry value="org.eclipse.emf.doc:default"/>

+<setEntry value="org.eclipse.emf.ecore.edit.source:default"/>

+<setEntry value="org.eclipse.emf.ecore.edit:default"/>

+<setEntry value="org.eclipse.emf.ecore.editor.source:default"/>

+<setEntry value="org.eclipse.emf.ecore.editor:default"/>

+<setEntry value="org.eclipse.emf.ecore:default"/>

+<setEntry value="org.eclipse.emf.ecp.cdo.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.changebroker.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.demo.e3.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.demo.e4.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.diffmerge.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.e3.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.e4.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.ecore.editor.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.ecore.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.emfforms.idetooling.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.emfforms.runtime.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.emfforms.sdk.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.emfstore.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.examplemodel.ui.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.graphiti.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.license.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.makeithappen.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.nosite.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.rap.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.rap.sdk.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.rap.util.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.sdk.e4.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.sdk.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.target.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.test.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.test.model.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.transaction.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.validation.view.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.view.categorization.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.view.compoundcontrol.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.view.custom.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.view.di.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.view.dynamictree.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.view.edapt.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.view.group.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.view.groupedgrid.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.view.horizontal.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.view.indexdmr.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.view.keyattributedmr.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.view.label.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.view.mappingdmr.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.view.model.controls.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.view.model.editor.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.view.model.editor.test.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.view.rule.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.view.section.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.view.stack.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.view.table.celleditor.rcp.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.view.table.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.view.template.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.view.template.helper.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.view.treemasterdetail.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.view.unset.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.view.validation.bean.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.view.validation.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.view.validation.initial.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.view.vertical.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.view.viewproxy.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.viewmodel.feature:default"/>

+<setEntry value="org.eclipse.emf.ecp.workspace.feature:default"/>

+<setEntry value="org.eclipse.emf.edapt.runtime.feature:default"/>

+<setEntry value="org.eclipse.emf.edit.source:default"/>

+<setEntry value="org.eclipse.emf.edit.ui.source:default"/>

+<setEntry value="org.eclipse.emf.edit.ui:default"/>

+<setEntry value="org.eclipse.emf.edit:default"/>

+<setEntry value="org.eclipse.emf.emfstore.client.feature:default"/>

+<setEntry value="org.eclipse.emf.emfstore.client.transaction.feature:default"/>

+<setEntry value="org.eclipse.emf.emfstore.client.ui.feature:default"/>

+<setEntry value="org.eclipse.emf.emfstore.common.feature:default"/>

+<setEntry value="org.eclipse.emf.emfstore.ecore.feature:default"/>

+<setEntry value="org.eclipse.emf.emfstore.example.feature:default"/>

+<setEntry value="org.eclipse.emf.emfstore.server.feature:default"/>

+<setEntry value="org.eclipse.emf.mapping.ecore.editor.source:default"/>

+<setEntry value="org.eclipse.emf.mapping.ecore.editor:default"/>

+<setEntry value="org.eclipse.emf.mapping.ecore.source:default"/>

+<setEntry value="org.eclipse.emf.mapping.ecore:default"/>

+<setEntry value="org.eclipse.emf.mapping.source:default"/>

+<setEntry value="org.eclipse.emf.mapping.ui.source:default"/>

+<setEntry value="org.eclipse.emf.mapping.ui:default"/>

+<setEntry value="org.eclipse.emf.mapping:default"/>

+<setEntry value="org.eclipse.emf.sdk:default"/>

+<setEntry value="org.eclipse.emf.source:default"/>

+<setEntry value="org.eclipse.emf.transaction.doc:default"/>

+<setEntry value="org.eclipse.emf.transaction.sdk:default"/>

+<setEntry value="org.eclipse.emf.transaction.source:default"/>

+<setEntry value="org.eclipse.emf.transaction:default"/>

+<setEntry value="org.eclipse.emf.validation.doc:default"/>

+<setEntry value="org.eclipse.emf.validation.ocl.source:default"/>

+<setEntry value="org.eclipse.emf.validation.ocl:default"/>

+<setEntry value="org.eclipse.emf.validation.sdk:default"/>

+<setEntry value="org.eclipse.emf.validation.source:default"/>

+<setEntry value="org.eclipse.emf.validation:default"/>

+<setEntry value="org.eclipse.emf.workspace.doc:default"/>

+<setEntry value="org.eclipse.emf.workspace.source:default"/>

+<setEntry value="org.eclipse.emf.workspace:default"/>

+<setEntry value="org.eclipse.emf:default"/>

+<setEntry value="org.eclipse.equinox.compendium.sdk:default"/>

+<setEntry value="org.eclipse.equinox.core.feature:default"/>

+<setEntry value="org.eclipse.equinox.core.sdk:default"/>

+<setEntry value="org.eclipse.equinox.executable:default"/>

+<setEntry value="org.eclipse.equinox.p2.core.feature:default"/>

+<setEntry value="org.eclipse.equinox.p2.extras.feature:default"/>

+<setEntry value="org.eclipse.equinox.p2.rcp.feature:default"/>

+<setEntry value="org.eclipse.equinox.p2.user.ui:default"/>

+<setEntry value="org.eclipse.equinox.sdk:default"/>

+<setEntry value="org.eclipse.equinox.server.core:default"/>

+<setEntry value="org.eclipse.equinox.server.jetty:default"/>

+<setEntry value="org.eclipse.equinox.server.p2:default"/>

+<setEntry value="org.eclipse.equinox.serverside.sdk:default"/>

+<setEntry value="org.eclipse.equinox.weaving.sdk:default"/>

+<setEntry value="org.eclipse.gef.sdk:default"/>

+<setEntry value="org.eclipse.gef.source:default"/>

+<setEntry value="org.eclipse.gef:default"/>

+<setEntry value="org.eclipse.graphiti.export.feature:default"/>

+<setEntry value="org.eclipse.graphiti.feature:default"/>

+<setEntry value="org.eclipse.help:default"/>

+<setEntry value="org.eclipse.jdt:default"/>

+<setEntry value="org.eclipse.net4j.db.doc.source:default"/>

+<setEntry value="org.eclipse.net4j.db.doc:default"/>

+<setEntry value="org.eclipse.net4j.db.h2.source:default"/>

+<setEntry value="org.eclipse.net4j.db.h2:default"/>

+<setEntry value="org.eclipse.net4j.db.source:default"/>

+<setEntry value="org.eclipse.net4j.db:default"/>

+<setEntry value="org.eclipse.net4j.defs.source:default"/>

+<setEntry value="org.eclipse.net4j.defs:default"/>

+<setEntry value="org.eclipse.net4j.doc.source:default"/>

+<setEntry value="org.eclipse.net4j.doc:default"/>

+<setEntry value="org.eclipse.net4j.examples.installer.source:default"/>

+<setEntry value="org.eclipse.net4j.examples.installer:default"/>

+<setEntry value="org.eclipse.net4j.sdk.source:default"/>

+<setEntry value="org.eclipse.net4j.sdk:default"/>

+<setEntry value="org.eclipse.net4j.source:default"/>

+<setEntry value="org.eclipse.net4j.ui.source:default"/>

+<setEntry value="org.eclipse.net4j.ui:default"/>

+<setEntry value="org.eclipse.net4j.util.doc.source:default"/>

+<setEntry value="org.eclipse.net4j.util.doc:default"/>

+<setEntry value="org.eclipse.net4j.util.source:default"/>

+<setEntry value="org.eclipse.net4j.util.ui.source:default"/>

+<setEntry value="org.eclipse.net4j.util.ui:default"/>

+<setEntry value="org.eclipse.net4j.util:default"/>

+<setEntry value="org.eclipse.net4j:default"/>

+<setEntry value="org.eclipse.ocl.all.sdk:default"/>

+<setEntry value="org.eclipse.ocl.all:default"/>

+<setEntry value="org.eclipse.ocl.core.sdk:default"/>

+<setEntry value="org.eclipse.ocl.doc.source:default"/>

+<setEntry value="org.eclipse.ocl.doc:default"/>

+<setEntry value="org.eclipse.ocl.edit.source:default"/>

+<setEntry value="org.eclipse.ocl.edit:default"/>

+<setEntry value="org.eclipse.ocl.source:default"/>

+<setEntry value="org.eclipse.ocl.ui.source:default"/>

+<setEntry value="org.eclipse.ocl.ui:default"/>

+<setEntry value="org.eclipse.ocl.uml.source:default"/>

+<setEntry value="org.eclipse.ocl.uml:default"/>

+<setEntry value="org.eclipse.ocl:default"/>

+<setEntry value="org.eclipse.pde:default"/>

+<setEntry value="org.eclipse.platform:default"/>

+<setEntry value="org.eclipse.rcp.configuration:default"/>

+<setEntry value="org.eclipse.rcp:default"/>

+<setEntry value="org.eclipse.swtbot.eclipse.gef:default"/>

+<setEntry value="org.eclipse.swtbot.eclipse.test.junit:default"/>

+<setEntry value="org.eclipse.swtbot.eclipse:default"/>

+<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,javax.xml@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.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@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@-1:true,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.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"/>

+<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.core.services.emf.tests/AllTests core.services.emf.launch b/tests/org.eclipse.emfforms.core.services.emf.tests/AllTests core.services.emf.launch
new file mode 100644
index 0000000..e96fecd
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.emf.tests/AllTests core.services.emf.launch
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

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

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

+<listEntry value="/org.eclipse.emfforms.core.services.emf.tests/src/org/eclipse/emfforms/core/services/emf/tests/AllTests.java"/>

+</listAttribute>

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

+<listEntry value="1"/>

+</listAttribute>

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

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

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

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

+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emfforms.core.services.emf.tests.AllTests"/>

+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emfforms.core.services.emf.tests"/>

+</launchConfiguration>

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
new file mode 100644
index 0000000..80a0560
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.emf.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMFForms Core Service EMF Tests
+Bundle-SymbolicName: org.eclipse.emfforms.core.services.emf.tests
+Bundle-Version: 1.6.0.qualifier
+Fragment-Host: org.eclipse.emfforms.core.services.emf;bundle-version="[1.6.0,2.0.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-Vendor: Eclipse Modeling Project
+Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
+ org.mockito.mockito-all;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)"
+Export-Package: org.eclipse.emfforms.core.services.emf.tests;version="1.6.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.databinding;version="1.6.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.label;version="1.6.0";x-internal:=true
diff --git a/tests/org.eclipse.emfforms.core.services.emf.tests/build.properties b/tests/org.eclipse.emfforms.core.services.emf.tests/build.properties
new file mode 100644
index 0000000..34d2e4d
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.emf.tests/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .
diff --git a/tests/org.eclipse.emfforms.core.services.emf.tests/pom.xml b/tests/org.eclipse.emfforms.core.services.emf.tests/pom.xml
new file mode 100644
index 0000000..889504f
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.emf.tests/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.6.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.6.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.emfforms.core.services.locale.default</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+							<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.localization</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+</project>
diff --git a/tests/org.eclipse.emfforms.core.services.emf.tests/src/org/eclipse/emfforms/core/services/emf/tests/AllIntegrationTests.java b/tests/org.eclipse.emfforms.core.services.emf.tests/src/org/eclipse/emfforms/core/services/emf/tests/AllIntegrationTests.java
new file mode 100644
index 0000000..41bdd4d
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.emf.tests/src/org/eclipse/emfforms/core/services/emf/tests/AllIntegrationTests.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.core.services.emf.tests;
+
+import org.eclipse.emfforms.internal.core.services.databinding.EMFFormsDatabindingImpl_ITest;
+import org.eclipse.emfforms.internal.core.services.label.EMFFormsLabelProviderDefaultImpl_ITest;
+import org.eclipse.emfforms.internal.core.services.label.EMFFormsLabelProviderImpl_ITest;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+/**
+ * Test suite containing all integration tests for core.services.labelprovider.
+ *
+ * @author Lucas Koehler
+ *
+ */
+@RunWith(Suite.class)
+@SuiteClasses({ EMFFormsLabelProviderImpl_ITest.class, EMFFormsLabelProviderDefaultImpl_ITest.class,
+	EMFFormsDatabindingImpl_ITest.class })
+public class AllIntegrationTests {
+
+}
diff --git a/tests/org.eclipse.emfforms.core.services.emf.tests/src/org/eclipse/emfforms/core/services/emf/tests/AllTests.java b/tests/org.eclipse.emfforms.core.services.emf.tests/src/org/eclipse/emfforms/core/services/emf/tests/AllTests.java
new file mode 100644
index 0000000..c5f0eed
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.emf.tests/src/org/eclipse/emfforms/core/services/emf/tests/AllTests.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.core.services.emf.tests;
+
+import org.eclipse.emfforms.internal.core.services.databinding.EMFFormsDatabindingImpl_Test;
+import org.eclipse.emfforms.internal.core.services.label.EMFFormsLabelProviderDefaultImpl_Test;
+import org.eclipse.emfforms.internal.core.services.label.EMFFormsLabelProviderImpl_Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+@RunWith(Suite.class)
+@SuiteClasses({ EMFFormsLabelProviderImpl_Test.class, EMFFormsLabelProviderDefaultImpl_Test.class,
+	EMFFormsDatabindingImpl_Test.class })
+public class AllTests {
+	// JUnit 4 Test Suite
+}
diff --git a/tests/org.eclipse.emfforms.core.services.emf.tests/src/org/eclipse/emfforms/internal/core/services/databinding/EMFFormsDatabindingImpl_ITest.java b/tests/org.eclipse.emfforms.core.services.emf.tests/src/org/eclipse/emfforms/internal/core/services/databinding/EMFFormsDatabindingImpl_ITest.java
new file mode 100644
index 0000000..d4b6181
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.emf.tests/src/org/eclipse/emfforms/internal/core/services/databinding/EMFFormsDatabindingImpl_ITest.java
@@ -0,0 +1,95 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler- initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.databinding;
+
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
+import org.osgi.framework.ServiceRegistration;
+
+/**
+ * JUnit integration test for {@link EMFFormsDatabindingImpl}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class EMFFormsDatabindingImpl_ITest {
+
+	private static BundleContext bundleContext;
+	private EMFFormsDatabinding service;
+	private ServiceReference<EMFFormsDatabinding> serviceReference;
+
+	@BeforeClass
+	public static void setUpBeforeClass() {
+		bundleContext = FrameworkUtil.getBundle(EMFFormsDatabindingImpl_ITest.class).getBundleContext();
+	}
+
+	@Before
+	public void setUp() {
+		serviceReference = bundleContext
+			.getServiceReference(EMFFormsDatabinding.class);
+		service = bundleContext.getService(serviceReference);
+	}
+
+	@After
+	public void tearDown() {
+		bundleContext.ungetService(serviceReference);
+	}
+
+	@Test
+	public void testServiceType() {
+		assertTrue(EMFFormsDatabindingImpl.class.isInstance(service));
+
+	}
+
+	@Test
+	public void testServiceUsageValue() throws DatabindingFailedException {
+		final DomainModelReferenceConverter converter = mock(DomainModelReferenceConverter.class);
+		final VFeaturePathDomainModelReference reference = mock(VFeaturePathDomainModelReference.class);
+		when(converter.isApplicable(reference)).thenReturn(0d);
+		final ServiceRegistration<DomainModelReferenceConverter> converterService = bundleContext.registerService(
+			DomainModelReferenceConverter.class, converter, null);
+		service.getValueProperty(reference, mock(EObject.class));
+		verify(converter).isApplicable(reference);
+		verify(converter).convertToValueProperty(eq(reference), any(EObject.class));
+		converterService.unregister();
+	}
+
+	@Test
+	public void testServiceUsageList() throws DatabindingFailedException {
+		final DomainModelReferenceConverter converter = mock(DomainModelReferenceConverter.class);
+		final VFeaturePathDomainModelReference reference = mock(VFeaturePathDomainModelReference.class);
+		when(converter.isApplicable(reference)).thenReturn(0d);
+		final ServiceRegistration<DomainModelReferenceConverter> converterService = bundleContext.registerService(
+			DomainModelReferenceConverter.class, converter, null);
+		service.getListProperty(reference, mock(EObject.class));
+		verify(converter).isApplicable(reference);
+		verify(converter).convertToListProperty(eq(reference), any(EObject.class));
+		converterService.unregister();
+	}
+}
diff --git a/tests/org.eclipse.emfforms.core.services.emf.tests/src/org/eclipse/emfforms/internal/core/services/databinding/EMFFormsDatabindingImpl_Test.java b/tests/org.eclipse.emfforms.core.services.emf.tests/src/org/eclipse/emfforms/internal/core/services/databinding/EMFFormsDatabindingImpl_Test.java
new file mode 100644
index 0000000..f762515
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.emf.tests/src/org/eclipse/emfforms/internal/core/services/databinding/EMFFormsDatabindingImpl_Test.java
@@ -0,0 +1,448 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.databinding;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.same;
+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.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.list.IListProperty;
+import org.eclipse.core.databinding.property.list.SimpleListProperty;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.core.databinding.property.value.SimpleValueProperty;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+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.VViewPackage;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * This JUnit test tests the correct functionality of {@link EMFFormsDatabindingImpl}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class EMFFormsDatabindingImpl_Test {
+
+	private EMFFormsDatabindingImpl databindingService;
+	private DefaultRealm realm;
+
+	/**
+	 * Set up that is executed before every test.
+	 */
+	@Before
+	public void setUp() {
+		realm = new DefaultRealm();
+		databindingService = new EMFFormsDatabindingImpl();
+	}
+
+	@After
+	public void tearDown() {
+		realm.dispose();
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.EMFFormsDatabindingImpl#getObservableValue(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference, org.eclipse.emf.ecore.EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test
+	public void testGetObservableValue() throws DatabindingFailedException {
+		databindingService = spy(new EMFFormsDatabindingImpl());
+		final VDomainModelReference reference = mock(VDomainModelReference.class);
+		final EObject eObject = mock(EObject.class);
+		final DomainModelReferenceConverter converter1 = mock(DomainModelReferenceConverter.class);
+		final IValueProperty expectedResultProperty = mock(IValueProperty.class);
+		final IObservableValue expectedObservableValue = mock(IObservableValue.class);
+
+		when(converter1.isApplicable(reference)).thenReturn(0d);
+		when(converter1.convertToValueProperty(reference, eObject)).thenReturn(expectedResultProperty);
+		when(expectedResultProperty.observe(eObject)).thenReturn(expectedObservableValue);
+
+		databindingService.addDomainModelReferenceConverter(converter1);
+		final IObservableValue resultObservableValue = databindingService.getObservableValue(reference, eObject);
+
+		verify(databindingService).getValueProperty(reference, eObject);
+		verify(expectedResultProperty).observe(eObject);
+		assertEquals(expectedObservableValue, resultObservableValue);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.EMFFormsDatabindingImpl#getObservableValue(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference, org.eclipse.emf.ecore.EObject)}
+	 * .
+	 * <p>
+	 * Tests whether the method returns the correct result for both arguments being <strong>null</strong>.
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test(expected = IllegalArgumentException.class)
+	public void testGetObservableValueNullBoth() throws DatabindingFailedException {
+		databindingService.getObservableValue(null, null);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.EMFFormsDatabindingImpl#getObservableValue(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference, org.eclipse.emf.ecore.EObject)}
+	 * .
+	 * <p>
+	 * Tests whether the method returns the correct result for the VDomainModelReference argument being
+	 * <strong>null</strong>.
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test(expected = IllegalArgumentException.class)
+	public void testGetObservableValueNullDomainModelReference() throws DatabindingFailedException {
+		databindingService.getObservableValue(null, mock(EObject.class));
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.EMFFormsDatabindingImpl#getObservableValue(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference, org.eclipse.emf.ecore.EObject)}
+	 * .
+	 * <p>
+	 * Tests whether the method returns the correct result for the EObject argument being <strong>null</strong>.
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test(expected = IllegalArgumentException.class)
+	public void testGetObservableValueNullObject() throws DatabindingFailedException {
+		databindingService.getObservableValue(mock(VDomainModelReference.class), null);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.EMFFormsDatabindingImpl#getValueProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test(expected = DatabindingFailedException.class)
+	public void testGetValuePropertyNoApplicableConverter() throws DatabindingFailedException {
+		final VDomainModelReference modelReference = mock(VDomainModelReference.class);
+		final EClass eClass = mock(EClass.class);
+		when(eClass.getName()).thenReturn("test"); //$NON-NLS-1$
+		when(modelReference.eClass()).thenReturn(eClass);
+		databindingService.getValueProperty(modelReference, mock(EObject.class));
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.EMFFormsDatabindingImpl#getValueProperty(VDomainModelReference,EObject)}
+	 * .
+	 * Tests whether the correct converter is used when one is applicable and one is not.
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test
+	public void testGetValuePropertyOneApplicable() throws DatabindingFailedException {
+		final VDomainModelReference reference = mock(VDomainModelReference.class);
+		final DomainModelReferenceConverter converter1 = mock(DomainModelReferenceConverter.class);
+		final DomainModelReferenceConverter converter2 = mock(DomainModelReferenceConverter.class);
+		final IValueProperty expectedResultProperty = mock(IValueProperty.class);
+
+		when(converter1.isApplicable(reference)).thenReturn(0d);
+		when(converter1.convertToValueProperty(same(reference), any(EObject.class))).thenReturn(expectedResultProperty);
+		when(converter2.isApplicable(reference)).thenReturn(DomainModelReferenceConverter.NOT_APPLICABLE);
+		when(converter2.convertToValueProperty(same(reference), any(EObject.class))).thenReturn(
+			mock(IValueProperty.class));
+
+		databindingService.addDomainModelReferenceConverter(converter1);
+		databindingService.addDomainModelReferenceConverter(converter2);
+		final IValueProperty valueProperty = databindingService.getValueProperty(reference, mock(EObject.class));
+		assertEquals(expectedResultProperty, valueProperty);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.EMFFormsDatabindingImpl#getValueProperty(VDomainModelReference,EObject)}
+	 * .
+	 * Tests whether the correct converter is used when there are two applicable ones with different priorities.
+	 * Also tests whether the correct result is returned.
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test
+	public void testGetValuePropertyTwoApplicable() throws DatabindingFailedException {
+		final VDomainModelReference reference = mock(VFeaturePathDomainModelReference.class);
+		final DomainModelReferenceConverter converter1 = mock(DomainModelReferenceConverter.class);
+		final DomainModelReferenceConverter converter2 = mock(DomainModelReferenceConverter.class);
+		final IValueProperty expectedResultProperty = mock(IValueProperty.class);
+
+		when(converter1.isApplicable(reference)).thenReturn(5d);
+		when(converter1.convertToValueProperty(same(reference), any(EObject.class))).thenReturn(expectedResultProperty);
+		when(converter2.isApplicable(reference)).thenReturn(1d);
+		when(converter2.convertToValueProperty(same(reference), any(EObject.class))).thenReturn(
+			mock(SimpleValueProperty.class));
+
+		databindingService.addDomainModelReferenceConverter(converter1);
+		databindingService.addDomainModelReferenceConverter(converter2);
+		final IValueProperty valueProperty = databindingService.getValueProperty(reference, mock(EObject.class));
+		assertEquals(expectedResultProperty, valueProperty);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.EMFFormsDatabindingImpl#getValueProperty(VDomainModelReference,EObject)}
+	 * .
+	 * Tests whether the {@link EMFFormsDatabindingImpl} considers all {@link DomainModelReferenceConverter}s, that are
+	 * registered to it, for its conversions.
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test
+	public void testGetValuePropertyAllConsidered() throws DatabindingFailedException {
+		final VDomainModelReference reference = mock(VDomainModelReference.class);
+
+		final DomainModelReferenceConverter converter1 = mock(DomainModelReferenceConverter.class);
+		final DomainModelReferenceConverter converter2 = mock(DomainModelReferenceConverter.class);
+		final DomainModelReferenceConverter converter3 = mock(DomainModelReferenceConverter.class);
+
+		databindingService.addDomainModelReferenceConverter(converter1);
+		databindingService.addDomainModelReferenceConverter(converter2);
+		databindingService.addDomainModelReferenceConverter(converter3);
+
+		databindingService.getValueProperty(reference, mock(EObject.class));
+
+		verify(converter1).isApplicable(reference);
+		verify(converter2).isApplicable(reference);
+		verify(converter3).isApplicable(reference);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.EMFFormsDatabindingImpl#getValueProperty(VDomainModelReference,EObject)}
+	 * .
+	 * <p>
+	 * Tests whether the method returns the correct result for a <strong>null</strong> argument.
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test(expected = IllegalArgumentException.class)
+	public void testGetValuePropertyNull() throws DatabindingFailedException {
+		databindingService.getValueProperty(null, mock(EObject.class));
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.EMFFormsDatabindingImpl#getObservableList(VDomainModelReference, org.eclipse.emf.ecore.EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test
+	public void testGetObservableList() throws DatabindingFailedException {
+		databindingService = spy(new EMFFormsDatabindingImpl());
+		final VDomainModelReference reference = mock(VDomainModelReference.class);
+		final EObject eObject = mock(EObject.class);
+		final DomainModelReferenceConverter converter1 = mock(DomainModelReferenceConverter.class);
+		final IListProperty expectedResultProperty = mock(IListProperty.class);
+		final IObservableList expectedObservableList = mock(IObservableList.class);
+
+		when(converter1.isApplicable(reference)).thenReturn(0d);
+		when(converter1.convertToListProperty(reference, eObject)).thenReturn(expectedResultProperty);
+		when(expectedResultProperty.observe(eObject)).thenReturn(expectedObservableList);
+
+		databindingService.addDomainModelReferenceConverter(converter1);
+		final IObservableList resultObservableList = databindingService.getObservableList(reference, eObject);
+
+		verify(databindingService).getListProperty(reference, eObject);
+		verify(expectedResultProperty).observe(eObject);
+		assertEquals(expectedObservableList, resultObservableList);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.EMFFormsDatabindingImpl#getObservableList(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference, org.eclipse.emf.ecore.EObject)}
+	 * .
+	 * <p>
+	 * Tests whether the method returns the correct result for both arguments being <strong>null</strong>.
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test(expected = IllegalArgumentException.class)
+	public void testGetObservableListNullBoth() throws DatabindingFailedException {
+		databindingService.getObservableList(null, null);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.EMFFormsDatabindingImpl#getObservableList(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference, org.eclipse.emf.ecore.EObject)}
+	 * .
+	 * <p>
+	 * Tests whether the method returns the correct result for the VDomainModelReference argument being
+	 * <strong>null</strong>.
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test(expected = IllegalArgumentException.class)
+	public void testGetObservableListNullDomainModelReference() throws DatabindingFailedException {
+		databindingService.getObservableList(null, mock(EObject.class));
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.EMFFormsDatabindingImpl#getObservableList(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference, org.eclipse.emf.ecore.EObject)}
+	 * .
+	 * <p>
+	 * Tests whether the method returns the correct result for the EObject argument being <strong>null</strong>.
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test(expected = IllegalArgumentException.class)
+	public void testGetObservableListNullObject() throws DatabindingFailedException {
+		databindingService.getObservableList(mock(VDomainModelReference.class), null);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.EMFFormsDatabindingImpl#getListProperty(VDomainModelReference,EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test(expected = DatabindingFailedException.class)
+	public void testGetListPropertyNoApplicableConverter() throws DatabindingFailedException {
+		databindingService.getListProperty(mock(VDomainModelReference.class), mock(EObject.class));
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.EMFFormsDatabindingImpl#getListProperty(VDomainModelReference,EObject)}
+	 * .
+	 * Tests whether the correct converter is used when one is applicable and one is not.
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test
+	public void testGetListPropertyOneApplicable() throws DatabindingFailedException {
+		final VDomainModelReference reference = mock(VDomainModelReference.class);
+		final DomainModelReferenceConverter converter1 = mock(DomainModelReferenceConverter.class);
+		final DomainModelReferenceConverter converter2 = mock(DomainModelReferenceConverter.class);
+		final IListProperty expectedResultProperty = mock(IListProperty.class);
+
+		when(converter1.isApplicable(reference)).thenReturn(0d);
+		when(converter1.convertToListProperty(same(reference), any(EObject.class))).thenReturn(expectedResultProperty);
+		when(converter2.isApplicable(reference)).thenReturn(DomainModelReferenceConverter.NOT_APPLICABLE);
+		when(converter2.convertToListProperty(same(reference), any(EObject.class))).thenReturn(
+			mock(IListProperty.class));
+
+		databindingService.addDomainModelReferenceConverter(converter1);
+		databindingService.addDomainModelReferenceConverter(converter2);
+		final IListProperty listProperty = databindingService.getListProperty(reference, mock(EObject.class));
+		assertEquals(expectedResultProperty, listProperty);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.EMFFormsDatabindingImpl#getListProperty(VDomainModelReference,EObject)}
+	 * .
+	 * Tests whether the correct converter is used when there are two applicable ones with different priorities.
+	 * Also tests whether the correct result is returned.
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test
+	public void testGetListPropertyTwoApplicable() throws DatabindingFailedException {
+		final VDomainModelReference reference = mock(VFeaturePathDomainModelReference.class);
+		final DomainModelReferenceConverter converter1 = mock(DomainModelReferenceConverter.class);
+		final DomainModelReferenceConverter converter2 = mock(DomainModelReferenceConverter.class);
+		final IListProperty expectedResultProperty = mock(IListProperty.class);
+
+		when(converter1.isApplicable(reference)).thenReturn(5d);
+		when(converter1.convertToListProperty(same(reference), any(EObject.class))).thenReturn(expectedResultProperty);
+		when(converter2.isApplicable(reference)).thenReturn(1d);
+		when(converter2.convertToListProperty(same(reference), any(EObject.class))).thenReturn(
+			mock(SimpleListProperty.class));
+
+		databindingService.addDomainModelReferenceConverter(converter1);
+		databindingService.addDomainModelReferenceConverter(converter2);
+		final IListProperty listProperty = databindingService.getListProperty(reference, mock(EObject.class));
+		assertEquals(expectedResultProperty, listProperty);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.EMFFormsDatabindingImpl#getValueProperty(VDomainModelReference,EObject)}
+	 * .
+	 * Tests whether the {@link EMFFormsDatabindingImpl} considers all {@link DomainModelReferenceConverter}s, that are
+	 * registered to it, for its conversions.
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test
+	public void testGetListPropertyAllConsidered() throws DatabindingFailedException {
+		final VDomainModelReference reference = mock(VDomainModelReference.class);
+
+		final DomainModelReferenceConverter converter1 = mock(DomainModelReferenceConverter.class);
+		final DomainModelReferenceConverter converter2 = mock(DomainModelReferenceConverter.class);
+		final DomainModelReferenceConverter converter3 = mock(DomainModelReferenceConverter.class);
+
+		databindingService.addDomainModelReferenceConverter(converter1);
+		databindingService.addDomainModelReferenceConverter(converter2);
+		databindingService.addDomainModelReferenceConverter(converter3);
+
+		databindingService.getListProperty(reference, mock(EObject.class));
+
+		verify(converter1).isApplicable(reference);
+		verify(converter2).isApplicable(reference);
+		verify(converter3).isApplicable(reference);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.EMFFormsDatabindingImpl#getValueProperty(VDomainModelReference,EObject)}
+	 * .
+	 * <p>
+	 * Tests whether the method returns the correct result for a <strong>null</strong> argument.
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test(expected = IllegalArgumentException.class)
+	public void testGetListPropertyNull() throws DatabindingFailedException {
+		databindingService.getListProperty(null, mock(EObject.class));
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.core.services.databinding.EMFFormsDatabindingImpl#removeDomainModelReferenceConverter(org.eclipse.emfforms.spi.core.services.databinding.DomainModelReferenceConverter)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException if the databinding failed
+	 */
+	@Test(expected = DatabindingFailedException.class)
+	public void testRemoveDomainModelReferenceConverter() throws DatabindingFailedException {
+		final VDomainModelReference reference = mock(VFeaturePathDomainModelReference.class);
+		when(reference.eClass()).thenReturn(VViewPackage.eINSTANCE.getFeaturePathDomainModelReference());
+		final DomainModelReferenceConverter converter1 = mock(DomainModelReferenceConverter.class);
+
+		when(converter1.isApplicable(reference)).thenReturn(5d);
+
+		databindingService.addDomainModelReferenceConverter(converter1);
+		databindingService.removeDomainModelReferenceConverter(converter1);
+		databindingService.getValueProperty(reference, mock(EObject.class));
+	}
+}
diff --git a/tests/org.eclipse.emfforms.core.services.emf.tests/src/org/eclipse/emfforms/internal/core/services/label/EMFFormsLabelProviderDefaultImpl_ITest.java b/tests/org.eclipse.emfforms.core.services.emf.tests/src/org/eclipse/emfforms/internal/core/services/label/EMFFormsLabelProviderDefaultImpl_ITest.java
new file mode 100644
index 0000000..521a538
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.emf.tests/src/org/eclipse/emfforms/internal/core/services/label/EMFFormsLabelProviderDefaultImpl_ITest.java
@@ -0,0 +1,221 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.label;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.same;
+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.Dictionary;
+import java.util.Hashtable;
+
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.emf.databinding.EObjectObservableValue;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.test.common.DefaultRealm;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage;
+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.emfspecificservice.EMFSpecificService;
+import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
+import org.eclipse.emfforms.spi.core.services.label.NoLabelFoundException;
+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.FrameworkUtil;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceReference;
+import org.osgi.framework.ServiceRegistration;
+
+/**
+ * JUnit integration test that tests that {@link EMFFormsLabelProviderDefaultImpl} uses the correct services.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class EMFFormsLabelProviderDefaultImpl_ITest {
+
+	private static BundleContext bundleContext;
+	private static EMFFormsDatabinding databindingService;
+	private static ServiceRegistration<EMFFormsDatabinding> databindingRegisterService;
+	private static EMFSpecificService emfSpecificService;
+	private static ServiceRegistration<EMFSpecificService> emfSpecificRegisterService;
+	private static EMFFormsLabelProviderDefaultImpl labelProvider;
+	private static ServiceReference<EMFFormsLabelProvider> serviceReference;
+	private static IValueProperty valueProperty;
+	private static EObjectObservableValue observableValue;
+	private static IItemPropertyDescriptor itemPropertyDescriptor;
+
+	/**
+	 * Set up that is executed before every test case.
+	 * Registers a databinding and an emf specific service.
+	 * Mocks various objects for the tests.
+	 *
+	 * @throws DatabindingFailedException should not happen, just needs to be thrown because the databinding service
+	 *             defines the throw in its interface.
+	 * @throws InvalidSyntaxException thrown by OSGI
+	 */
+	@BeforeClass
+	public static void setUpBeforeClass() throws DatabindingFailedException, InvalidSyntaxException {
+		bundleContext = FrameworkUtil.getBundle(EMFFormsLabelProviderDefaultImpl_ITest.class).getBundleContext();
+
+		final Dictionary<String, Object> dictionary = new Hashtable<String, Object>();
+		dictionary.put("service.ranking", 5); //$NON-NLS-1$
+
+		databindingService = mock(EMFFormsDatabinding.class);
+		databindingRegisterService = bundleContext.registerService(EMFFormsDatabinding.class, databindingService,
+			dictionary);
+
+		emfSpecificService = mock(EMFSpecificService.class);
+		emfSpecificRegisterService = bundleContext.registerService(
+			EMFSpecificService.class, emfSpecificService, dictionary);
+
+		final EClass eContainingClass = TestPackage.eINSTANCE.getD();
+		final EStructuralFeature structuralFeature = mock(EStructuralFeature.class);
+		when(structuralFeature.getEContainingClass()).thenReturn(eContainingClass);
+		valueProperty = mock(IValueProperty.class);
+		when(valueProperty.getValueType()).thenReturn(structuralFeature);
+		observableValue = mock(EObjectObservableValue.class);
+		when(observableValue.getValueType()).thenReturn(structuralFeature);
+		when(observableValue.getObserved()).thenReturn(mock(EObject.class));
+		itemPropertyDescriptor = mock(IItemPropertyDescriptor.class);
+		when(itemPropertyDescriptor.getDescription(any(EObject.class))).thenReturn("description"); //$NON-NLS-1$
+		when(itemPropertyDescriptor.getDisplayName(any(EObject.class))).thenReturn("displayName"); //$NON-NLS-1$
+
+		when(emfSpecificService.getIItemPropertyDescriptor(any(EObject.class), same(structuralFeature))).thenReturn(
+			itemPropertyDescriptor);
+		when(databindingService.getValueProperty(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			valueProperty);
+		when(databindingService.getObservableValue(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			observableValue);
+
+		serviceReference = bundleContext.getServiceReferences(EMFFormsLabelProvider.class, "(service.ranking=1)") //$NON-NLS-1$
+			.iterator().next();
+		labelProvider = (EMFFormsLabelProviderDefaultImpl) bundleContext.getService(serviceReference);
+	}
+
+	private DefaultRealm realm;
+
+	/**
+	 * Resets and newly configures the services for every test.
+	 *
+	 * @throws DatabindingFailedException should not happen, just needs to be thrown because the databinding service
+	 *             defines the throw in its interface.
+	 */
+	@Before
+	public void setUp() throws DatabindingFailedException {
+		reset(databindingService);
+		when(databindingService.getValueProperty(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			valueProperty);
+		when(databindingService.getObservableValue(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			observableValue);
+		realm = new DefaultRealm();
+	}
+
+	/**
+	 * Dispose the realm.
+	 */
+	@After
+	public void tearDown() {
+		realm.dispose();
+	}
+
+	/**
+	 * Unregisters the services after every test.
+	 */
+	@AfterClass
+	public static void tearDownClass() {
+		databindingRegisterService.unregister();
+		emfSpecificRegisterService.unregister();
+		bundleContext.ungetService(serviceReference);
+	}
+
+	/**
+	 * Tests that {@link EMFFormsLabelProviderDefaultImpl#getDisplayName(VDomainModelReference)} uses the databinding
+	 * and emf
+	 * specific services.
+	 *
+	 * @throws DatabindingFailedException should not happen, just needs to be thrown because the databinding service
+	 *             defines the throw in its interface.
+	 * @throws NoLabelFoundException should not be thrown
+	 */
+	@Test
+	public void testServiceUsageDisplayNameOneParam() throws DatabindingFailedException, NoLabelFoundException {
+		final VDomainModelReference domainModelReference = mock(VDomainModelReference.class);
+		labelProvider.getDisplayName(domainModelReference);
+
+		verify(databindingService).getValueProperty(same(domainModelReference), any(EObject.class));
+	}
+
+	/**
+	 * Tests that {@link EMFFormsLabelProviderDefaultImpl#getDescription(VDomainModelReference)} uses the databinding
+	 * and emf
+	 * specific services.
+	 *
+	 * @throws DatabindingFailedException should not happen, just needs to be thrown because the databinding service
+	 *             defines the throw in its interface.
+	 * @throws NoLabelFoundException should not be thrown
+	 */
+	@Test
+	public void testServiceUsageDescriptionOneParam() throws DatabindingFailedException, NoLabelFoundException {
+		final VDomainModelReference domainModelReference = mock(VDomainModelReference.class);
+		labelProvider.getDescription(domainModelReference);
+
+		verify(databindingService).getValueProperty(same(domainModelReference), any(EObject.class));
+	}
+
+	/**
+	 * Tests that {@link EMFFormsLabelProviderDefaultImpl#getDisplayName(VDomainModelReference, EObject)} uses the
+	 * databinding
+	 * and emf specific services.
+	 *
+	 * @throws DatabindingFailedException should not happen, just needs to be thrown because the databinding service
+	 *             defines the throw in its interface.
+	 * @throws NoLabelFoundException Should not be thrown
+	 */
+	@Test
+	public void testServiceUsageDisplayNameTwoParam() throws DatabindingFailedException, NoLabelFoundException {
+		final VDomainModelReference domainModelReference = mock(VDomainModelReference.class);
+		final EObject eObject = mock(EObject.class);
+		labelProvider.getDisplayName(domainModelReference, eObject);
+
+		verify(databindingService).getObservableValue(domainModelReference, eObject);
+	}
+
+	/**
+	 * Tests that {@link EMFFormsLabelProviderDefaultImpl#getDescription(VDomainModelReference, EObject)} uses the
+	 * databinding
+	 * and emf specific services.
+	 *
+	 * @throws DatabindingFailedException should not happen, just needs to be thrown because the databinding service
+	 *             defines the throw in its interface.
+	 * @throws NoLabelFoundException Should not be thrown
+	 */
+	@Test
+	public void testServiceUsageDescriptionTwoParam() throws DatabindingFailedException, NoLabelFoundException {
+		final VDomainModelReference domainModelReference = mock(VDomainModelReference.class);
+		final EObject eObject = mock(EObject.class);
+		labelProvider.getDescription(domainModelReference, eObject);
+
+		verify(databindingService).getObservableValue(domainModelReference, eObject);
+	}
+}
diff --git a/tests/org.eclipse.emfforms.core.services.emf.tests/src/org/eclipse/emfforms/internal/core/services/label/EMFFormsLabelProviderDefaultImpl_Test.java b/tests/org.eclipse.emfforms.core.services.emf.tests/src/org/eclipse/emfforms/internal/core/services/label/EMFFormsLabelProviderDefaultImpl_Test.java
new file mode 100644
index 0000000..4ebc1e3
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.emf.tests/src/org/eclipse/emfforms/internal/core/services/label/EMFFormsLabelProviderDefaultImpl_Test.java
@@ -0,0 +1,271 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.label;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.emf.databinding.EObjectObservableValue;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.test.common.DefaultRealm;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.D;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage;
+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.emfspecificservice.EMFSpecificService;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * JUnit tests for {@link EMFFormsLabelProviderImpl}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class EMFFormsLabelProviderDefaultImpl_Test {
+
+	private EMFFormsLabelProviderDefaultImpl labelProvider;
+	private EMFSpecificService emfSpecificService;
+	private IItemPropertyDescriptor itemPropertyDescriptor;
+	private IValueProperty valueProperty;
+	private EObjectObservableValue observableValue;
+	private EMFFormsDatabinding databindingService;
+	private DefaultRealm defaultRealm;
+
+	/**
+	 * Set up that is executed before every test case.
+	 * Registers a databinding and an emf specific service.
+	 * Mocks various objects for the tests.
+	 */
+	@Before
+	public void setUp() {
+		defaultRealm = new DefaultRealm();
+		labelProvider = new EMFFormsLabelProviderDefaultImpl();
+
+		databindingService = mock(EMFFormsDatabinding.class);
+		labelProvider.setEMFFormsDatabinding(databindingService);
+
+		valueProperty = mock(IValueProperty.class);
+		observableValue = mock(EObjectObservableValue.class);
+		// when(observableValue.getRealm()).thenReturn(Realm.getDefault());
+
+		emfSpecificService = mock(EMFSpecificService.class);
+		labelProvider.setEMFSpecificService(emfSpecificService);
+
+		itemPropertyDescriptor = mock(IItemPropertyDescriptor.class);
+		when(emfSpecificService.getIItemPropertyDescriptor(any(EObject.class), any(EStructuralFeature.class)))
+			.thenReturn(itemPropertyDescriptor);
+	}
+
+	/**
+	 * Clean up the realm.
+	 */
+	@After
+	public void tearDown() {
+		defaultRealm.dispose();
+	}
+
+	/**
+	 * Test method for
+	 * {@link EMFFormsLabelProviderDefaultImpl#getDisplayName(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException should not happen, just needs to be thrown because the databinding service
+	 *             defines the throw in its interface.
+	 */
+	@Test
+	public void testGetDisplayNameOneParam() throws DatabindingFailedException {
+		final String expectedResult = "expected"; //$NON-NLS-1$
+		final EStructuralFeature structuralFeature = mock(EStructuralFeature.class);
+		final VDomainModelReference domainModelReference = mock(VDomainModelReference.class);
+
+		when(structuralFeature.getEContainingClass()).thenReturn(TestPackage.eINSTANCE.getD());
+		when(itemPropertyDescriptor.getDisplayName(any(Object.class))).thenReturn(expectedResult);
+		when(valueProperty.getValueType()).thenReturn(structuralFeature);
+		when(databindingService.getValueProperty(domainModelReference, null)).thenReturn(valueProperty);
+
+		final IObservableValue result = labelProvider.getDisplayName(domainModelReference);
+
+		verify(databindingService).getValueProperty(domainModelReference, null);
+		verify(itemPropertyDescriptor).getDisplayName(any(D.class));
+		assertEquals(expectedResult, result.getValue());
+	}
+
+	/**
+	 * Test method for
+	 * {@link EMFFormsLabelProviderDefaultImpl#getDisplayName(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference)}
+	 * .
+	 */
+	@Test(expected = IllegalArgumentException.class)
+	public void testGetDisplayNameOneParamNull() {
+		labelProvider.getDisplayName(null);
+	}
+
+	/**
+	 * Test method for
+	 * {@link EMFFormsLabelProviderDefaultImpl#getDisplayName(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference, org.eclipse.emf.ecore.EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException should not happen, just needs to be thrown because the databinding service
+	 *             defines the throw in its interface.
+	 */
+	@Test
+	public void testGetDisplayNameTwoParams() throws DatabindingFailedException {
+		final String expectedResult = "expected"; //$NON-NLS-1$
+		final EObject eObject = mock(EObject.class);
+		final EObject value = mock(EObject.class);
+		final EStructuralFeature structuralFeature = mock(EStructuralFeature.class);
+		final VDomainModelReference domainModelReference = mock(VDomainModelReference.class);
+
+		when(itemPropertyDescriptor.getDisplayName(value)).thenReturn(expectedResult);
+		when(observableValue.getValueType()).thenReturn(structuralFeature);
+		when(observableValue.getObserved()).thenReturn(value);
+		when(databindingService.getObservableValue(domainModelReference, eObject)).thenReturn(observableValue);
+		final IObservableValue result = labelProvider.getDisplayName(domainModelReference, eObject);
+
+		verify(databindingService).getObservableValue(domainModelReference, eObject);
+		verify(itemPropertyDescriptor).getDisplayName(value);
+		assertEquals(expectedResult, result.getValue());
+	}
+
+	/**
+	 * Test method for
+	 * {@link EMFFormsLabelProviderDefaultImpl#getDisplayName(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference, org.eclipse.emf.ecore.EObject)}
+	 * .
+	 */
+	@Test(expected = IllegalArgumentException.class)
+	public void testGetDisplayNameTwoParamsReferenceNull() {
+		labelProvider.getDisplayName(null, mock(EObject.class));
+	}
+
+	/**
+	 * Test method for
+	 * {@link EMFFormsLabelProviderDefaultImpl#getDisplayName(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference, org.eclipse.emf.ecore.EObject)}
+	 * .
+	 */
+	@Test(expected = IllegalArgumentException.class)
+	public void testGetDisplayNameTwoParamsObjectNull() {
+		labelProvider.getDisplayName(mock(VDomainModelReference.class), null);
+	}
+
+	/**
+	 * Test method for
+	 * {@link EMFFormsLabelProviderDefaultImpl#getDisplayName(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference, org.eclipse.emf.ecore.EObject)}
+	 * .
+	 */
+	@Test(expected = IllegalArgumentException.class)
+	public void testGetDisplayNameTwoParamsBothNull() {
+		labelProvider.getDisplayName(null, null);
+	}
+
+	/**
+	 * Test method for
+	 * {@link EMFFormsLabelProviderDefaultImpl#getDescription(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException should not happen, just needs to be thrown because the databinding service
+	 *             defines the throw in its interface.
+	 */
+	@Test
+	public void testGetDescriptionOneParam() throws DatabindingFailedException {
+		final String expectedResult = "expected"; //$NON-NLS-1$
+		final EStructuralFeature structuralFeature = mock(EStructuralFeature.class);
+		final VDomainModelReference domainModelReference = mock(VDomainModelReference.class);
+
+		when(structuralFeature.getEContainingClass()).thenReturn(TestPackage.eINSTANCE.getD());
+		when(itemPropertyDescriptor.getDescription(any(Object.class))).thenReturn(expectedResult);
+		when(valueProperty.getValueType()).thenReturn(structuralFeature);
+		when(databindingService.getValueProperty(domainModelReference, null)).thenReturn(valueProperty);
+
+		final IObservableValue result = labelProvider.getDescription(domainModelReference);
+
+		verify(databindingService).getValueProperty(domainModelReference, null);
+		verify(itemPropertyDescriptor).getDescription(any(D.class));
+		assertEquals(expectedResult, result.getValue());
+	}
+
+	/**
+	 * Test method for
+	 * {@link EMFFormsLabelProviderDefaultImpl#getDescription(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference)}
+	 * .
+	 */
+	@Test(expected = IllegalArgumentException.class)
+	public void testGetDescriptionOneParamNull() {
+		labelProvider.getDescription(null);
+	}
+
+	/**
+	 * Test method for
+	 * {@link EMFFormsLabelProviderDefaultImpl#getDescription(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference, org.eclipse.emf.ecore.EObject)}
+	 * .
+	 *
+	 * @throws DatabindingFailedException should not happen, just needs to be thrown because the databinding service
+	 *             defines the throw in its interface.
+	 */
+	@Test
+	public void testGetDescriptionTwoParams() throws DatabindingFailedException {
+		final String expectedResult = "expected"; //$NON-NLS-1$
+		final EObject eObject = mock(EObject.class);
+		final EObject value = mock(EObject.class);
+		final EStructuralFeature structuralFeature = mock(EStructuralFeature.class);
+		final VDomainModelReference domainModelReference = mock(VDomainModelReference.class);
+
+		when(itemPropertyDescriptor.getDescription(value)).thenReturn(expectedResult);
+		when(observableValue.getValueType()).thenReturn(structuralFeature);
+		when(observableValue.getObserved()).thenReturn(value);
+		when(databindingService.getObservableValue(domainModelReference, eObject)).thenReturn(observableValue);
+		final IObservableValue result = labelProvider.getDescription(domainModelReference, eObject);
+
+		verify(databindingService).getObservableValue(domainModelReference, eObject);
+		verify(itemPropertyDescriptor).getDescription(value);
+		assertEquals(expectedResult, result.getValue());
+	}
+
+	/**
+	 * Test method for
+	 * {@link EMFFormsLabelProviderDefaultImpl#getDescription(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference, org.eclipse.emf.ecore.EObject)}
+	 * .
+	 */
+	@Test(expected = IllegalArgumentException.class)
+	public void testGetDescriptionTwoParamsReferenceNull() {
+		labelProvider.getDescription(null, mock(EObject.class));
+	}
+
+	/**
+	 * Test method for
+	 * {@link EMFFormsLabelProviderDefaultImpl#getDescription(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference, org.eclipse.emf.ecore.EObject)}
+	 * .
+	 */
+	@Test(expected = IllegalArgumentException.class)
+	public void testGetDescriptionTwoParamsObjectNull() {
+		labelProvider.getDescription(mock(VDomainModelReference.class), null);
+	}
+
+	/**
+	 * Test method for
+	 * {@link EMFFormsLabelProviderDefaultImpl#getDescription(org.eclipse.emf.ecp.view.spi.model.VDomainModelReference, org.eclipse.emf.ecore.EObject)}
+	 * .
+	 */
+	@Test(expected = IllegalArgumentException.class)
+	public void testGetDescriptionTwoParamsBothNull() {
+		labelProvider.getDescription(null, null);
+	}
+}
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
new file mode 100644
index 0000000..f0d9e3b
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.emf.tests/src/org/eclipse/emfforms/internal/core/services/label/EMFFormsLabelProviderImpl_ITest.java
@@ -0,0 +1,212 @@
+/*******************************************************************************

+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.

+ *

+ * All rights reserved. This program and the accompanying materials

+ * are made available under the terms of the Eclipse Public License v1.0

+ * which accompanies this distribution, and is available at

+ * http://www.eclipse.org/legal/epl-v10.html

+ *

+ * Contributors:

+ * Lucas Koehler - initial API and implementation

+ ******************************************************************************/

+package org.eclipse.emfforms.internal.core.services.label;

+

+import static org.mockito.Matchers.any;

+import static org.mockito.Matchers.same;

+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.Dictionary;

+import java.util.Hashtable;

+

+import org.eclipse.core.databinding.property.value.IValueProperty;

+import org.eclipse.emf.ecore.EClass;

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.ecore.EStructuralFeature;

+import org.eclipse.emf.ecp.test.common.DefaultRealm;

+import org.eclipse.emf.ecp.view.spi.model.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.core.services.databinding.DatabindingFailedException;

+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.junit.After;

+import org.junit.AfterClass;

+import org.junit.Before;

+import org.junit.BeforeClass;

+import org.junit.Test;

+import org.osgi.framework.Bundle;

+import org.osgi.framework.BundleContext;

+import org.osgi.framework.FrameworkUtil;

+import org.osgi.framework.ServiceReference;

+import org.osgi.framework.ServiceRegistration;

+

+/**

+ * JUnit integration test that tests that {@link EMFFormsLabelProviderImpl} uses the correct services.

+ *

+ * @author Lucas Koehler

+ *

+ */

+public class EMFFormsLabelProviderImpl_ITest {

+

+	private static BundleContext bundleContext;

+	private static EMFFormsDatabinding databindingService;

+	private static ServiceRegistration<EMFFormsDatabinding> databindingRegisterService;

+	private static EMFFormsLabelProviderImpl labelProvider;

+	private static ServiceReference<EMFFormsLabelProvider> serviceReference;

+	private static EMFFormsLocalizationService localizationService;

+	private static ServiceRegistration<EMFFormsLocalizationService> localizationServiceReference;

+	private static IValueProperty valueProperty;

+	private DefaultRealm realm;

+

+	/**

+	 * Set up that is executed before every test case.

+	 * Registers a databinding and an emf specific service.

+	 * Mocks various objects for the tests.

+	 *

+	 * @throws DatabindingFailedException should not happen, just needs to be thrown because the databinding service

+	 *             defines the throw in its interface.

+	 * @throws NoBundleFoundException

+	 */

+	@BeforeClass

+	public static void setUpBeforeClass() throws DatabindingFailedException, NoBundleFoundException {

+		bundleContext = FrameworkUtil.getBundle(EMFFormsLabelProviderImpl_Test.class).getBundleContext();

+

+		final Dictionary<String, Object> dictionary = new Hashtable<String, Object>();

+		dictionary.put("service.ranking", 5); //$NON-NLS-1$

+

+		databindingService = mock(EMFFormsDatabinding.class);

+		databindingRegisterService = bundleContext.registerService(EMFFormsDatabinding.class, databindingService,

+			dictionary);

+

+		localizationService = mock(EMFFormsLocalizationService.class);

+		localizationServiceReference = bundleContext.registerService(EMFFormsLocalizationService.class,

+			localizationService,

+			dictionary);

+

+		final EClass eContainingClass = TestPackage.eINSTANCE.getD();

+		final EStructuralFeature structuralFeature = mock(EStructuralFeature.class);

+		when(structuralFeature.getEContainingClass()).thenReturn(eContainingClass);

+		when(structuralFeature.getName()).thenReturn("My Feature"); //$NON-NLS-1$

+		valueProperty = mock(IValueProperty.class);

+		when(valueProperty.getValueType()).thenReturn(structuralFeature);

+		final EObject eObject = mock(EObject.class);

+		final EClass eClass = mock(EClass.class);

+		when(eClass.getName()).thenReturn("My EClass"); //$NON-NLS-1$

+		when(eObject.eClass()).thenReturn(eClass);

+		when(databindingService.getValueProperty(any(VDomainModelReference.class), any(EObject.class))).thenReturn(

+			valueProperty);

+

+		final Bundle bundle = mock(Bundle.class);

+		final BundleResolver bundleResolver = mock(BundleResolver.class);

+		when(bundleResolver.getEditBundle(eContainingClass)).thenReturn(bundle);

+

+		when(localizationService.getString(same(bundle), any(String.class))).thenReturn("Test"); //$NON-NLS-1$

+

+		serviceReference = bundleContext.getServiceReference(EMFFormsLabelProvider.class);

+		labelProvider = (EMFFormsLabelProviderImpl) bundleContext.getService(serviceReference);

+		labelProvider.setBundleResolver(bundleResolver);

+	}

+

+	/**

+	 * Resets and newly configures the services for every test.

+	 *

+	 * @throws DatabindingFailedException should not happen, just needs to be thrown because the databinding service

+	 *             defines the throw in its interface.

+	 */

+	@Before

+	public void setUp() throws DatabindingFailedException {

+		reset(databindingService);

+		when(databindingService.getValueProperty(any(VDomainModelReference.class), any(EObject.class))).thenReturn(

+			valueProperty);

+		realm = new DefaultRealm();

+	}

+

+	/**

+	 * Dispose the realm.

+	 */

+	@After

+	public void tearDown() {

+		realm.dispose();

+	}

+

+	/**

+	 * Unregisters the services after every test.

+	 */

+	@AfterClass

+	public static void tearDownAfterClass() {

+		databindingRegisterService.unregister();

+		localizationServiceReference.unregister();

+		bundleContext.ungetService(serviceReference);

+	}

+

+	/**

+	 * Tests that {@link EMFFormsLabelProviderImpl#getDisplayName(VDomainModelReference)} uses the databinding and emf

+	 * specific services.

+	 *

+	 * @throws DatabindingFailedException should not happen, just needs to be thrown because the databinding service

+	 *             defines the throw in its interface.

+	 * @throws NoLabelFoundException

+	 */

+	@Test

+	public void testServiceUsageDisplayNameOneParam() throws DatabindingFailedException, NoLabelFoundException {

+		final VDomainModelReference domainModelReference = mock(VDomainModelReference.class);

+		labelProvider.getDisplayName(domainModelReference);

+

+		verify(databindingService).getValueProperty(same(domainModelReference), any(EObject.class));

+	}

+

+	/**

+	 * Tests that {@link EMFFormsLabelProviderImpl#getDescription(VDomainModelReference)} uses the databinding and emf

+	 * specific services.

+	 *

+	 * @throws DatabindingFailedException should not happen, just needs to be thrown because the databinding service

+	 *             defines the throw in its interface.

+	 * @throws NoLabelFoundException

+	 */

+	@Test

+	public void testServiceUsageDescriptionOneParam() throws DatabindingFailedException, NoLabelFoundException {

+		final VDomainModelReference domainModelReference = mock(VDomainModelReference.class);

+		labelProvider.getDescription(domainModelReference);

+

+		verify(databindingService).getValueProperty(same(domainModelReference), any(EObject.class));

+	}

+

+	/**

+	 * Tests that {@link EMFFormsLabelProviderImpl#getDisplayName(VDomainModelReference, EObject)} uses the databinding

+	 * and emf specific services.

+	 *

+	 * @throws DatabindingFailedException should not happen, just needs to be thrown because the databinding service

+	 *             defines the throw in its interface.

+	 * @throws NoLabelFoundException

+	 */

+	@Test

+	public void testServiceUsageDisplayNameTwoParam() throws DatabindingFailedException, NoLabelFoundException {

+		final VDomainModelReference domainModelReference = mock(VDomainModelReference.class);

+		final EObject eObject = mock(EObject.class);

+		labelProvider.getDisplayName(domainModelReference, eObject);

+

+		verify(databindingService).getValueProperty(domainModelReference, eObject);

+	}

+

+	/**

+	 * Tests that {@link EMFFormsLabelProviderImpl#getDescription(VDomainModelReference, EObject)} uses the databinding

+	 * and emf specific services.

+	 *

+	 * @throws DatabindingFailedException should not happen, just needs to be thrown because the databinding service

+	 *             defines the throw in its interface.

+	 * @throws NoLabelFoundException

+	 */

+	@Test

+	public void testServiceUsageDescriptionTwoParam() throws DatabindingFailedException, NoLabelFoundException {

+		final VDomainModelReference domainModelReference = mock(VDomainModelReference.class);

+		final EObject eObject = mock(EObject.class);

+		labelProvider.getDescription(domainModelReference, eObject);

+

+		verify(databindingService).getValueProperty(domainModelReference, eObject);

+	}

+}

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
new file mode 100644
index 0000000..633861b
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.emf.tests/src/org/eclipse/emfforms/internal/core/services/label/EMFFormsLabelProviderImpl_Test.java
@@ -0,0 +1,357 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.core.services.label;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.text.MessageFormat;
+
+import org.eclipse.core.databinding.observable.IObserving;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcoreFactory;
+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.locale.EMFFormsLocaleProvider;
+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.DatabindingFailedReport;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.core.services.label.NoLabelFoundException;
+import org.eclipse.emfforms.spi.localization.EMFFormsLocalizationService;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.osgi.framework.Bundle;
+
+public class EMFFormsLabelProviderImpl_Test {
+
+	/**
+	 * Helper Interface for mocking.
+	 *
+	 * @author Eugen Neufeld
+	 *
+	 */
+	public interface TestObservableValue extends IObservableValue, IObserving {
+	}
+
+	private EMFFormsLabelProviderImpl labelProvider;
+	private EMFFormsDatabinding databinding;
+	private DefaultRealm realm;
+
+	@Before
+	public void setup() {
+		labelProvider = new EMFFormsLabelProviderImpl();
+		databinding = mock(EMFFormsDatabinding.class);
+		labelProvider.setEMFFormsDatabinding(databinding);
+		realm = new DefaultRealm();
+	}
+
+	@After
+	public void tearDown() {
+		realm.dispose();
+	}
+
+	@Test(expected = IllegalArgumentException.class)
+	public void testGetDisplayNameVDomainModelReferenceNull() throws NoLabelFoundException {
+		labelProvider.getDisplayName(null);
+	}
+
+	@SuppressWarnings("unchecked")
+	@Test(expected = NoLabelFoundException.class)
+	public void testGetDisplayNameVDomainModelReferenceThrowDatabindingException() throws NoLabelFoundException,
+		DatabindingFailedException {
+		final VDomainModelReference domainModelReference = mock(VDomainModelReference.class);
+		when(databinding.getValueProperty(domainModelReference, null)).thenThrow(DatabindingFailedException.class);
+
+		final ReportService reportService = mock(ReportService.class);
+		labelProvider.setReportService(reportService);
+		labelProvider.getDisplayName(domainModelReference);
+		verify(reportService).report(any(DatabindingFailedReport.class));
+	}
+
+	@Test
+	public void testGetDisplayNameVDomainModelReference() throws NoLabelFoundException, DatabindingFailedException,
+		NoBundleFoundException {
+		final Bundle mockedBundle = mock(Bundle.class);
+		final BundleResolver bundleResolver = mock(BundleResolver.class);
+		when(bundleResolver.getEditBundle(any(EClass.class))).thenReturn(mockedBundle);
+		labelProvider.setBundleResolver(bundleResolver);
+		final VDomainModelReference domainModelReference = mock(VDomainModelReference.class);
+		final IValueProperty valueProperty = mock(IValueProperty.class);
+		when(databinding.getValueProperty(domainModelReference, null)).thenReturn(valueProperty);
+		final EStructuralFeature eStructuralFeature = mock(EStructuralFeature.class);
+		when(eStructuralFeature.getEContainingClass()).thenReturn(EcorePackage.eINSTANCE.getEObject());
+		when(valueProperty.getValueType()).thenReturn(eStructuralFeature);
+
+		final EMFFormsLocalizationService localizationService = mock(EMFFormsLocalizationService.class);
+		labelProvider.setEMFFormsLocalizationService(localizationService);
+
+		final String key = String.format(
+			"_UI_%1$s_%2$s_feature", EcorePackage.eINSTANCE.getEObject().getName(), eStructuralFeature.getName()); //$NON-NLS-1$
+		final String value = "My Value"; //$NON-NLS-1$
+		when(localizationService.getString(mockedBundle, key)).thenReturn(value);
+
+		final IObservableValue displayName = labelProvider.getDisplayName(domainModelReference);
+		assertEquals(value, displayName.getValue());
+	}
+
+	@Test(expected = IllegalArgumentException.class)
+	public void testGetDisplayNameVDomainModelReferenceNullEObject() throws NoLabelFoundException {
+		labelProvider.getDisplayName(null, mock(EObject.class));
+	}
+
+	@Test(expected = IllegalArgumentException.class)
+	public void testGetDisplayNameVDomainModelReferenceEObjectNull() throws NoLabelFoundException {
+		labelProvider.getDisplayName(mock(VDomainModelReference.class), null);
+	}
+
+	@SuppressWarnings("unchecked")
+	@Test(expected = NoLabelFoundException.class)
+	public void testGetDisplayNameVDomainModelReferenceEObjectThrowDatabindingException() throws NoLabelFoundException,
+		DatabindingFailedException, NoBundleFoundException {
+		final Bundle mockedBundle = mock(Bundle.class);
+		final BundleResolver bundleResolver = mock(BundleResolver.class);
+		when(bundleResolver.getEditBundle(any(EClass.class))).thenReturn(mockedBundle);
+		labelProvider.setBundleResolver(bundleResolver);
+
+		final VDomainModelReference domainModelReference = mock(VDomainModelReference.class);
+		final EObject eObject = mock(EObject.class);
+		when(databinding.getValueProperty(domainModelReference, eObject)).thenThrow(DatabindingFailedException.class);
+
+		final ReportService reportService = mock(ReportService.class);
+		labelProvider.setReportService(reportService);
+		labelProvider.getDisplayName(domainModelReference, eObject);
+		verify(reportService).report(any(DatabindingFailedReport.class));
+	}
+
+	@Test
+	public void testGetDisplayNameVDomainModelReferenceEObject() throws NoLabelFoundException,
+		DatabindingFailedException, NoBundleFoundException {
+		final Bundle mockedBundle = mock(Bundle.class);
+		final BundleResolver bundleResolver = mock(BundleResolver.class);
+		when(bundleResolver.getEditBundle(any(EClass.class))).thenReturn(mockedBundle);
+		labelProvider.setBundleResolver(bundleResolver);
+		final VDomainModelReference domainModelReference = mock(VDomainModelReference.class);
+		final EObject eObject = EcoreFactory.eINSTANCE.createEObject();
+		final IValueProperty valueProperty = mock(IValueProperty.class);
+		final EStructuralFeature eStructuralFeature = mock(EStructuralFeature.class);
+		when(eStructuralFeature.getEContainingClass()).thenReturn(EcorePackage.eINSTANCE.getEObject());
+		when(valueProperty.getValueType()).thenReturn(eStructuralFeature);
+
+		when(databinding.getValueProperty(domainModelReference, eObject)).thenReturn(valueProperty);
+
+		final EMFFormsLocalizationService localizationService = mock(EMFFormsLocalizationService.class);
+		labelProvider.setEMFFormsLocalizationService(localizationService);
+
+		final String key = String.format(
+			"_UI_%1$s_%2$s_feature", EcorePackage.eINSTANCE.getEObject().getName(), eStructuralFeature.getName()); //$NON-NLS-1$
+		final String value = "My Value"; //$NON-NLS-1$
+		when(localizationService.getString(mockedBundle, key)).thenReturn(value);
+
+		final IObservableValue displayName = labelProvider.getDisplayName(domainModelReference, eObject);
+		assertEquals(value, displayName.getValue());
+
+	}
+
+	@Test(expected = IllegalArgumentException.class)
+	public void testGetDescriptionVDomainModelReferenceNull() throws NoLabelFoundException {
+		labelProvider.getDescription(null);
+	}
+
+	@SuppressWarnings("unchecked")
+	@Test(expected = NoLabelFoundException.class)
+	public void testGetDescriptionVDomainModelReferenceThrowDatabindingException() throws NoLabelFoundException,
+		DatabindingFailedException {
+		final VDomainModelReference domainModelReference = mock(VDomainModelReference.class);
+		when(databinding.getValueProperty(domainModelReference, null)).thenThrow(DatabindingFailedException.class);
+
+		final ReportService reportService = mock(ReportService.class);
+		labelProvider.setReportService(reportService);
+		labelProvider.getDescription(domainModelReference);
+		verify(reportService).report(any(DatabindingFailedReport.class));
+	}
+
+	@Test
+	public void testGetDescriptionVDomainModelReference() throws NoLabelFoundException, DatabindingFailedException,
+		NoBundleFoundException {
+		final Bundle mockedBundle = mock(Bundle.class);
+		final BundleResolver bundleResolver = mock(BundleResolver.class);
+		when(bundleResolver.getEditBundle(any(EClass.class))).thenReturn(mockedBundle);
+		labelProvider.setBundleResolver(bundleResolver);
+		final VDomainModelReference domainModelReference = mock(VDomainModelReference.class);
+
+		final IValueProperty valueProperty = mock(IValueProperty.class);
+		when(databinding.getValueProperty(domainModelReference, null)).thenReturn(valueProperty);
+		final EStructuralFeature eStructuralFeature = mock(EStructuralFeature.class);
+		when(eStructuralFeature.getName()).thenReturn("myFeature"); //$NON-NLS-1$
+		when(eStructuralFeature.getEContainingClass()).thenReturn(EcorePackage.eINSTANCE.getEObject());
+		when(valueProperty.getValueType()).thenReturn(eStructuralFeature);
+
+		final EMFFormsLocalizationService localizationService = mock(EMFFormsLocalizationService.class);
+		final String descriptionKey = String.format(
+			"_UI_%1$s_%2$s_description", EcorePackage.eINSTANCE.getEObject().getName(), eStructuralFeature.getName()); //$NON-NLS-1$
+		when(localizationService.getString(any(Class.class), eq(descriptionKey))).thenReturn(descriptionKey);
+		labelProvider.setEMFFormsLocalizationService(localizationService);
+
+		final String key = String.format(
+			"_UI_%1$s_%2$s_feature", EcorePackage.eINSTANCE.getEObject().getName(), eStructuralFeature.getName()); //$NON-NLS-1$
+		final String featureText = "My Feature"; //$NON-NLS-1$
+		when(localizationService.getString(mockedBundle, key)).thenReturn(featureText);
+		final String descriptionPlaceHolder = "My Description {1} {2}"; //$NON-NLS-1$
+		when(localizationService.getString(mockedBundle, "_UI_PropertyDescriptor_description")) //$NON-NLS-1$
+			.thenReturn(descriptionPlaceHolder);
+		final String eObjectText = "My EObject"; //$NON-NLS-1$
+		when(
+			localizationService.getString(mockedBundle,
+				String.format("_UI_%1$s_type", EcorePackage.eINSTANCE.getEObject().getName()))).thenReturn(eObjectText); //$NON-NLS-1$
+
+		final IObservableValue description = labelProvider.getDescription(domainModelReference);
+		assertEquals(MessageFormat.format(descriptionPlaceHolder, featureText, eObjectText), description.getValue());
+	}
+
+	@Test(expected = IllegalArgumentException.class)
+	public void testGetDescriptionVDomainModelReferenceNullEObject() throws NoLabelFoundException {
+		labelProvider.getDescription(null, mock(EObject.class));
+	}
+
+	@Test(expected = IllegalArgumentException.class)
+	public void testGetDescriptionVDomainModelReferenceEObjectNull() throws NoLabelFoundException {
+		labelProvider.getDescription(mock(VDomainModelReference.class), null);
+	}
+
+	@SuppressWarnings("unchecked")
+	@Test(expected = NoLabelFoundException.class)
+	public void testGetDescriptionVDomainModelReferenceEObjectThrowDatabindingException() throws NoLabelFoundException,
+		DatabindingFailedException, NoBundleFoundException {
+		final VDomainModelReference domainModelReference = mock(VDomainModelReference.class);
+		final EObject eObject = mock(EObject.class);
+		when(databinding.getValueProperty(domainModelReference, eObject)).thenThrow(DatabindingFailedException.class);
+
+		final ReportService reportService = mock(ReportService.class);
+		labelProvider.setReportService(reportService);
+		labelProvider.getDescription(domainModelReference, eObject);
+		verify(reportService).report(any(DatabindingFailedReport.class));
+	}
+
+	@Test
+	public void testGetDescriptionVDomainModelReferenceEObject() throws NoLabelFoundException,
+		DatabindingFailedException, NoBundleFoundException {
+		final Bundle mockedBundle = mock(Bundle.class);
+		final BundleResolver bundleResolver = mock(BundleResolver.class);
+		when(bundleResolver.getEditBundle(any(EClass.class))).thenReturn(mockedBundle);
+		labelProvider.setBundleResolver(bundleResolver);
+		final VDomainModelReference domainModelReference = mock(VDomainModelReference.class);
+		final EObject eObject = EcoreFactory.eINSTANCE.createEObject();
+		final EStructuralFeature eStructuralFeature = mock(EStructuralFeature.class);
+		final IValueProperty valueProperty = mock(IValueProperty.class);
+		when(eStructuralFeature.getEContainingClass()).thenReturn(EcorePackage.eINSTANCE.getEObject());
+		when(valueProperty.getValueType()).thenReturn(eStructuralFeature);
+
+		when(databinding.getValueProperty(domainModelReference, eObject)).thenReturn(valueProperty);
+
+		final EMFFormsLocalizationService localizationService = mock(EMFFormsLocalizationService.class);
+		labelProvider.setEMFFormsLocalizationService(localizationService);
+
+		final String descriptionKey = String.format(
+			"_UI_%1$s_%2$s_description", EcorePackage.eINSTANCE.getEObject().getName(), eStructuralFeature.getName()); //$NON-NLS-1$
+		when(localizationService.getString(any(Class.class), eq(descriptionKey))).thenReturn(descriptionKey);
+
+		final String key = String.format(
+			"_UI_%1$s_%2$s_feature", EcorePackage.eINSTANCE.getEObject().getName(), eStructuralFeature.getName()); //$NON-NLS-1$
+		final String featureText = "My Feature"; //$NON-NLS-1$
+		when(localizationService.getString(mockedBundle, key)).thenReturn(featureText);
+		final String descriptionPlaceHolder = "My Description {1} {2}"; //$NON-NLS-1$
+		when(localizationService.getString(mockedBundle, "_UI_PropertyDescriptor_description")) //$NON-NLS-1$
+			.thenReturn(descriptionPlaceHolder);
+		final String eObjectText = "My EObject"; //$NON-NLS-1$
+		when(
+			localizationService.getString(mockedBundle,
+				String.format("_UI_%1$s_type", EcorePackage.eINSTANCE.getEObject().getName()))).thenReturn(eObjectText); //$NON-NLS-1$
+
+		final IObservableValue description = labelProvider.getDescription(domainModelReference, eObject);
+		assertEquals(MessageFormat.format(descriptionPlaceHolder, featureText, eObjectText), description.getValue());
+	}
+
+	@Test
+	public void testNotifyLocaleChange() throws NoLabelFoundException, DatabindingFailedException,
+		NoBundleFoundException {
+		final Bundle mockedBundle = mock(Bundle.class);
+		final BundleResolver bundleResolver = mock(BundleResolver.class);
+		when(bundleResolver.getEditBundle(any(EClass.class))).thenReturn(mockedBundle);
+		labelProvider.setBundleResolver(bundleResolver);
+		final VDomainModelReference domainModelReference = mock(VDomainModelReference.class);
+		final EObject eObject = EcoreFactory.eINSTANCE.createEObject();
+		final IValueProperty valueProperty = mock(IValueProperty.class);
+		final EStructuralFeature eStructuralFeature = mock(EStructuralFeature.class);
+		when(eStructuralFeature.getEContainingClass()).thenReturn(EcorePackage.eINSTANCE.getEObject());
+		when(valueProperty.getValueType()).thenReturn(eStructuralFeature);
+
+		when(databinding.getValueProperty(domainModelReference, eObject)).thenReturn(valueProperty);
+
+		final EMFFormsLocalizationService localizationService = mock(EMFFormsLocalizationService.class);
+		labelProvider.setEMFFormsLocalizationService(localizationService);
+
+		final String descriptionKey = String.format(
+			"_UI_%1$s_%2$s_description", EcorePackage.eINSTANCE.getEObject().getName(), eStructuralFeature.getName()); //$NON-NLS-1$
+		when(localizationService.getString(any(Class.class), eq(descriptionKey))).thenReturn(descriptionKey);
+
+		final String keyDisplayName = String.format(
+			"_UI_%1$s_%2$s_feature", EcorePackage.eINSTANCE.getEObject().getName(), eStructuralFeature.getName()); //$NON-NLS-1$
+		final String valueDisplayName = "My Value"; //$NON-NLS-1$
+		final String valueDisplayNameNew = "My Value New"; //$NON-NLS-1$
+
+		final String keyDescription = String.format(
+			"_UI_%1$s_%2$s_feature", EcorePackage.eINSTANCE.getEObject().getName(), eStructuralFeature.getName()); //$NON-NLS-1$
+		final String featureText = "My Feature"; //$NON-NLS-1$
+		final String descriptionPlaceHolder = "My Description {1} {2}"; //$NON-NLS-1$
+		final String eObjectText = "My EObject"; //$NON-NLS-1$
+		final String descriptionPlaceHolderNew = "My Description {1} {2} New"; //$NON-NLS-1$
+		final String valueDescription = MessageFormat.format(descriptionPlaceHolder, featureText, eObjectText);
+		final String valueDescriptionNew = MessageFormat.format(descriptionPlaceHolderNew, featureText, eObjectText);
+
+		when(localizationService.getString(mockedBundle, keyDescription)).thenReturn(featureText);
+		when(localizationService.getString(mockedBundle, "_UI_PropertyDescriptor_description")) //$NON-NLS-1$
+			.thenReturn(descriptionPlaceHolder, descriptionPlaceHolderNew);
+		when(
+			localizationService.getString(mockedBundle,
+				String.format("_UI_%1$s_type", EcorePackage.eINSTANCE.getEObject().getName()))).thenReturn(eObjectText); //$NON-NLS-1$
+		when(localizationService.getString(mockedBundle, keyDisplayName)).thenReturn(valueDisplayName,
+			valueDisplayNameNew);
+
+		final IObservableValue labelObservableValue = labelProvider.getDisplayName(domainModelReference, eObject);
+		final IObservableValue descriptionObservableValue = labelProvider.getDescription(domainModelReference, eObject);
+		assertEquals(valueDisplayName, labelObservableValue.getValue());
+		assertEquals(valueDescription, descriptionObservableValue.getValue());
+
+		labelProvider.notifyLocaleChange();
+		assertEquals(valueDisplayNameNew, labelObservableValue.getValue());
+		assertEquals(valueDescriptionNew, descriptionObservableValue.getValue());
+	}
+
+	@Test
+	public void testSetEMFFormsLocaleProvider() {
+		final EMFFormsLocaleProvider localeProvider = mock(EMFFormsLocaleProvider.class);
+		labelProvider.setEMFFormsLocaleProvider(localeProvider);
+		verify(localeProvider).addEMFFormsLocaleChangeListener(labelProvider);
+	}
+}
diff --git a/tests/org.eclipse.emfforms.localization.tests/.checkstyle b/tests/org.eclipse.emfforms.localization.tests/.checkstyle
new file mode 100644
index 0000000..24d357f
--- /dev/null
+++ b/tests/org.eclipse.emfforms.localization.tests/.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/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath b/tests/org.eclipse.emfforms.localization.tests/.classpath
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath
copy to tests/org.eclipse.emfforms.localization.tests/.classpath
diff --git a/tests/org.eclipse.emfforms.localization.tests/.project b/tests/org.eclipse.emfforms.localization.tests/.project
new file mode 100644
index 0000000..cae9324
--- /dev/null
+++ b/tests/org.eclipse.emfforms.localization.tests/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.localization.tests</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.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.emfforms.localization.tests/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
copy to tests/org.eclipse.emfforms.localization.tests/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/tests/org.eclipse.emfforms.localization.tests/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to tests/org.eclipse.emfforms.localization.tests/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emfforms.localization.tests/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.core.prefs
copy to tests/org.eclipse.emfforms.localization.tests/.settings/org.eclipse.jdt.core.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/tests/org.eclipse.emfforms.localization.tests/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
copy to tests/org.eclipse.emfforms.localization.tests/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.emfforms.localization.tests/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.ui.prefs
copy to tests/org.eclipse.emfforms.localization.tests/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/tests/org.eclipse.emfforms.localization.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to tests/org.eclipse.emfforms.localization.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.localization.tests/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
copy to tests/org.eclipse.emfforms.localization.tests/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.emfforms.localization.tests/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
copy to tests/org.eclipse.emfforms.localization.tests/.settings/org.eclipse.pde.prefs
diff --git a/tests/org.eclipse.emfforms.localization.tests/AllPluginTests localization.launch b/tests/org.eclipse.emfforms.localization.tests/AllPluginTests localization.launch
new file mode 100644
index 0000000..58dc776
--- /dev/null
+++ b/tests/org.eclipse.emfforms.localization.tests/AllPluginTests localization.launch
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<booleanAttribute key="append.args" value="true"/>
+<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.emfforms.localization.tests/src/org/eclipse/emfforms/internal/localization/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.localization.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.localization.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.emf.cdo.server.product.tcp_h2"/>
+<booleanAttribute key="run_in_ui_thread" value="true"/>
+<stringAttribute key="selected_target_plugins" value="javax.xml@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime@default:true,org.eclipse.emf.common@default:default,org.eclipse.emf.ecore@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@-1:true,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.view.model@default:default,org.eclipse.emfforms.core.services@default:default,org.eclipse.emfforms.localization.tests@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>
diff --git a/tests/org.eclipse.emfforms.localization.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.localization.tests/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..b93639e
--- /dev/null
+++ b/tests/org.eclipse.emfforms.localization.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,12 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMF Forms Localization Tests
+Bundle-SymbolicName: org.eclipse.emfforms.localization.tests
+Bundle-Version: 1.6.0.qualifier
+Fragment-Host: org.eclipse.emfforms.localization;bundle-version="[1.6.0,2.0.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.junit;bundle-version="4.11.0",
+ org.mockito.mockito-all;bundle-version="1.9.5",
+ org.eclipse.equinox.ds;bundle-version="[1.4.0,2.0.0)"
+Export-Package: org.eclipse.emfforms.internal.localization.tests;version="1.6.0";x-internal:=true,
+ org.eclipse.emfforms.spi.localization;version="1.6.0"
diff --git a/tests/org.eclipse.emfforms.localization.tests/OSGI-INF/l10n/bundle.properties b/tests/org.eclipse.emfforms.localization.tests/OSGI-INF/l10n/bundle.properties
new file mode 100644
index 0000000..4e4c487
--- /dev/null
+++ b/tests/org.eclipse.emfforms.localization.tests/OSGI-INF/l10n/bundle.properties
@@ -0,0 +1 @@
+testKey=Test Value
\ No newline at end of file
diff --git a/tests/org.eclipse.emfforms.localization.tests/OSGI-INF/l10n/bundle_test.properties b/tests/org.eclipse.emfforms.localization.tests/OSGI-INF/l10n/bundle_test.properties
new file mode 100644
index 0000000..66d8f93
--- /dev/null
+++ b/tests/org.eclipse.emfforms.localization.tests/OSGI-INF/l10n/bundle_test.properties
@@ -0,0 +1 @@
+testKey=The Translated Test Value
\ No newline at end of file
diff --git a/tests/org.eclipse.emfforms.localization.tests/build.properties b/tests/org.eclipse.emfforms.localization.tests/build.properties
new file mode 100644
index 0000000..c58ea21
--- /dev/null
+++ b/tests/org.eclipse.emfforms.localization.tests/build.properties
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               OSGI-INF/
diff --git a/tests/org.eclipse.emfforms.localization.tests/pom.xml b/tests/org.eclipse.emfforms.localization.tests/pom.xml
new file mode 100644
index 0000000..73651ea
--- /dev/null
+++ b/tests/org.eclipse.emfforms.localization.tests/pom.xml
@@ -0,0 +1,31 @@
+<?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.6.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.6.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>false</useUIHarness>
+		          	<useUIThread>false</useUIThread>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+</project>
diff --git a/tests/org.eclipse.emfforms.localization.tests/src/org/eclipse/emfforms/internal/localization/tests/AllPluginTests.java b/tests/org.eclipse.emfforms.localization.tests/src/org/eclipse/emfforms/internal/localization/tests/AllPluginTests.java
new file mode 100644
index 0000000..dfe2b48
--- /dev/null
+++ b/tests/org.eclipse.emfforms.localization.tests/src/org/eclipse/emfforms/internal/localization/tests/AllPluginTests.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.localization.tests;
+
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper_PTest;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+/**
+ * JUnit Plugin Test Suite for emfforms.localization .
+ *
+ * @author Eugen Neufeld
+ *
+ */
+@RunWith(Suite.class)
+@SuiteClasses({ LocalizationServiceHelper_PTest.class })
+public class AllPluginTests {
+	// JUnit 4 Test Suite
+}
diff --git a/tests/org.eclipse.emfforms.localization.tests/src/org/eclipse/emfforms/spi/localization/LocalizationServiceHelper_PTest.java b/tests/org.eclipse.emfforms.localization.tests/src/org/eclipse/emfforms/spi/localization/LocalizationServiceHelper_PTest.java
new file mode 100644
index 0000000..e34322e
--- /dev/null
+++ b/tests/org.eclipse.emfforms.localization.tests/src/org/eclipse/emfforms/spi/localization/LocalizationServiceHelper_PTest.java
@@ -0,0 +1,78 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.localization;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.Locale;
+
+import org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleProvider;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceRegistration;
+
+/**
+ * Plugin tests for the LocalizationServiceHelper.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class LocalizationServiceHelper_PTest {
+
+	private static final String TEST_KEY = "testKey"; //$NON-NLS-1$
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.spi.localization.LocalizationServiceHelper#getString(java.lang.Class, java.lang.String)}
+	 * .
+	 */
+	@Test
+	public void testGetStringWithoutLocaleProvider() {
+		final String string = LocalizationServiceHelper.getString(getClass(), TEST_KEY);
+		assertEquals("Test Value", string); //$NON-NLS-1$
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.spi.localization.LocalizationServiceHelper#getString(java.lang.Class, java.lang.String)}
+	 * .
+	 */
+	@Test
+	public void testGetUndefinedStringWithoutLocaleProvider() {
+		final String myKey = "MyKey"; //$NON-NLS-1$
+		final String string = LocalizationServiceHelper.getString(getClass(), myKey);
+		assertEquals(myKey, string);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.spi.localization.LocalizationServiceHelper#getString(java.lang.Class, java.lang.String)}
+	 * .
+	 */
+	@Test
+	public void testGetStringWithLocaleProvider() {
+		final BundleContext bundleContext = FrameworkUtil.getBundle(getClass()).getBundleContext();
+		final Locale locale = new Locale("test"); //$NON-NLS-1$
+		final EMFFormsLocaleProvider localeProvider = Mockito.mock(EMFFormsLocaleProvider.class);
+		Mockito.when(localeProvider.getLocale()).thenReturn(locale);
+		final ServiceRegistration<EMFFormsLocaleProvider> registerService = bundleContext.registerService(
+			EMFFormsLocaleProvider.class, localeProvider, null);
+
+		final String string = LocalizationServiceHelper.getString(getClass(), TEST_KEY);
+
+		assertEquals("The Translated Test Value", string); //$NON-NLS-1$
+		registerService.unregister();
+	}
+
+}
diff --git a/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/.checkstyle b/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/.checkstyle
new file mode 100644
index 0000000..24d357f
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/.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/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath b/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/.classpath
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath
copy to tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/.classpath
diff --git a/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/.project b/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/.project
new file mode 100644
index 0000000..cddd591
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.swt.control.text.autocomplete.tests</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.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
copy to tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.core.prefs
copy to tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/.settings/org.eclipse.jdt.core.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
copy to tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.ui.prefs
copy to tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
copy to tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.pde.core.prefs b/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/.settings/org.eclipse.pde.core.prefs
similarity index 100%
copy from examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.pde.core.prefs
copy to tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/.settings/org.eclipse.pde.core.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
copy to tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..6861301
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,14 @@
+Manifest-Version: 1.0
+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.6.0.qualifier
+Fragment-Host: org.eclipse.emfforms.swt.control.text.autocomplete;bundle-version="[1.6.0,2.0.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-Vendor: Eclipse Modeling Project
+Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.6.0,2.0.0)",
+ org.mockito.mockito-all;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.6.0,2.0.0)"
+Export-Package: org.eclipse.emfforms.internal.swt.control.text.autocomplete.renderer;version="1.6.0";x-internal:=true,
+ org.eclipse.emfforms.swt.control.text.autocomplete.tests;version="1.6.0";x-internal:=true
diff --git a/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/build.properties b/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/build.properties
new file mode 100644
index 0000000..34d2e4d
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .
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
new file mode 100644
index 0000000..461f1bd
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/pom.xml
@@ -0,0 +1,78 @@
+<?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.6.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.6.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>
+					<includes>
+						<include>**/*_PTest.java</include>
+						<include>**/*_ITest.java</include>
+						<!-- Execute SWT-Related tests with tycho surefire -->
+						<include>**/AutocompleteTextControlSWTRenderer_Test.java</include>
+						<include>**/AutocompleteTextControlSWTRendererService_Test</include>
+					</includes>
+					<testFailureIgnore>true</testFailureIgnore>
+					<useUIHarness>false</useUIHarness>
+					<useUIThread>false</useUIThread>
+				</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.equinox.ds</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-surefire-plugin</artifactId>
+				<version>${mav-surefire-version}</version>
+				<executions>
+					<execution>
+						<id>test</id>
+						<phase>test</phase>
+						<configuration>
+							<testClassesDirectory>${project.build.outputDirectory}</testClassesDirectory>
+							<excludes>
+								<!-- Executed with tycho surefire -->
+								<exclude>**/AutocompleteTextControlSWTRenderer_Test.java</exclude>
+								<exclude>**/AutocompleteTextControlSWTRendererService_Test</exclude>
+							</excludes>
+							<testFailureIgnore>true</testFailureIgnore>
+				        </configuration>
+						<goals>
+							<goal>test</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+	</build>
+
+</project>
diff --git a/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/src/org/eclipse/emfforms/internal/swt/control/text/autocomplete/renderer/AutocompleteTextControlSWTRendererService_Test.java b/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/src/org/eclipse/emfforms/internal/swt/control/text/autocomplete/renderer/AutocompleteTextControlSWTRendererService_Test.java
new file mode 100644
index 0000000..ad0d1ea
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/src/org/eclipse/emfforms/internal/swt/control/text/autocomplete/renderer/AutocompleteTextControlSWTRendererService_Test.java
@@ -0,0 +1,228 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.swt.control.text.autocomplete.renderer;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import org.eclipse.emf.databinding.EMFObservables;
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.emf.ecore.EAttribute;
+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.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.model.VViewFactory;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.A;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.D;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestFactory;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage;
+import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+public class AutocompleteTextControlSWTRendererService_Test {
+
+	private static final String ANNOTATION_SOURCE = "org.eclipse.emfforms"; //$NON-NLS-1$
+	private static final String ANNOTATION_KEY = "autocomplete"; //$NON-NLS-1$
+	private static final String ANNOTATION_VALUE = "true"; //$NON-NLS-1$
+
+	private DefaultRealm defaultRealm;
+
+	private AutocompleteTextControlSWTRendererService rendererService;
+	private ViewModelContext viewModelContext;
+	private D domainModel;
+	private A domainModel2;
+	private VControl control;
+	private EMFFormsDatabinding emfFormsDatabinding;
+
+	@Before
+	public void setUp() throws DatabindingFailedException {
+		defaultRealm = new DefaultRealm();
+
+		domainModel = TestFactory.eINSTANCE.createD();
+		domainModel2 = TestFactory.eINSTANCE.createA();
+
+		control = VViewFactory.eINSTANCE.createControl();
+		control.setDomainModelReference(TestPackage.eINSTANCE.getD_X());
+
+		viewModelContext = mock(ViewModelContext.class);
+		when(viewModelContext.getDomainModel()).thenReturn(domainModel);
+
+		emfFormsDatabinding = mock(EMFFormsDatabinding.class);
+		when(emfFormsDatabinding.getObservableValue(control.getDomainModelReference(), domainModel))
+			.thenReturn(EMFObservables.observeValue(domainModel, TestPackage.eINSTANCE.getD_X()));
+
+		rendererService = new AutocompleteTextControlSWTRendererService();
+		rendererService.setDatabinding(emfFormsDatabinding);
+	}
+
+	@After
+	public void tearDown() {
+		defaultRealm.dispose();
+	}
+
+	@Test
+	public void testGetRendererClass() {
+		assertSame(AutocompleteTextControlSWTRenderer.class, rendererService.getRendererClass());
+	}
+
+	@Test
+	public void testHasAutoCompleteAnnotation() {
+		final EAttribute attribute = EcoreFactory.eINSTANCE.createEAttribute();
+		final EAnnotation annotation = EcoreFactory.eINSTANCE.createEAnnotation();
+		annotation.setSource(ANNOTATION_SOURCE);
+		annotation.getDetails().put(ANNOTATION_KEY, ANNOTATION_VALUE);
+		attribute.getEAnnotations().add(annotation);
+		assertTrue(rendererService.hasAutoCompleteAnnotation(attribute));
+	}
+
+	@Test
+	public void testHasAutoCompleteAnnotationInvalidValue() {
+		final EAttribute attribute = EcoreFactory.eINSTANCE.createEAttribute();
+		final EAnnotation annotation = EcoreFactory.eINSTANCE.createEAnnotation();
+		annotation.setSource(ANNOTATION_SOURCE);
+		annotation.getDetails().put(ANNOTATION_KEY, "false"); //$NON-NLS-1$
+		attribute.getEAnnotations().add(annotation);
+		assertFalse(rendererService.hasAutoCompleteAnnotation(attribute));
+	}
+
+	@Test
+	public void testHasAutoCompleteAnnotationNullValue() {
+		final EAttribute attribute = EcoreFactory.eINSTANCE.createEAttribute();
+		final EAnnotation annotation = EcoreFactory.eINSTANCE.createEAnnotation();
+		annotation.setSource(ANNOTATION_SOURCE);
+		annotation.getDetails().put(ANNOTATION_KEY, null);
+		attribute.getEAnnotations().add(annotation);
+		assertFalse(rendererService.hasAutoCompleteAnnotation(attribute));
+	}
+
+	@Test
+	public void testHasAutoCompleteAnnotationEmptyValue() {
+		final EAttribute attribute = EcoreFactory.eINSTANCE.createEAttribute();
+		final EAnnotation annotation = EcoreFactory.eINSTANCE.createEAnnotation();
+		annotation.setSource(ANNOTATION_SOURCE);
+		annotation.getDetails().put(ANNOTATION_KEY, ""); //$NON-NLS-1$
+		attribute.getEAnnotations().add(annotation);
+		assertFalse(rendererService.hasAutoCompleteAnnotation(attribute));
+	}
+
+	@Test
+	public void testHasAutoCompleteAnnotationMissingKey() {
+		final EAttribute attribute = EcoreFactory.eINSTANCE.createEAttribute();
+		final EAnnotation annotation = EcoreFactory.eINSTANCE.createEAnnotation();
+		annotation.setSource(ANNOTATION_SOURCE);
+		attribute.getEAnnotations().add(annotation);
+		assertFalse(rendererService.hasAutoCompleteAnnotation(attribute));
+	}
+
+	@Test
+	public void testHasAutoCompleteAnnotationNoAnnotation() {
+		final EAttribute attribute = EcoreFactory.eINSTANCE.createEAttribute();
+		assertFalse(rendererService.hasAutoCompleteAnnotation(attribute));
+	}
+
+	@Test
+	public void testIsApplicableNoControl() {
+		final VElement element = mock(VElement.class);
+		assertEquals(EMFFormsDIRendererService.NOT_APPLICABLE, rendererService.isApplicable(element, viewModelContext),
+			0d);
+	}
+
+	@Test
+	public void testIsApplicableNoDMR() {
+		control = VViewFactory.eINSTANCE.createControl();
+		assertEquals(EMFFormsDIRendererService.NOT_APPLICABLE, rendererService.isApplicable(control, viewModelContext),
+			0d);
+	}
+
+	@Test
+	public void testIsApplicableDataBindingFailed() throws DatabindingFailedException {
+		emfFormsDatabinding = mock(EMFFormsDatabinding.class);
+		when(emfFormsDatabinding.getObservableValue(control.getDomainModelReference(), domainModel))
+			.thenThrow(new DatabindingFailedException("")); //$NON-NLS-1$
+		rendererService.setDatabinding(emfFormsDatabinding);
+		assertEquals(EMFFormsDIRendererService.NOT_APPLICABLE, rendererService.isApplicable(control, viewModelContext),
+			0d);
+	}
+
+	@Test
+	public void testIsApplicableNoAnnotation() {
+		assertEquals(EMFFormsDIRendererService.NOT_APPLICABLE, rendererService.isApplicable(control, viewModelContext),
+			0d);
+	}
+
+	@Test
+	public void testIsApplicableMulti() throws DatabindingFailedException {
+		emfFormsDatabinding = mock(EMFFormsDatabinding.class);
+		when(emfFormsDatabinding.getObservableValue(control.getDomainModelReference(), domainModel))
+			.thenReturn(EMFObservables.observeValue(domainModel, TestPackage.eINSTANCE.getD_YList()));
+		rendererService.setDatabinding(emfFormsDatabinding);
+
+		assertEquals(EMFFormsDIRendererService.NOT_APPLICABLE, rendererService.isApplicable(control, viewModelContext),
+			0d);
+	}
+
+	@Test
+	public void testIsApplicableEReference() throws DatabindingFailedException {
+		emfFormsDatabinding = mock(EMFFormsDatabinding.class);
+		when(emfFormsDatabinding.getObservableValue(control.getDomainModelReference(), domainModel))
+			.thenReturn(EMFObservables.observeValue(domainModel2, TestPackage.eINSTANCE.getA_B()));
+		rendererService.setDatabinding(emfFormsDatabinding);
+
+		assertEquals(EMFFormsDIRendererService.NOT_APPLICABLE, rendererService.isApplicable(control, viewModelContext),
+			0d);
+
+	}
+
+	@Test
+	public void testIsApplicableNoString() throws DatabindingFailedException {
+
+		emfFormsDatabinding = mock(EMFFormsDatabinding.class);
+		when(emfFormsDatabinding.getObservableValue(control.getDomainModelReference(), domainModel))
+			.thenReturn(
+				EMFObservables.observeValue(TestPackage.eINSTANCE.getD_X(), EcorePackage.eINSTANCE.getEAttribute_ID()));
+		rendererService.setDatabinding(emfFormsDatabinding);
+
+		assertEquals(EMFFormsDIRendererService.NOT_APPLICABLE, rendererService.isApplicable(control, viewModelContext),
+			0d);
+	}
+
+	@Test
+	public void testIsApplicable() throws DatabindingFailedException {
+		final EAnnotation annotation = EcoreFactory.eINSTANCE.createEAnnotation();
+		annotation.setSource(ANNOTATION_SOURCE);
+		annotation.getDetails().put(ANNOTATION_KEY, ANNOTATION_VALUE);
+
+		final EAttribute attributeSpy = EcoreUtil.copy(TestPackage.eINSTANCE.getD_X());
+		attributeSpy.getEAnnotations().add(annotation);
+
+		emfFormsDatabinding = mock(EMFFormsDatabinding.class);
+		when(emfFormsDatabinding.getObservableValue(control.getDomainModelReference(), domainModel))
+			.thenReturn(
+				EMFObservables.observeValue(domainModel, attributeSpy));
+		rendererService.setDatabinding(emfFormsDatabinding);
+
+		assertEquals(3d, rendererService.isApplicable(control, viewModelContext), 0d);
+	}
+
+}
diff --git a/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/src/org/eclipse/emfforms/internal/swt/control/text/autocomplete/renderer/AutocompleteTextControlSWTRenderer_Test.java b/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/src/org/eclipse/emfforms/internal/swt/control/text/autocomplete/renderer/AutocompleteTextControlSWTRenderer_Test.java
new file mode 100644
index 0000000..6f4984c
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/src/org/eclipse/emfforms/internal/swt/control/text/autocomplete/renderer/AutocompleteTextControlSWTRenderer_Test.java
@@ -0,0 +1,212 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.swt.control.text.autocomplete.renderer;
+
+import static org.junit.Assert.assertEquals;
+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.when;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.databinding.Binding;
+import org.eclipse.emf.databinding.EMFObservables;
+import org.eclipse.emf.ecore.EAttribute;
+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.model.VControl;
+import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
+import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.D;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestFactory;
+import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage;
+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.label.EMFFormsLabelProvider;
+import org.eclipse.emfforms.spi.swt.control.text.autocomplete.viewservice.AutocompleteViewModelService;
+import org.eclipse.jface.viewers.ComboViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Shell;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class AutocompleteTextControlSWTRenderer_Test {
+
+	private static final String CONTENT_PROPOSAL_ADAPTER = "ContentProposalAdapter"; //$NON-NLS-1$
+	private static final String FOO = "foo"; //$NON-NLS-1$
+	private static final String BAR = "bar"; //$NON-NLS-1$
+	private static final String FOOBAR = "foobar"; //$NON-NLS-1$
+
+	private static List<String> staticProposals;
+
+	private DefaultRealm defaultRealm;
+
+	private VControl control;
+	private AutocompleteViewModelService autocompleteViewModelService;
+	private ViewModelContext viewModelContext;
+	private EMFFormsDatabinding emfFormsDatabinding;
+	private D domainModel;
+	private Shell shell;
+	private Composite composite;
+
+	@BeforeClass
+	public static void setUpBeforeClass() {
+		staticProposals = new ArrayList<String>();
+		staticProposals.add(FOO);
+		staticProposals.add(BAR);
+	}
+
+	@Before
+	public void setUp() throws DatabindingFailedException {
+		defaultRealm = new DefaultRealm();
+
+		shell = new Shell();
+		composite = new Composite(shell, SWT.NONE);
+
+		domainModel = TestFactory.eINSTANCE.createD();
+		domainModel.setX(FOOBAR);
+
+		control = VViewFactory.eINSTANCE.createControl();
+		control.setDomainModelReference(TestPackage.eINSTANCE.getD_X());
+
+		autocompleteViewModelService = mock(AutocompleteViewModelService.class);
+		when(autocompleteViewModelService.getProposals(any(EObject.class), any(EAttribute.class)))
+			.thenReturn(staticProposals);
+
+		viewModelContext = mock(ViewModelContext.class);
+		when(viewModelContext.getService(AutocompleteViewModelService.class)).thenReturn(autocompleteViewModelService);
+		when(viewModelContext.getDomainModel()).thenReturn(domainModel);
+
+		emfFormsDatabinding = mock(EMFFormsDatabinding.class);
+		when(emfFormsDatabinding.getObservableValue(control.getDomainModelReference(), domainModel))
+			.thenReturn(EMFObservables.observeValue(domainModel, TestPackage.eINSTANCE.getD_X()));
+	}
+
+	@After
+	public void tearDown() {
+		shell.dispose();
+		defaultRealm.dispose();
+	}
+
+	@Test
+	public void testGetProposals() throws DatabindingFailedException {
+		final AutocompleteTextControlSWTRenderer renderer = new AutocompleteTextControlSWTRenderer(
+			control,
+			viewModelContext,
+			mock(ReportService.class),
+			emfFormsDatabinding,
+			mock(EMFFormsLabelProvider.class),
+			mock(VTViewTemplateProvider.class));
+		final List<String> proposals = renderer.getProposals();
+		assertSame(staticProposals, proposals);
+	}
+
+	@Test
+	public void testGetProposalsNoService() throws DatabindingFailedException {
+		viewModelContext = mock(ViewModelContext.class);
+		when(viewModelContext.getService(AutocompleteViewModelService.class)).thenReturn(null);
+		when(viewModelContext.getDomainModel()).thenReturn(domainModel);
+		final AutocompleteTextControlSWTRenderer renderer = new AutocompleteTextControlSWTRenderer(
+			control,
+			viewModelContext,
+			mock(ReportService.class),
+			emfFormsDatabinding,
+			mock(EMFFormsLabelProvider.class),
+			mock(VTViewTemplateProvider.class));
+		final List<String> proposals = renderer.getProposals();
+		assertTrue(proposals.isEmpty());
+	}
+
+	@Test(expected = DatabindingFailedException.class)
+	public void testGetProposalsDatabindingFailed() throws DatabindingFailedException {
+		emfFormsDatabinding = mock(EMFFormsDatabinding.class);
+		when(emfFormsDatabinding.getObservableValue(control.getDomainModelReference(), domainModel))
+			.thenThrow(new DatabindingFailedException("")); //$NON-NLS-1$
+		final AutocompleteTextControlSWTRenderer renderer = new AutocompleteTextControlSWTRenderer(
+			control,
+			viewModelContext,
+			mock(ReportService.class),
+			emfFormsDatabinding,
+			mock(EMFFormsLabelProvider.class),
+			mock(VTViewTemplateProvider.class));
+		renderer.getProposals();
+	}
+
+	@Test
+	public void testCreateJFaceViewer() throws DatabindingFailedException {
+		final AutocompleteTextControlSWTRenderer renderer = new AutocompleteTextControlSWTRenderer(
+			control,
+			viewModelContext,
+			mock(ReportService.class),
+			emfFormsDatabinding,
+			mock(EMFFormsLabelProvider.class),
+			mock(VTViewTemplateProvider.class));
+		final Viewer viewer = renderer.createJFaceViewer(composite);
+		assertTrue(ComboViewer.class.isInstance(viewer));
+		final ComboViewer comboViewer = ComboViewer.class.cast(viewer);
+		assertEquals(1, composite.getChildren().length);
+		assertSame(comboViewer.getCombo(), composite.getChildren()[0]);
+		assertSame(staticProposals, comboViewer.getInput());
+
+		/* check if contentproposal adapters have been set up */
+		/* TODO better way to test this? */
+		final Listener[] keyDownListeners = comboViewer.getCombo().getListeners(SWT.KeyDown);
+		final Listener[] traverseListeners = comboViewer.getCombo().getListeners(SWT.Traverse);
+		final Listener[] modifyListeners = comboViewer.getCombo().getListeners(SWT.Modify);
+
+		assertTrue("Content assist not set up?", hasContentProposalAdapter(keyDownListeners)); //$NON-NLS-1$
+		assertTrue("Content assist not set up?", hasContentProposalAdapter(traverseListeners)); //$NON-NLS-1$
+		assertTrue("Content assist not set up?", hasContentProposalAdapter(modifyListeners)); //$NON-NLS-1$
+	}
+
+	private boolean hasContentProposalAdapter(Listener[] listeners) {
+		for (final Listener listener : listeners) {
+			if (listener.getClass().getName().contains(CONTENT_PROPOSAL_ADAPTER)) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	@Test
+	public void testCreateBindings() throws DatabindingFailedException {
+		final AutocompleteTextControlSWTRenderer renderer = new AutocompleteTextControlSWTRenderer(
+			control,
+			viewModelContext,
+			mock(ReportService.class),
+			emfFormsDatabinding,
+			mock(EMFFormsLabelProvider.class),
+			mock(VTViewTemplateProvider.class));
+		final Viewer viewer = renderer.createJFaceViewer(composite);
+		final Combo combo = ComboViewer.class.cast(viewer).getCombo();
+		final Binding[] bindings = renderer.createBindings(viewer);
+		assertEquals(1, bindings.length);
+
+		domainModel.setX(FOO);
+		assertEquals(FOO, combo.getText());
+
+		combo.setText(BAR);
+		assertEquals(BAR, domainModel.getX());
+	}
+
+}
diff --git a/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/src/org/eclipse/emfforms/swt/control/text/autocomplete/tests/AllTests.java b/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/src/org/eclipse/emfforms/swt/control/text/autocomplete/tests/AllTests.java
new file mode 100644
index 0000000..fd4e717
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/src/org/eclipse/emfforms/swt/control/text/autocomplete/tests/AllTests.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.swt.control.text.autocomplete.tests;
+
+import org.eclipse.emfforms.internal.swt.control.text.autocomplete.renderer.AutocompleteTextControlSWTRendererService_Test;
+import org.eclipse.emfforms.internal.swt.control.text.autocomplete.renderer.AutocompleteTextControlSWTRenderer_Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+@RunWith(Suite.class)
+@SuiteClasses({
+	AutocompleteTextControlSWTRenderer_Test.class,
+	AutocompleteTextControlSWTRendererService_Test.class })
+public class AllTests {
+
+}
diff --git a/tests/org.eclipse.emfforms.swt.core.di.extension.tests/.checkstyle b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/.checkstyle
new file mode 100644
index 0000000..24d357f
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/.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.core.di.extension.tests/.classpath b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/.classpath
new file mode 100644
index 0000000..8a8f166
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/.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/tests/org.eclipse.emfforms.swt.core.di.extension.tests/.project b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/.project
new file mode 100644
index 0000000..3e1598b
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>org.eclipse.emfforms.swt.core.di.extension.tests</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.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
copy to tests/org.eclipse.emfforms.swt.core.di.extension.tests/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to tests/org.eclipse.emfforms.swt.core.di.extension.tests/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.core.prefs
copy to tests/org.eclipse.emfforms.swt.core.di.extension.tests/.settings/org.eclipse.jdt.core.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
copy to tests/org.eclipse.emfforms.swt.core.di.extension.tests/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs
copy to tests/org.eclipse.emfforms.swt.core.di.extension.tests/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to tests/org.eclipse.emfforms.swt.core.di.extension.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
copy to tests/org.eclipse.emfforms.swt.core.di.extension.tests/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
copy to tests/org.eclipse.emfforms.swt.core.di.extension.tests/.settings/org.eclipse.pde.prefs
diff --git a/tests/org.eclipse.emfforms.swt.core.di.extension.tests/All Plugin Tests for swt.core.di.extension.launch b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/All Plugin Tests for swt.core.di.extension.launch
new file mode 100644
index 0000000..9cfbf94
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/All Plugin Tests for swt.core.di.extension.launch
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

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

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

+<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="bad_container_name" value="\org.eclipse.emfforms.swt.core.di.extensiontests"/>

+<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.extension.tests/src/org/eclipse/emfforms/internal/swt/core/di/extension/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.extension.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.extension.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.extension.tests@default:false,org.eclipse.emfforms.swt.core.di.extension@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>

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
new file mode 100644
index 0000000..6001dcf
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,22 @@
+Manifest-Version: 1.0
+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.6.0.qualifier
+Fragment-Host: org.eclipse.emfforms.swt.core.di.extension;bundle-version="[1.6.0,2.0.0)"
+Bundle-Vendor: Eclipse Modeling Project
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.swt.core.di.tests;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.e4.core.contexts;bundle-version="[1.3.100,2.0.0)",
+ org.mockito.mockito-all;bundle-version="[1.9.5,2.0.0)",
+ org.junit;bundle-version="[4.11.0,5.0.0)"
+Export-Package: org.eclipse.emfforms.internal.swt.core.di.extension;version="1.6.0";x-internal:=true,
+ org.eclipse.emfforms.internal.swt.core.di.extension.tests;version="1.6.0";x-internal:=true
+Import-Package: org.osgi.framework;version="[1.3.0,2.0.0)"
diff --git a/tests/org.eclipse.emfforms.swt.core.di.extension.tests/build.properties b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/build.properties
new file mode 100644
index 0000000..3f78ea4
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/build.properties
@@ -0,0 +1,5 @@
+source.. = src/

+output.. = bin/

+bin.includes = META-INF/,\

+               .,\

+               fragment.xml

diff --git a/tests/org.eclipse.emfforms.swt.core.di.extension.tests/fragment.xml b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/fragment.xml
new file mode 100644
index 0000000..fe40908
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/fragment.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<fragment>
+   <extension
+         point="org.eclipse.emfforms.swt.core.di.extension.renderers">
+      <renderer
+            class="org.eclipse.emfforms.internal.swt.core.di.tests.TestControlSWTRendererDI"
+            tester="org.eclipse.emfforms.internal.swt.core.di.extension.tests.TestControlSWTRendererECPTester">
+      </renderer>
+   </extension>
+
+</fragment>
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
new file mode 100644
index 0000000..84dfc32
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/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.6.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.6.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>false</useUIHarness>
+					<useUIThread>false</useUIThread>
+				</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.equinox.ds</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+</project>
diff --git a/tests/org.eclipse.emfforms.swt.core.di.extension.tests/src/org/eclipse/emfforms/internal/swt/core/di/extension/EMFFormsDIExtensionRendererFactory_PTest.java b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/src/org/eclipse/emfforms/internal/swt/core/di/extension/EMFFormsDIExtensionRendererFactory_PTest.java
new file mode 100644
index 0000000..9b6b96c
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/src/org/eclipse/emfforms/internal/swt/core/di/extension/EMFFormsDIExtensionRendererFactory_PTest.java
@@ -0,0 +1,133 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.swt.core.di.extension;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.util.Collection;
+
+import org.eclipse.e4.core.contexts.EclipseContextFactory;
+import org.eclipse.e4.core.contexts.IEclipseContext;
+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.VControl;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
+import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
+import org.eclipse.emfforms.internal.swt.core.di.tests.TestControlSWTRendererDI;
+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;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsContextProvider;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * JUnit plugin test for {@link EMFFormsDIExtensionRendererFactory}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+@SuppressWarnings("rawtypes")
+public class EMFFormsDIExtensionRendererFactory_PTest {
+
+	private EMFFormsDIExtensionRendererFactory diExtensionRendererFactory;
+	private ServiceReference<EMFFormsRendererService> serviceReference;
+	private BundleContext bundleContext;
+	private DefaultRealm realm;
+
+	/**
+	 * Gets a {@link EMFFormsDIExtensionRendererFactory} and creates a {@link DefaultRealm} for every test case.
+	 *
+	 * @throws InvalidSyntaxException does not happen because no actual filter is used
+	 */
+	@Before
+	public void setUp() throws InvalidSyntaxException {
+		realm = new DefaultRealm();
+		diExtensionRendererFactory = null;
+		bundleContext = FrameworkUtil.getBundle(EMFFormsDIExtensionRendererFactory_PTest.class).getBundleContext();
+		final Collection<ServiceReference<EMFFormsRendererService>> serviceReferences = bundleContext
+			.getServiceReferences(EMFFormsRendererService.class, null);
+		for (final ServiceReference<EMFFormsRendererService> currentRef : serviceReferences) {
+			final EMFFormsRendererService currentService = bundleContext.getService(currentRef);
+			if (EMFFormsDIExtensionRendererFactory.class.isInstance(currentService)) {
+				serviceReference = currentRef;
+				diExtensionRendererFactory = (EMFFormsDIExtensionRendererFactory) currentService;
+				break;
+			}
+			bundleContext.ungetService(currentRef);
+		}
+		if (diExtensionRendererFactory == null) {
+			fail("No EMFFormsDIExtensionRendererFactory could be found."); //$NON-NLS-1$
+		}
+	}
+
+	/**
+	 * Clean up.
+	 */
+	@After
+	public void tearDown() {
+		bundleContext.ungetService(serviceReference);
+		realm.dispose();
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererFactory#isApplicable(org.eclipse.emf.ecp.view.spi.model.VElement, org.eclipse.emf.ecp.view.spi.context.ViewModelContext)}
+	 * .
+	 */
+	@Test
+	public void testIsApplicable() {
+		final VControl vControl = mock(VControl.class);
+		final ViewModelContext viewModelContext = mock(ViewModelContext.class);
+		assertEquals(200L, diExtensionRendererFactory.isApplicable(vControl, viewModelContext), 0.0);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererFactory#getRendererInstance(org.eclipse.emf.ecp.view.spi.model.VElement, org.eclipse.emf.ecp.view.spi.context.ViewModelContext)}
+	 * .
+	 */
+	@Test
+	public void testGetRendererInstance() {
+		final IEclipseContext eclipseContext = EclipseContextFactory.create("TestContext"); //$NON-NLS-1$
+		final ReportService reportService = mock(ReportService.class);
+		final EMFFormsDatabinding emfFormsDatabinding = mock(EMFFormsDatabinding.class);
+		final EMFFormsLabelProvider emfFormsLabelProvider = mock(EMFFormsLabelProvider.class);
+		final VTViewTemplateProvider viewTemplateProvider = mock(VTViewTemplateProvider.class);
+		eclipseContext.set(ReportService.class, reportService);
+		eclipseContext.set(EMFFormsDatabinding.class, emfFormsDatabinding);
+		eclipseContext.set(EMFFormsLabelProvider.class, emfFormsLabelProvider);
+		eclipseContext.set(VTViewTemplateProvider.class, viewTemplateProvider);
+
+		final VControl vControl = VViewFactory.eINSTANCE.createControl();
+		final EMFFormsContextProvider contextProvider = mock(EMFFormsContextProvider.class);
+		when(contextProvider.getContext()).thenReturn(eclipseContext);
+		final ViewModelContext viewModelContext = mock(ViewModelContext.class);
+		when(viewModelContext.getService(EMFFormsContextProvider.class)).thenReturn(contextProvider);
+		final AbstractSWTRenderer<VElement> rendererInstance = diExtensionRendererFactory.getRendererInstance(vControl,
+			viewModelContext);
+		assertTrue(TestControlSWTRendererDI.class.isInstance(rendererInstance));
+	}
+
+}
diff --git a/tests/org.eclipse.emfforms.swt.core.di.extension.tests/src/org/eclipse/emfforms/internal/swt/core/di/extension/tests/AllPluginTests.java b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/src/org/eclipse/emfforms/internal/swt/core/di/extension/tests/AllPluginTests.java
new file mode 100644
index 0000000..d668fc4
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/src/org/eclipse/emfforms/internal/swt/core/di/extension/tests/AllPluginTests.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.swt.core.di.extension.tests;
+
+import org.eclipse.emfforms.internal.swt.core.di.extension.EMFFormsDIExtensionRendererFactory_PTest;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+/**
+ * JUnit test suite containing all plugin tests for swt.core.di.extension.
+ *
+ * @author Lucas Koehler
+ *
+ */
+@RunWith(Suite.class)
+@SuiteClasses({ EMFFormsDIExtensionRendererFactory_PTest.class })
+public class AllPluginTests {
+
+}
diff --git a/tests/org.eclipse.emfforms.swt.core.di.extension.tests/src/org/eclipse/emfforms/internal/swt/core/di/extension/tests/TestControlSWTRendererECPTester.java b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/src/org/eclipse/emfforms/internal/swt/core/di/extension/tests/TestControlSWTRendererECPTester.java
new file mode 100644
index 0000000..018d145
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/src/org/eclipse/emfforms/internal/swt/core/di/extension/tests/TestControlSWTRendererECPTester.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.swt.core.di.extension.tests;
+
+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.model.VControl;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+
+/**
+ * The {@link ECPRendererTester} for the
+ * {@link org.eclipse.emfforms.internal.swt.core.di.tests.TestControlSWTRendererDI TestControlSWTRendererDI}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class TestControlSWTRendererECPTester implements ECPRendererTester {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.model.common.ECPRendererTester#isApplicable(org.eclipse.emf.ecp.view.spi.model.VElement,
+	 *      org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
+	 */
+	@Override
+	public int isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		if (VControl.class.isInstance(vElement)) {
+			return 200;
+		}
+		return NOT_APPLICABLE;
+	}
+
+}
diff --git a/tests/org.eclipse.emfforms.swt.core.di.tests/.checkstyle b/tests/org.eclipse.emfforms.swt.core.di.tests/.checkstyle
new file mode 100644
index 0000000..24d357f
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.di.tests/.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.core.di.tests/.classpath b/tests/org.eclipse.emfforms.swt.core.di.tests/.classpath
new file mode 100644
index 0000000..8a8f166
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.di.tests/.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/tests/org.eclipse.emfforms.swt.core.di.tests/.project b/tests/org.eclipse.emfforms.swt.core.di.tests/.project
new file mode 100644
index 0000000..5b87f67
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.di.tests/.project
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>org.eclipse.emfforms.swt.core.di.tests</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.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.emfforms.swt.core.di.tests/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
copy to tests/org.eclipse.emfforms.swt.core.di.tests/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/tests/org.eclipse.emfforms.swt.core.di.tests/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to tests/org.eclipse.emfforms.swt.core.di.tests/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emfforms.swt.core.di.tests/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.core.prefs
copy to tests/org.eclipse.emfforms.swt.core.di.tests/.settings/org.eclipse.jdt.core.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/tests/org.eclipse.emfforms.swt.core.di.tests/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
copy to tests/org.eclipse.emfforms.swt.core.di.tests/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.emfforms.swt.core.di.tests/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs
copy to tests/org.eclipse.emfforms.swt.core.di.tests/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/tests/org.eclipse.emfforms.swt.core.di.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to tests/org.eclipse.emfforms.swt.core.di.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.swt.core.di.tests/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
copy to tests/org.eclipse.emfforms.swt.core.di.tests/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.emfforms.swt.core.di.tests/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
copy to tests/org.eclipse.emfforms.swt.core.di.tests/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..b64214b
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.di.tests/All Plugin Tests for swt.core.di.launch
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

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

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

+<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>

diff --git a/tests/org.eclipse.emfforms.swt.core.di.tests/All Tests for swt.core.di.launch b/tests/org.eclipse.emfforms.swt.core.di.tests/All Tests for swt.core.di.launch
new file mode 100644
index 0000000..9e6a475
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.di.tests/All Tests for swt.core.di.launch
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

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

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

+<listEntry value="/org.eclipse.emfforms.swt.core.di.tests/src/org/eclipse/emfforms/internal/swt/core/di/tests/AllTests.java"/>

+</listAttribute>

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

+<listEntry value="1"/>

+</listAttribute>

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

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

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

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

+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emfforms.internal.swt.core.di.tests.AllTests"/>

+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emfforms.swt.core.di.tests"/>

+</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
new file mode 100644
index 0000000..b628f71
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.di.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,29 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMFForms SWT Core DI Tests
+Bundle-SymbolicName: org.eclipse.emfforms.swt.core.di.tests
+Bundle-Version: 1.6.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.eclipse.emfforms.swt.core.di;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.6.0,2.0.0)",
+ org.junit;bundle-version="[4.11.0,5.0.0)",
+ org.mockito.mockito-all;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.core.databinding;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.6.0,2.0.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.6.0,2.0.0)",
+ org.eclipse.e4.core.contexts;bundle-version="[1.3.100,2.0.0)"
+Export-Package: org.eclipse.emfforms.internal.swt.core.di.tests;version="1.6.0";x-friends:="org.eclipse.emfforms.swt.core.di.extension.tests",
+ org.eclipse.emfforms.spi.swt.core.di;version="1.6.0"
+Service-Component: OSGI-INF/testControlSWTRendererServiceDI.xml
+Bundle-ActivationPolicy: lazy
+Import-Package: javax.inject;version="[1.0.0,2.0.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/build.properties b/tests/org.eclipse.emfforms.swt.core.di.tests/build.properties
new file mode 100644
index 0000000..f250f99
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.di.tests/build.properties
@@ -0,0 +1,4 @@
+output.. = bin/
+bin.includes = META-INF/,\
+               .
+source.. = src/
diff --git a/tests/org.eclipse.emfforms.swt.core.di.tests/pom.xml b/tests/org.eclipse.emfforms.swt.core.di.tests/pom.xml
new file mode 100644
index 0000000..5bf59fd
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.di.tests/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.6.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.6.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>false</useUIHarness>
+					<useUIThread>false</useUIThread>
+				</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.equinox.ds</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+</project>
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
new file mode 100644
index 0000000..33f37c0
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.di.tests/src/org/eclipse/emfforms/internal/swt/core/di/tests/AllPluginTests.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.swt.core.di.tests;
+
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererFactory_PTest;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+/**
+ * JUnit test suite containing all plugin tests for swt.core.di.
+ *
+ * @author Lucas Koehler
+ *
+ */
+@RunWith(Suite.class)
+@SuiteClasses({ EMFFormsDIRendererFactory_PTest.class })
+public class AllPluginTests {
+
+}
diff --git a/tests/org.eclipse.emfforms.swt.core.di.tests/src/org/eclipse/emfforms/internal/swt/core/di/tests/AllTests.java b/tests/org.eclipse.emfforms.swt.core.di.tests/src/org/eclipse/emfforms/internal/swt/core/di/tests/AllTests.java
new file mode 100644
index 0000000..4d3cabd
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.di.tests/src/org/eclipse/emfforms/internal/swt/core/di/tests/AllTests.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.swt.core.di.tests;
+
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererFactory_Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+/**
+ * Test suite containing all JUnit tests for swt.core.di.
+ *
+ * @author Lucas Koehler
+ *
+ */
+@RunWith(Suite.class)
+@SuiteClasses({ EMFFormsDIRendererFactory_Test.class })
+public class AllTests {
+
+}
diff --git a/tests/org.eclipse.emfforms.swt.core.di.tests/src/org/eclipse/emfforms/internal/swt/core/di/tests/TestControlSWTRendererDI.java b/tests/org.eclipse.emfforms.swt.core.di.tests/src/org/eclipse/emfforms/internal/swt/core/di/tests/TestControlSWTRendererDI.java
new file mode 100644
index 0000000..14c98b7
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.di.tests/src/org/eclipse/emfforms/internal/swt/core/di/tests/TestControlSWTRendererDI.java
@@ -0,0 +1,85 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.swt.core.di.tests;
+
+import javax.inject.Inject;
+
+import org.eclipse.core.databinding.Binding;
+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.model.VControl;
+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.DatabindingFailedException;
+import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
+import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+
+/**
+ * Simple Renderer to test dependency injection.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class TestControlSWTRendererDI extends SimpleControlSWTControlSWTRenderer {
+
+	/**
+	 * @param vElement
+	 * @param viewContext
+	 * @param reportService
+	 * @param emfFormsDatabinding
+	 * @param emfFormsLabelProvider
+	 * @param vtViewTemplateProvider
+	 */
+	@Inject
+	public TestControlSWTRendererDI(VControl vElement, ViewModelContext viewContext, ReportService reportService,
+		EMFFormsDatabinding emfFormsDatabinding, EMFFormsLabelProvider emfFormsLabelProvider,
+		VTViewTemplateProvider vtViewTemplateProvider) {
+		super(vElement, viewContext, reportService, emfFormsDatabinding, emfFormsLabelProvider, vtViewTemplateProvider);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer#createBindings(org.eclipse.swt.widgets.Control)
+	 */
+	@Override
+	protected Binding[] createBindings(Control control) throws DatabindingFailedException {
+		return new Binding[0];
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer#createSWTControl(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	protected Control createSWTControl(Composite parent) throws DatabindingFailedException {
+		final Label label = new Label(parent, SWT.NONE);
+		label.setText("TEST"); //$NON-NLS-1$
+		return label;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTRenderer#getUnsetText()
+	 */
+	@Override
+	protected String getUnsetText() {
+		return ""; //$NON-NLS-1$
+	}
+
+}
diff --git a/tests/org.eclipse.emfforms.swt.core.di.tests/src/org/eclipse/emfforms/internal/swt/core/di/tests/TestControlSWTRendererServiceDI.java b/tests/org.eclipse.emfforms.swt.core.di.tests/src/org/eclipse/emfforms/internal/swt/core/di/tests/TestControlSWTRendererServiceDI.java
new file mode 100644
index 0000000..cce0a89a
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.di.tests/src/org/eclipse/emfforms/internal/swt/core/di/tests/TestControlSWTRendererServiceDI.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.swt.core.di.tests;
+
+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.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
+
+/**
+ * Renderer service for {@link TestControlSWTRendererDI}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class TestControlSWTRendererServiceDI implements EMFFormsDIRendererService<VControl> {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#isApplicable(org.eclipse.emf.ecp.view.spi.model.VElement,
+	 *      org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
+	 */
+	@Override
+	public double isApplicable(VElement vElement, ViewModelContext viewModelContext) {
+		return 10.0;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService#getRendererClass()
+	 */
+	@Override
+	public Class<? extends AbstractSWTRenderer<VControl>> getRendererClass() {
+		return TestControlSWTRendererDI.class;
+	}
+
+}
diff --git a/tests/org.eclipse.emfforms.swt.core.di.tests/src/org/eclipse/emfforms/spi/swt/core/di/EMFFormsDIRendererFactory_PTest.java b/tests/org.eclipse.emfforms.swt.core.di.tests/src/org/eclipse/emfforms/spi/swt/core/di/EMFFormsDIRendererFactory_PTest.java
new file mode 100644
index 0000000..59f75bf
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.di.tests/src/org/eclipse/emfforms/spi/swt/core/di/EMFFormsDIRendererFactory_PTest.java
@@ -0,0 +1,111 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.swt.core.di;
+
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import org.eclipse.e4.core.contexts.EclipseContextFactory;
+import org.eclipse.e4.core.contexts.IEclipseContext;
+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.VControl;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
+import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
+import org.eclipse.emfforms.internal.swt.core.di.tests.TestControlSWTRendererDI;
+import org.eclipse.emfforms.internal.swt.core.di.tests.TestControlSWTRendererServiceDI;
+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;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
+import org.osgi.framework.ServiceRegistration;
+
+/**
+ * JUnit plugin tests for {@link EMFFormsDIRendererFactory}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+@SuppressWarnings("rawtypes")
+public class EMFFormsDIRendererFactory_PTest {
+
+	private EMFFormsDIRendererFactory diRendererFactory;
+	private ServiceRegistration<EMFFormsDIRendererService> registerRendererService;
+	private ServiceReference<EMFFormsRendererService> serviceReference;
+	private BundleContext bundleContext;
+
+	private DefaultRealm realm;
+
+	/**
+	 * Creates a new {@link EMFFormsDIRendererFactory}, registers the {@link EMFFormsDIRendererService test di
+	 * renderer service} and creates a new {@link DefaultRealm} for every test case.
+	 */
+	@Before
+	public void setUp() {
+		realm = new DefaultRealm();
+		bundleContext = FrameworkUtil.getBundle(EMFFormsDIRendererFactory_PTest.class).getBundleContext();
+		registerRendererService = bundleContext.registerService(EMFFormsDIRendererService.class,
+			new TestControlSWTRendererServiceDI(), null);
+		serviceReference = bundleContext.getServiceReference(EMFFormsRendererService.class);
+		diRendererFactory = (EMFFormsDIRendererFactory) bundleContext.getService(serviceReference);
+	}
+
+	/**
+	 * Clean up
+	 */
+	@After
+	public void tearDown() {
+		bundleContext.ungetService(serviceReference);
+		registerRendererService.unregister();
+		realm.dispose();
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererFactory#getRendererInstance(org.eclipse.emf.ecp.view.spi.model.VElement, org.eclipse.emf.ecp.view.spi.context.ViewModelContext)}
+	 * .
+	 */
+	@Test
+	public void testGetRendererInstance() {
+		final IEclipseContext eclipseContext = EclipseContextFactory.create("TestContext"); //$NON-NLS-1$
+		final ReportService reportService = mock(ReportService.class);
+		final EMFFormsDatabinding emfFormsDatabinding = mock(EMFFormsDatabinding.class);
+		final EMFFormsLabelProvider emfFormsLabelProvider = mock(EMFFormsLabelProvider.class);
+		final VTViewTemplateProvider viewTemplateProvider = mock(VTViewTemplateProvider.class);
+		eclipseContext.set(ReportService.class, reportService);
+		eclipseContext.set(EMFFormsDatabinding.class, emfFormsDatabinding);
+		eclipseContext.set(EMFFormsLabelProvider.class, emfFormsLabelProvider);
+		eclipseContext.set(VTViewTemplateProvider.class, viewTemplateProvider);
+
+		final VControl vControl = VViewFactory.eINSTANCE.createControl();
+		final EMFFormsContextProvider contextProvider = mock(EMFFormsContextProvider.class);
+		when(contextProvider.getContext()).thenReturn(eclipseContext);
+		final ViewModelContext viewModelContext = mock(ViewModelContext.class);
+		when(viewModelContext.getService(EMFFormsContextProvider.class)).thenReturn(contextProvider);
+
+		final AbstractSWTRenderer<VElement> rendererInstance = diRendererFactory.getRendererInstance(vControl,
+			viewModelContext);
+
+		assertTrue("The created renderer instance must be of type TestControlSWTRendererDI.", //$NON-NLS-1$
+			TestControlSWTRendererDI.class.isInstance(rendererInstance));
+	}
+
+}
diff --git a/tests/org.eclipse.emfforms.swt.core.di.tests/src/org/eclipse/emfforms/spi/swt/core/di/EMFFormsDIRendererFactory_Test.java b/tests/org.eclipse.emfforms.swt.core.di.tests/src/org/eclipse/emfforms/spi/swt/core/di/EMFFormsDIRendererFactory_Test.java
new file mode 100644
index 0000000..ba131e4
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.di.tests/src/org/eclipse/emfforms/spi/swt/core/di/EMFFormsDIRendererFactory_Test.java
@@ -0,0 +1,106 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.swt.core.di;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * JUnit test cases for {@link EMFFormsDIRendererFactory}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class EMFFormsDIRendererFactory_Test {
+
+	private EMFFormsDIRendererFactory diRendererFactory;
+
+	/**
+	 * Creates a new {@link EMFFormsDIRendererFactory} for every test case.
+	 */
+	@Before
+	public void setUp() {
+		diRendererFactory = new EMFFormsDIRendererFactory();
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererFactory#isApplicable(org.eclipse.emf.ecp.view.spi.model.VElement, org.eclipse.emf.ecp.view.spi.context.ViewModelContext)}
+	 * .
+	 */
+	@SuppressWarnings("unchecked")
+	@Test
+	public void testIsApplicableOneApplicable() {
+		final EMFFormsDIRendererService<VElement> diRendererService1 = mock(EMFFormsDIRendererService.class);
+		when(diRendererService1.isApplicable(any(VElement.class), any(ViewModelContext.class))).thenReturn(
+			EMFFormsDIRendererService.NOT_APPLICABLE);
+
+		final EMFFormsDIRendererService<VElement> diRendererService2 = mock(EMFFormsDIRendererService.class);
+		when(diRendererService2.isApplicable(any(VElement.class), any(ViewModelContext.class))).thenReturn(10.0);
+
+		diRendererFactory.addEMFFormsDIRendererService(diRendererService1);
+		diRendererFactory.addEMFFormsDIRendererService(diRendererService2);
+
+		assertEquals(10.0, diRendererFactory.isApplicable(mock(VElement.class), mock(ViewModelContext.class)), 0.0);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererFactory#isApplicable(org.eclipse.emf.ecp.view.spi.model.VElement, org.eclipse.emf.ecp.view.spi.context.ViewModelContext)}
+	 * .
+	 */
+	@SuppressWarnings("unchecked")
+	@Test
+	public void testIsApplicableNoneApplicable() {
+		final EMFFormsDIRendererService<VElement> diRendererService1 = mock(EMFFormsDIRendererService.class);
+		when(diRendererService1.isApplicable(any(VElement.class), any(ViewModelContext.class))).thenReturn(
+			EMFFormsDIRendererService.NOT_APPLICABLE);
+
+		final EMFFormsDIRendererService<VElement> diRendererService2 = mock(EMFFormsDIRendererService.class);
+		when(diRendererService2.isApplicable(any(VElement.class), any(ViewModelContext.class))).thenReturn(
+			EMFFormsDIRendererService.NOT_APPLICABLE);
+
+		diRendererFactory.addEMFFormsDIRendererService(diRendererService1);
+		diRendererFactory.addEMFFormsDIRendererService(diRendererService2);
+
+		assertEquals(EMFFormsDIRendererService.NOT_APPLICABLE,
+			diRendererFactory.isApplicable(mock(VElement.class), mock(ViewModelContext.class)), 0.0);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererFactory#isApplicable(org.eclipse.emf.ecp.view.spi.model.VElement, org.eclipse.emf.ecp.view.spi.context.ViewModelContext)}
+	 * .
+	 */
+	@SuppressWarnings("unchecked")
+	@Test
+	public void testIsApplicableTwoApplicable() {
+		final EMFFormsDIRendererService<VElement> diRendererService1 = mock(EMFFormsDIRendererService.class);
+		when(diRendererService1.isApplicable(any(VElement.class), any(ViewModelContext.class))).thenReturn(2.0);
+
+		final EMFFormsDIRendererService<VElement> diRendererService2 = mock(EMFFormsDIRendererService.class);
+		when(diRendererService2.isApplicable(any(VElement.class), any(ViewModelContext.class))).thenReturn(10.0);
+
+		diRendererFactory.addEMFFormsDIRendererService(diRendererService1);
+		diRendererFactory.addEMFFormsDIRendererService(diRendererService2);
+
+		assertEquals(10.0, diRendererFactory.isApplicable(mock(VElement.class), mock(ViewModelContext.class)), 0.0);
+	}
+
+}
diff --git a/tests/org.eclipse.emfforms.swt.core.tests/.checkstyle b/tests/org.eclipse.emfforms.swt.core.tests/.checkstyle
new file mode 100644
index 0000000..24d357f
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.tests/.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/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath b/tests/org.eclipse.emfforms.swt.core.tests/.classpath
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath
copy to tests/org.eclipse.emfforms.swt.core.tests/.classpath
diff --git a/tests/org.eclipse.emfforms.swt.core.tests/.gitignore b/tests/org.eclipse.emfforms.swt.core.tests/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.tests/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/tests/org.eclipse.emfforms.swt.core.tests/.project b/tests/org.eclipse.emfforms.swt.core.tests/.project
new file mode 100644
index 0000000..228b65e
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.tests/.project
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.swt.core.tests</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>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.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.emfforms.swt.core.tests/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
copy to tests/org.eclipse.emfforms.swt.core.tests/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/tests/org.eclipse.emfforms.swt.core.tests/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to tests/org.eclipse.emfforms.swt.core.tests/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emfforms.swt.core.tests/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.core.prefs
copy to tests/org.eclipse.emfforms.swt.core.tests/.settings/org.eclipse.jdt.core.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/tests/org.eclipse.emfforms.swt.core.tests/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
copy to tests/org.eclipse.emfforms.swt.core.tests/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.emfforms.swt.core.tests/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs
copy to tests/org.eclipse.emfforms.swt.core.tests/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/tests/org.eclipse.emfforms.swt.core.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to tests/org.eclipse.emfforms.swt.core.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.swt.core.tests/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
copy to tests/org.eclipse.emfforms.swt.core.tests/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.emfforms.swt.core.tests/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
copy to tests/org.eclipse.emfforms.swt.core.tests/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..9538aff
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.tests/AllIntegrationTests emfforms.swt.core.launch
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

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

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

+<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.emfforms.swt.core.tests/src/org/eclipse/emfforms/swt/core/tests/AllIntegrationTests.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.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"/>

+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emfforms.swt.core.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="true"/>

+<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@-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.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.model.common@default:default,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emf.ecp.view.table.model@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emfforms.core.services.databinding.featurepath@default:default,org.eclipse.emfforms.core.services.databinding@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.tests@default:false,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>

diff --git a/tests/org.eclipse.emfforms.swt.core.tests/AllTests emfforms.swt.core.launch b/tests/org.eclipse.emfforms.swt.core.tests/AllTests emfforms.swt.core.launch
new file mode 100644
index 0000000..7cc2947
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.tests/AllTests emfforms.swt.core.launch
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

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

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

+<listEntry value="/org.eclipse.emfforms.swt.core.tests/src/org/eclipse/emfforms/swt/core/tests/AllTests.java"/>

+</listAttribute>

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

+<listEntry value="1"/>

+</listAttribute>

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

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

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

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

+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emfforms.swt.core.tests.AllTests"/>

+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emfforms.swt.core.tests"/>

+</launchConfiguration>

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
new file mode 100644
index 0000000..65e60eb
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,12 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMFForms SWT Core Tests
+Bundle-SymbolicName: org.eclipse.emfforms.swt.core.tests
+Bundle-Version: 1.6.0.qualifier
+Fragment-Host: org.eclipse.emfforms.swt.core;bundle-version="[1.6.0,2.0.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
+ org.mockito.mockito-all;bundle-version="[1.9.5,2.0.0)"
+Import-Package: org.osgi.framework;version="[1.6.0,2.0.0)"
+Export-Package: org.eclipse.emfforms.internal.swt.core;version="1.6.0";x-internal:=true,
+ org.eclipse.emfforms.swt.core.tests;version="1.6.0";x-internal:=true
diff --git a/tests/org.eclipse.emfforms.swt.core.tests/build.properties b/tests/org.eclipse.emfforms.swt.core.tests/build.properties
new file mode 100644
index 0000000..34d2e4d
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.tests/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .
diff --git a/tests/org.eclipse.emfforms.swt.core.tests/pom.xml b/tests/org.eclipse.emfforms.swt.core.tests/pom.xml
new file mode 100644
index 0000000..5c27270
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.tests/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.6.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.6.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>false</useUIHarness>
+					<useUIThread>false</useUIThread>
+				</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.equinox.ds</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+</project>
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
new file mode 100644
index 0000000..73b5289
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.tests/src/org/eclipse/emfforms/internal/swt/core/EMFFormsRendererFactory_ITest.java
@@ -0,0 +1,154 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.swt.core;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.mock;
+
+import java.util.Collection;
+import java.util.Collections;
+
+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;
+import org.eclipse.emfforms.spi.swt.core.AbstractAdditionalSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsAdditionalRendererService;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.mockito.Matchers;
+import org.mockito.Mockito;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
+import org.osgi.framework.ServiceRegistration;
+
+/**
+ * Integration test for the {@link EMFFormsRendererFactory}.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class EMFFormsRendererFactory_ITest {
+
+	private EMFFormsRendererFactory rendererFactory;
+	private ServiceReference<EMFFormsRendererFactory> serviceReference;
+	private static BundleContext bundleContext;
+
+	/**
+	 * Setup the {@link BundleContext}.
+	 */
+	@BeforeClass
+	public static void beforeClass() {
+		final Bundle bundle = FrameworkUtil.getBundle(EMFFormsRendererFactory_ITest.class);
+		bundleContext = bundle.getBundleContext();
+	}
+
+	/**
+	 * Retrieves the {@link EMFFormsRendererFactory} as a service.
+	 */
+	@Before
+	public void setUp() {
+		serviceReference = bundleContext.getServiceReference(EMFFormsRendererFactory.class);
+		rendererFactory = bundleContext.getService(serviceReference);
+	}
+
+	/**
+	 * Ungets the service.
+	 */
+	@After
+	public void cleanUp() {
+		bundleContext.ungetService(serviceReference);
+	}
+
+	/**
+	 * Test method for {@link EMFFormsRendererFactory#getRendererInstance(VElement, ViewModelContext)}.
+	 * Testing that a registered {@link EMFFormsRendererService} is picked up.
+	 *
+	 * @throws EMFFormsNoRendererException
+	 */
+	@SuppressWarnings("unchecked")
+	@Test
+	public void testAddRendererService() throws EMFFormsNoRendererException {
+		final VElement vElement = mock(VElement.class);
+		final ViewModelContext viewModelContext = mock(ViewModelContext.class);
+		final AbstractSWTRenderer<VElement> mockedRenderer = new MockedAbstractSWTRenderer(vElement, viewModelContext,
+			mock(ReportService.class));
+		final EMFFormsRendererService<VElement> rendererService = mock(EMFFormsRendererService.class);
+		Mockito.when(rendererService.getRendererInstance(vElement, viewModelContext)).thenReturn(mockedRenderer);
+		bundleContext.registerService(EMFFormsRendererService.class, rendererService, null);
+		rendererFactory.getRendererInstance(vElement, viewModelContext);
+		Mockito.verify(rendererService, Mockito.times(1)).isApplicable(vElement, viewModelContext);
+	}
+
+	/**
+	 * Test method for {@link EMFFormsRendererFactory#getRendererInstance(VElement, ViewModelContext)}.
+	 * Testing that an IllegalStateException is thrown when no {@link EMFFormsRendererService} is registered.
+	 *
+	 * @throws EMFFormsNoRendererException
+	 */
+	@SuppressWarnings({ "rawtypes", "unchecked" })
+	@Test(expected = EMFFormsNoRendererException.class)
+	public void testRemoveRendererService() throws EMFFormsNoRendererException {
+		final EMFFormsRendererService<VElement> rendererService = mock(EMFFormsRendererService.class);
+		final ServiceRegistration<EMFFormsRendererService> registerService = bundleContext.registerService(
+			EMFFormsRendererService.class, rendererService, null);
+		registerService.unregister();
+		rendererFactory.getRendererInstance(mock(VElement.class), mock(ViewModelContext.class));
+	}
+
+	/**
+	 * Test method for {@link EMFFormsRendererFactory#getAdditionalRendererInstances(VElement, ViewModelContext)}.
+	 * Testing that a registered {@link EMFFormsAdditionalRendererService} is picked up.
+	 */
+	@SuppressWarnings("unchecked")
+	@Test
+	public void testAddAdditionalRendererService() {
+		final VElement vElement = mock(VElement.class);
+		final ViewModelContext viewModelContext = mock(ViewModelContext.class);
+		final AbstractAdditionalSWTRenderer<VElement> additionalSWTRenderer = new MockedAbstractAdditionalSWTRenderer(
+			vElement, viewModelContext, mock(ReportService.class));
+		final EMFFormsAdditionalRendererService<VElement> rendererService = mock(EMFFormsAdditionalRendererService.class);
+		Mockito.when(rendererService.getRendererInstances(vElement, viewModelContext)).thenReturn(
+			Collections.singleton(additionalSWTRenderer));
+		Mockito.when(rendererService.isApplicable(Matchers.any(VElement.class), Matchers.any(ViewModelContext.class)))
+			.thenReturn(true);
+		bundleContext.registerService(EMFFormsAdditionalRendererService.class, rendererService, null);
+		final Collection<AbstractAdditionalSWTRenderer<VElement>> rendererInstances = rendererFactory
+			.getAdditionalRendererInstances(vElement, viewModelContext);
+		Mockito.verify(rendererService, Mockito.times(1)).isApplicable(Matchers.any(VElement.class),
+			Matchers.any(ViewModelContext.class));
+		assertEquals(1, rendererInstances.size());
+	}
+
+	/**
+	 * Test method for {@link EMFFormsRendererFactory#getAdditionalRendererInstances(VElement, ViewModelContext)}.
+	 * Testing that an IllegalStateException is thrown when no {@link EMFFormsAdditionalRendererService} is registered.
+	 */
+	@SuppressWarnings({ "rawtypes", "unchecked" })
+	@Test
+	public void testRemoveAdditionalRendererService() {
+		final EMFFormsAdditionalRendererService<VElement> rendererService = mock(EMFFormsAdditionalRendererService.class);
+		final ServiceRegistration<EMFFormsAdditionalRendererService> registerService = bundleContext.registerService(
+			EMFFormsAdditionalRendererService.class, rendererService, null);
+		registerService.unregister();
+		final Collection<AbstractAdditionalSWTRenderer<VElement>> rendererInstances = rendererFactory
+			.getAdditionalRendererInstances(mock(VElement.class), mock(ViewModelContext.class));
+		assertEquals(0, rendererInstances.size());
+	}
+}
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
new file mode 100644
index 0000000..ac26521
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.tests/src/org/eclipse/emfforms/internal/swt/core/EMFFormsRendererFactory_Test.java
@@ -0,0 +1,261 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.swt.core;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+
+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.VViewPackage;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.swt.core.AbstractAdditionalSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsAdditionalRendererService;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Matchers;
+import org.mockito.Mockito;
+
+/**
+ * Test for the {@link EMFFormsRendererFactoryImpl}.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class EMFFormsRendererFactory_Test {
+
+	private EMFFormsRendererFactoryImpl rendererFactory;
+
+	/**
+	 * Setup the EMFFormsRendererFactoryImpl.
+	 */
+	@Before
+	public void setUp() {
+		rendererFactory = new EMFFormsRendererFactoryImpl();
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory#getRendererInstance(VElement, ViewModelContext)
+	 * EMFFormsRendererFactory#getRendererInstance(VElement, ViewModelContext)}.
+	 * When no EMFFormsRendererService is registered then an IllegalStateException should be thrown.
+	 *
+	 * @throws EMFFormsNoRendererException
+	 */
+	@Test(expected = EMFFormsNoRendererException.class)
+	public void testGetRendererInstanceNoRendererServices() throws EMFFormsNoRendererException {
+		rendererFactory.getRendererInstance(mock(VElement.class), mock(ViewModelContext.class));
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory#getRendererInstance(VElement, ViewModelContext)
+	 * EMFFormsRendererFactory#getRendererInstance(VElement, ViewModelContext)}.
+	 * When no fitting EMFFormsRendererService is available then an IllegalStateException should be thrown.
+	 *
+	 * @throws EMFFormsNoRendererException
+	 */
+	@SuppressWarnings("unchecked")
+	@Test(expected = EMFFormsNoRendererException.class)
+	public void testGetRendererInstanceNoFittingServices() throws EMFFormsNoRendererException {
+		final VElement vElement = mock(VElement.class);
+		final EMFFormsRendererService<VElement> rendererService1 = mock(EMFFormsRendererService.class);
+		when(rendererService1.isApplicable(Matchers.same(vElement), Matchers.any(ViewModelContext.class))).thenReturn(
+			1d);
+		when(rendererService1.isApplicable(Matchers.any(VElement.class), Matchers.any(ViewModelContext.class)))
+			.thenReturn(
+				EMFFormsRendererService.NOT_APPLICABLE);
+		final AbstractSWTRenderer<VElement> renderer1 = mock(AbstractSWTRenderer.class);
+		when(rendererService1.getRendererInstance(Matchers.any(VElement.class), Matchers.any(ViewModelContext.class)))
+			.thenReturn(renderer1);
+
+		rendererFactory.addEMFFormsRendererService(rendererService1);
+		final VElement mockedVElement = mock(VElement.class);
+		when(mockedVElement.eClass()).thenReturn(VViewPackage.eINSTANCE.getControl());
+		rendererFactory.getRendererInstance(mockedVElement, mock(ViewModelContext.class));
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory#getRendererInstance(VElement, ViewModelContext)
+	 * EMFFormsRendererFactory#getRendererInstance(VElement, ViewModelContext)}.
+	 * When one EMFFormsRendererService is registered then
+	 * {@link EMFFormsRendererService#isApplicable(VElement,ViewModelContext)} is
+	 * called exactly once.
+	 *
+	 * @throws EMFFormsNoRendererException
+	 */
+	@SuppressWarnings("unchecked")
+	@Test
+	public void testAddRendererService() throws EMFFormsNoRendererException {
+		final VElement vElement = mock(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)));
+		rendererFactory.addEMFFormsRendererService(rendererService);
+		rendererFactory.getRendererInstance(vElement, viewModelContext);
+		Mockito.verify(rendererService, Mockito.times(1)).isApplicable(vElement, viewModelContext);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory#getRendererInstance(VElement, ViewModelContext)
+	 * EMFFormsRendererFactory#getRendererInstance(VElement, ViewModelContext)}.
+	 * When the only EMFFormsRendererService is removed then an IllegalStateException is thrown.
+	 *
+	 * @throws EMFFormsNoRendererException
+	 */
+	@SuppressWarnings("unchecked")
+	@Test(expected = EMFFormsNoRendererException.class)
+	public void testRemoveRendererService() throws EMFFormsNoRendererException {
+		final EMFFormsRendererService<VElement> rendererService = mock(EMFFormsRendererService.class);
+		rendererFactory.addEMFFormsRendererService(rendererService);
+		rendererFactory.removeEMFFormsRendererService(rendererService);
+		rendererFactory.getRendererInstance(mock(VElement.class), mock(ViewModelContext.class));
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory#getRendererInstance(VElement, ViewModelContext)
+	 * EMFFormsRendererFactory#getRendererInstance(VElement, ViewModelContext)}.
+	 * Check that the EMFFormsRendererService with the fitting VElement is used to get an AbstractSWTRenderer.
+	 *
+	 * @throws EMFFormsNoRendererException
+	 */
+	@SuppressWarnings("unchecked")
+	@Test
+	public void testGetRendererInstanceSamePrioDifferentVElement() throws EMFFormsNoRendererException {
+		final ViewModelContext viewModelContext = mock(ViewModelContext.class);
+		final VElement vElement1 = Mockito.mock(VElement.class);
+		final VElement vElement2 = Mockito.mock(VElement.class);
+		final EMFFormsRendererService<VElement> rendererService1 = mock(EMFFormsRendererService.class);
+		when(rendererService1.isApplicable(vElement1, viewModelContext)).thenReturn(1d);
+		final AbstractSWTRenderer<VElement> renderer1 = new MockedAbstractSWTRenderer(vElement1, viewModelContext,
+			mock(ReportService.class));
+		when(rendererService1.getRendererInstance(Matchers.any(VElement.class), Matchers.any(ViewModelContext.class)))
+			.thenReturn(renderer1);
+		final EMFFormsRendererService<VElement> rendererService2 = mock(EMFFormsRendererService.class);
+		when(rendererService2.isApplicable(vElement2, viewModelContext)).thenReturn(1d);
+		final AbstractSWTRenderer<VElement> renderer2 = mock(AbstractSWTRenderer.class);
+		when(rendererService2.getRendererInstance(Matchers.any(VElement.class), Matchers.any(ViewModelContext.class)))
+			.thenReturn(renderer2);
+		rendererFactory.addEMFFormsRendererService(rendererService1);
+		rendererFactory.addEMFFormsRendererService(rendererService2);
+		assertEquals(renderer1, rendererFactory.getRendererInstance(vElement1, viewModelContext));
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory#getRendererInstance(VElement, ViewModelContext)
+	 * EMFFormsRendererFactory#getRendererInstance(VElement, ViewModelContext)}.
+	 * Check that the EMFFormsRendererService with the higher priority is used to get an AbstractSWTRenderer.
+	 *
+	 * @throws EMFFormsNoRendererException
+	 */
+	@SuppressWarnings("unchecked")
+	@Test
+	public void testGetRendererInstanceDifferentPrioSameVElement() throws EMFFormsNoRendererException {
+		final ViewModelContext viewModelContext = mock(ViewModelContext.class);
+		final VElement vElement = mock(VElement.class);
+		final EMFFormsRendererService<VElement> rendererService1 = mock(EMFFormsRendererService.class);
+		when(rendererService1.isApplicable(vElement, viewModelContext)).thenReturn(1d);
+		final AbstractSWTRenderer<VElement> renderer1 = new MockedAbstractSWTRenderer(vElement, viewModelContext,
+			mock(ReportService.class));
+		when(rendererService1.getRendererInstance(Matchers.any(VElement.class), Matchers.any(ViewModelContext.class)))
+			.thenReturn(renderer1);
+		final EMFFormsRendererService<VElement> rendererService2 = mock(EMFFormsRendererService.class);
+		when(rendererService2.isApplicable(vElement, viewModelContext)).thenReturn(2d);
+		final AbstractSWTRenderer<VElement> renderer2 = new MockedAbstractSWTRenderer(vElement, viewModelContext,
+			mock(ReportService.class));
+		when(rendererService2.getRendererInstance(Matchers.any(VElement.class), Matchers.any(ViewModelContext.class)))
+			.thenReturn(renderer2);
+		rendererFactory.addEMFFormsRendererService(rendererService1);
+		rendererFactory.addEMFFormsRendererService(rendererService2);
+		assertEquals(renderer2, rendererFactory.getRendererInstance(vElement, viewModelContext));
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory#getAdditionalRendererInstances(VElement, ViewModelContext)
+	 * EMFFormsRendererFactory#getAdditionalRendererInstances(VElement, ViewModelContext)}.
+	 * When one EMFFormsRendererService is registered then
+	 * {@link EMFFormsAdditionalRendererService#isApplicable(VElement, ViewModelContext)} is
+	 * called exactly once.
+	 */
+	@SuppressWarnings("unchecked")
+	@Test
+	public void testAddAdditionalRendererService() {
+		final VElement vElement = mock(VElement.class);
+		final ViewModelContext viewModelContext = mock(ViewModelContext.class);
+		final EMFFormsAdditionalRendererService<VElement> rendererService = mock(EMFFormsAdditionalRendererService.class);
+		when(rendererService.isApplicable(vElement, viewModelContext)).thenReturn(true);
+		final Collection<AbstractAdditionalSWTRenderer<VElement>> mockedResults = new ArrayList<AbstractAdditionalSWTRenderer<VElement>>();
+		mockedResults
+			.add(new MockedAbstractAdditionalSWTRenderer(vElement, viewModelContext, mock(ReportService.class)));
+		when(rendererService.getRendererInstances(vElement, viewModelContext)).thenReturn(mockedResults);
+		rendererFactory.addEMFFormsAdditionalRendererService(rendererService);
+		final Collection<AbstractAdditionalSWTRenderer<VElement>> additionalRenderers = rendererFactory
+			.getAdditionalRendererInstances(vElement, viewModelContext);
+		Mockito.verify(rendererService, Mockito.times(1)).isApplicable(vElement, viewModelContext);
+		assertEquals(1, additionalRenderers.size());
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory#getAdditionalRendererInstances(VElement, ViewModelContext)
+	 * EMFFormsRendererFactory#getAdditionalRendererInstances(VElement, ViewModelContext)}.
+	 *
+	 */
+	@SuppressWarnings("unchecked")
+	@Test
+	public void testRemoveAdditionalRendererService() {
+		final EMFFormsAdditionalRendererService<VElement> rendererService = mock(EMFFormsAdditionalRendererService.class);
+		rendererFactory.addEMFFormsAdditionalRendererService(rendererService);
+		rendererFactory.removeEMFFormsAdditionalRendererService(rendererService);
+		final Collection<AbstractAdditionalSWTRenderer<VElement>> additionalRenderers = rendererFactory
+			.getAdditionalRendererInstances(mock(VElement.class), mock(ViewModelContext.class));
+		assertEquals(0, additionalRenderers.size());
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory#getAdditionalRendererInstances(VElement, ViewModelContext)
+	 * EMFFormsRendererFactory#getAdditionalRendererInstances(VElement, ViewModelContext)}.
+	 * When no fitting EMFFormsRendererService is available then the collection is empty.
+	 *
+	 */
+	@SuppressWarnings("unchecked")
+	@Test
+	public void testGetAdditionalRendererInstanceNoFittingServices() {
+		final VElement vElement = mock(VElement.class);
+		final EMFFormsAdditionalRendererService<VElement> rendererService1 = mock(EMFFormsAdditionalRendererService.class);
+		when(rendererService1.isApplicable(Matchers.same(vElement), Matchers.any(ViewModelContext.class))).thenReturn(
+			false);
+		final AbstractAdditionalSWTRenderer<VElement> renderer1 = mock(AbstractAdditionalSWTRenderer.class);
+		when(rendererService1.getRendererInstances(Matchers.any(VElement.class), Matchers.any(ViewModelContext.class)))
+			.thenReturn(Collections.singleton(renderer1));
+
+		rendererFactory.addEMFFormsAdditionalRendererService(rendererService1);
+		final Collection<AbstractAdditionalSWTRenderer<VElement>> additionalRenderers = rendererFactory
+			.getAdditionalRendererInstances(mock(VElement.class), mock(ViewModelContext.class));
+		assertEquals(0, additionalRenderers.size());
+	}
+}
diff --git a/tests/org.eclipse.emfforms.swt.core.tests/src/org/eclipse/emfforms/internal/swt/core/MockedAbstractAdditionalSWTRenderer.java b/tests/org.eclipse.emfforms.swt.core.tests/src/org/eclipse/emfforms/internal/swt/core/MockedAbstractAdditionalSWTRenderer.java
new file mode 100644
index 0000000..3065387
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.tests/src/org/eclipse/emfforms/internal/swt/core/MockedAbstractAdditionalSWTRenderer.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.swt.core;
+
+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.renderer.NoPropertyDescriptorFoundExeption;
+import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.swt.core.AbstractAdditionalSWTRenderer;
+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;
+
+/**
+ * Mocked AbstractAdditionalSWTRenderer.
+ * 
+ * @author Eugen Neufeld
+ *
+ */
+final class MockedAbstractAdditionalSWTRenderer extends AbstractAdditionalSWTRenderer<VElement> {
+
+	MockedAbstractAdditionalSWTRenderer(VElement vElement, ViewModelContext viewContext, ReportService reportService) {
+		super(vElement, viewContext, reportService);
+	}
+
+	@Override
+	public SWTGridDescription getGridDescription(SWTGridDescription gridDescription) {
+		return null;
+	}
+
+	@Override
+	protected Control renderControl(SWTGridCell cell, Composite parent) throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption {
+		return null;
+	}
+}
\ No newline at end of file
diff --git a/tests/org.eclipse.emfforms.swt.core.tests/src/org/eclipse/emfforms/internal/swt/core/MockedAbstractSWTRenderer.java b/tests/org.eclipse.emfforms.swt.core.tests/src/org/eclipse/emfforms/internal/swt/core/MockedAbstractSWTRenderer.java
new file mode 100644
index 0000000..de4f840
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.tests/src/org/eclipse/emfforms/internal/swt/core/MockedAbstractSWTRenderer.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.swt.core;
+
+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.renderer.NoPropertyDescriptorFoundExeption;
+import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException;
+import org.eclipse.emfforms.spi.common.report.ReportService;
+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;
+
+/**
+ * Mocked AbstractSWTRenderer.
+ * 
+ * @author Eugen Neufeld
+ *
+ */
+final class MockedAbstractSWTRenderer extends AbstractSWTRenderer<VElement> {
+
+	MockedAbstractSWTRenderer(VElement vElement, ViewModelContext viewContext, ReportService reportService) {
+		super(vElement, viewContext, reportService);
+	}
+
+	@Override
+	protected Control renderControl(SWTGridCell cell, Composite parent) throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption {
+		return null;
+	}
+
+	@Override
+	public SWTGridDescription getGridDescription(SWTGridDescription gridDescription) {
+		return null;
+	}
+}
\ No newline at end of file
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
new file mode 100644
index 0000000..4e98134
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.tests/src/org/eclipse/emfforms/swt/core/tests/AllIntegrationTests.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.swt.core.tests;
+
+import org.eclipse.emfforms.internal.swt.core.EMFFormsRendererFactory_ITest;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+/**
+ * Test Suite for integration tests of the simple.swt .
+ *
+ * @author Eugen Neufeld
+ *
+ */
+@RunWith(Suite.class)
+@SuiteClasses({ EMFFormsRendererFactory_ITest.class })
+public class AllIntegrationTests {
+
+}
diff --git a/tests/org.eclipse.emfforms.swt.core.tests/src/org/eclipse/emfforms/swt/core/tests/AllTests.java b/tests/org.eclipse.emfforms.swt.core.tests/src/org/eclipse/emfforms/swt/core/tests/AllTests.java
new file mode 100644
index 0000000..493c488
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.core.tests/src/org/eclipse/emfforms/swt/core/tests/AllTests.java
@@ -0,0 +1,29 @@
+/*******************************************************************************

+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.

+ *

+ * All rights reserved. This program and the accompanying materials

+ * are made available under the terms of the Eclipse Public License v1.0

+ * which accompanies this distribution, and is available at

+ * http://www.eclipse.org/legal/epl-v10.html

+ *

+ * Contributors:

+ * Eugen Neufeld - initial API and implementation

+ ******************************************************************************/

+package org.eclipse.emfforms.swt.core.tests;

+

+import org.eclipse.emfforms.internal.swt.core.EMFFormsRendererFactory_Test;

+import org.junit.runner.RunWith;

+import org.junit.runners.Suite;

+import org.junit.runners.Suite.SuiteClasses;

+

+/**

+ * Test Suite for tests of the simple.swt .

+ *

+ * @author Eugen Neufeld

+ *

+ */

+@RunWith(Suite.class)

+@SuiteClasses({ EMFFormsRendererFactory_Test.class })

+public class AllTests {

+

+}

diff --git a/tests/org.eclipse.emfforms.view.model.localization.tests/.checkstyle b/tests/org.eclipse.emfforms.view.model.localization.tests/.checkstyle
new file mode 100644
index 0000000..24d357f
--- /dev/null
+++ b/tests/org.eclipse.emfforms.view.model.localization.tests/.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/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath b/tests/org.eclipse.emfforms.view.model.localization.tests/.classpath
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath
copy to tests/org.eclipse.emfforms.view.model.localization.tests/.classpath
diff --git a/tests/org.eclipse.emfforms.view.model.localization.tests/.project b/tests/org.eclipse.emfforms.view.model.localization.tests/.project
new file mode 100644
index 0000000..763c60c
--- /dev/null
+++ b/tests/org.eclipse.emfforms.view.model.localization.tests/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.view.model.localization.tests</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.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.emfforms.view.model.localization.tests/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
copy to tests/org.eclipse.emfforms.view.model.localization.tests/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/tests/org.eclipse.emfforms.view.model.localization.tests/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to tests/org.eclipse.emfforms.view.model.localization.tests/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emfforms.view.model.localization.tests/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.core.prefs
copy to tests/org.eclipse.emfforms.view.model.localization.tests/.settings/org.eclipse.jdt.core.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/tests/org.eclipse.emfforms.view.model.localization.tests/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
copy to tests/org.eclipse.emfforms.view.model.localization.tests/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.emfforms.view.model.localization.tests/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs
copy to tests/org.eclipse.emfforms.view.model.localization.tests/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/tests/org.eclipse.emfforms.view.model.localization.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to tests/org.eclipse.emfforms.view.model.localization.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.view.model.localization.tests/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
copy to tests/org.eclipse.emfforms.view.model.localization.tests/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.emfforms.view.model.localization.tests/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
copy to tests/org.eclipse.emfforms.view.model.localization.tests/.settings/org.eclipse.pde.prefs
diff --git a/tests/org.eclipse.emfforms.view.model.localization.tests/AllIntegrationTest view.model.localization.launch b/tests/org.eclipse.emfforms.view.model.localization.tests/AllIntegrationTest view.model.localization.launch
new file mode 100644
index 0000000..f191bab
--- /dev/null
+++ b/tests/org.eclipse.emfforms.view.model.localization.tests/AllIntegrationTest view.model.localization.launch
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

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

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

+<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.emfforms.view.model.localization.tests/src/org/eclipse/emfforms/view/model/localization/tests/AllIntegrationTests.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.view.model.localization.tests.AllIntegrationTests"/>

+<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.view.model.localization.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="true"/>

+<stringAttribute key="selected_target_plugins" value="javax.xml@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.jobs@default:default,org.eclipse.core.runtime@default:true,org.eclipse.emf.common@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@-1:true,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.view.context@default:default,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emf.ecp.view.vertical.model@default:default,org.eclipse.emfforms.core.services.databinding@default:default,org.eclipse.emfforms.core.services@default:default,org.eclipse.emfforms.localization@default:default,org.eclipse.emfforms.view.model.localization.tests@default:false,org.eclipse.emfforms.view.model.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>

diff --git a/tests/org.eclipse.emfforms.view.model.localization.tests/AllTests view.model.localization.launch b/tests/org.eclipse.emfforms.view.model.localization.tests/AllTests view.model.localization.launch
new file mode 100644
index 0000000..3f0cde6
--- /dev/null
+++ b/tests/org.eclipse.emfforms.view.model.localization.tests/AllTests view.model.localization.launch
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

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

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

+<listEntry value="/org.eclipse.emfforms.view.model.localization.tests/src/org/eclipse/emfforms/view/model/localization/tests/AllTests.java"/>

+</listAttribute>

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

+<listEntry value="1"/>

+</listAttribute>

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

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

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

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

+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emfforms.view.model.localization.tests.AllTests"/>

+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emfforms.view.model.localization.tests"/>

+</launchConfiguration>

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
new file mode 100644
index 0000000..f41d94b
--- /dev/null
+++ b/tests/org.eclipse.emfforms.view.model.localization.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMFForms View Model Localization Tests
+Bundle-SymbolicName: org.eclipse.emfforms.view.model.localization.tests
+Bundle-Version: 1.6.0.qualifier
+Fragment-Host: org.eclipse.emfforms.view.model.localization;bundle-version="[1.5.0,2.0.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
+ org.mockito.mockito-all;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.equinox.ds;bundle-version="[1.4.0,2.0.0)"
+Export-Package: org.eclipse.emfforms.internal.view.model.localization;
+ version="1.6.0";x-internal:=true,org.eclipse.emfforms.view.model.loca
+ lization.tests;version="1.6.0"
+Bundle-Localization: OSGI-INF/l10n/bundle
+Import-Package: org.eclipse.emfforms.spi.localization;version="[1.6.0,2.0.0)"
diff --git a/tests/org.eclipse.emfforms.view.model.localization.tests/OSGI-INF/l10n/bundle_de.properties b/tests/org.eclipse.emfforms.view.model.localization.tests/OSGI-INF/l10n/bundle_de.properties
new file mode 100644
index 0000000..3f7fc1d
--- /dev/null
+++ b/tests/org.eclipse.emfforms.view.model.localization.tests/OSGI-INF/l10n/bundle_de.properties
@@ -0,0 +1,3 @@
+view=Mein super View
+layout=Mein super Layout
+control=Mein super Control
\ No newline at end of file
diff --git a/tests/org.eclipse.emfforms.view.model.localization.tests/OSGI-INF/l10n/bundle_en.properties b/tests/org.eclipse.emfforms.view.model.localization.tests/OSGI-INF/l10n/bundle_en.properties
new file mode 100644
index 0000000..3ca6e2f
--- /dev/null
+++ b/tests/org.eclipse.emfforms.view.model.localization.tests/OSGI-INF/l10n/bundle_en.properties
@@ -0,0 +1,3 @@
+view=My super View
+layout=My super Layout
+control=My super Control
\ No newline at end of file
diff --git a/tests/org.eclipse.emfforms.view.model.localization.tests/build.properties b/tests/org.eclipse.emfforms.view.model.localization.tests/build.properties
new file mode 100644
index 0000000..c58ea21
--- /dev/null
+++ b/tests/org.eclipse.emfforms.view.model.localization.tests/build.properties
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               OSGI-INF/
diff --git a/tests/org.eclipse.emfforms.view.model.localization.tests/pom.xml b/tests/org.eclipse.emfforms.view.model.localization.tests/pom.xml
new file mode 100644
index 0000000..120e48e
--- /dev/null
+++ b/tests/org.eclipse.emfforms.view.model.localization.tests/pom.xml
@@ -0,0 +1,31 @@
+<?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.6.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.6.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>false</useUIHarness>
+					<useUIThread>false</useUIThread>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+</project>
diff --git a/tests/org.eclipse.emfforms.view.model.localization.tests/src/org/eclipse/emfforms/internal/view/model/localization/LocalizationViewModelService_ITest.java b/tests/org.eclipse.emfforms.view.model.localization.tests/src/org/eclipse/emfforms/internal/view/model/localization/LocalizationViewModelService_ITest.java
new file mode 100644
index 0000000..4d7d526
--- /dev/null
+++ b/tests/org.eclipse.emfforms.view.model.localization.tests/src/org/eclipse/emfforms/internal/view/model/localization/LocalizationViewModelService_ITest.java
@@ -0,0 +1,142 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.view.model.localization;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.util.Locale;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.model.LocalizationAdapter;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+import org.eclipse.emf.ecp.view.spi.model.VView;
+import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
+import org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalFactory;
+import org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalLayout;
+import org.eclipse.emfforms.spi.common.locale.AbstractEMFFormsLocaleProvider;
+import org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleProvider;
+import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.mockito.Matchers;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceRegistration;
+
+/**
+ * Plugin Tests cases for the LocalizationViewModelService.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public class LocalizationViewModelService_ITest {
+
+	private static BundleContext bundleContext;
+	private ServiceRegistration<EMFFormsLocaleProvider> registerService;
+	private MockedEMFFormsLocaleProvider emfFormsLocaleProvider;
+
+	private static class MockedEMFFormsLocaleProvider extends AbstractEMFFormsLocaleProvider {
+
+		private Locale locale;
+
+		/**
+		 * {@inheritDoc}
+		 *
+		 * @see org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleProvider#getLocale()
+		 */
+		@Override
+		public Locale getLocale() {
+			return locale;
+		}
+
+		public void setLocale(Locale locale) {
+			this.locale = locale;
+			notifyListeners();
+		}
+	}
+
+	@BeforeClass
+	public static void setupBeforeClass() {
+		bundleContext = FrameworkUtil.getBundle(LocalizationViewModelService_ITest.class)
+			.getBundleContext();
+
+	}
+
+	@Before
+	public void setup() {
+		emfFormsLocaleProvider = new MockedEMFFormsLocaleProvider();
+		registerService = bundleContext.registerService(EMFFormsLocaleProvider.class, emfFormsLocaleProvider, null);
+	}
+
+	@After
+	public void tearDown() {
+		registerService.unregister();
+	}
+
+	@Test
+	public void testDynamic() {
+		final String viewName = "%view"; //$NON-NLS-1$
+		final String layoutName = "%layout"; //$NON-NLS-1$
+		final String controlName = "%control"; //$NON-NLS-1$
+
+		final VView view = VViewFactory.eINSTANCE.createView();
+		view.setName(viewName);
+		final VVerticalLayout layout = VVerticalFactory.eINSTANCE.createVerticalLayout();
+		layout.setName(layoutName);
+		view.getChildren().add(layout);
+		final VControl control = VViewFactory.eINSTANCE.createControl();
+		control.setName(controlName);
+		layout.getChildren().add(control);
+
+		final ViewModelContext viewModelContext = mock(ViewModelContext.class);
+		when(viewModelContext.getViewModel()).thenReturn(view);
+		final LocalizationAdapter adapter = mock(LocalizationAdapter.class);
+		when(adapter.localize(Matchers.anyString())).then(new Answer<String>() {
+
+			/**
+			 * {@inheritDoc}
+			 *
+			 * @see org.mockito.stubbing.Answer#answer(org.mockito.invocation.InvocationOnMock)
+			 * @generated
+			 */
+			@Override
+			public String answer(InvocationOnMock invocation) throws Throwable {
+				final Object object = invocation.getArguments()[0];
+				final String parameter = object.toString();
+				return LocalizationServiceHelper.getString(LocalizationViewModelService_ITest.class,
+					parameter);
+			}
+		});
+		view.eAdapters().add(adapter);
+
+		emfFormsLocaleProvider.setLocale(Locale.ENGLISH);
+		final LocalizationViewModelService localizationViewModelService = new LocalizationViewModelService();
+		localizationViewModelService.instantiate(viewModelContext);
+
+		assertEquals("My super View", view.getLabel()); //$NON-NLS-1$
+		assertEquals("My super Layout", layout.getLabel()); //$NON-NLS-1$
+		assertEquals("My super Control", control.getLabel()); //$NON-NLS-1$
+
+		emfFormsLocaleProvider.setLocale(Locale.GERMAN);
+
+		assertEquals("Mein super View", view.getLabel()); //$NON-NLS-1$
+		assertEquals("Mein super Layout", layout.getLabel()); //$NON-NLS-1$
+		assertEquals("Mein super Control", control.getLabel()); //$NON-NLS-1$
+	}
+
+}
diff --git a/tests/org.eclipse.emfforms.view.model.localization.tests/src/org/eclipse/emfforms/internal/view/model/localization/LocalizationViewModelService_Test.java b/tests/org.eclipse.emfforms.view.model.localization.tests/src/org/eclipse/emfforms/internal/view/model/localization/LocalizationViewModelService_Test.java
new file mode 100644
index 0000000..a531bc7
--- /dev/null
+++ b/tests/org.eclipse.emfforms.view.model.localization.tests/src/org/eclipse/emfforms/internal/view/model/localization/LocalizationViewModelService_Test.java
@@ -0,0 +1,290 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.view.model.localization;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import org.eclipse.emf.common.notify.impl.AdapterImpl;
+import org.eclipse.emf.ecore.EcoreFactory;
+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.model.LocalizationAdapter;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+import org.eclipse.emf.ecp.view.spi.model.VView;
+import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
+import org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalFactory;
+import org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalLayout;
+import org.junit.Before;
+import org.junit.Test;
+
+@SuppressWarnings("restriction")
+public class LocalizationViewModelService_Test {
+
+	private LocalizationViewModelService localizationViewModelService;
+
+	@Before
+	public void setup() {
+		localizationViewModelService = spy(new LocalizationViewModelService());
+	}
+
+	private String getLocalizableString(String name) {
+		return name.substring(1);
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.view.model.localization.LocalizationViewModelService#instantiate(org.eclipse.emf.ecp.view.spi.context.ViewModelContext)}
+	 * .
+	 */
+	@Test
+	public void testInstantiateStatic() {
+		final String viewName = "%view"; //$NON-NLS-1$
+		final String layoutName = "%layout"; //$NON-NLS-1$
+		final String controlName = "%control"; //$NON-NLS-1$
+		final String control2Name = "Fix control name"; //$NON-NLS-1$
+		final String viewLabel = "My super View"; //$NON-NLS-1$
+		final String layoutLabel = "My super Layout"; //$NON-NLS-1$
+		final String controlLabel = "My super Control"; //$NON-NLS-1$
+
+		final VView view = VViewFactory.eINSTANCE.createView();
+		view.setName(viewName);
+		final VVerticalLayout layout = VVerticalFactory.eINSTANCE.createVerticalLayout();
+		layout.setName(layoutName);
+		view.getChildren().add(layout);
+		final VControl control1 = VViewFactory.eINSTANCE.createControl();
+		control1.setName(controlName);
+		layout.getChildren().add(control1);
+		final VControl control2 = VViewFactory.eINSTANCE.createControl();
+		control2.setName(control2Name);
+		layout.getChildren().add(control2);
+
+		final ViewModelContext viewModelContext = mock(ViewModelContext.class);
+		when(viewModelContext.getViewModel()).thenReturn(view);
+		final LocalizationAdapter adapter = mock(LocalizationAdapter.class);
+		when(adapter.localize(getLocalizableString(viewName))).thenReturn(viewLabel);
+		when(adapter.localize(getLocalizableString(layoutName))).thenReturn(layoutLabel);
+		when(adapter.localize(getLocalizableString(controlName))).thenReturn(controlLabel);
+		view.eAdapters().add(adapter);
+
+		localizationViewModelService.instantiate(viewModelContext);
+
+		assertEquals(viewLabel, view.getLabel());
+		assertEquals(layoutLabel, layout.getLabel());
+		assertEquals(controlLabel, control1.getLabel());
+		assertEquals(control2Name, control2.getLabel());
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.view.model.localization.LocalizationViewModelService#instantiate(org.eclipse.emf.ecp.view.spi.context.ViewModelContext)}
+	 * .
+	 */
+	@Test
+	public void testInstantiateStaticNoLocalizationAdapter() {
+
+		final VView view = VViewFactory.eINSTANCE.createView();
+		final VControl control = VViewFactory.eINSTANCE.createControl();
+		view.getChildren().add(control);
+		view.eAdapters().add(new AdapterImpl());
+
+		final ViewModelContext viewModelContext = mock(ViewModelContext.class);
+		when(viewModelContext.getViewModel()).thenReturn(view);
+
+		localizationViewModelService.instantiate(viewModelContext);
+
+		assertEquals("", view.getLabel()); //$NON-NLS-1$
+		assertEquals("", control.getLabel()); //$NON-NLS-1$
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.view.model.localization.LocalizationViewModelService#instantiate(org.eclipse.emf.ecp.view.spi.context.ViewModelContext)}
+	 * .
+	 */
+	@Test
+	public void testInstantiateDynamicNameChange() {
+
+		final String controlName = "%control"; //$NON-NLS-1$
+		final String controlName2 = "%control2"; //$NON-NLS-1$
+		final String controlLabel = "My super Control"; //$NON-NLS-1$
+		final String controlLabel2 = "My super Control Two"; //$NON-NLS-1$
+
+		final VView view = VViewFactory.eINSTANCE.createView();
+		final VVerticalLayout layout = VVerticalFactory.eINSTANCE.createVerticalLayout();
+		view.getChildren().add(layout);
+		final VControl control = VViewFactory.eINSTANCE.createControl();
+		control.setName(controlName);
+		layout.getChildren().add(control);
+
+		final LocalizationAdapter adapter = mock(LocalizationAdapter.class);
+		when(adapter.localize(getLocalizableString(controlName))).thenReturn(controlLabel);
+		when(adapter.localize(getLocalizableString(controlName2))).thenReturn(controlLabel2);
+		view.eAdapters().add(adapter);
+
+		final ViewModelContext viewModelContext = spy(new ViewModelContextImpl(view,
+			EcoreFactory.eINSTANCE.createEObject(), localizationViewModelService));
+
+		localizationViewModelService.instantiate(viewModelContext);
+		control.setName(controlName2);
+
+		assertEquals(controlLabel2, control.getLabel());
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.view.model.localization.LocalizationViewModelService#instantiate(org.eclipse.emf.ecp.view.spi.context.ViewModelContext)}
+	 * .
+	 */
+	@Test
+	public void testInstantiateDynamicAddSingleControlOnRoot() {
+
+		final String controlName = "%control"; //$NON-NLS-1$
+		final String controlLabel = "My super Control"; //$NON-NLS-1$
+		final VView view = VViewFactory.eINSTANCE.createView();
+
+		final LocalizationAdapter adapter = mock(LocalizationAdapter.class);
+		when(adapter.localize(getLocalizableString(controlName))).thenReturn(controlLabel);
+		view.eAdapters().add(adapter);
+
+		final ViewModelContext viewModelContext = spy(new ViewModelContextImpl(view,
+			EcoreFactory.eINSTANCE.createEObject(), localizationViewModelService));
+
+		localizationViewModelService.instantiate(viewModelContext);
+
+		final VControl control = VViewFactory.eINSTANCE.createControl();
+		control.setName(controlName);
+		view.getChildren().add(control);
+		assertEquals(controlLabel, control.getLabel());
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.view.model.localization.LocalizationViewModelService#instantiate(org.eclipse.emf.ecp.view.spi.context.ViewModelContext)}
+	 * .
+	 */
+	@Test
+	public void testInstantiateDynamicAddSingleControlOnChild() {
+
+		final String controlName = "%control"; //$NON-NLS-1$
+
+		final String controlLabel = "My super Control"; //$NON-NLS-1$
+
+		final VView view = VViewFactory.eINSTANCE.createView();
+		final VVerticalLayout layout = VVerticalFactory.eINSTANCE.createVerticalLayout();
+		view.getChildren().add(layout);
+		final VControl control = VViewFactory.eINSTANCE.createControl();
+		layout.getChildren().add(control);
+
+		final LocalizationAdapter adapter = mock(LocalizationAdapter.class);
+		when(adapter.localize(getLocalizableString(controlName))).thenReturn(controlLabel);
+		view.eAdapters().add(adapter);
+
+		final ViewModelContext viewModelContext = spy(new ViewModelContextImpl(view,
+			EcoreFactory.eINSTANCE.createEObject(), localizationViewModelService));
+
+		localizationViewModelService.instantiate(viewModelContext);
+		final VControl control2 = VViewFactory.eINSTANCE.createControl();
+		control2.setName(controlName);
+		layout.getChildren().add(control2);
+
+		assertEquals(controlLabel, control2.getLabel());
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.view.model.localization.LocalizationViewModelService#instantiate(org.eclipse.emf.ecp.view.spi.context.ViewModelContext)}
+	 * .
+	 */
+	@Test
+	public void testInstantiateDynamicAddSubTreeOnRoot() {
+
+		final String layoutName = "%layout"; //$NON-NLS-1$
+		final String controlName = "%control"; //$NON-NLS-1$
+		final String layoutLabel = "My super Layout"; //$NON-NLS-1$
+		final String controlLabel = "My super Control"; //$NON-NLS-1$
+
+		final VView view = VViewFactory.eINSTANCE.createView();
+
+		final LocalizationAdapter adapter = mock(LocalizationAdapter.class);
+		when(adapter.localize(getLocalizableString(controlName))).thenReturn(controlLabel);
+		when(adapter.localize(getLocalizableString(layoutName))).thenReturn(layoutLabel);
+		view.eAdapters().add(adapter);
+
+		final ViewModelContext viewModelContext = spy(new ViewModelContextImpl(view,
+			EcoreFactory.eINSTANCE.createEObject(), localizationViewModelService));
+
+		localizationViewModelService.instantiate(viewModelContext);
+		final VVerticalLayout layout = VVerticalFactory.eINSTANCE.createVerticalLayout();
+		layout.setName(layoutName);
+		final VControl control = VViewFactory.eINSTANCE.createControl();
+		control.setName(controlName);
+		layout.getChildren().add(control);
+
+		view.getChildren().add(layout);
+
+		assertEquals(controlLabel, control.getLabel());
+		assertEquals(layoutLabel, layout.getLabel());
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.view.model.localization.LocalizationViewModelService#instantiate(org.eclipse.emf.ecp.view.spi.context.ViewModelContext)}
+	 * .
+	 */
+	@Test
+	public void testInstantiateDynamicAddSubTreeOnChild() {
+
+		final String layoutName = "%layout"; //$NON-NLS-1$
+		final String controlName = "%control"; //$NON-NLS-1$
+		final String layoutLabel = "My super Layout"; //$NON-NLS-1$
+		final String controlLabel = "My super Control"; //$NON-NLS-1$
+
+		final VView view = VViewFactory.eINSTANCE.createView();
+		final VVerticalLayout layout = VVerticalFactory.eINSTANCE.createVerticalLayout();
+		view.getChildren().add(layout);
+		final VControl control = VViewFactory.eINSTANCE.createControl();
+		layout.getChildren().add(control);
+
+		final LocalizationAdapter adapter = mock(LocalizationAdapter.class);
+		when(adapter.localize(getLocalizableString(controlName))).thenReturn(controlLabel);
+		when(adapter.localize(getLocalizableString(layoutName))).thenReturn(layoutLabel);
+		view.eAdapters().add(adapter);
+		final ViewModelContext viewModelContext = spy(new ViewModelContextImpl(view,
+			EcoreFactory.eINSTANCE.createEObject(), localizationViewModelService));
+
+		localizationViewModelService.instantiate(viewModelContext);
+
+		final VVerticalLayout layout2 = VVerticalFactory.eINSTANCE.createVerticalLayout();
+		layout2.setName(layoutName);
+		final VControl control2 = VViewFactory.eINSTANCE.createControl();
+		control2.setName(controlName);
+		layout2.getChildren().add(control2);
+
+		layout.getChildren().add(layout2);
+
+		assertEquals(controlLabel, control2.getLabel());
+		assertEquals(layoutLabel, layout2.getLabel());
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.view.model.localization.LocalizationViewModelService#getPriority()}.
+	 */
+	@Test
+	public void testGetPriority() {
+		assertEquals(-100, localizationViewModelService.getPriority());
+	}
+
+}
diff --git a/tests/org.eclipse.emfforms.view.model.localization.tests/src/org/eclipse/emfforms/view/model/localization/tests/AllIntegrationTests.java b/tests/org.eclipse.emfforms.view.model.localization.tests/src/org/eclipse/emfforms/view/model/localization/tests/AllIntegrationTests.java
new file mode 100644
index 0000000..fcccf55
--- /dev/null
+++ b/tests/org.eclipse.emfforms.view.model.localization.tests/src/org/eclipse/emfforms/view/model/localization/tests/AllIntegrationTests.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.view.model.localization.tests;
+
+import org.eclipse.emfforms.internal.view.model.localization.LocalizationViewModelService_ITest;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+/**
+ * JUnit 4 Integration Test Suite for view.model.localization.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+@RunWith(Suite.class)
+@SuiteClasses({ LocalizationViewModelService_ITest.class })
+public class AllIntegrationTests {
+	// JUnit 4 Test Suite
+}
diff --git a/tests/org.eclipse.emfforms.view.model.localization.tests/src/org/eclipse/emfforms/view/model/localization/tests/AllTests.java b/tests/org.eclipse.emfforms.view.model.localization.tests/src/org/eclipse/emfforms/view/model/localization/tests/AllTests.java
new file mode 100644
index 0000000..ed0a6ec
--- /dev/null
+++ b/tests/org.eclipse.emfforms.view.model.localization.tests/src/org/eclipse/emfforms/view/model/localization/tests/AllTests.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.view.model.localization.tests;
+
+import org.eclipse.emfforms.internal.view.model.localization.LocalizationViewModelService_Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+/**
+ * JUnit 4 Test Suite for view.model.localization.
+ * 
+ * @author Eugen Neufeld
+ *
+ */
+@RunWith(Suite.class)
+@SuiteClasses({ LocalizationViewModelService_Test.class })
+public class AllTests {
+	// JUnit 4 Test Suite
+}
diff --git a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/.checkstyle b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/.checkstyle
new file mode 100644
index 0000000..24d357f
--- /dev/null
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/.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/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/.classpath
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath
copy to tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/.classpath
diff --git a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/.project b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/.project
new file mode 100644
index 0000000..218fb65
--- /dev/null
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.spreadsheet.core.importer.tests</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.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
copy to tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/.settings/org.eclipse.core.runtime.prefs
diff --git a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/.settings/org.eclipse.jdt.core.prefs b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..1a6b22b
--- /dev/null
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/.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.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
copy to tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.template.controls.swt/.settings/org.eclipse.jdt.ui.prefs
copy to tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
copy to tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
copy to tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/.settings/org.eclipse.pde.prefs
diff --git a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/META-INF/MANIFEST.MF b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..50fbf77
--- /dev/null
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,11 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMFForms Spreadsheet Imports Tests
+Bundle-SymbolicName: org.eclipse.emfforms.spreadsheet.core.importer.tests
+Bundle-Version: 1.0.0.qualifier
+Fragment-Host: org.eclipse.emfforms.spreadsheet.core.importer;bundle-version="[1.0.0,2.0.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.6.0,2.0.0)"
+Export-Package: org.eclipse.emfforms.internal.spreadsheet.core.importer;version="1.0.0";x-internal:=true
diff --git a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/build.properties b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/build.properties
new file mode 100644
index 0000000..34d2e4d
--- /dev/null
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .
diff --git a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/export.xls b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/export.xls
new file mode 100644
index 0000000..c4ff479
--- /dev/null
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/export.xls
Binary files differ
diff --git a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/pom.xml b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/pom.xml
new file mode 100644
index 0000000..99b8498
--- /dev/null
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/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.emfforms.spreadsheet</groupId>
+    <artifactId>emfforms-spreadsheet-tests-parent</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+    <relativePath>../../../releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.tests/</relativePath>
+  </parent>
+	<groupId>org.eclipse.emfforms.spreadsheet</groupId>
+	<artifactId>org.eclipse.emfforms.spreadsheet.core.importer.tests</artifactId>
+	<version>1.0.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>false</useUIHarness>
+		          	<useUIThread>false</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.equinox.ds</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+</project>
diff --git a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/src/org/eclipse/emfforms/internal/spreadsheet/core/importer/EMFFormsSpreadsheetImportImpl_ITest.java b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/src/org/eclipse/emfforms/internal/spreadsheet/core/importer/EMFFormsSpreadsheetImportImpl_ITest.java
new file mode 100644
index 0000000..35ebc94
--- /dev/null
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.importer.tests/src/org/eclipse/emfforms/internal/spreadsheet/core/importer/EMFFormsSpreadsheetImportImpl_ITest.java
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.spreadsheet.core.importer;
+
+import java.io.File;
+import java.util.Collection;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage;
+import org.eclipse.emf.ecp.test.common.DefaultRealm;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+public class EMFFormsSpreadsheetImportImpl_ITest {
+
+	private DefaultRealm realm;
+
+	@Before
+	public void setup() {
+		realm = new DefaultRealm();
+	}
+
+	@After
+	public void tearDown() {
+		realm.dispose();
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.eclipse.emfforms.internal.spreadsheet.core.importer.EMFFormsSpreadsheetImporterImpl#importSpreadsheet(java.lang.String, org.eclipse.emf.ecore.EClass)}
+	 * .
+	 */
+	@Test
+	public void testImportSpreadsheet() {
+		final EMFFormsSpreadsheetImporterImpl spreadsheetImport = new EMFFormsSpreadsheetImporterImpl();
+		final File targetFile = new File("export.xls"); //$NON-NLS-1$
+		final Collection<EObject> users = spreadsheetImport.importSpreadsheet(targetFile.getAbsolutePath(),
+			TaskPackage.eINSTANCE.getUser());
+		for (final EObject eObject : users) {
+			System.out.println(eObject);
+		}
+	}
+
+}
diff --git a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/.checkstyle b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/.checkstyle
new file mode 100644
index 0000000..24d357f
--- /dev/null
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/.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/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/.classpath b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/.classpath
new file mode 100644
index 0000000..eca7bdb
--- /dev/null
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/.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/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/.project b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/.project
new file mode 100644
index 0000000..4d76ef6
--- /dev/null
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.spreadsheet.core.tests</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.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/.settings/org.eclipse.core.resources.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.resources.prefs
copy to tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/.settings/org.eclipse.core.resources.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.core.runtime.prefs
copy to tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/.settings/org.eclipse.core.runtime.prefs
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.settings/org.eclipse.jdt.core.prefs b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
rename from examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/.settings/org.eclipse.jdt.core.prefs
rename to tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/.settings/org.eclipse.jdt.core.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.launching.prefs
copy to tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/.settings/org.eclipse.jdt.launching.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.ui.prefs b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.jdt.ui.prefs
copy to tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/.settings/org.eclipse.jdt.ui.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.ltk.core.refactoring.prefs
copy to tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.api.tools.prefs
copy to tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/.settings/org.eclipse.pde.prefs
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.mappingdmr.databinding/.settings/org.eclipse.pde.prefs
copy to tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/.settings/org.eclipse.pde.prefs
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
new file mode 100644
index 0000000..9840096
--- /dev/null
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,12 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMFForm Spreadsheet Core Test
+Bundle-SymbolicName: org.eclipse.emfforms.spreadsheet.core.tests
+Bundle-Version: 1.0.0.qualifier
+Fragment-Host: org.eclipse.emfforms.spreadsheet.core;bundle-version="[1.0.0,2.0.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.model.provider.generator;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.6.0,2.0.0)"
+Export-Package: org.eclipse.emfforms.internal.spreadsheet.core;version="1.0.0";x-internal:=true
diff --git a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/build.properties b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/build.properties
new file mode 100644
index 0000000..34d2e4d
--- /dev/null
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .
diff --git a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/export.xls b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/export.xls
new file mode 100644
index 0000000..c4ff479
--- /dev/null
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/export.xls
Binary files differ
diff --git a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/pom.xml b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/pom.xml
new file mode 100644
index 0000000..9f9a448
--- /dev/null
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/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.emfforms.spreadsheet</groupId>
+    <artifactId>emfforms-spreadsheet-tests-parent</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+    <relativePath>../../../releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.tests/</relativePath>
+  </parent>
+	<groupId>org.eclipse.emfforms.spreadsheet</groupId>
+	<artifactId>org.eclipse.emfforms.spreadsheet.core.tests</artifactId>
+	<version>1.6.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>false</useUIHarness>
+		          	<useUIThread>false</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.equinox.ds</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+</project>
diff --git a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/src/org/eclipse/emfforms/internal/spreadsheet/core/EMFFormsSpreadsheetViewRendererImpl_ITest.java b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/src/org/eclipse/emfforms/internal/spreadsheet/core/EMFFormsSpreadsheetViewRendererImpl_ITest.java
new file mode 100644
index 0000000..5884e35
--- /dev/null
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/src/org/eclipse/emfforms/internal/spreadsheet/core/EMFFormsSpreadsheetViewRendererImpl_ITest.java
@@ -0,0 +1,93 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.spreadsheet.core;
+
+import java.io.File;
+import java.util.Date;
+
+import javax.xml.datatype.DatatypeConfigurationException;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.xml.type.internal.XMLCalendar;
+import org.eclipse.emf.ecp.makeithappen.model.task.Gender;
+import org.eclipse.emf.ecp.makeithappen.model.task.Nationality;
+import org.eclipse.emf.ecp.makeithappen.model.task.TaskFactory;
+import org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage;
+import org.eclipse.emf.ecp.makeithappen.model.task.User;
+import org.eclipse.emf.ecp.test.common.DefaultRealm;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.model.VView;
+import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+public class EMFFormsSpreadsheetViewRendererImpl_ITest {
+
+	private DefaultRealm realm;
+
+	@Before
+	public void setup() {
+		realm = new DefaultRealm();
+	}
+
+	@After
+	public void tearDown() {
+		realm.dispose();
+	}
+
+	@Test
+	public void testRender() throws DatatypeConfigurationException {
+		final EMFFormsSpreadsheetExporterImpl viewRenderer = new EMFFormsSpreadsheetExporterImpl();
+		final File targetFile = new File("export.xls"); //$NON-NLS-1$
+		System.out.println(targetFile.getAbsolutePath());
+		final EObject user = getDomainModel();
+		viewRenderer.render(targetFile.getAbsolutePath(), user, getView());
+	}
+
+	private EObject getDomainModel() throws DatatypeConfigurationException {
+		final User user = TaskFactory.eINSTANCE.createUser();
+		user.setEmail("myEMail@test.de"); //$NON-NLS-1$
+		user.setFirstName("Bob"); //$NON-NLS-1$
+		user.setGender(Gender.MALE);
+		user.setHeigth(2);
+		user.setLastName("Smith"); //$NON-NLS-1$
+		user.setNationality(Nationality.US);
+		user.setTimeOfRegistration(new Date());
+		user.setWeight(1.45);
+		user.setDateOfBirth(new XMLCalendar(new Date(), XMLCalendar.DATE));
+		return user;
+	}
+
+	private VView getView() {
+		final VView view = VViewFactory.eINSTANCE.createView();
+		final EList<EStructuralFeature> structuralFeatures = TaskPackage.eINSTANCE.getUser()
+			.getEAllStructuralFeatures();
+		for (final EStructuralFeature feature : structuralFeatures) {
+			if (EReference.class.isInstance(feature)) {
+				continue;
+			}
+			final VControl control = VViewFactory.eINSTANCE.createControl();
+			final VFeaturePathDomainModelReference modelReference = VViewFactory.eINSTANCE
+				.createFeaturePathDomainModelReference();
+			modelReference.setDomainModelEFeature(feature);
+			control.setDomainModelReference(modelReference);
+			view.getChildren().add(control);
+		}
+		return view;
+	}
+
+}
diff --git a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/.checkstyle b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/.checkstyle
new file mode 100644
index 0000000..24d357f
--- /dev/null
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/.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/bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/.classpath
similarity index 100%
copy from bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.classpath
copy to tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/.classpath
diff --git a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/.project b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/.project
new file mode 100644
index 0000000..0791b73
--- /dev/null
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.spreadsheet.integrationtest</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.emf.ecp.view.indexdmr.databinding/.settings/org.eclipse.jdt.core.prefs b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
rename from bundles/org.eclipse.emf.ecp.view.indexdmr.databinding/.settings/org.eclipse.jdt.core.prefs
rename to tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/.settings/org.eclipse.jdt.core.prefs
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.pde.core.prefs b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/.settings/org.eclipse.pde.core.prefs
similarity index 100%
copy from examples/org.eclipse.emf.ecp.makeithappen.wizards/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/.settings/org.eclipse.pde.core.prefs
copy to tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/.settings/org.eclipse.pde.core.prefs
diff --git a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/EMFFormsExcel Roundtrip.launch b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/EMFFormsExcel Roundtrip.launch
new file mode 100644
index 0000000..df7c910
--- /dev/null
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/EMFFormsExcel Roundtrip.launch
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

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

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

+<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.emfforms.spreadsheet.integrationtest/src/org/eclipse/emfforms/spreadsheet/integrationtest/AllIntegrationTests.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.spreadsheet.integrationtest.AllIntegrationTests"/>

+<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.spreadsheet.integrationtest"/>

+<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,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.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.http.registry@default:default,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.eclipse.swt.win32.win32.x86_64@default:false,org.eclipse.swt@default:default,org.hamcrest.core@default:default,org.junit@default:default,org.slf4j.api@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.test.common@default:default,org.eclipse.emf.ecp.ui.view@default:default,org.eclipse.emf.ecp.view.categorization.model@default:default,org.eclipse.emf.ecp.view.context@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.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.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.table.model@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.treemasterdetail.model@default:default,org.eclipse.emf.ecp.view.vertical.model@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.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.spreadsheet.core.importer@default:default,org.eclipse.emfforms.spreadsheet.core.renderer.categorization@default:default,org.eclipse.emfforms.spreadsheet.core.renderer.custom@default:default,org.eclipse.emfforms.spreadsheet.core.renderer.table@default:default,org.eclipse.emfforms.spreadsheet.core.renderer@default:default,org.eclipse.emfforms.spreadsheet.core@default:default,org.eclipse.emfforms.spreadsheet.integrationtest@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>

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
new file mode 100644
index 0000000..1a9d48d
--- /dev/null
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/META-INF/MANIFEST.MF
@@ -0,0 +1,20 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMFForms Spreadsheet Integrationtest
+Bundle-SymbolicName: org.eclipse.emfforms.spreadsheet.integrationtest
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.junit,
+ org.eclipse.emf.ecore,
+ org.eclipse.emf.ecore.xmi,
+ org.eclipse.emf.ecp.test.common,
+ org.eclipse.emf.ecp.view.model,
+ org.eclipse.emf.ecp.view.context;bundle-version="1.6.0",
+ org.eclipse.emf.ecp.view.categorization.model,
+ org.eclipse.emf.ecp.ui.view,
+ org.eclipse.emfforms.spreadsheet.core,
+ org.eclipse.emfforms.spreadsheet.core.importer,
+ org.eclipse.emf.ecp.makeithappen.model
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.emfforms.spreadsheet.integrationtest;version="1.0.0";x-internal:=true
diff --git a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/build.properties b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/build.properties
new file mode 100644
index 0000000..34d2e4d
--- /dev/null
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .
diff --git a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/pom.xml b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/pom.xml
new file mode 100644
index 0000000..249d755
--- /dev/null
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/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.emfforms.spreadsheet</groupId>
+    <artifactId>emfforms-spreadsheet-tests-parent</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+    <relativePath>../../../releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.tests/</relativePath>
+  </parent>
+	<groupId>org.eclipse.emfforms.spreadsheet</groupId>
+	<artifactId>org.eclipse.emfforms.spreadsheet.integrationtest</artifactId>
+	<version>1.0.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>false</useUIHarness>
+		          	<useUIThread>false</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.equinox.ds</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+</project>
diff --git a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/src/org/eclipse/emfforms/spreadsheet/integrationtest/AllIntegrationTests.java b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/src/org/eclipse/emfforms/spreadsheet/integrationtest/AllIntegrationTests.java
new file mode 100644
index 0000000..bacde67
--- /dev/null
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/src/org/eclipse/emfforms/spreadsheet/integrationtest/AllIntegrationTests.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spreadsheet.integrationtest;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+@RunWith(Suite.class)
+@SuiteClasses({ Roundtrip_ITest.class })
+public class AllIntegrationTests {
+
+}
diff --git a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/src/org/eclipse/emfforms/spreadsheet/integrationtest/Roundtrip_ITest.java b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/src/org/eclipse/emfforms/spreadsheet/integrationtest/Roundtrip_ITest.java
new file mode 100644
index 0000000..7bee197
--- /dev/null
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/src/org/eclipse/emfforms/spreadsheet/integrationtest/Roundtrip_ITest.java
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spreadsheet.integrationtest;
+
+import java.io.File;
+import java.util.Collection;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import javax.xml.datatype.DatatypeConfigurationException;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecp.makeithappen.model.task.Nationality;
+import org.eclipse.emf.ecp.makeithappen.model.task.TaskFactory;
+import org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage;
+import org.eclipse.emf.ecp.makeithappen.model.task.User;
+import org.eclipse.emf.ecp.test.common.DefaultRealm;
+import org.eclipse.emf.ecp.view.spi.provider.ViewProviderHelper;
+import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsSpreadsheetExporter;
+import org.eclipse.emfforms.spi.spreadsheet.core.importer.EMFFormsSpreadsheetImporter;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+
+public class Roundtrip_ITest {
+	private DefaultRealm realm;
+
+	@Before
+	public void setup() {
+		realm = new DefaultRealm();
+	}
+
+	@After
+	public void tearDown() {
+		realm.dispose();
+	}
+
+	@Test
+	public void test() throws DatatypeConfigurationException {
+		// write data
+		EMFFormsSpreadsheetExporter viewRenderer = EMFFormsSpreadsheetExporter.INSTANCE;
+		File targetFile = new File("export.xls");
+		EObject user = getDomainModel();
+		Map<String, Object> context=new LinkedHashMap<String, Object>();
+		context.put("root", true);
+		context.put("detail", true);
+		viewRenderer.render(targetFile.getAbsolutePath(), user,
+				ViewProviderHelper.getView(user, context));
+
+		// read data
+		final EMFFormsSpreadsheetImporter spreadsheetImport = EMFFormsSpreadsheetImporter.INSTANCE;
+		final Collection<EObject> users = spreadsheetImport.importSpreadsheet(
+				targetFile.getAbsolutePath(), TaskPackage.eINSTANCE.getUser());
+		for (final EObject eObject : users) {
+			EcoreUtil.equals(eObject, user);
+		}
+
+	}
+
+	private EObject getDomainModel() {
+		User user=TaskFactory.eINSTANCE.createUser();
+		user.setFirstName("John");
+		user.setLastName("Doe");
+		user.setEmail("john.doe@mail.com");
+		user.setWeight(1.1);
+		user.setHeigth(1);
+		user.setNationality(Nationality.ITALIAN);
+		return user;
+	}
+
+}