Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.common')
-rw-r--r--plugins/org.eclipse.emf.cdo.common/META-INF/MANIFEST.MF68
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/CDORevisionManager.java4
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/CDORevisionsLoadedEvent.java33
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionManagerImpl.java62
4 files changed, 131 insertions, 36 deletions
diff --git a/plugins/org.eclipse.emf.cdo.common/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.common/META-INF/MANIFEST.MF
index f43900e3b2..3c0340ef51 100644
--- a/plugins/org.eclipse.emf.cdo.common/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.cdo.common/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-SymbolicName: org.eclipse.emf.cdo.common
-Bundle-Version: 4.3.100.qualifier
+Bundle-Version: 4.4.0.qualifier
Bundle-Name: %pluginName
Bundle-Vendor: %providerName
Bundle-Localization: plugin
@@ -14,21 +14,21 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)";visibili
org.eclipse.emf.ecore.change;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
org.eclipse.emf.ecore.xmi;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
org.eclipse.net4j.util;bundle-version="[3.0.0,4.0.0)";visibility:=reexport
-Export-Package: org.eclipse.emf.cdo.common;version="4.3.100",
- org.eclipse.emf.cdo.common.admin;version="4.3.100",
- org.eclipse.emf.cdo.common.branch;version="4.3.100",
- org.eclipse.emf.cdo.common.commit;version="4.3.100",
- org.eclipse.emf.cdo.common.commit.handler;version="4.3.100",
- org.eclipse.emf.cdo.common.id;version="4.3.100",
- org.eclipse.emf.cdo.common.lob;version="4.3.100",
- org.eclipse.emf.cdo.common.lock;version="4.3.100",
- org.eclipse.emf.cdo.common.model;version="4.3.100",
- org.eclipse.emf.cdo.common.protocol;version="4.3.100",
- org.eclipse.emf.cdo.common.revision;version="4.3.100",
- org.eclipse.emf.cdo.common.revision.delta;version="4.3.100",
- org.eclipse.emf.cdo.common.security;version="4.3.100",
- org.eclipse.emf.cdo.common.util;version="4.3.100",
- org.eclipse.emf.cdo.internal.common;version="4.3.100";
+Export-Package: org.eclipse.emf.cdo.common;version="4.4.0",
+ org.eclipse.emf.cdo.common.admin;version="4.4.0",
+ org.eclipse.emf.cdo.common.branch;version="4.4.0",
+ org.eclipse.emf.cdo.common.commit;version="4.4.0",
+ org.eclipse.emf.cdo.common.commit.handler;version="4.4.0",
+ org.eclipse.emf.cdo.common.id;version="4.4.0",
+ org.eclipse.emf.cdo.common.lob;version="4.4.0",
+ org.eclipse.emf.cdo.common.lock;version="4.4.0",
+ org.eclipse.emf.cdo.common.model;version="4.4.0",
+ org.eclipse.emf.cdo.common.protocol;version="4.4.0",
+ org.eclipse.emf.cdo.common.revision;version="4.4.0",
+ org.eclipse.emf.cdo.common.revision.delta;version="4.4.0",
+ org.eclipse.emf.cdo.common.security;version="4.4.0",
+ org.eclipse.emf.cdo.common.util;version="4.4.0",
+ org.eclipse.emf.cdo.internal.common;version="4.4.0";
x-friends:="org.eclipse.emf.cdo.common,
org.eclipse.emf.cdo.common.db,
org.eclipse.emf.cdo,
@@ -38,11 +38,11 @@ Export-Package: org.eclipse.emf.cdo.common;version="4.3.100",
org.eclipse.emf.cdo.ui,
org.eclipse.emf.cdo.tests,
org.eclipse.emf.cdo.server.hibernate",
- org.eclipse.emf.cdo.internal.common.branch;version="4.3.100";
+ org.eclipse.emf.cdo.internal.common.branch;version="4.4.0";
x-friends:="org.eclipse.emf.cdo.tests,
org.eclipse.emf.cdo.server.hibernate",
- org.eclipse.emf.cdo.internal.common.bundle;version="4.3.100";x-internal:=true,
- org.eclipse.emf.cdo.internal.common.commit;version="4.3.100";
+ org.eclipse.emf.cdo.internal.common.bundle;version="4.4.0";x-internal:=true,
+ org.eclipse.emf.cdo.internal.common.commit;version="4.4.0";
x-friends:="org.eclipse.emf.cdo.common,
org.eclipse.emf.cdo.common.db,
org.eclipse.emf.cdo,
@@ -51,7 +51,7 @@ Export-Package: org.eclipse.emf.cdo.common;version="4.3.100",
org.eclipse.emf.cdo.server.net4j,
org.eclipse.emf.cdo.ui,
org.eclipse.emf.cdo.tests",
- org.eclipse.emf.cdo.internal.common.id;version="4.3.100";
+ org.eclipse.emf.cdo.internal.common.id;version="4.4.0";
x-friends:="org.eclipse.emf.cdo.common,
org.eclipse.emf.cdo.common.db,
org.eclipse.emf.cdo,
@@ -62,9 +62,9 @@ Export-Package: org.eclipse.emf.cdo.common;version="4.3.100",
org.eclipse.emf.cdo.tests,
org.eclipse.emf.cdo.admin,
org.eclipse.emf.cdo.server.admin",
- org.eclipse.emf.cdo.internal.common.lock;version="4.3.100";x-internal:=true,
- org.eclipse.emf.cdo.internal.common.messages;version="4.3.100";x-internal:=true,
- org.eclipse.emf.cdo.internal.common.model;version="4.3.100";
+ org.eclipse.emf.cdo.internal.common.lock;version="4.4.0";x-internal:=true,
+ org.eclipse.emf.cdo.internal.common.messages;version="4.4.0";x-internal:=true,
+ org.eclipse.emf.cdo.internal.common.model;version="4.4.0";
x-friends:="org.eclipse.emf.cdo.common,
org.eclipse.emf.cdo.common.db,
org.eclipse.emf.cdo,
@@ -73,7 +73,7 @@ Export-Package: org.eclipse.emf.cdo.common;version="4.3.100",
org.eclipse.emf.cdo.server.net4j,
org.eclipse.emf.cdo.ui,
org.eclipse.emf.cdo.tests",
- org.eclipse.emf.cdo.internal.common.revision;version="4.3.100";
+ org.eclipse.emf.cdo.internal.common.revision;version="4.4.0";
x-friends:="org.eclipse.emf.cdo.common,
org.eclipse.emf.cdo.common.db,
org.eclipse.emf.cdo,
@@ -82,7 +82,7 @@ Export-Package: org.eclipse.emf.cdo.common;version="4.3.100",
org.eclipse.emf.cdo.server.net4j,
org.eclipse.emf.cdo.ui,
org.eclipse.emf.cdo.tests",
- org.eclipse.emf.cdo.internal.common.revision.delta;version="4.3.100";
+ org.eclipse.emf.cdo.internal.common.revision.delta;version="4.4.0";
x-friends:="org.eclipse.emf.cdo.common,
org.eclipse.emf.cdo.common.db,
org.eclipse.emf.cdo,
@@ -91,12 +91,12 @@ Export-Package: org.eclipse.emf.cdo.common;version="4.3.100",
org.eclipse.emf.cdo.server.net4j,
org.eclipse.emf.cdo.ui,
org.eclipse.emf.cdo.tests",
- org.eclipse.emf.cdo.spi.common;version="4.3.100",
- org.eclipse.emf.cdo.spi.common.admin;version="4.3.100",
- org.eclipse.emf.cdo.spi.common.branch;version="4.3.100",
- org.eclipse.emf.cdo.spi.common.commit;version="4.3.100",
- org.eclipse.emf.cdo.spi.common.id;version="4.3.100",
- org.eclipse.emf.cdo.spi.common.lock;version="4.3.100",
- org.eclipse.emf.cdo.spi.common.model;version="4.3.100",
- org.eclipse.emf.cdo.spi.common.protocol;version="4.3.100",
- org.eclipse.emf.cdo.spi.common.revision;version="4.3.100"
+ org.eclipse.emf.cdo.spi.common;version="4.4.0",
+ org.eclipse.emf.cdo.spi.common.admin;version="4.4.0",
+ org.eclipse.emf.cdo.spi.common.branch;version="4.4.0",
+ org.eclipse.emf.cdo.spi.common.commit;version="4.4.0",
+ org.eclipse.emf.cdo.spi.common.id;version="4.4.0",
+ org.eclipse.emf.cdo.spi.common.lock;version="4.4.0",
+ org.eclipse.emf.cdo.spi.common.model;version="4.4.0",
+ org.eclipse.emf.cdo.spi.common.protocol;version="4.4.0",
+ org.eclipse.emf.cdo.spi.common.revision;version="4.4.0"
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/CDORevisionManager.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/CDORevisionManager.java
index 6c8fe226ae..b87b81e235 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/CDORevisionManager.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/CDORevisionManager.java
@@ -18,6 +18,8 @@ import org.eclipse.emf.cdo.common.branch.CDOBranchPoint;
import org.eclipse.emf.cdo.common.branch.CDOBranchVersion;
import org.eclipse.emf.cdo.common.id.CDOID;
+import org.eclipse.net4j.util.event.INotifier;
+
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
@@ -51,7 +53,7 @@ import java.util.List;
* @apiviz.has {@link CDORevisionCache}
* @apiviz.uses {@link CDORevision} - - loads
*/
-public interface CDORevisionManager
+public interface CDORevisionManager extends INotifier
{
/**
* Returns the {@link CDORevision#getEClass() type} of an object if a revision for that object is in the revision
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/CDORevisionsLoadedEvent.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/CDORevisionsLoadedEvent.java
new file mode 100644
index 0000000000..a0a83b63e9
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/CDORevisionsLoadedEvent.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2004-2014 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:
+ * Esteban Dugueperoux - initial API and implementation
+ */
+package org.eclipse.emf.cdo.common.revision;
+
+import org.eclipse.net4j.util.event.IEvent;
+
+import java.util.List;
+
+/**
+ * An {@link IEvent event} fired from a {@link CDORevisionManager revision manager} when a new {@link CDORevision revision} has
+ * been loaded.
+ *
+ * @author Esteban Dugueperoux
+ * @since 4.4
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ */
+public interface CDORevisionsLoadedEvent extends IEvent
+{
+ public CDORevisionManager getSource();
+
+ public List<? extends CDORevision> getPrimaryLoadedRevisions();
+
+ public List<? extends CDORevision> getAdditionalLoadedRevisions();
+}
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 c4be7fc240..5e7007a3b5 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
@@ -21,7 +21,9 @@ import org.eclipse.emf.cdo.common.revision.CDORevision;
import org.eclipse.emf.cdo.common.revision.CDORevisionCache;
import org.eclipse.emf.cdo.common.revision.CDORevisionFactory;
import org.eclipse.emf.cdo.common.revision.CDORevisionHandler;
+import org.eclipse.emf.cdo.common.revision.CDORevisionManager;
import org.eclipse.emf.cdo.common.revision.CDORevisionUtil;
+import org.eclipse.emf.cdo.common.revision.CDORevisionsLoadedEvent;
import org.eclipse.emf.cdo.internal.common.bundle.OM;
import org.eclipse.emf.cdo.spi.common.branch.CDOBranchUtil;
import org.eclipse.emf.cdo.spi.common.revision.DetachedCDORevision;
@@ -33,6 +35,7 @@ import org.eclipse.emf.cdo.spi.common.revision.RevisionInfo;
import org.eclipse.emf.cdo.spi.common.revision.SyntheticCDORevision;
import org.eclipse.net4j.util.ReflectUtil.ExcludeFromDump;
+import org.eclipse.net4j.util.event.Event;
import org.eclipse.net4j.util.lifecycle.Lifecycle;
import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
import org.eclipse.net4j.util.om.trace.ContextTracer;
@@ -290,7 +293,27 @@ public class CDORevisionManagerImpl extends Lifecycle implements InternalCDORevi
List<RevisionInfo> infosToLoad = createRevisionInfos(ids, branchPoint, prefetchDepth, loadOnDemand, infos);
if (infosToLoad != null)
{
- loadRevisions(infosToLoad, branchPoint, referenceChunk, prefetchDepth);
+ List<? extends CDORevision> additionalLoadedRevisions //
+ = loadRevisions(infosToLoad, branchPoint, referenceChunk, prefetchDepth);
+
+ List<? extends CDORevision> primaryLoadedRevisions //
+ = getResultsAndSynthetics(infosToLoad.toArray(new RevisionInfo[infosToLoad.size()]), null);
+
+ if (primaryLoadedRevisions != null && !primaryLoadedRevisions.isEmpty() || additionalLoadedRevisions != null
+ && !additionalLoadedRevisions.isEmpty())
+ {
+ if (primaryLoadedRevisions == null)
+ {
+ primaryLoadedRevisions = Collections.emptyList();
+ }
+
+ if (additionalLoadedRevisions == null)
+ {
+ additionalLoadedRevisions = Collections.emptyList();
+ }
+
+ fireEvent(new RevisionsLoadedEvent(this, primaryLoadedRevisions, additionalLoadedRevisions));
+ }
}
return getResultsAndSynthetics(infos, synthetics);
@@ -554,4 +577,41 @@ public class CDORevisionManagerImpl extends Lifecycle implements InternalCDORevi
// Reached main branch
return null;
}
+
+ /**
+ * @author Esteban Dugueperoux
+ */
+ private static class RevisionsLoadedEvent extends Event implements CDORevisionsLoadedEvent
+ {
+ private static final long serialVersionUID = 1L;
+
+ private List<? extends CDORevision> primaryLoadedRevisions;
+
+ private List<? extends CDORevision> additionalLoadedRevisions;
+
+ public RevisionsLoadedEvent(CDORevisionManager revisionManager, List<? extends CDORevision> primaryLoadedRevisions,
+ List<? extends CDORevision> additionalLoadedRevisions)
+ {
+ super(revisionManager);
+ this.primaryLoadedRevisions = primaryLoadedRevisions;
+ this.additionalLoadedRevisions = additionalLoadedRevisions;
+ }
+
+ @Override
+ public CDORevisionManager getSource()
+ {
+ return (CDORevisionManager)super.getSource();
+ }
+
+ public List<? extends CDORevision> getPrimaryLoadedRevisions()
+ {
+ return primaryLoadedRevisions;
+ }
+
+ public List<? extends CDORevision> getAdditionalLoadedRevisions()
+ {
+ return additionalLoadedRevisions;
+ }
+ }
+
}

Back to the top