diff options
8 files changed, 92 insertions, 22 deletions
diff --git a/plugins/org.eclipse.emf.cdo.tests/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.tests/META-INF/MANIFEST.MF index fc95fe07a4..4a51dd061e 100644 --- a/plugins/org.eclipse.emf.cdo.tests/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.emf.cdo.tests/META-INF/MANIFEST.MF @@ -11,7 +11,8 @@ Bundle-RequiredExecutionEnvironment: J2SE-1.5 Bundle-ClassPath: . Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)", org.eclipse.emf.ecore.xmi;bundle-version="[2.4.0,3.0.0)";visibility:=reexport, - org.eclipse.net4j.db.hsqldb;bundle-version="[2.0.0,3.0.0)";resolution:=optional;visibility:=reexport, + org.eclipse.net4j.db.hsqldb;bundle-version="[2.0.0,3.0.0)";visibility:=reexport, + org.eclipse.net4j.db.derby;bundle-version="[2.0.0,3.0.0)";visibility:=reexport, org.eclipse.net4j.jvm;bundle-version="[2.0.0,3.0.0)";resolution:=optional;visibility:=reexport, org.eclipse.net4j.tcp;bundle-version="[2.0.0,3.0.0)";resolution:=optional;visibility:=reexport, org.eclipse.emf.cdo.server;bundle-version="[2.0.0,3.0.0)";visibility:=reexport, @@ -44,6 +45,7 @@ Export-Package: base;version="2.0.0", reference.util;version="2.0.0" Import-Package: org.apache.commons.collections;version="[3.2.0,4.0.0)", org.apache.commons.logging;version="[1.1.0,2.0.0)", + org.apache.derby.jdbc, org.dom4j;version="[1.6.0,2.0.0)", org.hsqldb;version="[1.8.0,2.0.0)", org.hsqldb.jdbc;version="[1.8.0,2.0.0)" diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTestsDB.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTestsDB.java new file mode 100644 index 0000000000..e51dc2404b --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTestsDB.java @@ -0,0 +1,31 @@ +/*************************************************************************** + * Copyright (c) 2004 - 2008 Eike Stepper, 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; + +import junit.framework.Test; +import junit.framework.TestSuite; + +/** + * @author Eike Stepper + */ +public class AllTestsDB extends AllTestsAllConfigs +{ + public static Test suite() + { + return new AllTestsDB().getTestSuite("CDO Tests (DB Horizontal Hsql)"); + } + + @Override + protected void initConfigSuites(TestSuite parent) + { + initConfigSuite(parent, COMBINED, DB_HORIZONTAL_HSQL, TCP, NATIVE); + } +} diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTestsHibernate.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTestsHibernate.java index 139d1a629d..a565230bbe 100644 --- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTestsHibernate.java +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTestsHibernate.java @@ -10,11 +10,6 @@ **************************************************************************/ package org.eclipse.emf.cdo.tests; -import org.eclipse.emf.cdo.tests.config.ContainerConfig; -import org.eclipse.emf.cdo.tests.config.ModelConfig; -import org.eclipse.emf.cdo.tests.config.RepositoryConfig; -import org.eclipse.emf.cdo.tests.config.SessionConfig; - import junit.framework.Test; import junit.framework.TestSuite; @@ -29,12 +24,8 @@ public class AllTestsHibernate extends AllTestsAllConfigs } @Override - protected void initConfigSuite(TestSuite parent, ContainerConfig containerConfig, RepositoryConfig repositoryConfig, - SessionConfig sessionConfig, ModelConfig modelConfig) + protected void initConfigSuites(TestSuite parent) { - if (repositoryConfig == HIBERNATE) - { - super.initConfigSuite(parent, containerConfig, repositoryConfig, sessionConfig, modelConfig); - } + initConfigSuite(parent, COMBINED, HIBERNATE, TCP, NATIVE); } } diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/RepositoryConfig.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/RepositoryConfig.java index 65bd709790..ca83e66326 100644 --- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/RepositoryConfig.java +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/RepositoryConfig.java @@ -18,12 +18,23 @@ import org.eclipse.emf.cdo.server.IRepositoryProvider; import org.eclipse.emf.cdo.server.IStore; import org.eclipse.emf.cdo.server.StoreUtil; import org.eclipse.emf.cdo.server.IRepository.Props; +import org.eclipse.emf.cdo.server.db.CDODBUtil; import org.eclipse.emf.cdo.server.db.IMappingStrategy; +import org.eclipse.net4j.db.DBUtil; +import org.eclipse.net4j.db.IDBAdapter; +import org.eclipse.net4j.db.hsqldb.HSQLDBDataSource; +import org.eclipse.net4j.db.internal.derby.EmbeddedDerbyAdapter; +import org.eclipse.net4j.db.internal.hsqldb.HSQLDBAdapter; import org.eclipse.net4j.util.ObjectUtil; import org.eclipse.net4j.util.container.IManagedContainer; +import org.eclipse.net4j.util.io.IOUtil; +import org.eclipse.net4j.util.io.TMPUtil; import org.eclipse.net4j.util.lifecycle.LifecycleUtil; +import org.apache.derby.jdbc.EmbeddedDataSource; + +import java.io.File; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; @@ -97,7 +108,6 @@ public abstract class RepositoryConfig extends Config implements RepositoryProvi protected void initRepositoryProperties(Map<String, String> props) { props.put(Props.PROP_OVERRIDE_UUID, ""); // UUID := name !!! - props.put(Props.PROP_SUPPORTING_REVISION_DELTAS, "true"); props.put(Props.PROP_CURRENT_LRU_CAPACITY, "10000"); props.put(Props.PROP_REVISED_LRU_CAPACITY, "10000"); } @@ -135,8 +145,13 @@ public abstract class RepositoryConfig extends Config implements RepositoryProvi store = createStore(); } - Repository repository = (Repository)CDOServerUtil.createRepository(name, store, getRepositoryProperties()); + Map<String, String> props = getRepositoryProperties(); + if (store.hasWriteDeltaSupport()) + { + props.put(Props.PROP_SUPPORTING_REVISION_DELTAS, "true"); + } + Repository repository = (Repository)CDOServerUtil.createRepository(name, store, props); RevisionManager revisionManager = getTestRevisionManager(); if (revisionManager != null) { @@ -189,27 +204,58 @@ public abstract class RepositoryConfig extends Config implements RepositoryProvi */ public static abstract class DB extends RepositoryConfig { + private File dbFolder; + public DB(String name) { super(name); } + @SuppressWarnings("restriction") protected IStore createHsqlStore() { - return null; + IDBAdapter dbAdapter = new HSQLDBAdapter(); + + HSQLDBDataSource dataSource = new HSQLDBDataSource(); + dataSource.setDatabase("jdbc:hsqldb:mem:dbtest"); + dataSource.setUser("sa"); + + return CDODBUtil.createStore(createMappingStrategy(), dbAdapter, DBUtil.createConnectionProvider(dataSource)); } + @SuppressWarnings("restriction") protected IStore createDerbyStore() { - return null; + IDBAdapter dbAdapter = new EmbeddedDerbyAdapter(); + + dbFolder = TMPUtil.createTempFolder("derby_", null, new File("/temp")); + deleteDBFolder(); + + EmbeddedDataSource dataSource = new EmbeddedDataSource(); + dataSource.setDatabaseName(dbFolder.getAbsolutePath()); + dataSource.setCreateDatabase("create"); + + return CDODBUtil.createStore(createMappingStrategy(), dbAdapter, DBUtil.createConnectionProvider(dataSource)); } protected IMappingStrategy createHorizontalMappingStrategy() { - return null; + return CDODBUtil.createHorizontalMappingStrategy(); } protected abstract IMappingStrategy createMappingStrategy(); + + @Override + protected void tearDown() throws Exception + { + deleteDBFolder(); + super.tearDown(); + } + + private void deleteDBFolder() + { + IOUtil.delete(dbFolder); + } } /** diff --git a/plugins/org.eclipse.net4j.db.tests/src/org/eclipse/net4j/db/tests/AbstractDBTest.java b/plugins/org.eclipse.net4j.db.tests/src/org/eclipse/net4j/db/tests/AbstractDBTest.java index 193b2f6a65..d3ed4b8857 100644 --- a/plugins/org.eclipse.net4j.db.tests/src/org/eclipse/net4j/db/tests/AbstractDBTest.java +++ b/plugins/org.eclipse.net4j.db.tests/src/org/eclipse/net4j/db/tests/AbstractDBTest.java @@ -40,7 +40,7 @@ public abstract class AbstractDBTest<DATA_SOURCE extends DataSource> extends Abs { dbAdapter = createDBAdapter(); DATA_SOURCE dataSource = (DATA_SOURCE)dbAdapter.createJDBCDataSource(); - configureDataSourcer(dataSource); + configureDataSource(dataSource); dbConnectionProvider = DBUtil.createConnectionProvider(dataSource); } @@ -51,7 +51,7 @@ public abstract class AbstractDBTest<DATA_SOURCE extends DataSource> extends Abs protected abstract IDBAdapter createDBAdapter(); - protected abstract void configureDataSourcer(DATA_SOURCE dataSource); + protected abstract void configureDataSource(DATA_SOURCE dataSource); protected Connection getConnection() { diff --git a/plugins/org.eclipse.net4j.db.tests/src/org/eclipse/net4j/db/tests/DerbyTest.java b/plugins/org.eclipse.net4j.db.tests/src/org/eclipse/net4j/db/tests/DerbyTest.java index fa8dcd706e..1702611e82 100644 --- a/plugins/org.eclipse.net4j.db.tests/src/org/eclipse/net4j/db/tests/DerbyTest.java +++ b/plugins/org.eclipse.net4j.db.tests/src/org/eclipse/net4j/db/tests/DerbyTest.java @@ -32,7 +32,7 @@ public class DerbyTest extends AbstractDBTest<EmbeddedDataSource> } @Override - protected void configureDataSourcer(EmbeddedDataSource dataSource) + protected void configureDataSource(EmbeddedDataSource dataSource) { dbFolder = TMPUtil.createTempFolder("derby_", null, new File("/temp")); deleteDBFolder(); diff --git a/plugins/org.eclipse.net4j.db.tests/src/org/eclipse/net4j/db/tests/HsqldbTest.java b/plugins/org.eclipse.net4j.db.tests/src/org/eclipse/net4j/db/tests/HsqldbTest.java index 4d32f372cf..ae8e17cdbb 100644 --- a/plugins/org.eclipse.net4j.db.tests/src/org/eclipse/net4j/db/tests/HsqldbTest.java +++ b/plugins/org.eclipse.net4j.db.tests/src/org/eclipse/net4j/db/tests/HsqldbTest.java @@ -25,7 +25,7 @@ public class HsqldbTest extends AbstractDBTest<HSQLDBDataSource> } @Override - protected void configureDataSourcer(HSQLDBDataSource dataSource) + protected void configureDataSource(HSQLDBDataSource dataSource) { dataSource.setDatabase("jdbc:hsqldb:mem:dbtest"); dataSource.setUser("sa"); diff --git a/plugins/org.eclipse.net4j.db.tests/src/org/eclipse/net4j/db/tests/MysqlTest.java b/plugins/org.eclipse.net4j.db.tests/src/org/eclipse/net4j/db/tests/MysqlTest.java index 37d60b71fa..e9233caf42 100644 --- a/plugins/org.eclipse.net4j.db.tests/src/org/eclipse/net4j/db/tests/MysqlTest.java +++ b/plugins/org.eclipse.net4j.db.tests/src/org/eclipse/net4j/db/tests/MysqlTest.java @@ -26,7 +26,7 @@ public class MysqlTest extends AbstractDBTest<MysqlDataSource> } @Override - protected void configureDataSourcer(MysqlDataSource dataSource) + protected void configureDataSource(MysqlDataSource dataSource) { dataSource.setDatabaseName("dbtest"); } |