Bug 531147 - Update JSONForms Exporter for JSONForms 2.0

Adjust the UI Schema Generator to the new JSONForms 2.0 format including
test cases and their CI integration. Also improves initial content of
FileDialogs during Export.

Additional changes:
 * Renames the test bundle directory to the bundle  name for
consistency.
 * Updates EMF2Web bundles to version 1.16 for consistency with
remaining framework.
 * Disables Checkstyle for Xtend-generated files

Change-Id: I1422365ad9ad14b4fec46454e9d4a1ffe13eff98
Signed-off-by: Stefan Dirix <sdirix@eclipsesource.com>
diff --git a/bundles/org.eclipse.emf.ecp.emf2web.json/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.emf2web.json/META-INF/MANIFEST.MF
index df12d5e..b177025 100644
--- a/bundles/org.eclipse.emf.ecp.emf2web.json/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.emf2web.json/META-INF/MANIFEST.MF
@@ -2,21 +2,21 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF To Web JSON
 Bundle-SymbolicName: org.eclipse.emf.ecp.emf2web.json
-Bundle-Version: 1.0.0.qualifier
+Bundle-Version: 1.16.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emf.ecp.emf2web.json.controller;version="1.0.0",
   org.eclipse.emf.ecp.emf2web.json.generator;version="1.0.0",
   org.eclipse.emf.ecp.emf2web.json.generator.seed;version="1.0.0",
   org.eclipse.emf.ecp.emf2web.json.util;version="1.0.0";x-internal:=true
 Require-Bundle: org.eclipse.xtext.xbase.lib;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.xtend.lib;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.xtend.lib.macro;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.ecp.emf2web;bundle-version="[1.0.0,1.1.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.16.0,1.17.0)",
-  com.google.gson;bundle-version="[2.2.0,3.0.0)",
-  org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emf.ecp.view.label.model;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.16.0,1.17.0)"
+ org.eclipse.xtend.lib;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.xtend.lib.macro;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecp.emf2web;bundle-version="[1.16.0,1.17.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.16.0,1.17.0)",
+ com.google.gson;bundle-version="[2.2.0,3.0.0)",
+ org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.16.0,1.17.0)",
+ org.eclipse.emf.ecp.view.label.model;bundle-version="[1.16.0,1.17.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.16.0,1.17.0)",
+ org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.16.0,1.17.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.emf2web.json/pom.xml b/bundles/org.eclipse.emf.ecp.emf2web.json/pom.xml
index 179f611..9f2d521 100644
--- a/bundles/org.eclipse.emf.ecp.emf2web.json/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.emf2web.json/pom.xml
@@ -14,5 +14,5 @@
   <artifactId>org.eclipse.emf.ecp.emf2web.json</artifactId>
   <packaging>eclipse-plugin</packaging>
   <groupId>org.eclipse.emf.ecp</groupId>
-    <version>1.0.0-SNAPSHOT</version>
+    <version>1.16.0-SNAPSHOT</version>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.emf2web.json/src/org/eclipse/emf/ecp/emf2web/json/controller/JsonGenerationController.xtend b/bundles/org.eclipse.emf.ecp.emf2web.json/src/org/eclipse/emf/ecp/emf2web/json/controller/JsonGenerationController.xtend
index 6b53e53..0e06ef5 100644
--- a/bundles/org.eclipse.emf.ecp.emf2web.json/src/org/eclipse/emf/ecp/emf2web/json/controller/JsonGenerationController.xtend
+++ b/bundles/org.eclipse.emf.ecp.emf2web.json/src/org/eclipse/emf/ecp/emf2web/json/controller/JsonGenerationController.xtend
@@ -19,7 +19,6 @@
 import org.eclipse.emf.ecp.emf2web.json.generator.FormsJsonGenerator
 import org.eclipse.emf.ecp.emf2web.json.util.ReferenceHelperImpl
 import org.eclipse.emf.ecp.view.spi.model.VView
-import org.eclipse.emf.ecp.emf2web.json.generator.seed.SeedWrapper
 import org.eclipse.emf.ecp.emf2web.controller.GenerationController
 import org.eclipse.emf.ecp.view.spi.model.VElement
 
@@ -43,7 +42,7 @@
 
 			val schemaFile = modelGenerator.generate(eClass)
 			val schemaInfo = new GenerationInfo(GenerationInfo.MODEL_TYPE, eClass, null,
-				schemaIdentifier + "Model.json", new SeedWrapper())
+				schemaIdentifier + "Model.json", null)
 			schemaInfo.generatedString = schemaFile
 			result.add(schemaInfo)
 
@@ -58,7 +57,7 @@
 
 			val controllerFile = formsGenerator.generate(view)
 			val controllerInfo = new GenerationInfo(GenerationInfo.VIEW_TYPE, null, view,
-				schemaIdentifier + "View.json", new SeedWrapper())
+				schemaIdentifier + "View.json", null)
 			controllerInfo.generatedString = controllerFile
 			result.add(controllerInfo)
 		}
diff --git a/bundles/org.eclipse.emf.ecp.emf2web.json/src/org/eclipse/emf/ecp/emf2web/json/generator/FormsJsonGenerator.xtend b/bundles/org.eclipse.emf.ecp.emf2web.json/src/org/eclipse/emf/ecp/emf2web/json/generator/FormsJsonGenerator.xtend
index 8039793..3453934 100644
--- a/bundles/org.eclipse.emf.ecp.emf2web.json/src/org/eclipse/emf/ecp/emf2web/json/generator/FormsJsonGenerator.xtend
+++ b/bundles/org.eclipse.emf.ecp.emf2web.json/src/org/eclipse/emf/ecp/emf2web/json/generator/FormsJsonGenerator.xtend
@@ -40,7 +40,6 @@
 	private static final val CATEGORIZATION = "Categorization"
 	private static final val CATEGORY = "Category"
 	private static final val SCOPE = "scope"
-	private static final val REF = "$ref"
 	private static final val LABEL = "label"
 	
 	ReferenceHelper refHelper
@@ -108,7 +107,7 @@
 	private def dispatch JsonElement createJsonFormsElement(VContainer container){
 		val jsonObject = new JsonObject
 		jsonObject.withType(container.type)
-		if(container.name!=null) {
+		if(container.name!==null) {
 			jsonObject.withLabel(container.label.displayLabel)
 		}
 		jsonObject.withElements(container.children)
@@ -124,9 +123,7 @@
 	}
 	
 	private def withScope(JsonObject jsonObject, String ref) {
-		val scope = new JsonObject
-		scope.with(REF, ref)
-		jsonObject.with(SCOPE, scope)
+		jsonObject.with(SCOPE, ref)
 	}
 	
 	private def withLabel(JsonObject jsonObject, String label) {
diff --git a/bundles/org.eclipse.emf.ecp.emf2web.ui.json/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.emf2web.ui.json/META-INF/MANIFEST.MF
index 6cc91e3..e6e9b85 100644
--- a/bundles/org.eclipse.emf.ecp.emf2web.ui.json/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.emf2web.ui.json/META-INF/MANIFEST.MF
@@ -2,20 +2,20 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF To Web JSON UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.emf2web.ui.json;singleton:=true
-Bundle-Version: 1.0.0.qualifier
+Bundle-Version: 1.16.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.emf2web.ui.json.Activator
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emf.ecp.emf2web.ui.json;version="1.0.0";x-internal:=true,
   org.eclipse.emf.ecp.emf2web.ui.json.internal.handler;version="1.0.0";x-internal:=true,
   org.eclipse.emf.ecp.emf2web.ui.json.internal.messages;version="1.0.0";x-internal:=true
 Require-Bundle: org.eclipse.ui;bundle-version="[3.107.0,4.0.0)",
-  org.eclipse.emf.ecp.emf2web.ui;bundle-version="[1.0.0,1.1.0)",
-  org.eclipse.core.resources;bundle-version="[3.10.0,4.0.0)",
-  org.eclipse.core.runtime;bundle-version="[3.11.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.11.0,3.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emf.ecp.emf2web;bundle-version="[1.0.0,1.1.0)",
-  org.eclipse.emf.ecp.emf2web.json;bundle-version="[1.0.0,1.1.0)",
-  org.eclipse.emf.ecp.ide.util;bundle-version="[1.16.0,1.17.0)"
+ org.eclipse.emf.ecp.emf2web.ui;bundle-version="[1.16.0,1.17.0)",
+ org.eclipse.core.resources;bundle-version="[3.10.0,4.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.11.0,4.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.11.0,3.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.16.0,1.17.0)",
+ org.eclipse.emf.ecp.emf2web;bundle-version="[1.16.0,1.17.0)",
+ org.eclipse.emf.ecp.emf2web.json;bundle-version="[1.16.0,1.17.0)",
+ org.eclipse.emf.ecp.ide.util;bundle-version="[1.16.0,1.17.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.emf2web.ui.json/pom.xml b/bundles/org.eclipse.emf.ecp.emf2web.ui.json/pom.xml
index a1f64fa..365849d 100644
--- a/bundles/org.eclipse.emf.ecp.emf2web.ui.json/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.emf2web.ui.json/pom.xml
@@ -14,5 +14,5 @@
   <artifactId>org.eclipse.emf.ecp.emf2web.ui.json</artifactId>
   <packaging>eclipse-plugin</packaging>
   <groupId>org.eclipse.emf.ecp</groupId>
-    <version>1.0.0-SNAPSHOT</version>
+    <version>1.16.0-SNAPSHOT</version>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.emf2web.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.emf2web.ui/META-INF/MANIFEST.MF
index 2debc78..87be14f 100644
--- a/bundles/org.eclipse.emf.ecp.emf2web.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.emf2web.ui/META-INF/MANIFEST.MF
@@ -2,23 +2,23 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF To Web UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.emf2web.ui;singleton:=true
-Bundle-Version: 1.0.0.qualifier
+Bundle-Version: 1.16.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emf.ecp.emf2web.ui.handler;version="1.0.0",
   org.eclipse.emf.ecp.emf2web.ui.messages;version="1.0.0";x-internal:=true,
   org.eclipse.emf.ecp.emf2web.ui.wizard;version="1.0.0"
-Require-Bundle: org.eclipse.emf.ecp.emf2web;bundle-version="[1.0.0,1.1.0)",
-  org.eclipse.core.databinding;bundle-version="[1.5.0,2.0.0)",
-  org.eclipse.core.databinding.beans;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.core.databinding.observable;bundle-version="[1.5.0,2.0.0)",
-  org.eclipse.core.databinding.property;bundle-version="[1.5.0,2.0.0)",
-  org.eclipse.equinox.common;bundle-version="[3.7.0,4.0.0)",
-  com.ibm.icu;bundle-version="[54.1.0,60.0.0)",
-  org.eclipse.ui;bundle-version="[3.107.0,4.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emf.common.ui;bundle-version="[2.10.0,3.0.0)",
-  org.eclipse.core.resources;bundle-version="[3.10.0,4.0.0)",
-  org.eclipse.ui.ide;bundle-version="[3.11.0,4.0.0)"
+Require-Bundle: org.eclipse.emf.ecp.emf2web;bundle-version="[1.16.0,1.17.0)",
+ org.eclipse.core.databinding;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.core.databinding.beans;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.core.databinding.observable;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.equinox.common;bundle-version="[3.7.0,4.0.0)",
+ com.ibm.icu;bundle-version="[54.1.0,60.0.0)",
+ org.eclipse.ui;bundle-version="[3.107.0,4.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.16.0,1.17.0)",
+ org.eclipse.emf.common.ui;bundle-version="[2.10.0,3.0.0)",
+ org.eclipse.core.resources;bundle-version="[3.10.0,4.0.0)",
+ org.eclipse.ui.ide;bundle-version="[3.11.0,4.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Import-Package: org.eclipse.jface.databinding.swt;version="0.0.0",
   org.eclipse.jface.databinding.wizard;version="0.0.0",
diff --git a/bundles/org.eclipse.emf.ecp.emf2web.ui/pom.xml b/bundles/org.eclipse.emf.ecp.emf2web.ui/pom.xml
index 4d02701..9e35902 100644
--- a/bundles/org.eclipse.emf.ecp.emf2web.ui/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.emf2web.ui/pom.xml
@@ -14,5 +14,5 @@
   <artifactId>org.eclipse.emf.ecp.emf2web.ui</artifactId>
   <packaging>eclipse-plugin</packaging>
   <groupId>org.eclipse.emf.ecp</groupId>
-    <version>1.0.0-SNAPSHOT</version>
+    <version>1.16.0-SNAPSHOT</version>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.emf2web.ui/src/org/eclipse/emf/ecp/emf2web/ui/messages/messages.properties b/bundles/org.eclipse.emf.ecp.emf2web.ui/src/org/eclipse/emf/ecp/emf2web/ui/messages/messages.properties
index adf1598..3e8266f 100644
--- a/bundles/org.eclipse.emf.ecp.emf2web.ui/src/org/eclipse/emf/ecp/emf2web/ui/messages/messages.properties
+++ b/bundles/org.eclipse.emf.ecp.emf2web.ui/src/org/eclipse/emf/ecp/emf2web/ui/messages/messages.properties
@@ -14,6 +14,8 @@
 SelectLocationPage.Description_OtherType=Select file to export to
 SelectLocationPage.Description_ViewType=Select file to export UI schema to
 SelectLocationPage.LocationError=Location must be set
+SelectLocationPage.LocationDirectoryError=Location must not be a directory
+SelectLocationPage.LocationValidError=Location must be valid
 SelectLocationPage.LocationLabel=Location\:
 SelectLocationPage.OptionalSettingsGroupText=Optional Settings
 SelectLocationPage.RequiredDecorationText=Required
diff --git a/bundles/org.eclipse.emf.ecp.emf2web.ui/src/org/eclipse/emf/ecp/emf2web/ui/wizard/SelectLocationPage.java b/bundles/org.eclipse.emf.ecp.emf2web.ui/src/org/eclipse/emf/ecp/emf2web/ui/wizard/SelectLocationPage.java
index fb9a101..f63823d 100644
--- a/bundles/org.eclipse.emf.ecp.emf2web.ui/src/org/eclipse/emf/ecp/emf2web/ui/wizard/SelectLocationPage.java
+++ b/bundles/org.eclipse.emf.ecp.emf2web.ui/src/org/eclipse/emf/ecp/emf2web/ui/wizard/SelectLocationPage.java
@@ -11,6 +11,8 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.emf2web.ui.wizard;
 
+import java.io.File;
+
 import org.eclipse.core.databinding.DataBindingContext;
 import org.eclipse.core.databinding.UpdateValueStrategy;
 import org.eclipse.core.databinding.beans.PojoProperties;
@@ -190,7 +192,7 @@
 	 * Indicates if this page was already shown to the user.
 	 *
 	 * @return
-	 *         {@code true} if this page was already shown to the user, {@code false} if this page was never shown to
+	 * 		{@code true} if this page was already shown to the user, {@code false} if this page was never shown to
 	 *         the user.
 	 */
 	public boolean wasAlreadyVisible() {
@@ -213,14 +215,14 @@
 			// preselect if file exists in workspace
 			if (generationInfo.getLocation() != null && generationInfo.getLocation().isPlatform()) {
 				final IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-				final IResource resource = root.findMember(generationInfo.getLocation().toPlatformString(true));
+				final IResource resource = root
+					.findMember(generationInfo.getLocation().trimSegments(1).toPlatformString(true));
 				if (resource != null && resource.isAccessible()) {
-					if (resource instanceof IContainer) {
-						dialog.setInitialSelection(resource);
-					} else {
-						dialog.setInitialSelection(resource.getParent());
-						dialog.setFileText(resource.getName());
-					}
+					dialog.setInitialSelection(resource);
+					final int segment = generationInfo.getLocation().segmentCount() > 0
+						? generationInfo.getLocation().segmentCount() - 1
+						: 0;
+					dialog.setFileText(generationInfo.getLocation().segment(segment));
 				}
 			}
 
@@ -241,6 +243,15 @@
 		@Override
 		public void widgetSelected(final SelectionEvent e) {
 			final FileDialog fileDialog = new FileDialog(getShell(), SWT.SINGLE | SWT.SAVE);
+			// preselect if proposal is not in workspace
+			if (generationInfo.getLocation() != null && !generationInfo.getLocation().isPlatform()) {
+				final File file = new File(generationInfo.getLocation().toFileString());
+				final File parent = file.getParentFile();
+				if (parent != null && parent.exists()) {
+					fileDialog.setFilterPath(parent.getAbsolutePath());
+				}
+				fileDialog.setFileName(file.getName());
+			}
 			final String result = fileDialog.open();
 			if (result != null) {
 				final URI newLocation = URI.createFileURI(result);
@@ -271,6 +282,27 @@
 				requiredLocationDecoration.show();
 				return ValidationStatus.error(Messages.getString("SelectLocationPage.LocationError")); //$NON-NLS-1$
 			}
+			if (URI.class.isInstance(value)) {
+				final URI uri = URI.class.cast(value);
+				if (uri.isPlatform()) {
+					final IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+					final IResource resource = root.findMember(uri.toPlatformString(true));
+					if (IContainer.class.isInstance(resource)) {
+						requiredLocationDecoration.show();
+						return ValidationStatus.error(Messages.getString("SelectLocationPage.LocationDirectoryError")); //$NON-NLS-1$
+					}
+				} else {
+					if (uri.toFileString() == null) {
+						requiredLocationDecoration.show();
+						return ValidationStatus.error(Messages.getString("SelectLocationPage.LocationValidError")); //$NON-NLS-1$
+					}
+					final File file = new File(uri.toFileString());
+					if (file.isDirectory()) {
+						requiredLocationDecoration.show();
+						return ValidationStatus.error(Messages.getString("SelectLocationPage.LocationDirectoryError")); //$NON-NLS-1$
+					}
+				}
+			}
 			requiredLocationDecoration.hide();
 			return ValidationStatus.ok();
 		}
diff --git a/bundles/org.eclipse.emf.ecp.emf2web/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.emf2web/META-INF/MANIFEST.MF
index 952f561..3fe05dd 100644
--- a/bundles/org.eclipse.emf.ecp.emf2web/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.emf2web/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF To Web
 Bundle-SymbolicName: org.eclipse.emf.ecp.emf2web;singleton:=true
-Bundle-Version: 1.0.0.qualifier
+Bundle-Version: 1.16.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.emf2web.Activator
 Bundle-Vendor: Eclipse Modeling Project
diff --git a/bundles/org.eclipse.emf.ecp.emf2web/pom.xml b/bundles/org.eclipse.emf.ecp.emf2web/pom.xml
index 210ef68..973d10b 100644
--- a/bundles/org.eclipse.emf.ecp.emf2web/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.emf2web/pom.xml
@@ -14,5 +14,5 @@
   <artifactId>org.eclipse.emf.ecp.emf2web</artifactId>
   <packaging>eclipse-plugin</packaging>
   <groupId>org.eclipse.emf.ecp</groupId>
-    <version>1.0.0-SNAPSHOT</version>
+  <version>1.16.0-SNAPSHOT</version>
 </project>
diff --git a/features/org.eclipse.emf.ecp.emf2web.feature/feature.xml b/features/org.eclipse.emf.ecp.emf2web.feature/feature.xml
index 3566c70..314b983 100644
--- a/features/org.eclipse.emf.ecp.emf2web.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.emf2web.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.emf.ecp.emf2web.feature"
       label="JSON Forms Integration"
-      version="1.0.0.qualifier"
+      version="1.16.0.qualifier"
       provider-name="Eclipse Modeling Project"
       license-feature="org.eclipse.emf.ecp.license.feature"
       license-feature-version="1.16.0.qualifier">
diff --git a/features/org.eclipse.emf.ecp.emf2web.feature/pom.xml b/features/org.eclipse.emf.ecp.emf2web.feature/pom.xml
index 28be5ba..be0378d 100644
--- a/features/org.eclipse.emf.ecp.emf2web.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.emf2web.feature/pom.xml
@@ -11,7 +11,7 @@
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.emf2web.feature</artifactId>
-	<version>1.0.0-SNAPSHOT</version>
+	<version>1.16.0-SNAPSHOT</version>
 	<packaging>eclipse-feature</packaging>
 	
 	<build>
diff --git a/releng/org.eclipse.emf.ecp.releng.tests/pom.xml b/releng/org.eclipse.emf.ecp.releng.tests/pom.xml
index e30bf65..acc6d04 100644
--- a/releng/org.eclipse.emf.ecp.releng.tests/pom.xml
+++ b/releng/org.eclipse.emf.ecp.releng.tests/pom.xml
@@ -199,12 +199,33 @@
         <module>../../tests/org.eclipse.emfforms.swt.controlgrid.test</module>
 
         <module>../../tests/org.eclipse.emfforms.swt.treemasterdetail.test</module>
+        
+        <!-- EMF2Web -->
+		<module>../../tests/org.eclipse.emf.ecp.emf2web.json.test</module>
+		
 	</modules>
 	
 	<build>
 		<sourceDirectory>src</sourceDirectory>
 		<outputDirectory>bin</outputDirectory>
 		<plugins>
+			<!-- build tests written in xtend -->
+			<plugin>
+				<groupId>org.eclipse.xtend</groupId>
+				<artifactId>xtend-maven-plugin</artifactId>
+				<version>2.7.3</version>
+				<executions>
+					<execution>
+						<goals>
+							<goal>compile</goal>
+						</goals>
+						<!-- optionally you can configure a different target folder -->
+						<configuration>
+							<outputDirectory>${basedir}/xtend-gen</outputDirectory>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
 			<!-- to disable use -Dcheckstyle.skip -->
 			<plugin>
 				<groupId>org.apache.maven.plugins</groupId>
@@ -212,6 +233,7 @@
 				<version>2.17</version>
 				<configuration>
 					<configLocation>../org.eclipse.emf.ecp.releng/checkstyle/esmCheckstyleTest.xml</configLocation>
+					<propertiesLocation>../org.eclipse.emf.ecp.releng/checkstyle/checkstyle_maven.properties</propertiesLocation>
 					<failsOnError>false</failsOnError>
 				</configuration>
 				<executions>
diff --git a/releng/org.eclipse.emf.ecp.releng/checkstyle/checkstyle_maven.properties b/releng/org.eclipse.emf.ecp.releng/checkstyle/checkstyle_maven.properties
new file mode 100644
index 0000000..6ef1692
--- /dev/null
+++ b/releng/org.eclipse.emf.ecp.releng/checkstyle/checkstyle_maven.properties
@@ -0,0 +1 @@
+config_loc=releng/org.eclipse.emf.ecp.releng/checkstyle
\ No newline at end of file
diff --git a/releng/org.eclipse.emf.ecp.releng/checkstyle/esmCheckstyle-suppressions.xml b/releng/org.eclipse.emf.ecp.releng/checkstyle/esmCheckstyle-suppressions.xml
new file mode 100644
index 0000000..3d2df8d
--- /dev/null
+++ b/releng/org.eclipse.emf.ecp.releng/checkstyle/esmCheckstyle-suppressions.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<!DOCTYPE suppressions PUBLIC "-//Puppy Crawl//DTD Suppressions 1.1//EN" "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
+<suppressions>
+	<suppress files="[/\\]xtend-gen[/\\]" checks=".*"/>
+</suppressions>
\ No newline at end of file
diff --git a/releng/org.eclipse.emf.ecp.releng/checkstyle/esmCheckstyle.xml b/releng/org.eclipse.emf.ecp.releng/checkstyle/esmCheckstyle.xml
index 411667f..ce548f8 100644
--- a/releng/org.eclipse.emf.ecp.releng/checkstyle/esmCheckstyle.xml
+++ b/releng/org.eclipse.emf.ecp.releng/checkstyle/esmCheckstyle.xml
@@ -10,6 +10,9 @@
 -->
 <module name="Checker">
   <property name="severity" value="warning"/>
+  <module name="SuppressionFilter">
+    <property name="file" value="${config_loc}/esmCheckstyle-suppressions.xml"/>
+  </module>
   <module name="TreeWalker">
     <property name="tabWidth" value="4"/>
     <module name="JavadocMethod">
diff --git a/releng/org.eclipse.emf.ecp.releng/pom.xml b/releng/org.eclipse.emf.ecp.releng/pom.xml
index c2de8c5..3f49d60 100644
--- a/releng/org.eclipse.emf.ecp.releng/pom.xml
+++ b/releng/org.eclipse.emf.ecp.releng/pom.xml
@@ -225,6 +225,7 @@
 				<!-- https://maven.apache.org/plugins/maven-checkstyle-plugin/history.html -->
 				<configuration>
 					<configLocation>../org.eclipse.emf.ecp.releng/checkstyle/esmCheckstyle.xml</configLocation>
+					<propertiesLocation>../org.eclipse.emf.ecp.releng/checkstyle/checkstyle_maven.properties</propertiesLocation>
 					<failsOnError>false</failsOnError>
 				</configuration>
 				<executions>
diff --git a/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.tests/pom.xml b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.tests/pom.xml
index 498cb30..fdeb516 100644
--- a/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.tests/pom.xml
+++ b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.tests/pom.xml
@@ -60,6 +60,7 @@
 				<version>2.17</version>
 				<configuration>
 					<configLocation>../../org.eclipse.emf.ecp.releng/checkstyle/esmCheckstyleTest.xml</configLocation>
+					<propertiesLocation>../../org.eclipse.emf.ecp.releng/checkstyle/checkstyle_maven.properties</propertiesLocation>
 					<failsOnError>false</failsOnError>
 				</configuration>
 				<executions>
diff --git a/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng/pom.xml b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng/pom.xml
index e54d1dd..e4ba0b4 100644
--- a/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng/pom.xml
+++ b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng/pom.xml
@@ -198,6 +198,7 @@
 				<version>2.17</version>
 				<configuration>
 					<configLocation>../../org.eclipse.emf.ecp.releng/checkstyle/esmCheckstyle.xml</configLocation>
+					<propertiesLocation>../../org.eclipse.emf.ecp.releng/checkstyle/checkstyle_maven.properties</propertiesLocation>
 					<failsOnError>false</failsOnError>
 				</configuration>
 				<executions>
diff --git a/tests/org.eclipse.emf.ecp.emf2web.json.test/.checkstyle b/tests/org.eclipse.emf.ecp.emf2web.json.test/.checkstyle
new file mode 100644
index 0000000..19c5477
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.emf2web.json.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="ESMCheckstyle" location="/org.eclipse.emf.ecp.releng/checkstyle/esmCheckstyle.xml" type="project" description="">
+    <additional-data name="protect-config-file" value="false"/>
+  </local-check-config>
+  <fileset name="Java Files" enabled="true" check-config-name="ESMCheckstyle" local="true">
+    <file-match-pattern match-pattern=".java" include-pattern="true"/>
+  </fileset>
+</fileset-config>
diff --git a/tests/org.eclipse.emf.ecp.emf2web.test/.classpath b/tests/org.eclipse.emf.ecp.emf2web.json.test/.classpath
similarity index 100%
rename from tests/org.eclipse.emf.ecp.emf2web.test/.classpath
rename to tests/org.eclipse.emf.ecp.emf2web.json.test/.classpath
diff --git a/tests/org.eclipse.emf.ecp.emf2web.test/.gitignore b/tests/org.eclipse.emf.ecp.emf2web.json.test/.gitignore
similarity index 100%
rename from tests/org.eclipse.emf.ecp.emf2web.test/.gitignore
rename to tests/org.eclipse.emf.ecp.emf2web.json.test/.gitignore
diff --git a/tests/org.eclipse.emf.ecp.emf2web.test/.project b/tests/org.eclipse.emf.ecp.emf2web.json.test/.project
similarity index 100%
rename from tests/org.eclipse.emf.ecp.emf2web.test/.project
rename to tests/org.eclipse.emf.ecp.emf2web.json.test/.project
diff --git a/tests/org.eclipse.emf.ecp.emf2web.test/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.emf.ecp.emf2web.json.test/.settings/org.eclipse.core.resources.prefs
similarity index 100%
rename from tests/org.eclipse.emf.ecp.emf2web.test/.settings/org.eclipse.core.resources.prefs
rename to tests/org.eclipse.emf.ecp.emf2web.json.test/.settings/org.eclipse.core.resources.prefs
diff --git a/tests/org.eclipse.emf.ecp.emf2web.test/.settings/org.eclipse.core.runtime.prefs b/tests/org.eclipse.emf.ecp.emf2web.json.test/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
rename from tests/org.eclipse.emf.ecp.emf2web.test/.settings/org.eclipse.core.runtime.prefs
rename to tests/org.eclipse.emf.ecp.emf2web.json.test/.settings/org.eclipse.core.runtime.prefs
diff --git a/tests/org.eclipse.emf.ecp.emf2web.test/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emf.ecp.emf2web.json.test/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
rename from tests/org.eclipse.emf.ecp.emf2web.test/.settings/org.eclipse.jdt.core.prefs
rename to tests/org.eclipse.emf.ecp.emf2web.json.test/.settings/org.eclipse.jdt.core.prefs
diff --git a/tests/org.eclipse.emf.ecp.emf2web.test/.settings/org.eclipse.jdt.launching.prefs b/tests/org.eclipse.emf.ecp.emf2web.json.test/.settings/org.eclipse.jdt.launching.prefs
similarity index 100%
rename from tests/org.eclipse.emf.ecp.emf2web.test/.settings/org.eclipse.jdt.launching.prefs
rename to tests/org.eclipse.emf.ecp.emf2web.json.test/.settings/org.eclipse.jdt.launching.prefs
diff --git a/tests/org.eclipse.emf.ecp.emf2web.test/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.emf.ecp.emf2web.json.test/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
rename from tests/org.eclipse.emf.ecp.emf2web.test/.settings/org.eclipse.jdt.ui.prefs
rename to tests/org.eclipse.emf.ecp.emf2web.json.test/.settings/org.eclipse.jdt.ui.prefs
diff --git a/tests/org.eclipse.emf.ecp.emf2web.test/.settings/org.eclipse.ltk.core.refactoring.prefs b/tests/org.eclipse.emf.ecp.emf2web.json.test/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
rename from tests/org.eclipse.emf.ecp.emf2web.test/.settings/org.eclipse.ltk.core.refactoring.prefs
rename to tests/org.eclipse.emf.ecp.emf2web.json.test/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/tests/org.eclipse.emf.ecp.emf2web.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.emf2web.json.test/.settings/org.eclipse.pde.api.tools.prefs
similarity index 100%
rename from tests/org.eclipse.emf.ecp.emf2web.test/.settings/org.eclipse.pde.api.tools.prefs
rename to tests/org.eclipse.emf.ecp.emf2web.json.test/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/tests/org.eclipse.emf.ecp.emf2web.test/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.emf.ecp.emf2web.json.test/.settings/org.eclipse.pde.prefs
similarity index 100%
rename from tests/org.eclipse.emf.ecp.emf2web.test/.settings/org.eclipse.pde.prefs
rename to tests/org.eclipse.emf.ecp.emf2web.json.test/.settings/org.eclipse.pde.prefs
diff --git a/tests/org.eclipse.emf.ecp.emf2web.test/.settings/org.eclipse.xtend.core.Xtend.prefs b/tests/org.eclipse.emf.ecp.emf2web.json.test/.settings/org.eclipse.xtend.core.Xtend.prefs
similarity index 100%
rename from tests/org.eclipse.emf.ecp.emf2web.test/.settings/org.eclipse.xtend.core.Xtend.prefs
rename to tests/org.eclipse.emf.ecp.emf2web.json.test/.settings/org.eclipse.xtend.core.Xtend.prefs
diff --git a/tests/org.eclipse.emf.ecp.emf2web.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.emf2web.json.test/META-INF/MANIFEST.MF
similarity index 62%
rename from tests/org.eclipse.emf.ecp.emf2web.test/META-INF/MANIFEST.MF
rename to tests/org.eclipse.emf.ecp.emf2web.json.test/META-INF/MANIFEST.MF
index 2d88f5f..9f6ccd1 100644
--- a/tests/org.eclipse.emf.ecp.emf2web.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.emf2web.json.test/META-INF/MANIFEST.MF
@@ -2,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF To Web JSON Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.emf2web.json.test
-Bundle-Version: 1.0.0.qualifier
+Bundle-Version: 1.16.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.emf2web;bundle-version="[1.0.0,1.1.0)"
+Fragment-Host: org.eclipse.emf.ecp.emf2web;bundle-version="[1.16.0,1.17.0)"
 Export-Package: org.eclipse.emf.ecp.emf2web.generator.json;version="1.0.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.12.0,5.0.0)",
-  com.google.gson;bundle-version="[2.2.0,3.0.0)",
-  org.eclipse.emf.ecp.emf2web.json;bundle-version="[1.0.0,1.1.0)"
+ com.google.gson;bundle-version="[2.2.0,3.0.0)",
+ org.eclipse.emf.ecp.emf2web.json;bundle-version="[1.16.0,1.17.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/tests/org.eclipse.emf.ecp.emf2web.test/build.properties b/tests/org.eclipse.emf.ecp.emf2web.json.test/build.properties
similarity index 100%
rename from tests/org.eclipse.emf.ecp.emf2web.test/build.properties
rename to tests/org.eclipse.emf.ecp.emf2web.json.test/build.properties
diff --git a/tests/org.eclipse.emf.ecp.emf2web.json.test/pom.xml b/tests/org.eclipse.emf.ecp.emf2web.json.test/pom.xml
new file mode 100644
index 0000000..fb5741b
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.emf2web.json.test/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-tests-parent</artifactId>
+		<version>1.16.0-SNAPSHOT</version>
+		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
+	</parent>
+  <groupId>org.eclipse.emf.ecp</groupId>
+  <artifactId>org.eclipse.emf.ecp.emf2web.json.test</artifactId>
+  <version>1.16.0-SNAPSHOT</version>
+  <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/tests/org.eclipse.emf.ecp.emf2web.test/src/org/eclipse/emf/ecp/emf2web/generator/json/EcoreJsonExporterTest.xtend b/tests/org.eclipse.emf.ecp.emf2web.json.test/src/org/eclipse/emf/ecp/emf2web/generator/json/EcoreJsonExporter_Test.xtend
similarity index 89%
rename from tests/org.eclipse.emf.ecp.emf2web.test/src/org/eclipse/emf/ecp/emf2web/generator/json/EcoreJsonExporterTest.xtend
rename to tests/org.eclipse.emf.ecp.emf2web.json.test/src/org/eclipse/emf/ecp/emf2web/generator/json/EcoreJsonExporter_Test.xtend
index 1de4d2a..d441005 100644
--- a/tests/org.eclipse.emf.ecp.emf2web.test/src/org/eclipse/emf/ecp/emf2web/generator/json/EcoreJsonExporterTest.xtend
+++ b/tests/org.eclipse.emf.ecp.emf2web.json.test/src/org/eclipse/emf/ecp/emf2web/generator/json/EcoreJsonExporter_Test.xtend
@@ -13,7 +13,7 @@
 import org.eclipse.emf.ecp.emf2web.json.generator.EcoreJsonGenerator
 import org.eclipse.emf.ecore.EClassifier
 
-class EcoreJsonExporterTest {
+class EcoreJsonExporter_Test {
 	static final val ECORE_PACKAGE = EcorePackage.eINSTANCE
 	static final val ECORE_FACTORY = EcoreFactory.eINSTANCE
 	static final val TEST_ECLASS_NAME = "TestEClass";
@@ -31,7 +31,7 @@
 
 	def buildEnum() {
 		val eEnum = ECORE_FACTORY.createEEnum
-		eEnum.name = EcoreJsonExporterTest.TEST_ECLASS_NAME
+		eEnum.name = EcoreJsonExporter_Test.TEST_ECLASS_NAME
 		for (String literal : testEnumValues) {
 			val enumLiteral = ECORE_FACTORY.createEEnumLiteral
 			enumLiteral.name = literal
@@ -43,12 +43,12 @@
 	@Test
 	def void createJsonSchemaElementFromEClassWithOptionalSingleReference() {
 		val eClass = ECORE_FACTORY.createEClass
-		eClass.name = EcoreJsonExporterTest.TEST_ECLASS_NAME
+		eClass.name = EcoreJsonExporter_Test.TEST_ECLASS_NAME
 		
 		val refClass = ECORE_FACTORY.createEClass
-		refClass.name = EcoreJsonExporterTest.TEST_ECLASS_NAME + "2"
+		refClass.name = EcoreJsonExporter_Test.TEST_ECLASS_NAME + "2"
 
-		val eReference = eReference(-1, -1, refClass)
+		val eReference = eReference(-1, 1, refClass)
 		eClass.getEStructuralFeatures.add(eReference)
 
 		val result = exporter.createJsonElement(eClass)
@@ -58,10 +58,10 @@
 	@Test
 	def void createJsonSchemaElementFromEClassWithMandatorySingleReference() {
 		val eClass = ECORE_FACTORY.createEClass
-		eClass.name = EcoreJsonExporterTest.TEST_ECLASS_NAME
+		eClass.name = EcoreJsonExporter_Test.TEST_ECLASS_NAME
 		
 		val refClass = ECORE_FACTORY.createEClass
-		refClass.name = EcoreJsonExporterTest.TEST_ECLASS_NAME + "2"
+		refClass.name = EcoreJsonExporter_Test.TEST_ECLASS_NAME + "2"
 
 		val eReference = eReference(1, 1, refClass)
 		eClass.getEStructuralFeatures.add(eReference)
@@ -73,10 +73,10 @@
 	@Test
 	def void createJsonSchemaElementFromEClassWithOptionalMultiReference() {
 		val eClass = ECORE_FACTORY.createEClass
-		eClass.name = EcoreJsonExporterTest.TEST_ECLASS_NAME
+		eClass.name = EcoreJsonExporter_Test.TEST_ECLASS_NAME
 		
 		val refClass = ECORE_FACTORY.createEClass
-		refClass.name = EcoreJsonExporterTest.TEST_ECLASS_NAME + "2"
+		refClass.name = EcoreJsonExporter_Test.TEST_ECLASS_NAME + "2"
 
 		val eReference = eReference(-1, 10, refClass)
 		eClass.getEStructuralFeatures.add(eReference)
@@ -88,10 +88,10 @@
 	@Test
 	def void createJsonSchemaElementFromEClassWithMandatoryMultiReference() {
 		val eClass = ECORE_FACTORY.createEClass
-		eClass.name = EcoreJsonExporterTest.TEST_ECLASS_NAME
+		eClass.name = EcoreJsonExporter_Test.TEST_ECLASS_NAME
 		
 		val refClass = ECORE_FACTORY.createEClass
-		refClass.name = EcoreJsonExporterTest.TEST_ECLASS_NAME + "2"
+		refClass.name = EcoreJsonExporter_Test.TEST_ECLASS_NAME + "2"
 
 		val eReference = eReference(1, 10, refClass)
 		eClass.getEStructuralFeatures.add(eReference)
@@ -103,15 +103,15 @@
 	@Test
 	def void createJsonSchemaElementFromEClassWithCircleReference() {
 		val eClass = ECORE_FACTORY.createEClass
-		eClass.name = EcoreJsonExporterTest.TEST_ECLASS_NAME
+		eClass.name = EcoreJsonExporter_Test.TEST_ECLASS_NAME
 		
 		val refClass = ECORE_FACTORY.createEClass
-		refClass.name = EcoreJsonExporterTest.TEST_ECLASS_NAME + "2"
+		refClass.name = EcoreJsonExporter_Test.TEST_ECLASS_NAME + "2"
 
-		val eReference = eReference(-1, -1, refClass)
+		val eReference = eReference(-1, 1, refClass)
 		eClass.getEStructuralFeatures.add(eReference)
 		
-		val eReference2 = eReference(-1, -1, eClass)
+		val eReference2 = eReference(-1, 1, eClass)
 		refClass.getEStructuralFeatures.add(eReference2)
 
 		val result = exporter.createJsonElement(eClass)
diff --git a/tests/org.eclipse.emf.ecp.emf2web.test/src/org/eclipse/emf/ecp/emf2web/generator/json/FormsJsonExporterTest.xtend b/tests/org.eclipse.emf.ecp.emf2web.json.test/src/org/eclipse/emf/ecp/emf2web/generator/json/FormsJsonExporter_Test.xtend
similarity index 93%
rename from tests/org.eclipse.emf.ecp.emf2web.test/src/org/eclipse/emf/ecp/emf2web/generator/json/FormsJsonExporterTest.xtend
rename to tests/org.eclipse.emf.ecp.emf2web.json.test/src/org/eclipse/emf/ecp/emf2web/generator/json/FormsJsonExporter_Test.xtend
index cb192e8..da40ca7 100644
--- a/tests/org.eclipse.emf.ecp.emf2web.test/src/org/eclipse/emf/ecp/emf2web/generator/json/FormsJsonExporterTest.xtend
+++ b/tests/org.eclipse.emf.ecp.emf2web.json.test/src/org/eclipse/emf/ecp/emf2web/generator/json/FormsJsonExporter_Test.xtend
@@ -16,7 +16,7 @@
 import org.eclipse.emf.ecp.emf2web.util.ReferenceHelper
 import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationFactory
 
-class FormsJsonExporterTest {
+class FormsJsonExporter_Test {
 	private FormsJsonGenerator exporter;
 	val testName = "testName";
 	val testReference = "testReference";
@@ -71,8 +71,8 @@
 		val firstCategory = VCategorizationFactory.eINSTANCE.createCategory
 		val secondCategory = VCategorizationFactory.eINSTANCE.createCategory
 		
-		firstCategory.name = "First"
-		secondCategory.name = "Second"
+		firstCategory.label = "First"
+		secondCategory.label = "Second"
 		
 		val firstControl = VViewFactory.eINSTANCE.createControl
 		val secondControl = VViewFactory.eINSTANCE.createControl
@@ -106,9 +106,7 @@
 		      "elements": [{
 		      	  "type": "Control",
 		      	  "label": "«testName»",
-		      	  "scope": {
-			  		  "$ref": "«testReference»"
-			  	  }
+		      	  "scope": "«testReference»"
 			  	}
 		      ]
 		    },
@@ -118,9 +116,7 @@
 		      "elements": [{
 		      	  "type": "Control",
 		      	  "label": "«testName»",
-		      	  "scope": {
-			  		  "$ref": "«testReference»"
-			  	  }
+		      	  "scope": "«testReference»"
 			  	}
 		      ]
 		    }		  
@@ -147,9 +143,7 @@
 		    },
 		    {
 		      "type": "Control",
-		      "scope": {
-			  	"$ref": "«testReference»"
-			  },
+		      "scope": "«testReference»",
 		      "label": "«testName»"
 		    }
 			]
@@ -264,16 +258,12 @@
 			    {
 			      "type": "Control",
 			      "label": "«testName»",
-			      "scope": {
-			      	"$ref": "«testReference»"
-			      }
+			      "scope": "«testReference»"
 			    },
 			    {
 			      "type": "Control",
 			      "label": "«testName»",
-			      "scope": {
-			      	"$ref": "«testReference»"
-			      }
+			      "scope": "«testReference»"
 			    }
 			  ]
 			}
@@ -289,9 +279,7 @@
 			    {
 			      "type": "Control",
 			      "label": "«testName»",
-			      "scope": {
-			      	"$ref": "«testReference»"
-			      }
+			      "scope": "«testReference»"
 			    }
 			  ]
 			}
@@ -365,9 +353,7 @@
 		    {
 		      "type": "Control",
 		      "label": "«testName»",
-		      "scope": {
-		      	"$ref": "«testReference»"
-		      }
+		      "scope": "«testReference»"
 		    }
 		'''
 		.toJsonElement