Bug 541357 - [EcoreEditor] Validation markers are not correctly shown on
editor open

Propagate the diagnostics in the cache upwards by using a depth-first
approach. While propagating upwards, results are aggregated at every
level and only the relevant diagnostic is propagated further. This
avoids unnecessary propagations compared to propagating upwards from
every node in the containment hierarchy.

Change-Id: I58373754303b96838f5f97ad41579371c3475d29
Signed-off-by: Lucas Koehler <lkoehler@eclipsesource.com>
diff --git a/bundles/org.eclipse.emfforms.editor.ecore/.classpath b/bundles/org.eclipse.emfforms.editor.ecore/.classpath
index ad32c83..eca7bdb 100644
--- a/bundles/org.eclipse.emfforms.editor.ecore/.classpath
+++ b/bundles/org.eclipse.emfforms.editor.ecore/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="output" path="bin"/>
diff --git a/bundles/org.eclipse.emfforms.editor.ecore/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.editor.ecore/.settings/org.eclipse.jdt.core.prefs
index 82d0031..f41b859 100644
--- a/bundles/org.eclipse.emfforms.editor.ecore/.settings/org.eclipse.jdt.core.prefs
+++ b/bundles/org.eclipse.emfforms.editor.ecore/.settings/org.eclipse.jdt.core.prefs
@@ -26,9 +26,9 @@
 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.compliance=1.8
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -131,7 +131,7 @@
 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.source=1.8
 org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
 org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,HIGH,LOW,LOW,LOW,LOW,LOW,NORMAL
 org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED,APITODO
diff --git a/bundles/org.eclipse.emfforms.editor.ecore/src/org/eclipse/emfforms/internal/editor/ecore/EcoreDiagnosticCache.java b/bundles/org.eclipse.emfforms.editor.ecore/src/org/eclipse/emfforms/internal/editor/ecore/EcoreDiagnosticCache.java
index 791bea1..0334ae1 100644
--- a/bundles/org.eclipse.emfforms.editor.ecore/src/org/eclipse/emfforms/internal/editor/ecore/EcoreDiagnosticCache.java
+++ b/bundles/org.eclipse.emfforms.editor.ecore/src/org/eclipse/emfforms/internal/editor/ecore/EcoreDiagnosticCache.java
@@ -12,8 +12,16 @@
  ******************************************************************************/
 package org.eclipse.emfforms.internal.editor.ecore;
 
+import java.util.LinkedHashSet;
+import java.util.Set;
+
 import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecp.common.spi.cachetree.CachedTreeNode;
 import org.eclipse.emfforms.spi.swt.treemasterdetail.diagnostic.DiagnosticCache;
 
 /**
@@ -26,6 +34,42 @@
 	 */
 	public EcoreDiagnosticCache(Notifier input) {
 		super(input);
+
+		final Set<EObject> rootObjects = new LinkedHashSet<>();
+		if (ResourceSet.class.isInstance(input)) {
+			final EList<Resource> resources = ResourceSet.class.cast(input).getResources();
+			resources.stream().map(Resource::getContents).forEach(rootObjects::addAll);
+		} else if (Resource.class.isInstance(input)) {
+			rootObjects.addAll(Resource.class.cast(input).getContents());
+		} else if (EObject.class.isInstance(input)) {
+			rootObjects.add(EObject.class.cast(input));
+		} else {
+			return;
+		}
+
+		// The super implementation builds the cache tree on initialization, but does not propagate validation results
+		// of children to their parents. This means, the own diagnostic for every EObject in the containment history is
+		// known but nodes do not know about the diagnostics of their children, yet. As a consequence, validation errors
+		// can only be shown where they occur.
+		// In order to show the errors at the parents, we walk down the containment hierarchy in a depth-first search
+		// approach and propagate the validation results upwards. On the way up, each node propagates its aggregated
+		// validation result which is the most severe diagnostic of itself and its children. With this we only need to
+		// propagate the results one time from bottom to the top.
+		rootObjects.forEach(this::depthFirstCacheUpdate);
+	}
+
+	/**
+	 * Recursively walks down the containment hierarchy of the given root object and puts the children's diagnostics
+	 * into the cache of root's cached tree node. Afterwards, the most severe diagnostic of root's subtree (including
+	 * root) is returned which allows caching it in root's parent.
+	 *
+	 * @param root The root object of the current depth first search
+	 * @return The most severe Diagnostic in the subtree of the root object
+	 */
+	private Diagnostic depthFirstCacheUpdate(EObject root) {
+		final CachedTreeNode<Diagnostic> treeNode = getNodes().get(root);
+		root.eContents().stream().forEach(c -> treeNode.putIntoCache(c, depthFirstCacheUpdate(c)));
+		return treeNode.getDisplayValue();
 	}
 
 	@Override
diff --git a/tests/org.eclipse.emfforms.editor.ecore.test/EcoreEditorPerformance_PTest.launch b/tests/org.eclipse.emfforms.editor.ecore.test/EcoreEditorPerformance_PTest.launch
index 4eacf92..4a66e3d 100644
--- a/tests/org.eclipse.emfforms.editor.ecore.test/EcoreEditorPerformance_PTest.launch
+++ b/tests/org.eclipse.emfforms.editor.ecore.test/EcoreEditorPerformance_PTest.launch
@@ -2,7 +2,7 @@
 <launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
 <booleanAttribute key="append.args" value="true"/>
 <booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticAdd" value="false"/>
 <booleanAttribute key="automaticValidate" value="false"/>
 <stringAttribute key="bootstrap" value=""/>
 <stringAttribute key="checked" value="[NONE]"/>
@@ -11,8 +11,7 @@
 <booleanAttribute key="clearwslog" value="false"/>
 <stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
 <booleanAttribute key="default" value="false"/>
-<stringAttribute key="deselected_workspace_plugins" value="org.eclipse.emf.ecp.common.test,org.eclipse.emf.ecp.core.test,org.eclipse.emf.ecp.diffmerge.test,org.eclipse.emf.ecp.ecore.editor.test,org.eclipse.emf.ecp.edit.swt.test,org.eclipse.emf.ecp.ide.editor.view.test,org.eclipse.emf.ecp.ide.util.test,org.eclipse.emf.ecp.ide.view.service.test,org.eclipse.emf.ecp.integrationtest,org.eclipse.emf.ecp.quickfix.test,org.eclipse.emf.ecp.test.model,org.eclipse.emf.ecp.test.model.edit,org.eclipse.emf.ecp.ui.validation.test,org.eclipse.emf.ecp.ui.view.editor.controls.test,org.eclipse.emf.ecp.ui.view.linewrapper.tests,org.eclipse.emf.ecp.ui.view.swt.test,org.eclipse.emf.ecp.ui.view.test,org.eclipse.emf.ecp.validation.diagnostician.test,org.eclipse.emf.ecp.validation.test,org.eclipse.emf.ecp.view.categorization.swt.test,org.eclipse.emf.ecp.view.compoundcontrol.swt.test,org.eclipse.emf.ecp.view.context.tests,org.eclipse.emf.ecp.view.control.multireference.tests,org.eclipse.emf.ecp.view.core.swt.tests,org.eclipse.emf.ecp.view.custom.ui.swt.test,org.eclipse.emf.ecp.view.dynamictree.model.test,org.eclipse.emf.ecp.view.edapt.test,org.eclipse.emf.ecp.view.edapt.util.test,org.eclipse.emf.ecp.view.group.ui.swt.test,org.eclipse.emf.ecp.view.horizontal.ui.swt.test,org.eclipse.emf.ecp.view.indexdmr.model.test,org.eclipse.emf.ecp.view.keyattributedmr.model.test,org.eclipse.emf.ecp.view.mappingdmr.model.test,org.eclipse.emf.ecp.view.model.common.test,org.eclipse.emf.ecp.view.model.edit.test,org.eclipse.emf.ecp.view.model.editor.testplugin,org.eclipse.emf.ecp.view.model.integrationtest,org.eclipse.emf.ecp.view.model.preview.common.test,org.eclipse.emf.ecp.view.model.provider.xmi.test,org.eclipse.emf.ecp.view.model.test,org.eclipse.emf.ecp.view.rule.test,org.eclipse.emf.ecp.view.rule.ui.swt.test,org.eclipse.emf.ecp.view.stack.ui.swt.test,org.eclipse.emf.ecp.view.table.model.test,org.eclipse.emf.ecp.view.table.test.common,org.eclipse.emf.ecp.view.table.ui.nebula.grid,org.eclipse.emf.ecp.view.table.ui.nebula.grid.test,org.eclipse.emf.ecp.view.table.ui.swt.test,org.eclipse.emf.ecp.view.table.validation.test,org.eclipse.emf.ecp.view.template.model.test,org.eclipse.emf.ecp.view.template.service.test,org.eclipse.emf.ecp.view.test.common,org.eclipse.emf.ecp.view.test.common.swt,org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test,org.eclipse.emf.ecp.view.treemasterdetail.validation.test,org.eclipse.emf.ecp.view.ui.editor.test,org.eclipse.emf.ecp.view.unset.test,org.eclipse.emf.ecp.view.validation.bean,org.eclipse.emf.ecp.view.validation.bean.default,org.eclipse.emf.ecp.view.validation.bean.test,org.eclipse.emf.ecp.view.validation.test,org.eclipse.emf.ecp.view.vertical.ui.swt.test,org.eclipse.emf.ecp.view.viewproxy.tests,org.eclipse.emf.rap.edit.ui.minimal,org.eclipse.emfforms.common.tests,org.eclipse.emfforms.common.validation.tests,org.eclipse.emfforms.core.bazaar.tests,org.eclipse.emfforms.core.services.databinding.featurepath.tests,org.eclipse.emfforms.core.services.databinding.index.tests,org.eclipse.emfforms.core.services.databinding.integrationtest,org.eclipse.emfforms.core.services.databinding.keyattribute.tests,org.eclipse.emfforms.core.services.databinding.mapping.tests,org.eclipse.emfforms.core.services.databinding.testmodel,org.eclipse.emfforms.core.services.datatemplate.test,org.eclipse.emfforms.core.services.domainexpander.default.tests,org.eclipse.emfforms.core.services.domainexpander.index.tests,org.eclipse.emfforms.core.services.domainexpander.keyattribute.tests,org.eclipse.emfforms.core.services.domainexpander.mapping.tests,org.eclipse.emfforms.core.services.emf.tests,org.eclipse.emfforms.core.services.legacy.tests,org.eclipse.emfforms.core.services.mappingprovider.table.test,org.eclipse.emfforms.core.services.structuralchange.keyattribute.tests,org.eclipse.emfforms.core.services.tests,org.eclipse.emfforms.datatemplate.tooling.tests,org.eclipse.emfforms.localization.tests,org.eclipse.emfforms.rulerepository.tooling.test,org.eclipse.emfforms.swt.common.test,org.eclipse.emfforms.swt.control.multiattribute.tests,org.eclipse.emfforms.swt.control.text.autocomplete.tests,org.eclipse.emfforms.swt.controlgrid.test,org.eclipse.emfforms.swt.core.di.extension.tests,org.eclipse.emfforms.swt.core.di.tests,org.eclipse.emfforms.swt.core.tests,org.eclipse.emfforms.swt.treemasterdetail.test,org.eclipse.emfforms.view.model.localization.tests"/>
-<booleanAttribute key="includeOptional" value="true"/>
+<booleanAttribute key="includeOptional" value="false"/>
 <stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
 <listEntry value="/org.eclipse.emfforms.editor.ecore.test/src/org/eclipse/emfforms/spi/editor/EcoreEditorPerformance_PTest.java"/>
@@ -34,8 +33,8 @@
 <stringAttribute key="pde.version" value="3.3"/>
 <stringAttribute key="product" value="org.eclipse.platform.ide"/>
 <booleanAttribute key="run_in_ui_thread" value="true"/>
-<stringAttribute key="selected_target_plugins" value="com.google.gson@default:default,com.google.guava@default:default,com.ibm.icu@default:default,com.jcraft.jsch@default:default,com.sun.el@default:default,javax.annotation@default:default,javax.el@default:default,javax.inject@default:default,javax.servlet.jsp@default:default,javax.servlet@default:default,javax.validation@default:default,lpg.runtime.java@default:default,org.antlr.runtime@default:default,org.apache.ant@default:default,org.apache.batik.css*1.7.0.v201011041433@default:default,org.apache.batik.css*1.8.0.v20170214-1941@default:default,org.apache.batik.dom@default:default,org.apache.batik.ext.awt@default:default,org.apache.batik.svggen@default:default,org.apache.batik.util*1.7.0.v201011041433@default:default,org.apache.batik.util*1.8.0.v20170214-1941@default:default,org.apache.batik.util.gui*1.7.0.v200903091627@default:default,org.apache.batik.util.gui*1.8.0.v20170214-1941@default:default,org.apache.batik.xml@default:default,org.apache.commons.codec@default:default,org.apache.commons.httpclient@default:default,org.apache.commons.jxpath@default:default,org.apache.commons.lang@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.apache.felix.scr@default:default,org.apache.jasper.glassfish@default:default,org.apache.log4j@default:default,org.apache.lucene.analyzers-common@default:default,org.apache.lucene.analyzers-smartcn@default:default,org.apache.lucene.core@default:default,org.apache.lucene.misc@default:default,org.apache.mina.core@default:default,org.apache.sshd.core@default:default,org.apiguardian@default:default,org.eclipse.ant.core@default:default,org.eclipse.ant.launching@default:default,org.eclipse.ant.ui@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding*1.5.0.v20150422-0725@default:default,org.eclipse.core.databinding*1.6.100.v20170515-1119@default:default,org.eclipse.core.databinding.beans*1.3.0.v20150422-0725@default:default,org.eclipse.core.databinding.beans*1.4.0.v20170210-0856@default:default,org.eclipse.core.databinding.observable*1.5.0.v20150422-0725@default:default,org.eclipse.core.databinding.observable*1.6.100.v20170515-1119@default:default,org.eclipse.core.databinding.property*1.5.0.v20150422-0725@default:default,org.eclipse.core.databinding.property*1.6.100.v20170515-1119@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.externaltools@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem.macosx@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.debug.core@default:default,org.eclipse.debug.ui@default:default,org.eclipse.draw2d.doc.isv@default:default,org.eclipse.draw2d@default:default,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.annotations@default:default,org.eclipse.e4.core.di.extensions.supplier@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.emf.xpath@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.dialogs@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt.cocoa@default:false,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.emf.ant@default:default,org.eclipse.emf.cheatsheets@default:default,org.eclipse.emf.codegen.ecore.ui@default:default,org.eclipse.emf.codegen.ecore@default:default,org.eclipse.emf.codegen.ui@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.doc@default:default,org.eclipse.emf.ecore.change.edit@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.transaction@default:default,org.eclipse.emf.emfstore.client.ui.rcp@default:false,org.eclipse.emf.emfstore.client.ui.transaction@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.example.installer@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.example.installer@default:default,org.eclipse.emf.exporter@default:default,org.eclipse.emf.importer.ecore@default:default,org.eclipse.emf.importer.java@default:default,org.eclipse.emf.importer.rose@default:default,org.eclipse.emf.importer@default:default,org.eclipse.emf.mapping.ecore.editor@default:default,org.eclipse.emf.mapping.ecore2ecore.editor@default:default,org.eclipse.emf.mapping.ecore2ecore@default:default,org.eclipse.emf.mapping.ecore2xml.ui@default:default,org.eclipse.emf.mapping.ecore2xml@default:default,org.eclipse.emf.mapping.ecore@default:default,org.eclipse.emf.mapping.ui@default:default,org.eclipse.emf.mapping@default:default,org.eclipse.emf.transaction.doc@default:default,org.eclipse.emf.transaction.examples@default:default,org.eclipse.emf.transaction.ui@default:default,org.eclipse.emf.transaction@default:default,org.eclipse.emf.validation.doc@default:default,org.eclipse.emf.validation.examples@default:default,org.eclipse.emf.validation.ui.ide@default:default,org.eclipse.emf.validation.ui@default:default,org.eclipse.emf.validation@default:default,org.eclipse.emf.workspace.doc@default:default,org.eclipse.emf.workspace.ui@default:default,org.eclipse.emf.workspace@default:default,org.eclipse.emf@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.bidi@default:default,org.eclipse.equinox.cm@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.console.jaas.fragment@default:false,org.eclipse.equinox.console.ssh@default:default,org.eclipse.equinox.console@default:default,org.eclipse.equinox.coordinator@default:default,org.eclipse.equinox.device@default:default,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.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.io@default:default,org.eclipse.equinox.ip@default:default,org.eclipse.equinox.jsp.jasper.registry@default:default,org.eclipse.equinox.jsp.jasper@default:default,org.eclipse.equinox.launcher.cocoa.macosx.x86_64@default:false,org.eclipse.equinox.launcher@default:default,org.eclipse.equinox.metatype@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.console@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.directorywatcher@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.extensionlocation@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.reconciler.dropins@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.touchpoint.natives@default:default,org.eclipse.equinox.p2.ui.importexport@default:default,org.eclipse.equinox.p2.ui.sdk.scheduler@default:default,org.eclipse.equinox.p2.ui.sdk@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.equinox.p2.updatechecker@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.region@default:false,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.macosx@default:false,org.eclipse.equinox.security.ui@default:default,org.eclipse.equinox.security@default:default,org.eclipse.equinox.servletbridge@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.equinox.supplement@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.transforms.xslt@default:default,org.eclipse.equinox.useradmin@default:default,org.eclipse.equinox.util@default:default,org.eclipse.equinox.weaving.caching.j9@default:default,org.eclipse.equinox.weaving.caching@default:default,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.equinox.wireadmin@default:default,org.eclipse.gef.doc.isv@default:default,org.eclipse.gef.examples.ui.pde@default:default,org.eclipse.gef@default:default,org.eclipse.graphiti.export.batik@default:default,org.eclipse.graphiti.mm@default:default,org.eclipse.graphiti.pattern@default:default,org.eclipse.graphiti.ui@default:default,org.eclipse.graphiti@default:default,org.eclipse.help.base@default:default,org.eclipse.help.ui@default:default,org.eclipse.help.webapp@default:default,org.eclipse.help@default:default,org.eclipse.jdt.annotation*1.1.100.v20160418-1457@default:default,org.eclipse.jdt.annotation*2.1.100.v20170511-1408@default:default,org.eclipse.jdt.apt.core@default:default,org.eclipse.jdt.apt.pluggable.core@default:default,org.eclipse.jdt.apt.ui@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.doc.user@default:default,org.eclipse.jdt.junit.core@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.jdt.junit4.runtime@default:default,org.eclipse.jdt.junit5.runtime@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.jdt.launching.macosx@default:default,org.eclipse.jdt.launching.ui.macosx@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.jdt.ui@default:default,org.eclipse.jdt@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.jsch.core@default:default,org.eclipse.jsch.ui@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.net4j.db.doc@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.debug@default:default,org.eclipse.net4j.doc@default:default,org.eclipse.net4j.examples.installer@default:default,org.eclipse.net4j.http.common@default:default,org.eclipse.net4j.http.server@default:default,org.eclipse.net4j.http@default:default,org.eclipse.net4j.jvm@default:default,org.eclipse.net4j.sdk@default:default,org.eclipse.net4j.tcp@default:default,org.eclipse.net4j.ui.shared@default:default,org.eclipse.net4j.ui@default:default,org.eclipse.net4j.util.doc@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.orbit.mongodb@default:default,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.pde.api.tools.annotations@default:default,org.eclipse.pde.api.tools.ui@default:default,org.eclipse.pde.api.tools@default:default,org.eclipse.pde.build@default:default,org.eclipse.pde.core@default:default,org.eclipse.pde.doc.user@default:default,org.eclipse.pde.ds.annotations@default:default,org.eclipse.pde.ds.core@default:default,org.eclipse.pde.ds.lib@default:default,org.eclipse.pde.ds.ui@default:default,org.eclipse.pde.ds1_2.lib@default:default,org.eclipse.pde.genericeditor.extension@default:default,org.eclipse.pde.junit.runtime@default:default,org.eclipse.pde.launching@default:default,org.eclipse.pde.runtime@default:default,org.eclipse.pde.ua.core@default:default,org.eclipse.pde.ua.ui@default:default,org.eclipse.pde.ui.templates@default:default,org.eclipse.pde.ui@default:default,org.eclipse.pde@default:default,org.eclipse.platform.doc.user@default:default,org.eclipse.platform@default:default,org.eclipse.rcp@default:default,org.eclipse.search@default:default,org.eclipse.swt.cocoa.macosx.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.swtbot.ant.junit@default:false,org.eclipse.swtbot.e4.finder@default:default,org.eclipse.swtbot.eclipse.core@default:default,org.eclipse.swtbot.eclipse.finder@default:default,org.eclipse.swtbot.eclipse.gef.finder@default:default,org.eclipse.swtbot.eclipse.junit.headless@default:default,org.eclipse.swtbot.forms.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.genericeditor.diff.extension@default:default,org.eclipse.team.ui@default:default,org.eclipse.text@default:default,org.eclipse.tools.layout.spy@default:default,org.eclipse.ui.browser@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ui.cocoa@default:false,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.genericeditor@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.intro.quicklinks@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.ui.intro@default:default,org.eclipse.ui.monitoring@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.net@default:default,org.eclipse.ui.themes@default:default,org.eclipse.ui.trace@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.update.configurator@3:true,org.h2@default:default,org.hamcrest.core@default:default,org.hamcrest.library@default:default,org.junit.jupiter.api@default:default,org.junit.jupiter.engine@default:default,org.junit.jupiter.migrationsupport@default:default,org.junit.jupiter.params@default:default,org.junit.platform.commons@default:default,org.junit.platform.engine@default:default,org.junit.platform.launcher@default:default,org.junit.platform.runner@default:default,org.junit.platform.suite.api@default:default,org.junit.vintage.engine@default:default,org.junit@default:default,org.mockito.mockito-core-hamcrest-modified@default:default,org.objectweb.asm.tree@default:default,org.objectweb.asm@default:default,org.objenesis@default:default,org.opentest4j@default:default,org.sat4j.core@default:default,org.sat4j.pb@default:default,org.slf4j.api@default:default,org.tukaani.xz@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil*1.0.0.v200806040011@default:default,org.w3c.dom.smil*1.0.1.v200903091627@default:default,org.w3c.dom.svg@default:default"/>
-<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.ecp.application.e3@default:default,org.eclipse.emf.ecp.application.e4@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.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.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.examplemodel.ui@default:default,org.eclipse.emf.ecp.explorereditorbridge@default:default,org.eclipse.emf.ecp.ide.editor.view.templatebridge@default:default,org.eclipse.emf.ecp.ide.editor.view@default:default,org.eclipse.emf.ecp.ide.editor.viewmodel@default:default,org.eclipse.emf.ecp.ide.migration@default:default,org.eclipse.emf.ecp.ide.util@default:default,org.eclipse.emf.ecp.ide.view.service@default:default,org.eclipse.emf.ecp.makeithappen.application.sample.e3@default:default,org.eclipse.emf.ecp.makeithappen.application.sample.e4@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.makeithappen.view.email.renderer@default:default,org.eclipse.emf.ecp.makeithappen.view.group.renderer@default:default,org.eclipse.emf.ecp.makeithappen.wizards@default:default,org.eclipse.emf.ecp.products@default:default,org.eclipse.emf.ecp.quickfix.ui.e4@default:default,org.eclipse.emf.ecp.quickfix@default:default,org.eclipse.emf.ecp.test.common@default:default,org.eclipse.emf.ecp.ui.e3@default:default,org.eclipse.emf.ecp.ui.e4@default:default,org.eclipse.emf.ecp.ui.rcp@default:default,org.eclipse.emf.ecp.ui.transaction@default:default,org.eclipse.emf.ecp.ui.validation.e4@default:default,org.eclipse.emf.ecp.ui.validation@default:default,org.eclipse.emf.ecp.ui.view.editor.controls@default:default,org.eclipse.emf.ecp.ui.view.linewrapper@default:default,org.eclipse.emf.ecp.ui.view.swt.di@default:default,org.eclipse.emf.ecp.ui.view.swt@default:default,org.eclipse.emf.ecp.ui.view@default:default,org.eclipse.emf.ecp.ui@default:default,org.eclipse.emf.ecp.validation.connector@default:default,org.eclipse.emf.ecp.validation.diagnostician@default:default,org.eclipse.emf.ecp.validation@default:default,org.eclipse.emf.ecp.validationvieweditorbridge@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.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.compoundcontrol.tooling@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.di@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@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.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.swt.collapsable@default:default,org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup@default:default,org.eclipse.emf.ecp.view.group.swt.embedded@default:default,org.eclipse.emf.ecp.view.group.ui.swt@default:default,org.eclipse.emf.ecp.view.groupedgrid.model.edit@default:default,org.eclipse.emf.ecp.view.groupedgrid.model@default:default,org.eclipse.emf.ecp.view.groupedgrid.ui.swt@default:default,org.eclipse.emf.ecp.view.horizontal.model.edit@default:default,org.eclipse.emf.ecp.view.horizontal.model@default:default,org.eclipse.emf.ecp.view.horizontal.ui.swt@default:default,org.eclipse.emf.ecp.view.indexdmr.model.edit@default:default,org.eclipse.emf.ecp.view.indexdmr.model@default:default,org.eclipse.emf.ecp.view.indexdmr.tooling@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.keyattributedmr.tooling@default:default,org.eclipse.emf.ecp.view.label.model.edit@default:default,org.eclipse.emf.ecp.view.label.model@default:default,org.eclipse.emf.ecp.view.label.ui.swt@default:default,org.eclipse.emf.ecp.view.mappingdmr.model.edit@default:default,org.eclipse.emf.ecp.view.mappingdmr.model@default:default,org.eclipse.emf.ecp.view.mappingdmr.tooling@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.edapt@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.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@default:default,org.eclipse.emf.ecp.view.stack.viewmodel@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.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.rcp@default:default,org.eclipse.emf.ecp.view.table.ui.swt.persistedstate@default:default,org.eclipse.emf.ecp.view.table.ui.swt@default:default,org.eclipse.emf.ecp.view.table.validation@default:default,org.eclipse.emf.ecp.view.template.annotation.model.edit@default:default,org.eclipse.emf.ecp.view.template.annotation.model@default:default,org.eclipse.emf.ecp.view.template.model.edit@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.template.service@default:default,org.eclipse.emf.ecp.view.template.tooling@default:default,org.eclipse.emf.ecp.view.treemasterdetail.model.edit@default:default,org.eclipse.emf.ecp.view.treemasterdetail.model@default:default,org.eclipse.emf.ecp.view.treemasterdetail.ui.swt@default:default,org.eclipse.emf.ecp.view.treemasterdetail.validation@default:default,org.eclipse.emf.ecp.view.unset@default:default,org.eclipse.emf.ecp.view.util.swt@default:default,org.eclipse.emf.ecp.view.validation@default:default,org.eclipse.emf.ecp.view.vertical.model.edit@default:default,org.eclipse.emf.ecp.view.vertical.model@default:default,org.eclipse.emf.ecp.view.vertical.ui.swt@default:default,org.eclipse.emf.ecp.view.viewproxy.model.edit@default:default,org.eclipse.emf.ecp.view.viewproxy.model@default:default,org.eclipse.emf.ecp.workspace.core@default:default,org.eclipse.emfforms.common.prevalidation@default:default,org.eclipse.emfforms.common.validation@default:default,org.eclipse.emfforms.common@default:default,org.eclipse.emfforms.core.bazaar@default:default,org.eclipse.emfforms.core.services.databinding.featurepath@default:default,org.eclipse.emfforms.core.services.databinding.index@default:default,org.eclipse.emfforms.core.services.databinding.keyattribute@default:default,org.eclipse.emfforms.core.services.databinding.mapping@default:default,org.eclipse.emfforms.core.services.datatemplate@default:default,org.eclipse.emfforms.core.services.domainexpander.default@default:default,org.eclipse.emfforms.core.services.domainexpander.index@default:default,org.eclipse.emfforms.core.services.domainexpander.keyattribute@default:default,org.eclipse.emfforms.core.services.domainexpander.mapping@default:default,org.eclipse.emfforms.core.services.domainexpander.table@default:default,org.eclipse.emfforms.core.services.editsupport@default:default,org.eclipse.emfforms.core.services.emf@default:default,org.eclipse.emfforms.core.services.emfspecificservice@default:default,org.eclipse.emfforms.core.services.legacy@default:default,org.eclipse.emfforms.core.services.locale.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.table@default:default,org.eclipse.emfforms.core.services.structuralchange.default@default:default,org.eclipse.emfforms.core.services.structuralchange.index@default:default,org.eclipse.emfforms.core.services.structuralchange.keyattribute@default:default,org.eclipse.emfforms.core.services.structuralchange.mapping@default:default,org.eclipse.emfforms.core.services.structuralchange.table@default:default,org.eclipse.emfforms.core.services.structuralchange@default:default,org.eclipse.emfforms.core.services@default:default,org.eclipse.emfforms.datatemplate.model.edit@default:default,org.eclipse.emfforms.datatemplate.model@default:default,org.eclipse.emfforms.datatemplate.tooling@default:default,org.eclipse.emfforms.editor.ecore.test@default:false,org.eclipse.emfforms.editor.ecore@default:default,org.eclipse.emfforms.editor.genmodel.util@default:default,org.eclipse.emfforms.editor.genmodel@default:default,org.eclipse.emfforms.editor.viewmodel@default:default,org.eclipse.emfforms.editor@default:default,org.eclipse.emfforms.localization@default:default,org.eclipse.emfforms.rulerepository.model.edit@default:default,org.eclipse.emfforms.rulerepository.model@default:default,org.eclipse.emfforms.rulerepository.tooling@default:default,org.eclipse.emfforms.setup.base@default:default,org.eclipse.emfforms.swt.control.multiattribute@default:default,org.eclipse.emfforms.swt.control.text.autocomplete@default:default,org.eclipse.emfforms.swt.control.text.richtext@default:default,org.eclipse.emfforms.swt.controlgrid@default:default,org.eclipse.emfforms.swt.core.di.extension@default:default,org.eclipse.emfforms.swt.core.di@default:default,org.eclipse.emfforms.swt.core.plugin@default:default,org.eclipse.emfforms.swt.core@default:default,org.eclipse.emfforms.swt.table@default:default,org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default@default:default,org.eclipse.emfforms.swt.treemasterdetail@default:default,org.eclipse.emfforms.view.annotation.model.edit@default:default,org.eclipse.emfforms.view.annotation.model@default:default,org.eclipse.emfforms.view.controlgrid.model.edit@default:default,org.eclipse.emfforms.view.controlgrid.model@default:default,org.eclipse.emfforms.view.model.localization@default:default"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.annotation@default:default,javax.inject@default:default,org.apache.batik.constants@default:default,org.apache.batik.css*1.10.0.v20180703-1553@default:default,org.apache.batik.i18n@default:default,org.apache.batik.util*1.10.0.v20180703-1553@default:default,org.apache.commons.codec@default:default,org.apache.commons.io@default:default,org.apache.commons.jxpath@default:default,org.apache.commons.logging*1.2.0.v20180409-1502@default:default,org.apache.felix.scr@1:true,org.apache.lucene.analyzers-common@default:default,org.apache.lucene.analyzers-smartcn@default:default,org.apache.lucene.core@default:default,org.apache.xmlgraphics@default:default,org.eclipse.ant.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding*1.7.0.v20180827-2028@default:default,org.eclipse.core.databinding.observable*1.6.300.v20180827-2028@default:default,org.eclipse.core.databinding.property*1.6.300.v20180827-2028@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem.linux.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.linux.x86_64@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.annotations@default:default,org.eclipse.e4.core.di.extensions.supplier@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.emf.xpath@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.swt.gtk@default:false,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.emfstore.client@default:default,org.eclipse.emf.emfstore.common.model@default:default,org.eclipse.emf.emfstore.common@default:default,org.eclipse.emf.emfstore.examplemodel.edit@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.emf.emfstore.migration@default:default,org.eclipse.emf.emfstore.server.model@default:default,org.eclipse.emf.emfstore.server@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.bidi@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.region@default:false,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.linux.x86_64@default:false,org.eclipse.equinox.security@default:default,org.eclipse.equinox.supplement@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.help.base@default:default,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.net4j.util@default:default,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.platform@default:default,org.eclipse.swt.gtk.linux.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.team.core@default:default,org.eclipse.team.ui@default:default,org.eclipse.text@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.intro@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.trace@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.urischeme@default:default,org.hamcrest.core*1.3.0.v20180420-1519@default:default,org.hamcrest.library@default:default,org.junit@default:default,org.mockito.mockito-core-hamcrest-modified@default:default,org.objenesis@default:default,org.tukaani.xz@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil*1.0.1.v200903091627@default:default,org.w3c.dom.svg@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.ecp.common.ui@default:default,org.eclipse.emf.ecp.common@default:default,org.eclipse.emf.ecp.core@default:default,org.eclipse.emf.ecp.edit.swt@default:default,org.eclipse.emf.ecp.edit@default:default,org.eclipse.emf.ecp.emfstore.core@default:default,org.eclipse.emf.ecp.makeithappen.model@default:default,org.eclipse.emf.ecp.test.common@default:default,org.eclipse.emf.ecp.test.model@default:default,org.eclipse.emf.ecp.ui.view.swt.di@default:default,org.eclipse.emf.ecp.ui.view.swt@default:default,org.eclipse.emf.ecp.ui.view.test@default:default,org.eclipse.emf.ecp.ui.view@default:default,org.eclipse.emf.ecp.ui@default:default,org.eclipse.emf.ecp.validation@default:default,org.eclipse.emf.ecp.view.categorization.model.edit@default:default,org.eclipse.emf.ecp.view.categorization.model@default:default,org.eclipse.emf.ecp.view.categorization.swt@default:default,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.control.multireference@default:default,org.eclipse.emf.ecp.view.core.swt@default:default,org.eclipse.emf.ecp.view.group.model@default:default,org.eclipse.emf.ecp.view.group.ui.swt@default:default,org.eclipse.emf.ecp.view.horizontal.model@default:default,org.eclipse.emf.ecp.view.horizontal.ui.swt@default:default,org.eclipse.emf.ecp.view.indexdmr.model@default:default,org.eclipse.emf.ecp.view.label.model@default:default,org.eclipse.emf.ecp.view.mappingdmr.model@default:default,org.eclipse.emf.ecp.view.migrator@default:default,org.eclipse.emf.ecp.view.model.common.di@default:default,org.eclipse.emf.ecp.view.model.common@default:default,org.eclipse.emf.ecp.view.model.edit@default:default,org.eclipse.emf.ecp.view.model.provider.generator@default:default,org.eclipse.emf.ecp.view.model.provider.xmi@default:default,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emf.ecp.view.rule.model@default:default,org.eclipse.emf.ecp.view.swt.layout@default:default,org.eclipse.emf.ecp.view.table.columnservice@default:default,org.eclipse.emf.ecp.view.table.model.nl_de@default:false,org.eclipse.emf.ecp.view.table.model@default:default,org.eclipse.emf.ecp.view.table.test.common@default:default,org.eclipse.emf.ecp.view.table.ui.swt@default:default,org.eclipse.emf.ecp.view.table.validation@default:default,org.eclipse.emf.ecp.view.template.annotation.model@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.template.service@default:default,org.eclipse.emf.ecp.view.test.common.swt@default:default,org.eclipse.emf.ecp.view.test.common@default:default,org.eclipse.emf.ecp.view.treemasterdetail.model@default:default,org.eclipse.emf.ecp.view.treemasterdetail.ui.swt@default:default,org.eclipse.emf.ecp.view.treemasterdetail.validation@default:default,org.eclipse.emf.ecp.view.util.swt@default:default,org.eclipse.emf.ecp.view.validation@default:default,org.eclipse.emf.ecp.view.vertical.model@default:default,org.eclipse.emf.ecp.view.vertical.ui.swt@default:default,org.eclipse.emfforms.common.prevalidation@default:default,org.eclipse.emfforms.common.validation@default:default,org.eclipse.emfforms.common@default:default,org.eclipse.emfforms.core.bazaar@default:default,org.eclipse.emfforms.core.services.databinding.featurepath@default:default,org.eclipse.emfforms.core.services.databinding.index@default:default,org.eclipse.emfforms.core.services.databinding.mapping@default:default,org.eclipse.emfforms.core.services.domainexpander.default@default:default,org.eclipse.emfforms.core.services.domainexpander.index@default:default,org.eclipse.emfforms.core.services.domainexpander.mapping@default:default,org.eclipse.emfforms.core.services.domainexpander.table@default:default,org.eclipse.emfforms.core.services.editsupport@default:default,org.eclipse.emfforms.core.services.emf@default:default,org.eclipse.emfforms.core.services.emfspecificservice@default:default,org.eclipse.emfforms.core.services.legacy@default:default,org.eclipse.emfforms.core.services.locale.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.table.panel@default:default,org.eclipse.emfforms.core.services.mappingprovider.table@default:default,org.eclipse.emfforms.core.services.segments.index@default:default,org.eclipse.emfforms.core.services.segments.mapping@default:default,org.eclipse.emfforms.core.services.segments@default:default,org.eclipse.emfforms.core.services.structuralchange.default@default:default,org.eclipse.emfforms.core.services.structuralchange.index@default:default,org.eclipse.emfforms.core.services.structuralchange.mapping@default:default,org.eclipse.emfforms.core.services.structuralchange.table@default:default,org.eclipse.emfforms.core.services.structuralchange@default:default,org.eclipse.emfforms.core.services@default:default,org.eclipse.emfforms.editor.ecore.test@default:false,org.eclipse.emfforms.editor.ecore@default:default,org.eclipse.emfforms.editor@default:default,org.eclipse.emfforms.localization@default:default,org.eclipse.emfforms.setup.base@default:default,org.eclipse.emfforms.swt.common.test@default:default,org.eclipse.emfforms.swt.control.multiattribute@default:default,org.eclipse.emfforms.swt.core.di.extension@default:default,org.eclipse.emfforms.swt.core.di.tests@default:default,org.eclipse.emfforms.swt.core.di@default:default,org.eclipse.emfforms.swt.core.plugin@default:default,org.eclipse.emfforms.swt.core@default:default,org.eclipse.emfforms.swt.table@default:default,org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default@default:default,org.eclipse.emfforms.swt.treemasterdetail@default:default,org.eclipse.emfforms.view.annotation.model@default:default,org.eclipse.emfforms.view.controlgrid.model@default:default,org.eclipse.emfforms.view.indexsegment.model@default:default,org.eclipse.emfforms.view.mappingsegment.model@default:default,org.eclipse.emfforms.view.model.localization@default:default,org.eclipse.emfforms.view.multisegment.model@default:default"/>
 <booleanAttribute key="show_selected_only" value="false"/>
 <booleanAttribute key="tracing" value="false"/>
 <booleanAttribute key="useCustomFeatures" value="false"/>