diff options
author | Eike Stepper | 2010-07-07 16:55:10 +0000 |
---|---|---|
committer | Eike Stepper | 2010-07-07 16:55:10 +0000 |
commit | c4d3ed8b70f2118652389b604a48c8846866f0ee (patch) | |
tree | 371a60f9a72c160a7e8ee7868ab2ab6b02a60c21 /plugins/org.eclipse.emf.cdo/src | |
parent | e226589b37d964e9d58de60b4ecdc8a66f52a96f (diff) | |
download | cdo-c4d3ed8b70f2118652389b604a48c8846866f0ee.tar.gz cdo-c4d3ed8b70f2118652389b604a48c8846866f0ee.tar.xz cdo-c4d3ed8b70f2118652389b604a48c8846866f0ee.zip |
[319090] Provide a CDOConflictResolver that uses a CDOMerger
https://bugs.eclipse.org/bugs/show_bug.cgi?id=319090
Diffstat (limited to 'plugins/org.eclipse.emf.cdo/src')
18 files changed, 26 insertions, 144 deletions
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/session/CDOSession.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/session/CDOSession.java index 6f056bad0e..2fc093a3a1 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/session/CDOSession.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/session/CDOSession.java @@ -197,7 +197,7 @@ public interface CDOSession extends CDOCommonSession, CDOUpdatable, IContainer<C public CDOView[] getViews(); /** - * @since 3.1 + * @since 4.0 */ public CDOView getView(int viewID); diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOConflictResolver2.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOConflictResolver2.java index a64abc6ba0..32c698ab23 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOConflictResolver2.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOConflictResolver2.java @@ -23,7 +23,7 @@ import java.util.Map; /** * @author Eike Stepper - * @since 3.1 + * @since 4.0 */ public interface CDOConflictResolver2 extends CDOConflictResolver { diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOPushTransaction.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOPushTransaction.java index 977d2c5f16..dc37690940 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOPushTransaction.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOPushTransaction.java @@ -339,7 +339,7 @@ public class CDOPushTransaction extends Notifier implements CDOTransaction } /** - * @since 3.1 + * @since 4.0 */ public CDOChangeSetData getChangeSetData() { @@ -519,12 +519,6 @@ public class CDOPushTransaction extends Notifier implements CDOTransaction delegate.removeTransactionHandler(handler); } - @Deprecated - public void resolveConflicts(CDOConflictResolver... resolver) - { - delegate.resolveConflicts(resolver); - } - public CDOChangeSetData merge(CDOBranchPoint source, CDOMerger merger) { return delegate.merge(source, merger); diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOSavepoint.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOSavepoint.java index d62d013278..25e9bc11ec 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOSavepoint.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOSavepoint.java @@ -105,7 +105,7 @@ public interface CDOSavepoint extends CDOUserSavepoint, CDOChangeSetDataProvider public Map<CDOID, CDORevisionDelta> getAllRevisionDeltas(); /** - * @since 3.1 + * @since 4.0 */ public CDOChangeSetData getAllChangeSetData(); } diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOTransaction.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOTransaction.java index 61dea7a9a7..7abc20d213 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOTransaction.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOTransaction.java @@ -60,9 +60,6 @@ public interface CDOTransaction extends CDOView, CDOUserTransaction, CDOChangeSe public Set<CDOObject> getConflicts(); - @Deprecated - public void resolveConflicts(CDOConflictResolver... resolver); - /** * @since 3.0 */ diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/view/CDOViewInvalidationEvent.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/view/CDOViewInvalidationEvent.java index 194919e8d9..e20c6a0b47 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/view/CDOViewInvalidationEvent.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/view/CDOViewInvalidationEvent.java @@ -48,7 +48,7 @@ public interface CDOViewInvalidationEvent extends CDOViewEvent * Returns a map with the {@link CDORevisionDelta change deltas} per object. Note that this map may contain object/ * <code>null</code> mappings, if the delta is not available! * - * @since 3.1 + * @since 4.0 */ public Map<CDOObject, CDORevisionDelta> getRevisionDeltas(); diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectReferenceImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectReferenceImpl.java index 2e73c2818e..fc0e5dc5e8 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectReferenceImpl.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectReferenceImpl.java @@ -22,7 +22,7 @@ import org.eclipse.emf.ecore.EReference; /** * @author Eike Stepper - * @since 3.1 + * @since 4.0 */ public class CDOObjectReferenceImpl implements CDOObjectReference { diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOStore.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOStore.java index f8da93505e..bcde199751 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOStore.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOStore.java @@ -123,8 +123,8 @@ public final class CDOStore implements EStore } InternalCDORevision revision = getRevisionForReading(cdoObject); - return (InternalEObject)convertIdToObject(cdoObject.cdoView(), cdoObject, EcorePackage.eINSTANCE - .eContainingFeature(), -1, revision.getContainerID()); + return (InternalEObject)convertIdToObject(cdoObject.cdoView(), cdoObject, + EcorePackage.eINSTANCE.eContainingFeature(), -1, revision.getContainerID()); } public int getContainingFeatureID(InternalEObject eObject) @@ -151,11 +151,10 @@ public final class CDOStore implements EStore } InternalCDORevision revision = getRevisionForReading(cdoObject); - return (InternalEObject)convertIdToObject(cdoObject.cdoView(), cdoObject, EcorePackage.eINSTANCE - .eContainingFeature(), -1, revision.getResourceID()); + return (InternalEObject)convertIdToObject(cdoObject.cdoView(), cdoObject, + EcorePackage.eINSTANCE.eContainingFeature(), -1, revision.getResourceID()); } - @Deprecated public EStructuralFeature getContainingFeature(InternalEObject eObject) { throw new UnsupportedOperationException("Use getContainingFeatureID() instead"); //$NON-NLS-1$ 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 0142b79d57..8cfe3683ed 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 @@ -99,6 +99,7 @@ import org.eclipse.net4j.util.options.IOptionsContainer; import org.eclipse.net4j.util.options.OptionsEvent; import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.EStructuralFeature; import org.eclipse.emf.ecore.resource.ResourceSet; @@ -1535,14 +1536,14 @@ public abstract class CDOSessionImpl extends Container<CDOView> implements Inter } public CommitTransactionResult commitDelegation(CDOBranch branch, String userID, String comment, - CDOCommitData commitData, OMMonitor monitor) + CDOCommitData commitData, Map<CDOID, EClass> detachedObjectTypes, OMMonitor monitor) { int attempt = 0; for (;;) { try { - return delegate.commitDelegation(branch, userID, comment, commitData, monitor); + return delegate.commitDelegation(branch, userID, comment, commitData, detachedObjectTypes, monitor); } catch (Exception ex) { 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 bb3c324491..b778fcedee 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 @@ -303,21 +303,6 @@ public class CDOTransactionImpl extends CDOViewImpl implements InternalCDOTransa return conflicts; } - /** - * @since 2.0 - */ - @Deprecated - public void resolveConflicts(CDOConflictResolver... resolvers) - { - throw new UnsupportedOperationException(); - } - - @Deprecated - public void handleConflicts(Set<CDOObject> conflicts) - { - throw new UnsupportedOperationException(); - } - public CDOChangeSetData getChangeSetData() { checkActive(); diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/AbstractChangeSetsConflictResolver.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/AbstractChangeSetsConflictResolver.java index b68207aa9a..33f57a8949 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/AbstractChangeSetsConflictResolver.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/AbstractChangeSetsConflictResolver.java @@ -23,7 +23,7 @@ import org.eclipse.emf.cdo.transaction.CDOTransactionHandler; /** * @author Eike Stepper - * @since 3.1 + * @since 4.0 */ public abstract class AbstractChangeSetsConflictResolver extends AbstractConflictResolver { diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/AbstractConflictResolver.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/AbstractConflictResolver.java index 32ac127da9..c8c5268804 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/AbstractConflictResolver.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/AbstractConflictResolver.java @@ -13,11 +13,9 @@ package org.eclipse.emf.spi.cdo; import org.eclipse.emf.cdo.transaction.CDOConflictResolver; import org.eclipse.emf.cdo.transaction.CDOTransaction; - - /** * @author Eike Stepper - * @since 3.1 + * @since 4.0 */ public abstract class AbstractConflictResolver implements CDOConflictResolver { diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/AbstractObjectConflictResolver.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/AbstractObjectConflictResolver.java index 0c297e8ade..ab7babea79 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/AbstractObjectConflictResolver.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/AbstractObjectConflictResolver.java @@ -10,7 +10,6 @@ **************************************************************************/ package org.eclipse.emf.spi.cdo; -import org.eclipse.emf.cdo.CDODeltaNotification; import org.eclipse.emf.cdo.CDOObject; import org.eclipse.emf.cdo.CDOState; import org.eclipse.emf.cdo.common.id.CDOID; @@ -40,8 +39,6 @@ import org.eclipse.net4j.util.event.IEvent; import org.eclipse.net4j.util.event.IListener; import org.eclipse.emf.common.notify.Adapter; -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.impl.AdapterImpl; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EStructuralFeature; @@ -83,7 +80,7 @@ public abstract class AbstractObjectConflictResolver extends AbstractConflictRes } /** - * @since 3.1 + * @since 4.0 */ public void resolveConflicts(Map<CDOObject, Pair<CDORevision, CDORevisionDelta>> conflicts, List<CDORevisionDelta> allRemoteDeltas) @@ -104,7 +101,7 @@ public abstract class AbstractObjectConflictResolver extends AbstractConflictRes * conflict, it may be necessary to adjust the notification that will be sent to the adapters in the current * transaction. This can be achieved by adjusting the {@link CDORevisionDelta} in <code>deltas</code>. * - * @since 3.1 + * @since 4.0 */ protected void resolveConflict(CDOObject conflict, CDORevision oldRemoteRevision, CDORevisionDelta localDelta, CDORevisionDelta remoteDelta, List<CDORevisionDelta> allRemoteDeltas) @@ -254,92 +251,7 @@ public abstract class AbstractObjectConflictResolver extends AbstractConflictRes /** * @author Eike Stepper - * @since 2.0 - */ - @Deprecated - public static class ChangeSubscriptionAdapter extends AdapterImpl - { - private Set<CDOObject> notifiers = new HashSet<CDOObject>(); - - private Map<CDOObject, List<CDORevisionDelta>> deltas = new HashMap<CDOObject, List<CDORevisionDelta>>(); - - public ChangeSubscriptionAdapter() - { - } - - public List<CDORevisionDelta> getRevisionDeltas(CDOObject notifier) - { - List<CDORevisionDelta> list = deltas.get(CDOUtil.getEObject(notifier)); - if (list == null) - { - return Collections.emptyList(); - } - - return list; - } - - public Set<CDOObject> getNotifiers() - { - return notifiers; - } - - public Map<CDOObject, List<CDORevisionDelta>> getDeltas() - { - return deltas; - } - - public void attach(CDOObject notifier) - { - if (notifiers.add(notifier)) - { - notifier.eAdapters().add(this); - } - } - - public void reset() - { - for (CDOObject notifier : notifiers) - { - notifier.eAdapters().remove(this); - } - - notifiers.clear(); - deltas.clear(); - } - - @Override - public void notifyChanged(Notification msg) - { - try - { - if (msg instanceof CDODeltaNotification) - { - CDODeltaNotification deltaNotification = (CDODeltaNotification)msg; - Object notifier = deltaNotification.getNotifier(); - if (!deltaNotification.hasNext() && notifiers.contains(notifier)) - { - CDORevisionDelta revisionDelta = deltaNotification.getRevisionDelta(); - List<CDORevisionDelta> list = deltas.get(notifier); - if (list == null) - { - list = new ArrayList<CDORevisionDelta>(1); - deltas.put(CDOUtil.getCDOObject((EObject)notifier), list); - } - - list.add(revisionDelta); - } - } - } - catch (Exception ex) - { - OM.LOG.error(ex); - } - } - } - - /** - * @author Eike Stepper - * @since 3.1 + * @since 4.0 */ public static class RevisionDeltaCollector implements IListener { diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOChangeSubscriptionAdapter.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOChangeSubscriptionAdapter.java index 4cd6f7dcec..55913c119f 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOChangeSubscriptionAdapter.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOChangeSubscriptionAdapter.java @@ -13,7 +13,7 @@ import java.util.Set; /** * @author Eike Stepper - * @since 3.1 + * @since 4.0 */ public class CDOChangeSubscriptionAdapter extends AdapterImpl { diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOMergingConflictResolver.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOMergingConflictResolver.java index 00797390cd..87e64e7ade 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOMergingConflictResolver.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOMergingConflictResolver.java @@ -19,7 +19,7 @@ import java.util.Set; /** * @author Eike Stepper - * @since 3.1 + * @since 4.0 */ public class CDOMergingConflictResolver extends AbstractChangeSetsConflictResolver { diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOSessionInvalidationAggregator.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOSessionInvalidationAggregator.java index 32569de781..4005769f81 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOSessionInvalidationAggregator.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOSessionInvalidationAggregator.java @@ -21,7 +21,7 @@ import org.eclipse.net4j.util.event.IListener; /** * @author Eike Stepper - * @since 3.1 + * @since 4.0 */ public class CDOSessionInvalidationAggregator { diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOSessionProtocol.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOSessionProtocol.java index 057590a364..e52fddd892 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOSessionProtocol.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOSessionProtocol.java @@ -43,6 +43,7 @@ import org.eclipse.emf.cdo.view.CDOView; import org.eclipse.net4j.util.concurrent.IRWLockManager.LockType; import org.eclipse.net4j.util.om.monitor.OMMonitor; +import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EStructuralFeature; import org.eclipse.emf.ecore.InternalEObject; import org.eclipse.emf.spi.cdo.InternalCDOXATransaction.InternalCDOXACommitContext; @@ -139,10 +140,10 @@ public interface CDOSessionProtocol extends CDOProtocol, PackageLoader, BranchLo CDOIDProvider idProvider, CDOCommitData commitData, OMMonitor monitor); /** - * @since 3.0 + * @since 4.0 */ public CommitTransactionResult commitDelegation(CDOBranch branch, String userID, String comment, - CDOCommitData commitData, OMMonitor monitor); + CDOCommitData commitData, Map<CDOID, EClass> detachedObjectTypes, OMMonitor monitor); /** * @since 3.0 @@ -235,7 +236,7 @@ public interface CDOSessionProtocol extends CDOProtocol, PackageLoader, BranchLo private List<InternalCDOPackageUnit> packageUnits = new ArrayList<InternalCDOPackageUnit>(); /** - * @since 3.1 + * @since 4.0 */ public OpenSessionResult(int sessionID, String userID, String repositoryUUID, CDOCommonRepository.Type repositoryType, CDOCommonRepository.State repositoryState, String storeType, @@ -335,7 +336,7 @@ public interface CDOSessionProtocol extends CDOProtocol, PackageLoader, BranchLo } /** - * @since 3.1 + * @since 4.0 */ public boolean isRepositoryEnsuringReferentialIntegrity() { diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOTransaction.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOTransaction.java index b107bd691e..4be5a9706c 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOTransaction.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOTransaction.java @@ -11,7 +11,6 @@ */ package org.eclipse.emf.spi.cdo; -import org.eclipse.emf.cdo.CDOObject; import org.eclipse.emf.cdo.common.commit.CDOChangeSetData; import org.eclipse.emf.cdo.common.commit.CDOCommitData; import org.eclipse.emf.cdo.common.id.CDOID; @@ -29,7 +28,6 @@ import org.eclipse.emf.spi.cdo.CDOSessionProtocol.CommitTransactionResult; import java.util.List; import java.util.Map; -import java.util.Set; /** * @author Simon McDuff @@ -83,9 +81,6 @@ public interface InternalCDOTransaction extends CDOTransaction, InternalCDOUserT public void setConflict(InternalCDOObject object); - @Deprecated - public void handleConflicts(Set<CDOObject> conflicts); - /** * @since 3.0 */ |