Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2013-04-29 06:37:58 +0000
committerEike Stepper2013-04-29 06:37:58 +0000
commitf592216a60f85cae1b7f74c9f15f4e17d56e5757 (patch)
tree5fddd1825024cc10bea199520ec5617e18b4a868 /plugins
parent6db31b6c3acaf73feb790656422d6fb4e93b89ed (diff)
downloadcdo-f592216a60f85cae1b7f74c9f15f4e17d56e5757.tar.gz
cdo-f592216a60f85cae1b7f74c9f15f4e17d56e5757.tar.xz
cdo-f592216a60f85cae1b7f74c9f15f4e17d56e5757.zip
[396804] CDOMergingConflictResolver tests
https://bugs.eclipse.org/bugs/show_bug.cgi?id=396804
Diffstat (limited to 'plugins')
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllConfigs.java17
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ConflictResolverExtendedTest.java1
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java15
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOMergingConflictResolver.java3
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/DefaultCDOMerger.java72
5 files changed, 66 insertions, 42 deletions
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllConfigs.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllConfigs.java
index f4079adadb..01e6e07cea 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllConfigs.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllConfigs.java
@@ -18,11 +18,19 @@ import org.eclipse.emf.cdo.tests.config.impl.ConfigTestSuite;
import java.util.List;
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
/**
* @author Eike Stepper
*/
-public abstract class AllConfigs extends ConfigTestSuite
+public class AllConfigs extends ConfigTestSuite
{
+ public static Test suite()
+ {
+ return new AllConfigs().getTestSuite();
+ }
+
public List<Class<? extends ConfigTest>> getBugzillaTests()
{
return getTestClasses(OM.BUNDLE, "org.eclipse.emf.cdo.tests.bugzilla");
@@ -92,6 +100,7 @@ public abstract class AllConfigs extends ConfigTestSuite
testClasses.add(FeatureMapTest.class);
testClasses.add(AdapterManagerTest.class);
testClasses.add(ConflictResolverTest.class);
+ testClasses.add(ConflictResolverExtendedTest.class);
testClasses.add(ConflictResolverMergingTest.class);
testClasses.add(DynamicXSDTest.class);
testClasses.add(SetFeatureTest.class);
@@ -114,4 +123,10 @@ public abstract class AllConfigs extends ConfigTestSuite
// Bugzilla verifications
testClasses.addAll(getBugzillaTests());
}
+
+ @Override
+ protected void initConfigSuites(TestSuite parent)
+ {
+ addScenario(parent, COMBINED, MEM_BRANCHES, JVM, NATIVE);
+ }
}
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ConflictResolverExtendedTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ConflictResolverExtendedTest.java
index 8098f6d076..989290a257 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ConflictResolverExtendedTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ConflictResolverExtendedTest.java
@@ -186,7 +186,6 @@ public class ConflictResolverExtendedTest extends AbstractCDOTest
addConflictResolver(thatTransaction);
Root thisRoot = getTestModelRoot(thisTransaction);
- // dumpAllContents(thisRoot);
EList<BaseObject> thisList = thisRoot.getListB();
ContainmentObject thisObject = (ContainmentObject)thisList.get(0);
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java
index 3407d3b58f..b1ff5a47e4 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java
@@ -1109,16 +1109,21 @@ public class CDOObjectImpl extends MinimalEStoreEObjectImpl implements InternalC
@Override
public String toString()
{
- EClass eClass = eClass();
- String name = eClass.getName();
+ String str = eClass().getName();
CDOID id = cdoID();
- if (id == null)
+ if (id != null)
+ {
+ str += "@" + id;
+ }
+
+ CDOState cdoState = cdoState();
+ if (cdoState != CDOState.CLEAN)
{
- return name + "?"; //$NON-NLS-1$
+ str += "[" + cdoState + "]";
}
- return name + "@" + id; //$NON-NLS-1$
+ return str;
}
@Override
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 7e397e9c0e..0abec597e0 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
@@ -91,7 +91,8 @@ public class CDOMergingConflictResolver extends AbstractChangeSetsConflictResolv
}
catch (ConflictException ex)
{
- result = ex.getResult();
+ return;
+ // result = ex.getResult();
}
InternalCDOTransaction transaction = (InternalCDOTransaction)getTransaction();
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/DefaultCDOMerger.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/DefaultCDOMerger.java
index 9bf675781a..329d639462 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/DefaultCDOMerger.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/DefaultCDOMerger.java
@@ -60,16 +60,6 @@ import java.util.Set;
*/
public class DefaultCDOMerger implements CDOMerger
{
- /**
- * @since 4.2
- */
- protected static final int SOURCE = 0;
-
- /**
- * @since 4.2
- */
- protected static final int TARGET = 1;
-
private final ResolutionPreference resolutionPreference;
private CDOChangeSetData result;
@@ -380,14 +370,6 @@ public class DefaultCDOMerger implements CDOMerger
}
/**
- * @since 4.2
- */
- protected static int other(int side)
- {
- return TARGET - side;
- }
-
- /**
* Enumerates the possible resolution preferences that can be used with a {@link DefaultCDOMerger}.
*
* @since 4.2
@@ -736,19 +718,17 @@ public class DefaultCDOMerger implements CDOMerger
Map<Object, List<Element>> additions = new HashMap<Object, List<Element>>();
Map<CDOFeatureDelta, Element> allElements = new HashMap<CDOFeatureDelta, Element>();
- for (int side = SOURCE; side <= TARGET; side++)
- {
- applyChangesToWorkList(side, listPerSide, changesPerSide, allElements, additions);
- }
+ applyChangesToWorkList(Side.SOURCE, listPerSide, changesPerSide, allElements, additions);
+ applyChangesToWorkList(Side.TARGET, listPerSide, changesPerSide, allElements, additions);
// Pick changes from source and target sides into the merge result
CDOListFeatureDelta result = new CDOListFeatureDeltaImpl(feature, originSize);
List<CDOFeatureDelta> resultChanges = result.getListChanges();
- for (int side = SOURCE; side <= TARGET; side++)
- {
- pickChangesIntoResult(side, feature, ancestorList, changesPerSide, allElements, additions, resultChanges);
- }
+ pickChangesIntoResult(Side.SOURCE, feature, ancestorList, changesPerSide, allElements, additions,
+ resultChanges);
+ pickChangesIntoResult(Side.TARGET, feature, ancestorList, changesPerSide, allElements, additions,
+ resultChanges);
// if (!targetChanges.isEmpty() && !sourceChanges.isEmpty())
// {
@@ -785,11 +765,11 @@ public class DefaultCDOMerger implements CDOMerger
targetList.add(element);
}
- listPerSide.set(SOURCE, sourceList);
- listPerSide.set(TARGET, targetList);
+ listPerSide.set(Side.SOURCE, sourceList);
+ listPerSide.set(Side.TARGET, targetList);
}
- private void applyChangesToWorkList(int side, PerSide<BasicEList<Element>> listPerSide,
+ private void applyChangesToWorkList(Side side, PerSide<BasicEList<Element>> listPerSide,
PerSide<List<CDOFeatureDelta>> changesPerSide, Map<CDOFeatureDelta, Element> allElements,
Map<Object, List<Element>> additions)
{
@@ -849,6 +829,8 @@ public class DefaultCDOMerger implements CDOMerger
case CLEAR:
case UNSET:
+ int removeme;
+ System.out.println();
default:
throw new IllegalStateException("Illegal change type: " + changeType);
@@ -868,7 +850,7 @@ public class DefaultCDOMerger implements CDOMerger
additionsList.add(element);
}
- private void pickChangesIntoResult(int side, EStructuralFeature feature, BasicEList<Element> ancestorList,
+ private void pickChangesIntoResult(Side side, EStructuralFeature feature, BasicEList<Element> ancestorList,
PerSide<List<CDOFeatureDelta>> changesPerSide, Map<CDOFeatureDelta, Element> allElements,
Map<Object, List<Element>> additions, List<CDOFeatureDelta> result)
{
@@ -1112,6 +1094,28 @@ public class DefaultCDOMerger implements CDOMerger
}
/**
+ * @since 4.2
+ */
+ protected static Side other(Side side)
+ {
+ if (side == Side.SOURCE)
+ {
+ return Side.TARGET;
+ }
+
+ return Side.SOURCE;
+ }
+
+ /**
+ * @author Eike Stepper
+ * @since 4.2
+ */
+ public static enum Side
+ {
+ SOURCE, TARGET
+ }
+
+ /**
* Holds data for the source and target sides.
*
* @author Eike Stepper
@@ -1133,9 +1137,9 @@ public class DefaultCDOMerger implements CDOMerger
this.target = target;
}
- public final T get(int side)
+ public final T get(Side side)
{
- if (side == SOURCE)
+ if (side == Side.SOURCE)
{
return source;
}
@@ -1143,9 +1147,9 @@ public class DefaultCDOMerger implements CDOMerger
return target;
}
- public final void set(int side, T value)
+ public final void set(Side side, T value)
{
- if (side == SOURCE)
+ if (side == Side.SOURCE)
{
this.source = value;
}

Back to the top