diff options
author | Eike Stepper | 2006-08-21 12:34:49 +0000 |
---|---|---|
committer | Eike Stepper | 2006-08-21 12:34:49 +0000 |
commit | b8caced330cd9ba5fd47c1daa4885b0387d12f73 (patch) | |
tree | dacdedeb4b9082e4c55bb37ad16b6345c47e59a2 /plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf | |
parent | adf73ce1a0f3461bcbab8229dd2277941ec84f9c (diff) | |
download | cdo-b8caced330cd9ba5fd47c1daa4885b0387d12f73.tar.gz cdo-b8caced330cd9ba5fd47c1daa4885b0387d12f73.tar.xz cdo-b8caced330cd9ba5fd47c1daa4885b0387d12f73.zip |
[154522] Copy from CDO resource to XMI resource does not work
https://bugs.eclipse.org/bugs/show_bug.cgi?id=154389
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf')
2 files changed, 107 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/model1/SerializationTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/model1/SerializationTest.java new file mode 100644 index 0000000000..9860c3d487 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/model1/SerializationTest.java @@ -0,0 +1,90 @@ +/*************************************************************************** + * Copyright (c) 2004, 2005, 2006 Eike Stepper, Fuggerstr. 39, 10777 Berlin, Germany. + * 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.model1; + + +import org.eclipse.emf.cdo.client.CDOPersistable; +import org.eclipse.emf.cdo.client.CDOResource; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +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; + +import org.eclipse.net4j.util.IOHelper; + +import testmodel1.TreeNode; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + +import java.io.File; + + +public class SerializationTest extends AbstractModel1Test +{ + public void testExport() throws Exception + { + final String RESOURCE = "/test/res"; + final String ROOT = "root"; + final String[] CHILDREN = { "a", "b", "c"}; + + final File FILE = new File("testExport.testmodel1"); + final String CONTENT = "<?xml version=\"1.0\" encoding=\"ASCII\"?>\r\n" + + "<testmodel1:TreeNode xmi:version=\"2.0\" xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:testmodel1=\"http://www.eclipse.org/emf/cdo/2006/TestModel1\" stringFeature=\"root\">\r\n" + + " <children stringFeature=\"a\"/>\r\n" + " <children stringFeature=\"b\"/>\r\n" + + " <children stringFeature=\"c\"/>\r\n" + "</testmodel1:TreeNode>\r\n"; + + try + { + { // Execution + TreeNode root = createNode(ROOT); + createChildren(CHILDREN, root); + saveRoot(root, RESOURCE); + + TreeNode loaded = (TreeNode) loadRoot(RESOURCE); + preLoadResource((CDOResource) loaded.eResource()); + EObject copied = EcoreUtil.copy(loaded); + + ResourceSet resourceSet = new ResourceSetImpl(); + Map map = resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap(); + map.put("testmodel1", new XMIResourceFactoryImpl()); + + URI uri = URI.createFileURI(FILE.getAbsolutePath()); + Resource xmiResource = resourceSet.createResource(uri); + xmiResource.getContents().add(copied); + xmiResource.save(new HashMap()); + } + + { // Verification + String content = IOHelper.readFully(FILE); + assertEquals(CONTENT, content); + } + } + finally + { + FILE.delete(); + } + } + + protected void preLoadResource(CDOResource cdoResource) + { + for (Iterator it = EcoreUtil.getAllContents(cdoResource, true); it.hasNext();) + { + CDOPersistable persistable = (CDOPersistable) it.next(); + persistable.cdoLoad(); + } + } +} diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/topology/ClientTopology.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/topology/ClientTopology.java index 26c4be4b75..3aad3b7228 100644 --- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/topology/ClientTopology.java +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/topology/ClientTopology.java @@ -11,21 +11,38 @@ package org.eclipse.emf.cdo.tests.topology; +import org.eclipse.net4j.spring.Container; + import javax.sql.DataSource; public class ClientTopology extends AbstractTopology { + private Container net4j; + + private Container net4jClient; + public ClientTopology() { } public void start() throws Exception { + super.start(); + + // Start client + net4j = createContainer("net4j", NET4J_LOCATION, null); + net4jClient = createContainer("client", NET4J_CLIENT_LOCATION, net4j); + createCDOClient("cdo", net4jClient); } public void stop() throws Exception { + super.stop(); + + //Stop client + net4jClient.stop(); + net4j.stop(); } public DataSource getDataSource() |