diff options
author | Eike Stepper | 2006-08-12 06:59:08 +0000 |
---|---|---|
committer | Eike Stepper | 2006-08-12 06:59:08 +0000 |
commit | 4807300e7e0ec3a9e97fe35f1b7884b8c2c96663 (patch) | |
tree | b7180e8e7316bf4cc212cc90024bd3d65690af7c | |
parent | 4a53d8d4bbe17736db2ea27961a367002f7c4f97 (diff) | |
download | cdo-4807300e7e0ec3a9e97fe35f1b7884b8c2c96663.tar.gz cdo-4807300e7e0ec3a9e97fe35f1b7884b8c2c96663.tar.xz cdo-4807300e7e0ec3a9e97fe35f1b7884b8c2c96663.zip |
*** empty log message ***
9 files changed, 514 insertions, 3 deletions
diff --git a/plugins/org.eclipse.emf.cdo.tests/launches/BasicTest.launch b/plugins/org.eclipse.emf.cdo.tests/launches/BasicTest.launch index 3d96555f4e..ca18dc750e 100644 --- a/plugins/org.eclipse.emf.cdo.tests/launches/BasicTest.launch +++ b/plugins/org.eclipse.emf.cdo.tests/launches/BasicTest.launch @@ -15,12 +15,12 @@ <booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/> <booleanAttribute key="automaticAdd" value="false"/> <stringAttribute key="checked" value="[NONE]"/> -<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.cdo.jdbc,org.eclipse.net4j.spring,org.eclipse.net4j.socket,org.eclipse.net4j.core,org.eclipse.net4j.spring.db,org.eclipse.emf.cdo.dbgen,org.eclipse.emf.cdo.tests,org.eclipse.emf.cdo.core,org.eclipse.emf.cdo.mapping,org.eclipse.emf.cdo.client,org.eclipse.net4j.util,org.eclipse.emf.cdo.server,org.eclipse.net4j.embedded,org.eclipse.emf.cdo.jdbc.derby,org.eclipse.emf.cdo.dbgen.derby,org.eclipse.emf.cdo.dbgen.oracle,org.eclipse.emf.cdo.jdbc.hsqldb,org.eclipse.emf.cdo.jdbc.mysql,org.eclipse.emf.cdo.dbgen.ansi92,org.eclipse.emf.cdo.dbgen.mysql,org.eclipse.emf.cdo.dbgen.hsqldb"/> +<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.cdo.jdbc,org.eclipse.net4j.spring,org.eclipse.net4j.socket,org.eclipse.net4j.core,org.eclipse.net4j.spring.db,org.eclipse.emf.cdo.dbgen,org.eclipse.emf.cdo.tests,org.eclipse.emf.cdo.mapping,org.eclipse.emf.cdo.core,org.eclipse.emf.cdo.client,org.eclipse.net4j.util,org.eclipse.emf.cdo.server,org.eclipse.net4j.embedded,org.eclipse.emf.cdo.jdbc.derby,org.eclipse.emf.cdo.dbgen.derby,org.eclipse.emf.cdo.dbgen.oracle,org.eclipse.emf.cdo.jdbc.hsqldb,org.eclipse.emf.cdo.jdbc.mysql,org.eclipse.emf.cdo.dbgen.ansi92,org.eclipse.emf.cdo.dbgen.mysql,org.eclipse.emf.cdo.dbgen.hsqldb"/> <stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/> <stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/> <stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/> <booleanAttribute key="clearws" value="true"/> -<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.cdo.tests.testmodel1.BasicTest"/> +<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.cdo.tests.model1.BasicTest"/> <stringAttribute key="pde.version" value="3.2a"/> <stringAttribute key="templateConfig" value="${target_home}\configuration\config.ini"/> <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dcdo.test.mode=client-separated-server"/> diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/testmodel1/AbstractModel1Test.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/testmodel1/AbstractModel1Test.java index 1f3dcb350f..1a97827f2b 100644 --- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/testmodel1/AbstractModel1Test.java +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/testmodel1/AbstractModel1Test.java @@ -24,7 +24,7 @@ import java.util.Arrays; import java.util.Iterator; -public class AbstractModel1Test extends AbstractTopologyTest +public abstract class AbstractModel1Test extends AbstractTopologyTest { @Override protected void wipeDatabase(JdbcTemplate jdbc) diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/topology/AbstractTopology.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/topology/AbstractTopology.java new file mode 100644 index 0000000000..034cbac40e --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/topology/AbstractTopology.java @@ -0,0 +1,92 @@ +/*************************************************************************** + * 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.topology; + + +import org.eclipse.emf.cdo.client.ResourceManager; +import org.eclipse.emf.cdo.tests.CDOTestPlugin; + +import org.eclipse.emf.ecore.resource.ResourceSet; + +import org.eclipse.core.runtime.FileLocator; +import org.eclipse.net4j.spring.Container; +import org.eclipse.net4j.spring.impl.ContainerImpl; + +import org.osgi.framework.Bundle; + +import java.net.URL; + + +public abstract class AbstractTopology implements ITopology +{ + protected static final String NET4J_LOCATION = "META-INF/net4j/net4j.xml"; + + protected static final String NET4J_CLIENT_LOCATION = "META-INF/net4j/client/net4j-client.xml"; + + protected static final String NET4J_SERVER_LOCATION = "META-INF/net4j/server/net4j-server.xml"; + + protected static final String NET4J_EMBEDDED_LOCATION = "META-INF/net4j/embedded/net4j-embedded.xml"; + + protected static final String CDO_CLIENT_LOCATION = "META-INF/cdo/client/cdo-client.xml"; + + protected static final String CDO_SERVER_LOCATION = "META-INF/cdo/server/cdo-server.xml"; + + private String bundleLocation; + + private Container cdoClient; + + protected AbstractTopology() + { + } + + public void start() throws Exception + { + CDOTestPlugin plugin = CDOTestPlugin.getPlugin(); + Bundle bundle = plugin.getBundle(); + URL url = bundle.getEntry("/"); + bundleLocation = FileLocator.toFileURL(url).getFile(); + } + + public void stop() throws Exception + { + cdoClient.stop(); + cdoClient = null; + } + + public ResourceManager createResourceManager(ResourceSet resourceSet) + { + ResourceManager resourceManager = (ResourceManager) cdoClient.getBean("resourceManager"); + resourceManager.setResourceSet(resourceSet); + + try + { + resourceManager.start(); + } + catch (Exception ex) + { + ex.printStackTrace(); + return null; + } + + return resourceManager; + } + + protected void createCDOClient(String name, Container parent) + { + cdoClient = createContainer(name, CDO_CLIENT_LOCATION, parent); + } + + protected ContainerImpl createContainer(String name, String location, Container parent) + { + return new ContainerImpl(bundleLocation, location, name, parent, CDOTestPlugin.class + .getClassLoader()); + } +} diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/topology/AbstractTopologyTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/topology/AbstractTopologyTest.java new file mode 100644 index 0000000000..67bc9b2696 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/topology/AbstractTopologyTest.java @@ -0,0 +1,168 @@ +/*************************************************************************** + * 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.topology; + + +import org.eclipse.emf.cdo.client.CDOResource; +import org.eclipse.emf.cdo.client.ResourceManager; +import org.eclipse.emf.cdo.client.impl.CDOResourceFactoryImpl; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; + +import org.springframework.jdbc.core.JdbcTemplate; + +import java.io.IOException; + +import javax.sql.DataSource; + +import junit.framework.TestCase; + + +public abstract class AbstractTopologyTest extends TestCase +{ + public static final String CDO_TEST_MODE_KEY = "cdo.test.mode"; + + public static final String CLIENT_SEPARATED_SERVER_MODE = "client-separated-server"; + + public static final String CLIENT_SERVER_MODE = "client-server"; + + public static final String CLIENT_MODE = "client"; + + public static final String EMBEDDED_MODE = "embedded"; + + private ITopology topology; + + @Override + protected void setUp() throws Exception + { + System.out.println("========================================================================="); + System.out.println("TC_START " + getName()); + System.out.println("========================================================================="); + + super.setUp(); + topology = createTopology(); + topology.start(); + } + + @Override + protected void tearDown() throws Exception + { + JdbcTemplate jdbc = getJdbcTemplate(); + wipeDatabase(jdbc); + + topology.stop(); + super.tearDown(); + + System.out.println("========================================================================="); + System.out.println("TC_END " + getName()); + System.out.println("========================================================================="); + System.out.println(); + } + + protected void wipeDatabase(JdbcTemplate jdbc) + { + jdbc.execute("DROP TABLE CDO_ATTRIBUTE"); + jdbc.execute("DROP TABLE CDO_CLASS"); + jdbc.execute("DROP TABLE CDO_CONTENT"); + jdbc.execute("DROP TABLE CDO_OBJECT"); + jdbc.execute("DROP TABLE CDO_PACKAGE"); + jdbc.execute("DROP TABLE CDO_REFERENCE"); + jdbc.execute("DROP TABLE CDO_RESOURCE"); + } + + protected ITopology getTopology() + { + return topology; + } + + protected DataSource getDataSource() + { + return topology.getDataSource(); + } + + protected JdbcTemplate getJdbcTemplate() + { + return new JdbcTemplate(getDataSource()); + } + + protected ResourceManager createResourceManager(ResourceSet resourceSet) + { + return topology.createResourceManager(resourceSet); + } + + protected ResourceManager createResourceManager() + { + ResourceSet resourceSet = new ResourceSetImpl(); + return topology.createResourceManager(resourceSet); + } + + protected CDOResource createResource(String path) + { + ResourceManager resourceManager = createResourceManager(); + URI uri = CDOResourceFactoryImpl.formatURI(path); + return (CDOResource) resourceManager.createResource(uri); + } + + protected CDOResource getResource(String path) + { + ResourceManager resourceManager = createResourceManager(); + URI uri = CDOResourceFactoryImpl.formatURI(path); + return (CDOResource) resourceManager.getResource(uri, true); + } + + protected EObject loadRoot(String path) throws IOException + { + CDOResource resource = getResource(path); + return (EObject) resource.getContents().get(0); + } + + protected CDOResource saveRoot(EObject root, String path) throws IOException + { + CDOResource resource = createResource(path); + resource.getContents().add(root); + resource.save(null); + return resource; + } + + protected ITopology createTopology() + { + String mode = getMode(); + if (EMBEDDED_MODE.equals(mode)) + { + return new EmbeddedTopology(); + } + + if (CLIENT_MODE.equals(mode)) + { + return new ClientTopology(); + } + + if (CLIENT_SERVER_MODE.equals(mode)) + { + return new ClientServerTopology(); + } + + if (CLIENT_SEPARATED_SERVER_MODE.equals(mode)) + { + return new ClientSeparatedServerTopology(); + } + + return null; + } + + protected String getMode() + { + return System.getProperty(CDO_TEST_MODE_KEY, EMBEDDED_MODE).toLowerCase(); + } +} diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/topology/ClientSeparatedServerTopology.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/topology/ClientSeparatedServerTopology.java new file mode 100644 index 0000000000..fc6146e0aa --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/topology/ClientSeparatedServerTopology.java @@ -0,0 +1,77 @@ +/*************************************************************************** + * 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.topology; + + +import org.eclipse.net4j.core.Acceptor; +import org.eclipse.net4j.spring.Container; + +import javax.sql.DataSource; + + +public class ClientSeparatedServerTopology extends AbstractTopology +{ + private Container serverNet4j; + + private Container net4jServer; + + private Container cdoServer; + + private Container clientNet4j; + + private Container net4jClient; + + private Acceptor acceptor; + + public ClientSeparatedServerTopology() + { + } + + public void start() throws Exception + { + super.start(); + + // Start server + serverNet4j = createContainer("server", NET4J_LOCATION, null); + net4jServer = createContainer("socket", NET4J_SERVER_LOCATION, serverNet4j); + cdoServer = createContainer("cdo", CDO_SERVER_LOCATION, net4jServer); + + acceptor = (Acceptor) cdoServer.getBean("acceptor", Acceptor.class); + acceptor.start(); + + // Start client + clientNet4j = createContainer("client", NET4J_LOCATION, null); + net4jClient = createContainer("socket", NET4J_CLIENT_LOCATION, clientNet4j); + createCDOClient("cdo", net4jClient); + } + + public void stop() throws Exception + { + super.stop(); + + //Stop client + net4jClient.stop(); + clientNet4j.stop(); + + //Stop server + acceptor.stop(); + acceptor = null; + + cdoServer.stop(); + net4jServer.stop(); + serverNet4j.stop(); + } + + public DataSource getDataSource() + { + return (DataSource) cdoServer.getBean("dataSource"); + } +} diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/topology/ClientServerTopology.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/topology/ClientServerTopology.java new file mode 100644 index 0000000000..d71aef99f4 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/topology/ClientServerTopology.java @@ -0,0 +1,74 @@ +/*************************************************************************** + * 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.topology; + + +import org.eclipse.net4j.core.Acceptor; +import org.eclipse.net4j.spring.Container; + +import javax.sql.DataSource; + + +public class ClientServerTopology extends AbstractTopology +{ + private Container net4j; + + private Container net4jServer; + + private Container cdoServer; + + private Container net4jClient; + + private Acceptor acceptor; + + public ClientServerTopology() + { + } + + public void start() throws Exception + { + super.start(); + net4j = createContainer("net4j", NET4J_LOCATION, null); + + // Start server + net4jServer = createContainer("server", NET4J_SERVER_LOCATION, net4j); + cdoServer = createContainer("cdo", CDO_SERVER_LOCATION, net4jServer); + + acceptor = (Acceptor) cdoServer.getBean("acceptor", Acceptor.class); + acceptor.start(); + + // Start client + net4jClient = createContainer("client", NET4J_CLIENT_LOCATION, net4j); + createCDOClient("cdo", net4jClient); + } + + public void stop() throws Exception + { + super.stop(); + + //Stop client + net4jClient.stop(); + + //Stop server + acceptor.stop(); + acceptor = null; + + cdoServer.stop(); + net4jServer.stop(); + + net4j.stop(); + } + + public DataSource getDataSource() + { + return (DataSource) cdoServer.getBean("dataSource"); + } +} 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 new file mode 100644 index 0000000000..26c4be4b75 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/topology/ClientTopology.java @@ -0,0 +1,35 @@ +/*************************************************************************** + * 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.topology; + + +import javax.sql.DataSource; + + +public class ClientTopology extends AbstractTopology +{ + public ClientTopology() + { + } + + public void start() throws Exception + { + } + + public void stop() throws Exception + { + } + + public DataSource getDataSource() + { + return null; + } +} diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/topology/EmbeddedTopology.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/topology/EmbeddedTopology.java new file mode 100644 index 0000000000..6b6b2eb048 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/topology/EmbeddedTopology.java @@ -0,0 +1,35 @@ +/*************************************************************************** + * 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.topology; + + +import javax.sql.DataSource; + + +public class EmbeddedTopology extends AbstractTopology +{ + public EmbeddedTopology() + { + } + + public void start() throws Exception + { + } + + public void stop() throws Exception + { + } + + public DataSource getDataSource() + { + return null; + } +} diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/topology/ITopology.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/topology/ITopology.java new file mode 100644 index 0000000000..99a30b2867 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/topology/ITopology.java @@ -0,0 +1,30 @@ +/*************************************************************************** + * 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.topology; + + +import org.eclipse.emf.cdo.client.ResourceManager; + +import org.eclipse.emf.ecore.resource.ResourceSet; + +import javax.sql.DataSource; + + +public interface ITopology +{ + public void start() throws Exception; + + public void stop() throws Exception; + + public ResourceManager createResourceManager(ResourceSet resourceSet); + + public DataSource getDataSource(); +} |