From b0ed914d7cb22b48db305265874df4d23bd93db7 Mon Sep 17 00:00:00 2001 From: Eike Stepper Date: Fri, 16 Apr 2010 10:32:24 +0000 Subject: [256936] Support for Offline Mode https://bugs.eclipse.org/bugs/show_bug.cgi?id=256936 --- .../server/syncing/FailoverParticipant.java | 15 ++++++++++++++- .../cdo/internal/server/syncing/OfflineClone.java | 21 +++++++++++++++++++++ .../server/syncing/SynchronizableRepository.java | 21 ++++++--------------- 3 files changed, 41 insertions(+), 16 deletions(-) (limited to 'plugins') diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/syncing/FailoverParticipant.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/syncing/FailoverParticipant.java index 9959766232..759f0d9b9d 100644 --- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/syncing/FailoverParticipant.java +++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/syncing/FailoverParticipant.java @@ -50,6 +50,19 @@ public class FailoverParticipant extends SynchronizableRepository super.changingType(oldType, newType); } + @Override + protected void initRootResource() + { + if (getType() == BACKUP) + { + super.initRootResource(); + } + else + { + doInitRootResource(); + } + } + protected void doStartSynchronization() { super.startSynchronization(); @@ -90,6 +103,6 @@ public class FailoverParticipant extends SynchronizableRepository } } - return super.createCommitContext(transaction); + return createNormalCommitContext(transaction); } } diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/syncing/OfflineClone.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/syncing/OfflineClone.java index 11dc7c1e86..a3c3b97d1c 100644 --- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/syncing/OfflineClone.java +++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/syncing/OfflineClone.java @@ -10,6 +10,10 @@ */ package org.eclipse.emf.cdo.internal.server.syncing; +import org.eclipse.emf.cdo.common.branch.CDOBranch; +import org.eclipse.emf.cdo.spi.server.InternalCommitContext; +import org.eclipse.emf.cdo.spi.server.InternalTransaction; + /** * @author Eike Stepper */ @@ -31,4 +35,21 @@ public class OfflineClone extends SynchronizableRepository { throw new UnsupportedOperationException(); } + + @Override + public InternalCommitContext createCommitContext(InternalTransaction transaction) + { + CDOBranch branch = transaction.getBranch(); + if (branch.isLocal()) + { + return createNormalCommitContext(transaction); + } + + if (getState() != ONLINE) + { + return createBranchingCommitContext(transaction, branch); + } + + return createWriteThroughCommitContext(transaction); + } } diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/syncing/SynchronizableRepository.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/syncing/SynchronizableRepository.java index 919609f6ae..ecc11288b1 100644 --- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/syncing/SynchronizableRepository.java +++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/syncing/SynchronizableRepository.java @@ -193,21 +193,7 @@ public abstract class SynchronizableRepository extends Repository.Default implem } @Override - public InternalCommitContext createCommitContext(InternalTransaction transaction) - { - CDOBranch branch = transaction.getBranch(); - if (branch.isLocal()) - { - return createNormalCommitContext(transaction); - } - - if (getState() != ONLINE) - { - return createBranchingCommitContext(transaction, branch); - } - - return createWriteThroughCommitContext(transaction); - } + public abstract InternalCommitContext createCommitContext(InternalTransaction transaction); protected InternalCommitContext createNormalCommitContext(InternalTransaction transaction) { @@ -300,6 +286,11 @@ public abstract class SynchronizableRepository extends Repository.Default implem } } + protected void doInitRootResource() + { + super.initRootResource(); + } + @Override protected void initRootResource() { -- cgit v1.2.3