Initial draft for Rap Client Scripting support
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/plugin.xml b/bundles/org.eclipse.emf.ecp.edit.swt/plugin.xml
index 8c4e1a0..5f3f49c 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/plugin.xml
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/plugin.xml
@@ -3,6 +3,7 @@
<plugin>
<extension-point id="cellEditor" name="%extension-point.cell-editor" schema="schema/cellEditor.exsd"/>
<extension-point id="dialogWrapper" name="%extension-point.dialog-wrapper" schema="schema/dialogWrapper.exsd"/>
+ <extension-point id="controlListener" name="%extension-point.control-listener" schema="schema/controlListener.exsd"/>
<extension
point="org.eclipse.emf.ecp.edit.controls">
<control
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/schema/controlListener.exsd b/bundles/org.eclipse.emf.ecp.edit.swt/schema/controlListener.exsd
new file mode 100644
index 0000000..1e8a578
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/schema/controlListener.exsd
@@ -0,0 +1,112 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.emf.ecp.edit.swt" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.eclipse.emf.ecp.edit.swt" id="controlListener" name="Control Listener"/>
+ </appinfo>
+ <documentation>
+ <b>This extension point is experimental and is likely to change in the future releases as the activity support evolves. There is no global mechanism that will add listeners to controls, but the control is repsonsible for adding listeners. There is no guarantee that a control will check this extension point.</b>
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appinfo>
+ <meta.element />
+ </appinfo>
+ </annotation>
+ <complexType>
+ <sequence minOccurs="0" maxOccurs="unbounded">
+ <element ref="ControlListener"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="ControlListener">
+ <complexType>
+ <attribute name="control" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.emf.ecp.edit.internal.swt.util.SWTControl:"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="listener" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn=":org.eclipse.swt.widgets.Listener"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="since"/>
+ </appinfo>
+ <documentation>
+ [Enter the first release in which this extension point appears.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ [Enter extension point usage example here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiinfo"/>
+ </appinfo>
+ <documentation>
+ [Enter API information here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="implementation"/>
+ </appinfo>
+ <documentation>
+ [Enter information about supplied implementation of this extension point.]
+ </documentation>
+ </annotation>
+
+
+</schema>
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/NumericalControl.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/NumericalControl.java
index 016243b..a7a0eac 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/NumericalControl.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/NumericalControl.java
@@ -29,6 +29,7 @@
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Text;
/**
@@ -75,6 +76,15 @@
protected void customizeText(Text text) {
super.customizeText(text);
text.setMessage(getFormatText());
+ addRAPClientScripting(text);
+ }
+
+ // TODO move to abstract text control
+ private void addRAPClientScripting(Text text) {
+ final Listener verifyListener = ControlListenerHelper.INSTANCE.getVerifyListenerForControl(this.getClass());
+ if (verifyListener != null) {
+ text.addListener(SWT.Modify, verifyListener);
+ }
}
/*
@@ -136,7 +146,7 @@
@Override
public Object convertValue(Object value) {
if (value == null) {
- return "";
+ return ""; //$NON-NLS-1$
}
final DecimalFormat format = NumericalHelper.setupFormat(getLocale(),
getInstanceClass());
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/util/ControlListenerHelper.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/util/ControlListenerHelper.java
new file mode 100644
index 0000000..969892e
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/util/ControlListenerHelper.java
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * jfaltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.edit.internal.swt.util;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.ecp.edit.internal.swt.Activator;
+import org.eclipse.swt.widgets.Listener;
+import org.osgi.framework.Bundle;
+
+/**
+ * Helper class for getting a verify listener for RAP client scripting. This class caches instances of a created
+ * listeners since they should be reused for every applicable control.
+ *
+ * @author jfaltermeier
+ *
+ */
+public final class ControlListenerHelper {
+
+ /**
+ * The singleton instance.
+ */
+ public static final ControlListenerHelper INSTANCE = new ControlListenerHelper();
+
+ private final Map<Class<? extends SWTControl>, Listener> controlToListenerMap;
+
+ private ControlListenerHelper() {
+ controlToListenerMap = new LinkedHashMap<Class<? extends SWTControl>, Listener>();
+ getElementsFromExtensionPoint();
+ }
+
+ private void getElementsFromExtensionPoint() {
+ final IConfigurationElement[] controls = Platform.getExtensionRegistry().getConfigurationElementsFor(
+ "org.eclipse.emf.ecp.edit.swt.controlListener"); //$NON-NLS-1$
+ for (final IConfigurationElement e : controls) {
+ try {
+ final String className = e.getAttribute("control"); //$NON-NLS-1$
+ final Class<? extends SWTControl> controlClass = loadClass(e.getContributor().getName(), className);
+ final Listener verifyListener = (Listener) e.createExecutableExtension("listener"); //$NON-NLS-1$
+ controlToListenerMap.put(controlClass, verifyListener);
+ } catch (final ClassNotFoundException e1) {
+ Activator.logException(e1);
+ } catch (final CoreException e1) {
+ Activator.logException(e1);
+ }
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ private static <T> Class<T> loadClass(String bundleName, String className) throws ClassNotFoundException {
+ final Bundle bundle = Platform.getBundle(bundleName);
+ if (bundle == null) {
+ throw new ClassNotFoundException(className + UtilMessages.CellEditorFactory_CannotBeLoadedBecauseBundle
+ + bundleName
+ + UtilMessages.CellEditorFactory_CannotBeResolved);
+ }
+ return (Class<T>) bundle.loadClass(className);
+ }
+
+ /**
+ * Returns the registered listener for the class.
+ *
+ * @param controlClass the class
+ * @return the registered listener or <code>null</code> if none available
+ */
+ public Listener getVerifyListenerForControl(Class<? extends SWTControl> controlClass) {
+ return controlToListenerMap.get(controlClass);
+ }
+}
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.emfstore.ui/META-INF/MANIFEST.MF
index 9922fe6..54f0b40 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.emfstore.ui/META-INF/MANIFEST.MF
@@ -12,8 +12,9 @@
org.eclipse.emf.emfstore.client.ui;bundle-version="[1.0.0,2.0.0)",
org.eclipse.net4j.util;bundle-version="[3.0.0,4.0.0)",
org.eclipse.emf.ecp.common;bundle-version="[1.1.0,2.0.0)",
- org.eclipse.rap.rwt.supplemental.filedialog;bundle-version="2.0.0";resolution:=optional,
- org.eclipse.swt;bundle-version="[3.1.0,4.0.0)";resolution:=optional
+ org.eclipse.rap.rwt.supplemental.filedialog;bundle-version="[2.0.0,3.0.0)";resolution:=optional,
+ org.eclipse.swt;bundle-version="[3.1.0,4.0.0)";resolution:=optional,
+ org.eclipse.rap.rwt;bundle-version="[2.2.0,3.0.0)";resolution:=optional
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Export-Package: org.eclipse.emf.ecp.emfstore.internal.ui;version="1.1.0";x-internal:=true,
diff --git a/bundles/org.eclipse.emf.ecp.rap.util/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.rap.util/META-INF/MANIFEST.MF
index a244959..d809f7c 100644
--- a/bundles/org.eclipse.emf.ecp.rap.util/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.rap.util/META-INF/MANIFEST.MF
@@ -5,10 +5,12 @@
Bundle-Version: 1.1.1.qualifier
Bundle-Vendor: Eclipse Modeling Project
Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: org.eclipse.emf.ecp.edit.swt;bundle-version="[1.1.1,2.0.0)"
+Require-Bundle: org.eclipse.emf.ecp.edit.swt;bundle-version="[1.1.1,2.0.0)",
+ org.eclipse.rap.rwt;bundle-version="[2.2.0,3.0.0)"
Import-Package: org.eclipse.jface.dialogs;version="0.0.0",
org.eclipse.jface.window;version="0.0.0",
org.eclipse.swt.events;version="0.0.0",
org.eclipse.swt.widgets;version="0.0.0"
Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emf.ecp.rap.spi.util;version="1.1.1"
+Export-Package: org.eclipse.emf.ecp.rap.spi.util;version="1.1.1",
+ org.eclipse.emf.ecp.rap.util.internal.clientscripting;version="1.1.1";x-internal:=true
diff --git a/bundles/org.eclipse.emf.ecp.rap.util/plugin.xml b/bundles/org.eclipse.emf.ecp.rap.util/plugin.xml
index e1492f5..7021413 100644
--- a/bundles/org.eclipse.emf.ecp.rap.util/plugin.xml
+++ b/bundles/org.eclipse.emf.ecp.rap.util/plugin.xml
@@ -7,5 +7,12 @@
class="org.eclipse.emf.ecp.rap.spi.util.RAPWrapper">
</dialogWrapper>
</extension>
+ <extension
+ point="org.eclipse.emf.ecp.edit.swt.controlListener">
+ <VerifyListener
+ control="org.eclipse.emf.ecp.edit.internal.swt.controls.NumericalControl"
+ listener="org.eclipse.emf.ecp.rap.util.internal.clientscripting.NumericalListener">
+ </VerifyListener>
+ </extension>
</plugin>
diff --git a/bundles/org.eclipse.emf.ecp.rap.util/script/numerical.js b/bundles/org.eclipse.emf.ecp.rap.util/script/numerical.js
new file mode 100644
index 0000000..9a18592
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.rap.util/script/numerical.js
@@ -0,0 +1,13 @@
+var handleEvent = function( event ) {
+
+ var regexp = /^[0-9]*$/;
+ var text = event.widget.getText();
+ if( text.match( regexp ) === null ) {
+ event.widget.setBackground( [ 255, 0, 0 ] );
+ event.widget.setToolTipText( "The Number you have entered is invalid!" );
+ } else {
+ event.widget.setBackground( null );
+ event.widget.setToolTipText( null );
+ }
+
+};
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.rap.util/src/org/eclipse/emf/ecp/rap/util/internal/clientscripting/Messages.java b/bundles/org.eclipse.emf.ecp.rap.util/src/org/eclipse/emf/ecp/rap/util/internal/clientscripting/Messages.java
new file mode 100644
index 0000000..ecbb2c9
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.rap.util/src/org/eclipse/emf/ecp/rap/util/internal/clientscripting/Messages.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * jfaltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.rap.util.internal.clientscripting;
+
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+/**
+ * @author jfaltermeier
+ *
+ */
+public final class Messages {
+ private static final String BUNDLE_NAME = "org.eclipse.emf.ecp.rap.util.internal.clientscripting.messages"; //$NON-NLS-1$
+
+ private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
+
+ private Messages() {
+ }
+
+ public static String getString(String key) {
+ try {
+ return RESOURCE_BUNDLE.getString(key);
+ } catch (final MissingResourceException e) {
+ return '!' + key + '!';
+ }
+ }
+}
diff --git a/bundles/org.eclipse.emf.ecp.rap.util/src/org/eclipse/emf/ecp/rap/util/internal/clientscripting/NumericalListener.java b/bundles/org.eclipse.emf.ecp.rap.util/src/org/eclipse/emf/ecp/rap/util/internal/clientscripting/NumericalListener.java
new file mode 100644
index 0000000..ec6ea9f
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.rap.util/src/org/eclipse/emf/ecp/rap/util/internal/clientscripting/NumericalListener.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * jfaltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.rap.util.internal.clientscripting;
+
+import org.eclipse.rap.rwt.scripting.ClientListener;
+
+/**
+ * @author jfaltermeier
+ *
+ */
+public class NumericalListener extends ClientListener {
+
+ private static final long serialVersionUID = -8673834381120467715L;
+
+ /**
+ * Constructor.
+ */
+ public NumericalListener() {
+ super(ScriptUtil.getJavaScriptStringFromResource("numerical.js")); //$NON-NLS-1$
+ }
+}
diff --git a/bundles/org.eclipse.emf.ecp.rap.util/src/org/eclipse/emf/ecp/rap/util/internal/clientscripting/ScriptUtil.java b/bundles/org.eclipse.emf.ecp.rap.util/src/org/eclipse/emf/ecp/rap/util/internal/clientscripting/ScriptUtil.java
new file mode 100644
index 0000000..f274f57
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.rap.util/src/org/eclipse/emf/ecp/rap/util/internal/clientscripting/ScriptUtil.java
@@ -0,0 +1,73 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * jfaltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.rap.util.internal.clientscripting;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+/**
+ * Helper class for resolving java script snippets from a resource.
+ *
+ * @author jfaltermeier
+ *
+ */
+public final class ScriptUtil {
+
+ private ScriptUtil() {
+ // util class
+ }
+
+ /**
+ * Returns the java script string for the given resource name.
+ *
+ * @param resource the name of the resource which containts the js snippet.
+ * @return the java script snippet
+ */
+ public static String getJavaScriptStringFromResource(String resource) {
+ InputStream inputStream;
+ try {
+ final URL url = new URL("platform:/plugin/org.eclipse.emf.ecp.rap.util/script/" + resource); //$NON-NLS-1$
+ inputStream = url.openConnection().getInputStream();
+ } catch (final MalformedURLException ex1) {
+ return ""; //$NON-NLS-1$
+ } catch (final IOException ex1) {
+ return ""; //$NON-NLS-1$
+ }
+
+ return readStringFromStream(inputStream);
+ }
+
+ private static String readStringFromStream(InputStream inputStream) {
+ String result = ""; //$NON-NLS-1$
+ try {
+ final BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
+
+ String line = reader.readLine();
+ while (line != null) {
+ result = result.concat(line + '\n');
+ line = reader.readLine();
+ }
+ } catch (final IOException ex) {
+ result = ""; //$NON-NLS-1$
+ } finally {
+ try {
+ inputStream.close();
+ } catch (final IOException ex) {
+ }
+ }
+ return result;
+ }
+}
diff --git a/bundles/org.eclipse.emf.ecp.rap.util/src/org/eclipse/emf/ecp/rap/util/internal/clientscripting/messages.properties b/bundles/org.eclipse.emf.ecp.rap.util/src/org/eclipse/emf/ecp/rap/util/internal/clientscripting/messages.properties
new file mode 100644
index 0000000..0eff100
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.rap.util/src/org/eclipse/emf/ecp/rap/util/internal/clientscripting/messages.properties
@@ -0,0 +1,2 @@
+ScriptUtil.Found=found
+ScriptUtil.NoResourceWithTheName=No resource with the name
diff --git a/bundles/org.eclipse.emf.ecp.rap/rap2.launch b/bundles/org.eclipse.emf.ecp.rap/rap2.launch
index 75a352f..b89655e 100644
--- a/bundles/org.eclipse.emf.ecp.rap/rap2.launch
+++ b/bundles/org.eclipse.emf.ecp.rap/rap2.launch
@@ -7,7 +7,7 @@
<stringAttribute key="bootstrap" value=""/>
<stringAttribute key="checked" value="[NONE]"/>
<booleanAttribute key="clearConfig" value="false"/>
-<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearws" value="false"/>
<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/rap2"/>
<booleanAttribute key="default" value="true"/>
<booleanAttribute key="default_auto_start" value="true"/>
@@ -36,11 +36,11 @@
<booleanAttribute key="org.eclipse.rap.launch.useManualPort" value="true"/>
<booleanAttribute key="org.eclipse.rap.launch.useSessionTimeout" value="false"/>
<stringAttribute key="pde.version" value="3.3"/>
-<booleanAttribute key="show_selected_only" value="true"/>
-<stringAttribute key="target_bundles" value="com.ibm.icu.base@default:default,javax.servlet@default:default,javax.xml@default:default,org.apache.commons.codec*1.3.0.v201101211617@default:default,org.apache.commons.codec*1.4.0.v201209201156@default:default,org.apache.commons.fileupload@default:default,org.apache.commons.io@default:default,org.apache.commons.logging@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime@default:true,org.eclipse.emf.common@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.emfstore.client.model.edit@default:default,org.eclipse.emf.emfstore.client.ui@default:default,org.eclipse.emf.emfstore.client@default:default,org.eclipse.emf.emfstore.common.model.edit@default:default,org.eclipse.emf.emfstore.common.model@default:default,org.eclipse.emf.emfstore.common@default:default,org.eclipse.emf.emfstore.examplemodel.edit@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.emf.emfstore.migration@default:default,org.eclipse.emf.emfstore.server.model.edit@default:default,org.eclipse.emf.emfstore.server.model@default:default,org.eclipse.emf.emfstore.server@default:default,org.eclipse.emf.rap.common.ui@default:default,org.eclipse.emf.rap.edit.ui@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds*1.4.100.v20130515-2026@1:true,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry*3.5.300.v20130327-1442@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.util@default:default,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.help@default:default,org.eclipse.jetty.continuation@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.net4j.util@default:default,org.eclipse.osgi*3.9.0.v20130529-1710@-1:true,org.eclipse.osgi.services@default:default,org.eclipse.rap.jface.databinding@default:default,org.eclipse.rap.jface@default:default,org.eclipse.rap.rwt.osgi@default:default,org.eclipse.rap.rwt.supplemental.filedialog@default:default,org.eclipse.rap.rwt.supplemental.fileupload@default:default,org.eclipse.rap.rwt@default:default,org.eclipse.rap.ui.forms@default:default,org.eclipse.rap.ui.views@default:default,org.eclipse.rap.ui.workbench@default:default,org.eclipse.rap.ui@default:default,org.slf4j.api@default:default"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<stringAttribute key="target_bundles" value="com.ibm.icu.base@default:default,javax.servlet@default:default,javax.xml@default:default,org.apache.commons.codec*1.3.0.v201101211617@default:default,org.apache.commons.codec*1.4.0.v201209201156@default:default,org.apache.commons.fileupload@default:default,org.apache.commons.io@default:default,org.apache.commons.logging@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime@default:true,org.eclipse.emf.common@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.emfstore.client.model.edit@default:default,org.eclipse.emf.emfstore.client.ui@default:default,org.eclipse.emf.emfstore.client@default:default,org.eclipse.emf.emfstore.common.model.edit@default:default,org.eclipse.emf.emfstore.common.model@default:default,org.eclipse.emf.emfstore.common@default:default,org.eclipse.emf.emfstore.examplemodel.edit@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.emf.emfstore.migration@default:default,org.eclipse.emf.emfstore.server.model.edit@default:default,org.eclipse.emf.emfstore.server.model@default:default,org.eclipse.emf.emfstore.server@default:default,org.eclipse.emf.rap.common.ui@default:default,org.eclipse.emf.rap.edit.ui@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds*1.4.100.v20130515-2026@1:true,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry*3.5.300.v20130327-1442@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.util@default:default,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.help@default:default,org.eclipse.jetty.continuation@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.net4j.util@default:default,org.eclipse.osgi*3.9.0.v20130529-1710@-1:true,org.eclipse.osgi.services@default:default,org.eclipse.rap.jface.databinding@default:default,org.eclipse.rap.jface@default:default,org.eclipse.rap.rwt.osgi@default:default,org.eclipse.rap.rwt@default:default,org.eclipse.rap.ui.forms@default:default,org.eclipse.rap.ui.views@default:default,org.eclipse.rap.ui.workbench@default:default,org.eclipse.rap.ui@default:default,org.slf4j.api@default:default"/>
<stringAttribute key="timestamp" value="1367832274568"/>
<booleanAttribute key="tracing" value="false"/>
<booleanAttribute key="useCustomFeatures" value="false"/>
<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<stringAttribute key="workspace_bundles" value="org.eclipse.emf.ecp.common@default:default,org.eclipse.emf.ecp.core.emffilter@default:default,org.eclipse.emf.ecp.core@default:default,org.eclipse.emf.ecp.edit.swt@default:default,org.eclipse.emf.ecp.edit@default:default,org.eclipse.emf.ecp.editor.e3@default:default,org.eclipse.emf.ecp.emfstore.core@default:default,org.eclipse.emf.ecp.emfstore.localserver@default:default,org.eclipse.emf.ecp.emfstore.ui.search@default:default,org.eclipse.emf.ecp.emfstore.ui@default:default,org.eclipse.emf.ecp.explorereditorbridge@default:default,org.eclipse.emf.ecp.rap@default:default,org.eclipse.emf.ecp.ui.e3@default:default,org.eclipse.emf.ecp.ui.view.swt@default:default,org.eclipse.emf.ecp.ui.view@default:default,org.eclipse.emf.ecp.ui@default:default,org.eclipse.emf.ecp.validation.connector@default:default,org.eclipse.emf.ecp.validation@default:default,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.core.swt@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.template.model@default:default,org.eclipse.emf.ecp.view.template.service@default:default,org.eclipse.emf.ecp.view.validation@default:default"/>
+<stringAttribute key="workspace_bundles" value="org.eclipse.emf.ecp.common@default:default,org.eclipse.emf.ecp.core.emffilter@default:default,org.eclipse.emf.ecp.core@default:default,org.eclipse.emf.ecp.edit.swt@default:default,org.eclipse.emf.ecp.edit@default:default,org.eclipse.emf.ecp.editor.e3@default:default,org.eclipse.emf.ecp.emfstore.core@default:default,org.eclipse.emf.ecp.emfstore.localserver@default:default,org.eclipse.emf.ecp.emfstore.ui.e3@default:default,org.eclipse.emf.ecp.emfstore.ui.search@default:default,org.eclipse.emf.ecp.emfstore.ui@default:default,org.eclipse.emf.ecp.explorereditorbridge@default:default,org.eclipse.emf.ecp.rap.util@default:default,org.eclipse.emf.ecp.rap@default:default,org.eclipse.emf.ecp.ui.e3@default:default,org.eclipse.emf.ecp.ui.view.swt@default:default,org.eclipse.emf.ecp.ui.view@default:default,org.eclipse.emf.ecp.ui@default:default,org.eclipse.emf.ecp.validation.connector@default:default,org.eclipse.emf.ecp.validation@default:default,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.core.swt@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.template.model@default:default,org.eclipse.emf.ecp.view.template.service@default:default,org.eclipse.emf.ecp.view.validation@default:default"/>
</launchConfiguration>
diff --git a/releng/_target/ecp.target b/releng/_target/ecp.target
index f5c3688..747d59d 100644
--- a/releng/_target/ecp.target
+++ b/releng/_target/ecp.target
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?pde version="3.8"?><target name="ECP RCP" sequenceNumber="225">
+<?pde version="3.8"?><target name="ECP RCP" sequenceNumber="228">
<locations>
<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
<unit id="org.eclipse.rap.fileupload.feature.feature.group" version="2.0.0.20130302-1418"/>
@@ -29,20 +29,9 @@
<repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20120526062928/repository/"/>
</location>
<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.graphiti.feature.feature.group" version="0.10.0.v20130612-0936"/>
-<unit id="org.eclipse.jdt.feature.group" version="3.9.0.v20130605-2000"/>
-<unit id="org.eclipse.net4j.sdk.feature.group" version="4.2.0.v20130612-0849"/>
-<unit id="org.eclipse.emf.cdo.sdk.feature.group" version="4.2.0.v20130613-1556"/>
-<unit id="org.eclipse.emf.transaction.sdk.feature.group" version="1.7.0.201306111400"/>
-<unit id="org.eclipse.graphiti.export.feature.feature.group" version="0.10.0.v20130612-0936"/>
-<unit id="org.eclipse.emf.sdk.feature.group" version="2.9.0.v20130610-0406"/>
-<unit id="org.eclipse.emf.validation.sdk.feature.group" version="1.7.0.201306111341"/>
-<unit id="org.eclipse.gef.sdk.feature.group" version="3.9.0.201305060205"/>
-<unit id="org.eclipse.emf.rap.sdk.feature.group" version="2.9.0.v20130610-0406"/>
-<unit id="org.eclipse.rap.equinox.target.feature.feature.group" version="2.1.0.20130610-1755"/>
-<unit id="org.eclipse.rap.feature.feature.group" version="2.1.0.20130611-2139"/>
-<unit id="org.eclipse.sdk.ide" version="4.3.1.M20130911-1000"/>
-<repository location="http://download.eclipse.org/releases/kepler"/>
+<unit id="org.eclipse.rap.feature.feature.group" version="2.2.0.20131204-0942"/>
+<unit id="org.eclipse.rap.equinox.target.feature.feature.group" version="2.2.0.20131110-1237"/>
+<repository location="http://download.eclipse.org/rt/rap/2.2"/>
</location>
<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
<unit id="org.eclipse.emf.emfstore.server.feature.feature.group" version="1.1.0.v20131205-1626"/>
@@ -54,5 +43,19 @@
<unit id="org.eclipse.emf.emfstore.client.ui.feature.feature.group" version="1.1.0.v20131205-1626"/>
<repository location="http://download.eclipse.org/emf-store/releases_11/"/>
</location>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.graphiti.feature.feature.group" version="0.10.0.v20130612-0936"/>
+<unit id="org.eclipse.jdt.feature.group" version="3.9.0.v20130605-2000"/>
+<unit id="org.eclipse.net4j.sdk.feature.group" version="4.2.0.v20130612-0849"/>
+<unit id="org.eclipse.emf.cdo.sdk.feature.group" version="4.2.0.v20130613-1556"/>
+<unit id="org.eclipse.emf.transaction.sdk.feature.group" version="1.7.0.201306111400"/>
+<unit id="org.eclipse.graphiti.export.feature.feature.group" version="0.10.0.v20130612-0936"/>
+<unit id="org.eclipse.emf.sdk.feature.group" version="2.9.0.v20130610-0406"/>
+<unit id="org.eclipse.emf.validation.sdk.feature.group" version="1.7.0.201306111341"/>
+<unit id="org.eclipse.gef.sdk.feature.group" version="3.9.0.201305060205"/>
+<unit id="org.eclipse.emf.rap.sdk.feature.group" version="2.9.0.v20130610-0406"/>
+<unit id="org.eclipse.sdk.ide" version="4.3.1.M20130911-1000"/>
+<repository location="http://download.eclipse.org/releases/kepler"/>
+</location>
</locations>
</target>