From 6054292cf737bf6033e02884a1d01c366e938f25 Mon Sep 17 00:00:00 2001
From: Eike Stepper
Date: Mon, 5 Nov 2018 09:52:35 +0100
Subject: [540776] Add a InternalCDOObject.cdoInternalPreAttach() callback
https://bugs.eclipse.org/bugs/show_bug.cgi?id=540776
---
plugins/org.eclipse.emf.cdo/META-INF/MANIFEST.MF | 52 +++++++++++-----------
plugins/org.eclipse.emf.cdo/pom.xml | 2 +-
.../eclipse/emf/internal/cdo/CDOObjectImpl.java | 16 +++++++
.../emf/internal/cdo/object/CDOLegacyWrapper.java | 5 +++
.../emf/internal/cdo/view/CDOStateMachine.java | 2 +
.../org/eclipse/emf/spi/cdo/InternalCDOObject.java | 5 +++
6 files changed, 55 insertions(+), 27 deletions(-)
diff --git a/plugins/org.eclipse.emf.cdo/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo/META-INF/MANIFEST.MF
index afff752c79..601c9c9534 100644
--- a/plugins/org.eclipse.emf.cdo/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.cdo/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.emf.cdo; singleton:=true
-Bundle-Version: 4.6.200.qualifier
+Bundle-Version: 4.7.0.qualifier
Bundle-ClassPath: .
Bundle-Vendor: %providerName
Bundle-Localization: plugin
@@ -10,28 +10,28 @@ Bundle-Activator: org.eclipse.emf.internal.cdo.bundle.Activator$Implementation
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Require-Bundle: org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)";resolution:=optional,
org.eclipse.emf.cdo.common;bundle-version="[4.0.0,5.0.0)";visibility:=reexport
-Export-Package: org.eclipse.emf.cdo;version="4.6.200",
- org.eclipse.emf.cdo.eresource;version="4.6.200",
- org.eclipse.emf.cdo.eresource.impl;version="4.6.200",
- org.eclipse.emf.cdo.eresource.util;version="4.6.200",
- org.eclipse.emf.cdo.eresource.validation;version="4.6.200",
- org.eclipse.emf.cdo.etypes;version="4.6.200",
- org.eclipse.emf.cdo.etypes.impl;version="4.6.200",
- org.eclipse.emf.cdo.etypes.util;version="4.6.200",
- org.eclipse.emf.cdo.session;version="4.6.200",
- org.eclipse.emf.cdo.session.remote;version="4.6.200",
- org.eclipse.emf.cdo.transaction;version="4.6.200",
- org.eclipse.emf.cdo.util;version="4.6.200",
- org.eclipse.emf.cdo.view;version="4.6.200",
- org.eclipse.emf.internal.cdo;version="4.6.200",
- org.eclipse.emf.internal.cdo.analyzer;version="4.6.200";
+Export-Package: org.eclipse.emf.cdo;version="4.7.0",
+ org.eclipse.emf.cdo.eresource;version="4.7.0",
+ org.eclipse.emf.cdo.eresource.impl;version="4.7.0",
+ org.eclipse.emf.cdo.eresource.util;version="4.7.0",
+ org.eclipse.emf.cdo.eresource.validation;version="4.7.0",
+ org.eclipse.emf.cdo.etypes;version="4.7.0",
+ org.eclipse.emf.cdo.etypes.impl;version="4.7.0",
+ org.eclipse.emf.cdo.etypes.util;version="4.7.0",
+ org.eclipse.emf.cdo.session;version="4.7.0",
+ org.eclipse.emf.cdo.session.remote;version="4.7.0",
+ org.eclipse.emf.cdo.transaction;version="4.7.0",
+ org.eclipse.emf.cdo.util;version="4.7.0",
+ org.eclipse.emf.cdo.view;version="4.7.0",
+ org.eclipse.emf.internal.cdo;version="4.7.0",
+ org.eclipse.emf.internal.cdo.analyzer;version="4.7.0";
x-friends:="org.eclipse.emf.cdo.net4j,
org.eclipse.emf.cdo.server,
org.eclipse.emf.cdo.tests,
org.eclipse.emf.cdo.ui",
- org.eclipse.emf.internal.cdo.bundle;version="4.6.200";x-friends:="org.eclipse.emf.cdo.ui",
- org.eclipse.emf.internal.cdo.messages;version="4.6.200";x-internal:=true,
- org.eclipse.emf.internal.cdo.object;version="4.6.200";
+ org.eclipse.emf.internal.cdo.bundle;version="4.7.0";x-friends:="org.eclipse.emf.cdo.ui",
+ org.eclipse.emf.internal.cdo.messages;version="4.7.0";x-internal:=true,
+ org.eclipse.emf.internal.cdo.object;version="4.7.0";
x-friends:="org.eclipse.emf.cdo.net4j,
org.eclipse.emf.cdo.server,
org.eclipse.emf.cdo.tests,
@@ -40,13 +40,13 @@ Export-Package: org.eclipse.emf.cdo;version="4.6.200",
org.eclipse.emf.cdo.explorer,
org.eclipse.emf.cdo.explorer.ui,
org.eclipse.emf.cdo.edit",
- org.eclipse.emf.internal.cdo.query;version="4.6.200";
+ org.eclipse.emf.internal.cdo.query;version="4.7.0";
x-friends:="org.eclipse.emf.cdo.net4j,
org.eclipse.emf.cdo.server,
org.eclipse.emf.cdo.tests,
org.eclipse.emf.cdo.ui,
org.eclipse.emf.cdo.tests.objectivity",
- org.eclipse.emf.internal.cdo.session;version="4.6.200";
+ org.eclipse.emf.internal.cdo.session;version="4.7.0";
x-friends:="org.eclipse.emf.cdo.net4j,
org.eclipse.emf.cdo.server,
org.eclipse.emf.cdo.tests,
@@ -56,23 +56,23 @@ Export-Package: org.eclipse.emf.cdo;version="4.6.200",
org.eclipse.emf.cdo.security.ui,
org.eclipse.emf.cdo.explorer,
org.eclipse.emf.cdo.explorer.ui",
- org.eclipse.emf.internal.cdo.session.remote;version="4.6.200";
+ org.eclipse.emf.internal.cdo.session.remote;version="4.7.0";
x-friends:="org.eclipse.emf.cdo.net4j,
org.eclipse.emf.cdo.server,
org.eclipse.emf.cdo.tests,
org.eclipse.emf.cdo.ui",
- org.eclipse.emf.internal.cdo.transaction;version="4.6.200";
+ org.eclipse.emf.internal.cdo.transaction;version="4.7.0";
x-friends:="org.eclipse.emf.cdo.net4j,
org.eclipse.emf.cdo.server,
org.eclipse.emf.cdo.tests,
org.eclipse.emf.cdo.ui,
org.eclipse.emf.cdo.explorer.ui",
- org.eclipse.emf.internal.cdo.util;version="4.6.200";
+ org.eclipse.emf.internal.cdo.util;version="4.7.0";
x-friends:="org.eclipse.emf.cdo.net4j,
org.eclipse.emf.cdo.server,
org.eclipse.emf.cdo.tests,
org.eclipse.emf.cdo.ui",
- org.eclipse.emf.internal.cdo.view;version="4.6.200";
+ org.eclipse.emf.internal.cdo.view;version="4.7.0";
x-friends:="org.eclipse.emf.cdo.net4j,
org.eclipse.emf.cdo.server,
org.eclipse.emf.cdo.tests,
@@ -80,6 +80,6 @@ Export-Package: org.eclipse.emf.cdo;version="4.6.200",
org.eclipse.emf.cdo.ui.ide,
org.eclipse.emf.cdo.explorer,
org.eclipse.emf.cdo.explorer.ui",
- org.eclipse.emf.spi.cdo;version="4.6.200"
+ org.eclipse.emf.spi.cdo;version="4.7.0"
Bundle-ActivationPolicy: lazy
Automatic-Module-Name: org.eclipse.emf.cdo
diff --git a/plugins/org.eclipse.emf.cdo/pom.xml b/plugins/org.eclipse.emf.cdo/pom.xml
index e6f81381bb..f883a640b7 100644
--- a/plugins/org.eclipse.emf.cdo/pom.xml
+++ b/plugins/org.eclipse.emf.cdo/pom.xml
@@ -25,7 +25,7 @@
org.eclipse.emf.cdo
org.eclipse.emf.cdo
- 4.6.200-SNAPSHOT
+ 4.7.0-SNAPSHOT
eclipse-plugin
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java
index b4212e50e4..760ebd7239 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java
@@ -38,6 +38,7 @@ import org.eclipse.emf.internal.cdo.view.CDOStateMachine;
import org.eclipse.net4j.util.ObjectUtil;
import org.eclipse.net4j.util.concurrent.IRWLockManager.LockType;
+import org.eclipse.net4j.util.om.OMPlatform;
import org.eclipse.net4j.util.om.trace.ContextTracer;
import org.eclipse.emf.common.notify.Adapter;
@@ -102,6 +103,8 @@ public class CDOObjectImpl extends MinimalEStoreEObjectImpl implements InternalC
private static final EObservableAdapterList.Listener[] ADAPTERS_LISTENERS = { ADAPTERS_LISTENER };
+ private static final boolean EMF_TO_STRING = OMPlatform.INSTANCE.isProperty("org.eclipse.emf.internal.cdo.CDOObjectImpl.emfToString");
+
/**
* Optimized storage of {@link CDOObject#cdoView()} and {@link CDOObject#cdoState()}.
*
@@ -431,6 +434,14 @@ public class CDOObjectImpl extends MinimalEStoreEObjectImpl implements InternalC
cdoInternalSetRevision(null);
}
+ /**
+ * @since 4.7
+ */
+ public void cdoInternalPreAttach()
+ {
+ // Do nothing
+ }
+
public final void cdoInternalPostAttach()
{
if (TRACER.isEnabled())
@@ -1210,6 +1221,11 @@ public class CDOObjectImpl extends MinimalEStoreEObjectImpl implements InternalC
@Override
public String toString()
{
+ if (EMF_TO_STRING)
+ {
+ return super.toString();
+ }
+
String str = eClass().getName();
CDOID id = cdoID();
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/object/CDOLegacyWrapper.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/object/CDOLegacyWrapper.java
index eef7dc1202..d57789370e 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/object/CDOLegacyWrapper.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/object/CDOLegacyWrapper.java
@@ -257,6 +257,11 @@ public abstract class CDOLegacyWrapper extends CDOObjectWrapper
}
}
+ public void cdoInternalPreAttach()
+ {
+ // Do nothing
+ }
+
public void cdoInternalPostAttach()
{
instanceToRevision();
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOStateMachine.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOStateMachine.java
index 8fd86f8d54..bf34423f1f 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOStateMachine.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOStateMachine.java
@@ -217,6 +217,8 @@ public final class CDOStateMachine extends FiniteStateMachine contents = new ArrayList();
prepare(object, Pair.create(transaction, contents));
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOObject.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOObject.java
index a5fd4edd65..2a8ed2a298 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOObject.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOObject.java
@@ -47,6 +47,11 @@ public interface InternalCDOObject extends CDOObject, InternalEObject, InternalC
*/
public InternalCDORevision cdoRevision(boolean loadOnDemand);
+ /**
+ * @since 4.7
+ */
+ public void cdoInternalPreAttach();
+
public void cdoInternalPostAttach();
public void cdoInternalPostDetach(boolean remote);
--
cgit v1.2.3