diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/CDOServerExporter.java')
-rw-r--r-- | plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/CDOServerExporter.java | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/CDOServerExporter.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/CDOServerExporter.java index 38f76bfd27..dc8f036b9f 100644 --- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/CDOServerExporter.java +++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/CDOServerExporter.java @@ -32,6 +32,7 @@ import org.eclipse.emf.cdo.spi.common.commit.InternalCDOCommitInfoManager; 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.emf.cdo.spi.common.revision.DetachedCDORevision; import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevision; import org.eclipse.emf.cdo.spi.server.InternalRepository; import org.eclipse.emf.cdo.spi.server.InternalSession; @@ -184,7 +185,7 @@ public abstract class CDOServerExporter<OUT> protected void exportRevisions(final OUT out, CDOBranch branch) throws Exception { - repository.handleRevisions(null, branch, true, CDOBranchPoint.INVALID_DATE, false, new CDORevisionHandler.Filtered.Undetached(new CDORevisionHandler() + repository.handleRevisions(null, branch, true, CDOBranchPoint.INVALID_DATE, false, new CDORevisionHandler() { public boolean handleRevision(CDORevision revision) { @@ -198,7 +199,7 @@ public abstract class CDOServerExporter<OUT> throw WrappedException.wrap(ex); } } - })); + }); } protected abstract void exportRevision(OUT out, CDORevision revision) throws Exception; @@ -319,6 +320,11 @@ public abstract class CDOServerExporter<OUT> public static final String REVISION_REVISED = "revised"; + /** + * @since 4.7 + */ + public static final String REVISION_DETACHED = "detached"; + public static final String REVISION_RESOURCE = "resource"; public static final String REVISION_CONTAINER = "container"; @@ -497,6 +503,7 @@ public abstract class CDOServerExporter<OUT> protected void exportRevision(XMLOutput out, CDORevision revision) throws Exception { InternalCDORevision rev = (InternalCDORevision)revision; + boolean detached = rev instanceof DetachedCDORevision; out.element(REVISION); out.attribute(REVISION_ID, str(rev.getID())); @@ -510,6 +517,12 @@ public abstract class CDOServerExporter<OUT> out.attribute(REVISION_REVISED, revised); } + if (detached) + { + out.attribute(REVISION_DETACHED, true); + return; + } + CDOID resourceID = rev.getResourceID(); if (!CDOIDUtil.isNull(resourceID)) { |