Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2010-03-05 16:46:07 +0000
committerEike Stepper2010-03-05 16:46:07 +0000
commitc617025ca0efff766604bdee27aa248b2651bd5c (patch)
treeb423e65f7e98919fb29b8b381ce456c9ab09c968 /plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/MergingTest.java
parentc5e013ba9c2b715ed11b9e7c2c11b5dee37fe8b5 (diff)
downloadcdo-c617025ca0efff766604bdee27aa248b2651bd5c.tar.gz
cdo-c617025ca0efff766604bdee27aa248b2651bd5c.tar.xz
cdo-c617025ca0efff766604bdee27aa248b2651bd5c.zip
[256936] Support for Offline Mode
https://bugs.eclipse.org/bugs/show_bug.cgi?id=256936
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/MergingTest.java')
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/MergingTest.java107
1 files changed, 107 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/MergingTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/MergingTest.java
new file mode 100644
index 0000000000..cc8e73e393
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/MergingTest.java
@@ -0,0 +1,107 @@
+/**
+ * Copyright (c) 2004 - 2010 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.tests;
+
+import org.eclipse.emf.cdo.common.branch.CDOBranch;
+import org.eclipse.emf.cdo.common.revision.CDORevision;
+import org.eclipse.emf.cdo.common.revision.CDORevisionUtil;
+import org.eclipse.emf.cdo.eresource.CDOResource;
+import org.eclipse.emf.cdo.internal.server.mem.MEMStore;
+import org.eclipse.emf.cdo.server.IRepository;
+import org.eclipse.emf.cdo.server.IStore;
+import org.eclipse.emf.cdo.session.CDOSession;
+import org.eclipse.emf.cdo.transaction.CDOMerger;
+import org.eclipse.emf.cdo.transaction.CDOTransaction;
+
+import org.eclipse.emf.spi.cdo.DefaultCDOMerger;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author Eike Stepper
+ */
+public class MergingTest extends AbstractCDOTest
+{
+ @Override
+ public synchronized Map<String, Object> getTestProperties()
+ {
+ Map<String, Object> testProperties = super.getTestProperties();
+ testProperties.put(IRepository.Props.SUPPORTING_AUDITS, "true");
+ testProperties.put(IRepository.Props.SUPPORTING_BRANCHES, "true");
+ return testProperties;
+ }
+
+ public void testCreateBranch() throws Exception
+ {
+ CDOMerger merger = new DefaultCDOMerger.PerFeature();
+
+ CDOSession session = openSession();
+ CDOBranch mainBranch = session.getBranchManager().getMainBranch();
+ CDOTransaction transaction = session.openTransaction(mainBranch);
+
+ sleep(10);
+ CDOResource resource = transaction.createResource("/res");
+ resource.getContents().add(getModel1Factory().createCompany());
+ resource.getContents().add(getModel1Factory().createCompany());
+ resource.getContents().add(getModel1Factory().createCompany());
+ resource.getContents().add(getModel1Factory().createCompany());
+ resource.getContents().add(getModel1Factory().createCompany());
+ long time1 = transaction.commit().getTimeStamp();
+ CDOBranch source1 = mainBranch.createBranch("source1", time1);
+
+ sleep(10);
+ resource.getContents().add(getModel1Factory().createCompany());
+ resource.getContents().add(getModel1Factory().createCompany());
+ resource.getContents().add(getModel1Factory().createCompany());
+ long time2 = transaction.commit().getTimeStamp();
+ CDOBranch source2 = mainBranch.createBranch("source2", time2);
+
+ sleep(10);
+ resource.getContents().add(getModel1Factory().createCompany());
+ resource.getContents().add(getModel1Factory().createCompany());
+ resource.getContents().add(getModel1Factory().createCompany());
+ long time3 = transaction.commit().getTimeStamp();
+ CDOBranch source3 = mainBranch.createBranch("source3", time3);
+
+ sleep(10);
+
+ CDOTransaction t1 = session.openTransaction(mainBranch);
+ t1.merge(source1.getHead(), merger);
+
+ session.close();
+ }
+
+ private void dumpAll(CDOSession session)
+ {
+ IStore store = getRepository().getStore();
+ if (store instanceof MEMStore)
+ {
+ MEMStore memStore = (MEMStore)store;
+ dump("MEMStore", memStore.getAllRevisions());
+ }
+
+ // dump("ServerCache", getRepository().getRevisionManager().getCache().getAllRevisions());
+ // dump("ClientCache", ((InternalCDOSession)session).getRevisionManager().getCache().getAllRevisions());
+ }
+
+ public static void dump(String label, Map<CDOBranch, List<CDORevision>> revisions)
+ {
+ System.out.println();
+ System.out.println();
+ System.out.println(label);
+ System.out
+ .println("===============================================================================================");
+ CDORevisionUtil.dumpAllRevisions(revisions, System.out);
+ System.out.println();
+ System.out.println();
+ }
+}

Back to the top