Merge branch 'hotfix-1.0.4' into develop
diff --git a/bundles/org.eclipse.emf.emfstore.branding/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.branding/META-INF/MANIFEST.MF
index f0a05bc..6efd412 100644
--- a/bundles/org.eclipse.emf.emfstore.branding/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.branding/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
Bundle-ManifestVersion: 2
Bundle-Name: EMFStore Branding
Bundle-SymbolicName: org.eclipse.emf.emfstore.branding
-Bundle-Version: 1.0.2.qualifier
+Bundle-Version: 1.0.4.qualifier
Bundle-Activator: org.eclipse.emf.emfstore.branding.Activator
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
org.eclipse.ui;bundle-version="[3.5.0,4.0.0)"
diff --git a/bundles/org.eclipse.emf.emfstore.branding/pom.xml b/bundles/org.eclipse.emf.emfstore.branding/pom.xml
index 302d887..0c58f35 100644
--- a/bundles/org.eclipse.emf.emfstore.branding/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.branding/pom.xml
@@ -5,11 +5,11 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.branding</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/bundles/org.eclipse.emf.emfstore.client.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.client.model.edit/META-INF/MANIFEST.MF
index e2a740e..f9dbfed 100644
--- a/bundles/org.eclipse.emf.emfstore.client.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.client.model.edit/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@
Bundle-ManifestVersion: 2
Bundle-Name: EMFStore Client Model Edit
Bundle-SymbolicName: org.eclipse.emf.emfstore.client.model.edit;singleton:=true
-Bundle-Version: 1.0.2.qualifier
+Bundle-Version: 1.0.4.qualifier
Bundle-ClassPath: .
Bundle-Activator: org.eclipse.emf.emfstore.internal.client.model.provider.ClientModelEditPlugin$Implementation
Bundle-Vendor: Eclipse Modeling Project
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Export-Package:
- org.eclipse.emf.emfstore.internal.client.model.provider;version="1.0.2";
+ org.eclipse.emf.emfstore.internal.client.model.provider;version="1.0.4";
uses:="org.eclipse.emf.ecore,
org.eclipse.emf.emfstore.internal.common.model.provider,
org.eclipse.emf.common.util,
@@ -17,9 +17,9 @@
org.eclipse.emf.edit.provider,
org.eclipse.emf.common.notify,
org.eclipse.emf.emfstore.internal.client.model.util"
-Require-Bundle: org.eclipse.emf.emfstore.server.model.edit;bundle-version="[1.0.2,2.0.0)",
- org.eclipse.emf.emfstore.client;bundle-version="[1.0.2,2.0.0)";visibility:=reexport,
+Require-Bundle: org.eclipse.emf.emfstore.server.model.edit;bundle-version="[1.0.4,2.0.0)",
+ org.eclipse.emf.emfstore.client;bundle-version="[1.0.4,2.0.0)";visibility:=reexport,
org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.emf.emfstore.common.model.edit;bundle-version="[1.0.2,2.0.0)",
+ org.eclipse.emf.emfstore.common.model.edit;bundle-version="[1.0.4,2.0.0)",
org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)"
Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.emfstore.client.model.edit/pom.xml b/bundles/org.eclipse.emf.emfstore.client.model.edit/pom.xml
index 3361a47..89bebcf 100644
--- a/bundles/org.eclipse.emf.emfstore.client.model.edit/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.client.model.edit/pom.xml
@@ -5,11 +5,11 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.client.model.edit</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/bundles/org.eclipse.emf.emfstore.client.transaction/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.client.transaction/META-INF/MANIFEST.MF
index 54c3215..7d385f9 100644
--- a/bundles/org.eclipse.emf.emfstore.client.transaction/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.client.transaction/META-INF/MANIFEST.MF
@@ -2,9 +2,9 @@
Bundle-ManifestVersion: 2
Bundle-Name: EMFStore Transaction
Bundle-SymbolicName: org.eclipse.emf.emfstore.client.transaction;singleton:=true
-Bundle-Version: 1.0.2.qualifier
+Bundle-Version: 1.0.4.qualifier
Bundle-Vendor: Eclipse Modeling Project
Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: org.eclipse.emf.emfstore.client;bundle-version="[1.0.2,2.0.0)",
+Require-Bundle: org.eclipse.emf.emfstore.client;bundle-version="[1.0.4,2.0.0)",
org.eclipse.emf.transaction;bundle-version="[1.3.0,2.0.0)";visibility:=reexport
-Export-Package: org.eclipse.emf.emfstore.internal.client.transaction;version="1.0.2";x-internal:=true
+Export-Package: org.eclipse.emf.emfstore.internal.client.transaction;version="1.0.4";x-internal:=true
diff --git a/bundles/org.eclipse.emf.emfstore.client.transaction/pom.xml b/bundles/org.eclipse.emf.emfstore.client.transaction/pom.xml
index ddc7836..e77410a 100644
--- a/bundles/org.eclipse.emf.emfstore.client.transaction/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.client.transaction/pom.xml
@@ -5,11 +5,11 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.client.transaction</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/bundles/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator/META-INF/MANIFEST.MF
index f670ea3..bda3627 100644
--- a/bundles/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
Bundle-ManifestVersion: 2
Bundle-Name: HistoryBrowserComparator
Bundle-SymbolicName: org.eclipse.emf.emfstore.client.ui.historybrowsercomparator;singleton:=true
-Bundle-Version: 1.0.2.qualifier
+Bundle-Version: 1.0.4.qualifier
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-Vendor: Eclipse Modeling Project
Require-Bundle: org.eclipse.emf.compare;bundle-version="[1.3.3,2.0.0)";visibility:=reexport,
@@ -11,6 +11,6 @@
org.eclipse.emf.compare.ui;bundle-version="[1.3.3,2.0.0)";visibility:=reexport,
org.eclipse.emf.compare.diff.edit;bundle-version="[1.3.3,2.0.0)",
org.eclipse.compare;bundle-version="[3.5.300,4.0.0)";visibility:=reexport,
- org.eclipse.emf.emfstore.client;bundle-version="[1.0.2,2.0.0)",
- org.eclipse.emf.emfstore.client.ui;bundle-version="[1.0.2,2.0.0)"
-Export-Package: org.eclipse.emf.emfstore.client.ui.historybrowsercomparator;version="1.0.2";x-internal:=true
+ org.eclipse.emf.emfstore.client;bundle-version="[1.0.4,2.0.0)",
+ org.eclipse.emf.emfstore.client.ui;bundle-version="[1.0.4,2.0.0)"
+Export-Package: org.eclipse.emf.emfstore.client.ui.historybrowsercomparator;version="1.0.4";x-internal:=true
diff --git a/bundles/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator/pom.xml b/bundles/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator/pom.xml
index a4ca681..76ca1cd 100644
--- a/bundles/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator/pom.xml
@@ -5,11 +5,11 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.client.ui.historybrowsercomparator</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/bundles/org.eclipse.emf.emfstore.client.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.client.ui/META-INF/MANIFEST.MF
index 018a81e..6c8942f 100644
--- a/bundles/org.eclipse.emf.emfstore.client.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.client.ui/META-INF/MANIFEST.MF
@@ -2,49 +2,49 @@
Bundle-ManifestVersion: 2
Bundle-Name: EMFStore Client UI
Bundle-SymbolicName: org.eclipse.emf.emfstore.client.ui;singleton:=true
-Bundle-Version: 1.0.2.qualifier
+Bundle-Version: 1.0.4.qualifier
Bundle-Activator: org.eclipse.emf.emfstore.internal.client.ui.Activator
Require-Bundle: org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.emf.emfstore.client.model.edit;bundle-version="[1.0.2,2.0.0)",
+ org.eclipse.emf.emfstore.client.model.edit;bundle-version="[1.0.4,2.0.0)",
org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)",
- org.eclipse.emf.emfstore.server.model.edit;bundle-version="[1.0.2,2.0.0)"
+ org.eclipse.emf.emfstore.server.model.edit;bundle-version="[1.0.4,2.0.0)"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-Vendor: Eclipse Modeling Project
Bundle-ClassPath: .,
lib/dmp.jar
-Export-Package: org.eclipse.emf.emfstore.client.ui;version="1.0.2";
+Export-Package: org.eclipse.emf.emfstore.client.ui;version="1.0.4";
uses:="org.eclipse.emf.ecore,
org.eclipse.emf.emfstore.client,
org.eclipse.swt.widgets,
org.eclipse.emf.emfstore.server.model.versionspec",
- org.eclipse.emf.emfstore.internal.client.ui;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.client.ui.common;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.client.ui.controller;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.client.ui.decorators;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.client.ui.dialogs;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.client.ui.dialogs.login;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.client.ui.dialogs.merge;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.client.ui.dialogs.merge.ui;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.client.ui.dialogs.merge.ui.components;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.client.ui.dialogs.merge.ui.widgets;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.client.ui.dialogs.merge.util;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.client.ui.epackages;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.client.ui.exceptions;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.client.ui.handlers;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.client.ui.handlers.exportimport;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.client.ui.testers;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.client.ui.util;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.client.ui.views.changes;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.client.ui.views.emfstorebrowser.dialogs.admin;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.client.ui.views.emfstorebrowser.dialogs.admin.acimport;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.client.ui.views.emfstorebrowser.dialogs.admin.acimport.wizard;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.client.ui.views.emfstorebrowser.views;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.client.ui.views.historybrowserview;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.client.ui.views.historybrowserview.graph;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.client.ui.views.scm;version="1.0.2";x-internal:=true,
- org.eclipse.wb.swt;version="1.0.2";x-internal:=true;uses:="org.eclipse.jface.resource,org.eclipse.swt.graphics"
+ org.eclipse.emf.emfstore.internal.client.ui;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.client.ui.common;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.client.ui.controller;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.client.ui.decorators;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.client.ui.dialogs;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.client.ui.dialogs.login;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.client.ui.dialogs.merge;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.client.ui.dialogs.merge.ui;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.client.ui.dialogs.merge.ui.components;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.client.ui.dialogs.merge.ui.widgets;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.client.ui.dialogs.merge.util;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.client.ui.epackages;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.client.ui.exceptions;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.client.ui.handlers;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.client.ui.handlers.exportimport;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.client.ui.testers;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.client.ui.util;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.client.ui.views.changes;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.client.ui.views.emfstorebrowser.dialogs.admin;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.client.ui.views.emfstorebrowser.dialogs.admin.acimport;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.client.ui.views.emfstorebrowser.dialogs.admin.acimport.wizard;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.client.ui.views.emfstorebrowser.views;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.client.ui.views.historybrowserview;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.client.ui.views.historybrowserview.graph;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.client.ui.views.scm;version="1.0.4";x-internal:=true,
+ org.eclipse.wb.swt;version="1.0.4";x-internal:=true;uses:="org.eclipse.jface.resource,org.eclipse.swt.graphics"
Import-Package: org.eclipse.core.commands;version="0.0.0",
org.eclipse.emf.edit.ui.provider;version="0.0.0",
org.eclipse.jface.action;version="0.0.0",
diff --git a/bundles/org.eclipse.emf.emfstore.client.ui/pom.xml b/bundles/org.eclipse.emf.emfstore.client.ui/pom.xml
index 1230457..3c3f746 100644
--- a/bundles/org.eclipse.emf.emfstore.client.ui/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.client.ui/pom.xml
@@ -5,11 +5,11 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.client.ui</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/bundles/org.eclipse.emf.emfstore.client/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.client/META-INF/MANIFEST.MF
index 4142ba9..76088be 100644
--- a/bundles/org.eclipse.emf.emfstore.client/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.client/META-INF/MANIFEST.MF
@@ -2,58 +2,58 @@
Bundle-ManifestVersion: 2
Bundle-Name: EMFStore Client
Bundle-SymbolicName: org.eclipse.emf.emfstore.client;singleton:=true
-Bundle-Version: 1.0.2.qualifier
+Bundle-Version: 1.0.4.qualifier
Bundle-ClassPath: .
Bundle-Vendor: Eclipse Modeling Project
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Require-Bundle: org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
- org.eclipse.emf.emfstore.server;bundle-version="[1.0.2,2.0.0)";visibility:=reexport,
- org.eclipse.emf.emfstore.migration;bundle-version="[1.0.2,2.0.0)"
+ org.eclipse.emf.emfstore.server;bundle-version="[1.0.4,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.emfstore.migration;bundle-version="[1.0.4,2.0.0)"
Bundle-ActivationPolicy: lazy
Bundle-Activator: org.eclipse.emf.emfstore.internal.client.model.Activator
Import-Package: org.apache.commons.codec.binary;version="1.3.0"
-Export-Package: org.eclipse.emf.emfstore.client;version="1.0.2",
- org.eclipse.emf.emfstore.client.callbacks;version="1.0.2",
- org.eclipse.emf.emfstore.client.changetracking;version="1.0.2",
- org.eclipse.emf.emfstore.client.exceptions;version="1.0.2",
- org.eclipse.emf.emfstore.client.handler;version="1.0.2",
- org.eclipse.emf.emfstore.client.observer;version="1.0.2",
- org.eclipse.emf.emfstore.client.provider;version="1.0.2",
- org.eclipse.emf.emfstore.client.sessionprovider;version="1.0.2",
- org.eclipse.emf.emfstore.client.util;version="1.0.2",
- org.eclipse.emf.emfstore.internal.client.accesscontrol;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.ui",
- org.eclipse.emf.emfstore.internal.client.common;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.ui",
- org.eclipse.emf.emfstore.internal.client.configuration;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.test,org.eclipse.emf.emfstore.client.ui",
- org.eclipse.emf.emfstore.internal.client.importexport;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.test,org.eclipse.emf.emfstore.client.ui",
- org.eclipse.emf.emfstore.internal.client.importexport.impl;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.test",
- org.eclipse.emf.emfstore.internal.client.model;version="1.0.2";
+Export-Package: org.eclipse.emf.emfstore.client;version="1.0.4",
+ org.eclipse.emf.emfstore.client.callbacks;version="1.0.4",
+ org.eclipse.emf.emfstore.client.changetracking;version="1.0.4",
+ org.eclipse.emf.emfstore.client.exceptions;version="1.0.4",
+ org.eclipse.emf.emfstore.client.handler;version="1.0.4",
+ org.eclipse.emf.emfstore.client.observer;version="1.0.4",
+ org.eclipse.emf.emfstore.client.provider;version="1.0.4",
+ org.eclipse.emf.emfstore.client.sessionprovider;version="1.0.4",
+ org.eclipse.emf.emfstore.client.util;version="1.0.4",
+ org.eclipse.emf.emfstore.internal.client.accesscontrol;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.ui",
+ org.eclipse.emf.emfstore.internal.client.common;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.ui",
+ org.eclipse.emf.emfstore.internal.client.configuration;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.test,org.eclipse.emf.emfstore.client.ui",
+ org.eclipse.emf.emfstore.internal.client.importexport;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.test,org.eclipse.emf.emfstore.client.ui",
+ org.eclipse.emf.emfstore.internal.client.importexport.impl;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.test",
+ org.eclipse.emf.emfstore.internal.client.model;version="1.0.4";
x-friends:="org.eclipse.emf.emfstore.client.ui,
org.eclipse.emf.emfstore.client.model.edit,
org.eclipse.emf.emfstore.client.test,
org.eclipse.emf.emfstore.client.transaction,
org.eclipse.emf.emfstore.example.merging",
- org.eclipse.emf.emfstore.internal.client.model.changeTracking;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.client.model.changeTracking.commands;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.transaction,org.eclipse.emf.emfstore.client.test",
- org.eclipse.emf.emfstore.internal.client.model.changeTracking.merging;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.test,org.eclipse.emf.emfstore.client.ui,org.eclipse.emf.emfstore.example.merging",
- org.eclipse.emf.emfstore.internal.client.model.changeTracking.merging.conflict;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.test,org.eclipse.emf.emfstore.client.ui",
- org.eclipse.emf.emfstore.internal.client.model.changeTracking.merging.conflict.conflicts;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.test",
- org.eclipse.emf.emfstore.internal.client.model.changeTracking.merging.conflict.options;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.ui",
- org.eclipse.emf.emfstore.internal.client.model.changeTracking.merging.util;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.ui",
- org.eclipse.emf.emfstore.internal.client.model.changeTracking.notification.filter;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.client.model.changeTracking.notification.recording;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.test",
- org.eclipse.emf.emfstore.internal.client.model.connectionmanager;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.test,org.eclipse.emf.emfstore.client.ui,org.eclipse.emf.emfstore.example.helloworld",
- org.eclipse.emf.emfstore.internal.client.model.connectionmanager.xmlrpc;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.test",
- org.eclipse.emf.emfstore.internal.client.model.controller;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.ui,org.eclipse.emf.emfstore.client.test,org.eclipse.emf.emfstore.example.merging",
- org.eclipse.emf.emfstore.internal.client.model.exceptions;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.ui,org.eclipse.emf.emfstore.client.test",
- org.eclipse.emf.emfstore.internal.client.model.filetransfer;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.test",
- org.eclipse.emf.emfstore.internal.client.model.impl;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.test,org.eclipse.emf.emfstore.client.ui",
- org.eclipse.emf.emfstore.internal.client.model.impl.api;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.ui,org.eclipse.emf.emfstore.client.test,org.eclipse.emf.emfstore.example.merging",
- org.eclipse.emf.emfstore.internal.client.model.util;version="1.0.2";
+ org.eclipse.emf.emfstore.internal.client.model.changeTracking;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.client.model.changeTracking.commands;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.transaction,org.eclipse.emf.emfstore.client.test",
+ org.eclipse.emf.emfstore.internal.client.model.changeTracking.merging;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.test,org.eclipse.emf.emfstore.client.ui,org.eclipse.emf.emfstore.example.merging",
+ org.eclipse.emf.emfstore.internal.client.model.changeTracking.merging.conflict;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.test,org.eclipse.emf.emfstore.client.ui",
+ org.eclipse.emf.emfstore.internal.client.model.changeTracking.merging.conflict.conflicts;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.test",
+ org.eclipse.emf.emfstore.internal.client.model.changeTracking.merging.conflict.options;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.ui",
+ org.eclipse.emf.emfstore.internal.client.model.changeTracking.merging.util;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.ui",
+ org.eclipse.emf.emfstore.internal.client.model.changeTracking.notification.filter;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.client.model.changeTracking.notification.recording;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.test",
+ org.eclipse.emf.emfstore.internal.client.model.connectionmanager;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.test,org.eclipse.emf.emfstore.client.ui,org.eclipse.emf.emfstore.example.helloworld",
+ org.eclipse.emf.emfstore.internal.client.model.connectionmanager.xmlrpc;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.test",
+ org.eclipse.emf.emfstore.internal.client.model.controller;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.ui,org.eclipse.emf.emfstore.client.test,org.eclipse.emf.emfstore.example.merging",
+ org.eclipse.emf.emfstore.internal.client.model.exceptions;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.ui,org.eclipse.emf.emfstore.client.test",
+ org.eclipse.emf.emfstore.internal.client.model.filetransfer;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.test",
+ org.eclipse.emf.emfstore.internal.client.model.impl;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.test,org.eclipse.emf.emfstore.client.ui",
+ org.eclipse.emf.emfstore.internal.client.model.impl.api;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.ui,org.eclipse.emf.emfstore.client.test,org.eclipse.emf.emfstore.example.merging",
+ org.eclipse.emf.emfstore.internal.client.model.util;version="1.0.4";
x-friends:="org.eclipse.emf.emfstore.client.ui,
org.eclipse.emf.emfstore.client.model.edit,
org.eclipse.emf.emfstore.client.test,
org.eclipse.emf.emfstore.client.transaction,
org.eclipse.emf.emfstore.example.merging",
- org.eclipse.emf.emfstore.internal.client.observers;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.test,org.eclipse.emf.emfstore.client.ui",
- org.eclipse.emf.emfstore.internal.client.properties;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.test"
+ org.eclipse.emf.emfstore.internal.client.observers;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.test,org.eclipse.emf.emfstore.client.ui",
+ org.eclipse.emf.emfstore.internal.client.properties;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.test"
diff --git a/bundles/org.eclipse.emf.emfstore.client/pom.xml b/bundles/org.eclipse.emf.emfstore.client/pom.xml
index ae5cc5c..abcad1b 100644
--- a/bundles/org.eclipse.emf.emfstore.client/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.client/pom.xml
@@ -5,11 +5,11 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.client</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/changeTracking/merging/DecisionManager.java b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/changeTracking/merging/DecisionManager.java
index ed29de0..ca64a3c 100644
--- a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/changeTracking/merging/DecisionManager.java
+++ b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/changeTracking/merging/DecisionManager.java
@@ -29,6 +29,7 @@
import java.util.List;
import java.util.Set;
+import org.apache.commons.lang.StringUtils;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;
@@ -133,8 +134,9 @@
}
/**
- * BEGIN FACTORY TODO: EXTRACT FACTORY CLASS.
+ * BEGIN FACTORY TODO EXTRACT FACTORY CLASS.
*/
+
// BEGIN COMPLEX CODE
private void createConflicts(Set<ConflictBucket> conflictBucket) {
// Create Conflicts from ConflictBucket
@@ -226,7 +228,6 @@
if (isMultiRef(conf.getMyOperation())) {
return new MultiReferenceSetConflict(conf, this, true);
}
-
return new MultiReferenceSetConflict(conf, this, false);
}
@@ -234,16 +235,16 @@
if (isMultiRefSet(conf.getMyOperation())) {
return new MultiReferenceSetSingleConflict(conf, this, true);
}
-
return new MultiReferenceSetSingleConflict(conf, this, false);
+
}
private VisualConflict createMultiSingle(ConflictBucket conf) {
if (isMultiRef(conf.getMyOperation())) {
return new MultiReferenceSingleConflict(conf, this, true);
}
-
return new MultiReferenceSingleConflict(conf, this, false);
+
}
private VisualConflict createMultiRefSetSet(ConflictBucket conf) {
@@ -258,7 +259,6 @@
if (((MultiAttributeOperation) conf.getMyOperation()).isAdd()) {
return new MultiAttributeConflict(conf, this, true);
}
-
return new MultiAttributeConflict(conf, this, false);
}
@@ -266,24 +266,24 @@
if (isMultiAtt(conf.getMyOperation())) {
return new MultiAttributeSetConflict(conf, this, true);
}
-
return new MultiAttributeSetConflict(conf, this, false);
+
}
private VisualConflict createMultiAttMove(ConflictBucket conf) {
if (isMultiAtt(conf.getMyOperation())) {
return new MultiAttributeMoveConflict(conf, this, true);
}
-
return new MultiAttributeMoveConflict(conf, this, false);
+
}
private VisualConflict createMultiAttMoveSet(ConflictBucket conf) {
if (isMultiAttSet(conf.getMyOperation())) {
return new MultiAttributeMoveSetConflict(conf, this, true);
}
-
return new MultiAttributeMoveSetConflict(conf, this, false);
+
}
private VisualConflict createReferenceCompVSSingleMulti(ConflictBucket conf) {
@@ -291,9 +291,9 @@
return createRefFromSub(conf, ((CompositeOperation) conf.getMyOperation()).getSubOperations(),
Arrays.asList(conf.getTheirOperation()));
}
-
return createRefFromSub(conf, Arrays.asList(conf.getMyOperation()),
((CompositeOperation) conf.getTheirOperation()).getSubOperations());
+
}
private VisualConflict createReferenceConflict(ConflictBucket conf) {
@@ -335,7 +335,6 @@
if (((MultiReferenceOperation) conf.getMyOperation()).isAdd()) {
return new MultiReferenceConflict(conf, this, true);
}
-
return new MultiReferenceConflict(conf, this, false);
}
@@ -343,7 +342,6 @@
if (isDelete(conf.getMyOperation())) {
return new DeletionConflict(conf, true, this);
}
-
return new DeletionConflict(conf, false, this);
}
@@ -351,7 +349,6 @@
if (isComposite(conf.getMyOperation())) {
return new CompositeConflict(conf, this, true);
}
-
return new CompositeConflict(conf, this, false);
}
@@ -483,7 +480,7 @@
// }
// }
// MKCD
- return "";
+ return StringUtils.EMPTY;
}
private Integer myLeafOperationCount;
diff --git a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/FileDownloadJob.java b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/FileDownloadJob.java
index e3112a7..0b810e8 100644
--- a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/FileDownloadJob.java
+++ b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/FileDownloadJob.java
@@ -39,13 +39,13 @@
* @param status the status to which this download job will report its progress
* @param transferManager the transfer manager administering the download.
* @param fileId the id of the file to be transferred
- * @param transferVisibleToUser progress bar yes/no
+ * @param isTriggeredByUI progress bar yes/no
*/
FileDownloadJob(FileDownloadStatus status, FileTransferManager transferManager, FileIdentifier fileId,
- boolean transferVisibleToUser) {
+ boolean isTriggeredByUI) {
super(transferManager, new FileTransferInformation(fileId, FileTransferInformation.UNKOWN_SIZE),
"File Download");
- setUser(transferVisibleToUser);
+ setUser(isTriggeredByUI);
this.status = status;
}
@@ -71,6 +71,8 @@
} catch (final RuntimeException e) {
// END SUPRESS CATCH EXCEPTION
return registerException(e);
+ } finally {
+ monitor.done();
}
return Status.OK_STATUS;
}
diff --git a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/FileTransferManager.java b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/FileTransferManager.java
index 4f99c76..92056ee 100644
--- a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/FileTransferManager.java
+++ b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/FileTransferManager.java
@@ -198,7 +198,8 @@
*
* @throws FileTransferException in case the given file identifier is {@code null}
*/
- public FileDownloadStatus getFile(FileIdentifier fileIdentifier) throws FileTransferException {
+ public FileDownloadStatus getFile(FileIdentifier fileIdentifier, boolean isTriggeredByUI)
+ throws FileTransferException {
if (fileIdentifier == null) {
throw new FileTransferException("File identifier may not be null,");
@@ -211,7 +212,7 @@
}
// Otherwise, start a download
- return startDownload(fileIdentifier);
+ return startDownload(fileIdentifier, isTriggeredByUI);
}
/**
@@ -224,10 +225,10 @@
* a progress monitor for the download
* @return the status
*/
- private FileDownloadStatus startDownload(FileIdentifier fileIdentifier) {
+ private FileDownloadStatus startDownload(FileIdentifier fileIdentifier, boolean isTriggeredByUI) {
final FileDownloadStatus fds = FileDownloadStatus.Factory.createNew(projectSpace, fileIdentifier);
// TODO Check if true is correct here
- final FileDownloadJob job = new FileDownloadJob(fds, this, fileIdentifier, true);
+ final FileDownloadJob job = new FileDownloadJob(fds, this, fileIdentifier, isTriggeredByUI);
job.schedule();
return fds;
}
diff --git a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/impl/ProjectSpaceBase.java b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/impl/ProjectSpaceBase.java
index 87a1410..5161916 100644
--- a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/impl/ProjectSpaceBase.java
+++ b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/impl/ProjectSpaceBase.java
@@ -434,7 +434,7 @@
* @see org.eclipse.emf.emfstore.internal.client.model.ProjectSpace#getFile(org.eclipse.emf.emfstore.internal.server.model.FileIdentifier)
*/
public FileDownloadStatus getFile(FileIdentifier fileIdentifier) throws FileTransferException {
- return fileTransferManager.getFile(fileIdentifier);
+ return fileTransferManager.getFile(fileIdentifier, false);
}
/**
diff --git a/bundles/org.eclipse.emf.emfstore.common.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.common.model.edit/META-INF/MANIFEST.MF
index 4b6fb5f..300a462 100644
--- a/bundles/org.eclipse.emf.emfstore.common.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.common.model.edit/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@
Bundle-ManifestVersion: 2
Bundle-Name: EMFStore Common Model Edit
Bundle-SymbolicName: org.eclipse.emf.emfstore.common.model.edit;singleton:=true
-Bundle-Version: 1.0.2.qualifier
+Bundle-Version: 1.0.4.qualifier
Bundle-ClassPath: .
Bundle-Activator: org.eclipse.emf.emfstore.internal.common.model.provider.CommonEditPlugin$Implementation
Bundle-Vendor: Eclipse Modeling Project
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.emf.emfstore.internal.common.model.provider;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.server.model.edit,org.eclipse.emf.emfstore.client.model.edit,org.eclipse.emf.emfstore.client.test"
+Export-Package: org.eclipse.emf.emfstore.internal.common.model.provider;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.server.model.edit,org.eclipse.emf.emfstore.client.model.edit,org.eclipse.emf.emfstore.client.test"
Require-Bundle: org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)",
- org.eclipse.emf.emfstore.common.model;bundle-version="[1.0.2,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.emfstore.common.model;bundle-version="[1.0.4,2.0.0)";visibility:=reexport,
org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)"
Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.emfstore.common.model.edit/pom.xml b/bundles/org.eclipse.emf.emfstore.common.model.edit/pom.xml
index 1c32602..940062c 100644
--- a/bundles/org.eclipse.emf.emfstore.common.model.edit/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.common.model.edit/pom.xml
@@ -5,11 +5,11 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.common.model.edit</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/bundles/org.eclipse.emf.emfstore.common.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.common.model/META-INF/MANIFEST.MF
index 6fbb9f2..d0eeccb 100644
--- a/bundles/org.eclipse.emf.emfstore.common.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.common.model/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
Bundle-ManifestVersion: 2
Bundle-Name: EMFStore Common Model
Bundle-SymbolicName: org.eclipse.emf.emfstore.common.model;singleton:=true
-Bundle-Version: 1.0.2.qualifier
+Bundle-Version: 1.0.4.qualifier
Bundle-ClassPath: .
Bundle-Vendor: Eclipse Modeling Project
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: org.eclipse.emf.emfstore.common;bundle-version="[1.0.2,2.0.0)";visibility:=reexport,
+Require-Bundle: org.eclipse.emf.emfstore.common;bundle-version="[1.0.4,2.0.0)";visibility:=reexport,
org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)",
org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
org.eclipse.emf.ecore.xmi;bundle-version="[2.5.0,3.0.0)"
Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emf.emfstore.common.model;version="1.0.2",
- org.eclipse.emf.emfstore.common.model.util;version="1.0.2",
- org.eclipse.emf.emfstore.internal.common.model;version="1.0.2";
+Export-Package: org.eclipse.emf.emfstore.common.model;version="1.0.4",
+ org.eclipse.emf.emfstore.common.model.util;version="1.0.4",
+ org.eclipse.emf.emfstore.internal.common.model;version="1.0.4";
x-friends:="org.eclipse.emf.emfstore.client.test,
org.eclipse.emf.emfstore.common.model.edit,
org.eclipse.emf.emfstore.server,
@@ -25,14 +25,14 @@
org.eclipse.emf.emfstore.server.model.edit,
org.eclipse.emf.emfstore.client.ui,
org.eclipse.emf.emfstore.example.merging",
- org.eclipse.emf.emfstore.internal.common.model.impl;version="1.0.2";
+ org.eclipse.emf.emfstore.internal.common.model.impl;version="1.0.4";
x-friends:="org.eclipse.emf.emfstore.server.model,
org.eclipse.emf.emfstore.client,
org.eclipse.emf.emfstore.client.test,
org.eclipse.emf.emfstore.server,
org.eclipse.emf.emfstore.client.ui",
- org.eclipse.emf.emfstore.internal.common.model.impl.util;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.common.model.util;version="1.0.2";
+ org.eclipse.emf.emfstore.internal.common.model.impl.util;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.common.model.util;version="1.0.4";
x-friends:="org.eclipse.emf.emfstore.common.model.edit,
org.eclipse.emf.emfstore.server,
org.eclipse.emf.emfstore.server.model,
diff --git a/bundles/org.eclipse.emf.emfstore.common.model/pom.xml b/bundles/org.eclipse.emf.emfstore.common.model/pom.xml
index ef4ade3..750b464 100644
--- a/bundles/org.eclipse.emf.emfstore.common.model/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.common.model/pom.xml
@@ -5,11 +5,11 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.common.model</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/bundles/org.eclipse.emf.emfstore.common.model/src/org/eclipse/emf/emfstore/internal/common/model/impl/IdEObjectCollectionImpl.java b/bundles/org.eclipse.emf.emfstore.common.model/src/org/eclipse/emf/emfstore/internal/common/model/impl/IdEObjectCollectionImpl.java
index 4b1c403..1c831b9 100644
--- a/bundles/org.eclipse.emf.emfstore.common.model/src/org/eclipse/emf/emfstore/internal/common/model/impl/IdEObjectCollectionImpl.java
+++ b/bundles/org.eclipse.emf.emfstore.common.model/src/org/eclipse/emf/emfstore/internal/common/model/impl/IdEObjectCollectionImpl.java
@@ -1,856 +1,869 @@
-/*******************************************************************************
- * Copyright (c) 2008-2011 Chair for Applied Software Engineering,
- * Technische Universitaet Muenchen.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Maximilian Koegel, Edgar Mueller - initial API and implementation
- ******************************************************************************/
-package org.eclipse.emf.emfstore.internal.common.model.impl;
-
-import java.io.IOException;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.common.util.TreeIterator;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
-import org.eclipse.emf.ecore.impl.EObjectImpl;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.util.EcoreUtil.Copier;
-import org.eclipse.emf.ecore.util.EcoreUtil.UsageCrossReferencer;
-import org.eclipse.emf.ecore.xmi.XMIResource;
-import org.eclipse.emf.emfstore.common.extensionpoint.ESExtensionElement;
-import org.eclipse.emf.emfstore.common.extensionpoint.ESExtensionPoint;
-import org.eclipse.emf.emfstore.common.model.ESModelElementIdGenerator;
-import org.eclipse.emf.emfstore.internal.common.ESDisposable;
-import org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection;
-import org.eclipse.emf.emfstore.internal.common.model.ModelElementId;
-import org.eclipse.emf.emfstore.internal.common.model.ModelFactory;
-import org.eclipse.emf.emfstore.internal.common.model.util.ModelUtil;
-
-/**
- * Implementation of an ID based storage mechanism for {@link EObject}s.
- *
- * @author emueller
- * @author mkoegel
- */
-public abstract class IdEObjectCollectionImpl extends EObjectImpl implements IdEObjectCollection, ESDisposable {
-
- /**
- * The extension point id to configure the {@link ESModelElementIdGenerator}.
- */
- public static final String MODELELEMENTID_GENERATOR_EXTENSIONPOINT = "org.eclipse.emf.emfstore.common.model.modelelementIdGenerator";
-
- /**
- * The attribute identifying the class of the {@link ESModelElementIdGenerator} extension point.
- */
- public static final String MODELELEMENTID_GENERATOR_CLASS_ATTRIBUTE = "class";
-
- // Caches
- private Map<EObject, String> eObjectToIdMap;
- private Map<String, EObject> idToEObjectMap;
-
- // These caches will be used to assign specific IDs to newly created EObjects.
- // Additionally, IDs of deleted model elements will also be put into these caches, in case
- // the deleted elements will be restored during a command.
- private Map<EObject, String> allocatedEObjectToIdMap;
- private Map<String, EObject> allocatedIdToEObjectMap;
-
- private boolean cachesInitialized;
-
- /**
- * A {@link ESModelElementIdGenerator} for other plugins to register a special ID generation.
- */
- private ESModelElementIdGenerator<ModelElementId> modelElementIdGenerator;
-
- /**
- * Constructor.
- */
- public IdEObjectCollectionImpl() {
- eObjectToIdMap = new LinkedHashMap<EObject, String>();
- idToEObjectMap = new LinkedHashMap<String, EObject>();
-
- allocatedEObjectToIdMap = new LinkedHashMap<EObject, String>();
- allocatedIdToEObjectMap = new LinkedHashMap<String, EObject>();
-
- ESExtensionElement element = new ESExtensionPoint(MODELELEMENTID_GENERATOR_EXTENSIONPOINT)
- .getElementWithHighestPriority();
- if (element != null) {
- modelElementIdGenerator = element.getClass(MODELELEMENTID_GENERATOR_CLASS_ATTRIBUTE,
- ESModelElementIdGenerator.class);
- }
- }
-
- /**
- * Constructor. Adds the contents of the given {@link XMIResource} as model
- * elements to the collection. If the {@link XMIResource} also has XMI IDs
- * assigned to the {@link EObject}s it contains, they will be used for
- * creating the {@link ModelElementId}s within the project, if not, the {@link ModelElementId}s will get created on
- * the fly.
- *
- * @param xmiResource
- * a {@link XMIResource}
- * @throws IOException
- * if the given {@link XMIResource} could not be loaded
- */
- public IdEObjectCollectionImpl(XMIResource xmiResource) throws IOException {
- this();
- boolean resourceHasIds = false;
- try {
- if (!xmiResource.isLoaded()) {
- ModelUtil.loadResource(xmiResource, ModelUtil.getResourceLogger());
- }
- } catch (IOException e) {
- ModelUtil.logException(String.format("XMIResource %s could not be loaded.", xmiResource.getURI()), e);
- throw e;
- }
- TreeIterator<EObject> it = xmiResource.getAllContents();
- while (it.hasNext()) {
- EObject eObject = it.next();
-
- if (ModelUtil.isIgnoredDatatype(eObject)) {
- continue;
- }
-
- String id = xmiResource.getID(eObject);
- ModelElementId eObjectId = getNewModelElementID();
-
- if (id != null) {
- eObjectId.setId(id);
- resourceHasIds = true;
- } else {
- xmiResource.setID(eObject, eObjectId.getId());
- }
-
- putIntoCaches(eObject, eObjectId.getId());
- }
-
- if (resourceHasIds) {
- cachesInitialized = true;
- }
-
- EList<EObject> contents = xmiResource.getContents();
- setModelElements(contents);
-
- if (!resourceHasIds) {
- // save, in order to write IDs back into resource
- ModelUtil.saveResource(xmiResource, ModelUtil.getResourceLogger());
- }
- }
-
- /**
- *
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#getModelElements()
- */
- public abstract EList<EObject> getModelElements();
-
- /**
- * Sets the model elements of this collection.
- *
- * @param modelElements
- * the new list of model elements the collection should hold
- */
- protected abstract void setModelElements(EList<EObject> modelElements);
-
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#addModelElement(org.eclipse.emf.ecore.EObject)
- */
- public void addModelElement(EObject eObject) {
- getModelElements().add(eObject);
- }
-
- /**
- *
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#containsInstance(org.eclipse.emf.ecore.EObject)
- */
- public boolean contains(EObject modelElement) {
- return getEObjectsCache().contains(modelElement);
- }
-
- /**
- *
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#contains(org.eclipse.emf.emfstore.internal.common.model.ModelElementId)
- */
- public boolean contains(ModelElementId id) {
- if (!isCacheInitialized()) {
- initMapping();
- }
- return getIdToEObjectCache().containsKey(id);
- }
-
- /**
- *
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#getDeletedModelElementId(org.eclipse.emf.ecore.EObject)
- */
- public ModelElementId getDeletedModelElementId(EObject deletedModelElement) {
-
- String id = allocatedEObjectToIdMap.get(deletedModelElement);
-
- if (id != null) {
- ModelElementId modelElementId = ModelFactory.eINSTANCE.createModelElementId();
- modelElementId.setId(id);
- return modelElementId;
- }
-
- return ModelUtil.getSingletonModelElementId(deletedModelElement);
- }
-
- /**
- * Get the deleted model element with the given id from the collection.
- *
- * @param modelElementId
- * a {@link ModelElementId}
- * @return the deleted model element or null if it is not in the project
- */
- public EObject getDeletedModelElement(ModelElementId modelElementId) {
-
- if (modelElementId == null) {
- return null;
- }
-
- EObject eObject = allocatedIdToEObjectMap.get(modelElementId);
- return eObject != null ? eObject : ModelUtil.getSingleton(modelElementId);
- }
-
- /**
- *
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#getModelElementId(org.eclipse.emf.ecore.EObject)
- */
- public ModelElementId getModelElementId(EObject eObject) {
-
- // EObject _is_ project -> assign magic ModelElementId
- if (this == eObject) {
- ModelElementId modelElementId = getNewModelElementID();
- modelElementId.setId("001");
- return modelElementId;
- }
-
- if (!eObjectToIdMap.containsKey(eObject) && !isCacheInitialized()) {
-
- // EObject contained in project, load ID from resource
- try {
- Resource resource = eObject.eResource();
-
- // EM: is this a potential error case we have to consider?
- if (!(resource instanceof XMIResource)) {
- return null;
- }
-
- XMIResource xmiResource = (XMIResource) resource;
- ModelUtil.loadResource(xmiResource, ModelUtil.getResourceLogger());
- ModelElementId modelElementId = getNewModelElementID();
- String id = xmiResource.getID(eObject);
-
- if (id != null) {
- // change generated ID if one has been found in the resource
- modelElementId.setId(id);
- }
-
- eObjectToIdMap.put(eObject, modelElementId.getId());
- return modelElementId;
-
- } catch (IOException e) {
- throw new RuntimeException("Couldn't load resource for model element " + eObject);
- }
- }
-
- String id = eObjectToIdMap.get(eObject);
- ModelElementId modelElementId = getNewModelElementID();
- modelElementId.setId(id);
-
- return id != null ? modelElementId : ModelUtil.getSingletonModelElementId(eObject);
- }
-
- /**
- *
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#getModelElement(org.eclipse.emf.emfstore.internal.common.model.ModelElementId)
- */
- public EObject getModelElement(ModelElementId modelElementId) {
-
- if (modelElementId == null) {
- return null;
- }
-
- if (!isCacheInitialized()) {
- initMapping();
- }
-
- EObject eObject = getIdToEObjectCache().get(modelElementId.getId());
-
- return eObject != null ? eObject : ModelUtil.getSingleton(modelElementId);
- }
-
- /**
- *
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#deleteModelElement(org.eclipse.emf.ecore.EObject)
- */
- public void deleteModelElement(final EObject modelElement) {
- if (!this.contains(modelElement)) {
- throw new IllegalArgumentException("Cannot delete a model element that is not contained in this project.");
- }
-
- // remove cross references
- ModelUtil.deleteOutgoingCrossReferences(this, modelElement);
- Collection<Setting> crossReferences = UsageCrossReferencer.find(modelElement, this);
- ModelUtil.deleteIncomingCrossReferencesFromParent(crossReferences, modelElement);
-
- // remove containment
- EObject containerModelElement = ModelUtil.getContainerModelElement(modelElement);
- if (containerModelElement == null) {
- // removeModelElementAndChildrenFromCache(modelElement);
- // getEobjectsIdMap().remove(modelElement);
- this.getModelElements().remove(modelElement);
- } else {
- EReference containmentFeature = modelElement.eContainmentFeature();
- if (containmentFeature.isMany()) {
- EList<?> containmentList = (EList<?>) containerModelElement.eGet(containmentFeature);
- containmentList.remove(modelElement);
- } else {
- containerModelElement.eSet(containmentFeature, null);
- }
-
- removeModelElementAndChildrenFromResource(modelElement);
- }
- }
-
- /**
- * Removes the the given {@link EObject} and all its contained children from
- * their respective {@link XMIResource}s.
- *
- * @param eObject
- * the {@link EObject} to remove
- */
- public void removeModelElementAndChildrenFromResource(EObject eObject) {
- Set<EObject> children = ModelUtil.getAllContainedModelElements(eObject, false);
- for (EObject child : children) {
- removeModelElementFromResource(child);
- }
- removeModelElementFromResource(eObject);
-
- }
-
- /**
- * Removes the the given {@link EObject} from its {@link XMIResource}.
- *
- * @param xmiResource
- * the {@link EObject}'s resource
- * @param eObject
- * the {@link EObject} to remove
- */
- private void removeModelElementFromResource(EObject eObject) {
-
- if (!(eObject.eResource() instanceof XMIResource)) {
- return;
- }
-
- XMIResource xmiResource = (XMIResource) eObject.eResource();
-
- if (xmiResource.getURI() == null) {
- return;
- }
-
- xmiResource.setID(eObject, null);
-
- try {
- ModelUtil.saveResource(xmiResource, ModelUtil.getResourceLogger());
- } catch (IOException e) {
- throw new RuntimeException("XMI Resource for model element " + eObject + " could not be saved. "
- + "Reason: " + e.getMessage());
- }
- }
-
- /**
- * Returns the {@link ModelElementId} for the given model element. If no
- * such ID exists, a new one will be created.
- *
- * @param modelElement
- * a model element to fetch a {@link ModelElementId} for
- * @return the {@link ModelElementId} for the given model element
- */
- private ModelElementId getIdForModelElement(EObject modelElement) {
-
- Resource resource = modelElement.eResource();
-
- if (resource != null && resource instanceof XMIResource) {
- // resource available, read ID
- XMIResource xmiResource = (XMIResource) resource;
- try {
- ModelUtil.loadResource(xmiResource, ModelUtil.getResourceLogger());
- } catch (IOException e) {
- throw new RuntimeException("Resource of model element " + modelElement + " couldn't be loaded");
- }
- String id = xmiResource.getID(modelElement);
- if (id != null) {
- ModelElementId objId = getNewModelElementID();
- objId.setId(id);
- return objId;
- }
- }
-
- // create new ID
- return getNewModelElementID();
- }
-
- /**
- *
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#getAllModelElements()
- */
- public Set<EObject> getAllModelElements() {
- if (!isCacheInitialized()) {
- initMapping();
- }
-
- return Collections.unmodifiableSet(eObjectToIdMap.keySet());
- }
-
- /**
- *
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#getAllModelElementsByClass(org.eclipse.emf.ecore.EClass,
- * org.eclipse.emf.common.util.EList)
- */
- public <T extends EObject> EList<T> getAllModelElementsByClass(EClass modelElementClass, EList<T> list) {
- return getAllModelElementsByClass(modelElementClass, list, true);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.emfstore.internal.common.model.Project#getModelElementsByClass(org.eclipse.emf.ecore.EClass)
- * @generated NOT
- */
- // cast below is guarded by sanity check
- @SuppressWarnings("unchecked")
- public <T extends EObject> EList<T> getModelElementsByClass(EClass modelElementClass, EList<T> list) {
-
- for (EObject modelElement : this.getModelElements()) {
- if (modelElementClass.isInstance(modelElement)) {
- list.add((T) modelElement);
- }
- }
- return list;
- }
-
- /**
- *
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#getAllModelElementsByClass(org.eclipse.emf.ecore.EClass,
- * org.eclipse.emf.common.util.EList, java.lang.Boolean)
- */
- // two casts below are guarded by initial sanity check and if statement
- @SuppressWarnings("unchecked")
- public <T extends EObject> EList<T> getAllModelElementsByClass(EClass modelElementClass, EList<T> list,
- Boolean subclasses) {
-
- if (subclasses) {
- for (EObject modelElement : getAllModelElements()) {
- if (modelElementClass.isInstance(modelElement)) {
- list.add((T) modelElement);
- }
- }
- } else {
- for (EObject modelElement : getAllModelElements()) {
- if (modelElement.eClass() == modelElementClass) {
- list.add((T) modelElement);
- }
- }
- }
-
- return list;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.emfstore.common.model.ESObjectContainer#getAllModelElementsByClass(java.lang.Class)
- */
- public <T extends EObject> Set<T> getAllModelElementsByClass(Class<T> modelElementClass) {
- return getAllModelElementsByClass(modelElementClass, true);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.emfstore.common.model.ESObjectContainer#getAllModelElementsByClass(java.lang.Class,
- * java.lang.Boolean)
- */
- @SuppressWarnings("unchecked")
- public <T extends EObject> Set<T> getAllModelElementsByClass(Class<T> modelElementClass, Boolean includeSubclasses) {
- LinkedHashSet<T> result = new LinkedHashSet<T>();
- if (includeSubclasses) {
- for (EObject modelElement : getAllModelElements()) {
- if (modelElementClass.isInstance(modelElement)) {
- result.add((T) modelElement);
- }
- }
- } else {
- for (EObject modelElement : getAllModelElements()) {
- if (modelElement.getClass() == modelElementClass) {
- result.add((T) modelElement);
- }
- }
- }
- return result;
- }
-
- /**
- * Whether the cache has been initialized.
- *
- * @return true, if the cache is initialized, false otherwise
- */
- protected boolean isCacheInitialized() {
- return cachesInitialized;
- }
-
- /**
- * Returns the cache that maps {@link ModelElementId} to model elements.
- *
- * @return a map containing mappings from {@link ModelElementId}s to model
- * element
- */
- protected Map<String, EObject> getIdToEObjectCache() {
- if (!isCacheInitialized()) {
- initMapping();
- }
-
- return idToEObjectMap;
- }
-
- /**
- * Returns the model element cache.
- *
- * @return a set containing all model elements
- */
- protected Set<EObject> getEObjectsCache() {
- if (!isCacheInitialized()) {
- initMapping();
- }
-
- return eObjectToIdMap.keySet();
- }
-
- /**
- *
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#initMapping()
- */
- public void initMapping() {
-
- if (isCacheInitialized()) {
- return;
- }
-
- for (EObject modelElement : getModelElements()) {
- putModelElementIntoCache(modelElement);
- }
-
- cachesInitialized = true;
- }
-
- /**
- * Puts the given model element into the collections' caches.
- *
- * @param modelElement
- * the model element which should be added to the caches
- */
- protected void putModelElementIntoCache(EObject modelElement) {
-
- // put model element into cache
- ModelElementId modelElementId = getIdForModelElement(modelElement);
- putIntoCaches(modelElement, modelElementId.getId());
-
- // put children of model element into cache
- TreeIterator<EObject> it = modelElement.eAllContents();
-
- while (it.hasNext()) {
- EObject obj = it.next();
- ModelElementId id = getIdForModelElement(obj);
- putIntoCaches(obj, id.getId());
- }
- }
-
- /**
- * Adds a model element and all its children to the caches.
- *
- * @param modelElement
- * the model element, that should get added to the caches
- */
- protected void addModelElementAndChildrenToCache(EObject modelElement) {
-
- HashSet<String> removableIds = new LinkedHashSet<String>();
-
- Set<EObject> containedModelElements = ModelUtil.getAllContainedModelElements(modelElement, false);
- containedModelElements.add(modelElement);
-
- for (EObject child : containedModelElements) {
-
- // first check whether ID should be reassigned
- String childId = allocatedEObjectToIdMap.get(child);
-
- if (childId == null) {
- // if not, create a new ID
- childId = getNewModelElementID().getId();
- } else {
- removableIds.add(childId);
- }
-
- if (isCacheInitialized()) {
- putIntoCaches(child, childId);
- }
- }
-
- // remove all IDs that are in use now
- for (String modelElementId : removableIds) {
- EObject eObject = allocatedIdToEObjectMap.get(modelElementId);
- allocatedEObjectToIdMap.remove(eObject);
- }
-
- allocatedIdToEObjectMap.keySet().removeAll(removableIds);
- }
-
- /**
- *
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#initCaches(java.util.Map, java.util.Map)
- */
- public void initMapping(Map<EObject, String> eObjectToIdMap, Map<String, EObject> idToEObjectMap) {
- cachesInitialized = true;
- this.eObjectToIdMap = eObjectToIdMap;
- this.idToEObjectMap = idToEObjectMap;
- }
-
- /**
- * Creates a mapping for the given model element and the given {@link ModelElementId} within the cache.
- *
- * @param modelElement
- * a model element
- * @param modelElementId
- * a {@link ModelElementId}
- */
- protected void putIntoCaches(EObject modelElement, String modelElementId) {
- eObjectToIdMap.put(modelElement, modelElementId);
- idToEObjectMap.put(modelElementId, modelElement);
- }
-
- /**
- * Copies the collection.
- *
- * @param <T>
- * a collection type
- * @return the copied collection instance
- */
- @SuppressWarnings("unchecked")
- public <T extends IdEObjectCollection> T copy() {
- Copier copier = new IdEObjectCollectionCopier();
- T result = (T) copier.copy(this);
- ((IdEObjectCollectionImpl) result).cachesInitialized = true;
- copier.copyReferences();
- return result;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#dispose()
- */
- public void dispose() {
- eObjectToIdMap.clear();
- idToEObjectMap.clear();
- clearAllocatedCaches();
- cachesInitialized = false;
- }
-
- /**
- * Removes a model element and all its children from the cache.
- *
- * @param modelElement
- * a model element to be removed from the cache
- */
- protected void removeModelElementAndChildrenFromCache(EObject modelElement) {
-
- if (allocatedEObjectToIdMap.containsKey(modelElement)) {
- return;
- }
-
- removeFromCaches(modelElement);
-
- for (EObject child : ModelUtil.getAllContainedModelElements(modelElement, false)) {
- removeFromCaches(child);
- }
- }
-
- /**
- * Removes the given model element from the caches.
- *
- * @param modelElement
- * t#he model element to be removed from the caches
- */
- private void removeFromCaches(EObject modelElement) {
- if (isCacheInitialized()) {
- ModelElementId id = this.getModelElementId(modelElement);
-
- putIntoAllocatedCaches(modelElement, id);
-
- getEObjectsCache().remove(modelElement);
- getIdToEObjectCache().remove(id.getId());
- }
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#allocateModelElementIds(java.util.Map)
- */
- public void allocateModelElementIds(Map<EObject, ModelElementId> eObjectToIdMapping) {
- for (Map.Entry<EObject, ModelElementId> entry : eObjectToIdMapping.entrySet()) {
- EObject modelElement = entry.getKey();
- ModelElementId modelElementId = entry.getValue();
-
- Boolean isAlreadyContained = getModelElement(modelElementId) != null;
-
- if (isAlreadyContained) {
- eObjectToIdMap.put(modelElement, modelElementId.getId());
- idToEObjectMap.put(modelElementId.getId(), modelElement);
- }
-
- // do this even if the model element is already contained;
- // this is the case when a copied instance of the model element gets
- // added again
- putIntoAllocatedCaches(modelElement, modelElementId);
- }
- }
-
- /**
- *
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#disallocateModelElementIds(java.util.Set)
- */
- public void disallocateModelElementIds(Set<ModelElementId> modelElementIds) {
- for (ModelElementId modelElementId : modelElementIds) {
- allocatedIdToEObjectMap.remove(modelElementId.getId());
- allocatedEObjectToIdMap.values().remove(modelElementId.getId());
- }
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#forceClearAllocatedCaches()
- */
- public void clearAllocatedCaches() {
- allocatedEObjectToIdMap.clear();
- allocatedIdToEObjectMap.clear();
- }
-
- private void putIntoAllocatedCaches(EObject modelElement, ModelElementId modelElementId) {
- allocatedEObjectToIdMap.put(modelElement, modelElementId.getId());
- allocatedIdToEObjectMap.put(modelElementId.getId(), modelElement);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.emfstore.common.model.ESModelElementIdToEObjectMapping#getEObjectId(org.eclipse.emf.ecore.EObject)
- */
- public String getEObjectId(EObject eObject) {
- ModelElementId modelElementId = getModelElementId(eObject);
-
- if (modelElementId != null) {
- return modelElementId.getId();
- }
-
- return null;
- }
-
- private ModelElementId getNewModelElementID() {
- // if there is registered modelElementIdGenerator, use it
- if (modelElementIdGenerator != null) {
- ESModelElementIdImpl modelElementId =
- (ESModelElementIdImpl) modelElementIdGenerator.generateModelElementId(this);
- return modelElementId.toInternalAPI();
- }
-
- // else create it via ModelFactory
- return ModelFactory.eINSTANCE.createModelElementId();
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.emfstore.common.model.ESModelElementIdToEObjectMapping#get(org.eclipse.emf.emfstore.internal.common.model.ModelElementId)
- */
- public EObject get(ModelElementId modelElementId) {
- EObject modelElement = getModelElement(modelElementId);
- if (modelElement != null) {
- return modelElement;
- }
- return getDeletedModelElement(modelElementId);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#getIdToEObjectMapping()
- */
- public Map<String, EObject> getIdToEObjectMapping() {
- Map<String, EObject> mapping = new LinkedHashMap<String, EObject>(idToEObjectMap);
- mapping.putAll(new LinkedHashMap<String, EObject>(allocatedIdToEObjectMap));
- return mapping;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#getEObjectToIdMapping()
- */
- public Map<EObject, String> getEObjectToIdMapping() {
- Map<EObject, String> mapping = new LinkedHashMap<EObject, String>(eObjectToIdMap);
- mapping.putAll(new LinkedHashMap<EObject, String>(allocatedEObjectToIdMap));
- return mapping;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.emfstore.common.model.ESObjectContainer#removeModelElement(org.eclipse.emf.ecore.EObject)
- */
- public void removeModelElement(EObject modelElement) {
- getModelElements().remove(modelElement);
- }
-
+/*******************************************************************************
+ * Copyright (c) 2008-2011 Chair for Applied Software Engineering,
+ * Technische Universitaet Muenchen.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Maximilian Koegel, Edgar Mueller - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.emfstore.internal.common.model.impl;
+
+import java.io.IOException;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.EcoreUtil.Copier;
+import org.eclipse.emf.ecore.util.EcoreUtil.UsageCrossReferencer;
+import org.eclipse.emf.ecore.xmi.XMIResource;
+import org.eclipse.emf.emfstore.common.extensionpoint.ESExtensionElement;
+import org.eclipse.emf.emfstore.common.extensionpoint.ESExtensionPoint;
+import org.eclipse.emf.emfstore.common.model.ESModelElementIdGenerator;
+import org.eclipse.emf.emfstore.internal.common.ESDisposable;
+import org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection;
+import org.eclipse.emf.emfstore.internal.common.model.ModelElementId;
+import org.eclipse.emf.emfstore.internal.common.model.ModelFactory;
+import org.eclipse.emf.emfstore.internal.common.model.util.ModelUtil;
+
+/**
+ * Implementation of an ID based storage mechanism for {@link EObject}s.
+ *
+ * @author emueller
+ * @author mkoegel
+ */
+public abstract class IdEObjectCollectionImpl extends EObjectImpl implements IdEObjectCollection, ESDisposable {
+
+ /**
+ * The extension point id to configure the {@link ESModelElementIdGenerator}.
+ */
+ public static final String MODELELEMENTID_GENERATOR_EXTENSIONPOINT = "org.eclipse.emf.emfstore.common.model.modelelementIdGenerator";
+
+ /**
+ * The attribute identifying the class of the {@link ESModelElementIdGenerator} extension point.
+ */
+ public static final String MODELELEMENTID_GENERATOR_CLASS_ATTRIBUTE = "class";
+
+ // Caches
+ private Map<EObject, String> eObjectToIdMap;
+ private Map<String, EObject> idToEObjectMap;
+
+ // These caches will be used to assign specific IDs to newly created EObjects.
+ // Additionally, IDs of deleted model elements will also be put into these caches, in case
+ // the deleted elements will be restored during a command.
+ private final Map<EObject, String> allocatedEObjectToIdMap;
+ private final Map<String, EObject> allocatedIdToEObjectMap;
+
+ private boolean cachesInitialized;
+
+ /**
+ * A {@link ESModelElementIdGenerator} for other plugins to register a special ID generation.
+ */
+ private ESModelElementIdGenerator<ModelElementId> modelElementIdGenerator;
+
+ /**
+ * Constructor.
+ */
+ public IdEObjectCollectionImpl() {
+ eObjectToIdMap = new LinkedHashMap<EObject, String>();
+ idToEObjectMap = new LinkedHashMap<String, EObject>();
+
+ allocatedEObjectToIdMap = new LinkedHashMap<EObject, String>();
+ allocatedIdToEObjectMap = new LinkedHashMap<String, EObject>();
+
+ final ESExtensionElement element = new ESExtensionPoint(MODELELEMENTID_GENERATOR_EXTENSIONPOINT)
+ .getElementWithHighestPriority();
+ if (element != null) {
+ modelElementIdGenerator = element.getClass(MODELELEMENTID_GENERATOR_CLASS_ATTRIBUTE,
+ ESModelElementIdGenerator.class);
+ }
+ }
+
+ /**
+ * Constructor. Adds the contents of the given {@link XMIResource} as model
+ * elements to the collection. If the {@link XMIResource} also has XMI IDs
+ * assigned to the {@link EObject}s it contains, they will be used for
+ * creating the {@link ModelElementId}s within the project, if not, the {@link ModelElementId}s will get created on
+ * the fly.
+ *
+ * @param xmiResource
+ * a {@link XMIResource}
+ * @throws IOException
+ * if the given {@link XMIResource} could not be loaded
+ */
+ public IdEObjectCollectionImpl(XMIResource xmiResource) throws IOException {
+ this();
+ boolean resourceHasIds = false;
+ try {
+ if (!xmiResource.isLoaded()) {
+ ModelUtil.loadResource(xmiResource, ModelUtil.getResourceLogger());
+ }
+ } catch (final IOException e) {
+ ModelUtil.logException(String.format("XMIResource %s could not be loaded.", xmiResource.getURI()), e);
+ throw e;
+ }
+ final TreeIterator<EObject> it = xmiResource.getAllContents();
+ while (it.hasNext()) {
+ final EObject eObject = it.next();
+
+ if (ModelUtil.isIgnoredDatatype(eObject)) {
+ continue;
+ }
+
+ final String id = xmiResource.getID(eObject);
+ final ModelElementId eObjectId = getNewModelElementID();
+
+ if (id != null) {
+ eObjectId.setId(id);
+ resourceHasIds = true;
+ } else {
+ xmiResource.setID(eObject, eObjectId.getId());
+ }
+
+ putIntoCaches(eObject, eObjectId.getId());
+ }
+
+ if (resourceHasIds) {
+ cachesInitialized = true;
+ }
+
+ final EList<EObject> contents = xmiResource.getContents();
+ setModelElements(contents);
+
+ if (!resourceHasIds) {
+ // save, in order to write IDs back into resource
+ ModelUtil.saveResource(xmiResource, ModelUtil.getResourceLogger());
+ }
+ }
+
+ /**
+ *
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#getModelElements()
+ */
+ public abstract EList<EObject> getModelElements();
+
+ /**
+ * Sets the model elements of this collection.
+ *
+ * @param modelElements
+ * the new list of model elements the collection should hold
+ */
+ protected abstract void setModelElements(EList<EObject> modelElements);
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#addModelElement(org.eclipse.emf.ecore.EObject)
+ */
+ public void addModelElement(EObject eObject) {
+ getModelElements().add(eObject);
+ }
+
+ /**
+ *
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#contains(org.eclipse.emf.ecore.EObject)
+ */
+ public boolean contains(EObject modelElement) {
+ return getEObjectsCache().contains(modelElement);
+ }
+
+ /**
+ *
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#contains(org.eclipse.emf.emfstore.internal.common.model.ModelElementId)
+ */
+ public boolean contains(ModelElementId id) {
+ if (!isCacheInitialized()) {
+ initMapping();
+ }
+ return getIdToEObjectCache().containsKey(id);
+ }
+
+ /**
+ * Returns the ID of a deleted model element.
+ * <b>NOTE</b>: If commands are used, IDs of deleted model elements are only available during command execution.
+ * If commands aren't used IDs of deleted model elements remain as long available until either a share,
+ * a commit or an update happens.
+ *
+ * @param deletedModelElement
+ * the model element that has been deleted
+ * @return the ID of the deleted model element or {@code null} if no such ID exists
+ */
+ public ModelElementId getDeletedModelElementId(EObject deletedModelElement) {
+
+ final String id = allocatedEObjectToIdMap.get(deletedModelElement);
+
+ if (id != null) {
+ final ModelElementId modelElementId = ModelFactory.eINSTANCE.createModelElementId();
+ modelElementId.setId(id);
+ return modelElementId;
+ }
+
+ return ModelUtil.getSingletonModelElementId(deletedModelElement);
+ }
+
+ /**
+ * Returns the deleted model element by means of an ID.
+ * <b>NOTE</b>: If commands are used, deleted model elements are only available during command execution.
+ * If commands aren't used IDs of deleted model elements remain as long available until either a share,
+ * a commit or an update happens.
+ *
+ * @param deletedModelElementId
+ * the ID of an already deleted model element
+ * @return the deleted model element or {@code null} if no such element exists
+ */
+ public EObject getDeletedModelElement(ModelElementId deletedModelElementId) {
+
+ if (deletedModelElementId == null) {
+ return null;
+ }
+
+ final EObject eObject = allocatedIdToEObjectMap.get(deletedModelElementId);
+ return eObject != null ? eObject : ModelUtil.getSingleton(deletedModelElementId);
+ }
+
+ /**
+ *
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#getModelElementId(org.eclipse.emf.ecore.EObject)
+ */
+ public ModelElementId getModelElementId(EObject eObject) {
+
+ // EObject _is_ project -> assign magic ModelElementId
+ if (this == eObject) {
+ final ModelElementId modelElementId = getNewModelElementID();
+ modelElementId.setId("001");
+ return modelElementId;
+ }
+
+ if (!eObjectToIdMap.containsKey(eObject) && !isCacheInitialized()) {
+
+ // EObject contained in project, load ID from resource
+ try {
+ final Resource resource = eObject.eResource();
+
+ // EM: is this a potential error case we have to consider?
+ if (!(resource instanceof XMIResource)) {
+ return null;
+ }
+
+ final XMIResource xmiResource = (XMIResource) resource;
+ ModelUtil.loadResource(xmiResource, ModelUtil.getResourceLogger());
+ final ModelElementId modelElementId = getNewModelElementID();
+ final String id = xmiResource.getID(eObject);
+
+ if (id != null) {
+ // change generated ID if one has been found in the resource
+ modelElementId.setId(id);
+ }
+
+ eObjectToIdMap.put(eObject, modelElementId.getId());
+ return modelElementId;
+
+ } catch (final IOException e) {
+ throw new RuntimeException("Couldn't load resource for model element " + eObject);
+ }
+ }
+
+ final String id = eObjectToIdMap.get(eObject);
+ final ModelElementId modelElementId = getNewModelElementID();
+ modelElementId.setId(id);
+
+ return id != null ? modelElementId : ModelUtil.getSingletonModelElementId(eObject);
+ }
+
+ /**
+ *
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#getModelElement(org.eclipse.emf.emfstore.internal.common.model.ModelElementId)
+ */
+ public EObject getModelElement(ModelElementId modelElementId) {
+
+ if (modelElementId == null) {
+ return null;
+ }
+
+ if (!isCacheInitialized()) {
+ initMapping();
+ }
+
+ final EObject eObject = getIdToEObjectCache().get(modelElementId.getId());
+
+ return eObject != null ? eObject : ModelUtil.getSingleton(modelElementId);
+ }
+
+ /**
+ *
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#deleteModelElement(org.eclipse.emf.ecore.EObject)
+ */
+ public void deleteModelElement(final EObject modelElement) {
+ if (!this.contains(modelElement)) {
+ throw new IllegalArgumentException("Cannot delete a model element that is not contained in this project.");
+ }
+
+ // remove cross references
+ ModelUtil.deleteOutgoingCrossReferences(this, modelElement);
+ final Collection<Setting> crossReferences = UsageCrossReferencer.find(modelElement, this);
+ ModelUtil.deleteIncomingCrossReferencesFromParent(crossReferences, modelElement);
+
+ // remove containment
+ final EObject containerModelElement = ModelUtil.getContainerModelElement(modelElement);
+ if (containerModelElement == null) {
+ // removeModelElementAndChildrenFromCache(modelElement);
+ // getEobjectsIdMap().remove(modelElement);
+ getModelElements().remove(modelElement);
+ } else {
+ final EReference containmentFeature = modelElement.eContainmentFeature();
+ if (containmentFeature.isMany()) {
+ final EList<?> containmentList = (EList<?>) containerModelElement.eGet(containmentFeature);
+ containmentList.remove(modelElement);
+ } else {
+ containerModelElement.eSet(containmentFeature, null);
+ }
+
+ removeModelElementAndChildrenFromResource(modelElement);
+ }
+ }
+
+ /**
+ * Removes the the given {@link EObject} and all its contained children from
+ * their respective {@link XMIResource}s.
+ *
+ * @param eObject
+ * the {@link EObject} to remove
+ */
+ public void removeModelElementAndChildrenFromResource(EObject eObject) {
+ final Set<EObject> children = ModelUtil.getAllContainedModelElements(eObject, false);
+ for (final EObject child : children) {
+ removeModelElementFromResource(child);
+ }
+ removeModelElementFromResource(eObject);
+
+ }
+
+ /**
+ * Removes the the given {@link EObject} from its {@link XMIResource}.
+ *
+ * @param xmiResource
+ * the {@link EObject}'s resource
+ * @param eObject
+ * the {@link EObject} to remove
+ */
+ private void removeModelElementFromResource(EObject eObject) {
+
+ if (!(eObject.eResource() instanceof XMIResource)) {
+ return;
+ }
+
+ final XMIResource xmiResource = (XMIResource) eObject.eResource();
+
+ if (xmiResource.getURI() == null) {
+ return;
+ }
+
+ xmiResource.setID(eObject, null);
+
+ try {
+ ModelUtil.saveResource(xmiResource, ModelUtil.getResourceLogger());
+ } catch (final IOException e) {
+ throw new RuntimeException("XMI Resource for model element " + eObject + " could not be saved. "
+ + "Reason: " + e.getMessage());
+ }
+ }
+
+ /**
+ * Returns the {@link ModelElementId} for the given model element. If no
+ * such ID exists, a new one will be created.
+ *
+ * @param modelElement
+ * a model element to fetch a {@link ModelElementId} for
+ * @return the {@link ModelElementId} for the given model element
+ */
+ private ModelElementId getIdForModelElement(EObject modelElement) {
+
+ final Resource resource = modelElement.eResource();
+
+ if (resource != null && resource instanceof XMIResource) {
+ // resource available, read ID
+ final XMIResource xmiResource = (XMIResource) resource;
+ try {
+ ModelUtil.loadResource(xmiResource, ModelUtil.getResourceLogger());
+ } catch (final IOException e) {
+ throw new RuntimeException("Resource of model element " + modelElement + " couldn't be loaded");
+ }
+ final String id = xmiResource.getID(modelElement);
+ if (id != null) {
+ final ModelElementId objId = getNewModelElementID();
+ objId.setId(id);
+ return objId;
+ }
+ }
+
+ // create new ID
+ return getNewModelElementID();
+ }
+
+ /**
+ *
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#getAllModelElements()
+ */
+ public Set<EObject> getAllModelElements() {
+ if (!isCacheInitialized()) {
+ initMapping();
+ }
+
+ return Collections.unmodifiableSet(eObjectToIdMap.keySet());
+ }
+
+ /**
+ *
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#getAllModelElementsByClass(org.eclipse.emf.ecore.EClass,
+ * org.eclipse.emf.common.util.EList)
+ */
+ public <T extends EObject> EList<T> getAllModelElementsByClass(EClass modelElementClass, EList<T> list) {
+ return getAllModelElementsByClass(modelElementClass, list, true);
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.emfstore.internal.common.model.Project#getModelElementsByClass(org.eclipse.emf.ecore.EClass)
+ * @generated NOT
+ */
+ // cast below is guarded by sanity check
+ @SuppressWarnings("unchecked")
+ public <T extends EObject> EList<T> getModelElementsByClass(EClass modelElementClass, EList<T> list) {
+
+ for (final EObject modelElement : getModelElements()) {
+ if (modelElementClass.isInstance(modelElement)) {
+ list.add((T) modelElement);
+ }
+ }
+ return list;
+ }
+
+ /**
+ *
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#getAllModelElementsByClass(org.eclipse.emf.ecore.EClass,
+ * org.eclipse.emf.common.util.EList, java.lang.Boolean)
+ */
+ // two casts below are guarded by initial sanity check and if statement
+ @SuppressWarnings("unchecked")
+ public <T extends EObject> EList<T> getAllModelElementsByClass(EClass modelElementClass, EList<T> list,
+ Boolean subclasses) {
+
+ if (subclasses) {
+ for (final EObject modelElement : getAllModelElements()) {
+ if (modelElementClass.isInstance(modelElement)) {
+ list.add((T) modelElement);
+ }
+ }
+ } else {
+ for (final EObject modelElement : getAllModelElements()) {
+ if (modelElement.eClass() == modelElementClass) {
+ list.add((T) modelElement);
+ }
+ }
+ }
+
+ return list;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.emfstore.common.model.ESObjectContainer#getAllModelElementsByClass(java.lang.Class)
+ */
+ public <T extends EObject> Set<T> getAllModelElementsByClass(Class<T> modelElementClass) {
+ return getAllModelElementsByClass(modelElementClass, true);
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.emfstore.common.model.ESObjectContainer#getAllModelElementsByClass(java.lang.Class,
+ * java.lang.Boolean)
+ */
+ @SuppressWarnings("unchecked")
+ public <T extends EObject> Set<T> getAllModelElementsByClass(Class<T> modelElementClass, Boolean includeSubclasses) {
+ final LinkedHashSet<T> result = new LinkedHashSet<T>();
+ if (includeSubclasses) {
+ for (final EObject modelElement : getAllModelElements()) {
+ if (modelElementClass.isInstance(modelElement)) {
+ result.add((T) modelElement);
+ }
+ }
+ } else {
+ for (final EObject modelElement : getAllModelElements()) {
+ if (modelElement.getClass() == modelElementClass) {
+ result.add((T) modelElement);
+ }
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Whether the cache has been initialized.
+ *
+ * @return true, if the cache is initialized, false otherwise
+ */
+ protected boolean isCacheInitialized() {
+ return cachesInitialized;
+ }
+
+ /**
+ * Returns the cache that maps {@link ModelElementId} to model elements.
+ *
+ * @return a map containing mappings from {@link ModelElementId}s to model
+ * element
+ */
+ protected Map<String, EObject> getIdToEObjectCache() {
+ if (!isCacheInitialized()) {
+ initMapping();
+ }
+
+ return idToEObjectMap;
+ }
+
+ /**
+ * Returns the model element cache.
+ *
+ * @return a set containing all model elements
+ */
+ protected Set<EObject> getEObjectsCache() {
+ if (!isCacheInitialized()) {
+ initMapping();
+ }
+
+ return eObjectToIdMap.keySet();
+ }
+
+ /**
+ *
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#initMapping()
+ */
+ public void initMapping() {
+
+ if (isCacheInitialized()) {
+ return;
+ }
+
+ for (final EObject modelElement : getModelElements()) {
+ putModelElementIntoCache(modelElement);
+ }
+
+ cachesInitialized = true;
+ }
+
+ /**
+ * Puts the given model element into the collections' caches.
+ *
+ * @param modelElement
+ * the model element which should be added to the caches
+ */
+ protected void putModelElementIntoCache(EObject modelElement) {
+
+ // put model element into cache
+ final ModelElementId modelElementId = getIdForModelElement(modelElement);
+ putIntoCaches(modelElement, modelElementId.getId());
+
+ // put children of model element into cache
+ final TreeIterator<EObject> it = modelElement.eAllContents();
+
+ while (it.hasNext()) {
+ final EObject obj = it.next();
+ final ModelElementId id = getIdForModelElement(obj);
+ putIntoCaches(obj, id.getId());
+ }
+ }
+
+ /**
+ * Adds a model element and all its children to the caches.
+ *
+ * @param modelElement
+ * the model element, that should get added to the caches
+ */
+ protected void addModelElementAndChildrenToCache(EObject modelElement) {
+
+ final HashSet<String> removableIds = new LinkedHashSet<String>();
+
+ final Set<EObject> containedModelElements = ModelUtil.getAllContainedModelElements(modelElement, false);
+ containedModelElements.add(modelElement);
+
+ for (final EObject child : containedModelElements) {
+
+ // first check whether ID should be reassigned
+ String childId = allocatedEObjectToIdMap.get(child);
+
+ if (childId == null) {
+ // if not, create a new ID
+ childId = getNewModelElementID().getId();
+ } else {
+ removableIds.add(childId);
+ }
+
+ if (isCacheInitialized()) {
+ putIntoCaches(child, childId);
+ }
+ }
+
+ // remove all IDs that are in use now
+ for (final String modelElementId : removableIds) {
+ final EObject eObject = allocatedIdToEObjectMap.get(modelElementId);
+ allocatedEObjectToIdMap.remove(eObject);
+ }
+
+ allocatedIdToEObjectMap.keySet().removeAll(removableIds);
+ }
+
+ /**
+ *
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#initMapping(java.util.Map, java.util.Map)
+ */
+ public void initMapping(Map<EObject, String> eObjectToIdMap, Map<String, EObject> idToEObjectMap) {
+ cachesInitialized = true;
+ this.eObjectToIdMap = eObjectToIdMap;
+ this.idToEObjectMap = idToEObjectMap;
+ }
+
+ /**
+ * Creates a mapping for the given model element and the given {@link ModelElementId} within the cache.
+ *
+ * @param modelElement
+ * a model element
+ * @param modelElementId
+ * a {@link ModelElementId}
+ */
+ protected void putIntoCaches(EObject modelElement, String modelElementId) {
+ // never overwrite existing IDs
+ if (!eObjectToIdMap.containsKey(modelElement)) {
+ eObjectToIdMap.put(modelElement, modelElementId);
+ idToEObjectMap.put(modelElementId, modelElement);
+ }
+ }
+
+ /**
+ * Copies the collection.
+ *
+ * @param <T>
+ * a collection type
+ * @return the copied collection instance
+ */
+ @SuppressWarnings("unchecked")
+ public <T extends IdEObjectCollection> T copy() {
+ final Copier copier = new IdEObjectCollectionCopier();
+ final T result = (T) copier.copy(this);
+ ((IdEObjectCollectionImpl) result).cachesInitialized = true;
+ copier.copyReferences();
+ return result;
+ }
+
+ /**
+ *
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.emfstore.internal.common.ESDisposable#dispose()
+ */
+ public void dispose() {
+ eObjectToIdMap.clear();
+ idToEObjectMap.clear();
+ clearAllocatedCaches();
+ cachesInitialized = false;
+ }
+
+ /**
+ * Removes a model element and all its children from the cache.
+ *
+ * @param modelElement
+ * a model element to be removed from the cache
+ */
+ protected void removeModelElementAndChildrenFromCache(EObject modelElement) {
+
+ if (allocatedEObjectToIdMap.containsKey(modelElement)) {
+ return;
+ }
+
+ removeFromCaches(modelElement);
+
+ for (final EObject child : ModelUtil.getAllContainedModelElements(modelElement, false)) {
+ removeFromCaches(child);
+ }
+ }
+
+ /**
+ * Removes the given model element from the caches.
+ *
+ * @param modelElement
+ * t#he model element to be removed from the caches
+ */
+ private void removeFromCaches(EObject modelElement) {
+ if (isCacheInitialized()) {
+ final ModelElementId id = getModelElementId(modelElement);
+
+ putIntoAllocatedCaches(modelElement, id);
+
+ getEObjectsCache().remove(modelElement);
+ getIdToEObjectCache().remove(id.getId());
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#allocateModelElementIds(java.util.Map)
+ */
+ public void allocateModelElementIds(Map<EObject, ModelElementId> eObjectToIdMapping) {
+ for (final Map.Entry<EObject, ModelElementId> entry : eObjectToIdMapping.entrySet()) {
+ final EObject modelElement = entry.getKey();
+ final ModelElementId modelElementId = entry.getValue();
+
+ final Boolean isAlreadyContained = getModelElement(modelElementId) != null;
+
+ if (isAlreadyContained) {
+ eObjectToIdMap.put(modelElement, modelElementId.getId());
+ idToEObjectMap.put(modelElementId.getId(), modelElement);
+ }
+
+ // do this even if the model element is already contained;
+ // this is the case when a copied instance of the model element gets
+ // added again
+ putIntoAllocatedCaches(modelElement, modelElementId);
+ }
+ }
+
+ /**
+ *
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#disallocateModelElementIds(java.util.Set)
+ */
+ public void disallocateModelElementIds(Set<ModelElementId> modelElementIds) {
+ for (final ModelElementId modelElementId : modelElementIds) {
+ allocatedIdToEObjectMap.remove(modelElementId.getId());
+ allocatedEObjectToIdMap.values().remove(modelElementId.getId());
+ }
+ }
+
+ /**
+ *
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#clearAllocatedCaches()
+ */
+ public void clearAllocatedCaches() {
+ allocatedEObjectToIdMap.clear();
+ allocatedIdToEObjectMap.clear();
+ }
+
+ private void putIntoAllocatedCaches(EObject modelElement, ModelElementId modelElementId) {
+ allocatedEObjectToIdMap.put(modelElement, modelElementId.getId());
+ allocatedIdToEObjectMap.put(modelElementId.getId(), modelElement);
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.emfstore.common.model.ESModelElementIdToEObjectMapping#getEObjectId(org.eclipse.emf.ecore.EObject)
+ */
+ public String getEObjectId(EObject eObject) {
+ final ModelElementId modelElementId = getModelElementId(eObject);
+
+ if (modelElementId != null) {
+ return modelElementId.getId();
+ }
+
+ return null;
+ }
+
+ private ModelElementId getNewModelElementID() {
+ // if there is registered modelElementIdGenerator, use it
+ if (modelElementIdGenerator != null) {
+ final ESModelElementIdImpl modelElementId =
+ (ESModelElementIdImpl) modelElementIdGenerator.generateModelElementId(this);
+ return modelElementId.toInternalAPI();
+ }
+
+ // else create it via ModelFactory
+ return ModelFactory.eINSTANCE.createModelElementId();
+ }
+
+ /**
+ *
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.emfstore.common.model.ESIdToEObjectMapping#get(java.lang.Object)
+ */
+ public EObject get(ModelElementId modelElementId) {
+ final EObject modelElement = getModelElement(modelElementId);
+ if (modelElement != null) {
+ return modelElement;
+ }
+ return getDeletedModelElement(modelElementId);
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#getIdToEObjectMapping()
+ */
+ public Map<String, EObject> getIdToEObjectMapping() {
+ final Map<String, EObject> mapping = new LinkedHashMap<String, EObject>(idToEObjectMap);
+ mapping.putAll(new LinkedHashMap<String, EObject>(allocatedIdToEObjectMap));
+ return mapping;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection#getEObjectToIdMapping()
+ */
+ public Map<EObject, String> getEObjectToIdMapping() {
+ final Map<EObject, String> mapping = new LinkedHashMap<EObject, String>(eObjectToIdMap);
+ mapping.putAll(new LinkedHashMap<EObject, String>(allocatedEObjectToIdMap));
+ return mapping;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.emfstore.common.model.ESObjectContainer#removeModelElement(org.eclipse.emf.ecore.EObject)
+ */
+ public void removeModelElement(EObject modelElement) {
+ getModelElements().remove(modelElement);
+ }
+
}
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.emfstore.common.model/src/org/eclipse/emf/emfstore/internal/common/model/impl/NotifiableIdEObjectCollectionImpl.java b/bundles/org.eclipse.emf.emfstore.common.model/src/org/eclipse/emf/emfstore/internal/common/model/impl/NotifiableIdEObjectCollectionImpl.java
index 059c064..c4a405b 100644
--- a/bundles/org.eclipse.emf.emfstore.common.model/src/org/eclipse/emf/emfstore/internal/common/model/impl/NotifiableIdEObjectCollectionImpl.java
+++ b/bundles/org.eclipse.emf.emfstore.common.model/src/org/eclipse/emf/emfstore/internal/common/model/impl/NotifiableIdEObjectCollectionImpl.java
@@ -178,6 +178,11 @@
@Override
public void initMapping() {
+
+ if (isCacheInitialized()) {
+ return;
+ }
+
super.initMapping();
if (changeNotifier == null) {
changeNotifier = new EObjectChangeNotifier(this, this);
diff --git a/bundles/org.eclipse.emf.emfstore.common.model/src/org/eclipse/emf/emfstore/internal/common/model/impl/ProjectImpl.java b/bundles/org.eclipse.emf.emfstore.common.model/src/org/eclipse/emf/emfstore/internal/common/model/impl/ProjectImpl.java
index b308e75..2b301be 100644
--- a/bundles/org.eclipse.emf.emfstore.common.model/src/org/eclipse/emf/emfstore/internal/common/model/impl/ProjectImpl.java
+++ b/bundles/org.eclipse.emf.emfstore.common.model/src/org/eclipse/emf/emfstore/internal/common/model/impl/ProjectImpl.java
@@ -7,10 +7,7 @@
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
- * naughton
- * shterev
- * emueller
- * koegel
+ * Helmut Naughton, Maximilian Koegel, Edgar Mueller - initial API and implementation
******************************************************************************/
package org.eclipse.emf.emfstore.internal.common.model.impl;
@@ -197,8 +194,6 @@
return super.eIsSet(featureID);
}
- // begin of custom code
-
/**
* this methods implements the adapter interface which is needed by the
* navigator.
@@ -258,6 +253,10 @@
@Override
public void initMapping() {
+ if (isCacheInitialized()) {
+ return;
+ }
+
for (final EObject modelElement : getCutElements()) {
putModelElementIntoCache(modelElement);
}
diff --git a/bundles/org.eclipse.emf.emfstore.common/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.common/META-INF/MANIFEST.MF
index 8a46ea0..94cdcb9 100644
--- a/bundles/org.eclipse.emf.emfstore.common/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.common/META-INF/MANIFEST.MF
@@ -2,22 +2,22 @@
Bundle-ManifestVersion: 2
Bundle-Name: EMFStore Common
Bundle-SymbolicName: org.eclipse.emf.emfstore.common;singleton:=true
-Bundle-Version: 1.0.2.qualifier
+Bundle-Version: 1.0.4.qualifier
Bundle-Activator: org.eclipse.emf.emfstore.internal.common.Activator
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)";visibility:=reexport,
org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
org.eclipse.emf.ecore.xmi;bundle-version="[2.5.0,3.0.0)";visibility:=reexport
Bundle-ActivationPolicy: lazy
-Export-Package: org.apache.commons.io;version="1.0.2",
+Export-Package: org.apache.commons.io;version="1.0.4",
org.apache.commons.io.comparator;version="2.0.1",
org.apache.commons.io.filefilter;version="2.0.1",
org.apache.commons.io.input;version="2.0.1",
org.apache.commons.io.monitor;version="2.0.1",
- org.apache.commons.io.output;version="1.0.2",
- org.apache.commons.lang;version="1.0.2",
- org.eclipse.emf.emfstore.common;version="1.0.2",
- org.eclipse.emf.emfstore.common.extensionpoint;version="1.0.2",
- org.eclipse.emf.emfstore.internal.common;version="1.0.2";
+ org.apache.commons.io.output;version="1.0.4",
+ org.apache.commons.lang;version="1.0.4",
+ org.eclipse.emf.emfstore.common;version="1.0.4",
+ org.eclipse.emf.emfstore.common.extensionpoint;version="1.0.4",
+ org.eclipse.emf.emfstore.internal.common;version="1.0.4";
x-friends:="org.eclipse.emf.emfstore.server.model,
org.eclipse.emf.emfstore.client,
org.eclipse.emf.emfstore.client.test,
@@ -25,7 +25,7 @@
org.eclipse.emf.emfstore.client.ui,
org.eclipse.emf.emfstore.example.merging,
org.eclipse.emf.emfstore.common.model",
- org.eclipse.emf.emfstore.internal.common.api;version="1.0.2";
+ org.eclipse.emf.emfstore.internal.common.api;version="1.0.4";
x-friends:="org.eclipse.emf.emfstore.client.ui,
org.eclipse.emf.emfstore.server,
org.eclipse.emf.emfstore.server.model,
@@ -34,7 +34,7 @@
org.eclipse.emf.emfstore.common.model,
org.eclipse.emf.emfstore.ecore,
org.eclipse.emf.emfstore.example.merging",
- org.eclipse.emf.emfstore.internal.common.observer;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.ui,org.eclipse.emf.emfstore.client,org.eclipse.emf.emfstore.client.test"
+ org.eclipse.emf.emfstore.internal.common.observer;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.ui,org.eclipse.emf.emfstore.client,org.eclipse.emf.emfstore.client.test"
Bundle-Vendor: Eclipse Modeling Project
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-ClassPath: lib/commons-io-2.0.1.jar,
diff --git a/bundles/org.eclipse.emf.emfstore.common/pom.xml b/bundles/org.eclipse.emf.emfstore.common/pom.xml
index 9646160..b7f8934 100644
--- a/bundles/org.eclipse.emf.emfstore.common/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.common/pom.xml
@@ -5,11 +5,11 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.common</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/bundles/org.eclipse.emf.emfstore.ecore/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.ecore/META-INF/MANIFEST.MF
index ee28d83..ec53ae9 100644
--- a/bundles/org.eclipse.emf.emfstore.ecore/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.ecore/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
Bundle-ManifestVersion: 2
Bundle-Name: EMFStore ECore Integration
Bundle-SymbolicName: org.eclipse.emf.emfstore.ecore;singleton:=true
-Bundle-Version: 1.0.2.qualifier
+Bundle-Version: 1.0.4.qualifier
Bundle-ClassPath: .
Bundle-Activator: org.eclipse.emf.emfstore.internal.ecore.Activator
-Require-Bundle: org.eclipse.emf.emfstore.common.model;bundle-version="[1.0.2,2.0.0)",
+Require-Bundle: org.eclipse.emf.emfstore.common.model;bundle-version="[1.0.4,2.0.0)",
org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)",
org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.emfstore.internal.ecore;version="1.0.2";x-internal:=true
+Export-Package: org.eclipse.emf.emfstore.internal.ecore;version="1.0.4";x-internal:=true
diff --git a/bundles/org.eclipse.emf.emfstore.ecore/pom.xml b/bundles/org.eclipse.emf.emfstore.ecore/pom.xml
index 3be7ea2..7aa1f5d 100644
--- a/bundles/org.eclipse.emf.emfstore.ecore/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.ecore/pom.xml
@@ -5,11 +5,11 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.ecore</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/bundles/org.eclipse.emf.emfstore.example.helloworld/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.example.helloworld/META-INF/MANIFEST.MF
index 2a68210..ad85b93 100644
--- a/bundles/org.eclipse.emf.emfstore.example.helloworld/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.example.helloworld/META-INF/MANIFEST.MF
@@ -2,11 +2,11 @@
Bundle-ManifestVersion: 2
Bundle-Name: Example Hello World
Bundle-SymbolicName: org.eclipse.emf.emfstore.example.helloworld;singleton:=true
-Bundle-Version: 1.0.2.qualifier
-Require-Bundle: org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.0.2,2.0.0)",
+Bundle-Version: 1.0.4.qualifier
+Require-Bundle: org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.0.4,2.0.0)",
org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.emf.emfstore.client.model.edit;bundle-version="[1.0.2,2.0.0)",
+ org.eclipse.emf.emfstore.client.model.edit;bundle-version="[1.0.4,2.0.0)",
org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)"
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.emfstore.example.helloworld;version="1.0.2"
+Export-Package: org.eclipse.emf.emfstore.example.helloworld;version="1.0.4"
diff --git a/bundles/org.eclipse.emf.emfstore.example.helloworld/pom.xml b/bundles/org.eclipse.emf.emfstore.example.helloworld/pom.xml
index edb814b..47e75eb 100644
--- a/bundles/org.eclipse.emf.emfstore.example.helloworld/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.example.helloworld/pom.xml
@@ -5,11 +5,11 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.example.helloworld</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/bundles/org.eclipse.emf.emfstore.example.installer/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.example.installer/META-INF/MANIFEST.MF
index 3629956..845f7bc 100644
--- a/bundles/org.eclipse.emf.emfstore.example.installer/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.example.installer/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
Bundle-ManifestVersion: 2
Bundle-Name: EMFStore example installer
Bundle-SymbolicName: org.eclipse.emf.emfstore.example.installer;singleton:=true
-Bundle-Version: 1.0.2.qualifier
+Bundle-Version: 1.0.4.qualifier
Bundle-Vendor: Eclipse Modeling Project
Require-Bundle: org.eclipse.ui;bundle-version="[3.5.0,4.0.0)",
org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
diff --git a/bundles/org.eclipse.emf.emfstore.example.installer/examples/org.eclipse.emf.emfstore.example.helloworld/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.example.installer/examples/org.eclipse.emf.emfstore.example.helloworld/META-INF/MANIFEST.MF
index 4249857..38c4dce 100644
--- a/bundles/org.eclipse.emf.emfstore.example.installer/examples/org.eclipse.emf.emfstore.example.helloworld/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.example.installer/examples/org.eclipse.emf.emfstore.example.helloworld/META-INF/MANIFEST.MF
@@ -2,11 +2,11 @@
Bundle-ManifestVersion: 2
Bundle-Name: Example Hello World
Bundle-SymbolicName: org.eclipse.emf.emfstore.example.helloworld;singleton:=true
-Bundle-Version: 1.0.2.qualifie
-Require-Bundle: org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.0.2,2.0.0)",
+Bundle-Version: 1.0.4.qualifie
+Require-Bundle: org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.0.4,2.0.0)",
org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.emf.emfstore.client.model.edit;bundle-version="[1.0.2,2.0.0)",
+ org.eclipse.emf.emfstore.client.model.edit;bundle-version="[1.0.4,2.0.0)",
org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)"
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.emfstore.example.helloworld;version="1.0.2";uses:="org.eclipse.emf.emfstore.client,org.eclipse.equinox.app"
+Export-Package: org.eclipse.emf.emfstore.example.helloworld;version="1.0.4";uses:="org.eclipse.emf.emfstore.client,org.eclipse.equinox.app"
diff --git a/bundles/org.eclipse.emf.emfstore.example.installer/examples/org.eclipse.emf.emfstore.example.merging/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.example.installer/examples/org.eclipse.emf.emfstore.example.merging/META-INF/MANIFEST.MF
index a2f8e0a..a651ba3 100644
--- a/bundles/org.eclipse.emf.emfstore.example.installer/examples/org.eclipse.emf.emfstore.example.merging/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.example.installer/examples/org.eclipse.emf.emfstore.example.merging/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
Bundle-ManifestVersion: 2
Bundle-Name: Example Merging client
Bundle-SymbolicName: org.eclipse.emf.emfstore.example.merging;singleton:=true
-Bundle-Version: 1.0.2.qualifier
-Require-Bundle: org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.0.2,2.0.0)",
+Bundle-Version: 1.0.4.qualifier
+Require-Bundle: org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.0.4,2.0.0)",
org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.emf.emfstore.client.model.edit;bundle-version="[1.0.2,2.0.0)",
+ org.eclipse.emf.emfstore.client.model.edit;bundle-version="[1.0.4,2.0.0)",
org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)",
- org.eclipse.emf.emfstore.example.helloworld;bundle-version="[1.0.2,2.0.0)",
- org.eclipse.emf.emfstore.server;bundle-version="[1.0.2,2.0.0)"
+ org.eclipse.emf.emfstore.example.helloworld;bundle-version="[1.0.4,2.0.0)",
+ org.eclipse.emf.emfstore.server;bundle-version="[1.0.4,2.0.0)"
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.emfstore.example.merging;version="1.0.2";uses:="org.eclipse.emf.emfstore.client,org.eclipse.equinox.app"
+Export-Package: org.eclipse.emf.emfstore.example.merging;version="1.0.4";uses:="org.eclipse.emf.emfstore.client,org.eclipse.equinox.app"
diff --git a/bundles/org.eclipse.emf.emfstore.example.installer/pom.xml b/bundles/org.eclipse.emf.emfstore.example.installer/pom.xml
index ce585c3..c72c47a 100644
--- a/bundles/org.eclipse.emf.emfstore.example.installer/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.example.installer/pom.xml
@@ -5,11 +5,11 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.example.installer</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/bundles/org.eclipse.emf.emfstore.example.merging/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.example.merging/META-INF/MANIFEST.MF
index 1fa2f17..10a29a0 100644
--- a/bundles/org.eclipse.emf.emfstore.example.merging/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.example.merging/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
Bundle-ManifestVersion: 2
Bundle-Name: Example Merging client
Bundle-SymbolicName: org.eclipse.emf.emfstore.example.merging;singleton:=true
-Bundle-Version: 1.0.2.qualifier
-Require-Bundle: org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.0.2,2.0.0)",
+Bundle-Version: 1.0.4.qualifier
+Require-Bundle: org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.0.4,2.0.0)",
org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.emf.emfstore.client.model.edit;bundle-version="[1.0.2,2.0.0)",
+ org.eclipse.emf.emfstore.client.model.edit;bundle-version="[1.0.4,2.0.0)",
org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)",
- org.eclipse.emf.emfstore.example.helloworld;bundle-version="[1.0.2,2.0.0)",
- org.eclipse.emf.emfstore.server;bundle-version="[1.0.2,2.0.0)"
+ org.eclipse.emf.emfstore.example.helloworld;bundle-version="[1.0.4,2.0.0)",
+ org.eclipse.emf.emfstore.server;bundle-version="[1.0.4,2.0.0)"
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.emfstore.example.merging;version="1.0.2"
+Export-Package: org.eclipse.emf.emfstore.example.merging;version="1.0.4"
diff --git a/bundles/org.eclipse.emf.emfstore.example.merging/pom.xml b/bundles/org.eclipse.emf.emfstore.example.merging/pom.xml
index 1986bdc..0e6541b 100644
--- a/bundles/org.eclipse.emf.emfstore.example.merging/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.example.merging/pom.xml
@@ -5,11 +5,11 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.example.merging</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/bundles/org.eclipse.emf.emfstore.example.sessionprovider/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.example.sessionprovider/META-INF/MANIFEST.MF
index 16e1084..5f0b799 100644
--- a/bundles/org.eclipse.emf.emfstore.example.sessionprovider/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.example.sessionprovider/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
Bundle-ManifestVersion: 2
Bundle-Name: Example SessionProvider
Bundle-SymbolicName: org.eclipse.emf.emfstore.example.sessionprovider;singleton:=true
-Bundle-Version: 1.0.2.qualifier
+Bundle-Version: 1.0.4.qualifier
Bundle-Activator: org.eclipse.emf.emfstore.exampleclient.Activator
-Require-Bundle: org.eclipse.emf.emfstore.client;bundle-version="[1.0.2,2.0.0)",
- org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.0.2,2.0.0)",
+Require-Bundle: org.eclipse.emf.emfstore.client;bundle-version="[1.0.4,2.0.0)",
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.0.4,2.0.0)",
org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.emfstore.exampleclient;version="1.0.2";x-internal:=true
+Export-Package: org.eclipse.emf.emfstore.exampleclient;version="1.0.4";x-internal:=true
diff --git a/bundles/org.eclipse.emf.emfstore.example.sessionprovider/pom.xml b/bundles/org.eclipse.emf.emfstore.example.sessionprovider/pom.xml
index 069dcdc..5d4f66f 100644
--- a/bundles/org.eclipse.emf.emfstore.example.sessionprovider/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.example.sessionprovider/pom.xml
@@ -5,11 +5,11 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.example.sessionprovider</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/bundles/org.eclipse.emf.emfstore.examplemodel.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.examplemodel.edit/META-INF/MANIFEST.MF
index c17e3b3..bb35ea5 100644
--- a/bundles/org.eclipse.emf.emfstore.examplemodel.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.examplemodel.edit/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@
Bundle-ManifestVersion: 2
Bundle-Name: EMFStore Bowling Example Model Edit
Bundle-SymbolicName: org.eclipse.emf.emfstore.examplemodel.edit;singleton:=true
-Bundle-Version: 1.0.2.qualifier
+Bundle-Version: 1.0.4.qualifier
Bundle-ClassPath: .
Bundle-Activator: org.eclipse.emf.emfstore.bowling.provider.BowlingEditPlugin$Implementation
Bundle-Vendor: Eclipse Modeling Project
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.emf.emfstore.bowling.provider;version="1.0.2"
+Export-Package: org.eclipse.emf.emfstore.bowling.provider;version="1.0.4"
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.emf.emfstore.examplemodel;visibility:=reexport;bundle-version="[1.0.2,2.0.0)",
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.0.4,2.0.0)";visibility:=reexport,
org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)"
Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.emfstore.examplemodel.edit/pom.xml b/bundles/org.eclipse.emf.emfstore.examplemodel.edit/pom.xml
index 8f67e21..3a018cb 100644
--- a/bundles/org.eclipse.emf.emfstore.examplemodel.edit/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.examplemodel.edit/pom.xml
@@ -5,11 +5,11 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.examplemodel.edit</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/bundles/org.eclipse.emf.emfstore.examplemodel/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.examplemodel/META-INF/MANIFEST.MF
index 18cb032..e929c30 100644
--- a/bundles/org.eclipse.emf.emfstore.examplemodel/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.examplemodel/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.emf.emfstore.examplemodel;singleton:=true
-Bundle-Version: 1.0.2.qualifier
+Bundle-Version: 1.0.4.qualifier
Bundle-ClassPath: .
Bundle-Vendor: %providerName
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.emf.emfstore.bowling;version="1.0.2",
- org.eclipse.emf.emfstore.bowling.impl;version="1.0.2",
- org.eclipse.emf.emfstore.bowling.util;version="1.0.2"
+Export-Package: org.eclipse.emf.emfstore.bowling;version="1.0.4",
+ org.eclipse.emf.emfstore.bowling.impl;version="1.0.4",
+ org.eclipse.emf.emfstore.bowling.util;version="1.0.4"
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)"
Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.emfstore.examplemodel/pom.xml b/bundles/org.eclipse.emf.emfstore.examplemodel/pom.xml
index dca18b3..b424a25 100644
--- a/bundles/org.eclipse.emf.emfstore.examplemodel/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.examplemodel/pom.xml
@@ -5,11 +5,11 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.examplemodel</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/bundles/org.eclipse.emf.emfstore.fuzzy.emf.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.fuzzy.emf.edit/META-INF/MANIFEST.MF
index d39415e..3ffbdbd 100644
--- a/bundles/org.eclipse.emf.emfstore.fuzzy.emf.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.fuzzy.emf.edit/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
Bundle-ManifestVersion: 2
Bundle-Name: Fuzzy EMF Edit plugin
Bundle-SymbolicName: org.eclipse.emf.emfstore.fuzzy.emf.edit;singleton:=true
-Bundle-Version: 1.0.2.qualifier
+Bundle-Version: 1.0.4.qualifier
Bundle-ClassPath: .
Bundle-Activator: org.eclipse.emf.emfstore.fuzzy.emf.config.provider.ConfigEditPlugin$Implementation
Bundle-Vendor: Eclipse Modeling Project
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.emf.emfstore.fuzzy.emf.config.provider;version="1.0.2"
-Require-Bundle: org.eclipse.emf.emfstore.fuzzy.emf;bundle-version="[1.0.2,2.0.0)";visibility:=reexport,
+Export-Package: org.eclipse.emf.emfstore.fuzzy.emf.config.provider;version="1.0.4"
+Require-Bundle: org.eclipse.emf.emfstore.fuzzy.emf;bundle-version="[1.0.4,2.0.0)";visibility:=reexport,
org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)";visibility:=reexport
Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.emfstore.fuzzy.emf.edit/pom.xml b/bundles/org.eclipse.emf.emfstore.fuzzy.emf.edit/pom.xml
index 69e6cf5..0daa4ff 100644
--- a/bundles/org.eclipse.emf.emfstore.fuzzy.emf.edit/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.fuzzy.emf.edit/pom.xml
@@ -5,11 +5,11 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.fuzzy.emf.edit</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/bundles/org.eclipse.emf.emfstore.fuzzy.emf.editor/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.fuzzy.emf.editor/META-INF/MANIFEST.MF
index d660695..bb8d5ee 100644
--- a/bundles/org.eclipse.emf.emfstore.fuzzy.emf.editor/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.fuzzy.emf.editor/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
Bundle-ManifestVersion: 2
Bundle-Name: EMFDataProvider Editor
Bundle-SymbolicName: org.eclipse.emf.emfstore.fuzzy.emf.editor;singleton:=true
-Bundle-Version: 1.0.2.qualifier
+Bundle-Version: 1.0.4.qualifier
Bundle-ClassPath: .
Bundle-Activator: org.eclipse.emf.emfstore.fuzzy.emf.config.presentation.ConfigEditorPlugin$Implementation
Bundle-Vendor: Eclipse Modeling Project
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.emf.emfstore.fuzzy.emf.config.presentation;version="1.0.2"
+Export-Package: org.eclipse.emf.emfstore.fuzzy.emf.config.presentation;version="1.0.4"
Require-Bundle: org.eclipse.core.resources;bundle-version="[3.7.0,4.0.0)";visibility:=reexport,
- org.eclipse.emf.emfstore.fuzzy.emf.edit;bundle-version="[1.0.2,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.emfstore.fuzzy.emf.edit;bundle-version="[1.0.4,2.0.0)";visibility:=reexport,
org.eclipse.emf.edit.ui;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
org.eclipse.ui.ide;bundle-version="[3.7.0,4.0.0)";visibility:=reexport
Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.emfstore.fuzzy.emf.editor/pom.xml b/bundles/org.eclipse.emf.emfstore.fuzzy.emf.editor/pom.xml
index 4934add..f6b8d26 100644
--- a/bundles/org.eclipse.emf.emfstore.fuzzy.emf.editor/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.fuzzy.emf.editor/pom.xml
@@ -5,11 +5,11 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.fuzzy.emf.editor</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/bundles/org.eclipse.emf.emfstore.fuzzy.emf.example/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.fuzzy.emf.example/META-INF/MANIFEST.MF
index 12e1d20..e4fc948 100644
--- a/bundles/org.eclipse.emf.emfstore.fuzzy.emf.example/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.fuzzy.emf.example/META-INF/MANIFEST.MF
@@ -2,8 +2,8 @@
Bundle-ManifestVersion: 2
Bundle-Name: Example Plugin for the Fuzzy EMF Testing
Bundle-SymbolicName: org.eclipse.emf.emfstore.fuzzy.emf.example
-Bundle-Version: 1.0.2.qualifier
+Bundle-Version: 1.0.4.qualifier
Bundle-Vendor: Eclipse Modeling Project
Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: org.eclipse.emf.emfstore.fuzzy.emf;bundle-version="[1.0.2,2.0.0)";visibility:=reexport
-Export-Package: org.eclipse.emf.emfstore.fuzzy.emf.example;version="1.0.2";x-internal:=true
+Require-Bundle: org.eclipse.emf.emfstore.fuzzy.emf;bundle-version="[1.0.4,2.0.0)";visibility:=reexport
+Export-Package: org.eclipse.emf.emfstore.fuzzy.emf.example;version="1.0.4";x-internal:=true
diff --git a/bundles/org.eclipse.emf.emfstore.fuzzy.emf.example/pom.xml b/bundles/org.eclipse.emf.emfstore.fuzzy.emf.example/pom.xml
index be8a9c5..23e67df 100644
--- a/bundles/org.eclipse.emf.emfstore.fuzzy.emf.example/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.fuzzy.emf.example/pom.xml
@@ -5,11 +5,11 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.fuzzy.emf.example</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/bundles/org.eclipse.emf.emfstore.fuzzy.emf/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.fuzzy.emf/META-INF/MANIFEST.MF
index 7041f5b..58a27ae 100644
--- a/bundles/org.eclipse.emf.emfstore.fuzzy.emf/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.fuzzy.emf/META-INF/MANIFEST.MF
@@ -2,21 +2,21 @@
Bundle-ManifestVersion: 2
Bundle-Name: EMFDataProvider for FuzzyTestRunner
Bundle-SymbolicName: org.eclipse.emf.emfstore.fuzzy.emf;singleton:=true
-Bundle-Version: 1.0.2.qualifier
+Bundle-Version: 1.0.4.qualifier
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-ClassPath: .,
lib/dom4j-1.6.1.jar
Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.emfstore.fuzzy.emf;version="1.0.2",
- org.eclipse.emf.emfstore.fuzzy.emf.config;version="1.0.2",
- org.eclipse.emf.emfstore.fuzzy.emf.config.impl;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.fuzzy.emf.config.util;version="1.0.2",
- org.eclipse.emf.emfstore.fuzzy.emf.diff;version="1.0.2"
-Require-Bundle: org.eclipse.emf.emfstore.modelmutator;bundle-version="[1.0.2,2.0.0)";visibility:=reexport,
- org.eclipse.emf.emfstore.fuzzy;bundle-version="[1.0.2,2.0.0)";visibility:=reexport,
+Export-Package: org.eclipse.emf.emfstore.fuzzy.emf;version="1.0.4",
+ org.eclipse.emf.emfstore.fuzzy.emf.config;version="1.0.4",
+ org.eclipse.emf.emfstore.fuzzy.emf.config.impl;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.fuzzy.emf.config.util;version="1.0.4",
+ org.eclipse.emf.emfstore.fuzzy.emf.diff;version="1.0.4"
+Require-Bundle: org.eclipse.emf.emfstore.modelmutator;bundle-version="[1.0.4,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.emfstore.fuzzy;bundle-version="[1.0.4,2.0.0)";visibility:=reexport,
org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
org.eclipse.emf.ecore.xmi;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)";visibility:=reexport,
org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
- org.eclipse.emf.emfstore.client.test;bundle-version="[1.0.2,2.0.0)"
+ org.eclipse.emf.emfstore.client.test;bundle-version="[1.0.4,2.0.0)"
Bundle-Vendor: Eclipse Modeling Project
diff --git a/bundles/org.eclipse.emf.emfstore.fuzzy.emf/pom.xml b/bundles/org.eclipse.emf.emfstore.fuzzy.emf/pom.xml
index b132b79..8d2660d 100644
--- a/bundles/org.eclipse.emf.emfstore.fuzzy.emf/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.fuzzy.emf/pom.xml
@@ -5,12 +5,12 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.fuzzy.emf</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-test-plugin</packaging>
<build>
diff --git a/bundles/org.eclipse.emf.emfstore.fuzzy/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.fuzzy/META-INF/MANIFEST.MF
index 4489cc9..cf4233a 100644
--- a/bundles/org.eclipse.emf.emfstore.fuzzy/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.fuzzy/META-INF/MANIFEST.MF
@@ -2,11 +2,11 @@
Bundle-ManifestVersion: 2
Bundle-Name: Fuzzy JUnit Testing Framework
Bundle-SymbolicName: org.eclipse.emf.emfstore.fuzzy;singleton:=true
-Bundle-Version: 1.0.2.qualifier
+Bundle-Version: 1.0.4.qualifier
Bundle-ClassPath: .
Bundle-Vendor: Eclipse Modeling Project
Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.emfstore.fuzzy;version="1.0.2"
+Export-Package: org.eclipse.emf.emfstore.fuzzy;version="1.0.4"
Require-Bundle: org.junit;bundle-version="[4.10.0,5.0.0)";visibility:=reexport
Eclipse-LazyStart: true
Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.emfstore.fuzzy/pom.xml b/bundles/org.eclipse.emf.emfstore.fuzzy/pom.xml
index 1a8e555..7fbd52c 100644
--- a/bundles/org.eclipse.emf.emfstore.fuzzy/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.fuzzy/pom.xml
@@ -5,11 +5,11 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.fuzzy</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/bundles/org.eclipse.emf.emfstore.migration/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.migration/META-INF/MANIFEST.MF
index 4958fba..a3d4d6e 100644
--- a/bundles/org.eclipse.emf.emfstore.migration/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.migration/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
Bundle-ManifestVersion: 2
Bundle-Name: EMFStore Migration
Bundle-SymbolicName: org.eclipse.emf.emfstore.migration;singleton:=true
-Bundle-Version: 1.0.2.qualifier
+Bundle-Version: 1.0.4.qualifier
Bundle-Vendor: Eclipse Modeling Project
-Require-Bundle: org.eclipse.emf.emfstore.common.model;bundle-version="[1.0.2,2.0.0)",
+Require-Bundle: org.eclipse.emf.emfstore.common.model;bundle-version="[1.0.4,2.0.0)",
org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
org.eclipse.emf.ecore.xmi;bundle-version="[2.5.0,3.0.0)"
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emf.emfstore.internal.migration;version="1.0.2";
+Export-Package: org.eclipse.emf.emfstore.internal.migration;version="1.0.4";
x-friends:="org.eclipse.emf.emfstore.client,
org.eclipse.emf.emfstore.server";uses:="org.eclipse.core.runtime"
diff --git a/bundles/org.eclipse.emf.emfstore.migration/pom.xml b/bundles/org.eclipse.emf.emfstore.migration/pom.xml
index 284331d..304a621 100644
--- a/bundles/org.eclipse.emf.emfstore.migration/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.migration/pom.xml
@@ -5,11 +5,11 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.migration</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/bundles/org.eclipse.emf.emfstore.modelmutator/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.modelmutator/META-INF/MANIFEST.MF
index e8bc9d3..ddc8d1c 100644
--- a/bundles/org.eclipse.emf.emfstore.modelmutator/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.modelmutator/META-INF/MANIFEST.MF
@@ -2,10 +2,10 @@
Bundle-ManifestVersion: 2
Bundle-Name: EMF ModelMutator
Bundle-SymbolicName: org.eclipse.emf.emfstore.modelmutator
-Bundle-Version: 1.0.2.qualifier
+Bundle-Version: 1.0.4.qualifier
Bundle-Vendor: Eclipse Modeling Project
Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.emf.emfstore.internal.modelmutator.api;version="1.0.2",
- org.eclipse.emf.emfstore.internal.modelmutator.intern;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.modelmutator.intern.attribute;version="1.0.2";x-internal:=true
+Export-Package: org.eclipse.emf.emfstore.internal.modelmutator.api;version="1.0.4",
+ org.eclipse.emf.emfstore.internal.modelmutator.intern;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.modelmutator.intern.attribute;version="1.0.4";x-internal:=true
Require-Bundle: org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)"
diff --git a/bundles/org.eclipse.emf.emfstore.modelmutator/pom.xml b/bundles/org.eclipse.emf.emfstore.modelmutator/pom.xml
index 2348ed4..2ce7403 100644
--- a/bundles/org.eclipse.emf.emfstore.modelmutator/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.modelmutator/pom.xml
@@ -5,11 +5,11 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.modelmutator</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/bundles/org.eclipse.emf.emfstore.server.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.server.model.edit/META-INF/MANIFEST.MF
index 7a148b5..33ebe14 100644
--- a/bundles/org.eclipse.emf.emfstore.server.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.server.model.edit/META-INF/MANIFEST.MF
@@ -2,23 +2,23 @@
Bundle-ManifestVersion: 2
Bundle-Name: EMFStore Model Edit
Bundle-SymbolicName: org.eclipse.emf.emfstore.server.model.edit;singleton:=true
-Bundle-Version: 1.0.2.qualifier
+Bundle-Version: 1.0.4.qualifier
Bundle-ClassPath: .
Bundle-Activator: org.eclipse.emf.emfstore.internal.server.model.provider.ServerEditPlugin$Implementation
Bundle-Vendor: Eclipse Modeling Project
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.emf.emfstore.internal.server.model.accesscontrol.provider;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.server.model.accesscontrol.roles.provider;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.server.model.provider;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.model.edit,org.eclipse.emf.emfstore.client.test",
- org.eclipse.emf.emfstore.internal.server.model.url.provider;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.server.model.versioning.events.provider;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.server.model.versioning.events.server.provider;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.server.model.versioning.operations.provider;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.ui",
- org.eclipse.emf.emfstore.internal.server.model.versioning.operations.semantic.provider;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.server.model.versioning.provider;version="1.0.2";x-internal:=true
-Require-Bundle: org.eclipse.emf.emfstore.server.model;bundle-version="[1.0.2,2.0.0)";visibility:=reexport,
- org.eclipse.emf.emfstore.common.model.edit;bundle-version="[1.0.2,2.0.0)",
+Export-Package: org.eclipse.emf.emfstore.internal.server.model.accesscontrol.provider;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.server.model.accesscontrol.roles.provider;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.server.model.provider;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.model.edit,org.eclipse.emf.emfstore.client.test",
+ org.eclipse.emf.emfstore.internal.server.model.url.provider;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.server.model.versioning.events.provider;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.server.model.versioning.events.server.provider;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.server.model.versioning.operations.provider;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.ui",
+ org.eclipse.emf.emfstore.internal.server.model.versioning.operations.semantic.provider;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.server.model.versioning.provider;version="1.0.4";x-internal:=true
+Require-Bundle: org.eclipse.emf.emfstore.server.model;bundle-version="[1.0.4,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.emfstore.common.model.edit;bundle-version="[1.0.4,2.0.0)",
org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)"
Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.emfstore.server.model.edit/pom.xml b/bundles/org.eclipse.emf.emfstore.server.model.edit/pom.xml
index d5fd94f..b85a0ef 100644
--- a/bundles/org.eclipse.emf.emfstore.server.model.edit/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.server.model.edit/pom.xml
@@ -5,11 +5,11 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.server.model.edit</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/bundles/org.eclipse.emf.emfstore.server.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.server.model/META-INF/MANIFEST.MF
index 2340ed0..6e2bbeb 100644
--- a/bundles/org.eclipse.emf.emfstore.server.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.server.model/META-INF/MANIFEST.MF
@@ -2,44 +2,44 @@
Bundle-ManifestVersion: 2
Bundle-Name: EMFStore Server Model
Bundle-SymbolicName: org.eclipse.emf.emfstore.server.model;singleton:=true
-Bundle-Version: 1.0.2.qualifier
+Bundle-Version: 1.0.4.qualifier
Bundle-ClassPath: .
Bundle-Vendor: Eclipse Modeling Project
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.emf.emfstore.internal.server.model;version="1.0.2";
+Export-Package: org.eclipse.emf.emfstore.internal.server.model;version="1.0.4";
x-friends:="org.eclipse.emf.emfstore.server,
org.eclipse.emf.emfstore.client,
org.eclipse.emf.emfstore.client.ui,
org.eclipse.emf.emfstore.client.model.edit,
org.eclipse.emf.emfstore.client.test,
org.eclipse.emf.emfstore.server.model.edit",
- org.eclipse.emf.emfstore.internal.server.model.accesscontrol;version="1.0.2";
+ org.eclipse.emf.emfstore.internal.server.model.accesscontrol;version="1.0.4";
x-friends:="org.eclipse.emf.emfstore.server,
org.eclipse.emf.emfstore.client,
org.eclipse.emf.emfstore.client.model.edit,
org.eclipse.emf.emfstore.client.test,
org.eclipse.emf.emfstore.client.ui,
org.eclipse.emf.emfstore.server.model.edit",
- org.eclipse.emf.emfstore.internal.server.model.accesscontrol.impl;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.server",
- org.eclipse.emf.emfstore.internal.server.model.accesscontrol.roles;version="1.0.2";
+ org.eclipse.emf.emfstore.internal.server.model.accesscontrol.impl;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.server",
+ org.eclipse.emf.emfstore.internal.server.model.accesscontrol.roles;version="1.0.4";
x-friends:="org.eclipse.emf.emfstore.server,
org.eclipse.emf.emfstore.client,
org.eclipse.emf.emfstore.client.test,
org.eclipse.emf.emfstore.server.model.edit,
org.eclipse.emf.emfstore.client.ui",
- org.eclipse.emf.emfstore.internal.server.model.accesscontrol.roles.impl;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.server",
- org.eclipse.emf.emfstore.internal.server.model.accesscontrol.roles.util;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.server.model.edit",
- org.eclipse.emf.emfstore.internal.server.model.accesscontrol.util;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.server.model.edit",
- org.eclipse.emf.emfstore.internal.server.model.impl;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.client",
- org.eclipse.emf.emfstore.internal.server.model.impl.api;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.ui,org.eclipse.emf.emfstore.client,org.eclipse.emf.emfstore.client.test",
- org.eclipse.emf.emfstore.internal.server.model.impl.api.query;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.ui,org.eclipse.emf.emfstore.client,org.eclipse.emf.emfstore.client.test",
- org.eclipse.emf.emfstore.internal.server.model.impl.api.versionspec;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.ui,org.eclipse.emf.emfstore.client,org.eclipse.emf.emfstore.client.test",
- org.eclipse.emf.emfstore.internal.server.model.url;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.client,org.eclipse.emf.emfstore.server.model.edit",
- org.eclipse.emf.emfstore.internal.server.model.url.impl;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.server",
- org.eclipse.emf.emfstore.internal.server.model.url.util;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.server.model.edit",
- org.eclipse.emf.emfstore.internal.server.model.util;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.server.model.edit",
- org.eclipse.emf.emfstore.internal.server.model.versioning;version="1.0.2";
+ org.eclipse.emf.emfstore.internal.server.model.accesscontrol.roles.impl;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.server",
+ org.eclipse.emf.emfstore.internal.server.model.accesscontrol.roles.util;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.server.model.edit",
+ org.eclipse.emf.emfstore.internal.server.model.accesscontrol.util;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.server.model.edit",
+ org.eclipse.emf.emfstore.internal.server.model.impl;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.client",
+ org.eclipse.emf.emfstore.internal.server.model.impl.api;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.ui,org.eclipse.emf.emfstore.client,org.eclipse.emf.emfstore.client.test",
+ org.eclipse.emf.emfstore.internal.server.model.impl.api.query;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.ui,org.eclipse.emf.emfstore.client,org.eclipse.emf.emfstore.client.test",
+ org.eclipse.emf.emfstore.internal.server.model.impl.api.versionspec;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.ui,org.eclipse.emf.emfstore.client,org.eclipse.emf.emfstore.client.test",
+ org.eclipse.emf.emfstore.internal.server.model.url;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.client,org.eclipse.emf.emfstore.server.model.edit",
+ org.eclipse.emf.emfstore.internal.server.model.url.impl;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.server",
+ org.eclipse.emf.emfstore.internal.server.model.url.util;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.server.model.edit",
+ org.eclipse.emf.emfstore.internal.server.model.util;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.server.model.edit",
+ org.eclipse.emf.emfstore.internal.server.model.versioning;version="1.0.4";
x-friends:="org.eclipse.emf.emfstore.client,
org.eclipse.emf.emfstore.client.model.edit,
org.eclipse.emf.emfstore.client.test,
@@ -47,14 +47,14 @@
org.eclipse.emf.emfstore.server,
org.eclipse.emf.emfstore.server.model.edit,
org.eclipse.emf.emfstore.example.merging",
- org.eclipse.emf.emfstore.internal.server.model.versioning.events;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.server.model.edit",
- org.eclipse.emf.emfstore.internal.server.model.versioning.events.impl;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.server",
- org.eclipse.emf.emfstore.internal.server.model.versioning.events.server;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.server.model.edit",
- org.eclipse.emf.emfstore.internal.server.model.versioning.events.server.impl;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.server",
- org.eclipse.emf.emfstore.internal.server.model.versioning.events.server.util;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.server.model.edit",
- org.eclipse.emf.emfstore.internal.server.model.versioning.events.util;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.server.model.edit",
- org.eclipse.emf.emfstore.internal.server.model.versioning.impl;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.client",
- org.eclipse.emf.emfstore.internal.server.model.versioning.operations;version="1.0.2";
+ org.eclipse.emf.emfstore.internal.server.model.versioning.events;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.server.model.edit",
+ org.eclipse.emf.emfstore.internal.server.model.versioning.events.impl;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.server",
+ org.eclipse.emf.emfstore.internal.server.model.versioning.events.server;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.server.model.edit",
+ org.eclipse.emf.emfstore.internal.server.model.versioning.events.server.impl;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.server",
+ org.eclipse.emf.emfstore.internal.server.model.versioning.events.server.util;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.server.model.edit",
+ org.eclipse.emf.emfstore.internal.server.model.versioning.events.util;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.server.model.edit",
+ org.eclipse.emf.emfstore.internal.server.model.versioning.impl;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.client",
+ org.eclipse.emf.emfstore.internal.server.model.versioning.operations;version="1.0.4";
x-friends:="org.eclipse.emf.emfstore.server,
org.eclipse.emf.emfstore.client.model.edit,
org.eclipse.emf.emfstore.client.ui,
@@ -62,25 +62,25 @@
org.eclipse.emf.emfstore.client,
org.eclipse.emf.emfstore.server.model.edit,
org.eclipse.emf.emfstore.example.merging",
- org.eclipse.emf.emfstore.internal.server.model.versioning.operations.impl;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.client,org.eclipse.emf.emfstore.client.test",
- org.eclipse.emf.emfstore.internal.server.model.versioning.operations.semantic;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.client,org.eclipse.emf.emfstore.server.model.edit",
- org.eclipse.emf.emfstore.internal.server.model.versioning.operations.semantic.impl;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.server",
- org.eclipse.emf.emfstore.internal.server.model.versioning.operations.semantic.util;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.server.model.edit",
- org.eclipse.emf.emfstore.internal.server.model.versioning.operations.util;version="1.0.2";
+ org.eclipse.emf.emfstore.internal.server.model.versioning.operations.impl;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.client,org.eclipse.emf.emfstore.client.test",
+ org.eclipse.emf.emfstore.internal.server.model.versioning.operations.semantic;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.client,org.eclipse.emf.emfstore.server.model.edit",
+ org.eclipse.emf.emfstore.internal.server.model.versioning.operations.semantic.impl;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.server",
+ org.eclipse.emf.emfstore.internal.server.model.versioning.operations.semantic.util;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.server.model.edit",
+ org.eclipse.emf.emfstore.internal.server.model.versioning.operations.util;version="1.0.4";
x-friends:="org.eclipse.emf.emfstore.server,
org.eclipse.emf.emfstore.client,
org.eclipse.emf.emfstore.client.test,
org.eclipse.emf.emfstore.server.model.edit,
org.eclipse.emf.emfstore.client.ui",
- org.eclipse.emf.emfstore.internal.server.model.versioning.util;version="1.0.2";
+ org.eclipse.emf.emfstore.internal.server.model.versioning.util;version="1.0.4";
x-friends:="org.eclipse.emf.emfstore.server,
org.eclipse.emf.emfstore.client.test,
org.eclipse.emf.emfstore.server.model.edit,
org.eclipse.emf.emfstore.client.ui",
- org.eclipse.emf.emfstore.server.model;version="1.0.2",
- org.eclipse.emf.emfstore.server.model.query;version="1.0.2",
- org.eclipse.emf.emfstore.server.model.versionspec;version="1.0.2"
-Require-Bundle: org.eclipse.emf.emfstore.common.model;bundle-version="[1.0.2,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.emfstore.server.model;version="1.0.4",
+ org.eclipse.emf.emfstore.server.model.query;version="1.0.4",
+ org.eclipse.emf.emfstore.server.model.versionspec;version="1.0.4"
+Require-Bundle: org.eclipse.emf.emfstore.common.model;bundle-version="[1.0.4,2.0.0)";visibility:=reexport,
org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)",
org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
org.eclipse.emf.ecore.xmi;bundle-version="[2.5.0,3.0.0)"
diff --git a/bundles/org.eclipse.emf.emfstore.server.model/pom.xml b/bundles/org.eclipse.emf.emfstore.server.model/pom.xml
index d5e68a0..9ff09e2 100644
--- a/bundles/org.eclipse.emf.emfstore.server.model/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.server.model/pom.xml
@@ -5,11 +5,11 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.server.model</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/bundles/org.eclipse.emf.emfstore.server/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.server/META-INF/MANIFEST.MF
index cd0fbc6..65e6a87 100644
--- a/bundles/org.eclipse.emf.emfstore.server/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.server/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@
Bundle-ManifestVersion: 2
Bundle-Name: EMFStore Server
Bundle-SymbolicName: org.eclipse.emf.emfstore.server;singleton:=true
-Bundle-Version: 1.0.2.qualifier
+Bundle-Version: 1.0.4.qualifier
Bundle-Activator: org.eclipse.emf.emfstore.internal.server.Activator
Bundle-Vendor: Eclipse Modeling Project
Require-Bundle: org.apache.commons.codec;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.emf.emfstore.server.model;bundle-version="[1.0.2,2.0.0)";visibility:=reexport,
- org.eclipse.emf.emfstore.migration;bundle-version="[1.0.2,2.0.0)",
- org.eclipse.emf.emfstore.common;bundle-version="[1.0.2,2.0.0)";visibility:=reexport,
- org.eclipse.emf.emfstore.common.model;bundle-version="[1.0.2,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.emfstore.server.model;bundle-version="[1.0.4,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.emfstore.migration;bundle-version="[1.0.4,2.0.0)",
+ org.eclipse.emf.emfstore.common;bundle-version="[1.0.4,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.emfstore.common.model;bundle-version="[1.0.4,2.0.0)";visibility:=reexport,
org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)",
org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
org.eclipse.emf.ecore.xmi;bundle-version="[2.5.0,3.0.0)"
@@ -30,30 +30,30 @@
org.apache.xmlrpc.server;version="3.1.3",
org.apache.xmlrpc.util;version="3.1.3",
org.apache.xmlrpc.webserver;version="3.1.3",
- org.eclipse.emf.emfstore.internal.server;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client,org.eclipse.emf.emfstore.client.test,org.eclipse.emf.emfstore.client.ui",
- org.eclipse.emf.emfstore.internal.server.accesscontrol;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.test",
- org.eclipse.emf.emfstore.internal.server.accesscontrol.authentication;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.test",
- org.eclipse.emf.emfstore.internal.server.accesscontrol.authentication.factory;version="1.0.2",
- org.eclipse.emf.emfstore.internal.server.accesscontrol.authentication.verifiers;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.test",
- org.eclipse.emf.emfstore.internal.server.conflictDetection;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client,org.eclipse.emf.emfstore.client.test,org.eclipse.emf.emfstore.client.ui",
- org.eclipse.emf.emfstore.internal.server.connection;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.test",
- org.eclipse.emf.emfstore.internal.server.connection.xmlrpc;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client",
- org.eclipse.emf.emfstore.internal.server.connection.xmlrpc.util;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client",
- org.eclipse.emf.emfstore.internal.server.core;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client.test",
- org.eclipse.emf.emfstore.internal.server.core.helper;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.server.core.subinterfaces;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.server.eventmanager;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.server.exceptions;version="1.0.2";
+ org.eclipse.emf.emfstore.internal.server;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client,org.eclipse.emf.emfstore.client.test,org.eclipse.emf.emfstore.client.ui",
+ org.eclipse.emf.emfstore.internal.server.accesscontrol;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.test",
+ org.eclipse.emf.emfstore.internal.server.accesscontrol.authentication;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.test",
+ org.eclipse.emf.emfstore.internal.server.accesscontrol.authentication.factory;version="1.0.4",
+ org.eclipse.emf.emfstore.internal.server.accesscontrol.authentication.verifiers;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.test",
+ org.eclipse.emf.emfstore.internal.server.conflictDetection;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client,org.eclipse.emf.emfstore.client.test,org.eclipse.emf.emfstore.client.ui",
+ org.eclipse.emf.emfstore.internal.server.connection;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.test",
+ org.eclipse.emf.emfstore.internal.server.connection.xmlrpc;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client",
+ org.eclipse.emf.emfstore.internal.server.connection.xmlrpc.util;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client",
+ org.eclipse.emf.emfstore.internal.server.core;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client.test",
+ org.eclipse.emf.emfstore.internal.server.core.helper;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.server.core.subinterfaces;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.server.eventmanager;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.server.exceptions;version="1.0.4";
x-friends:="org.eclipse.emf.emfstore.client,
org.eclipse.emf.emfstore.client.ui,
org.eclipse.emf.emfstore.client.test,
org.eclipse.emf.emfstore.example.merging",
- org.eclipse.emf.emfstore.internal.server.filetransfer;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client,org.eclipse.emf.emfstore.client.test",
- org.eclipse.emf.emfstore.internal.server.impl.api;version="1.0.2";x-friends:="org.eclipse.emf.emfstore.client,org.eclipse.emf.emfstore.client.ui",
- org.eclipse.emf.emfstore.internal.server.startup;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.internal.server.storage;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.server;version="1.0.2",
- org.eclipse.emf.emfstore.server.exceptions;version="1.0.2",
- org.eclipse.emf.emfstore.server.observer;version="1.0.2"
+ org.eclipse.emf.emfstore.internal.server.filetransfer;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client,org.eclipse.emf.emfstore.client.test",
+ org.eclipse.emf.emfstore.internal.server.impl.api;version="1.0.4";x-friends:="org.eclipse.emf.emfstore.client,org.eclipse.emf.emfstore.client.ui",
+ org.eclipse.emf.emfstore.internal.server.startup;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.internal.server.storage;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.server;version="1.0.4",
+ org.eclipse.emf.emfstore.server.exceptions;version="1.0.4",
+ org.eclipse.emf.emfstore.server.observer;version="1.0.4"
Bundle-ActivationPolicy: lazy
Import-Package: org.apache.commons.logging;version="[1.0.0,2.0.0)"
diff --git a/bundles/org.eclipse.emf.emfstore.server/pom.xml b/bundles/org.eclipse.emf.emfstore.server/pom.xml
index 36da590..6c9f80f 100644
--- a/bundles/org.eclipse.emf.emfstore.server/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.server/pom.xml
@@ -5,11 +5,11 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.server</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/accesscontrol/authentication/verifiers/AbstractAuthenticationControl.java b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/accesscontrol/authentication/verifiers/AbstractAuthenticationControl.java
index e716d33..0f442a7 100644
--- a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/accesscontrol/authentication/verifiers/AbstractAuthenticationControl.java
+++ b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/accesscontrol/authentication/verifiers/AbstractAuthenticationControl.java
@@ -12,7 +12,6 @@
******************************************************************************/
package org.eclipse.emf.emfstore.internal.server.accesscontrol.authentication.verifiers;
-import org.eclipse.emf.emfstore.internal.common.model.util.ModelUtil;
import org.eclipse.emf.emfstore.internal.server.ServerConfiguration;
import org.eclipse.emf.emfstore.internal.server.accesscontrol.AuthenticationControl;
import org.eclipse.emf.emfstore.internal.server.connection.ServerKeyStoreManager;
@@ -145,38 +144,8 @@
*/
// TODO include client name in verification
protected void checkClientVersion(ClientVersionInfo clientVersionInfo) throws ClientVersionOutOfDateException {
-
- if (clientVersionInfo == null) {
- throw new ClientVersionOutOfDateException("No client version recieved.");
- }
-
- final String[] versions = ServerConfiguration.getSplittedProperty(ServerConfiguration.ACCEPTED_VERSIONS);
-
- if (versions == null) {
- final String msg = "No server versions supplied";
- ModelUtil.logWarning(msg, new ClientVersionOutOfDateException(msg));
- return;
- }
-
- for (final String str : versions) {
- if (str.equals(clientVersionInfo.getVersion()) || str.equals(ServerConfiguration.ACCEPTED_VERSIONS_ANY)) {
- return;
- }
- }
-
- final StringBuffer version = new StringBuffer();
-
- for (final String str : versions) {
- if (versions.length == 1) {
- version.append(str + ". ");
- } else {
- version.append(str + ", ");
- }
- }
-
- version.replace(version.length() - 2, version.length(), ".");
-
- throw new ClientVersionOutOfDateException("Client version: " + clientVersionInfo.getVersion()
- + " - Accepted versions: " + version);
+ VersionVerifier.verify(
+ ServerConfiguration.getSplittedProperty(ServerConfiguration.ACCEPTED_VERSIONS),
+ clientVersionInfo);
}
}
diff --git a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/accesscontrol/authentication/verifiers/VersionVerifier.java b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/accesscontrol/authentication/verifiers/VersionVerifier.java
new file mode 100644
index 0000000..e1fe85c
--- /dev/null
+++ b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/accesscontrol/authentication/verifiers/VersionVerifier.java
@@ -0,0 +1,118 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2013 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Edgar - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.emfstore.internal.server.accesscontrol.authentication.verifiers;
+
+import java.util.regex.Pattern;
+
+import org.eclipse.emf.emfstore.internal.common.model.util.ModelUtil;
+import org.eclipse.emf.emfstore.internal.server.ServerConfiguration;
+import org.eclipse.emf.emfstore.internal.server.exceptions.ClientVersionOutOfDateException;
+import org.eclipse.emf.emfstore.internal.server.model.ClientVersionInfo;
+
+/**
+ * <p>
+ * Utility class to verify the client version. When specifying the allowed versions, clients may either specify an array
+ * containing all allowed version numbers or specify a single wildcard version.
+ * </p>
+ *
+ * <p>
+ * A wildcard version is specified via the '*' letter. All other letters known from regular expressions are not
+ * considered.
+ * </p>
+ *
+ * <p>
+ * For instance the wildcard version 1.2.3.x would accept all 1.2.3 versions independently of the actual qualifier where
+ * {@code x} stand for a qualifier. Multiple wildcard versions are <b>not</b> allowed
+ * </p>
+ *
+ *
+ * @author emueller
+ *
+ */
+public final class VersionVerifier {
+
+ private VersionVerifier() {
+ }
+
+ /**
+ * Verifies the client version against a set of allowed versions.
+ *
+ * @param versions
+ * the list of accepted versions or a single wildcard version like '1.2.3.*'
+ *
+ * @param clientVersionInfo
+ * the client version to verify
+ * @throws ClientVersionOutOfDateException
+ * in case the client version is out of date
+ */
+ public static void verify(String[] versions, ClientVersionInfo clientVersionInfo)
+ throws ClientVersionOutOfDateException {
+
+ if (clientVersionInfo == null) {
+ throw new ClientVersionOutOfDateException("No client version received.");
+ }
+
+ if (versions == null) {
+ final String msg = "No server versions supplied";
+ ModelUtil.logWarning(msg, new ClientVersionOutOfDateException(msg));
+ return;
+ }
+
+ if (isWildcardVersion(versions)) {
+ matchesWildcard(versions[0], clientVersionInfo);
+ } else {
+ for (final String version : versions) {
+ if (matchesClientVersion(version, clientVersionInfo) || matchesAny(version)) {
+ return;
+ }
+ }
+
+ final StringBuffer acceptedVersions = new StringBuffer();
+
+ for (final String str : versions) {
+ if (versions.length == 1) {
+ acceptedVersions.append(str + ". ");
+ } else {
+ acceptedVersions.append(str + ", ");
+ }
+ }
+
+ acceptedVersions.replace(acceptedVersions.length() - 2, acceptedVersions.length(), ".");
+
+ throw new ClientVersionOutOfDateException("Client version: " + clientVersionInfo.getVersion()
+ + " - Accepted versions: " + acceptedVersions);
+ }
+ }
+
+ private static void matchesWildcard(final String version, final ClientVersionInfo clientVersionInfo)
+ throws ClientVersionOutOfDateException {
+ final int index = version.lastIndexOf('*');
+ final String quoted = Pattern.quote(version.substring(0, index));
+ final String end = Pattern.quote(version.substring(index + 1, version.length()));
+ if (!clientVersionInfo.getVersion().matches(quoted + ".*" + end)) {
+ throw new ClientVersionOutOfDateException("Client version: " + clientVersionInfo.getVersion()
+ + " - Accepted versions: " + version);
+ }
+ }
+
+ private static boolean isWildcardVersion(String[] versions) {
+ return versions.length == 1 && versions[0].contains("*");
+ }
+
+ private static boolean matchesClientVersion(final String version, final ClientVersionInfo clientVersionInfo) {
+ return version.equals(clientVersionInfo.getVersion());
+ }
+
+ private static boolean matchesAny(final String version) {
+ return version.equals(ServerConfiguration.ACCEPTED_VERSIONS_ANY);
+ }
+}
diff --git a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/conflictDetection/ReservationToConflictBucketCandidateMap.java b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/conflictDetection/ReservationToConflictBucketCandidateMap.java
index 4d986d8..69149a5 100644
--- a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/conflictDetection/ReservationToConflictBucketCandidateMap.java
+++ b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/conflictDetection/ReservationToConflictBucketCandidateMap.java
@@ -7,10 +7,18 @@
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
- * Maximilian Koegel
+ * Maximilian Koegel - initial API and implementation
+ * Edgar Mueller - custom reservation set modifiers
+ * Edgar Mueller - Bug 418183: recognizing conflicts on map entries
******************************************************************************/
package org.eclipse.emf.emfstore.internal.server.conflictDetection;
+import static org.eclipse.emf.emfstore.internal.server.model.versioning.operations.util.OperationUtil.isMultiMoveRef;
+import static org.eclipse.emf.emfstore.internal.server.model.versioning.operations.util.OperationUtil.isMultiRef;
+import static org.eclipse.emf.emfstore.internal.server.model.versioning.operations.util.OperationUtil.isMultiRefSet;
+
+import java.text.MessageFormat;
+import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.Map;
@@ -21,30 +29,29 @@
import org.eclipse.emf.emfstore.internal.common.ExtensionRegistry;
import org.eclipse.emf.emfstore.internal.common.model.ModelElementId;
import org.eclipse.emf.emfstore.internal.common.model.ModelElementIdToEObjectMapping;
+import org.eclipse.emf.emfstore.internal.common.model.util.ModelUtil;
import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.AbstractOperation;
import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.CompositeOperation;
import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.ContainmentType;
import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.CreateDeleteOperation;
import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.FeatureOperation;
-import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.MultiReferenceMoveOperation;
-import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.MultiReferenceOperation;
-import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.MultiReferenceSetOperation;
import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.ReferenceOperation;
+import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.SingleReferenceOperation;
/**
- * Map from modelelements and their features to conflict candidate buckets.
+ * Map from model elements and their features to conflict candidate buckets.
*
* @author mkoegel
- *
+ * @author emueller
*/
public class ReservationToConflictBucketCandidateMap {
- private static ReservationSetModifier reservationSetModifier = initCustomReservationModifier();
+ private static ReservationSetModifier reservationSetModifier = initCustomReservationSetModifier();
private final ReservationSet reservationToConflictMap;
private final Set<ConflictBucketCandidate> conflictBucketCandidates;
- private final Map<String, Map.Entry<?, ?>> createdMapEntries;
+ private final Map<String, Integer> idToKeyHashCode;
- private static ReservationSetModifier initCustomReservationModifier() {
+ private static ReservationSetModifier initCustomReservationSetModifier() {
return ExtensionRegistry.INSTANCE.get(
ReservationSetModifier.ID,
@@ -65,7 +72,7 @@
public ReservationToConflictBucketCandidateMap() {
reservationToConflictMap = new ReservationSet();
conflictBucketCandidates = new LinkedHashSet<ConflictBucketCandidate>();
- createdMapEntries = new LinkedHashMap<String, Map.Entry<?, ?>>();
+ idToKeyHashCode = new LinkedHashMap<String, Integer>();
}
@@ -100,7 +107,7 @@
if (featureName.equals(FeatureNameReservationMap.EXISTENCE_FEATURE)) {
continue;
}
- // we do not care about existence reservations since they will not colide with any other features
+ // we do not care about existence reservations since they will not collide with any other features
// handle normal feature reservations without opposite
if (!reservationSet.hasOppositeReservations(modelElement, featureName)) {
@@ -197,7 +204,8 @@
public void scanOperationReservations(AbstractOperation operation, int priority,
ModelElementIdToEObjectMapping idToEObjectMapping, boolean isMyOperation) {
- ReservationSet reservationSet = extractReservationFromOperation(operation, new ReservationSet());
+ ReservationSet reservationSet = extractReservationFromOperation(operation, new ReservationSet(),
+ idToEObjectMapping);
reservationSet = addCustomReservations(operation, reservationSet, idToEObjectMapping);
final ConflictBucketCandidate conflictBucketCandidate = new ConflictBucketCandidate();
conflictBucketCandidates.add(conflictBucketCandidate);
@@ -211,12 +219,12 @@
}
private ReservationSet extractReservationFromOperation(final AbstractOperation operation,
- ReservationSet reservationSet) {
+ ReservationSet reservationSet, ModelElementIdToEObjectMapping idToEObjectMapping) {
if (operation instanceof CompositeOperation) {
final CompositeOperation compositeOperation = (CompositeOperation) operation;
for (final AbstractOperation subOperation : compositeOperation.getSubOperations()) {
- extractReservationFromOperation(subOperation, reservationSet);
+ extractReservationFromOperation(subOperation, reservationSet, idToEObjectMapping);
}
return reservationSet;
} else if (operation instanceof CreateDeleteOperation) {
@@ -231,27 +239,85 @@
} else {
// check for map entries
for (final EObject eObject : createDeleteOperation.getEObjectToIdMap().keySet()) {
- if (eObject instanceof Map.Entry<?, ?>) {
- final String id = createDeleteOperation.getEObjectToIdMap().get(eObject).getId();
- final Map.Entry<?, ?> mapEntry = (Entry<?, ?>) eObject;
- createdMapEntries.put(id, mapEntry);
+ if (!isMapEntry(eObject)) {
+ continue;
}
+ handleMapEntry((Entry<?, ?>) eObject, createDeleteOperation, idToEObjectMapping);
}
}
// handle suboperations
for (final AbstractOperation subOperation : createDeleteOperation.getSubOperations()) {
- extractReservationFromOperation(subOperation, reservationSet);
+ extractReservationFromOperation(subOperation, reservationSet, idToEObjectMapping);
}
return reservationSet;
} else if (operation instanceof FeatureOperation) {
- handleFeatureOperation(operation, reservationSet);
+ handleFeatureOperation(operation, reservationSet, idToEObjectMapping);
return reservationSet;
}
throw new IllegalStateException("Unkown operation type: " + operation.getClass().getCanonicalName());
}
- private void handleFeatureOperation(AbstractOperation operation, ReservationSet reservationSet) {
+ private boolean isMapEntry(EObject eObject) {
+ return eObject instanceof Map.Entry<?, ?>;
+ }
+
+ private void handleMapEntry(final Map.Entry<?, ?> mapEntry, CreateDeleteOperation createDeleteOperation,
+ ModelElementIdToEObjectMapping idToEObjectMapping) {
+ final String mapEntryId = createDeleteOperation.getEObjectToIdMap().get(mapEntry).getId();
+
+ if (mapEntry.getKey() != null) {
+ idToKeyHashCode.put(mapEntryId, new Integer(mapEntry.getKey().hashCode()));
+ return;
+ }
+
+ // if entry's key is null, fetch sub operation, check feature name for key, and resolve ID to get a
+ // string representation for the key
+ final ReferenceOperation keyReferenceOperation = getKeyReferenceOperation(createDeleteOperation);
+
+ if (keyReferenceOperation != null) {
+ final Set<ModelElementId> otherInvolvedModelElements = keyReferenceOperation
+ .getOtherInvolvedModelElements();
+ final Iterator<ModelElementId> iterator = otherInvolvedModelElements.iterator();
+ if (iterator.hasNext()) {
+ final ModelElementId otherId = iterator.next();
+ final EObject key = idToEObjectMapping.get(otherId);
+ if (key != null) {
+ idToKeyHashCode.put(mapEntryId, new Integer(key.hashCode()));
+ } else {
+ ModelUtil.logWarning("Key is null. Can not be used for conflict detection.");
+ }
+ }
+ } else {
+ ModelUtil.logWarning(
+ MessageFormat.format("Single reference sub operation of create operation {0} is missing",
+ createDeleteOperation.getOperationId()));
+ }
+ }
+
+ /**
+ * Tries to find the operation that set's the key attribute of a map entry.
+ *
+ * @param createDeleteOperation
+ * @return
+ */
+ private ReferenceOperation getKeyReferenceOperation(CreateDeleteOperation createDeleteOperation) {
+ for (final AbstractOperation op : createDeleteOperation.getSubOperations()) {
+ if (!SingleReferenceOperation.class.isInstance(op)) {
+ continue;
+ }
+
+ final SingleReferenceOperation singleReferenceOperation = SingleReferenceOperation.class.cast(op);
+ if (singleReferenceOperation.getFeatureName().equals("key")) {
+ return singleReferenceOperation;
+ }
+ }
+
+ return null;
+ }
+
+ private void handleFeatureOperation(AbstractOperation operation, ReservationSet reservationSet,
+ ModelElementIdToEObjectMapping idToEObjectMapping) {
final FeatureOperation featureOperation = (FeatureOperation) operation;
final String modelElementId = featureOperation.getModelElementId().getId();
final String featureName = featureOperation.getFeatureName();
@@ -269,18 +335,24 @@
}
}
}
- if (featureOperation instanceof MultiReferenceOperation
- || featureOperation instanceof MultiReferenceSetOperation
- || featureOperation instanceof MultiReferenceMoveOperation) {
+ if (isMultiRef(featureOperation) || isMultiRefSet(featureOperation) || isMultiMoveRef(featureOperation)) {
+
for (final ModelElementId otherModelElement : featureOperation.getOtherInvolvedModelElements()) {
+
reservationSet.addMultiReferenceWithOppositeReservation(modelElementId, featureName,
otherModelElement.getId());
+ Integer hashCode = null;
+
if (isCreatedMapEntry(otherModelElement)) {
- final Map.Entry<?, ?> mapEntry = getCreatedMapEntry(otherModelElement);
- // FIXME: currently we only can handle keys which have a valid string representation
+ hashCode = getKeyHashCode(otherModelElement);
+ } else if (isMapEntry(idToEObjectMapping.get(otherModelElement))) {
+ hashCode = getKeyHashCode(idToEObjectMapping, otherModelElement);
+ }
+
+ if (hashCode != null) {
reservationSet.addMapKeyReservation(modelElementId, featureName,
- mapEntry.getKey().toString());
+ hashCode.toString());
}
}
} else {
@@ -289,12 +361,20 @@
return;
}
- private Map.Entry<?, ?> getCreatedMapEntry(ModelElementId otherModelElement) {
- return createdMapEntries.get(otherModelElement);
+ private Integer getKeyHashCode(ModelElementIdToEObjectMapping idToEObjectMapping, ModelElementId keyId) {
+ final Map.Entry<?, ?> mapEntry = (Entry<?, ?>) idToEObjectMapping.get(keyId);
+ if (mapEntry.getKey() != null) {
+ return new Integer(mapEntry.getKey().hashCode());
+ }
+ return null;
+ }
+
+ private Integer getKeyHashCode(ModelElementId keyId) {
+ return idToKeyHashCode.get(keyId);
}
private boolean isCreatedMapEntry(ModelElementId modelElementId) {
- return createdMapEntries.containsKey(modelElementId.getId());
+ return idToKeyHashCode.containsKey(modelElementId.getId());
}
/**
diff --git a/features/org.eclipse.emf.emfstore.backchannel.feature/feature.xml b/features/org.eclipse.emf.emfstore.backchannel.feature/feature.xml
index 179f18e..3a561fb 100644
--- a/features/org.eclipse.emf.emfstore.backchannel.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.backchannel.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.emf.emfstore.backchannel.feature"
label="EMFStore Backchannel"
- version="1.0.2.qualifier"
+ version="1.0.4.qualifier"
provider-name="Eclipse Modeling Project"
plugin="org.eclipse.emf.emfstore.branding">
diff --git a/features/org.eclipse.emf.emfstore.client.feature/feature.xml b/features/org.eclipse.emf.emfstore.client.feature/feature.xml
index 7a22cd9..c31aa1c 100644
--- a/features/org.eclipse.emf.emfstore.client.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.client.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.emf.emfstore.client.feature"
label="EMFStore Client"
- version="1.0.2.qualifier"
+ version="1.0.4.qualifier"
provider-name="Eclipse Modeling Project"
plugin="org.eclipse.emf.emfstore.client">
diff --git a/features/org.eclipse.emf.emfstore.client.feature/pom.xml b/features/org.eclipse.emf.emfstore.client.feature/pom.xml
index 672da63..5b12801 100644
--- a/features/org.eclipse.emf.emfstore.client.feature/pom.xml
+++ b/features/org.eclipse.emf.emfstore.client.feature/pom.xml
@@ -5,12 +5,12 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.client.feature</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-feature</packaging>
<build>
diff --git a/features/org.eclipse.emf.emfstore.client.transaction.feature/feature.xml b/features/org.eclipse.emf.emfstore.client.transaction.feature/feature.xml
index 03ab049..d3fb9ef 100644
--- a/features/org.eclipse.emf.emfstore.client.transaction.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.client.transaction.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.emf.emfstore.client.transaction.feature"
label="EMFStore Transaction Support"
- version="1.0.2.qualifier"
+ version="1.0.4.qualifier"
provider-name="Eclipse Modeling Project"
plugin="org.eclipse.emf.emfstore.client.transaction">
diff --git a/features/org.eclipse.emf.emfstore.client.transaction.feature/pom.xml b/features/org.eclipse.emf.emfstore.client.transaction.feature/pom.xml
index 8960906..6cb0ac0 100644
--- a/features/org.eclipse.emf.emfstore.client.transaction.feature/pom.xml
+++ b/features/org.eclipse.emf.emfstore.client.transaction.feature/pom.xml
@@ -5,12 +5,12 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.client.transaction.feature</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-feature</packaging>
<build>
diff --git a/features/org.eclipse.emf.emfstore.client.ui.errorreporting.feature/feature.xml b/features/org.eclipse.emf.emfstore.client.ui.errorreporting.feature/feature.xml
index b98c6c0..d53dbd1 100644
--- a/features/org.eclipse.emf.emfstore.client.ui.errorreporting.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.client.ui.errorreporting.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.emf.emfstore.client.ui.errorreporting.feature"
label="Error Reporting Support"
- version="1.0.2.qualifier"
+ version="1.0.4.qualifier"
provider-name="Eclipse Modeling Project"
plugin="org.eclipse.emf.emfstore.branding">
diff --git a/features/org.eclipse.emf.emfstore.client.ui.feature/feature.xml b/features/org.eclipse.emf.emfstore.client.ui.feature/feature.xml
index 435bd53..35e4d0a 100644
--- a/features/org.eclipse.emf.emfstore.client.ui.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.client.ui.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.emf.emfstore.client.ui.feature"
label="EMFStore Client UI"
- version="1.0.2.qualifier"
+ version="1.0.4.qualifier"
provider-name="Eclipse Modeling Project"
plugin="org.eclipse.emf.emfstore.client.ui">
diff --git a/features/org.eclipse.emf.emfstore.client.ui.feature/pom.xml b/features/org.eclipse.emf.emfstore.client.ui.feature/pom.xml
index 11aa0ac..584f8d0 100644
--- a/features/org.eclipse.emf.emfstore.client.ui.feature/pom.xml
+++ b/features/org.eclipse.emf.emfstore.client.ui.feature/pom.xml
@@ -5,12 +5,12 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.client.ui.feature</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-feature</packaging>
<build>
diff --git a/features/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator.feature/feature.xml b/features/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator.feature/feature.xml
index 7477947..e4751a5 100644
--- a/features/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.emf.emfstore.client.ui.historybrowsercomparator.feature"
label="HistoryBrowserComparator"
- version="1.0.2.qualifier"
+ version="1.0.4.qualifier"
provider-name="Eclipse Modeling Project"
plugin="org.eclipse.emf.emfstore.client.ui.historybrowsercomparator">
diff --git a/features/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator.feature/pom.xml b/features/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator.feature/pom.xml
index 35e4704..ae177e3 100644
--- a/features/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator.feature/pom.xml
+++ b/features/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator.feature/pom.xml
@@ -5,12 +5,12 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.client.ui.historybrowsercomparator.feature</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-feature</packaging>
<build>
diff --git a/features/org.eclipse.emf.emfstore.common.feature/feature.xml b/features/org.eclipse.emf.emfstore.common.feature/feature.xml
index ea26dbc..71eadb8 100644
--- a/features/org.eclipse.emf.emfstore.common.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.common.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.emf.emfstore.common.feature"
label="EMFStore Common"
- version="1.0.2.qualifier"
+ version="1.0.4.qualifier"
provider-name="Eclipse Modeling Project"
plugin="org.eclipse.emf.emfstore.common">
diff --git a/features/org.eclipse.emf.emfstore.common.feature/pom.xml b/features/org.eclipse.emf.emfstore.common.feature/pom.xml
index 022c48c..6d13ad2 100644
--- a/features/org.eclipse.emf.emfstore.common.feature/pom.xml
+++ b/features/org.eclipse.emf.emfstore.common.feature/pom.xml
@@ -5,12 +5,12 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.common.feature</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-feature</packaging>
<build>
diff --git a/features/org.eclipse.emf.emfstore.ecore.feature/feature.xml b/features/org.eclipse.emf.emfstore.ecore.feature/feature.xml
index 4e05936..b3344b4 100644
--- a/features/org.eclipse.emf.emfstore.ecore.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.ecore.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.emf.emfstore.ecore.feature"
label="EMFStore Ecore"
- version="1.0.2.qualifier"
+ version="1.0.4.qualifier"
provider-name="Eclipse Modeling Project"
plugin="org.eclipse.emf.emfstore.ecore">
diff --git a/features/org.eclipse.emf.emfstore.ecore.feature/pom.xml b/features/org.eclipse.emf.emfstore.ecore.feature/pom.xml
index e1a7857..ebb48a2 100644
--- a/features/org.eclipse.emf.emfstore.ecore.feature/pom.xml
+++ b/features/org.eclipse.emf.emfstore.ecore.feature/pom.xml
@@ -5,12 +5,12 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.ecore.feature</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-feature</packaging>
<build>
diff --git a/features/org.eclipse.emf.emfstore.ecp.feature/feature.xml b/features/org.eclipse.emf.emfstore.ecp.feature/feature.xml
index 9f63d23..cc71d70 100644
--- a/features/org.eclipse.emf.emfstore.ecp.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.ecp.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.emf.emfstore.ecp.feature"
label="EMFStore ECP Integration"
- version="1.0.2.qualifier"
+ version="1.0.4.qualifier"
provider-name="Eclipse Modeling Project">
<description url="http://emfstore.org ">
diff --git a/features/org.eclipse.emf.emfstore.ecp.feature/pom.xml b/features/org.eclipse.emf.emfstore.ecp.feature/pom.xml
index 99bbafc..abb3b1a 100644
--- a/features/org.eclipse.emf.emfstore.ecp.feature/pom.xml
+++ b/features/org.eclipse.emf.emfstore.ecp.feature/pom.xml
@@ -5,12 +5,12 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.ecp.feature</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-feature</packaging>
<build>
diff --git a/features/org.eclipse.emf.emfstore.example.feature/feature.xml b/features/org.eclipse.emf.emfstore.example.feature/feature.xml
index 514a9b1..f8c7c23 100644
--- a/features/org.eclipse.emf.emfstore.example.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.example.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.emf.emfstore.example.feature"
label="EMFStore Code Examples"
- version="1.0.2.qualifier"
+ version="1.0.4.qualifier"
provider-name="Eclipse Modeling Project"
plugin="org.eclipse.emf.emfstore.example.installer">
diff --git a/features/org.eclipse.emf.emfstore.example.feature/pom.xml b/features/org.eclipse.emf.emfstore.example.feature/pom.xml
index b414c87..463a1a2 100644
--- a/features/org.eclipse.emf.emfstore.example.feature/pom.xml
+++ b/features/org.eclipse.emf.emfstore.example.feature/pom.xml
@@ -5,11 +5,11 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.example.feature</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-feature</packaging>
</project>
diff --git a/features/org.eclipse.emf.emfstore.fuzzy.feature/feature.xml b/features/org.eclipse.emf.emfstore.fuzzy.feature/feature.xml
index dd49830..d7d3519 100644
--- a/features/org.eclipse.emf.emfstore.fuzzy.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.fuzzy.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.emf.emfstore.fuzzy.feature"
label="Fuzzy Testing"
- version="1.0.2.qualifier"
+ version="1.0.4.qualifier"
provider-name="Eclipse Modeling Project"
plugin="org.eclipse.emf.emfstore.branding">
diff --git a/features/org.eclipse.emf.emfstore.fuzzy.feature/pom.xml b/features/org.eclipse.emf.emfstore.fuzzy.feature/pom.xml
index 34ee4fd..7b272f9 100644
--- a/features/org.eclipse.emf.emfstore.fuzzy.feature/pom.xml
+++ b/features/org.eclipse.emf.emfstore.fuzzy.feature/pom.xml
@@ -5,11 +5,11 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.fuzzy.feature</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-feature</packaging>
</project>
diff --git a/features/org.eclipse.emf.emfstore.fuzzy.test.feature/feature.xml b/features/org.eclipse.emf.emfstore.fuzzy.test.feature/feature.xml
index f695627..05a8c7e 100644
--- a/features/org.eclipse.emf.emfstore.fuzzy.test.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.fuzzy.test.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.emf.emfstore.fuzzy.test.feature"
label="EMFStore Fuzzy Tests"
- version="1.0.2.qualifier"
+ version="1.0.4.qualifier"
provider-name="Eclipse Modeling Project">
<description url="http://www.example.com/description">
diff --git a/features/org.eclipse.emf.emfstore.fuzzy.test.feature/pom.xml b/features/org.eclipse.emf.emfstore.fuzzy.test.feature/pom.xml
index e11715f..ebe8b6c 100644
--- a/features/org.eclipse.emf.emfstore.fuzzy.test.feature/pom.xml
+++ b/features/org.eclipse.emf.emfstore.fuzzy.test.feature/pom.xml
@@ -5,11 +5,11 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.fuzzy.test.feature</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-feature</packaging>
</project>
diff --git a/features/org.eclipse.emf.emfstore.modelmutator.feature/feature.xml b/features/org.eclipse.emf.emfstore.modelmutator.feature/feature.xml
index daf0c9e..c843bf0 100644
--- a/features/org.eclipse.emf.emfstore.modelmutator.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.modelmutator.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.emf.emfstore.modelmutator.feature"
label="Model Mutator"
- version="1.0.2.qualifier"
+ version="1.0.4.qualifier"
provider-name="Eclipse Modeling Project"
plugin="org.eclipse.emf.emfstore.modelmutator">
diff --git a/features/org.eclipse.emf.emfstore.modelmutator.feature/pom.xml b/features/org.eclipse.emf.emfstore.modelmutator.feature/pom.xml
index 352f994..b8c408f 100644
--- a/features/org.eclipse.emf.emfstore.modelmutator.feature/pom.xml
+++ b/features/org.eclipse.emf.emfstore.modelmutator.feature/pom.xml
@@ -5,12 +5,12 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.modelmutator.feature</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-feature</packaging>
<build>
diff --git a/features/org.eclipse.emf.emfstore.perspective.feature/feature.xml b/features/org.eclipse.emf.emfstore.perspective.feature/feature.xml
index f451f2d..d1c6a00 100644
--- a/features/org.eclipse.emf.emfstore.perspective.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.perspective.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.emf.emfstore.perspective.feature"
label="EMFStore Perspective"
- version="1.0.2.qualifier"
+ version="1.0.4.qualifier"
provider-name="Eclipse Modeling Project"
plugin="org.eclipse.emf.emfstore.branding">
diff --git a/features/org.eclipse.emf.emfstore.perspective.feature/pom.xml b/features/org.eclipse.emf.emfstore.perspective.feature/pom.xml
index 21e02f3..33f9979 100644
--- a/features/org.eclipse.emf.emfstore.perspective.feature/pom.xml
+++ b/features/org.eclipse.emf.emfstore.perspective.feature/pom.xml
@@ -5,12 +5,12 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.perspective.feature</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-feature</packaging>
<build>
diff --git a/features/org.eclipse.emf.emfstore.sdk.feature/feature.xml b/features/org.eclipse.emf.emfstore.sdk.feature/feature.xml
index 0e2c6c6..383beaa 100644
--- a/features/org.eclipse.emf.emfstore.sdk.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.sdk.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.emf.emfstore.sdk.feature"
label="EMFStore SDK"
- version="1.0.2.qualifier"
+ version="1.0.4.qualifier"
provider-name="Eclipse Modeling Project"
plugin="org.eclipse.emf.emfstore.branding">
diff --git a/features/org.eclipse.emf.emfstore.sdk.feature/pom.xml b/features/org.eclipse.emf.emfstore.sdk.feature/pom.xml
index 42f0a6c..e697d3b 100644
--- a/features/org.eclipse.emf.emfstore.sdk.feature/pom.xml
+++ b/features/org.eclipse.emf.emfstore.sdk.feature/pom.xml
@@ -5,11 +5,11 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.sdk.feature</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-feature</packaging>
</project>
diff --git a/features/org.eclipse.emf.emfstore.server.feature/feature.xml b/features/org.eclipse.emf.emfstore.server.feature/feature.xml
index 5a3a312..9a5f33a 100644
--- a/features/org.eclipse.emf.emfstore.server.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.server.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.emf.emfstore.server.feature"
label="EMFStore Server"
- version="1.0.2.qualifier"
+ version="1.0.4.qualifier"
provider-name="Eclipse Modeling Project"
plugin="org.eclipse.emf.emfstore.server">
diff --git a/features/org.eclipse.emf.emfstore.server.feature/pom.xml b/features/org.eclipse.emf.emfstore.server.feature/pom.xml
index 99b695a..376cba6 100644
--- a/features/org.eclipse.emf.emfstore.server.feature/pom.xml
+++ b/features/org.eclipse.emf.emfstore.server.feature/pom.xml
@@ -5,12 +5,12 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.server.feature</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-feature</packaging>
<build>
diff --git a/features/org.eclipse.emf.emfstore.test.feature/feature.xml b/features/org.eclipse.emf.emfstore.test.feature/feature.xml
index 6cc6b7c..f1f9f64 100644
--- a/features/org.eclipse.emf.emfstore.test.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.test.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.emf.emfstore.test.feature"
label="EMFStore Tests"
- version="1.0.2.qualifier"
+ version="1.0.4.qualifier"
provider-name="Eclipse Modeling Project"
plugin="org.eclipse.emf.emfstore.branding">
diff --git a/releng/_target/pom.xml b/releng/_target/pom.xml
index 952b37f..4c8a54b 100644
--- a/releng/_target/pom.xml
+++ b/releng/_target/pom.xml
@@ -5,11 +5,11 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-target-definition</packaging>
</project>
\ No newline at end of file
diff --git a/releng/emfstore-parent/pom.xml b/releng/emfstore-parent/pom.xml
index bac246d..64049a6 100644
--- a/releng/emfstore-parent/pom.xml
+++ b/releng/emfstore-parent/pom.xml
@@ -5,7 +5,7 @@
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
@@ -13,7 +13,7 @@
<junit-version>4.8.2</junit-version>
<maven-checkstyle-version>2.10</maven-checkstyle-version>
<jacoco-version>0.5.7.201204190339</jacoco-version>
- <emfstore-version>1.0.2-SNAPSHOT</emfstore-version>
+ <emfstore-version>1.0.4-SNAPSHOT</emfstore-version>
<!-- Properties to enable jacoco code coverage analysis with sonar -->
<sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
diff --git a/releng/org.eclipse.emf.emfstore.p2repository/category.xml b/releng/org.eclipse.emf.emfstore.p2repository/category.xml
index 1fb572f..2ddfd03 100644
--- a/releng/org.eclipse.emf.emfstore.p2repository/category.xml
+++ b/releng/org.eclipse.emf.emfstore.p2repository/category.xml
@@ -18,19 +18,19 @@
<feature id="org.eclipse.emf.emfstore.example.feature" version="0.0.0">
<category name="org.eclipse.emf.emfstore.core"/>
</feature>
- <feature url="features/org.eclipse.emf.emfstore.client.transaction.feature_1.0.2.qualifier.jar" id="org.eclipse.emf.emfstore.client.transaction.feature" version="1.0.2.qualifier">
+ <feature url="features/org.eclipse.emf.emfstore.client.transaction.feature_1.0.4.qualifier.jar" id="org.eclipse.emf.emfstore.client.transaction.feature" version="1.0.4.qualifier">
<category name="org.eclipse.emf.emfstore.other"/>
</feature>
- <feature url="features/org.eclipse.emf.emfstore.modelmutator.feature_1.0.2.qualifier.jar" id="org.eclipse.emf.emfstore.modelmutator.feature" version="1.0.2.qualifier">
+ <feature url="features/org.eclipse.emf.emfstore.modelmutator.feature_1.0.4.qualifier.jar" id="org.eclipse.emf.emfstore.modelmutator.feature" version="1.0.4.qualifier">
<category name="org.eclipse.emf.emfstore.other"/>
</feature>
- <feature url="features/org.eclipse.emf.emfstore.ecore.feature_1.0.2.qualifier.jar" id="org.eclipse.emf.emfstore.ecore.feature" version="1.0.2.qualifier">
+ <feature url="features/org.eclipse.emf.emfstore.ecore.feature_1.0.4.qualifier.jar" id="org.eclipse.emf.emfstore.ecore.feature" version="1.0.4.qualifier">
<category name="org.eclipse.emf.emfstore.other"/>
</feature>
- <feature url="features/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator.feature_1.0.2.qualifier.jar" id="org.eclipse.emf.emfstore.client.ui.historybrowsercomparator.feature" version="1.0.2.qualifier">
+ <feature url="features/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator.feature_1.0.4.qualifier.jar" id="org.eclipse.emf.emfstore.client.ui.historybrowsercomparator.feature" version="1.0.4.qualifier">
<category name="org.eclipse.emf.emfstore.other"/>
</feature>
- <feature url="features/org.eclipse.emf.emfstore.sdk.feature_1.0.2.qualifier.jar" id="org.eclipse.emf.emfstore.sdk.feature" version="1.0.2.qualifier">
+ <feature url="features/org.eclipse.emf.emfstore.sdk.feature_1.0.4.qualifier.jar" id="org.eclipse.emf.emfstore.sdk.feature" version="1.0.4.qualifier">
<category name="org.eclipse.emfstore.sdk"/>
</feature>
<category-def name="org.eclipse.emf.emfstore.core" label="EMFStore Core Features">
diff --git a/releng/org.eclipse.emf.emfstore.p2repository/pom.xml b/releng/org.eclipse.emf.emfstore.p2repository/pom.xml
index ade7def..12503f7 100644
--- a/releng/org.eclipse.emf.emfstore.p2repository/pom.xml
+++ b/releng/org.eclipse.emf.emfstore.p2repository/pom.xml
@@ -5,11 +5,11 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.p2repository</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-repository</packaging>
</project>
diff --git a/releng/org.eclipse.emf.emfstore.products/pom.xml b/releng/org.eclipse.emf.emfstore.products/pom.xml
index 8b84f96..a74b08f 100644
--- a/releng/org.eclipse.emf.emfstore.products/pom.xml
+++ b/releng/org.eclipse.emf.emfstore.products/pom.xml
@@ -5,12 +5,12 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.products</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-repository</packaging>
<build>
diff --git a/tests/org.eclipse.emf.emfstore.client.test.alltests/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.emfstore.client.test.alltests/META-INF/MANIFEST.MF
index 6423014..9b53e4e 100644
--- a/tests/org.eclipse.emf.emfstore.client.test.alltests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.emfstore.client.test.alltests/META-INF/MANIFEST.MF
@@ -2,11 +2,11 @@
Bundle-ManifestVersion: 2
Bundle-Name: All EMFStore Client Tests
Bundle-SymbolicName: org.eclipse.emf.emfstore.client.test.alltests
-Bundle-Version: 1.0.2.qualifier
+Bundle-Version: 1.0.4.qualifier
Bundle-Activator: org.eclipse.emf.emfstore.client.test.alltests.Activator
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.emf.emfstore.client.test;bundle-version="[1.0.2,2.0.0)",
- org.eclipse.emf.emfstore.client.test.ui;bundle-version="[1.0.2,2.0.0)"
+ org.eclipse.emf.emfstore.client.test;bundle-version="[1.0.4,2.0.0)",
+ org.eclipse.emf.emfstore.client.test.ui;bundle-version="[1.0.4,2.0.0)"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.emf.emfstore.client.test.alltests;version="1.0.2";x-internal:=true
+Export-Package: org.eclipse.emf.emfstore.client.test.alltests;version="1.0.4";x-internal:=true
diff --git a/tests/org.eclipse.emf.emfstore.client.test.alltests/pom.xml b/tests/org.eclipse.emf.emfstore.client.test.alltests/pom.xml
index ec24493..1ea559d 100644
--- a/tests/org.eclipse.emf.emfstore.client.test.alltests/pom.xml
+++ b/tests/org.eclipse.emf.emfstore.client.test.alltests/pom.xml
@@ -6,13 +6,13 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.client.test.alltests</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-test-plugin</packaging>
<build>
diff --git a/tests/org.eclipse.emf.emfstore.client.test.ui/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.emfstore.client.test.ui/META-INF/MANIFEST.MF
index ddb1fbe..aa06ddc 100644
--- a/tests/org.eclipse.emf.emfstore.client.test.ui/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.emfstore.client.test.ui/META-INF/MANIFEST.MF
@@ -2,12 +2,12 @@
Bundle-ManifestVersion: 2
Bundle-Name: EMFStore Client UI Tests
Bundle-SymbolicName: org.eclipse.emf.emfstore.client.test.ui;singleton:=true
-Bundle-Version: 1.0.2.qualifier
+Bundle-Version: 1.0.4.qualifier
Bundle-Vendor: Eclipse Modeling Project
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: org.eclipse.emf.emfstore.client.test;bundle-version="[1.0.2,2.0.0)",
- org.eclipse.emf.emfstore.client.ui;bundle-version="[1.0.2,2.0.0)",
+Require-Bundle: org.eclipse.emf.emfstore.client.test;bundle-version="[1.0.4,2.0.0)",
+ org.eclipse.emf.emfstore.client.ui;bundle-version="[1.0.4,2.0.0)",
org.eclipse.ui;bundle-version="[3.0.0,4.0.0)",
org.eclipse.swtbot.eclipse.core;bundle-version="[2.1.0,3.0.0)",
org.eclipse.swtbot.eclipse.finder;bundle-version="[2.1.0,3.0.0)",
@@ -16,5 +16,5 @@
Bundle-ActivationPolicy: lazy
Bundle-Activator: org.eclipse.emf.emfstore.client.test.ui.Activator
Bundle-ClassPath: .
-Export-Package: org.eclipse.emf.emfstore.client.test.ui;version="1.0.2",
- org.eclipse.emf.emfstore.client.test.ui.controllers;version="1.0.2"
+Export-Package: org.eclipse.emf.emfstore.client.test.ui;version="1.0.4",
+ org.eclipse.emf.emfstore.client.test.ui.controllers;version="1.0.4"
diff --git a/tests/org.eclipse.emf.emfstore.client.test.ui/pom.xml b/tests/org.eclipse.emf.emfstore.client.test.ui/pom.xml
index 39c8c7f..ad6cad1 100644
--- a/tests/org.eclipse.emf.emfstore.client.test.ui/pom.xml
+++ b/tests/org.eclipse.emf.emfstore.client.test.ui/pom.xml
@@ -6,13 +6,13 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.client.test.ui</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/tests/org.eclipse.emf.emfstore.client.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.emfstore.client.test/META-INF/MANIFEST.MF
index 33ad0e3..e104e24 100644
--- a/tests/org.eclipse.emf.emfstore.client.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.emfstore.client.test/META-INF/MANIFEST.MF
@@ -2,115 +2,115 @@
Bundle-ManifestVersion: 2
Bundle-Name: EMFStore Client Tests
Bundle-SymbolicName: org.eclipse.emf.emfstore.client.test;singleton:=true
-Bundle-Version: 1.0.2.qualifier
+Bundle-Version: 1.0.4.qualifier
Bundle-Vendor: Eclipse Modeling Project
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: org.eclipse.emf.emfstore.client;bundle-version="[1.0.2,2.0.0)";visibility:=reexport,
- org.eclipse.emf.emfstore.client.model.edit;bundle-version="[1.0.2,2.0.0)";visibility:=reexport,
- org.eclipse.emf.emfstore.modelmutator;bundle-version="[1.0.2,2.0.0)";visibility:=reexport,
- org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.0.2,2.0.0)";visibility:=reexport,
- org.eclipse.emf.emfstore.common.model.edit;bundle-version="[1.0.2,2.0.0)",
- org.eclipse.emf.emfstore.server.model.edit;bundle-version="[1.0.2,2.0.0)",
+Require-Bundle: org.eclipse.emf.emfstore.client;bundle-version="[1.0.4,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.emfstore.client.model.edit;bundle-version="[1.0.4,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.emfstore.modelmutator;bundle-version="[1.0.4,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.0.4,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.emfstore.common.model.edit;bundle-version="[1.0.4,2.0.0)",
+ org.eclipse.emf.emfstore.server.model.edit;bundle-version="[1.0.4,2.0.0)",
org.eclipse.core.resources;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.emf.emfstore.example.merging;bundle-version="[1.0.2,2.0.0)",
- org.eclipse.emf.emfstore.example.helloworld;bundle-version="[1.0.2,2.0.0)",
+ org.eclipse.emf.emfstore.example.merging;bundle-version="[1.0.4,2.0.0)",
+ org.eclipse.emf.emfstore.example.helloworld;bundle-version="[1.0.4,2.0.0)",
org.junit;bundle-version="[4.10.0,5.0.0)";visibility:=reexport
Bundle-ActivationPolicy: lazy
Bundle-Activator: org.eclipse.emf.emfstore.client.test.Activator
-Export-Package: org.eclipse.emf.emfstore.client.test;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.api;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.caching;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.changeTracking;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.changeTracking.canonization;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.changeTracking.commands;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.changeTracking.notification;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.changeTracking.operations;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.changeTracking.recording;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.changeTracking.topology;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.common;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.common.extensionregistry;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.common.observerbus;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.common.observerbus.assets;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.config;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.conflictDetection;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.conflictDetection.merging;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.integration;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.integration.forward;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.integration.reversibility;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.memory;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.activity;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.activity.impl;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.activity.provider;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.activity.util;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.attachment;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.attachment.impl;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.attachment.provider;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.attachment.util;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.bug;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.bug.impl;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.bug.provider;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.bug.util;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.change;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.change.impl;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.change.provider;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.change.util;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.classes;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.classes.impl;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.classes.provider;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.classes.util;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.component;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.component.impl;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.component.provider;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.component.util;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.document;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.document.impl;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.document.provider;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.document.util;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.impl;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.meeting;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.meeting.impl;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.meeting.provider;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.meeting.util;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.organization;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.organization.impl;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.organization.provider;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.organization.util;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.profile;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.profile.impl;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.profile.provider;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.profile.util;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.provider;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.rationale;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.rationale.impl;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.rationale.provider;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.rationale.util;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.release;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.release.impl;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.release.provider;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.release.util;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.requirement;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.requirement.impl;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.requirement.provider;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.requirement.util;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.state;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.state.impl;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.state.provider;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.state.util;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.task;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.task.impl;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.task.provider;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.task.util;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.util;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.util.impl;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.util.provider;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.model.util.util;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.performance;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.persistence;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.server;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.server.api;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.server.api.util;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.testmodel;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.testmodel.impl;version="1.0.2";x-internal:=true,
- org.eclipse.emf.emfstore.client.test.testmodel.util;version="1.0.2";x-internal:=true
+Export-Package: org.eclipse.emf.emfstore.client.test;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.api;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.caching;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.changeTracking;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.changeTracking.canonization;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.changeTracking.commands;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.changeTracking.notification;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.changeTracking.operations;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.changeTracking.recording;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.changeTracking.topology;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.common;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.common.extensionregistry;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.common.observerbus;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.common.observerbus.assets;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.config;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.conflictDetection;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.conflictDetection.merging;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.integration;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.integration.forward;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.integration.reversibility;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.memory;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.activity;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.activity.impl;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.activity.provider;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.activity.util;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.attachment;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.attachment.impl;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.attachment.provider;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.attachment.util;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.bug;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.bug.impl;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.bug.provider;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.bug.util;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.change;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.change.impl;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.change.provider;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.change.util;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.classes;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.classes.impl;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.classes.provider;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.classes.util;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.component;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.component.impl;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.component.provider;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.component.util;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.document;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.document.impl;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.document.provider;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.document.util;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.impl;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.meeting;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.meeting.impl;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.meeting.provider;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.meeting.util;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.organization;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.organization.impl;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.organization.provider;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.organization.util;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.profile;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.profile.impl;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.profile.provider;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.profile.util;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.provider;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.rationale;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.rationale.impl;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.rationale.provider;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.rationale.util;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.release;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.release.impl;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.release.provider;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.release.util;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.requirement;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.requirement.impl;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.requirement.provider;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.requirement.util;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.state;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.state.impl;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.state.provider;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.state.util;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.task;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.task.impl;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.task.provider;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.task.util;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.util;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.util.impl;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.util.provider;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.model.util.util;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.performance;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.persistence;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.server;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.server.api;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.server.api.util;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.testmodel;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.testmodel.impl;version="1.0.4";x-internal:=true,
+ org.eclipse.emf.emfstore.client.test.testmodel.util;version="1.0.4";x-internal:=true
diff --git a/tests/org.eclipse.emf.emfstore.client.test/pom.xml b/tests/org.eclipse.emf.emfstore.client.test/pom.xml
index 5a6a951..4e772a4 100644
--- a/tests/org.eclipse.emf.emfstore.client.test/pom.xml
+++ b/tests/org.eclipse.emf.emfstore.client.test/pom.xml
@@ -6,13 +6,13 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.client.test</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/TestLogListener.java b/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/TestLogListener.java
new file mode 100644
index 0000000..b8ddf12
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/TestLogListener.java
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * Copyright (c) 2008-2011 Chair for Applied Software Engineering,
+ * Technische Universitaet Muenchen.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Edgar Mueller - intial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.emfstore.client.test;
+
+import org.eclipse.core.runtime.ILogListener;
+import org.eclipse.core.runtime.IStatus;
+
+/**
+ * Utility class that may be used to verify that a certain log message
+ * has been logged.
+ *
+ * @author emueller
+ *
+ */
+public class TestLogListener implements ILogListener {
+
+ private final String expectedMessage;
+ private boolean didReceive;
+
+ /**
+ * Constructor.
+ *
+ * @param expectedMessage
+ * the message that is expected to be logged.
+ */
+ public TestLogListener(String expectedMessage) {
+ this.expectedMessage = expectedMessage;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.core.runtime.ILogListener#logging(org.eclipse.core.runtime.IStatus, java.lang.String)
+ */
+ public void logging(IStatus status, String plugin) {
+ if (status.getMessage().contains(expectedMessage)) {
+ didReceive = true;
+ }
+ }
+
+ /**
+ * Whether the listener received the exepected message.
+ *
+ * @return {@code true}, if the listener did receive the expected message, {@code false} otherwise
+ */
+ public boolean didReceive() {
+ return didReceive;
+ }
+}
\ No newline at end of file
diff --git a/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/common/AllCommonTests.java b/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/common/AllCommonTests.java
index 879055f..1e62d33 100644
--- a/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/common/AllCommonTests.java
+++ b/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/common/AllCommonTests.java
@@ -1,22 +1,29 @@
-/*******************************************************************************
- * Copyright (c) 2012-2013 EclipseSource Muenchen GmbH and others.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- ******************************************************************************/
-package org.eclipse.emf.emfstore.client.test.common;
-
-import org.eclipse.emf.emfstore.client.test.common.extensionregistry.ExtensionRegistryTest;
-import org.eclipse.emf.emfstore.client.test.common.observerbus.ObserverBusTest;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-
-@RunWith(Suite.class)
-@Suite.SuiteClasses({ ObserverBusTest.class, ExtensionRegistryTest.class })
-public class AllCommonTests {
-
-}
+/*******************************************************************************
+ * Copyright (c) 2012-2013 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Otto von Wesendonk, Edgar Mueller - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.emfstore.client.test.common;
+
+import org.eclipse.emf.emfstore.client.test.common.extensionregistry.ExtensionRegistryTest;
+import org.eclipse.emf.emfstore.client.test.common.observerbus.ObserverBusTest;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+
+/**
+ * Test suite for common functionality used by the server as well as the client.
+ *
+ * @author ovonwesen
+ * @author emueller
+ */
+@RunWith(Suite.class)
+@Suite.SuiteClasses({ ObserverBusTest.class, ExtensionRegistryTest.class, ProjectCacheTest.class })
+public class AllCommonTests {
+
+}
diff --git a/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/persistence/ProjectCacheTest.java b/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/common/ProjectCacheTest.java
similarity index 74%
rename from tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/persistence/ProjectCacheTest.java
rename to tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/common/ProjectCacheTest.java
index 6dbf6fa..e6847b0 100644
--- a/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/persistence/ProjectCacheTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/common/ProjectCacheTest.java
@@ -1,197 +1,247 @@
-/*******************************************************************************
- * Copyright (c) 2012-2013 EclipseSource Muenchen GmbH and others.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- ******************************************************************************/
-package org.eclipse.emf.emfstore.client.test.persistence;
-
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-
-import org.eclipse.emf.emfstore.client.test.WorkspaceTest;
-import org.eclipse.emf.emfstore.client.test.testmodel.TestElement;
-import org.eclipse.emf.emfstore.client.test.testmodel.TestElementContainer;
-import org.eclipse.emf.emfstore.client.test.testmodel.TestmodelFactory;
-import org.eclipse.emf.emfstore.internal.client.model.util.EMFStoreCommand;
-import org.eclipse.emf.emfstore.internal.common.model.Project;
-import org.junit.Test;
-
-public class ProjectCacheTest extends WorkspaceTest {
-
- @Test
- public void testGetIdForCutElement() {
-
- final Project project = getProject();
- final TestElement cutElement = getTestElement();
- final TestElement element = getTestElement();
- new EMFStoreCommand() {
-
- @Override
- protected void doRun() {
- project.getCutElements().add(cutElement);
- project.addModelElement(element);
-
- }
- }.run(false);
-
- assertNotNull(project.getModelElementId(element));
- assertNotNull(project.getModelElementId(cutElement));
- }
-
- @Test
- public void testGetNoIdForDeletedElement() {
-
- final Project project = getProject();
- final TestElement element = getTestElement();
-
- new EMFStoreCommand() {
-
- @Override
- protected void doRun() {
- project.addModelElement(element);
- }
- }.run(false);
-
- new EMFStoreCommand() {
-
- @Override
- protected void doRun() {
- project.deleteModelElement(element);
- }
- }.run(false);
-
- assertNull(project.getModelElementId(element));
- }
-
- @Test
- public void testSwitchContainerInDifferentCommands() {
-
- final Project project = getProject();
- final TestElement element = getTestElement();
- final TestElementContainer container = TestmodelFactory.eINSTANCE.createTestElementContainer();
- container.getElements().add(element);
-
- new EMFStoreCommand() {
- @Override
- protected void doRun() {
- project.addModelElement(container);
- clearOperations();
- }
- }.run(false);
-
- new EMFStoreCommand() {
- @Override
- protected void doRun() {
- element.setContainer(null);
- }
- }.run(false);
-
- new EMFStoreCommand() {
- @Override
- protected void doRun() {
- container.getElements().add(element);
- }
- }.run(false);
-
- }
-
- @Test
- public void testSwitchContainerViaElement() {
-
- final Project project = getProject();
- final TestElement element = getTestElement();
- final TestElementContainer container = TestmodelFactory.eINSTANCE.createTestElementContainer();
- container.getElements().add(element);
- final TestElementContainer container2 = TestmodelFactory.eINSTANCE.createTestElementContainer();
-
- new EMFStoreCommand() {
-
- @Override
- protected void doRun() {
- project.addModelElement(container);
- project.addModelElement(container2);
- clearOperations();
- }
- }.run(false);
-
- new EMFStoreCommand() {
- @Override
- protected void doRun() {
- element.setContainer(container2);
- }
- }.run(false);
-
- }
-
- @Test
- public void testSwitchContainerViaContainer() {
-
- final Project project = getProject();
- final TestElement element = getTestElement();
- final TestElementContainer container = TestmodelFactory.eINSTANCE.createTestElementContainer();
- container.getElements().add(element);
- final TestElementContainer container2 = TestmodelFactory.eINSTANCE.createTestElementContainer();
-
- new EMFStoreCommand() {
-
- @Override
- protected void doRun() {
- project.addModelElement(container);
- project.addModelElement(container2);
- clearOperations();
- }
- }.run(false);
-
- new EMFStoreCommand() {
- @Override
- protected void doRun() {
- container.getElements().remove(element);
- container2.getElements().add(element);
- }
- }.run(false);
- }
-
- @Test
- public void testElementLosesItsContainer() {
-
- final Project project = getProject();
- final TestElement element = getTestElement();
- final TestElementContainer container = TestmodelFactory.eINSTANCE.createTestElementContainer();
- container.getElements().add(element);
-
- new EMFStoreCommand() {
- @Override
- protected void doRun() {
- project.addModelElement(container);
- clearOperations();
- }
- }.run(false);
-
- new EMFStoreCommand() {
- @Override
- protected void doRun() {
- container.getElements().add(element);
- }
- }.run(false);
-
- new EMFStoreCommand() {
- @Override
- protected void doRun() {
- element.setContainer(container);
- }
- }.run(false);
-
- new EMFStoreCommand() {
- @Override
- protected void doRun() {
- container.getElements().remove(element);
- element.setContainer(null);
- }
- }.run(false);
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2012-2013 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ ******************************************************************************/
+package org.eclipse.emf.emfstore.client.test.common;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.emfstore.client.test.WorkspaceTest;
+import org.eclipse.emf.emfstore.client.test.testmodel.TestElement;
+import org.eclipse.emf.emfstore.client.test.testmodel.TestElementContainer;
+import org.eclipse.emf.emfstore.client.test.testmodel.TestmodelFactory;
+import org.eclipse.emf.emfstore.internal.client.model.util.EMFStoreCommand;
+import org.eclipse.emf.emfstore.internal.common.model.IdEObjectCollection;
+import org.eclipse.emf.emfstore.internal.common.model.ModelElementId;
+import org.eclipse.emf.emfstore.internal.common.model.Project;
+import org.eclipse.emf.emfstore.internal.common.model.util.IdEObjectCollectionChangeObserver;
+import org.junit.Test;
+
+public class ProjectCacheTest extends WorkspaceTest {
+
+ @Test
+ public void testGetIdForCutElement() {
+
+ final Project project = getProject();
+ final TestElement cutElement = getTestElement();
+ final TestElement element = getTestElement();
+ new EMFStoreCommand() {
+
+ @Override
+ protected void doRun() {
+ project.getCutElements().add(cutElement);
+ project.addModelElement(element);
+
+ }
+ }.run(false);
+
+ assertNotNull(project.getModelElementId(element));
+ assertNotNull(project.getModelElementId(cutElement));
+ }
+
+ @Test
+ public void testAddingObserverMustNotOverwriteExistingIDsWhileExecutingCommand() {
+
+ final ModelElementId[] cutElementIWhileCommand = new ModelElementId[1];
+
+ final Project project = getProject();
+ final TestElement cutElement = getTestElement();
+ new EMFStoreCommand() {
+ @Override
+ protected void doRun() {
+ project.getCutElements().add(cutElement);
+ cutElementIWhileCommand[0] = project.getModelElementId(cutElement);
+ project.addIdEObjectCollectionChangeObserver(createDummyObserver());
+ }
+ }.run(false);
+
+ assertEquals(cutElementIWhileCommand[0], project.getModelElementId(cutElement));
+ }
+
+ private IdEObjectCollectionChangeObserver createDummyObserver() {
+ return new IdEObjectCollectionChangeObserver() {
+
+ public void notify(Notification notification, IdEObjectCollection collection, EObject modelElement) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void modelElementRemoved(IdEObjectCollection collection, EObject eObject) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void modelElementAdded(IdEObjectCollection collection, EObject eObject) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void collectionDeleted(IdEObjectCollection collection) {
+ // TODO Auto-generated method stub
+
+ }
+ };
+ }
+
+ @Test
+ public void testGetNoIdForDeletedElement() {
+
+ final Project project = getProject();
+ final TestElement element = getTestElement();
+
+ new EMFStoreCommand() {
+ @Override
+ protected void doRun() {
+ project.addModelElement(element);
+ }
+ }.run(false);
+
+ new EMFStoreCommand() {
+
+ @Override
+ protected void doRun() {
+ project.deleteModelElement(element);
+ }
+ }.run(false);
+
+ assertNull(project.getModelElementId(element));
+ }
+
+ @Test
+ public void testSwitchContainerInDifferentCommands() {
+
+ final Project project = getProject();
+ final TestElement element = getTestElement();
+ final TestElementContainer container = TestmodelFactory.eINSTANCE.createTestElementContainer();
+ container.getElements().add(element);
+
+ new EMFStoreCommand() {
+ @Override
+ protected void doRun() {
+ project.addModelElement(container);
+ clearOperations();
+ }
+ }.run(false);
+
+ new EMFStoreCommand() {
+ @Override
+ protected void doRun() {
+ element.setContainer(null);
+ }
+ }.run(false);
+
+ new EMFStoreCommand() {
+ @Override
+ protected void doRun() {
+ container.getElements().add(element);
+ }
+ }.run(false);
+
+ }
+
+ @Test
+ public void testSwitchContainerViaElement() {
+
+ final Project project = getProject();
+ final TestElement element = getTestElement();
+ final TestElementContainer container = TestmodelFactory.eINSTANCE.createTestElementContainer();
+ container.getElements().add(element);
+ final TestElementContainer container2 = TestmodelFactory.eINSTANCE.createTestElementContainer();
+
+ new EMFStoreCommand() {
+
+ @Override
+ protected void doRun() {
+ project.addModelElement(container);
+ project.addModelElement(container2);
+ clearOperations();
+ }
+ }.run(false);
+
+ new EMFStoreCommand() {
+ @Override
+ protected void doRun() {
+ element.setContainer(container2);
+ }
+ }.run(false);
+
+ }
+
+ @Test
+ public void testSwitchContainerViaContainer() {
+
+ final Project project = getProject();
+ final TestElement element = getTestElement();
+ final TestElementContainer container = TestmodelFactory.eINSTANCE.createTestElementContainer();
+ container.getElements().add(element);
+ final TestElementContainer container2 = TestmodelFactory.eINSTANCE.createTestElementContainer();
+
+ new EMFStoreCommand() {
+
+ @Override
+ protected void doRun() {
+ project.addModelElement(container);
+ project.addModelElement(container2);
+ clearOperations();
+ }
+ }.run(false);
+
+ new EMFStoreCommand() {
+ @Override
+ protected void doRun() {
+ container.getElements().remove(element);
+ container2.getElements().add(element);
+ }
+ }.run(false);
+ }
+
+ @Test
+ public void testElementLosesItsContainer() {
+
+ final Project project = getProject();
+ final TestElement element = getTestElement();
+ final TestElementContainer container = TestmodelFactory.eINSTANCE.createTestElementContainer();
+ container.getElements().add(element);
+
+ new EMFStoreCommand() {
+ @Override
+ protected void doRun() {
+ project.addModelElement(container);
+ clearOperations();
+ }
+ }.run(false);
+
+ new EMFStoreCommand() {
+ @Override
+ protected void doRun() {
+ container.getElements().add(element);
+ }
+ }.run(false);
+
+ new EMFStoreCommand() {
+ @Override
+ protected void doRun() {
+ element.setContainer(container);
+ }
+ }.run(false);
+
+ new EMFStoreCommand() {
+ @Override
+ protected void doRun() {
+ container.getElements().remove(element);
+ element.setContainer(null);
+ }
+ }.run(false);
+ }
+
+}
diff --git a/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/conflictDetection/ConflictDetectionMapTest.java b/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/conflictDetection/ConflictDetectionMapTest.java
index 6802ac8..6b4e5b4 100644
--- a/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/conflictDetection/ConflictDetectionMapTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/conflictDetection/ConflictDetectionMapTest.java
@@ -18,16 +18,26 @@
import java.util.Set;
import java.util.concurrent.Callable;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.emfstore.client.test.TestLogListener;
import org.eclipse.emf.emfstore.client.test.testmodel.TestElement;
import org.eclipse.emf.emfstore.client.test.testmodel.TestmodelFactory;
+import org.eclipse.emf.emfstore.client.test.testmodel.impl.TestElementToStringMapImpl;
+import org.eclipse.emf.emfstore.client.test.testmodel.impl.TestmodelFactoryImpl;
import org.eclipse.emf.emfstore.client.util.RunESCommand;
import org.eclipse.emf.emfstore.internal.client.model.exceptions.ChangeConflictException;
import org.eclipse.emf.emfstore.internal.client.model.impl.ProjectSpaceBase;
import org.eclipse.emf.emfstore.internal.common.model.ModelElementId;
+import org.eclipse.emf.emfstore.internal.common.model.util.ModelUtil;
import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.AbstractOperation;
+import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.CreateDeleteOperation;
+import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.SingleReferenceOperation;
import org.junit.Test;
/**
+ * Conflict detection tests for map entries.
+ *
* @author emueller
*/
public class ConflictDetectionMapTest extends ConflictDetectionTest {
@@ -38,6 +48,372 @@
* @throws ChangeConflictException
*/
@Test
+ public void testConflictCreateVSCreateMapEntryNonContainedKey() throws ChangeConflictException {
+
+ final TestElement testElement = TestmodelFactory.eINSTANCE.createTestElement();
+ final TestElement key = TestmodelFactory.eINSTANCE.createTestElement();
+ addTestElement(testElement);
+ addTestElement(key);
+
+ final ModelElementId modelElementId = getProjectSpace().getProject().getModelElementId(testElement);
+ final ModelElementId keyId = getProjectSpace().getProject().getModelElementId(key);
+ clonedProjectSpace = (ProjectSpaceBase) cloneProjectSpace(getProjectSpace());
+ final TestElement clonedTestElement = (TestElement) clonedProjectSpace.getProject().getModelElement(
+ modelElementId);
+ final TestElement clonedKey = (TestElement) clonedProjectSpace.getProject().getModelElement(keyId);
+
+ updateMapEntryNonContainedKey(testElement, key, "bar");
+ updateMapEntryNonContainedKey(clonedTestElement, clonedKey, "quux");
+
+ final Set<AbstractOperation> conflicts = getConflicts(
+ getProjectSpace().getLocalChangePackage().getOperations(),
+ clonedProjectSpace.getLocalChangePackage().getOperations(), getProject());
+
+ assertTrue(conflicts.size() > 0);
+
+ }
+
+ /**
+ * Tests if creating map entries with the same key conflict.
+ *
+ * @throws ChangeConflictException
+ */
+ @Test
+ public void testConflictCreateVsMoveNonContainedKey() throws ChangeConflictException {
+
+ final TestElement testElement = TestmodelFactory.eINSTANCE.createTestElement();
+ final TestElement key = TestmodelFactory.eINSTANCE.createTestElement();
+ final TestmodelFactoryImpl factory = (TestmodelFactoryImpl) TestmodelFactory.eINSTANCE;
+ final TestElementToStringMapImpl newEntry = (TestElementToStringMapImpl) factory.createTestElementToStringMap();
+ addTestElement(testElement);
+ addTestElement(key);
+ RunESCommand.run(new Callable<Void>() {
+ public Void call() throws Exception {
+ getProject().getModelElements().add(newEntry);
+ clearOperations();
+ return null;
+ }
+ });
+
+ final ModelElementId modelElementId = getProjectSpace().getProject().getModelElementId(testElement);
+ final ModelElementId keyId = getProjectSpace().getProject().getModelElementId(key);
+ final ModelElementId newEntryId = getProjectSpace().getProject().getModelElementId(newEntry);
+ clonedProjectSpace = (ProjectSpaceBase) cloneProjectSpace(getProjectSpace());
+ final TestElement clonedTestElement = (TestElement) clonedProjectSpace.getProject().getModelElement(
+ modelElementId);
+ final TestElementToStringMapImpl clonedNewEntry = (TestElementToStringMapImpl) clonedProjectSpace.getProject()
+ .getModelElement(newEntryId);
+
+ final TestElement clonedKey = (TestElement) clonedProjectSpace.getProject().getModelElement(keyId);
+
+ RunESCommand.run(new Callable<Void>() {
+ public Void call() throws Exception {
+ newEntry.setKey(key);
+ testElement.getElementToStringMap().add(newEntry);
+ return null;
+ }
+ });
+
+ RunESCommand.run(new Callable<Void>() {
+ public Void call() throws Exception {
+ clonedNewEntry.setKey(clonedKey);
+ clonedTestElement.getElementToStringMap().add(clonedNewEntry);
+ return null;
+ }
+ });
+
+ final Set<AbstractOperation> conflicts = getConflicts(
+ getProjectSpace().getLocalChangePackage().getOperations(),
+ clonedProjectSpace.getLocalChangePackage().getOperations(), getProject());
+
+ assertTrue(conflicts.size() > 0);
+
+ }
+
+ /**
+ * Tests if creating map entries with the same key conflict.
+ *
+ * @throws ChangeConflictException
+ */
+ @Test
+ public void testConflictCreateVSCreateMapEntryNonContainedKeySingleRefSubOpMissing() throws ChangeConflictException {
+
+ final TestElement testElement = TestmodelFactory.eINSTANCE.createTestElement();
+ final TestElement key = TestmodelFactory.eINSTANCE.createTestElement();
+ addTestElement(testElement);
+ addTestElement(key);
+
+ final ModelElementId modelElementId = getProjectSpace().getProject().getModelElementId(testElement);
+ final ModelElementId keyId = getProjectSpace().getProject().getModelElementId(key);
+ clonedProjectSpace = (ProjectSpaceBase) cloneProjectSpace(getProjectSpace());
+ final TestElement clonedTestElement = (TestElement) clonedProjectSpace.getProject().getModelElement(
+ modelElementId);
+ final TestElement clonedKey = (TestElement) clonedProjectSpace.getProject().getModelElement(keyId);
+
+ updateMapEntryNonContainedKey(testElement, key, "bar");
+ updateMapEntryNonContainedKey(clonedTestElement, clonedKey, "quux");
+
+ final EList<AbstractOperation> operations = getProjectSpace().getLocalChangePackage().getOperations();
+ final CreateDeleteOperation createDeleteOperation = CreateDeleteOperation.class.cast(operations.get(0));
+ createDeleteOperation.getSubOperations().clear();
+
+ // expect part of the log message
+ final TestLogListener logListener = new TestLogListener("Single reference sub operation of create operation");
+ Platform.getLog(Platform
+ .getBundle("org.eclipse.emf.emfstore.common.model")).addLogListener(logListener);
+
+ getConflicts(
+ getProjectSpace().getLocalChangePackage().getOperations(),
+ clonedProjectSpace.getLocalChangePackage().getOperations(), getProject());
+
+ assertTrue(logListener.didReceive());
+ }
+
+ /**
+ * Tests if creating map entries with the same key conflict.
+ *
+ * @throws ChangeConflictException
+ */
+ @Test
+ public void testConflictCreateVSCreateMapEntryNonContainedKeyKeyIsNull() throws ChangeConflictException {
+
+ final TestElement testElement = TestmodelFactory.eINSTANCE.createTestElement();
+ final TestElement key = TestmodelFactory.eINSTANCE.createTestElement();
+ addTestElement(testElement);
+ addTestElement(key);
+
+ final ModelElementId modelElementId = getProjectSpace().getProject().getModelElementId(testElement);
+ final ModelElementId keyId = getProjectSpace().getProject().getModelElementId(key);
+ clonedProjectSpace = (ProjectSpaceBase) cloneProjectSpace(getProjectSpace());
+ final TestElement clonedTestElement = (TestElement) clonedProjectSpace.getProject().getModelElement(
+ modelElementId);
+ final TestElement clonedKey = (TestElement) clonedProjectSpace.getProject().getModelElement(keyId);
+
+ updateMapEntryNonContainedKey(testElement, key, "bar");
+ updateMapEntryNonContainedKey(clonedTestElement, clonedKey, "quux");
+
+ final List<AbstractOperation> operations = ModelUtil.clone(
+ getProjectSpace().getLocalChangePackage().getOperations());
+ final CreateDeleteOperation createDeleteOperation = CreateDeleteOperation.class.cast(operations.get(0));
+ final SingleReferenceOperation singleReferenceOperation = SingleReferenceOperation.class.cast(
+ createDeleteOperation.getSubOperations().get(0));
+ // causes null to be returned when trying to find the key
+ singleReferenceOperation.getOtherInvolvedModelElements().iterator().next().setId("foo");
+
+ final List<AbstractOperation> operations2 = ModelUtil.clone(
+ clonedProjectSpace.getLocalChangePackage().getOperations());
+ // causes null to be returned when trying to find the key
+ singleReferenceOperation.getOtherInvolvedModelElements().iterator().next().setId("bar");
+
+ RunESCommand.run(new Callable<Void>() {
+ public Void call() throws Exception {
+ getProject().getModelElements().remove(key);
+ clonedProjectSpace.getProject().getModelElements().remove(clonedKey);
+ return null;
+ }
+ });
+
+ // expect part of the log message
+ final TestLogListener logListener = new TestLogListener("Key is null. Can not be used for conflict detection.");
+ Platform.getLog(Platform
+ .getBundle("org.eclipse.emf.emfstore.common.model")).addLogListener(logListener);
+
+ getConflicts(operations, operations2, getProject());
+
+ assertTrue(logListener.didReceive());
+ }
+
+ @Test
+ public void testNonConflictingCreateVsCreate() {
+ final TestElement testElement = TestmodelFactory.eINSTANCE.createTestElement();
+ final TestElement key = TestmodelFactory.eINSTANCE.createTestElement();
+ final TestElement secondKey = TestmodelFactory.eINSTANCE.createTestElement();
+ addTestElement(testElement);
+ addTestElement(key);
+ addTestElement(secondKey);
+
+ final ModelElementId testElementId = getProject().getModelElementId(testElement);
+ final ModelElementId secondKeyId = getProject().getModelElementId(secondKey);
+
+ clonedProjectSpace = (ProjectSpaceBase) cloneProjectSpace(getProjectSpace());
+ final TestElement clonedTestElement = (TestElement) clonedProjectSpace.getProject().getModelElement(
+ testElementId);
+ final TestElement clonedSecondKey = (TestElement) clonedProjectSpace.getProject().getModelElement(secondKeyId);
+
+ updateMapEntryNonContainedKey(testElement, key, "foo");
+ updateMapEntryNonContainedKey(clonedTestElement, clonedSecondKey, "bar");
+
+ final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
+ final List<AbstractOperation> ops2 = clonedProjectSpace.getOperations();
+
+ final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2, getProject());
+
+ assertEquals(0, conflicts.size());
+ }
+
+ @Test
+ public void testNonConflictingRemoveVsRemove() {
+ final TestElement testElement = TestmodelFactory.eINSTANCE.createTestElement();
+ final TestElement key = TestmodelFactory.eINSTANCE.createTestElement();
+ final TestElement secondKey = TestmodelFactory.eINSTANCE.createTestElement();
+ addTestElement(testElement);
+ addTestElement(key);
+ addTestElement(secondKey);
+
+ final ModelElementId testElementId = getProject().getModelElementId(testElement);
+ final ModelElementId secondKeyId = getProject().getModelElementId(secondKey);
+
+ clonedProjectSpace = (ProjectSpaceBase) cloneProjectSpace(getProjectSpace());
+ final TestElement clonedTestElement = (TestElement) clonedProjectSpace.getProject().getModelElement(
+ testElementId);
+ final TestElement clonedSecondKey = (TestElement) clonedProjectSpace.getProject().getModelElement(secondKeyId);
+
+ updateMapEntryNonContainedKey(testElement, key, "foo");
+ updateMapEntryNonContainedKey(clonedTestElement, clonedSecondKey, "bar");
+
+ clearOperations();
+
+ RunESCommand.run(new Callable<Void>() {
+ public Void call() throws Exception {
+ testElement.getElementToStringMap().clear();
+ clonedTestElement.getElementToStringMap().clear();
+ return null;
+ }
+ });
+
+ final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
+ final List<AbstractOperation> ops2 = clonedProjectSpace.getOperations();
+
+ final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2, getProject());
+
+ assertEquals(0, conflicts.size());
+ }
+
+ @Test
+ public void testConflictCreateVSDeleteMapEntryNonContainedKey() throws ChangeConflictException {
+
+ final TestElement testElement = TestmodelFactory.eINSTANCE.createTestElement();
+ final TestElement key = TestmodelFactory.eINSTANCE.createTestElement();
+ addTestElement(testElement);
+ addTestElement(key);
+
+ final ModelElementId modelElementId = getProjectSpace().getProject().getModelElementId(testElement);
+ final ModelElementId keyId = getProjectSpace().getProject().getModelElementId(key);
+
+ updateMapEntryNonContainedKey(testElement, key, "bar");
+ clearOperations();
+ clonedProjectSpace = (ProjectSpaceBase) cloneProjectSpace(getProjectSpace());
+ final TestElement clonedTestElement = (TestElement) clonedProjectSpace.getProject().getModelElement(
+ modelElementId);
+ final TestElement clonedKey = (TestElement) clonedProjectSpace.getProject().getModelElement(keyId);
+
+ updateMapEntryNonContainedKey(testElement, key, "bar2");
+ deleteMapEntryNonContainedKey(clonedTestElement, clonedKey);
+
+ final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
+ final List<AbstractOperation> ops2 = clonedProjectSpace.getOperations();
+
+ final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2, getProject());
+
+ assertTrue(conflicts.size() > 0);
+ }
+
+ @Test
+ public void testConflictUpdateVSUpdateMapEntryNonContainedKey() {
+
+ final TestElement testElement = TestmodelFactory.eINSTANCE.createTestElement();
+ final TestElement key = TestmodelFactory.eINSTANCE.createTestElement();
+ addTestElement(testElement);
+ addTestElement(key);
+
+ final ModelElementId modelElementId = getProjectSpace().getProject().getModelElementId(testElement);
+ final ModelElementId keyId = getProjectSpace().getProject().getModelElementId(key);
+
+ updateMapEntryNonContainedKey(testElement, key, "bar");
+ clearOperations();
+ clonedProjectSpace = (ProjectSpaceBase) cloneProjectSpace(getProjectSpace());
+ final TestElement clonedTestElement = (TestElement) clonedProjectSpace.getProject().getModelElement(
+ modelElementId);
+ final TestElement clonedKey = (TestElement) clonedProjectSpace.getProject().getModelElement(
+ keyId);
+
+ updateMapEntryNonContainedKey(testElement, key, "hello1");
+ updateMapEntryNonContainedKey(clonedTestElement, clonedKey, "hello2");
+
+ final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
+ final List<AbstractOperation> ops2 = clonedProjectSpace.getOperations();
+
+ final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2, getProject());
+
+ assertTrue(conflicts.size() > 0);
+ }
+
+ @Test
+ public void testConflictUpdateVSDeleteMapEntryNonContainedKey() throws ChangeConflictException {
+
+ final TestElement testElement = TestmodelFactory.eINSTANCE.createTestElement();
+ final TestElement key = TestmodelFactory.eINSTANCE.createTestElement();
+ addTestElement(testElement);
+ addTestElement(key);
+
+ final ModelElementId modelElementId = getProjectSpace().getProject().getModelElementId(testElement);
+ final ModelElementId keyId = getProjectSpace().getProject().getModelElementId(key);
+
+ updateMapEntryNonContainedKey(testElement, key, "bar");
+ clearOperations();
+ clonedProjectSpace = (ProjectSpaceBase) cloneProjectSpace(getProjectSpace());
+ final TestElement clonedTestElement = (TestElement) clonedProjectSpace.getProject().getModelElement(
+ modelElementId);
+ final TestElement clonedKey = (TestElement) clonedProjectSpace.getProject().getModelElement(
+ keyId);
+
+ updateMapEntryNonContainedKey(testElement, key, "hello1");
+ deleteMapEntryNonContainedKey(clonedTestElement, clonedKey);
+
+ final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
+ final List<AbstractOperation> ops2 = clonedProjectSpace.getOperations();
+
+ final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2, getProject());
+
+ assertTrue(conflicts.size() > 0);
+ }
+
+ @Test
+ public void testConflictDeleteVSDeleteMapEntryNonContainedKey() {
+
+ final TestElement testElement = TestmodelFactory.eINSTANCE.createTestElement();
+ final TestElement key = TestmodelFactory.eINSTANCE.createTestElement();
+ addTestElement(testElement);
+ addTestElement(key);
+
+ final ModelElementId modelElementId = getProjectSpace().getProject().getModelElementId(testElement);
+ final ModelElementId keyId = getProjectSpace().getProject().getModelElementId(key);
+
+ updateMapEntryNonContainedKey(testElement, key, "bar");
+ clearOperations();
+ clonedProjectSpace = (ProjectSpaceBase) cloneProjectSpace(getProjectSpace());
+ final TestElement clonedTestElement = (TestElement) clonedProjectSpace.getProject().getModelElement(
+ modelElementId);
+ final TestElement clonedKey = (TestElement) clonedProjectSpace.getProject().getModelElement(
+ keyId);
+
+ deleteMapEntryNonContainedKey(testElement, key);
+ deleteMapEntryNonContainedKey(clonedTestElement, clonedKey);
+
+ final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
+ final List<AbstractOperation> ops2 = clonedProjectSpace.getOperations();
+
+ final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2, getProject());
+
+ assertEquals(1, conflicts.size());
+ }
+
+ /**
+ * Tests if creating map entries with the same key conflict.
+ *
+ * @throws ChangeConflictException
+ */
+ @Test
public void testConflictCreateVSCreateMapEntry() throws ChangeConflictException {
final TestElement testElement = TestmodelFactory.eINSTANCE.createTestElement();
@@ -168,6 +544,15 @@
});
}
+ private void deleteMapEntryNonContainedKey(final TestElement testElement, final TestElement key) {
+ RunESCommand.run(new Callable<Void>() {
+ public Void call() throws Exception {
+ testElement.getElementToStringMap().remove(key);
+ return null;
+ }
+ });
+ }
+
private void updateMapEntry(final TestElement testElement, final String key, final String value) {
RunESCommand.run(new Callable<Void>() {
public Void call() throws Exception {
@@ -177,6 +562,15 @@
});
}
+ private void updateMapEntryNonContainedKey(final TestElement testElement, final TestElement key, final String value) {
+ RunESCommand.run(new Callable<Void>() {
+ public Void call() throws Exception {
+ testElement.getElementToStringMap().put(key, value);
+ return null;
+ }
+ });
+ }
+
private void addTestElement(final TestElement testElement) {
RunESCommand.run(new Callable<Void>() {
public Void call() throws Exception {
diff --git a/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/conflictDetection/ConflictDetectionTest.java b/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/conflictDetection/ConflictDetectionTest.java
index 1c97e7c..4361205 100644
--- a/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/conflictDetection/ConflictDetectionTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/conflictDetection/ConflictDetectionTest.java
@@ -96,12 +96,12 @@
return conflictSet.getConflictBuckets().size() > 0;
}
- public Set<AbstractOperation> getConflicts(List<AbstractOperation> ops1, List<AbstractOperation> ops2) {
+ public Set<AbstractOperation> getConflicts(List<AbstractOperation> ops1, List<AbstractOperation> ops2,
+ Project project) {
final ChangePackage changePackage1 = VersioningFactory.eINSTANCE.createChangePackage();
changePackage1.getOperations().addAll(ops1);
final ChangePackage changePackage2 = VersioningFactory.eINSTANCE.createChangePackage();
changePackage2.getOperations().addAll(ops2);
- final Project project = ModelFactory.eINSTANCE.createProject();
final ChangeConflictSet conflicts = new ConflictDetector().calculateConflicts(Arrays.asList(changePackage1),
Arrays.asList(changePackage2), project);
final LinkedHashSet<AbstractOperation> result = new LinkedHashSet<AbstractOperation>();
@@ -112,6 +112,10 @@
return result;
}
+ public Set<AbstractOperation> getConflicts(List<AbstractOperation> ops1, List<AbstractOperation> ops2) {
+ return getConflicts(ops1, ops2, ModelFactory.eINSTANCE.createProject());
+ }
+
public <T extends AbstractOperation> AbstractOperation myCheckAndGetOperation(
final Class<? extends AbstractOperation> clazz) {
return new EMFStoreCommandWithResult<AbstractOperation>() {
diff --git a/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/persistence/AllPersistenceTests.java b/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/persistence/AllPersistenceTests.java
index 0f9ec3b..9b9111a 100644
--- a/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/persistence/AllPersistenceTests.java
+++ b/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/persistence/AllPersistenceTests.java
@@ -1,26 +1,26 @@
-/*******************************************************************************
- * Copyright (c) 2012-2013 EclipseSource Muenchen GmbH and others.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * emueller
- ******************************************************************************/
-package org.eclipse.emf.emfstore.client.test.persistence;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-
-/**
- * Test Suite for running all tests of workspace.
- *
- * @author emueller
- */
-@RunWith(Suite.class)
-@Suite.SuiteClasses({ ImportExportTest.class, PersistenceTest.class, ProjectCacheTest.class })
-public class AllPersistenceTests {
-
-}
+/*******************************************************************************
+ * Copyright (c) 2012-2013 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * emueller
+ ******************************************************************************/
+package org.eclipse.emf.emfstore.client.test.persistence;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+
+/**
+ * Test Suite for running all tests of workspace.
+ *
+ * @author emueller
+ */
+@RunWith(Suite.class)
+@Suite.SuiteClasses({ ImportExportTest.class, PersistenceTest.class })
+public class AllPersistenceTests {
+
+}
diff --git a/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/server/VersionVerifierTest.java b/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/server/VersionVerifierTest.java
new file mode 100644
index 0000000..a555c78
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/server/VersionVerifierTest.java
@@ -0,0 +1,129 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2013 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Edgar - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.emfstore.client.test.server;
+
+import static org.junit.Assert.assertEquals;
+
+import org.eclipse.emf.emfstore.internal.server.ServerConfiguration;
+import org.eclipse.emf.emfstore.internal.server.accesscontrol.authentication.verifiers.VersionVerifier;
+import org.eclipse.emf.emfstore.internal.server.exceptions.ClientVersionOutOfDateException;
+import org.eclipse.emf.emfstore.internal.server.model.ClientVersionInfo;
+import org.eclipse.emf.emfstore.internal.server.model.ModelFactory;
+import org.junit.Test;
+
+/**
+ * @author Edgar
+ *
+ */
+public class VersionVerifierTest {
+
+ private static final String[] ACCEPTED_VERSION_1_2_3 = new String[] { "1.2.3" };
+ private static final String[] ACCEPTED_VERSION_1_2_4 = new String[] { "1.2.4" };
+ private static final String[] WILDCARD_VERSION = new String[] { "1.2.4.*" };
+ private static final String[] WILDCARD_VERSION_WITH_SUFFIX = new String[] { "1.2.4.*FOO" };
+ private static final String[] ANY_VERSION = new String[] { ServerConfiguration.ACCEPTED_VERSIONS_ANY };
+ private static final String[] ACCEPTED_VERSIONS = new String[] {
+ ACCEPTED_VERSION_1_2_3[0], ACCEPTED_VERSION_1_2_4[0] };
+
+ private static ClientVersionInfo createVersionInfo(String version) {
+ final ClientVersionInfo clientVersionInfo = ModelFactory.eINSTANCE.createClientVersionInfo();
+ clientVersionInfo.setVersion(version);
+ return clientVersionInfo;
+ }
+
+ @Test(expected = ClientVersionOutOfDateException.class)
+ public void testVerifyNull() throws ClientVersionOutOfDateException {
+ VersionVerifier.verify(ACCEPTED_VERSIONS, null);
+ }
+
+ @Test
+ public void testSupplyNoVersions() throws ClientVersionOutOfDateException {
+ VersionVerifier.verify(null, createVersionInfo("1.2.3"));
+ }
+
+ @Test
+ public void testMathesOneOfMany() throws ClientVersionOutOfDateException {
+ VersionVerifier.verify(ACCEPTED_VERSION_1_2_3, createVersionInfo("1.2.3"));
+ }
+
+ @Test
+ public void testMathesOne() throws ClientVersionOutOfDateException {
+ VersionVerifier.verify(ACCEPTED_VERSIONS, createVersionInfo("1.2.3"));
+ }
+
+ @Test
+ public void testMatchesWildcard() throws ClientVersionOutOfDateException {
+ VersionVerifier.verify(WILDCARD_VERSION, createVersionInfo("1.2.4.1"));
+ VersionVerifier.verify(WILDCARD_VERSION, createVersionInfo("1.2.4.1xyz"));
+ }
+
+ @Test(expected = ClientVersionOutOfDateException.class)
+ public void testMatchesNotWildcard1() throws ClientVersionOutOfDateException {
+ VersionVerifier.verify(WILDCARD_VERSION, createVersionInfo("1.2.3.1"));
+ }
+
+ @Test(expected = ClientVersionOutOfDateException.class)
+ public void testMatchesNotWildcard2() throws ClientVersionOutOfDateException {
+ VersionVerifier.verify(WILDCARD_VERSION, createVersionInfo("1.2.3.4.1xyz"));
+ }
+
+ @Test(expected = ClientVersionOutOfDateException.class)
+ public void testMatchesNotWildcard3() throws ClientVersionOutOfDateException {
+ VersionVerifier.verify(WILDCARD_VERSION, createVersionInfo("1.2.3.4"));
+ }
+
+ @Test
+ public void testMatchesWildcardWithSuffix() throws ClientVersionOutOfDateException {
+ VersionVerifier.verify(WILDCARD_VERSION_WITH_SUFFIX, createVersionInfo("1.2.4.1xyzFOO"));
+ VersionVerifier.verify(WILDCARD_VERSION_WITH_SUFFIX, createVersionInfo("1.2.4.1FOO"));
+ }
+
+ @Test(expected = ClientVersionOutOfDateException.class)
+ public void testMatchesNotWildcardWithSuffix1() throws ClientVersionOutOfDateException {
+ VersionVerifier.verify(WILDCARD_VERSION_WITH_SUFFIX, createVersionInfo("1.2.4.1xyz"));
+ }
+
+ @Test(expected = ClientVersionOutOfDateException.class)
+ public void testMatchesNotWildcardWithSuffix2() throws ClientVersionOutOfDateException {
+ VersionVerifier.verify(WILDCARD_VERSION_WITH_SUFFIX, createVersionInfo("1.2.4FOO"));
+ }
+
+ @Test(expected = ClientVersionOutOfDateException.class)
+ public void testMatchesNotWildcardWithSuffix3() throws ClientVersionOutOfDateException {
+ VersionVerifier.verify(WILDCARD_VERSION_WITH_SUFFIX, createVersionInfo("1X2.4FOO"));
+ }
+
+ @Test
+ public void testMatchesAny() throws ClientVersionOutOfDateException {
+ VersionVerifier.verify(ANY_VERSION, createVersionInfo("abc"));
+ }
+
+ @Test
+ public void testInspectClientVersionOutOfDateMessage() {
+ try {
+ VersionVerifier.verify(ACCEPTED_VERSION_1_2_3, createVersionInfo("1.1.1"));
+ } catch (final ClientVersionOutOfDateException ex) {
+ assertEquals("Client version: " + "1.1.1"
+ + " - Accepted versions: " + "1.2.3.", ex.getMessage());
+ }
+ }
+
+ @Test
+ public void testInspectClientVersionOutOfDateMessages() {
+ try {
+ VersionVerifier.verify(ACCEPTED_VERSIONS, createVersionInfo("1.1.1"));
+ } catch (final ClientVersionOutOfDateException ex) {
+ assertEquals("Client version: " + "1.1.1"
+ + " - Accepted versions: " + "1.2.3, 1.2.4.", ex.getMessage());
+ }
+ }
+}
diff --git a/tests/org.eclipse.emf.emfstore.fuzzy.emf.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.emfstore.fuzzy.emf.test/META-INF/MANIFEST.MF
index b6a4bc1..a5129ed 100644
--- a/tests/org.eclipse.emf.emfstore.fuzzy.emf.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.emfstore.fuzzy.emf.test/META-INF/MANIFEST.MF
@@ -2,10 +2,10 @@
Bundle-ManifestVersion: 2
Bundle-Name: Tests for EMFDataprovider
Bundle-SymbolicName: org.eclipse.emf.emfstore.fuzzy.emf.test;singleton:=true
-Bundle-Version: 1.0.2.qualifier
-Require-Bundle: org.eclipse.emf.emfstore.fuzzy.emf;bundle-version="[1.0.2,2.0.0)";visibility:=reexport,
- org.eclipse.emf.emfstore.client.test;bundle-version="[1.0.2,2.0.0)";visibility:=reexport
+Bundle-Version: 1.0.4.qualifier
+Require-Bundle: org.eclipse.emf.emfstore.fuzzy.emf;bundle-version="[1.0.4,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.emfstore.client.test;bundle-version="[1.0.4,2.0.0)";visibility:=reexport
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-ClassPath: .
Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.emfstore.fuzzy.emf.test;version="1.0.2";x-internal:=true
+Export-Package: org.eclipse.emf.emfstore.fuzzy.emf.test;version="1.0.4";x-internal:=true
diff --git a/tests/org.eclipse.emf.emfstore.fuzzy.emf.test/pom.xml b/tests/org.eclipse.emf.emfstore.fuzzy.emf.test/pom.xml
index 63a4eeb..b8fabf6 100644
--- a/tests/org.eclipse.emf.emfstore.fuzzy.emf.test/pom.xml
+++ b/tests/org.eclipse.emf.emfstore.fuzzy.emf.test/pom.xml
@@ -5,12 +5,12 @@
<parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>emfstore-parent</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<relativePath>../../releng/emfstore-parent/</relativePath>
</parent>
<groupId>org.eclipse.emf.emfstore</groupId>
<artifactId>org.eclipse.emf.emfstore.fuzzy.emf.test</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<packaging>eclipse-test-plugin</packaging>
<build>