Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.tests.objectivity/src/org/eclipse/emf/cdo/tests/objectivity/ObjyExternalReferenceTest.java')
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.objectivity/src/org/eclipse/emf/cdo/tests/objectivity/ObjyExternalReferenceTest.java576
1 files changed, 288 insertions, 288 deletions
diff --git a/plugins/org.eclipse.emf.cdo.tests.objectivity/src/org/eclipse/emf/cdo/tests/objectivity/ObjyExternalReferenceTest.java b/plugins/org.eclipse.emf.cdo.tests.objectivity/src/org/eclipse/emf/cdo/tests/objectivity/ObjyExternalReferenceTest.java
index 78a0d9e25e..01e9c4f727 100644
--- a/plugins/org.eclipse.emf.cdo.tests.objectivity/src/org/eclipse/emf/cdo/tests/objectivity/ObjyExternalReferenceTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests.objectivity/src/org/eclipse/emf/cdo/tests/objectivity/ObjyExternalReferenceTest.java
@@ -1,288 +1,288 @@
-/*
- * Copyright (c) 2004 - 2012 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:
- * Simon McDuff - initial API and implementation
- * Eike Stepper - maintenance
- */
-package org.eclipse.emf.cdo.tests.objectivity;
-
-import org.eclipse.emf.cdo.eresource.CDOResource;
-import org.eclipse.emf.cdo.session.CDOSession;
-import org.eclipse.emf.cdo.tests.AbstractCDOTest;
-import org.eclipse.emf.cdo.tests.model1.PurchaseOrder;
-import org.eclipse.emf.cdo.tests.model1.Supplier;
-import org.eclipse.emf.cdo.tests.model4.GenRefSingleNonContained;
-import org.eclipse.emf.cdo.transaction.CDOTransaction;
-import org.eclipse.emf.cdo.util.DanglingReferenceException;
-
-import org.eclipse.net4j.util.transaction.TransactionException;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EcoreFactory;
-import org.eclipse.emf.ecore.EcorePackage;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
-
-/**
- * @author Simon McDuff
- */
-public class ObjyExternalReferenceTest extends AbstractCDOTest
-{
- final static public String REPOSITORY2_NAME = "repo2";
-
- public void testExternalWithDynamicEObject() throws Exception
- {
- {
- ResourceSet resourceSet = new ResourceSetImpl();
- resourceSet.getResourceFactoryRegistry().getProtocolToFactoryMap().put("test", new XMIResourceFactoryImpl());
-
- CDOSession sessionA = openSession();
- sessionA.getPackageRegistry().putEPackage(getModel4InterfacesPackage());
- sessionA.getPackageRegistry().putEPackage(getModel4Package());
- CDOTransaction transactionA1 = sessionA.openTransaction(resourceSet);
-
- CDOResource resA = transactionA1.createResource("/resA");
- Resource resD = resourceSet.createResource(URI.createURI("test://1"));
-
- EPackage schoolPackage = createDynamicEPackage();
- resourceSet.getPackageRegistry().put(schoolPackage.getNsURI(), schoolPackage);
-
- EClass eClass = (EClass)schoolPackage.getEClassifier("SchoolBook");
- EObject schoolbook = EcoreUtil.create(eClass);
-
- GenRefSingleNonContained objectFromResA = getModel4Factory().createGenRefSingleNonContained();
- objectFromResA.setElement(schoolbook);
- resD.getContents().add(schoolbook);
-
- resA.getContents().add(objectFromResA);
- transactionA1.commit();
- }
- }
-
- public void testExternalWithEClass() throws Exception
- {
- {
- ResourceSet resourceSet = new ResourceSetImpl();
-
- CDOSession sessionA = openSession();
- sessionA.getPackageRegistry().putEPackage(getModel4InterfacesPackage());
- sessionA.getPackageRegistry().putEPackage(getModel4Package());
- CDOTransaction transactionA1 = sessionA.openTransaction(resourceSet);
-
- CDOResource resA = transactionA1.createResource("/resA");
- GenRefSingleNonContained objectFromResA = getModel4Factory().createGenRefSingleNonContained();
- objectFromResA.setElement(getModel1Package().getAddress());
- resA.getContents().add(objectFromResA);
- transactionA1.commit();
- }
-
- clearCache(getRepository().getRevisionManager());
-
- {
- CDOSession sessionA = openSession();
- ResourceSet resourceSet = new ResourceSetImpl();
- resourceSet.getPackageRegistry().put(getModel1Package().getNsURI(), getModel1Package());
-
- CDOTransaction transactionA1 = sessionA.openTransaction(resourceSet);
- CDOResource resA = transactionA1.getResource("/resA");
-
- GenRefSingleNonContained objectFromResA = (GenRefSingleNonContained)resA.getContents().get(0);
- assertEquals(getModel1Package().getAddress(), objectFromResA.getElement());
- transactionA1.commit();
- }
- }
-
- public void testExternalWithEPackage() throws Exception
- {
- {
- CDOSession sessionA = openSession();
-
- ResourceSet resourceSet = new ResourceSetImpl();
-
- sessionA.getPackageRegistry().putEPackage(getModel4Package());
- sessionA.getPackageRegistry().putEPackage(getModel4InterfacesPackage());
-
- CDOTransaction transactionA1 = sessionA.openTransaction(resourceSet);
- CDOResource resA = transactionA1.createResource("/resA");
- GenRefSingleNonContained objectFromResA = getModel4Factory().createGenRefSingleNonContained();
- objectFromResA.setElement(getModel1Package());
- resA.getContents().add(objectFromResA);
- transactionA1.commit();
- }
-
- clearCache(getRepository().getRevisionManager());
- {
- CDOSession sessionA = openSession();
-
- ResourceSet resourceSet = new ResourceSetImpl();
- resourceSet.getPackageRegistry().put(getModel1Package().getNsURI(), getModel1Package());
-
- CDOTransaction transactionA1 = sessionA.openTransaction(resourceSet);
- CDOResource resA = transactionA1.getResource("/resA");
-
- GenRefSingleNonContained objectFromResA = (GenRefSingleNonContained)resA.getContents().get(0);
- assertEquals(getModel1Package(), objectFromResA.getElement());
- transactionA1.commit();
- }
- }
-
- public void testOneXMIResourceManyViewsOnOneResourceSet() throws Exception
- {
- return;
-
- /*
- * byte[] dataOfresD = null; getRepository(REPOSITORY2_NAME); { CDOSession sessionA = openSession(); CDOSession
- * sessionB = openSession(REPOSITORY2_NAME); ResourceSet resourceSet = new ResourceSetImpl();
- * resourceSet.getResourceFactoryRegistry().getProtocolToFactoryMap().put("test", new XMIResourceFactoryImpl());
- * sessionA.getPackageRegistry().putEPackage(getModel1Package());
- * sessionA.getPackageRegistry().putEPackage(Model2Package.eINSTANCE);
- * sessionB.getPackageRegistry().putEPackage(getModel1Package());
- * sessionB.getPackageRegistry().putEPackage(Model2Package.eINSTANCE); CDOTransaction transactionA1 =
- * sessionA.openTransaction(resourceSet); CDOTransaction transactionB1 = sessionB.openTransaction(resourceSet);
- * CDOResource resA = transactionA1.createResource("/resA"); CDOResource resB =
- * transactionB1.createResource("/resB"); EList<Resource> resources = resourceSet.getResources(); assertEquals(4,
- * resources.size()); CDOResource resC = transactionA1.createResource("/resC"); assertNotNull(resC); assertEquals(5,
- * resources.size()); Resource resD = resourceSet.createResource(URI.createURI("test://1")); assertEquals(6,
- * resources.size()); assertEquals(false, resD instanceof CDOResource); Company companyA =
- * getModel1Factory().createCompany(); companyA.setName("VALUEA"); Company companyB =
- * getModel1Factory().createCompany(); companyB.setName("VALUEB"); Company companyD =
- * getModel1Factory().createCompany(); companyD.setName("VALUED"); resD.getContents().add(companyD);
- * resA.getContents().add(companyA); resB.getContents().add(companyB); Supplier supplier =
- * getModel1Factory().createSupplier(); PurchaseOrder purchaseOrder = getModel1Factory().createPurchaseOrder();
- * supplier.getPurchaseOrders().add(purchaseOrder); resD.getContents().add(supplier);
- * resA.getContents().add(purchaseOrder); CDOXATransaction transSet = CDOUtil.createXATransaction();
- * transSet.add(CDOUtil.getViewSet(resourceSet)); transactionA1.commit(); ByteArrayOutputStream outputStream = new
- * ByteArrayOutputStream(); resD.save(outputStream, null); dataOfresD = outputStream.toByteArray(); }
- * clearCache(getRepository().getRevisionManager()); { ResourceSet resourceSet = new ResourceSetImpl(); CDOSession
- * session = openSession(); CDOTransaction transaction = session.openTransaction(resourceSet); CDOSession session2 =
- * openSession(REPOSITORY2_NAME); CDOTransaction transaction2 = session2.openTransaction(resourceSet); CDOViewSet
- * set = CDOUtil.getViewSet(resourceSet); assertNotNull(set);
- * resourceSet.getPackageRegistry().put(getModel1Package().getNsURI(), getModel1Package());
- * resourceSet.getResourceFactoryRegistry().getProtocolToFactoryMap().put("test", new XMIResourceFactoryImpl());
- * Resource resD = resourceSet.createResource(URI.createURI("test://1")); resD.load(new
- * ByteArrayInputStream(dataOfresD), null); CDOResource resA = transaction.getResource("/resA"); CDOResource resB =
- * transaction2.getResource("/resB"); Company companyA = (Company)resA.getContents().get(0); Company companyB =
- * (Company)resB.getContents().get(0); Company companyD = (Company)resD.getContents().get(0);
- * assertNotSame(resA.getURI(), resB.getURI()); assertNotSame(resA.getPath(), "/resA");
- * assertNotSame(resB.getPath(), "/resB"); assertNotSame(resA.cdoView(), transaction2);
- * assertNotSame(resB.cdoView(), transaction); assertEquals("VALUEA", companyA.getName()); assertEquals("VALUEB",
- * companyB.getName()); assertEquals("VALUED", companyD.getName()); Supplier supplierD =
- * (Supplier)resD.getContents().get(1); PurchaseOrder pO = supplierD.getPurchaseOrders().get(0);
- * assertEquals(transaction, CDOUtil.getCDOObject(pO).cdoView()); assertEquals(supplierD, pO.getSupplier()); }
- */
- }
-
- public void testManyViewsOnOneResourceSet() throws Exception
- {
- /*
- * getRepository(REPOSITORY2_NAME); { CDOSession sessionA = openSession();
- * sessionA.getPackageRegistry().putEPackage(getModel1Package()); CDOSession sessionB =
- * openSession(REPOSITORY2_NAME); ResourceSet resourceSet = new ResourceSetImpl(); CDOTransaction transactionA1 =
- * sessionA.openTransaction(resourceSet); CDOTransaction transactionB1 = sessionB.openTransaction(resourceSet);
- * CDOResource resA = transactionA1.createResource("/resA"); CDOResource resB =
- * transactionB1.createResource("/resB"); Supplier supplier = getModel1Factory().createSupplier(); PurchaseOrder
- * purchaseOrder = getModel1Factory().createPurchaseOrder(); supplier.getPurchaseOrders().add(purchaseOrder);
- * resB.getContents().add(supplier); resA.getContents().add(purchaseOrder); CDOXATransaction transSet =
- * CDOUtil.createXATransaction(); transSet.add(CDOUtil.getViewSet(resourceSet)); transactionA1.commit(); }
- * clearCache(getRepository().getRevisionManager()); { ResourceSet resourceSet = new ResourceSetImpl(); CDOSession
- * sessionA = openSession(); CDOTransaction transactionA = sessionA.openTransaction(resourceSet); CDOSession
- * sessionB = openSession(REPOSITORY2_NAME); CDOTransaction transactionB = sessionB.openTransaction(resourceSet);
- * CDOResource resA = transactionA.getResource("/resA"); assertNotNull(resA); CDOResource resB =
- * transactionB.getResource("/resB"); assertNotNull(resB); Supplier supplierB = (Supplier)resB.getContents().get(0);
- * PurchaseOrder pO = supplierB.getPurchaseOrders().get(0); assertEquals(transactionA,
- * CDOUtil.getCDOObject(pO).cdoView()); assertEquals(transactionB, CDOUtil.getCDOObject(supplierB).cdoView());
- * assertEquals(supplierB, pO.getSupplier()); assertEquals(supplierB.getPurchaseOrders().get(0), pO); }
- */
- }
-
- public void testObjectNotAttached() throws Exception
- {
- msg("Opening session");
- CDOSession session = openSession();
-
- msg("Opening transaction");
- CDOTransaction transaction = session.openTransaction();
-
- msg("Creating resource");
- CDOResource resource1 = transaction.createResource("/test1");
-
- msg("Adding company");
- Supplier supplier = getModel1Factory().createSupplier();
- PurchaseOrder purchaseOrder = getModel1Factory().createPurchaseOrder();
- supplier.getPurchaseOrders().add(purchaseOrder);
-
- resource1.getContents().add(supplier);
-
- try
- {
- msg("Committing");
- transaction.commit();
- fail("TransactionException expected");
- }
- catch (TransactionException success)
- {
- assertEquals(true, success.getCause() instanceof DanglingReferenceException);
- assertSame(purchaseOrder, ((DanglingReferenceException)success.getCause()).getTarget());
- }
- }
-
- public void testUsingObjectsBetweenSameTransaction() throws Exception
- {
- msg("Opening session");
- CDOSession session = openSession();
-
- msg("Opening transaction");
- CDOTransaction transaction1 = session.openTransaction();
- CDOTransaction transaction2 = session.openTransaction();
-
- msg("Creating resource");
- CDOResource resource1 = transaction1.createResource("/test1");
- CDOResource resource2 = transaction2.createResource("/test2");
-
- msg("Adding company");
- Supplier supplier = getModel1Factory().createSupplier();
- PurchaseOrder purchaseOrder = getModel1Factory().createPurchaseOrder();
- supplier.getPurchaseOrders().add(purchaseOrder);
-
- resource1.getContents().add(supplier);
- resource2.getContents().add(purchaseOrder);
-
- msg("Committing");
- transaction1.commit();
- }
-
- private EPackage createDynamicEPackage()
- {
- final EcoreFactory efactory = EcoreFactory.eINSTANCE;
- final EcorePackage epackage = EcorePackage.eINSTANCE;
-
- EClass schoolBookEClass = efactory.createEClass();
- schoolBookEClass.setName("SchoolBook");
-
- // create a new attribute for this EClass
- EAttribute level = efactory.createEAttribute();
- level.setName("level");
- level.setEType(epackage.getEInt());
- schoolBookEClass.getEStructuralFeatures().add(level);
-
- // Create a new EPackage and add the new EClasses
- EPackage schoolPackage = efactory.createEPackage();
- schoolPackage.setName("elv");
- schoolPackage.setNsPrefix("elv");
- schoolPackage.setNsURI("http:///www.elver.org/School");
- schoolPackage.getEClassifiers().add(schoolBookEClass);
- return schoolPackage;
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 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:
+ * Simon McDuff - initial API and implementation
+ * Eike Stepper - maintenance
+ */
+package org.eclipse.emf.cdo.tests.objectivity;
+
+import org.eclipse.emf.cdo.eresource.CDOResource;
+import org.eclipse.emf.cdo.session.CDOSession;
+import org.eclipse.emf.cdo.tests.AbstractCDOTest;
+import org.eclipse.emf.cdo.tests.model1.PurchaseOrder;
+import org.eclipse.emf.cdo.tests.model1.Supplier;
+import org.eclipse.emf.cdo.tests.model4.GenRefSingleNonContained;
+import org.eclipse.emf.cdo.transaction.CDOTransaction;
+import org.eclipse.emf.cdo.util.DanglingReferenceException;
+
+import org.eclipse.net4j.util.transaction.TransactionException;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
+
+/**
+ * @author Simon McDuff
+ */
+public class ObjyExternalReferenceTest extends AbstractCDOTest
+{
+ final static public String REPOSITORY2_NAME = "repo2";
+
+ public void testExternalWithDynamicEObject() throws Exception
+ {
+ {
+ ResourceSet resourceSet = new ResourceSetImpl();
+ resourceSet.getResourceFactoryRegistry().getProtocolToFactoryMap().put("test", new XMIResourceFactoryImpl());
+
+ CDOSession sessionA = openSession();
+ sessionA.getPackageRegistry().putEPackage(getModel4InterfacesPackage());
+ sessionA.getPackageRegistry().putEPackage(getModel4Package());
+ CDOTransaction transactionA1 = sessionA.openTransaction(resourceSet);
+
+ CDOResource resA = transactionA1.createResource("/resA");
+ Resource resD = resourceSet.createResource(URI.createURI("test://1"));
+
+ EPackage schoolPackage = createDynamicEPackage();
+ resourceSet.getPackageRegistry().put(schoolPackage.getNsURI(), schoolPackage);
+
+ EClass eClass = (EClass)schoolPackage.getEClassifier("SchoolBook");
+ EObject schoolbook = EcoreUtil.create(eClass);
+
+ GenRefSingleNonContained objectFromResA = getModel4Factory().createGenRefSingleNonContained();
+ objectFromResA.setElement(schoolbook);
+ resD.getContents().add(schoolbook);
+
+ resA.getContents().add(objectFromResA);
+ transactionA1.commit();
+ }
+ }
+
+ public void testExternalWithEClass() throws Exception
+ {
+ {
+ ResourceSet resourceSet = new ResourceSetImpl();
+
+ CDOSession sessionA = openSession();
+ sessionA.getPackageRegistry().putEPackage(getModel4InterfacesPackage());
+ sessionA.getPackageRegistry().putEPackage(getModel4Package());
+ CDOTransaction transactionA1 = sessionA.openTransaction(resourceSet);
+
+ CDOResource resA = transactionA1.createResource("/resA");
+ GenRefSingleNonContained objectFromResA = getModel4Factory().createGenRefSingleNonContained();
+ objectFromResA.setElement(getModel1Package().getAddress());
+ resA.getContents().add(objectFromResA);
+ transactionA1.commit();
+ }
+
+ clearCache(getRepository().getRevisionManager());
+
+ {
+ CDOSession sessionA = openSession();
+ ResourceSet resourceSet = new ResourceSetImpl();
+ resourceSet.getPackageRegistry().put(getModel1Package().getNsURI(), getModel1Package());
+
+ CDOTransaction transactionA1 = sessionA.openTransaction(resourceSet);
+ CDOResource resA = transactionA1.getResource("/resA");
+
+ GenRefSingleNonContained objectFromResA = (GenRefSingleNonContained)resA.getContents().get(0);
+ assertEquals(getModel1Package().getAddress(), objectFromResA.getElement());
+ transactionA1.commit();
+ }
+ }
+
+ public void testExternalWithEPackage() throws Exception
+ {
+ {
+ CDOSession sessionA = openSession();
+
+ ResourceSet resourceSet = new ResourceSetImpl();
+
+ sessionA.getPackageRegistry().putEPackage(getModel4Package());
+ sessionA.getPackageRegistry().putEPackage(getModel4InterfacesPackage());
+
+ CDOTransaction transactionA1 = sessionA.openTransaction(resourceSet);
+ CDOResource resA = transactionA1.createResource("/resA");
+ GenRefSingleNonContained objectFromResA = getModel4Factory().createGenRefSingleNonContained();
+ objectFromResA.setElement(getModel1Package());
+ resA.getContents().add(objectFromResA);
+ transactionA1.commit();
+ }
+
+ clearCache(getRepository().getRevisionManager());
+ {
+ CDOSession sessionA = openSession();
+
+ ResourceSet resourceSet = new ResourceSetImpl();
+ resourceSet.getPackageRegistry().put(getModel1Package().getNsURI(), getModel1Package());
+
+ CDOTransaction transactionA1 = sessionA.openTransaction(resourceSet);
+ CDOResource resA = transactionA1.getResource("/resA");
+
+ GenRefSingleNonContained objectFromResA = (GenRefSingleNonContained)resA.getContents().get(0);
+ assertEquals(getModel1Package(), objectFromResA.getElement());
+ transactionA1.commit();
+ }
+ }
+
+ public void testOneXMIResourceManyViewsOnOneResourceSet() throws Exception
+ {
+ return;
+
+ /*
+ * byte[] dataOfresD = null; getRepository(REPOSITORY2_NAME); { CDOSession sessionA = openSession(); CDOSession
+ * sessionB = openSession(REPOSITORY2_NAME); ResourceSet resourceSet = new ResourceSetImpl();
+ * resourceSet.getResourceFactoryRegistry().getProtocolToFactoryMap().put("test", new XMIResourceFactoryImpl());
+ * sessionA.getPackageRegistry().putEPackage(getModel1Package());
+ * sessionA.getPackageRegistry().putEPackage(Model2Package.eINSTANCE);
+ * sessionB.getPackageRegistry().putEPackage(getModel1Package());
+ * sessionB.getPackageRegistry().putEPackage(Model2Package.eINSTANCE); CDOTransaction transactionA1 =
+ * sessionA.openTransaction(resourceSet); CDOTransaction transactionB1 = sessionB.openTransaction(resourceSet);
+ * CDOResource resA = transactionA1.createResource("/resA"); CDOResource resB =
+ * transactionB1.createResource("/resB"); EList<Resource> resources = resourceSet.getResources(); assertEquals(4,
+ * resources.size()); CDOResource resC = transactionA1.createResource("/resC"); assertNotNull(resC); assertEquals(5,
+ * resources.size()); Resource resD = resourceSet.createResource(URI.createURI("test://1")); assertEquals(6,
+ * resources.size()); assertEquals(false, resD instanceof CDOResource); Company companyA =
+ * getModel1Factory().createCompany(); companyA.setName("VALUEA"); Company companyB =
+ * getModel1Factory().createCompany(); companyB.setName("VALUEB"); Company companyD =
+ * getModel1Factory().createCompany(); companyD.setName("VALUED"); resD.getContents().add(companyD);
+ * resA.getContents().add(companyA); resB.getContents().add(companyB); Supplier supplier =
+ * getModel1Factory().createSupplier(); PurchaseOrder purchaseOrder = getModel1Factory().createPurchaseOrder();
+ * supplier.getPurchaseOrders().add(purchaseOrder); resD.getContents().add(supplier);
+ * resA.getContents().add(purchaseOrder); CDOXATransaction transSet = CDOUtil.createXATransaction();
+ * transSet.add(CDOUtil.getViewSet(resourceSet)); transactionA1.commit(); ByteArrayOutputStream outputStream = new
+ * ByteArrayOutputStream(); resD.save(outputStream, null); dataOfresD = outputStream.toByteArray(); }
+ * clearCache(getRepository().getRevisionManager()); { ResourceSet resourceSet = new ResourceSetImpl(); CDOSession
+ * session = openSession(); CDOTransaction transaction = session.openTransaction(resourceSet); CDOSession session2 =
+ * openSession(REPOSITORY2_NAME); CDOTransaction transaction2 = session2.openTransaction(resourceSet); CDOViewSet
+ * set = CDOUtil.getViewSet(resourceSet); assertNotNull(set);
+ * resourceSet.getPackageRegistry().put(getModel1Package().getNsURI(), getModel1Package());
+ * resourceSet.getResourceFactoryRegistry().getProtocolToFactoryMap().put("test", new XMIResourceFactoryImpl());
+ * Resource resD = resourceSet.createResource(URI.createURI("test://1")); resD.load(new
+ * ByteArrayInputStream(dataOfresD), null); CDOResource resA = transaction.getResource("/resA"); CDOResource resB =
+ * transaction2.getResource("/resB"); Company companyA = (Company)resA.getContents().get(0); Company companyB =
+ * (Company)resB.getContents().get(0); Company companyD = (Company)resD.getContents().get(0);
+ * assertNotSame(resA.getURI(), resB.getURI()); assertNotSame(resA.getPath(), "/resA");
+ * assertNotSame(resB.getPath(), "/resB"); assertNotSame(resA.cdoView(), transaction2);
+ * assertNotSame(resB.cdoView(), transaction); assertEquals("VALUEA", companyA.getName()); assertEquals("VALUEB",
+ * companyB.getName()); assertEquals("VALUED", companyD.getName()); Supplier supplierD =
+ * (Supplier)resD.getContents().get(1); PurchaseOrder pO = supplierD.getPurchaseOrders().get(0);
+ * assertEquals(transaction, CDOUtil.getCDOObject(pO).cdoView()); assertEquals(supplierD, pO.getSupplier()); }
+ */
+ }
+
+ public void testManyViewsOnOneResourceSet() throws Exception
+ {
+ /*
+ * getRepository(REPOSITORY2_NAME); { CDOSession sessionA = openSession();
+ * sessionA.getPackageRegistry().putEPackage(getModel1Package()); CDOSession sessionB =
+ * openSession(REPOSITORY2_NAME); ResourceSet resourceSet = new ResourceSetImpl(); CDOTransaction transactionA1 =
+ * sessionA.openTransaction(resourceSet); CDOTransaction transactionB1 = sessionB.openTransaction(resourceSet);
+ * CDOResource resA = transactionA1.createResource("/resA"); CDOResource resB =
+ * transactionB1.createResource("/resB"); Supplier supplier = getModel1Factory().createSupplier(); PurchaseOrder
+ * purchaseOrder = getModel1Factory().createPurchaseOrder(); supplier.getPurchaseOrders().add(purchaseOrder);
+ * resB.getContents().add(supplier); resA.getContents().add(purchaseOrder); CDOXATransaction transSet =
+ * CDOUtil.createXATransaction(); transSet.add(CDOUtil.getViewSet(resourceSet)); transactionA1.commit(); }
+ * clearCache(getRepository().getRevisionManager()); { ResourceSet resourceSet = new ResourceSetImpl(); CDOSession
+ * sessionA = openSession(); CDOTransaction transactionA = sessionA.openTransaction(resourceSet); CDOSession
+ * sessionB = openSession(REPOSITORY2_NAME); CDOTransaction transactionB = sessionB.openTransaction(resourceSet);
+ * CDOResource resA = transactionA.getResource("/resA"); assertNotNull(resA); CDOResource resB =
+ * transactionB.getResource("/resB"); assertNotNull(resB); Supplier supplierB = (Supplier)resB.getContents().get(0);
+ * PurchaseOrder pO = supplierB.getPurchaseOrders().get(0); assertEquals(transactionA,
+ * CDOUtil.getCDOObject(pO).cdoView()); assertEquals(transactionB, CDOUtil.getCDOObject(supplierB).cdoView());
+ * assertEquals(supplierB, pO.getSupplier()); assertEquals(supplierB.getPurchaseOrders().get(0), pO); }
+ */
+ }
+
+ public void testObjectNotAttached() throws Exception
+ {
+ msg("Opening session");
+ CDOSession session = openSession();
+
+ msg("Opening transaction");
+ CDOTransaction transaction = session.openTransaction();
+
+ msg("Creating resource");
+ CDOResource resource1 = transaction.createResource("/test1");
+
+ msg("Adding company");
+ Supplier supplier = getModel1Factory().createSupplier();
+ PurchaseOrder purchaseOrder = getModel1Factory().createPurchaseOrder();
+ supplier.getPurchaseOrders().add(purchaseOrder);
+
+ resource1.getContents().add(supplier);
+
+ try
+ {
+ msg("Committing");
+ transaction.commit();
+ fail("TransactionException expected");
+ }
+ catch (TransactionException success)
+ {
+ assertEquals(true, success.getCause() instanceof DanglingReferenceException);
+ assertSame(purchaseOrder, ((DanglingReferenceException)success.getCause()).getTarget());
+ }
+ }
+
+ public void testUsingObjectsBetweenSameTransaction() throws Exception
+ {
+ msg("Opening session");
+ CDOSession session = openSession();
+
+ msg("Opening transaction");
+ CDOTransaction transaction1 = session.openTransaction();
+ CDOTransaction transaction2 = session.openTransaction();
+
+ msg("Creating resource");
+ CDOResource resource1 = transaction1.createResource("/test1");
+ CDOResource resource2 = transaction2.createResource("/test2");
+
+ msg("Adding company");
+ Supplier supplier = getModel1Factory().createSupplier();
+ PurchaseOrder purchaseOrder = getModel1Factory().createPurchaseOrder();
+ supplier.getPurchaseOrders().add(purchaseOrder);
+
+ resource1.getContents().add(supplier);
+ resource2.getContents().add(purchaseOrder);
+
+ msg("Committing");
+ transaction1.commit();
+ }
+
+ private EPackage createDynamicEPackage()
+ {
+ final EcoreFactory efactory = EcoreFactory.eINSTANCE;
+ final EcorePackage epackage = EcorePackage.eINSTANCE;
+
+ EClass schoolBookEClass = efactory.createEClass();
+ schoolBookEClass.setName("SchoolBook");
+
+ // create a new attribute for this EClass
+ EAttribute level = efactory.createEAttribute();
+ level.setName("level");
+ level.setEType(epackage.getEInt());
+ schoolBookEClass.getEStructuralFeatures().add(level);
+
+ // Create a new EPackage and add the new EClasses
+ EPackage schoolPackage = efactory.createEPackage();
+ schoolPackage.setName("elv");
+ schoolPackage.setNsPrefix("elv");
+ schoolPackage.setNsURI("http:///www.elver.org/School");
+ schoolPackage.getEClassifiers().add(schoolBookEClass);
+ return schoolPackage;
+ }
+}

Back to the top