diff options
author | Eike Stepper | 2020-06-30 05:12:02 +0000 |
---|---|---|
committer | Eike Stepper | 2020-06-30 05:12:02 +0000 |
commit | 729a21108038d2b81ce422486059e59a98fb1511 (patch) | |
tree | 7fd6b9f68a5e864b111a07d2d8ad774035a4cded | |
parent | d9c60321acbeaf75046d95d5fb0e7ee93a55419e (diff) | |
download | cdo-729a21108038d2b81ce422486059e59a98fb1511.tar.gz cdo-729a21108038d2b81ce422486059e59a98fb1511.tar.xz cdo-729a21108038d2b81ce422486059e59a98fb1511.zip |
[564757] Provide a way to unfreeze revisions
https://bugs.eclipse.org/bugs/show_bug.cgi?id=564757
4 files changed, 66 insertions, 35 deletions
diff --git a/plugins/org.eclipse.emf.cdo.common/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.common/META-INF/MANIFEST.MF index da2e9962f7..cecc034fb4 100644 --- a/plugins/org.eclipse.emf.cdo.common/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.emf.cdo.common/META-INF/MANIFEST.MF @@ -1,7 +1,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-SymbolicName: org.eclipse.emf.cdo.common;singleton:=true -Bundle-Version: 4.10.1.qualifier +Bundle-Version: 4.11.0.qualifier Bundle-Name: %pluginName Bundle-Vendor: %providerName Bundle-Localization: plugin @@ -15,21 +15,21 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)";visibili org.eclipse.emf.ecore.change;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.net4j.util;bundle-version="[3.0.0,4.0.0)";visibility:=reexport -Export-Package: org.eclipse.emf.cdo.common;version="4.10.1", - org.eclipse.emf.cdo.common.admin;version="4.10.1", - org.eclipse.emf.cdo.common.branch;version="4.10.1", - org.eclipse.emf.cdo.common.commit;version="4.10.1", - org.eclipse.emf.cdo.common.commit.handler;version="4.10.1", - org.eclipse.emf.cdo.common.id;version="4.10.1", - org.eclipse.emf.cdo.common.lob;version="4.10.1", - org.eclipse.emf.cdo.common.lock;version="4.10.1", - org.eclipse.emf.cdo.common.model;version="4.10.1", - org.eclipse.emf.cdo.common.protocol;version="4.10.1", - org.eclipse.emf.cdo.common.revision;version="4.10.1", - org.eclipse.emf.cdo.common.revision.delta;version="4.10.1", - org.eclipse.emf.cdo.common.security;version="4.10.1", - org.eclipse.emf.cdo.common.util;version="4.10.1", - org.eclipse.emf.cdo.internal.common;version="4.10.1"; +Export-Package: org.eclipse.emf.cdo.common;version="4.11.0", + org.eclipse.emf.cdo.common.admin;version="4.11.0", + org.eclipse.emf.cdo.common.branch;version="4.11.0", + org.eclipse.emf.cdo.common.commit;version="4.11.0", + org.eclipse.emf.cdo.common.commit.handler;version="4.11.0", + org.eclipse.emf.cdo.common.id;version="4.11.0", + org.eclipse.emf.cdo.common.lob;version="4.11.0", + org.eclipse.emf.cdo.common.lock;version="4.11.0", + org.eclipse.emf.cdo.common.model;version="4.11.0", + org.eclipse.emf.cdo.common.protocol;version="4.11.0", + org.eclipse.emf.cdo.common.revision;version="4.11.0", + org.eclipse.emf.cdo.common.revision.delta;version="4.11.0", + org.eclipse.emf.cdo.common.security;version="4.11.0", + org.eclipse.emf.cdo.common.util;version="4.11.0", + org.eclipse.emf.cdo.internal.common;version="4.11.0"; x-friends:="org.eclipse.emf.cdo.common, org.eclipse.emf.cdo.common.db, org.eclipse.emf.cdo, @@ -38,10 +38,10 @@ Export-Package: org.eclipse.emf.cdo.common;version="4.10.1", org.eclipse.emf.cdo.server.net4j, org.eclipse.emf.cdo.ui, org.eclipse.emf.cdo.tests", - org.eclipse.emf.cdo.internal.common.branch;version="4.10.1"; + org.eclipse.emf.cdo.internal.common.branch;version="4.11.0"; x-friends:="org.eclipse.emf.cdo.tests", - org.eclipse.emf.cdo.internal.common.bundle;version="4.10.1";x-internal:=true, - org.eclipse.emf.cdo.internal.common.commit;version="4.10.1"; + org.eclipse.emf.cdo.internal.common.bundle;version="4.11.0";x-internal:=true, + org.eclipse.emf.cdo.internal.common.commit;version="4.11.0"; x-friends:="org.eclipse.emf.cdo.common, org.eclipse.emf.cdo.common.db, org.eclipse.emf.cdo, @@ -50,7 +50,7 @@ Export-Package: org.eclipse.emf.cdo.common;version="4.10.1", org.eclipse.emf.cdo.server.net4j, org.eclipse.emf.cdo.ui, org.eclipse.emf.cdo.tests", - org.eclipse.emf.cdo.internal.common.id;version="4.10.1"; + org.eclipse.emf.cdo.internal.common.id;version="4.11.0"; x-friends:="org.eclipse.emf.cdo.common, org.eclipse.emf.cdo.common.db, org.eclipse.emf.cdo, @@ -61,9 +61,9 @@ Export-Package: org.eclipse.emf.cdo.common;version="4.10.1", org.eclipse.emf.cdo.tests, org.eclipse.emf.cdo.admin, org.eclipse.emf.cdo.server.admin", - org.eclipse.emf.cdo.internal.common.lock;version="4.10.1";x-internal:=true, - org.eclipse.emf.cdo.internal.common.messages;version="4.10.1";x-internal:=true, - org.eclipse.emf.cdo.internal.common.model;version="4.10.1"; + org.eclipse.emf.cdo.internal.common.lock;version="4.11.0";x-internal:=true, + org.eclipse.emf.cdo.internal.common.messages;version="4.11.0";x-internal:=true, + org.eclipse.emf.cdo.internal.common.model;version="4.11.0"; x-friends:="org.eclipse.emf.cdo.common, org.eclipse.emf.cdo.common.db, org.eclipse.emf.cdo, @@ -72,7 +72,7 @@ Export-Package: org.eclipse.emf.cdo.common;version="4.10.1", org.eclipse.emf.cdo.server.net4j, org.eclipse.emf.cdo.ui, org.eclipse.emf.cdo.tests", - org.eclipse.emf.cdo.internal.common.revision;version="4.10.1"; + org.eclipse.emf.cdo.internal.common.revision;version="4.11.0"; x-friends:="org.eclipse.emf.cdo.common, org.eclipse.emf.cdo.common.db, org.eclipse.emf.cdo, @@ -81,7 +81,7 @@ Export-Package: org.eclipse.emf.cdo.common;version="4.10.1", org.eclipse.emf.cdo.server.net4j, org.eclipse.emf.cdo.ui, org.eclipse.emf.cdo.tests", - org.eclipse.emf.cdo.internal.common.revision.delta;version="4.10.1"; + org.eclipse.emf.cdo.internal.common.revision.delta;version="4.11.0"; x-friends:="org.eclipse.emf.cdo.common, org.eclipse.emf.cdo.common.db, org.eclipse.emf.cdo, @@ -90,14 +90,14 @@ Export-Package: org.eclipse.emf.cdo.common;version="4.10.1", org.eclipse.emf.cdo.server.net4j, org.eclipse.emf.cdo.ui, org.eclipse.emf.cdo.tests", - org.eclipse.emf.cdo.spi.common;version="4.10.1", - org.eclipse.emf.cdo.spi.common.admin;version="4.10.1", - org.eclipse.emf.cdo.spi.common.branch;version="4.10.1", - org.eclipse.emf.cdo.spi.common.commit;version="4.10.1", - org.eclipse.emf.cdo.spi.common.id;version="4.10.1", - org.eclipse.emf.cdo.spi.common.lock;version="4.10.1", - org.eclipse.emf.cdo.spi.common.model;version="4.10.1", - org.eclipse.emf.cdo.spi.common.protocol;version="4.10.1", - org.eclipse.emf.cdo.spi.common.revision;version="4.10.1" + org.eclipse.emf.cdo.spi.common;version="4.11.0", + org.eclipse.emf.cdo.spi.common.admin;version="4.11.0", + org.eclipse.emf.cdo.spi.common.branch;version="4.11.0", + org.eclipse.emf.cdo.spi.common.commit;version="4.11.0", + org.eclipse.emf.cdo.spi.common.id;version="4.11.0", + org.eclipse.emf.cdo.spi.common.lock;version="4.11.0", + org.eclipse.emf.cdo.spi.common.model;version="4.11.0", + org.eclipse.emf.cdo.spi.common.protocol;version="4.11.0", + org.eclipse.emf.cdo.spi.common.revision;version="4.11.0" Automatic-Module-Name: org.eclipse.emf.cdo.common Eclipse-RegisterBuddy: org.eclipse.net4j.util diff --git a/plugins/org.eclipse.emf.cdo.common/pom.xml b/plugins/org.eclipse.emf.cdo.common/pom.xml index 816af48323..2498e23264 100644 --- a/plugins/org.eclipse.emf.cdo.common/pom.xml +++ b/plugins/org.eclipse.emf.cdo.common/pom.xml @@ -25,7 +25,7 @@ <groupId>org.eclipse.emf.cdo</groupId> <artifactId>org.eclipse.emf.cdo.common</artifactId> - <version>4.10.1-SNAPSHOT</version> + <version>4.11.0-SNAPSHOT</version> <packaging>eclipse-plugin</packaging> </project> diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDOListImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDOListImpl.java index 246a2e4dee..09dd763359 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDOListImpl.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDOListImpl.java @@ -110,6 +110,11 @@ public class CDOListImpl extends BasicEList<Object> implements InternalCDOList.C flags |= FROZEN_FLAG; } + public void unfreeze() + { + flags &= ~FROZEN_FLAG; + } + private void checkFrozen() { if ((flags & FROZEN_FLAG) != 0) diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/BaseCDORevision.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/BaseCDORevision.java index c38cae2d52..0120906074 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/BaseCDORevision.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/BaseCDORevision.java @@ -1099,6 +1099,32 @@ public abstract class BaseCDORevision extends AbstractCDORevision } /** + * @since 4.11 + */ + public void unfreeze() + { + flags &= ~FROZEN_FLAG; + + if (isReadable()) + { + EStructuralFeature[] features = getAllPersistentFeatures(); + for (int i = 0; i < features.length; i++) + { + EStructuralFeature feature = features[i]; + if (feature.isMany()) + { + Object value = doGetValue(i); + if (value instanceof CDOListImpl) + { + CDOListImpl list = (CDOListImpl)value; + list.unfreeze(); + } + } + } + } + } + + /** * @since 4.2 */ @Override |