Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2010-02-09 11:08:55 +0000
committerEike Stepper2010-02-09 11:08:55 +0000
commit6c765a3bc651fcba318aeae1ec2a2d3c91e98a89 (patch)
tree2c194728336543455006b95ab249db1dafa93ddc
parent3fa8b09eb596fcb8bdbe34da8bbef782f6dc361c (diff)
downloadcdo-6c765a3bc651fcba318aeae1ec2a2d3c91e98a89.tar.gz
cdo-6c765a3bc651fcba318aeae1ec2a2d3c91e98a89.tar.xz
cdo-6c765a3bc651fcba318aeae1ec2a2d3c91e98a89.zip
fixed genmodels
-rw-r--r--plugins/org.eclipse.emf.cdo.common.db/src/org/eclipse/emf/cdo/common/internal/db/cache/DBRevisionCache.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/commit/CDOCommitData.java38
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/commit/CDOCommitInfo.java10
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/id/CDOIDAndVersionAndBranch.java20
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/id/CDOIDUtil.java9
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/io/CDODataInput.java25
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/io/CDODataOutput.java24
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/CDORevisionKey.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/commit/CDOCommitDataImpl.java61
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/commit/CDOCommitInfoImpl.java31
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/commit/CDOCommitInfoManagerImpl.java6
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/id/CDOIDAndVersionAndBranchImpl.java80
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/io/CDODataInputImpl.java76
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/io/CDODataOutputImpl.java87
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/CDOPackageUnitImpl.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionImpl.java4
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionManagerImpl.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDORevisionDeltaImpl.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/commit/InternalCDOCommitInfoManager.java6
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/DelegatingCDORevisionManager.java6
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/InternalCDORevision.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/InternalCDORevisionManager.java9
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/RevisionInfo.java4
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/StubCDORevision.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/CDOClientProtocol.java7
-rw-r--r--plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/CDOClientRequest.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/CommitNotificationIndication.java133
-rw-r--r--plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/CommitTransactionRequest.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/LoadCommitInfosRequest.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStoreAccessor.java19
-rw-r--r--plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/HorizontalAuditClassMapping.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateStoreAccessor.java7
-rw-r--r--plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDORevisionProxyHibernate.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/AbstractSyncRevisionsIndication.java4
-rw-r--r--plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/CDOServerIndication.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/CDOServerRequest.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/CommitTransactionIndication.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/LoadChunkIndication.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/LoadRevisionsIndication.java4
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Repository.java7
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Session.java4
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/embedded/EmbeddedClientSessionProtocol.java9
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/embedded/EmbeddedServerSessionProtocol.java16
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/mem/MEMStore.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/mem/MEMStoreAccessor.java9
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/spi/server/ISessionProtocol.java11
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.mango/model/mango.genmodel16
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.mango/model/mango.legacy-genmodel16
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionHolderTest.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionManagerTest.java3
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/session/CDOSessionInvalidationEvent.java40
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/view/CDOStaleReferencePolicy.java8
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectMerger.java2
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOStateMachine.java2
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOSessionImpl.java279
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/transaction/CDOSingleTransactionStrategyImpl.java2
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/transaction/CDOTransactionImpl.java70
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java28
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOSession.java15
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOView.java3
60 files changed, 820 insertions, 430 deletions
diff --git a/plugins/org.eclipse.emf.cdo.common.db/src/org/eclipse/emf/cdo/common/internal/db/cache/DBRevisionCache.java b/plugins/org.eclipse.emf.cdo.common.db/src/org/eclipse/emf/cdo/common/internal/db/cache/DBRevisionCache.java
index a67198596f..2625ff4569 100644
--- a/plugins/org.eclipse.emf.cdo.common.db/src/org/eclipse/emf/cdo/common/internal/db/cache/DBRevisionCache.java
+++ b/plugins/org.eclipse.emf.cdo.common.db/src/org/eclipse/emf/cdo/common/internal/db/cache/DBRevisionCache.java
@@ -774,11 +774,13 @@ public class DBRevisionCache extends Lifecycle implements InternalCDORevisionCac
{
return new CDODataOutputImpl(extendedDataOutputStream)
{
+ @Override
public CDOPackageRegistry getPackageRegistry()
{
return packageRegistry;
}
+ @Override
public CDOIDProvider getIDProvider()
{
return idProvider;
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/commit/CDOCommitData.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/commit/CDOCommitData.java
new file mode 100644
index 0000000000..08b92c5e6c
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/commit/CDOCommitData.java
@@ -0,0 +1,38 @@
+/**
+ * Copyright (c) 2004 - 2010 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.common.commit;
+
+import org.eclipse.emf.cdo.common.id.CDOIDAndVersion;
+import org.eclipse.emf.cdo.common.model.CDOPackageUnit;
+import org.eclipse.emf.cdo.common.revision.CDORevisionKey;
+import org.eclipse.emf.cdo.common.revision.delta.CDORevisionDelta;
+
+import java.util.Collection;
+
+/**
+ * @author Eike Stepper
+ * @since 3.0
+ */
+public interface CDOCommitData
+{
+ public Collection<CDOPackageUnit> getNewPackageUnits();
+
+ public Collection<CDOIDAndVersion> getNewObjects();
+
+ /**
+ * Returns a collection of revision keys denoting which (original) revisions have been changed in the context of a
+ * commit operation. Depending on various conditions like change subscriptions particular elements can also be full
+ * {@link CDORevisionDelta revision deltas}.
+ */
+ public Collection<CDORevisionKey> getChangedObjects();
+
+ public Collection<CDOIDAndVersion> getDetachedObjects();
+}
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/commit/CDOCommitInfo.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/commit/CDOCommitInfo.java
index 91869198b0..33f74af373 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/commit/CDOCommitInfo.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/commit/CDOCommitInfo.java
@@ -16,19 +16,11 @@ import org.eclipse.emf.cdo.common.branch.CDOBranchPoint;
* @author Eike Stepper
* @since 3.0
*/
-public interface CDOCommitInfo extends CDOBranchPoint
+public interface CDOCommitInfo extends CDOBranchPoint, CDOCommitData
{
public CDOCommitInfoManager getCommitInfoManager();
public String getUserID();
public String getComment();
-
- // public Set<CDOID> getNewResources();
- //
- // public Set<CDOID> getNewObjects();
- //
- // public Set<CDOID> getDetachedObjects();
- //
- // public Set<CDOID> getDirtyObjects();
}
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/id/CDOIDAndVersionAndBranch.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/id/CDOIDAndVersionAndBranch.java
deleted file mode 100644
index c96ada2ec1..0000000000
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/id/CDOIDAndVersionAndBranch.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * Copyright (c) 2004 - 2010 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.common.id;
-
-/**
- * @author Eike Stepper
- * @since 3.0
- */
-public interface CDOIDAndVersionAndBranch extends CDOIDAndVersion
-{
- public int getBranchID();
-}
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/id/CDOIDUtil.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/id/CDOIDUtil.java
index 818aeb1abb..cf2fc26b98 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/id/CDOIDUtil.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/id/CDOIDUtil.java
@@ -18,7 +18,6 @@ import org.eclipse.emf.cdo.common.id.CDOID.Type;
import org.eclipse.emf.cdo.common.model.CDOClassifierRef;
import org.eclipse.emf.cdo.internal.common.bundle.OM;
import org.eclipse.emf.cdo.internal.common.id.CDOIDAndBranchImpl;
-import org.eclipse.emf.cdo.internal.common.id.CDOIDAndVersionAndBranchImpl;
import org.eclipse.emf.cdo.internal.common.id.CDOIDAndVersionImpl;
import org.eclipse.emf.cdo.internal.common.id.CDOIDExternalImpl;
import org.eclipse.emf.cdo.internal.common.id.CDOIDMetaImpl;
@@ -362,14 +361,6 @@ public final class CDOIDUtil
}
/**
- * @since 3.0
- */
- public static CDOIDAndVersionAndBranch createIDAndVersionAndBranch(CDOID id, int version, int branchID)
- {
- return new CDOIDAndVersionAndBranchImpl(id, version, branchID);
- }
-
- /**
* @since 2.0
*/
public static boolean equals(CDOID id1, CDOID id2)
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/io/CDODataInput.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/io/CDODataInput.java
index 0d5dbc4591..9faa98f2eb 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/io/CDODataInput.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/io/CDODataInput.java
@@ -14,10 +14,12 @@ package org.eclipse.emf.cdo.common.io;
import org.eclipse.emf.cdo.common.branch.CDOBranch;
import org.eclipse.emf.cdo.common.branch.CDOBranchPoint;
import org.eclipse.emf.cdo.common.branch.CDOBranchVersion;
+import org.eclipse.emf.cdo.common.commit.CDOCommitData;
+import org.eclipse.emf.cdo.common.commit.CDOCommitInfo;
+import org.eclipse.emf.cdo.common.commit.CDOCommitInfoManager;
import org.eclipse.emf.cdo.common.id.CDOID;
import org.eclipse.emf.cdo.common.id.CDOIDAndBranch;
import org.eclipse.emf.cdo.common.id.CDOIDAndVersion;
-import org.eclipse.emf.cdo.common.id.CDOIDAndVersionAndBranch;
import org.eclipse.emf.cdo.common.id.CDOIDMetaRange;
import org.eclipse.emf.cdo.common.model.CDOClassifierRef;
import org.eclipse.emf.cdo.common.model.CDOPackageInfo;
@@ -26,6 +28,7 @@ import org.eclipse.emf.cdo.common.model.CDOPackageUnit;
import org.eclipse.emf.cdo.common.model.CDOType;
import org.eclipse.emf.cdo.common.revision.CDOList;
import org.eclipse.emf.cdo.common.revision.CDORevision;
+import org.eclipse.emf.cdo.common.revision.CDORevisionKey;
import org.eclipse.emf.cdo.common.revision.delta.CDOFeatureDelta;
import org.eclipse.emf.cdo.common.revision.delta.CDORevisionDelta;
@@ -79,6 +82,16 @@ public interface CDODataInput extends ExtendedDataInput
*/
public CDOBranchVersion readCDOBranchVersion() throws IOException;
+ /**
+ * @since 3.0
+ */
+ public CDOCommitData readCDOCommitData() throws IOException;
+
+ /**
+ * @since 3.0
+ */
+ public CDOCommitInfo readCDOCommitInfo(CDOCommitInfoManager commitInfoManager) throws IOException;
+
// /////////////////////////////////////////////////////////////////////////////////////////////////
public CDOID readCDOID() throws IOException;
@@ -90,15 +103,15 @@ public interface CDODataInput extends ExtendedDataInput
*/
public CDOIDAndBranch readCDOIDAndBranch() throws IOException;
- /**
- * @since 3.0
- */
- public CDOIDAndVersionAndBranch readCDOIDAndVersionAndBranch() throws IOException;
-
public CDOIDMetaRange readCDOIDMetaRange() throws IOException;
// /////////////////////////////////////////////////////////////////////////////////////////////////
+ /**
+ * @since 3.0
+ */
+ public CDORevisionKey readCDORevisionKey() throws IOException;
+
public CDORevision readCDORevision() throws IOException;
public CDOList readCDOList(EClass owner, EStructuralFeature feature) throws IOException;
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/io/CDODataOutput.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/io/CDODataOutput.java
index ee91363012..af2e3651b1 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/io/CDODataOutput.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/io/CDODataOutput.java
@@ -14,10 +14,11 @@ package org.eclipse.emf.cdo.common.io;
import org.eclipse.emf.cdo.common.branch.CDOBranch;
import org.eclipse.emf.cdo.common.branch.CDOBranchPoint;
import org.eclipse.emf.cdo.common.branch.CDOBranchVersion;
+import org.eclipse.emf.cdo.common.commit.CDOCommitData;
+import org.eclipse.emf.cdo.common.commit.CDOCommitInfo;
import org.eclipse.emf.cdo.common.id.CDOID;
import org.eclipse.emf.cdo.common.id.CDOIDAndBranch;
import org.eclipse.emf.cdo.common.id.CDOIDAndVersion;
-import org.eclipse.emf.cdo.common.id.CDOIDAndVersionAndBranch;
import org.eclipse.emf.cdo.common.id.CDOIDMetaRange;
import org.eclipse.emf.cdo.common.id.CDOIDProvider;
import org.eclipse.emf.cdo.common.model.CDOClassifierRef;
@@ -27,6 +28,7 @@ import org.eclipse.emf.cdo.common.model.CDOPackageUnit;
import org.eclipse.emf.cdo.common.model.CDOType;
import org.eclipse.emf.cdo.common.revision.CDOList;
import org.eclipse.emf.cdo.common.revision.CDORevision;
+import org.eclipse.emf.cdo.common.revision.CDORevisionKey;
import org.eclipse.emf.cdo.common.revision.delta.CDOFeatureDelta;
import org.eclipse.emf.cdo.common.revision.delta.CDORevisionDelta;
@@ -87,6 +89,16 @@ public interface CDODataOutput extends ExtendedDataOutput
*/
public void writeCDOBranchVersion(CDOBranchVersion branchVersion) throws IOException;
+ /**
+ * @since 3.0
+ */
+ public void writeCDOCommitData(CDOCommitData commitData) throws IOException;
+
+ /**
+ * @since 3.0
+ */
+ public void writeCDOCommitInfo(CDOCommitInfo commitInfo) throws IOException;
+
// /////////////////////////////////////////////////////////////////////////////////////////////////
public void writeCDOID(CDOID id) throws IOException;
@@ -98,15 +110,15 @@ public interface CDODataOutput extends ExtendedDataOutput
*/
public void writeCDOIDAndBranch(CDOIDAndBranch idAndBranch) throws IOException;
- /**
- * @since 3.0
- */
- public void writeCDOIDAndVersionAndBranch(CDOIDAndVersionAndBranch idAndVersionAndBranch) throws IOException;
-
public void writeCDOIDMetaRange(CDOIDMetaRange metaRange) throws IOException;
// /////////////////////////////////////////////////////////////////////////////////////////////////
+ /**
+ * @since 3.0
+ */
+ public void writeCDORevisionKey(CDORevisionKey revisionKey) throws IOException;
+
public void writeCDORevision(CDORevision revision, int referenceChunk) throws IOException;
public void writeCDOList(EClass owner, EStructuralFeature feature, CDOList list, int referenceChunk)
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/CDORevisionKey.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/CDORevisionKey.java
index bad939a133..e217c6af08 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/CDORevisionKey.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/CDORevisionKey.java
@@ -12,12 +12,13 @@ package org.eclipse.emf.cdo.common.revision;
import org.eclipse.emf.cdo.common.branch.CDOBranchVersion;
import org.eclipse.emf.cdo.common.id.CDOID;
+import org.eclipse.emf.cdo.common.id.CDOIDAndVersion;
/**
* @author Eike Stepper
* @since 3.0
*/
-public interface CDORevisionKey extends CDOBranchVersion
+public interface CDORevisionKey extends CDOBranchVersion, CDOIDAndVersion
{
public CDOID getID();
}
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/commit/CDOCommitDataImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/commit/CDOCommitDataImpl.java
new file mode 100644
index 0000000000..a07484bdbf
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/commit/CDOCommitDataImpl.java
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2004 - 2010 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.internal.common.commit;
+
+import org.eclipse.emf.cdo.common.commit.CDOCommitData;
+import org.eclipse.emf.cdo.common.id.CDOIDAndVersion;
+import org.eclipse.emf.cdo.common.model.CDOPackageUnit;
+import org.eclipse.emf.cdo.common.revision.CDORevisionKey;
+
+import java.util.Collection;
+
+/**
+ * @author Eike Stepper
+ */
+public class CDOCommitDataImpl implements CDOCommitData
+{
+ private Collection<CDOPackageUnit> newPackageUnits;
+
+ private Collection<CDOIDAndVersion> newObjects;
+
+ private Collection<CDORevisionKey> changedObjects;
+
+ private Collection<CDOIDAndVersion> detachedObjects;
+
+ public CDOCommitDataImpl(Collection<CDOPackageUnit> newPackageUnits, Collection<CDOIDAndVersion> newObjects,
+ Collection<CDORevisionKey> changedObjects, Collection<CDOIDAndVersion> detachedObjects)
+ {
+ this.newPackageUnits = newPackageUnits;
+ this.newObjects = newObjects;
+ this.changedObjects = changedObjects;
+ this.detachedObjects = detachedObjects;
+ }
+
+ public Collection<CDOPackageUnit> getNewPackageUnits()
+ {
+ return newPackageUnits;
+ }
+
+ public Collection<CDOIDAndVersion> getNewObjects()
+ {
+ return newObjects;
+ }
+
+ public Collection<CDORevisionKey> getChangedObjects()
+ {
+ return changedObjects;
+ }
+
+ public Collection<CDOIDAndVersion> getDetachedObjects()
+ {
+ return detachedObjects;
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/commit/CDOCommitInfoImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/commit/CDOCommitInfoImpl.java
index a42836de04..757622db25 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/commit/CDOCommitInfoImpl.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/commit/CDOCommitInfoImpl.java
@@ -11,12 +11,18 @@
package org.eclipse.emf.cdo.internal.common.commit;
import org.eclipse.emf.cdo.common.branch.CDOBranch;
+import org.eclipse.emf.cdo.common.commit.CDOCommitData;
import org.eclipse.emf.cdo.common.commit.CDOCommitInfo;
+import org.eclipse.emf.cdo.common.id.CDOIDAndVersion;
+import org.eclipse.emf.cdo.common.model.CDOPackageUnit;
+import org.eclipse.emf.cdo.common.revision.CDORevisionKey;
import org.eclipse.emf.cdo.internal.common.branch.CDOBranchPointImpl;
import org.eclipse.emf.cdo.spi.common.commit.InternalCDOCommitInfoManager;
import org.eclipse.net4j.util.CheckUtil;
+import java.util.Collection;
+
/**
* @author Eike Stepper
*/
@@ -28,14 +34,17 @@ public class CDOCommitInfoImpl extends CDOBranchPointImpl implements CDOCommitIn
private String comment;
+ private CDOCommitData commitData;
+
public CDOCommitInfoImpl(InternalCDOCommitInfoManager commitInfoManager, CDOBranch branch, long timeStamp,
- String userID, String comment)
+ String userID, String comment, CDOCommitData commitData)
{
super(branch, timeStamp);
CheckUtil.checkArg(commitInfoManager, "commitInfoManager"); //$NON-NLS-1$
this.commitInfoManager = commitInfoManager;
this.userID = userID;
this.comment = comment;
+ this.commitData = commitData;
}
public InternalCDOCommitInfoManager getCommitInfoManager()
@@ -52,4 +61,24 @@ public class CDOCommitInfoImpl extends CDOBranchPointImpl implements CDOCommitIn
{
return comment;
}
+
+ public synchronized Collection<CDOPackageUnit> getNewPackageUnits()
+ {
+ return commitData == null ? null : commitData.getNewPackageUnits();
+ }
+
+ public synchronized Collection<CDOIDAndVersion> getNewObjects()
+ {
+ return commitData == null ? null : commitData.getNewObjects();
+ }
+
+ public synchronized Collection<CDORevisionKey> getChangedObjects()
+ {
+ return commitData == null ? null : commitData.getChangedObjects();
+ }
+
+ public synchronized Collection<CDOIDAndVersion> getDetachedObjects()
+ {
+ return commitData == null ? null : commitData.getDetachedObjects();
+ }
}
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/commit/CDOCommitInfoManagerImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/commit/CDOCommitInfoManagerImpl.java
index 62afdf83e1..a9410db0a9 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/commit/CDOCommitInfoManagerImpl.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/commit/CDOCommitInfoManagerImpl.java
@@ -13,6 +13,7 @@ package org.eclipse.emf.cdo.internal.common.commit;
import org.eclipse.emf.cdo.common.branch.CDOBranch;
import org.eclipse.emf.cdo.common.branch.CDOBranchPoint;
+import org.eclipse.emf.cdo.common.commit.CDOCommitData;
import org.eclipse.emf.cdo.common.commit.CDOCommitInfo;
import org.eclipse.emf.cdo.common.commit.CDOCommitInfoHandler;
import org.eclipse.emf.cdo.spi.common.commit.InternalCDOCommitInfoManager;
@@ -41,10 +42,11 @@ public class CDOCommitInfoManagerImpl extends Lifecycle implements InternalCDOCo
this.commitInfoLoader = commitInfoLoader;
}
- public CDOCommitInfo createCommitInfo(CDOBranch branch, long timeStamp, String userID, String comment)
+ public CDOCommitInfo createCommitInfo(CDOBranch branch, long timeStamp, String userID, String comment,
+ CDOCommitData commitData)
{
checkActive();
- return new CDOCommitInfoImpl(this, branch, timeStamp, userID, comment);
+ return new CDOCommitInfoImpl(this, branch, timeStamp, userID, comment, commitData);
}
public void getCommitInfos(CDOBranch branch, long startTime, long endTime, CDOCommitInfoHandler handler)
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/id/CDOIDAndVersionAndBranchImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/id/CDOIDAndVersionAndBranchImpl.java
deleted file mode 100644
index a79c982daa..0000000000
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/id/CDOIDAndVersionAndBranchImpl.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/**
- * Copyright (c) 2004 - 2010 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.internal.common.id;
-
-import org.eclipse.emf.cdo.common.id.CDOID;
-import org.eclipse.emf.cdo.common.id.CDOIDAndVersionAndBranch;
-import org.eclipse.emf.cdo.common.io.CDODataInput;
-import org.eclipse.emf.cdo.common.io.CDODataOutput;
-
-import java.io.IOException;
-import java.text.MessageFormat;
-
-/**
- * @author Eike Stepper
- */
-public final class CDOIDAndVersionAndBranchImpl extends CDOIDAndVersionImpl implements CDOIDAndVersionAndBranch
-{
- private int branchID;
-
- public CDOIDAndVersionAndBranchImpl(CDOID id, int version, int branchID)
- {
- super(id, version);
- this.branchID = branchID;
- }
-
- public CDOIDAndVersionAndBranchImpl(CDODataInput in) throws IOException
- {
- super(in);
- branchID = in.readInt();
- }
-
- @Override
- public void write(CDODataOutput out) throws IOException
- {
- super.write(out);
- out.writeInt(branchID);
- }
-
- public int getBranchID()
- {
- return branchID;
- }
-
- @Override
- public boolean equals(Object obj)
- {
- if (obj == this)
- {
- return true;
- }
-
- if (obj instanceof CDOIDAndVersionAndBranch)
- {
- CDOIDAndVersionAndBranch that = (CDOIDAndVersionAndBranch)obj;
- return getID().equals(that.getID()) && getVersion() == that.getVersion() && branchID == that.getBranchID();
- }
-
- return false;
- }
-
- @Override
- public int hashCode()
- {
- return getID().hashCode() ^ getVersion() ^ branchID;
- }
-
- @Override
- public String toString()
- {
- return MessageFormat.format("{0}v{1}b{2}", getID(), getVersion(), branchID); //$NON-NLS-1$
- }
-}
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/io/CDODataInputImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/io/CDODataInputImpl.java
index 6f1399184c..d30a18fe7a 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/io/CDODataInputImpl.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/io/CDODataInputImpl.java
@@ -15,10 +15,12 @@ import org.eclipse.emf.cdo.common.branch.CDOBranch;
import org.eclipse.emf.cdo.common.branch.CDOBranchManager;
import org.eclipse.emf.cdo.common.branch.CDOBranchPoint;
import org.eclipse.emf.cdo.common.branch.CDOBranchVersion;
+import org.eclipse.emf.cdo.common.commit.CDOCommitData;
+import org.eclipse.emf.cdo.common.commit.CDOCommitInfo;
+import org.eclipse.emf.cdo.common.commit.CDOCommitInfoManager;
import org.eclipse.emf.cdo.common.id.CDOID;
import org.eclipse.emf.cdo.common.id.CDOIDAndBranch;
import org.eclipse.emf.cdo.common.id.CDOIDAndVersion;
-import org.eclipse.emf.cdo.common.id.CDOIDAndVersionAndBranch;
import org.eclipse.emf.cdo.common.id.CDOIDMetaRange;
import org.eclipse.emf.cdo.common.id.CDOIDUtil;
import org.eclipse.emf.cdo.common.id.CDOID.Type;
@@ -33,12 +35,13 @@ import org.eclipse.emf.cdo.common.revision.CDOList;
import org.eclipse.emf.cdo.common.revision.CDOListFactory;
import org.eclipse.emf.cdo.common.revision.CDORevision;
import org.eclipse.emf.cdo.common.revision.CDORevisionFactory;
+import org.eclipse.emf.cdo.common.revision.CDORevisionKey;
import org.eclipse.emf.cdo.common.revision.CDORevisionUtil;
import org.eclipse.emf.cdo.common.revision.delta.CDOFeatureDelta;
import org.eclipse.emf.cdo.common.revision.delta.CDORevisionDelta;
import org.eclipse.emf.cdo.internal.common.bundle.OM;
+import org.eclipse.emf.cdo.internal.common.commit.CDOCommitDataImpl;
import org.eclipse.emf.cdo.internal.common.id.CDOIDAndBranchImpl;
-import org.eclipse.emf.cdo.internal.common.id.CDOIDAndVersionAndBranchImpl;
import org.eclipse.emf.cdo.internal.common.id.CDOIDAndVersionImpl;
import org.eclipse.emf.cdo.internal.common.id.CDOIDExternalImpl;
import org.eclipse.emf.cdo.internal.common.id.CDOIDMetaImpl;
@@ -58,6 +61,7 @@ import org.eclipse.emf.cdo.internal.common.revision.delta.CDORevisionDeltaImpl;
import org.eclipse.emf.cdo.internal.common.revision.delta.CDOSetFeatureDeltaImpl;
import org.eclipse.emf.cdo.internal.common.revision.delta.CDOUnsetFeatureDeltaImpl;
import org.eclipse.emf.cdo.spi.common.branch.CDOBranchUtil;
+import org.eclipse.emf.cdo.spi.common.commit.InternalCDOCommitInfoManager;
import org.eclipse.emf.cdo.spi.common.id.AbstractCDOID;
import org.eclipse.emf.cdo.spi.common.id.InternalCDOIDObject;
import org.eclipse.emf.cdo.spi.common.model.InternalCDOPackageInfo;
@@ -78,6 +82,8 @@ import org.eclipse.emf.ecore.util.FeatureMapUtil;
import java.io.IOException;
import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.List;
/**
* @author Eike Stepper
@@ -176,6 +182,59 @@ public abstract class CDODataInputImpl extends ExtendedDataInput.Delegating impl
return CDOBranchUtil.createBranchVersion(branch, version);
}
+ public CDOCommitData readCDOCommitData() throws IOException
+ {
+ int size;
+
+ size = readInt();
+ List<CDOPackageUnit> newPackageUnits = new ArrayList<CDOPackageUnit>(size);
+ for (int i = 0; i < size; i++)
+ {
+ CDOPackageUnit data = readCDOPackageUnit(null);
+ newPackageUnits.add(data);
+ }
+
+ size = readInt();
+ List<CDOIDAndVersion> newObjects = new ArrayList<CDOIDAndVersion>(size);
+ for (int i = 0; i < size; i++)
+ {
+ boolean revision = readBoolean();
+ CDOIDAndVersion data = revision ? readCDORevision() : readCDOIDAndVersion();
+ newObjects.add(data);
+ }
+
+ size = readInt();
+ List<CDORevisionKey> changedObjects = new ArrayList<CDORevisionKey>(size);
+ for (int i = 0; i < size; i++)
+ {
+ boolean delta = readBoolean();
+ CDORevisionKey data = delta ? readCDORevisionDelta() : readCDORevisionKey();
+ changedObjects.add(data);
+ }
+
+ size = readInt();
+ List<CDOIDAndVersion> detachedObjects = new ArrayList<CDOIDAndVersion>(size);
+ for (int i = 0; i < size; i++)
+ {
+ CDOIDAndVersion data = readCDOIDAndVersion();
+ detachedObjects.add(data);
+ }
+
+ return new CDOCommitDataImpl(newPackageUnits, newObjects, changedObjects, detachedObjects);
+ }
+
+ public CDOCommitInfo readCDOCommitInfo(CDOCommitInfoManager commitInfoManager) throws IOException
+ {
+ CDOBranch branch = readCDOBranch();
+ long timeStamp = readLong();
+ String userID = readString();
+ String comment = readString();
+ CDOCommitData commitData = readCDOCommitData();
+
+ return ((InternalCDOCommitInfoManager)commitInfoManager).createCommitInfo(branch, timeStamp, userID, comment,
+ commitData);
+ }
+
public CDOID readCDOID() throws IOException
{
byte ordinal = readByte();
@@ -273,11 +332,6 @@ public abstract class CDODataInputImpl extends ExtendedDataInput.Delegating impl
return new CDOIDAndBranchImpl(this);
}
- public CDOIDAndVersionAndBranch readCDOIDAndVersionAndBranch() throws IOException
- {
- return new CDOIDAndVersionAndBranchImpl(this);
- }
-
public CDOIDMetaRange readCDOIDMetaRange() throws IOException
{
boolean exist = readBoolean();
@@ -289,6 +343,14 @@ public abstract class CDODataInputImpl extends ExtendedDataInput.Delegating impl
return null;
}
+ public CDORevisionKey readCDORevisionKey() throws IOException
+ {
+ CDOID id = readCDOID();
+ CDOBranch branch = readCDOBranch();
+ int version = readInt();
+ return CDORevisionUtil.createRevisionKey(id, branch, version);
+ }
+
public CDORevision readCDORevision() throws IOException
{
boolean notNull = readBoolean();
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/io/CDODataOutputImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/io/CDODataOutputImpl.java
index 4ad68a75d1..28ef5130ac 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/io/CDODataOutputImpl.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/io/CDODataOutputImpl.java
@@ -13,26 +13,28 @@ package org.eclipse.emf.cdo.internal.common.io;
import org.eclipse.emf.cdo.common.branch.CDOBranch;
import org.eclipse.emf.cdo.common.branch.CDOBranchPoint;
import org.eclipse.emf.cdo.common.branch.CDOBranchVersion;
+import org.eclipse.emf.cdo.common.commit.CDOCommitData;
+import org.eclipse.emf.cdo.common.commit.CDOCommitInfo;
import org.eclipse.emf.cdo.common.id.CDOID;
import org.eclipse.emf.cdo.common.id.CDOIDAndBranch;
import org.eclipse.emf.cdo.common.id.CDOIDAndVersion;
-import org.eclipse.emf.cdo.common.id.CDOIDAndVersionAndBranch;
import org.eclipse.emf.cdo.common.id.CDOIDMetaRange;
import org.eclipse.emf.cdo.common.id.CDOIDProvider;
import org.eclipse.emf.cdo.common.io.CDODataOutput;
import org.eclipse.emf.cdo.common.model.CDOClassifierRef;
import org.eclipse.emf.cdo.common.model.CDOModelUtil;
import org.eclipse.emf.cdo.common.model.CDOPackageInfo;
+import org.eclipse.emf.cdo.common.model.CDOPackageRegistry;
import org.eclipse.emf.cdo.common.model.CDOPackageUnit;
import org.eclipse.emf.cdo.common.model.CDOType;
import org.eclipse.emf.cdo.common.revision.CDOList;
import org.eclipse.emf.cdo.common.revision.CDORevision;
+import org.eclipse.emf.cdo.common.revision.CDORevisionKey;
import org.eclipse.emf.cdo.common.revision.CDORevisionUtil;
import org.eclipse.emf.cdo.common.revision.delta.CDOFeatureDelta;
import org.eclipse.emf.cdo.common.revision.delta.CDORevisionDelta;
import org.eclipse.emf.cdo.internal.common.bundle.OM;
import org.eclipse.emf.cdo.internal.common.id.CDOIDAndBranchImpl;
-import org.eclipse.emf.cdo.internal.common.id.CDOIDAndVersionAndBranchImpl;
import org.eclipse.emf.cdo.internal.common.id.CDOIDAndVersionImpl;
import org.eclipse.emf.cdo.internal.common.messages.Messages;
import org.eclipse.emf.cdo.internal.common.model.CDOTypeImpl;
@@ -59,6 +61,7 @@ import org.eclipse.emf.ecore.util.FeatureMap.Entry;
import java.io.IOException;
import java.text.MessageFormat;
+import java.util.Collection;
/**
* @author Eike Stepper
@@ -139,6 +142,64 @@ public abstract class CDODataOutputImpl extends ExtendedDataOutput.Delegating im
writeInt(branchVersion.getVersion());
}
+ public void writeCDOCommitData(CDOCommitData commitData) throws IOException
+ {
+ Collection<CDOPackageUnit> newPackageUnits = commitData.getNewPackageUnits();
+ writeInt(newPackageUnits.size());
+ for (CDOPackageUnit data : newPackageUnits)
+ {
+ writeCDOPackageUnit(data, false);
+ }
+
+ Collection<CDOIDAndVersion> newObjects = commitData.getNewObjects();
+ writeInt(newObjects.size());
+ for (CDOIDAndVersion data : newObjects)
+ {
+ if (data instanceof CDORevision)
+ {
+ writeBoolean(true);
+ writeCDORevision((CDORevision)data, CDORevision.UNCHUNKED);
+ }
+ else
+ {
+ writeBoolean(false);
+ writeCDOIDAndVersion(data);
+ }
+ }
+
+ Collection<CDORevisionKey> changedObjects = commitData.getChangedObjects();
+ writeInt(changedObjects.size());
+ for (CDORevisionKey data : changedObjects)
+ {
+ if (data instanceof CDORevision)
+ {
+ writeBoolean(true);
+ writeCDORevisionDelta((CDORevisionDelta)data);
+ }
+ else
+ {
+ writeBoolean(false);
+ writeCDORevisionKey(data);
+ }
+ }
+
+ Collection<CDOIDAndVersion> detachedObjects = commitData.getDetachedObjects();
+ writeInt(detachedObjects.size());
+ for (CDOIDAndVersion data : detachedObjects)
+ {
+ writeCDOIDAndVersion(data);
+ }
+ }
+
+ public void writeCDOCommitInfo(CDOCommitInfo commitInfo) throws IOException
+ {
+ writeCDOBranch(commitInfo.getBranch());
+ writeLong(commitInfo.getTimeStamp());
+ writeString(commitInfo.getUserID());
+ writeString(commitInfo.getComment());
+ writeCDOCommitData(commitInfo);
+ }
+
public void writeCDOID(CDOID id) throws IOException
{
if (id == null)
@@ -184,11 +245,6 @@ public abstract class CDODataOutputImpl extends ExtendedDataOutput.Delegating im
((CDOIDAndBranchImpl)idAndBranch).write(this);
}
- public void writeCDOIDAndVersionAndBranch(CDOIDAndVersionAndBranch idAndVersionAndBranch) throws IOException
- {
- ((CDOIDAndVersionAndBranchImpl)idAndVersionAndBranch).write(this);
- }
-
public void writeCDOIDMetaRange(CDOIDMetaRange metaRange) throws IOException
{
if (metaRange == null)
@@ -203,6 +259,23 @@ public abstract class CDODataOutputImpl extends ExtendedDataOutput.Delegating im
}
}
+ public CDOPackageRegistry getPackageRegistry()
+ {
+ return null;
+ }
+
+ public CDOIDProvider getIDProvider()
+ {
+ return null;
+ }
+
+ public void writeCDORevisionKey(CDORevisionKey revisionKey) throws IOException
+ {
+ writeCDOID(revisionKey.getID());
+ writeCDOBranch(revisionKey.getBranch());
+ writeInt(revisionKey.getVersion());
+ }
+
public void writeCDORevision(CDORevision revision, int referenceChunk) throws IOException
{
if (revision != null)
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/CDOPackageUnitImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/CDOPackageUnitImpl.java
index 6dd9a9bab1..bfaf3edf48 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/CDOPackageUnitImpl.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/CDOPackageUnitImpl.java
@@ -23,6 +23,7 @@ import org.eclipse.emf.cdo.spi.common.model.InternalCDOPackageInfo;
import org.eclipse.emf.cdo.spi.common.model.InternalCDOPackageRegistry;
import org.eclipse.emf.cdo.spi.common.model.InternalCDOPackageUnit;
+import org.eclipse.net4j.util.CheckUtil;
import org.eclipse.net4j.util.om.trace.ContextTracer;
import org.eclipse.emf.ecore.EPackage;
@@ -280,6 +281,7 @@ public class CDOPackageUnitImpl implements InternalCDOPackageUnit
boolean withPackages = in.readBoolean();
if (withPackages)
{
+ CheckUtil.checkArg(packageRegistry, "packageRegistry");
ePackage = CDOModelUtil.readPackage(in, packageRegistry);
setState(State.LOADED);
}
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionImpl.java
index aaafe3aba3..6d54b5030e 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionImpl.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionImpl.java
@@ -15,9 +15,9 @@ package org.eclipse.emf.cdo.internal.common.revision;
import org.eclipse.emf.cdo.common.model.CDOModelUtil;
import org.eclipse.emf.cdo.common.model.CDOType;
-import org.eclipse.emf.cdo.common.revision.CDORevision;
import org.eclipse.emf.cdo.spi.common.revision.BaseCDORevision;
import org.eclipse.emf.cdo.spi.common.revision.InternalCDOList;
+import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevision;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EClassifier;
@@ -60,7 +60,7 @@ public class CDORevisionImpl extends BaseCDORevision
}
}
- public CDORevision copy()
+ public InternalCDORevision copy()
{
return new CDORevisionImpl(this);
}
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionManagerImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionManagerImpl.java
index 020b66a966..b2e6291676 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionManagerImpl.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionManagerImpl.java
@@ -222,7 +222,7 @@ public class CDORevisionManagerImpl extends Lifecycle implements InternalCDORevi
}
}
- public CDORevision getRevision(CDOID id, CDOBranchPoint branchPoint, int referenceChunk, int prefetchDepth,
+ public InternalCDORevision getRevision(CDOID id, CDOBranchPoint branchPoint, int referenceChunk, int prefetchDepth,
boolean loadOnDemand)
{
return getRevision(id, branchPoint, referenceChunk, prefetchDepth, loadOnDemand, null);
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDORevisionDeltaImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDORevisionDeltaImpl.java
index 91c595a053..f394c99cab 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDORevisionDeltaImpl.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDORevisionDeltaImpl.java
@@ -165,8 +165,6 @@ public class CDORevisionDeltaImpl implements InternalCDORevisionDelta
public void apply(CDORevision revision)
{
- // ((InternalCDORevision)revision).setBranchPoint(branch.getPoint(revision.getTimeStamp()));
- // ((InternalCDORevision)revision).setVersion(version);
for (CDOFeatureDelta featureDelta : featureDeltas.values())
{
((CDOFeatureDeltaImpl)featureDelta).apply(revision);
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/commit/InternalCDOCommitInfoManager.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/commit/InternalCDOCommitInfoManager.java
index 16b4af5246..c07756db7b 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/commit/InternalCDOCommitInfoManager.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/commit/InternalCDOCommitInfoManager.java
@@ -11,6 +11,7 @@
package org.eclipse.emf.cdo.spi.common.commit;
import org.eclipse.emf.cdo.common.branch.CDOBranch;
+import org.eclipse.emf.cdo.common.commit.CDOCommitData;
import org.eclipse.emf.cdo.common.commit.CDOCommitInfo;
import org.eclipse.emf.cdo.common.commit.CDOCommitInfoHandler;
import org.eclipse.emf.cdo.common.commit.CDOCommitInfoManager;
@@ -26,7 +27,8 @@ public interface InternalCDOCommitInfoManager extends CDOCommitInfoManager, ILif
public void setCommitInfoLoader(CommitInfoLoader commitInfoLoader);
- public CDOCommitInfo createCommitInfo(CDOBranch branch, long timeStamp, String userID, String comment);
+ public CDOCommitInfo createCommitInfo(CDOBranch branch, long timeStamp, String userID, String comment,
+ CDOCommitData commitData);
/**
* @author Eike Stepper
@@ -34,5 +36,7 @@ public interface InternalCDOCommitInfoManager extends CDOCommitInfoManager, ILif
public interface CommitInfoLoader
{
public void loadCommitInfos(CDOBranch branch, long startTime, long endTime, CDOCommitInfoHandler handler);
+
+ public CDOCommitData loadCommitData(long timeStamp);
}
}
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/DelegatingCDORevisionManager.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/DelegatingCDORevisionManager.java
index 5e56b79ee8..2439e0128a 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/DelegatingCDORevisionManager.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/DelegatingCDORevisionManager.java
@@ -105,19 +105,19 @@ public abstract class DelegatingCDORevisionManager extends Lifecycle implements
return getDelegate().getObjectType(id);
}
- public CDORevision getRevisionByVersion(CDOID id, CDOBranchVersion branchVersion, int referenceChunk,
+ public InternalCDORevision getRevisionByVersion(CDOID id, CDOBranchVersion branchVersion, int referenceChunk,
boolean loadOnDemand)
{
return getDelegate().getRevisionByVersion(id, branchVersion, referenceChunk, loadOnDemand);
}
- public CDORevision getRevision(CDOID id, CDOBranchPoint branchPoint, int referenceChunk, int prefetchDepth,
+ public InternalCDORevision getRevision(CDOID id, CDOBranchPoint branchPoint, int referenceChunk, int prefetchDepth,
boolean loadOnDemand)
{
return getDelegate().getRevision(id, branchPoint, referenceChunk, prefetchDepth, loadOnDemand);
}
- public CDORevision getRevision(CDOID id, CDOBranchPoint branchPoint, int referenceChunk, int prefetchDepth,
+ public InternalCDORevision getRevision(CDOID id, CDOBranchPoint branchPoint, int referenceChunk, int prefetchDepth,
boolean loadOnDemand, SyntheticCDORevision[] synthetics)
{
return getDelegate().getRevision(id, branchPoint, referenceChunk, prefetchDepth, loadOnDemand, synthetics);
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/InternalCDORevision.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/InternalCDORevision.java
index 5e6e9664be..851487d24b 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/InternalCDORevision.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/InternalCDORevision.java
@@ -101,4 +101,6 @@ public interface InternalCDORevision extends CDORevision, CDORevisionData, CDORe
* @since 3.0
*/
public void convertEObjects(CDOIDProvider oidProvider);
+
+ public InternalCDORevision copy();
}
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/InternalCDORevisionManager.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/InternalCDORevisionManager.java
index 91682c11b2..d2fe23a15f 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/InternalCDORevisionManager.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/InternalCDORevisionManager.java
@@ -51,16 +51,23 @@ public interface InternalCDORevisionManager extends CDORevisionManager, CDORevis
public void setCache(CDORevisionCache cache);
+ @Deprecated
public void reviseLatest(CDOID id, CDOBranch branch);
public void reviseVersion(CDOID id, CDOBranchVersion branchVersion, long timeStamp);
- public CDORevision getRevision(CDOID id, CDOBranchPoint branchPoint, int referenceChunk, int prefetchDepth,
+ public InternalCDORevision getRevision(CDOID id, CDOBranchPoint branchPoint, int referenceChunk, int prefetchDepth,
boolean loadOnDemand, SyntheticCDORevision[] synthetics);
public List<CDORevision> getRevisions(List<CDOID> ids, CDOBranchPoint branchPoint, int referenceChunk,
int prefetchDepth, boolean loadOnDemand, SyntheticCDORevision[] synthetics);
+ public InternalCDORevision getRevision(CDOID id, CDOBranchPoint branchPoint, int referenceChunk, int prefetchDepth,
+ boolean loadOnDemand);
+
+ public InternalCDORevision getRevisionByVersion(CDOID id, CDOBranchVersion branchVersion, int referenceChunk,
+ boolean loadOnDemand);
+
/**
* @author Eike Stepper
* @since 3.0
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/RevisionInfo.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/RevisionInfo.java
index ee068b95e6..7073f0cbfb 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/RevisionInfo.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/RevisionInfo.java
@@ -124,8 +124,8 @@ public abstract class RevisionInfo
public void execute(InternalCDORevisionManager revisionManager, int referenceChunk)
{
SyntheticCDORevision[] synthetics = new SyntheticCDORevision[1];
- result = (InternalCDORevision)revisionManager.getRevision(getID(), requestedBranchPoint, referenceChunk,
- CDORevision.DEPTH_NONE, true, synthetics);
+ result = revisionManager.getRevision(getID(), requestedBranchPoint, referenceChunk, CDORevision.DEPTH_NONE, true,
+ synthetics);
synthetic = synthetics[0];
}
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/StubCDORevision.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/StubCDORevision.java
index 1e1c79c929..a33187a405 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/StubCDORevision.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/StubCDORevision.java
@@ -171,7 +171,7 @@ public class StubCDORevision extends AbstractCDORevision
throw new UnsupportedOperationException();
}
- public CDORevision copy()
+ public InternalCDORevision copy()
{
throw new UnsupportedOperationException();
}
diff --git a/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/CDOClientProtocol.java b/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/CDOClientProtocol.java
index 7f6de91417..1fb4be0a92 100644
--- a/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/CDOClientProtocol.java
+++ b/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/CDOClientProtocol.java
@@ -14,6 +14,7 @@ import org.eclipse.emf.cdo.CDOObject;
import org.eclipse.emf.cdo.common.branch.CDOBranch;
import org.eclipse.emf.cdo.common.branch.CDOBranchPoint;
import org.eclipse.emf.cdo.common.branch.CDOBranchVersion;
+import org.eclipse.emf.cdo.common.commit.CDOCommitData;
import org.eclipse.emf.cdo.common.commit.CDOCommitInfoHandler;
import org.eclipse.emf.cdo.common.id.CDOID;
import org.eclipse.emf.cdo.common.id.CDOIDAndVersion;
@@ -122,6 +123,12 @@ public class CDOClientProtocol extends SignalProtocol<CDOSession> implements CDO
send(new LoadCommitInfosRequest(this, branch, startTime, endTime, handler));
}
+ public CDOCommitData loadCommitData(long timeStamp)
+ {
+ // TODO: implement CDOClientProtocol.loadCommitData(timeStamp, dataType)
+ throw new UnsupportedOperationException();
+ }
+
public Object loadChunk(InternalCDORevision revision, EStructuralFeature feature, int accessIndex, int fetchIndex,
int fromIndex, int toIndex)
{
diff --git a/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/CDOClientRequest.java b/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/CDOClientRequest.java
index 99397b2db3..e875e56b4f 100644
--- a/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/CDOClientRequest.java
+++ b/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/CDOClientRequest.java
@@ -58,11 +58,13 @@ public abstract class CDOClientRequest<RESULT> extends RequestWithConfirmation<R
{
requesting(new CDODataOutputImpl(out)
{
+ @Override
public CDOPackageRegistry getPackageRegistry()
{
return getSession().getPackageRegistry();
}
+ @Override
public CDOIDProvider getIDProvider()
{
throw new UnsupportedOperationException();
diff --git a/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/CommitNotificationIndication.java b/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/CommitNotificationIndication.java
index 555fafa3dc..ea686e469a 100644
--- a/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/CommitNotificationIndication.java
+++ b/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/CommitNotificationIndication.java
@@ -11,35 +11,19 @@
**************************************************************************/
package org.eclipse.emf.cdo.internal.net4j.protocol;
-import org.eclipse.emf.cdo.common.branch.CDOBranchPoint;
-import org.eclipse.emf.cdo.common.id.CDOID;
-import org.eclipse.emf.cdo.common.id.CDOIDAndVersion;
+import org.eclipse.emf.cdo.common.commit.CDOCommitInfo;
import org.eclipse.emf.cdo.common.io.CDODataInput;
-import org.eclipse.emf.cdo.common.model.CDOPackageUnit;
import org.eclipse.emf.cdo.common.protocol.CDOProtocolConstants;
-import org.eclipse.emf.cdo.common.revision.delta.CDORevisionDelta;
-import org.eclipse.emf.cdo.internal.net4j.bundle.OM;
-import org.eclipse.emf.cdo.spi.common.model.InternalCDOPackageRegistry;
-import org.eclipse.emf.cdo.spi.common.model.InternalCDOPackageUnit;
-
-import org.eclipse.net4j.util.om.trace.ContextTracer;
import org.eclipse.emf.spi.cdo.InternalCDOSession;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
/**
* @author Eike Stepper
*/
public class CommitNotificationIndication extends CDOClientIndication
{
- private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG_PROTOCOL, CommitNotificationIndication.class);
-
public CommitNotificationIndication(CDOClientProtocol protocol)
{
super(protocol, CDOProtocolConstants.SIGNAL_COMMIT_NOTIFICATION);
@@ -48,64 +32,65 @@ public class CommitNotificationIndication extends CDOClientIndication
@Override
protected void indicating(CDODataInput in) throws IOException
{
- CDOBranchPoint branchPoint = in.readCDOBranchPoint();
- if (TRACER.isEnabled())
- {
- TRACER.format("Read branchpoint: {0}", branchPoint); //$NON-NLS-1$
- }
-
- CDOPackageUnit[] packageUnits = in.readCDOPackageUnits(null);
- InternalCDOPackageRegistry packageRegistry = getSession().getPackageRegistry();
- for (int i = 0; i < packageUnits.length; i++)
- {
- packageRegistry.putPackageUnit((InternalCDOPackageUnit)packageUnits[i]);
- }
-
- int size = in.readInt();
- if (TRACER.isEnabled())
- {
- TRACER.format("Reading {0} dirty IDs", size); //$NON-NLS-1$
- }
+ // CDOBranchPoint branchPoint = in.readCDOBranchPoint();
+ // if (TRACER.isEnabled())
+ // {
+ // TRACER.format("Read branchpoint: {0}", branchPoint); //$NON-NLS-1$
+ // }
+ //
+ // CDOPackageUnit[] packageUnits = in.readCDOPackageUnits(null);
+ // InternalCDOPackageRegistry packageRegistry = getSession().getPackageRegistry();
+ // for (int i = 0; i < packageUnits.length; i++)
+ // {
+ // packageRegistry.putPackageUnit((InternalCDOPackageUnit)packageUnits[i]);
+ // }
+ //
+ // int size = in.readInt();
+ // if (TRACER.isEnabled())
+ // {
+ // TRACER.format("Reading {0} dirty IDs", size); //$NON-NLS-1$
+ // }
+ //
+ // InternalCDOSession session = getSession();
+ // Set<CDOIDAndVersion> dirtyOIDandVersions = new HashSet<CDOIDAndVersion>();
+ // for (int i = 0; i < size; i++)
+ // {
+ // CDOIDAndVersion dirtyOIDandVersion = in.readCDOIDAndVersion();
+ // if (TRACER.isEnabled())
+ // {
+ // TRACER.format("Read dirty ID: {0}", dirtyOIDandVersion); //$NON-NLS-1$
+ // }
+ //
+ // dirtyOIDandVersions.add(dirtyOIDandVersion);
+ // }
+ //
+ // size = in.readInt();
+ // if (TRACER.isEnabled())
+ // {
+ // TRACER.format("Reading {0} Deltas", size); //$NON-NLS-1$
+ // }
+ //
+ // List<CDORevisionDelta> deltas = new ArrayList<CDORevisionDelta>();
+ // for (int i = 0; i < size; i++)
+ // {
+ // CDORevisionDelta revisionDelta = in.readCDORevisionDelta();
+ // deltas.add(revisionDelta);
+ // }
+ //
+ // size = in.readInt();
+ // if (TRACER.isEnabled())
+ // {
+ // TRACER.format("Reading {0} Detach Objects", size); //$NON-NLS-1$
+ // }
+ //
+ // List<CDOID> detachedObjects = new ArrayList<CDOID>();
+ // for (int i = 0; i < size; i++)
+ // {
+ // detachedObjects.add(in.readCDOID());
+ // }
InternalCDOSession session = getSession();
- Set<CDOIDAndVersion> dirtyOIDandVersions = new HashSet<CDOIDAndVersion>();
- for (int i = 0; i < size; i++)
- {
- CDOIDAndVersion dirtyOIDandVersion = in.readCDOIDAndVersion();
- if (TRACER.isEnabled())
- {
- TRACER.format("Read dirty ID: {0}", dirtyOIDandVersion); //$NON-NLS-1$
- }
-
- dirtyOIDandVersions.add(dirtyOIDandVersion);
- }
-
- size = in.readInt();
- if (TRACER.isEnabled())
- {
- TRACER.format("Reading {0} Deltas", size); //$NON-NLS-1$
- }
-
- List<CDORevisionDelta> deltas = new ArrayList<CDORevisionDelta>();
- for (int i = 0; i < size; i++)
- {
- CDORevisionDelta revisionDelta = in.readCDORevisionDelta();
- deltas.add(revisionDelta);
- }
-
- size = in.readInt();
- if (TRACER.isEnabled())
- {
- TRACER.format("Reading {0} Detach Objects", size); //$NON-NLS-1$
- }
-
- List<CDOID> detachedObjects = new ArrayList<CDOID>();
- for (int i = 0; i < size; i++)
- {
- detachedObjects.add(in.readCDOID());
- }
-
- session.handleCommitNotification(branchPoint, Arrays.asList(packageUnits), dirtyOIDandVersions, detachedObjects,
- deltas, null);
+ CDOCommitInfo commitInfo = in.readCDOCommitInfo(session.getCommitInfoManager());
+ session.handleCommitNotification(commitInfo);
}
}
diff --git a/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/CommitTransactionRequest.java b/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/CommitTransactionRequest.java
index 4ffe3c8990..641a538427 100644
--- a/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/CommitTransactionRequest.java
+++ b/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/CommitTransactionRequest.java
@@ -103,11 +103,13 @@ public class CommitTransactionRequest extends RequestWithMonitoring<CommitTransa
{
requesting(new CDODataOutputImpl(out)
{
+ @Override
public CDOPackageRegistry getPackageRegistry()
{
return getSession().getPackageRegistry();
}
+ @Override
public CDOIDProvider getIDProvider()
{
return CommitTransactionRequest.this.getIDProvider();
diff --git a/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/LoadCommitInfosRequest.java b/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/LoadCommitInfosRequest.java
index 49b43d2296..8f32fae5f3 100644
--- a/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/LoadCommitInfosRequest.java
+++ b/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/LoadCommitInfosRequest.java
@@ -74,7 +74,7 @@ public class LoadCommitInfosRequest extends CDOClientRequest<Boolean>
try
{
- CDOCommitInfo commitInfo = manager.createCommitInfo(branch, timeStamp, userID, comment);
+ CDOCommitInfo commitInfo = manager.createCommitInfo(branch, timeStamp, userID, comment, null);
handler.handleCommitInfo(commitInfo);
}
catch (Exception ex)
diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStoreAccessor.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStoreAccessor.java
index 6520f5609d..26861f164b 100644
--- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStoreAccessor.java
+++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStoreAccessor.java
@@ -17,6 +17,7 @@ import org.eclipse.emf.cdo.common.CDOQueryInfo;
import org.eclipse.emf.cdo.common.branch.CDOBranch;
import org.eclipse.emf.cdo.common.branch.CDOBranchPoint;
import org.eclipse.emf.cdo.common.branch.CDOBranchVersion;
+import org.eclipse.emf.cdo.common.commit.CDOCommitData;
import org.eclipse.emf.cdo.common.commit.CDOCommitInfo;
import org.eclipse.emf.cdo.common.commit.CDOCommitInfoHandler;
import org.eclipse.emf.cdo.common.id.CDOID;
@@ -435,8 +436,8 @@ public class DBStoreAccessor extends LongIDStoreAccessor implements IDBStoreAcce
TRACER.format("Detaching object: {0} in branch {1}", id, branch); //$NON-NLS-1$
}
- InternalCDORevision oldRevision = (InternalCDORevision)getStore().getRepository().getRevisionManager().getRevision(
- id, branch.getPoint(revised), 0, CDORevision.DEPTH_NONE, true);
+ InternalCDORevision oldRevision = getStore().getRepository().getRevisionManager().getRevision(id,
+ branch.getPoint(revised), 0, CDORevision.DEPTH_NONE, true);
EClass eClass = oldRevision.getEClass();
IMappingStrategy mappingStrategy = getStore().getMappingStrategy();
@@ -742,14 +743,14 @@ public class DBStoreAccessor extends LongIDStoreAccessor implements IDBStoreAcce
long timeStamp = resultSet.getLong(1);
String userID = resultSet.getString(2);
String comment = resultSet.getString(3);
- CDOBranch br = branch;
- if (br == null)
+ CDOBranch infoBranch = branch;
+ if (infoBranch == null)
{
int id = resultSet.getInt(4);
- br = branchManager.getBranch(id);
+ infoBranch = branchManager.getBranch(id);
}
- CDOCommitInfo commitInfo = commitInfoManager.createCommitInfo(br, timeStamp, userID, comment);
+ CDOCommitInfo commitInfo = commitInfoManager.createCommitInfo(infoBranch, timeStamp, userID, comment, null);
handler.handleCommitInfo(commitInfo);
}
}
@@ -764,6 +765,12 @@ public class DBStoreAccessor extends LongIDStoreAccessor implements IDBStoreAcce
}
}
+ public CDOCommitData loadCommitData(long timeStamp)
+ {
+ // TODO: implement DBStoreAccessor.loadCommitData(timeStamp, dataType)
+ throw new UnsupportedOperationException();
+ }
+
/**
* @author Stefan Winkler
*/
diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/HorizontalAuditClassMapping.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/HorizontalAuditClassMapping.java
index 91505776fd..bc091d14ea 100644
--- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/HorizontalAuditClassMapping.java
+++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/HorizontalAuditClassMapping.java
@@ -525,7 +525,7 @@ public class HorizontalAuditClassMapping extends AbstractHorizontalClassMapping
InternalCDORevision originalRevision = (InternalCDORevision)accessor.getStore().getRepository()
.getRevisionManager().getRevisionByVersion(id, delta, 0, true);
- newRevision = (InternalCDORevision)originalRevision.copy();
+ newRevision = originalRevision.copy();
newRevision.setVersion(oldVersion + 1);
newRevision.setBranchPoint(CDOBranchUtil.createBranchPoint(delta.getBranch(), created));
diff --git a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateStoreAccessor.java b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateStoreAccessor.java
index 3329620ea4..5e4888d36d 100644
--- a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateStoreAccessor.java
+++ b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateStoreAccessor.java
@@ -15,6 +15,7 @@ import org.eclipse.emf.cdo.common.CDOQueryInfo;
import org.eclipse.emf.cdo.common.branch.CDOBranch;
import org.eclipse.emf.cdo.common.branch.CDOBranchPoint;
import org.eclipse.emf.cdo.common.branch.CDOBranchVersion;
+import org.eclipse.emf.cdo.common.commit.CDOCommitData;
import org.eclipse.emf.cdo.common.commit.CDOCommitInfoHandler;
import org.eclipse.emf.cdo.common.id.CDOID;
import org.eclipse.emf.cdo.common.id.CDOIDTemp;
@@ -355,6 +356,12 @@ public class HibernateStoreAccessor extends StoreAccessor implements IHibernateS
throw new UnsupportedOperationException();
}
+ public CDOCommitData loadCommitData(long timeStamp)
+ {
+ // TODO: implement HibernateStoreAccessor.loadCommitData(timeStamp, dataType)
+ throw new UnsupportedOperationException();
+ }
+
/**
* Not supported by the Hibernate Store, auditing is not supported
*/
diff --git a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDORevisionProxyHibernate.java b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDORevisionProxyHibernate.java
index 10d443cc2d..5f54f09838 100644
--- a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDORevisionProxyHibernate.java
+++ b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDORevisionProxyHibernate.java
@@ -10,7 +10,6 @@
*/
package org.eclipse.emf.cdo.server.internal.hibernate.tuplizer;
-import org.eclipse.emf.cdo.common.revision.CDORevision;
import org.eclipse.emf.cdo.spi.common.revision.DelegatingCDORevision;
import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevision;
@@ -31,7 +30,7 @@ public class CDORevisionProxyHibernate extends DelegatingCDORevision implements
this.li = li;
}
- public CDORevision copy()
+ public InternalCDORevision copy()
{
return new CDORevisionProxyHibernate(li);
}
diff --git a/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/AbstractSyncRevisionsIndication.java b/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/AbstractSyncRevisionsIndication.java
index 7220f702ba..30a7f8730f 100644
--- a/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/AbstractSyncRevisionsIndication.java
+++ b/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/AbstractSyncRevisionsIndication.java
@@ -88,8 +88,8 @@ public abstract class AbstractSyncRevisionsIndication extends CDOReadIndication
try
{
CDOBranchPoint branchPoint = getRepository().getBranchManager().getMainBranch().getHead();
- InternalCDORevision revision = (InternalCDORevision)getRepository().getRevisionManager().getRevision(id,
- branchPoint, referenceChunk, CDORevision.DEPTH_NONE, true);
+ InternalCDORevision revision = getRepository().getRevisionManager().getRevision(id, branchPoint, referenceChunk,
+ CDORevision.DEPTH_NONE, true);
if (revision == null)
{
detachedObjects.add(new Pair<CDOID, Long>(id, getTimestamp(id, version)));
diff --git a/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/CDOServerIndication.java b/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/CDOServerIndication.java
index dbcb746696..1d8c2b4415 100644
--- a/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/CDOServerIndication.java
+++ b/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/CDOServerIndication.java
@@ -118,11 +118,13 @@ public abstract class CDOServerIndication extends IndicationWithResponse
{
responding(new CDODataOutputImpl(out)
{
+ @Override
public CDOPackageRegistry getPackageRegistry()
{
return getRepository().getPackageRegistry();
}
+ @Override
public CDOIDProvider getIDProvider()
{
return getSession();
diff --git a/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/CDOServerRequest.java b/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/CDOServerRequest.java
index 3a2c878cf6..cb65f72979 100644
--- a/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/CDOServerRequest.java
+++ b/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/CDOServerRequest.java
@@ -48,6 +48,7 @@ public abstract class CDOServerRequest extends Request
{
requesting(new CDODataOutputImpl(out)
{
+ @Override
public CDOPackageRegistry getPackageRegistry()
{
return getSession().getManager().getRepository().getPackageRegistry();
@@ -59,6 +60,7 @@ public abstract class CDOServerRequest extends Request
return getProtocol().getPackageURICompressor();
}
+ @Override
public CDOIDProvider getIDProvider()
{
return getSession();
diff --git a/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/CommitTransactionIndication.java b/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/CommitTransactionIndication.java
index 4fb317293b..920c43cdf6 100644
--- a/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/CommitTransactionIndication.java
+++ b/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/CommitTransactionIndication.java
@@ -294,11 +294,13 @@ public class CommitTransactionIndication extends IndicationWithMonitoring
{
responding(new CDODataOutputImpl(out)
{
+ @Override
public CDOPackageRegistry getPackageRegistry()
{
return commitContext.getPackageRegistry();
}
+ @Override
public CDOIDProvider getIDProvider()
{
return CommitTransactionIndication.this.getSession();
diff --git a/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/LoadChunkIndication.java b/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/LoadChunkIndication.java
index 3bdea9cea0..1f5f811788 100644
--- a/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/LoadChunkIndication.java
+++ b/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/LoadChunkIndication.java
@@ -95,8 +95,7 @@ public class LoadChunkIndication extends CDOReadIndication
InternalRepository repository = getRepository();
InternalCDORevisionManager revisionManager = repository.getRevisionManager();
- InternalCDORevision revision = (InternalCDORevision)revisionManager
- .getRevisionByVersion(id, branchVersion, 0, true);
+ InternalCDORevision revision = revisionManager.getRevisionByVersion(id, branchVersion, 0, true);
repository.ensureChunk(revision, feature, fromIndex, toIndex + 1);
CDOType type = CDOModelUtil.getType(feature);
diff --git a/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/LoadRevisionsIndication.java b/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/LoadRevisionsIndication.java
index 053ee22b1e..32caea79d0 100644
--- a/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/LoadRevisionsIndication.java
+++ b/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/LoadRevisionsIndication.java
@@ -201,8 +201,8 @@ public class LoadRevisionsIndication extends CDOReadIndication
private InternalCDORevision getRevision(CDOID id)
{
- return (InternalCDORevision)getRepository().getRevisionManager().getRevision(id, branchPoint, referenceChunk,
- CDORevision.DEPTH_NONE, true);
+ return getRepository().getRevisionManager().getRevision(id, branchPoint, referenceChunk, CDORevision.DEPTH_NONE,
+ true);
}
private void collectRevisions(InternalCDORevision revision, Set<CDOID> revisions,
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Repository.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Repository.java
index 496546cdfc..5c142213fd 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Repository.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Repository.java
@@ -19,6 +19,7 @@ import org.eclipse.emf.cdo.common.CDOQueryInfo;
import org.eclipse.emf.cdo.common.branch.CDOBranch;
import org.eclipse.emf.cdo.common.branch.CDOBranchPoint;
import org.eclipse.emf.cdo.common.branch.CDOBranchVersion;
+import org.eclipse.emf.cdo.common.commit.CDOCommitData;
import org.eclipse.emf.cdo.common.commit.CDOCommitInfoHandler;
import org.eclipse.emf.cdo.common.id.CDOID;
import org.eclipse.emf.cdo.common.id.CDOIDMetaRange;
@@ -249,6 +250,12 @@ public class Repository extends Container<Object> implements InternalRepository
accessor.loadCommitInfos(branch, startTime, endTime, handler);
}
+ public CDOCommitData loadCommitData(long timeStamp)
+ {
+ IStoreAccessor accessor = StoreThreadLocal.getAccessor();
+ return accessor.loadCommitData(timeStamp);
+ }
+
public List<InternalCDORevision> loadRevisions(List<RevisionInfo> infos, CDOBranchPoint branchPoint,
int referenceChunk, int prefetchDepth)
{
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Session.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Session.java
index 568ff14d4c..96ba3e1bda 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Session.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Session.java
@@ -283,8 +283,8 @@ public class Session extends Container<IView> implements InternalSession
CDOID id = (CDOID)value;
if (!CDOIDUtil.isNull(id) && !revisions.contains(id))
{
- InternalCDORevision containedRevision = (InternalCDORevision)revisionManager.getRevision(id, branchPoint,
- referenceChunk, CDORevision.DEPTH_NONE, true);
+ InternalCDORevision containedRevision = revisionManager.getRevision(id, branchPoint, referenceChunk,
+ CDORevision.DEPTH_NONE, true);
revisions.add(id);
additionalRevisions.add(containedRevision);
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/embedded/EmbeddedClientSessionProtocol.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/embedded/EmbeddedClientSessionProtocol.java
index 3efb5b3131..f8a5d63ba3 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/embedded/EmbeddedClientSessionProtocol.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/embedded/EmbeddedClientSessionProtocol.java
@@ -14,6 +14,7 @@ import org.eclipse.emf.cdo.CDOObject;
import org.eclipse.emf.cdo.common.branch.CDOBranch;
import org.eclipse.emf.cdo.common.branch.CDOBranchPoint;
import org.eclipse.emf.cdo.common.branch.CDOBranchVersion;
+import org.eclipse.emf.cdo.common.commit.CDOCommitData;
import org.eclipse.emf.cdo.common.commit.CDOCommitInfoHandler;
import org.eclipse.emf.cdo.common.id.CDOID;
import org.eclipse.emf.cdo.common.id.CDOIDAndVersion;
@@ -147,14 +148,18 @@ public class EmbeddedClientSessionProtocol extends Lifecycle implements CDOSessi
throw new UnsupportedOperationException();
}
+ public CDOCommitData loadCommitData(long timeStamp)
+ {
+ throw new UnsupportedOperationException();
+ }
+
public InternalCDORevision loadRevisionByVersion(CDOID id, CDOBranchVersion branchVersion, int referenceChunk)
{
try
{
InternalSession session = serverSessionProtocol.getSession();
StoreThreadLocal.setSession(session);
- return (InternalCDORevision)repository.getRevisionManager().getRevisionByVersion(id, branchVersion,
- referenceChunk, true);
+ return repository.getRevisionManager().getRevisionByVersion(id, branchVersion, referenceChunk, true);
}
finally
{
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/embedded/EmbeddedServerSessionProtocol.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/embedded/EmbeddedServerSessionProtocol.java
index 99b1431de5..a57cc029c6 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/embedded/EmbeddedServerSessionProtocol.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/embedded/EmbeddedServerSessionProtocol.java
@@ -10,12 +10,8 @@
*/
package org.eclipse.emf.cdo.internal.server.embedded;
-import org.eclipse.emf.cdo.common.branch.CDOBranchPoint;
-import org.eclipse.emf.cdo.common.id.CDOID;
-import org.eclipse.emf.cdo.common.id.CDOIDAndVersion;
-import org.eclipse.emf.cdo.common.model.CDOPackageUnit;
+import org.eclipse.emf.cdo.common.commit.CDOCommitInfo;
import org.eclipse.emf.cdo.common.protocol.CDOAuthenticationResult;
-import org.eclipse.emf.cdo.common.revision.delta.CDORevisionDelta;
import org.eclipse.emf.cdo.session.remote.CDORemoteSessionMessage;
import org.eclipse.emf.cdo.spi.common.branch.InternalCDOBranch;
import org.eclipse.emf.cdo.spi.server.ISessionProtocol;
@@ -24,10 +20,6 @@ import org.eclipse.emf.cdo.spi.server.InternalSession;
import org.eclipse.net4j.util.lifecycle.Lifecycle;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-
/**
* @author Eike Stepper
*/
@@ -71,12 +63,10 @@ public class EmbeddedServerSessionProtocol extends Lifecycle implements ISession
clientSession.handleBranchNotification(branch);
}
- public void sendCommitNotification(CDOBranchPoint branchPoint, CDOPackageUnit[] packageUnits,
- List<CDOIDAndVersion> dirtyIDs, List<CDOID> detachedObjects, List<CDORevisionDelta> newDeltas)
+ public void sendCommitNotification(CDOCommitInfo commitInfo)
{
EmbeddedClientSession clientSession = clientSessionProtocol.getSession();
- clientSession.handleCommitNotification(branchPoint, Arrays.asList(packageUnits), new HashSet<CDOIDAndVersion>(
- dirtyIDs), detachedObjects, newDeltas, null);
+ clientSession.handleCommitNotification(commitInfo);
}
public void sendRemoteSessionNotification(InternalSession sender, byte opcode)
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/mem/MEMStore.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/mem/MEMStore.java
index ce2bbc6e77..1c80d315b4 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/mem/MEMStore.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/mem/MEMStore.java
@@ -692,7 +692,7 @@ public class MEMStore extends LongIDStore implements IMEMStore, BranchLoader
public void handle(InternalCDOCommitInfoManager manager, CDOCommitInfoHandler handler)
{
- CDOCommitInfo commitInfo = manager.createCommitInfo(branch, timeStamp, userID, comment);
+ CDOCommitInfo commitInfo = manager.createCommitInfo(branch, timeStamp, userID, comment, null);
handler.handleCommitInfo(commitInfo);
}
}
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/mem/MEMStoreAccessor.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/mem/MEMStoreAccessor.java
index f33a69f10c..e566d90ac1 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/mem/MEMStoreAccessor.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/mem/MEMStoreAccessor.java
@@ -16,6 +16,7 @@ import org.eclipse.emf.cdo.common.CDOQueryInfo;
import org.eclipse.emf.cdo.common.branch.CDOBranch;
import org.eclipse.emf.cdo.common.branch.CDOBranchPoint;
import org.eclipse.emf.cdo.common.branch.CDOBranchVersion;
+import org.eclipse.emf.cdo.common.commit.CDOCommitData;
import org.eclipse.emf.cdo.common.commit.CDOCommitInfoHandler;
import org.eclipse.emf.cdo.common.id.CDOID;
import org.eclipse.emf.cdo.common.revision.cache.CDORevisionCacheAdder;
@@ -173,6 +174,12 @@ public class MEMStoreAccessor extends LongIDStoreAccessor
getStore().loadCommitInfos(branch, startTime, endTime, handler);
}
+ public CDOCommitData loadCommitData(long timeStamp)
+ {
+ // TODO: implement MEMStoreAccessor.loadCommitData(timeStamp, dataType)
+ throw new UnsupportedOperationException();
+ }
+
public InternalCDORevision readRevision(CDOID id, CDOBranchPoint branchPoint, int listChunk,
CDORevisionCacheAdder cache)
{
@@ -270,7 +277,7 @@ public class MEMStoreAccessor extends LongIDStoreAccessor
+ " that was already modified"); //$NON-NLS-1$
}
- InternalCDORevision newRevision = (InternalCDORevision)revision.copy();
+ InternalCDORevision newRevision = revision.copy();
newRevision.adjustForCommit(branch, created);
revisionDelta.apply(newRevision);
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/spi/server/ISessionProtocol.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/spi/server/ISessionProtocol.java
index d3739c3fed..c78010f67a 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/spi/server/ISessionProtocol.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/spi/server/ISessionProtocol.java
@@ -10,18 +10,12 @@
*/
package org.eclipse.emf.cdo.spi.server;
-import org.eclipse.emf.cdo.common.branch.CDOBranchPoint;
-import org.eclipse.emf.cdo.common.id.CDOID;
-import org.eclipse.emf.cdo.common.id.CDOIDAndVersion;
-import org.eclipse.emf.cdo.common.model.CDOPackageUnit;
+import org.eclipse.emf.cdo.common.commit.CDOCommitInfo;
import org.eclipse.emf.cdo.common.protocol.CDOAuthenticationResult;
import org.eclipse.emf.cdo.common.protocol.CDOProtocol;
-import org.eclipse.emf.cdo.common.revision.delta.CDORevisionDelta;
import org.eclipse.emf.cdo.session.remote.CDORemoteSessionMessage;
import org.eclipse.emf.cdo.spi.common.branch.InternalCDOBranch;
-import java.util.List;
-
/**
* @author Eike Stepper
* @since 3.0
@@ -32,8 +26,7 @@ public interface ISessionProtocol extends CDOProtocol
public void sendBranchNotification(InternalCDOBranch branch);
- public void sendCommitNotification(CDOBranchPoint branchPoint, CDOPackageUnit[] packageUnits,
- List<CDOIDAndVersion> dirtyIDs, List<CDOID> detachedObjects, List<CDORevisionDelta> newDeltas);
+ public void sendCommitNotification(CDOCommitInfo commitInfo);
public void sendRemoteSessionNotification(InternalSession sender, byte opcode);
diff --git a/plugins/org.eclipse.emf.cdo.tests.mango/model/mango.genmodel b/plugins/org.eclipse.emf.cdo.tests.mango/model/mango.genmodel
index 713e840944..fd0719ab9f 100644
--- a/plugins/org.eclipse.emf.cdo.tests.mango/model/mango.genmodel
+++ b/plugins/org.eclipse.emf.cdo.tests.mango/model/mango.genmodel
@@ -15,16 +15,16 @@
<genEnumLiterals ecoreEnumLiteral="mango.ecore#//ParameterPassing/ByValue"/>
<genEnumLiterals ecoreEnumLiteral="mango.ecore#//ParameterPassing/ByReference"/>
</genEnums>
- <genClasses ecoreClass="mango.ecore#//ValueList">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute mango.ecore#//ValueList/name"/>
- <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference mango.ecore#//ValueList/values"/>
+ <genClasses ecoreClass="mango.ecore#//MangoValueList">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute mango.ecore#//MangoValueList/name"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference mango.ecore#//MangoValueList/values"/>
</genClasses>
- <genClasses ecoreClass="mango.ecore#//Value">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute mango.ecore#//Value/name"/>
+ <genClasses ecoreClass="mango.ecore#//MangoValue">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute mango.ecore#//MangoValue/name"/>
</genClasses>
- <genClasses ecoreClass="mango.ecore#//Parameter">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute mango.ecore#//Parameter/name"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute mango.ecore#//Parameter/passing"/>
+ <genClasses ecoreClass="mango.ecore#//MangoParameter">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute mango.ecore#//MangoParameter/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute mango.ecore#//MangoParameter/passing"/>
</genClasses>
</genPackages>
</genmodel:GenModel>
diff --git a/plugins/org.eclipse.emf.cdo.tests.mango/model/mango.legacy-genmodel b/plugins/org.eclipse.emf.cdo.tests.mango/model/mango.legacy-genmodel
index 15ed52c16f..fee1a5f9fe 100644
--- a/plugins/org.eclipse.emf.cdo.tests.mango/model/mango.legacy-genmodel
+++ b/plugins/org.eclipse.emf.cdo.tests.mango/model/mango.legacy-genmodel
@@ -14,16 +14,16 @@
<genEnumLiterals ecoreEnumLiteral="mango.ecore#//ParameterPassing/ByValue"/>
<genEnumLiterals ecoreEnumLiteral="mango.ecore#//ParameterPassing/ByReference"/>
</genEnums>
- <genClasses ecoreClass="mango.ecore#//ValueList">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute mango.ecore#//ValueList/name"/>
- <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference mango.ecore#//ValueList/values"/>
+ <genClasses ecoreClass="mango.ecore#//MangoValueList">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute mango.ecore#//MangoValueList/name"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference mango.ecore#//MangoValueList/values"/>
</genClasses>
- <genClasses ecoreClass="mango.ecore#//Value">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute mango.ecore#//Value/name"/>
+ <genClasses ecoreClass="mango.ecore#//MangoValue">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute mango.ecore#//MangoValue/name"/>
</genClasses>
- <genClasses ecoreClass="mango.ecore#//Parameter">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute mango.ecore#//Parameter/name"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute mango.ecore#//Parameter/passing"/>
+ <genClasses ecoreClass="mango.ecore#//MangoParameter">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute mango.ecore#//MangoParameter/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute mango.ecore#//MangoParameter/passing"/>
</genClasses>
</genPackages>
</genmodel:GenModel>
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionHolderTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionHolderTest.java
index 5a1b9f9e32..896cdd0e82 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionHolderTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionHolderTest.java
@@ -22,6 +22,7 @@ import org.eclipse.emf.cdo.internal.common.revision.cache.lru.LRURevisionHolder;
import org.eclipse.emf.cdo.internal.common.revision.cache.lru.LRURevisionList;
import org.eclipse.emf.cdo.internal.common.revision.cache.lru.RevisionHolder;
import org.eclipse.emf.cdo.spi.common.branch.CDOBranchUtil;
+import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevision;
import org.eclipse.emf.cdo.spi.common.revision.StubCDORevision;
import org.eclipse.emf.ecore.EClass;
@@ -335,7 +336,7 @@ public class RevisionHolderTest extends AbstractCDOTest
}
@Override
- public CDORevision copy()
+ public InternalCDORevision copy()
{
return new TestRevision(CDOIDUtil.getLong(id), version, branchPoint.getTimeStamp(), revised);
}
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionManagerTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionManagerTest.java
index 58f029a740..61493aa083 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionManagerTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionManagerTest.java
@@ -247,8 +247,7 @@ public class RevisionManagerTest extends AbstractCDOTest
{
CDOBranchPoint branchPoint = branch.getPoint(timeStamp);
dumpCache(branchPoint);
- return (InternalCDORevision)revisionManager.getRevision(ID, branchPoint, CDORevision.UNCHUNKED,
- CDORevision.DEPTH_NONE, true);
+ return revisionManager.getRevision(ID, branchPoint, CDORevision.UNCHUNKED, CDORevision.DEPTH_NONE, true);
}
private void prefetchBaseline(CDOBranch branch, int levelsUp)
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/session/CDOSessionInvalidationEvent.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/session/CDOSessionInvalidationEvent.java
index 048911afa7..20632c3e69 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/session/CDOSessionInvalidationEvent.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/session/CDOSessionInvalidationEvent.java
@@ -12,20 +12,13 @@
package org.eclipse.emf.cdo.session;
import org.eclipse.emf.cdo.CDOInvalidationNotification;
-import org.eclipse.emf.cdo.common.branch.CDOBranch;
-import org.eclipse.emf.cdo.common.branch.CDOBranchPoint;
-import org.eclipse.emf.cdo.common.id.CDOID;
-import org.eclipse.emf.cdo.common.id.CDOIDAndVersion;
-import org.eclipse.emf.cdo.common.model.CDOPackageUnit;
+import org.eclipse.emf.cdo.common.commit.CDOCommitInfo;
import org.eclipse.emf.cdo.common.revision.CDORevision;
import org.eclipse.emf.cdo.view.CDOAdapterPolicy;
import org.eclipse.emf.cdo.view.CDOView;
import org.eclipse.net4j.util.event.IListener;
-import java.util.Collection;
-import java.util.Set;
-
/**
* An event that is emitted to registered {@link IListener listeners} of a {@link CDOSession} if
* {@link CDOSession.Options#setPassiveUpdateEnabled(boolean) passive update} is enabled for the session.
@@ -36,7 +29,7 @@ import java.util.Set;
* @noimplement This interface is not intended to be implemented by clients.
* @since 2.0
*/
-public interface CDOSessionInvalidationEvent extends CDOSessionEvent, CDOBranchPoint
+public interface CDOSessionInvalidationEvent extends CDOSessionEvent, CDOCommitInfo
{
public static final long LOCAL_ROLLBACK = CDORevision.UNSPECIFIED_DATE;
@@ -50,33 +43,4 @@ public interface CDOSessionInvalidationEvent extends CDOSessionEvent, CDOBranchP
* @since 3.0
*/
public boolean isRemote();
-
- /**
- * Returns the branch of the server transaction if this event was sent as a result of a successfully committed
- * transaction.
- *
- * @since 3.0
- */
- public CDOBranch getBranch();
-
- /**
- * Returns the time stamp of the server transaction if this event was sent as a result of a successfully committed
- * transaction or <code>LOCAL_ROLLBACK</code> if this event was sent due to a local rollback.
- */
- public long getTimeStamp();
-
- /**
- * Returns a set of the {@link CDOID CDOIDs} and versions of the modified objects.
- */
- public Set<CDOIDAndVersion> getDirtyOIDs();
-
- /**
- * Returns a collection of the {@link CDOID CDOIDs} of the removed objects.
- */
- public Collection<CDOID> getDetachedObjects();
-
- /**
- * Returns a collection of the new {@link CDOPackageUnit package units}.
- */
- public Collection<CDOPackageUnit> getNewPackageUnits();
}
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/view/CDOStaleReferencePolicy.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/view/CDOStaleReferencePolicy.java
index b8b57e6ec0..fa6e43b8cd 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/view/CDOStaleReferencePolicy.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/view/CDOStaleReferencePolicy.java
@@ -47,7 +47,7 @@ public interface CDOStaleReferencePolicy
@Override
public String toString()
{
- return Messages.getString("CDOStaleReferencePolicy.0");
+ return Messages.getString("CDOStaleReferencePolicy.0"); //$NON-NLS-1$
}
};
@@ -66,12 +66,12 @@ public interface CDOStaleReferencePolicy
{
public Object invoke(Object arg0, Method arg1, Object[] arg2) throws Throwable
{
- if (arg1.getName().equals("eIsProxy"))
+ if (arg1.getName().equals("eIsProxy")) //$NON-NLS-1$
{
return false;
}
- if (arg1.getName().equals("eClass"))
+ if (arg1.getName().equals("eClass")) //$NON-NLS-1$
{
return type;
}
@@ -99,7 +99,7 @@ public interface CDOStaleReferencePolicy
@Override
public String toString()
{
- return Messages.getString("CDOStaleReferencePolicy.1");
+ return Messages.getString("CDOStaleReferencePolicy.1"); //$NON-NLS-1$
}
};
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectMerger.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectMerger.java
index 7b5d38f378..ec91574514 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectMerger.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectMerger.java
@@ -32,7 +32,7 @@ public class CDOObjectMerger extends CDORevisionMerger
*/
public void merge(InternalCDOObject object, CDORevisionDelta delta)
{
- InternalCDORevision revision = (InternalCDORevision)object.cdoRevision().copy();
+ InternalCDORevision revision = object.cdoRevision().copy();
object.cdoInternalSetRevision(revision);
// NEW object should stay that state.
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOStateMachine.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOStateMachine.java
index 7da88baba1..fbc7b8658b 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOStateMachine.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOStateMachine.java
@@ -872,7 +872,7 @@ public final class CDOStateMachine extends FiniteStateMachine<CDOState, CDOEvent
InternalCDOTransaction transaction = view.toTransaction();
// Copy revision
- InternalCDORevision revision = (InternalCDORevision)object.cdoRevision().copy();
+ InternalCDORevision revision = object.cdoRevision().copy();
object.cdoInternalSetRevision(revision);
transaction.registerDirty(object, (CDOFeatureDelta)featureDelta);
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOSessionImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOSessionImpl.java
index 413d7a97a4..676de8eecf 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOSessionImpl.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOSessionImpl.java
@@ -19,13 +19,17 @@ import org.eclipse.emf.cdo.CDOObject;
import org.eclipse.emf.cdo.common.branch.CDOBranch;
import org.eclipse.emf.cdo.common.branch.CDOBranchPoint;
import org.eclipse.emf.cdo.common.branch.CDOBranchVersion;
+import org.eclipse.emf.cdo.common.commit.CDOCommitData;
+import org.eclipse.emf.cdo.common.commit.CDOCommitInfo;
import org.eclipse.emf.cdo.common.commit.CDOCommitInfoHandler;
+import org.eclipse.emf.cdo.common.commit.CDOCommitInfoManager;
import org.eclipse.emf.cdo.common.id.CDOID;
import org.eclipse.emf.cdo.common.id.CDOIDAndVersion;
import org.eclipse.emf.cdo.common.id.CDOIDUtil;
import org.eclipse.emf.cdo.common.model.CDOPackageUnit;
import org.eclipse.emf.cdo.common.protocol.CDOAuthenticator;
import org.eclipse.emf.cdo.common.revision.CDORevision;
+import org.eclipse.emf.cdo.common.revision.CDORevisionKey;
import org.eclipse.emf.cdo.common.revision.delta.CDORevisionDelta;
import org.eclipse.emf.cdo.common.util.CDOException;
import org.eclipse.emf.cdo.session.CDOCollectionLoadingPolicy;
@@ -36,6 +40,8 @@ import org.eclipse.emf.cdo.session.remote.CDORemoteSession;
import org.eclipse.emf.cdo.session.remote.CDORemoteSessionMessage;
import org.eclipse.emf.cdo.spi.common.CDOCloningContext;
import org.eclipse.emf.cdo.spi.common.branch.InternalCDOBranch;
+import org.eclipse.emf.cdo.spi.common.model.InternalCDOPackageRegistry;
+import org.eclipse.emf.cdo.spi.common.model.InternalCDOPackageUnit;
import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevision;
import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevisionManager;
import org.eclipse.emf.cdo.spi.common.revision.RevisionInfo;
@@ -512,7 +518,11 @@ public abstract class CDOSessionImpl extends Container<CDOView> implements Inter
{
synchronized (lastUpdateTimeLock)
{
- this.lastUpdateTime = lastUpdateTime;
+ if (this.lastUpdateTime < lastUpdateTime)
+ {
+ this.lastUpdateTime = lastUpdateTime;
+ }
+
lastUpdateTimeLock.notifyAll();
}
}
@@ -561,15 +571,6 @@ public abstract class CDOSessionImpl extends Container<CDOView> implements Inter
return policy.resolveProxy(this, revision, feature, accessIndex, serverIndex);
}
- /**
- * @since 2.0
- */
- public void handleSyncResponse(CDOBranchPoint branchPoint, Collection<CDOPackageUnit> newPackageUnits,
- Set<CDOIDAndVersion> dirtyOIDs, Collection<CDOID> detachedObjects)
- {
- handleCommitNotification(branchPoint, newPackageUnits, dirtyOIDs, detachedObjects, null, null, true, false);
- }
-
public void handleBranchNotification(InternalCDOBranch branch)
{
getBranchManager().handleBranchCreated(branch);
@@ -578,18 +579,17 @@ public abstract class CDOSessionImpl extends Container<CDOView> implements Inter
/**
* @since 2.0
*/
- public void handleCommitNotification(CDOBranchPoint branchPoint, Collection<CDOPackageUnit> newPackageUnits,
- Set<CDOIDAndVersion> dirtyOIDs, Collection<CDOID> detachedObjects, Collection<CDORevisionDelta> deltas,
- InternalCDOView excludedView)
+ public void handleSyncResponse(CDOBranchPoint branchPoint, Collection<CDOPackageUnit> newPackageUnits,
+ Set<CDOIDAndVersion> dirtyOIDs, Collection<CDOID> detachedObjects)
{
- handleCommitNotification(branchPoint, newPackageUnits, dirtyOIDs, detachedObjects, deltas, excludedView, options()
- .isPassiveUpdateEnabled(), true);
+ handleCommitNotification___OLD(branchPoint, newPackageUnits, dirtyOIDs, detachedObjects, null, null, true, false);
}
- private void handleCommitNotification(CDOBranchPoint branchPoint, final Collection<CDOPackageUnit> newPackageUnits,
- Set<CDOIDAndVersion> dirtyOIDs, final Collection<CDOID> detachedObjects,
- final Collection<CDORevisionDelta> deltas, InternalCDOView excludedView, final boolean reviseAndInvalidate,
- final boolean async)
+ @Deprecated
+ private void handleCommitNotification___OLD(CDOBranchPoint branchPoint,
+ final Collection<CDOPackageUnit> newPackageUnits, Set<CDOIDAndVersion> dirtyOIDs,
+ final Collection<CDOID> detachedObjects, final Collection<CDORevisionDelta> deltas, InternalCDOView excludedView,
+ final boolean reviseAndInvalidate, final boolean async)
{
final CDOBranch branch = branchPoint.getBranch();
final long timeStamp = branchPoint.getTimeStamp();
@@ -700,10 +700,12 @@ public abstract class CDOSessionImpl extends Container<CDOView> implements Inter
}
setLastUpdateTime(timeStamp);
- fireInvalidationEvent(branchPoint, newPackageUnits, dirtyOIDs, detachedObjects, excludedView);
+ throw new UnsupportedOperationException();
+ // fireInvalidationEvent(branchPoint, newPackageUnits, dirtyOIDs, detachedObjects, excludedView);
}
- public void reviseRevisions(CDOBranchPoint branchPoint, Set<CDOIDAndVersion> dirtyOIDs,
+ @Deprecated
+ private void reviseRevisions(CDOBranchPoint branchPoint, Set<CDOIDAndVersion> dirtyOIDs,
Collection<CDOID> detachedObjects, InternalCDOView excludedView)
{
InternalCDORevisionManager revisionManager = getRevisionManager();
@@ -726,6 +728,123 @@ public abstract class CDOSessionImpl extends Container<CDOView> implements Inter
}
}
+ /**
+ * @since 2.0
+ */
+ public void handleCommitNotification(CDOCommitInfo commitInfo)
+ {
+ try
+ {
+ synchronized (invalidationLock)
+ {
+ registerPackageUnits(commitInfo);
+ reviseRevisions(commitInfo);
+ invalidate(commitInfo, null);
+ }
+ }
+ catch (RuntimeException ex)
+ {
+ if (isActive())
+ {
+ OM.LOG.error(ex);
+ }
+ else
+ {
+ OM.LOG.info(Messages.getString("CDOSessionImpl.2")); //$NON-NLS-1$
+ }
+ }
+ }
+
+ private void registerPackageUnits(final CDOCommitInfo commitInfo)
+ {
+ InternalCDOPackageRegistry packageRegistry = getPackageRegistry();
+ for (CDOPackageUnit newPackageUnit : commitInfo.getNewPackageUnits())
+ {
+ packageRegistry.putPackageUnit((InternalCDOPackageUnit)newPackageUnit);
+ }
+ }
+
+ private void reviseRevisions(CDOCommitInfo commitInfo)
+ {
+ CDOBranch newBranch = commitInfo.getBranch();
+ long timeStamp = commitInfo.getTimeStamp();
+ InternalCDORevisionManager revisionManager = getRevisionManager();
+
+ // Cache new revisions
+ for (CDOIDAndVersion key : commitInfo.getNewObjects())
+ {
+ if (key instanceof InternalCDORevision)
+ {
+ InternalCDORevision newRevision = (InternalCDORevision)key;
+ revisionManager.addRevision(newRevision);
+ }
+ }
+
+ // Apply deltas and cache the resulting new revisions, if possible...
+ for (CDORevisionKey key : commitInfo.getChangedObjects())
+ {
+ InternalCDORevision newRevision = createNewRevision(key, commitInfo);
+ if (newRevision != null)
+ {
+ revisionManager.addRevision(newRevision);
+ }
+ else
+ {
+ // ... Otherwise try to revise old revision if it is in the same branch
+ if (key.getBranch() == newBranch)
+ {
+ revisionManager.reviseVersion(key.getID(), key, timeStamp);
+ }
+ }
+ }
+
+ // Revise old revisions
+ for (CDOIDAndVersion key : commitInfo.getDetachedObjects())
+ {
+ CDOBranchVersion branchVersion = newBranch.getVersion(key.getVersion());
+ revisionManager.reviseVersion(key.getID(), branchVersion, timeStamp);
+ }
+ }
+
+ private InternalCDORevision createNewRevision(CDORevisionKey potentialDelta, CDOCommitInfo commitInfo)
+ {
+ if (potentialDelta instanceof CDORevisionDelta)
+ {
+ CDORevisionDelta delta = (CDORevisionDelta)potentialDelta;
+ CDOID id = delta.getID();
+
+ InternalCDORevisionManager revisionManager = getRevisionManager();
+ InternalCDORevision oldRevision = revisionManager.getRevisionByVersion(id, potentialDelta, CDORevision.UNCHUNKED, false);
+ if (oldRevision != null)
+ {
+ InternalCDORevision newRevision = oldRevision.copy();
+ newRevision.adjustForCommit(commitInfo.getBranch(), commitInfo.getTimeStamp());
+ delta.apply(newRevision);
+ return newRevision;
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * @since 2.0
+ */
+ public void invalidate(final CDOCommitInfo commitInfo, final InternalCDOTransaction sender)
+ {
+ for (InternalCDOView view : getViews())
+ {
+ if (view != sender && view.getBranch() == commitInfo.getBranch())
+ {
+ QueueRunner runner = getInvalidationRunner();
+ runner.addWork(new InvalidationRunnable(view, commitInfo));
+ }
+ }
+
+ setLastUpdateTime(commitInfo.getTimeStamp());
+ fireInvalidationEvent(sender, commitInfo);
+ }
+
public void cloneRepository(CDOCloningContext context)
{
getSessionProtocol().cloneRepository(context);
@@ -769,13 +888,11 @@ public abstract class CDOSessionImpl extends Container<CDOView> implements Inter
}
/**
- * @param packageUnits
* @since 2.0
*/
- public void fireInvalidationEvent(CDOBranchPoint branchPoint, Collection<CDOPackageUnit> packageUnits,
- Set<CDOIDAndVersion> dirtyOIDs, Collection<CDOID> detachedObjects, InternalCDOView excludedView)
+ public void fireInvalidationEvent(InternalCDOView excludedView, CDOCommitInfo commitInfo)
{
- fireEvent(new InvalidationEvent(excludedView, branchPoint, packageUnits, dirtyOIDs, detachedObjects));
+ fireEvent(new InvalidationEvent(excludedView, commitInfo));
}
@Override
@@ -1044,29 +1161,59 @@ public abstract class CDOSessionImpl extends Container<CDOView> implements Inter
/**
* @author Eike Stepper
*/
- private final class InvalidationEvent extends Event implements CDOSessionInvalidationEvent
+ private static final class InvalidationRunnable implements Runnable
{
- private static final long serialVersionUID = 1L;
-
private InternalCDOView view;
- private CDOBranchPoint branchPoint;
+ private CDOCommitInfo commitInfo;
+
+ private InvalidationRunnable(InternalCDOView view, CDOCommitInfo commitInfo)
+ {
+ this.view = view;
+ this.commitInfo = commitInfo;
+ }
+
+ public void run()
+ {
+ try
+ {
+ invalidationRunnerActive.set(true);
+ view.invalidate(commitInfo);
+ }
+ catch (RuntimeException ex)
+ {
+ if (view.isActive())
+ {
+ OM.LOG.error(ex);
+ }
+ else
+ {
+ OM.LOG.info(Messages.getString("CDOSessionImpl.1")); //$NON-NLS-1$
+ }
+ }
+ finally
+ {
+ invalidationRunnerActive.set(false);
+ }
+ }
+ }
- private Set<CDOIDAndVersion> dirtyOIDs;
+ /**
+ * @author Eike Stepper
+ */
+ private final class InvalidationEvent extends Event implements CDOSessionInvalidationEvent
+ {
+ private static final long serialVersionUID = 1L;
- private Collection<CDOID> detachedObjects;
+ private InternalCDOView view;
- private Collection<CDOPackageUnit> newPackageUnits;
+ private CDOCommitInfo commitInfo;
- public InvalidationEvent(InternalCDOView view, CDOBranchPoint branchPoint,
- Collection<CDOPackageUnit> newPackageUnits, Set<CDOIDAndVersion> dirtyOIDs, Collection<CDOID> detachedObjects)
+ public InvalidationEvent(InternalCDOView view, CDOCommitInfo commitInfo)
{
super(CDOSessionImpl.this);
this.view = view;
- this.branchPoint = branchPoint;
- this.newPackageUnits = newPackageUnits;
- this.dirtyOIDs = dirtyOIDs;
- this.detachedObjects = detachedObjects;
+ this.commitInfo = commitInfo;
}
@Override
@@ -1087,38 +1234,58 @@ public abstract class CDOSessionImpl extends Container<CDOView> implements Inter
public CDOBranch getBranch()
{
- return branchPoint.getBranch();
+ return commitInfo.getBranch();
+ }
+
+ public CDOCommitInfoManager getCommitInfoManager()
+ {
+ return commitInfo.getCommitInfoManager();
}
public long getTimeStamp()
{
- return branchPoint.getTimeStamp();
+ return commitInfo.getTimeStamp();
}
- public Set<CDOIDAndVersion> getDirtyOIDs()
+ public Collection<CDOPackageUnit> getNewPackageUnits()
{
- return dirtyOIDs;
+ return commitInfo.getNewPackageUnits();
}
- public Collection<CDOID> getDetachedObjects()
+ public String getUserID()
{
- return detachedObjects;
+ return commitInfo.getUserID();
}
- public Collection<CDOPackageUnit> getNewPackageUnits()
+ public String getComment()
+ {
+ return commitInfo.getComment();
+ }
+
+ public Collection<CDOIDAndVersion> getNewObjects()
+ {
+ return commitInfo.getNewObjects();
+ }
+
+ public Collection<CDORevisionKey> getChangedObjects()
{
- return newPackageUnits;
+ return commitInfo.getChangedObjects();
+ }
+
+ public Collection<CDOIDAndVersion> getDetachedObjects()
+ {
+ return commitInfo.getDetachedObjects();
}
public int compareTo(CDOBranchPoint o)
{
- return branchPoint.compareTo(o);
+ return commitInfo.compareTo(o);
}
@Override
public String toString()
{
- return "CDOSessionInvalidationEvent: " + dirtyOIDs;
+ return "CDOSessionInvalidationEvent[" + commitInfo + "]";
}
}
@@ -1431,6 +1598,22 @@ public abstract class CDOSessionImpl extends Container<CDOView> implements Inter
}
}
+ public CDOCommitData loadCommitData(long timeStamp)
+ {
+ int attempt = 0;
+ for (;;)
+ {
+ try
+ {
+ return delegate.loadCommitData(timeStamp);
+ }
+ catch (Exception ex)
+ {
+ handleException(++attempt, ex);
+ }
+ }
+ }
+
public Object loadChunk(InternalCDORevision revision, EStructuralFeature feature, int accessIndex, int fetchIndex,
int fromIndex, int toIndex)
{
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/transaction/CDOSingleTransactionStrategyImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/transaction/CDOSingleTransactionStrategyImpl.java
index 0b98e3da57..feee83ac55 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/transaction/CDOSingleTransactionStrategyImpl.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/transaction/CDOSingleTransactionStrategyImpl.java
@@ -82,7 +82,7 @@ public class CDOSingleTransactionStrategyImpl implements CDOTransactionStrategy
InternalCDOCommitInfoManager commitInfoManager = transaction.getSession().getCommitInfoManager();
return commitInfoManager.createCommitInfo(transaction.getBranch(), result.getTimeStamp(), transaction.getSession()
- .getUserID(), transaction.getCommitComment());
+ .getUserID(), transaction.getCommitComment(), null);
}
public void rollback(InternalCDOTransaction transaction, InternalCDOUserSavepoint savepoint)
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/transaction/CDOTransactionImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/transaction/CDOTransactionImpl.java
index 84f6765dba..2fbeb77334 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/transaction/CDOTransactionImpl.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/transaction/CDOTransactionImpl.java
@@ -19,6 +19,7 @@ import org.eclipse.emf.cdo.CDOState;
import org.eclipse.emf.cdo.common.branch.CDOBranch;
import org.eclipse.emf.cdo.common.branch.CDOBranchManager;
import org.eclipse.emf.cdo.common.branch.CDOBranchPoint;
+import org.eclipse.emf.cdo.common.commit.CDOCommitData;
import org.eclipse.emf.cdo.common.commit.CDOCommitInfo;
import org.eclipse.emf.cdo.common.id.CDOID;
import org.eclipse.emf.cdo.common.id.CDOIDAndVersion;
@@ -34,6 +35,7 @@ import org.eclipse.emf.cdo.common.model.EMFUtil;
import org.eclipse.emf.cdo.common.revision.CDOListFactory;
import org.eclipse.emf.cdo.common.revision.CDORevision;
import org.eclipse.emf.cdo.common.revision.CDORevisionFactory;
+import org.eclipse.emf.cdo.common.revision.CDORevisionKey;
import org.eclipse.emf.cdo.common.revision.delta.CDOFeatureDelta;
import org.eclipse.emf.cdo.common.revision.delta.CDORevisionDelta;
import org.eclipse.emf.cdo.common.revision.delta.CDORevisionDeltaUtil;
@@ -44,8 +46,10 @@ import org.eclipse.emf.cdo.eresource.CDOResourceNode;
import org.eclipse.emf.cdo.eresource.EresourceFactory;
import org.eclipse.emf.cdo.eresource.impl.CDOResourceImpl;
import org.eclipse.emf.cdo.eresource.impl.CDOResourceNodeImpl;
+import org.eclipse.emf.cdo.internal.common.commit.CDOCommitDataImpl;
import org.eclipse.emf.cdo.internal.common.io.CDODataInputImpl;
import org.eclipse.emf.cdo.internal.common.io.CDODataOutputImpl;
+import org.eclipse.emf.cdo.spi.common.commit.InternalCDOCommitInfoManager;
import org.eclipse.emf.cdo.spi.common.model.InternalCDOPackageUnit;
import org.eclipse.emf.cdo.spi.common.revision.CDOIDMapper;
import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevision;
@@ -1309,11 +1313,13 @@ public class CDOTransactionImpl extends CDOViewImpl implements InternalCDOTransa
{
CDODataOutput out = new CDODataOutputImpl(new ExtendedDataOutputStream(stream))
{
+ @Override
public CDOIDProvider getIDProvider()
{
return CDOTransactionImpl.this;
}
+ @Override
public CDOPackageRegistry getPackageRegistry()
{
return getSession().getPackageRegistry();
@@ -1734,51 +1740,43 @@ public class CDOTransactionImpl extends CDOViewImpl implements InternalCDOTransa
{
try
{
- Collection<CDORevisionDelta> deltas = getRevisionDeltas().values();
+ for (CDOPackageUnit newPackageUnit : newPackageUnits)
+ {
+ ((InternalCDOPackageUnit)newPackageUnit).setState(CDOPackageUnit.State.LOADED);
+ }
postCommit(getNewResources(), result);
postCommit(getNewObjects(), result);
postCommit(getDirtyObjects(), result);
- for (Entry<CDOID, CDOObject> entry : getDetachedObjects().entrySet())
- {
- removeObject(entry.getKey());
- }
- InternalCDOSession session = getSession();
- for (CDOPackageUnit newPackageUnit : newPackageUnits)
+ List<CDOIDAndVersion> revisions = new ArrayList<CDOIDAndVersion>();
+ for (CDOObject newObject : getNewObjects().values())
{
- ((InternalCDOPackageUnit)newPackageUnit).setState(CDOPackageUnit.State.LOADED);
+ revisions.add(newObject.cdoRevision());
}
- Map<CDOID, CDOObject> dirtyObjects = getDirtyObjects();
- Set<CDOIDAndVersion> dirtyIDs = new HashSet<CDOIDAndVersion>();
- for (CDOObject dirtyObject : dirtyObjects.values())
+ for (CDOObject newObject : getNewResources().values())
{
- CDORevision revision = dirtyObject.cdoRevision();
- CDOIDAndVersion dirtyID = CDOIDUtil.createIDAndVersion(revision.getID(), revision.getVersion() - 1);
- dirtyIDs.add(dirtyID);
+ revisions.add(newObject.cdoRevision());
}
- if (!dirtyIDs.isEmpty() || !getDetachedObjects().isEmpty())
+ List<CDORevisionKey> deltas = new ArrayList<CDORevisionKey>();
+ for (CDORevisionDelta delta : getRevisionDeltas().values())
{
- Set<CDOID> detachedIDs = new HashSet<CDOID>(getDetachedObjects().keySet());
- Collection<CDORevisionDelta> deltasCopy = new ArrayList<CDORevisionDelta>(deltas);
-
- // Adjust references in the deltas. Could be used in
- // ChangeSubscription from others CDOView
- for (CDORevisionDelta dirtyObjectDelta : deltasCopy)
- {
- ((InternalCDORevisionDelta)dirtyObjectDelta).adjustReferences(result.getReferenceAdjuster());
- }
-
- session.handleCommitNotification(getBranch().getPoint(result.getTimeStamp()), newPackageUnits, dirtyIDs,
- detachedIDs, deltasCopy, getTransaction());
+ ((InternalCDORevisionDelta)delta).adjustReferences(result.getReferenceAdjuster());
+ deltas.add(delta);
}
- else
+
+ List<CDOIDAndVersion> detached = new ArrayList<CDOIDAndVersion>();
+ for (Entry<CDOID, CDOObject> entry : getDetachedObjects().entrySet())
{
- session.setLastUpdateTime(result.getTimeStamp());
+ detached.add(entry.getValue().cdoRevision());
+ removeObject(entry.getKey());
}
+ CDOCommitInfo commitInfo = makeCommitInfo(result.getTimeStamp(), revisions, deltas, detached);
+ getSession().invalidate(commitInfo, getTransaction());
+
CDOTransactionHandler[] handlers = getTransactionHandlers();
if (handlers != null)
{
@@ -1819,6 +1817,20 @@ public class CDOTransactionImpl extends CDOViewImpl implements InternalCDOTransa
}
}
+ private CDOCommitInfo makeCommitInfo(long timeStamp, List<CDOIDAndVersion> newRevisions,
+ List<CDORevisionKey> deltas, List<CDOIDAndVersion> detachedIDsAndVersions)
+ {
+ InternalCDOSession session = getSession();
+ InternalCDOCommitInfoManager commitInfoManager = session.getCommitInfoManager();
+
+ CDOBranch branch = getBranch();
+ String userID = session.getUserID();
+ String comment = getCommitComment();
+ CDOCommitData commitData = new CDOCommitDataImpl(newPackageUnits, newRevisions, deltas, detachedIDsAndVersions);
+
+ return commitInfoManager.createCommitInfo(branch, timeStamp, userID, comment, commitData);
+ }
+
@SuppressWarnings("rawtypes")
private void preCommit(Map objects)
{
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java
index 90752f8edf..815c9d9067 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java
@@ -17,6 +17,7 @@ import org.eclipse.emf.cdo.CDOObject;
import org.eclipse.emf.cdo.CDOState;
import org.eclipse.emf.cdo.common.branch.CDOBranch;
import org.eclipse.emf.cdo.common.branch.CDOBranchPoint;
+import org.eclipse.emf.cdo.common.commit.CDOCommitInfo;
import org.eclipse.emf.cdo.common.id.CDOID;
import org.eclipse.emf.cdo.common.id.CDOIDAndVersion;
import org.eclipse.emf.cdo.common.id.CDOIDMeta;
@@ -1277,6 +1278,33 @@ public class CDOViewImpl extends Lifecycle implements InternalCDOView
}
}
+ public void invalidate(CDOCommitInfo commitInfo)
+ {
+ Set<CDOObject> conflicts = null;
+
+ boolean reviseAndInvalidate = session.options().isPassiveUpdateEnabled();
+ if (reviseAndInvalidate)
+ {
+ conflicts = handleInvalidation(timeStamp, finalDirtyOIDs, finalDetachedObjects, true);
+ }
+
+ boolean skipChangeSubscription = (deltas == null || deltas.size() <= 0)
+ && (detachedObjects == null || detachedObjects.size() <= 0);
+
+ if (!skipChangeSubscription)
+ {
+ handleChangeSubscription(deltas, detachedObjects, true);
+ }
+
+ if (conflicts != null)
+ {
+ InternalCDOTransaction transaction = (InternalCDOTransaction)this;
+ transaction.handleConflicts(conflicts);
+ }
+
+ fireAdaptersNotifiedEvent(commitInfo.getTimeStamp());
+ }
+
/**
* Turns registered objects into proxies and synchronously delivers invalidation events to registered event listeners.
* <p>
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOSession.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOSession.java
index 4e904e429e..c945cfbba5 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOSession.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOSession.java
@@ -11,11 +11,11 @@
package org.eclipse.emf.spi.cdo;
import org.eclipse.emf.cdo.common.branch.CDOBranchPoint;
+import org.eclipse.emf.cdo.common.commit.CDOCommitInfo;
import org.eclipse.emf.cdo.common.id.CDOID;
import org.eclipse.emf.cdo.common.id.CDOIDAndVersion;
import org.eclipse.emf.cdo.common.model.CDOPackageUnit;
import org.eclipse.emf.cdo.common.revision.CDORevision;
-import org.eclipse.emf.cdo.common.revision.delta.CDORevisionDelta;
import org.eclipse.emf.cdo.session.CDORepositoryInfo;
import org.eclipse.emf.cdo.session.CDOSession;
import org.eclipse.emf.cdo.spi.common.CDOCloningContext;
@@ -125,23 +125,18 @@ public interface InternalCDOSession extends CDOSession, PackageProcessor, Packag
/**
* @since 3.0
*/
- public void handleCommitNotification(CDOBranchPoint branchPoint, Collection<CDOPackageUnit> newPackageUnits,
- Set<CDOIDAndVersion> dirtyOIDandVersions, Collection<CDOID> detachedOIDs, Collection<CDORevisionDelta> deltas,
- InternalCDOView excludedView);
+ public void handleCommitNotification(CDOCommitInfo commitInfo);
/**
* @since 3.0
*/
- public void handleSyncResponse(CDOBranchPoint branchPoint, Collection<CDOPackageUnit> newPackageUnits,
- Set<CDOIDAndVersion> dirtyOIDandVersions, Collection<CDOID> detachedOIDs);
+ public void invalidate(CDOCommitInfo commitInfo, InternalCDOTransaction sender);
/**
- * In some cases we need to sync without propagating event. Lock is a good example.
- *
* @since 3.0
*/
- public void reviseRevisions(CDOBranchPoint branchPoint, Set<CDOIDAndVersion> dirtyOIDandVersions,
- Collection<CDOID> detachedOIDs, InternalCDOView excludedView);
+ public void handleSyncResponse(CDOBranchPoint branchPoint, Collection<CDOPackageUnit> newPackageUnits,
+ Set<CDOIDAndVersion> dirtyOIDandVersions, Collection<CDOID> detachedOIDs);
/**
* @since 3.0
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOView.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOView.java
index ef151ce7d6..ea427a1aa2 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOView.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOView.java
@@ -12,6 +12,7 @@ package org.eclipse.emf.spi.cdo;
import org.eclipse.emf.cdo.CDOObject;
import org.eclipse.emf.cdo.CDOState;
+import org.eclipse.emf.cdo.common.commit.CDOCommitInfo;
import org.eclipse.emf.cdo.common.id.CDOID;
import org.eclipse.emf.cdo.common.id.CDOIDAndVersion;
import org.eclipse.emf.cdo.common.id.CDOIDProvider;
@@ -65,6 +66,8 @@ public interface InternalCDOView extends CDOView, CDOIDProvider, ILifecycle
*/
public void handleObjectStateChanged(InternalCDOObject object, CDOState oldState, CDOState newState);
+ public void invalidate(CDOCommitInfo commitInfo);
+
/**
* Returns the conflicting objects.
*

Back to the top