Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2008-09-22 09:20:06 +0000
committerEike Stepper2008-09-22 09:20:06 +0000
commit91cf0441c6eec7922615a0bde10d31cb7ccf5f7b (patch)
treeba551831427f0b232b1295f123c0fab7b41f4420 /plugins
parent5f8e5f6c696fac456ede5cd5162449beb486e1d4 (diff)
downloadcdo-91cf0441c6eec7922615a0bde10d31cb7ccf5f7b.tar.gz
cdo-91cf0441c6eec7922615a0bde10d31cb7ccf5f7b.tar.xz
cdo-91cf0441c6eec7922615a0bde10d31cb7ccf5f7b.zip
[247817] Develop configurable test bed
https://bugs.eclipse.org/bugs/show_bug.cgi?id=247817
Diffstat (limited to 'plugins')
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/CDOPackageImpl.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/CommitManager.java13
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/NotificationManager.java17
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/PackageManager.java22
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/QueryManager.java13
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Repository.java228
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/RepositoryFactory.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/ResourceManager.java22
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/RevisionManager.java26
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Session.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/SessionManager.java22
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Transaction.java5
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/TransactionCommitContextImpl.java8
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/XATransactionCommitContext.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/protocol/CDOServerIndication.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/protocol/CDOServerRequest.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/protocol/LoadRevisionIndication.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/CDOServerUtil.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IRepositoryElement.java8
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IStore.java6
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/HbCDOAutomaticPackageRefTest.java20
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/HbCDOPackageRefTest.java14
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/HbPackageRegistryTest.java7
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/HbResourceTest.java6
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/HbRevisionDeltaTest.java39
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/HbTransactionDeadLockTest.java6
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/CDO AllTests (All Configs).launch19
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/CDO AllTests.launch8
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/build.properties3
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/net4j/org/eclipse/net4j/tests/AbstractOMTest.java28
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AbstractCDOTest.java247
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTests.java61
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTestsAllConfigs.java79
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTestsHibernate.java40
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ChunkingWithMEMTest.java31
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ComplexTest.java11
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/NonCDOResourceTest.java1
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ResourceTest.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionDeltaTest.java8
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionDeltaWithDeltaSupportTest.java32
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionDeltaWithoutDeltaSupportTest.java32
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/StateMachineTest.java6
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/TransactionDeadLockTest.java5
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ViewTest.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_246456_Test.java1
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_248052_Test.java28
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/Config.java17
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/ConfigConstants.java41
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/ConfigTest.java180
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/ConfigTestSuite.java35
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/ContainerConfig.java53
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/ContainerProvider.java6
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/RepositoryConfig.java93
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/SessionConfig.java80
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/SessionProvider.java11
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/store/logic/TestLogic.java2
56 files changed, 998 insertions, 664 deletions
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/CDOPackageImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/CDOPackageImpl.java
index e83db12d9b..d7840a48ac 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/CDOPackageImpl.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/CDOPackageImpl.java
@@ -54,9 +54,6 @@ public class CDOPackageImpl extends CDOModelElementImpl implements InternalCDOPa
private String parentURI;
- /**
- * TODO If this is only needed by the client then put it into server info
- */
private transient boolean persistent = true;
public CDOPackageImpl()
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/CommitManager.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/CommitManager.java
index dc2cc04632..205af5c86a 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/CommitManager.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/CommitManager.java
@@ -11,6 +11,7 @@
package org.eclipse.emf.cdo.internal.server;
import org.eclipse.emf.cdo.internal.server.Transaction.InternalCommitContext;
+import org.eclipse.emf.cdo.server.IRepository;
import org.eclipse.emf.cdo.server.IRepositoryElement;
import org.eclipse.net4j.util.lifecycle.Lifecycle;
@@ -29,22 +30,26 @@ import java.util.concurrent.Future;
*/
public class CommitManager extends Lifecycle implements IRepositoryElement
{
- private Repository repository;
+ private IRepository repository;
private ExecutorService executors;
private Map<Transaction, TransactionCommitContextEntry> commitContextMap = new ConcurrentHashMap<Transaction, TransactionCommitContextEntry>();
- public CommitManager(Repository repository)
+ public CommitManager()
{
- this.repository = repository;
}
- public Repository getRepository()
+ public IRepository getRepository()
{
return repository;
}
+ public void setRepository(IRepository repository)
+ {
+ this.repository = repository;
+ }
+
public synchronized ExecutorService getExecutors()
{
if (executors == null)
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/NotificationManager.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/NotificationManager.java
index 0cc2b6526e..289f43c971 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/NotificationManager.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/NotificationManager.java
@@ -16,6 +16,7 @@ import org.eclipse.emf.cdo.common.id.CDOIDAndVersion;
import org.eclipse.emf.cdo.common.id.CDOIDUtil;
import org.eclipse.emf.cdo.common.revision.delta.CDORevisionDelta;
import org.eclipse.emf.cdo.server.INotificationManager;
+import org.eclipse.emf.cdo.server.IRepository;
import org.eclipse.emf.cdo.server.IStoreWriter.CommitContext;
import org.eclipse.net4j.util.lifecycle.Lifecycle;
@@ -29,18 +30,22 @@ import java.util.List;
*/
public class NotificationManager extends Lifecycle implements INotificationManager
{
- private Repository repository;
+ private IRepository repository;
- public NotificationManager(Repository repository)
+ public NotificationManager()
{
- this.repository = repository;
}
- public Repository getRepository()
+ public IRepository getRepository()
{
return repository;
}
+ public void setRepository(IRepository repository)
+ {
+ this.repository = repository;
+ }
+
public void notifyCommit(Session session, CommitContext commitContext)
{
CDORevisionDelta[] arrayOfDeltas = commitContext.getDirtyObjectDeltas();
@@ -60,12 +65,14 @@ public class NotificationManager extends Lifecycle implements INotificationManag
dirtyIDs.add(dirtyIDAndVersion);
deltas.add(delta);
}
+
List<CDOID> detachedObjects = new ArrayList<CDOID>(detachedObjectsSize);
for (int i = 0; i < detachedObjectsSize; i++)
{
detachedObjects.add(arrayOfDetachedObjects[i]);
}
- SessionManager sessionManager = repository.getSessionManager();
+
+ SessionManager sessionManager = (SessionManager)repository.getSessionManager();
sessionManager.handleCommitNotification(commitContext.getTimeStamp(), dirtyIDs, detachedObjects, deltas, session);
}
}
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/PackageManager.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/PackageManager.java
index ed32508a7d..813d9edb84 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/PackageManager.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/PackageManager.java
@@ -16,6 +16,7 @@ import org.eclipse.emf.cdo.common.model.CDOPackage;
import org.eclipse.emf.cdo.common.model.CDOPackageInfo;
import org.eclipse.emf.cdo.internal.common.model.CDOPackageManagerImpl;
import org.eclipse.emf.cdo.server.IPackageManager;
+import org.eclipse.emf.cdo.server.IRepository;
import org.eclipse.emf.cdo.server.IStoreReader;
import org.eclipse.emf.cdo.server.StoreThreadLocal;
@@ -26,18 +27,31 @@ import java.util.Collection;
*/
public class PackageManager extends CDOPackageManagerImpl implements IPackageManager
{
- private Repository repository;
+ private IRepository repository;
- public PackageManager(Repository repository)
+ /**
+ * @since 2.0
+ */
+ public PackageManager()
{
- this.repository = repository;
}
- public Repository getRepository()
+ /**
+ * @since 2.0
+ */
+ public IRepository getRepository()
{
return repository;
}
+ /**
+ * @since 2.0
+ */
+ public void setRepository(IRepository repository)
+ {
+ this.repository = repository;
+ }
+
public CDOIDObjectFactory getCDOIDObjectFactory()
{
return repository.getStore().getCDOIDObjectFactory();
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/QueryManager.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/QueryManager.java
index dcf52db9b8..c4d4a31125 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/QueryManager.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/QueryManager.java
@@ -15,6 +15,7 @@ import org.eclipse.emf.cdo.common.query.CDOQueryInfo;
import org.eclipse.emf.cdo.internal.server.bundle.OM;
import org.eclipse.emf.cdo.server.IQueryContext;
import org.eclipse.emf.cdo.server.IQueryHandler;
+import org.eclipse.emf.cdo.server.IRepository;
import org.eclipse.emf.cdo.server.IRepositoryElement;
import org.eclipse.emf.cdo.server.IView;
@@ -39,7 +40,7 @@ public class QueryManager extends Lifecycle implements IRepositoryElement
{
private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG_SESSION, QueryManager.class);
- private Repository repository;
+ private IRepository repository;
private Map<Integer, QueryContext> queryContexts = new ConcurrentHashMap<Integer, QueryContext>();
@@ -47,16 +48,20 @@ public class QueryManager extends Lifecycle implements IRepositoryElement
private int nextQuery;
- public QueryManager(Repository repository)
+ public QueryManager()
{
- this.repository = repository;
}
- public Repository getRepository()
+ public IRepository getRepository()
{
return repository;
}
+ public void setRepository(IRepository repository)
+ {
+ this.repository = repository;
+ }
+
public synchronized ExecutorService getExecutors()
{
if (executors == null)
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Repository.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Repository.java
index 8f3e17745e..71b9d422d8 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Repository.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Repository.java
@@ -57,19 +57,19 @@ public class Repository extends Container<IRepositoryElement> implements IReposi
private Boolean verifyingRevisions;
- private PackageManager packageManager = createPackageManager();
+ private PackageManager packageManager;
- private SessionManager sessionManager = createSessionManager();
+ private SessionManager sessionManager;
- private ResourceManager resourceManager = createResourceManager();
+ private ResourceManager resourceManager;
- private RevisionManager revisionManager = createRevisionManager();
+ private RevisionManager revisionManager;
- private QueryManager queryManager = createQueryManager();
+ private QueryManager queryManager;
- private NotificationManager notificationManager = createNotificationManager();
+ private NotificationManager notificationManager;
- private CommitManager commitManager = createCommitManager();
+ private CommitManager commitManager;
private IQueryHandlerProvider queryHandlerProvider;
@@ -106,8 +106,15 @@ public class Repository extends Container<IRepositoryElement> implements IReposi
{
if (uuid == null)
{
- String value = getProperties().get(Props.PROP_OVERRIDE_UUID);
- uuid = StringUtil.isEmpty(value) ? UUID.randomUUID().toString() : value;
+ uuid = getProperties().get(Props.PROP_OVERRIDE_UUID);
+ if (uuid == null)
+ {
+ uuid = UUID.randomUUID().toString();
+ }
+ else if (uuid.length() == 0)
+ {
+ uuid = getName();
+ }
}
return uuid;
@@ -166,16 +173,40 @@ public class Repository extends Container<IRepositoryElement> implements IReposi
return packageManager;
}
+ /**
+ * @since 2.0
+ */
+ public void setPackageManager(PackageManager packageManager)
+ {
+ this.packageManager = packageManager;
+ }
+
public SessionManager getSessionManager()
{
return sessionManager;
}
+ /**
+ * @since 2.0
+ */
+ public void setSessionManager(SessionManager sessionManager)
+ {
+ this.sessionManager = sessionManager;
+ }
+
public ResourceManager getResourceManager()
{
return resourceManager;
}
+ /**
+ * @since 2.0
+ */
+ public void setResourceManager(ResourceManager resourceManager)
+ {
+ this.resourceManager = resourceManager;
+ }
+
public RevisionManager getRevisionManager()
{
return revisionManager;
@@ -184,6 +215,14 @@ public class Repository extends Container<IRepositoryElement> implements IReposi
/**
* @since 2.0
*/
+ public void setRevisionManager(RevisionManager revisionManager)
+ {
+ this.revisionManager = revisionManager;
+ }
+
+ /**
+ * @since 2.0
+ */
public QueryManager getQueryManager()
{
return queryManager;
@@ -192,6 +231,14 @@ public class Repository extends Container<IRepositoryElement> implements IReposi
/**
* @since 2.0
*/
+ public void setQueryManager(QueryManager queryManager)
+ {
+ this.queryManager = queryManager;
+ }
+
+ /**
+ * @since 2.0
+ */
public NotificationManager getNotificationManager()
{
return notificationManager;
@@ -200,6 +247,14 @@ public class Repository extends Container<IRepositoryElement> implements IReposi
/**
* @since 2.0
*/
+ public void setNotificationManager(NotificationManager notificationManager)
+ {
+ this.notificationManager = notificationManager;
+ }
+
+ /**
+ * @since 2.0
+ */
public CommitManager getCommitManager()
{
return commitManager;
@@ -208,6 +263,14 @@ public class Repository extends Container<IRepositoryElement> implements IReposi
/**
* @since 2.0
*/
+ public void setCommitManager(CommitManager commitManager)
+ {
+ this.commitManager = commitManager;
+ }
+
+ /**
+ * @since 2.0
+ */
public IQueryHandlerProvider getQueryHandlerProvider()
{
return queryHandlerProvider;
@@ -294,54 +357,26 @@ public class Repository extends Container<IRepositoryElement> implements IReposi
return MessageFormat.format("Repository[{0}]", name);
}
- protected PackageManager createPackageManager()
- {
- return new PackageManager(this);
- }
-
- protected SessionManager createSessionManager()
- {
- return new SessionManager(this);
- }
-
- protected ResourceManager createResourceManager()
- {
- return new ResourceManager(this);
- }
-
- protected RevisionManager createRevisionManager()
- {
- return new RevisionManager(this);
- }
-
- /**
- * @since 2.0
- */
- protected QueryManager createQueryManager()
- {
- return new QueryManager(this);
- }
-
- /**
- * @since 2.0
- */
- protected NotificationManager createNotificationManager()
- {
- return new NotificationManager(this);
- }
-
- /**
- * @since 2.0
- */
- protected CommitManager createCommitManager()
- {
- return new CommitManager(this);
- }
-
@Override
protected void doBeforeActivate() throws Exception
{
super.doBeforeActivate();
+ checkArg(packageManager, "packageManager");
+ checkArg(sessionManager, "sessionManager");
+ checkArg(resourceManager, "resourceManager");
+ checkArg(revisionManager, "revisionManager");
+ checkArg(queryManager, "queryManager");
+ checkArg(notificationManager, "notificationManager");
+ checkArg(commitManager, "commitManager");
+
+ packageManager.setRepository(this);
+ sessionManager.setRepository(this);
+ resourceManager.setRepository(this);
+ revisionManager.setRepository(this);
+ queryManager.setRepository(this);
+ notificationManager.setRepository(this);
+ commitManager.setRepository(this);
+
if (StringUtil.isEmpty(name))
{
throw new IllegalArgumentException("name is null or empty");
@@ -414,4 +449,91 @@ public class Repository extends Container<IRepositoryElement> implements IReposi
LifecycleUtil.deactivate(packageManager);
LifecycleUtil.deactivate(store);
}
+
+ /**
+ * @author Eike Stepper
+ * @since 2.0
+ */
+ public static class Default extends Repository
+ {
+ public Default()
+ {
+ }
+
+ @Override
+ protected void doBeforeActivate() throws Exception
+ {
+ if (getPackageManager() == null)
+ {
+ setPackageManager(createPackageManager());
+ }
+
+ if (getSessionManager() == null)
+ {
+ setSessionManager(createSessionManager());
+ }
+
+ if (getResourceManager() == null)
+ {
+ setResourceManager(createResourceManager());
+ }
+
+ if (getRevisionManager() == null)
+ {
+ setRevisionManager(createRevisionManager());
+ }
+
+ if (getQueryManager() == null)
+ {
+ setQueryManager(createQueryManager());
+ }
+
+ if (getNotificationManager() == null)
+ {
+ setNotificationManager(createNotificationManager());
+ }
+
+ if (getCommitManager() == null)
+ {
+ setCommitManager(createCommitManager());
+ }
+
+ super.doBeforeActivate();
+ }
+
+ protected PackageManager createPackageManager()
+ {
+ return new PackageManager();
+ }
+
+ protected SessionManager createSessionManager()
+ {
+ return new SessionManager();
+ }
+
+ protected ResourceManager createResourceManager()
+ {
+ return new ResourceManager();
+ }
+
+ protected RevisionManager createRevisionManager()
+ {
+ return new RevisionManager();
+ }
+
+ protected QueryManager createQueryManager()
+ {
+ return new QueryManager();
+ }
+
+ protected NotificationManager createNotificationManager()
+ {
+ return new NotificationManager();
+ }
+
+ protected CommitManager createCommitManager()
+ {
+ return new CommitManager();
+ }
+ }
}
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/RepositoryFactory.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/RepositoryFactory.java
index 6d45c6968f..20087bb556 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/RepositoryFactory.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/RepositoryFactory.java
@@ -35,7 +35,7 @@ public class RepositoryFactory implements IRepositoryFactory
public Repository createRepository()
{
- return new Repository();
+ return new Repository.Default();
}
public static IRepository get(IManagedContainer container, String name)
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/ResourceManager.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/ResourceManager.java
index a21ed24a67..aa1b0447b3 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/ResourceManager.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/ResourceManager.java
@@ -12,6 +12,7 @@ package org.eclipse.emf.cdo.internal.server;
import org.eclipse.emf.cdo.common.id.CDOID;
import org.eclipse.emf.cdo.internal.server.bundle.OM;
+import org.eclipse.emf.cdo.server.IRepository;
import org.eclipse.emf.cdo.server.IResourceManager;
import org.eclipse.emf.cdo.server.IStoreReader;
import org.eclipse.emf.cdo.server.StoreThreadLocal;
@@ -29,22 +30,35 @@ public class ResourceManager extends Lifecycle implements IResourceManager
{
private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG_SESSION, SessionManager.class);
- private Repository repository;
+ private IRepository repository;
private Map<CDOID, String> idToPathMap = new HashMap<CDOID, String>();
private Map<String, CDOID> pathToIDMap = new HashMap<String, CDOID>();
- public ResourceManager(Repository repository)
+ /**
+ * @since 2.0
+ */
+ public ResourceManager()
{
- this.repository = repository;
}
- public Repository getRepository()
+ /**
+ * @since 2.0
+ */
+ public IRepository getRepository()
{
return repository;
}
+ /**
+ * @since 2.0
+ */
+ public void setRepository(IRepository repository)
+ {
+ this.repository = repository;
+ }
+
public CDOID getResourceID(String path)
{
CDOID id = pathToIDMap.get(path);
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/RevisionManager.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/RevisionManager.java
index 436611f82e..d5516a9936 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/RevisionManager.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/RevisionManager.java
@@ -20,6 +20,7 @@ import org.eclipse.emf.cdo.common.model.resource.CDOPathFeature;
import org.eclipse.emf.cdo.common.revision.CDOReferenceProxy;
import org.eclipse.emf.cdo.common.revision.CDORevision;
import org.eclipse.emf.cdo.internal.common.revision.CDORevisionResolverImpl;
+import org.eclipse.emf.cdo.server.IRepository;
import org.eclipse.emf.cdo.server.IRevisionManager;
import org.eclipse.emf.cdo.server.IStoreChunkReader;
import org.eclipse.emf.cdo.server.IStoreReader;
@@ -38,21 +39,34 @@ import java.util.List;
*/
public class RevisionManager extends CDORevisionResolverImpl implements IRevisionManager
{
- private Repository repository;
+ private IRepository repository;
private CDOPathFeature cdoPathFeature;
- public RevisionManager(Repository repository)
+ /**
+ * @since 2.0
+ */
+ public RevisionManager()
{
- this.repository = repository;
- cdoPathFeature = repository.getPackageManager().getCDOResourcePackage().getCDOResourceClass().getCDOPathFeature();
}
- public Repository getRepository()
+ /**
+ * @since 2.0
+ */
+ public IRepository getRepository()
{
return repository;
}
+ /**
+ * @since 2.0
+ */
+ public void setRepository(IRepository repository)
+ {
+ this.repository = repository;
+ cdoPathFeature = repository.getPackageManager().getCDOResourcePackage().getCDOResourceClass().getCDOPathFeature();
+ }
+
public CDOIDObjectFactory getCDOIDObjectFactory()
{
return repository.getStore().getCDOIDObjectFactory();
@@ -75,7 +89,7 @@ public class RevisionManager extends CDORevisionResolverImpl implements IRevisio
if (revision.isResource())
{
String path = (String)revision.get(cdoPathFeature, 0);
- repository.getResourceManager().registerResource(revision.getID(), path);
+ ((Repository)repository).getResourceManager().registerResource(revision.getID(), path);
}
return super.addCachedRevision(revision);
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Session.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Session.java
index 7803df05a8..53d7f394df 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Session.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Session.java
@@ -223,7 +223,7 @@ public class Session extends Container<IView> implements ISession, CDOIDProvider
public void collectContainedRevisions(InternalCDORevision revision, int referenceChunk, Set<CDOID> revisions,
List<InternalCDORevision> additionalRevisions)
{
- RevisionManager revisionManager = getSessionManager().getRepository().getRevisionManager();
+ RevisionManager revisionManager = (RevisionManager)getSessionManager().getRepository().getRevisionManager();
CDOClass cdoClass = revision.getCDOClass();
CDOFeature[] features = cdoClass.getAllFeatures();
for (int i = 0; i < features.length; i++)
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/SessionManager.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/SessionManager.java
index ec024b1eed..3bc9a5c77f 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/SessionManager.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/SessionManager.java
@@ -17,6 +17,7 @@ import org.eclipse.emf.cdo.common.id.CDOIDAndVersion;
import org.eclipse.emf.cdo.common.revision.delta.CDORevisionDelta;
import org.eclipse.emf.cdo.internal.server.bundle.OM;
import org.eclipse.emf.cdo.internal.server.protocol.CDOServerProtocol;
+import org.eclipse.emf.cdo.server.IRepository;
import org.eclipse.emf.cdo.server.ISession;
import org.eclipse.emf.cdo.server.ISessionManager;
import org.eclipse.emf.cdo.server.SessionCreationException;
@@ -35,22 +36,35 @@ public class SessionManager extends Container<ISession> implements ISessionManag
{
private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG_SESSION, SessionManager.class);
- private Repository repository;
+ private IRepository repository;
private Map<Integer, Session> sessions = new HashMap<Integer, Session>();
private int lastSessionID;
- public SessionManager(Repository repository)
+ /**
+ * @since 2.0
+ */
+ public SessionManager()
{
- this.repository = repository;
}
- public Repository getRepository()
+ /**
+ * @since 2.0
+ */
+ public IRepository getRepository()
{
return repository;
}
+ /**
+ * @since 2.0
+ */
+ public void setRepository(IRepository repository)
+ {
+ this.repository = repository;
+ }
+
public Session[] getSessions()
{
synchronized (sessions)
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Transaction.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Transaction.java
index bf710086ae..eb41bb5f5d 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Transaction.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Transaction.java
@@ -18,6 +18,7 @@ import org.eclipse.emf.cdo.common.model.CDOPackage;
import org.eclipse.emf.cdo.common.revision.CDORevision;
import org.eclipse.emf.cdo.common.revision.delta.CDORevisionDelta;
import org.eclipse.emf.cdo.internal.server.TransactionCommitContextImpl.TransactionPackageManager;
+import org.eclipse.emf.cdo.server.IRepository;
import org.eclipse.emf.cdo.server.ITransaction;
import org.eclipse.emf.cdo.server.IStoreWriter.CommitContext;
@@ -29,7 +30,7 @@ import java.util.List;
*/
public class Transaction extends View implements ITransaction
{
- private Repository repository;
+ private IRepository repository;
public Transaction(Session session, int viewID)
{
@@ -40,7 +41,7 @@ public class Transaction extends View implements ITransaction
/**
* @since 2.0
*/
- public Repository getRepository()
+ public IRepository getRepository()
{
return repository;
}
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/TransactionCommitContextImpl.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/TransactionCommitContextImpl.java
index 0aa5e71d58..2d24899a3a 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/TransactionCommitContextImpl.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/TransactionCommitContextImpl.java
@@ -402,7 +402,7 @@ public class TransactionCommitContextImpl implements IStoreWriter.CommitContext,
private void addNewPackages()
{
- PackageManager packageManager = transaction.getRepository().getPackageManager();
+ PackageManager packageManager = (PackageManager)transaction.getRepository().getPackageManager();
for (int i = 0; i < newPackages.length; i++)
{
CDOPackage cdoPackage = newPackages[i];
@@ -412,7 +412,7 @@ public class TransactionCommitContextImpl implements IStoreWriter.CommitContext,
private void addRevisions(CDORevision[] revisions)
{
- RevisionManager revisionManager = transaction.getRepository().getRevisionManager();
+ RevisionManager revisionManager = (RevisionManager)transaction.getRepository().getRevisionManager();
for (CDORevision revision : revisions)
{
if (revision != null)
@@ -434,7 +434,7 @@ public class TransactionCommitContextImpl implements IStoreWriter.CommitContext,
{
detachedRevisions.clear();
- RevisionManager revisionManager = transaction.getRepository().getRevisionManager();
+ RevisionManager revisionManager = (RevisionManager)transaction.getRepository().getRevisionManager();
for (CDOID id : getDetachedObjects())
{
@@ -453,7 +453,7 @@ public class TransactionCommitContextImpl implements IStoreWriter.CommitContext,
{
private List<CDOPackage> newPackages = new ArrayList<CDOPackage>();
- private PackageManager repositoryPackageManager = transaction.getRepository().getPackageManager();
+ private PackageManager repositoryPackageManager = (PackageManager)transaction.getRepository().getPackageManager();
public TransactionPackageManager()
{
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/XATransactionCommitContext.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/XATransactionCommitContext.java
index 51b2a9fc2e..611135b54b 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/XATransactionCommitContext.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/XATransactionCommitContext.java
@@ -39,7 +39,8 @@ public class XATransactionCommitContext extends TransactionCommitContextImpl
@Override
public void postCommit(boolean success)
{
- getTransaction().getRepository().getCommitManager().remove(this);
+ Repository repository = (Repository)getTransaction().getRepository();
+ repository.getCommitManager().remove(this);
super.postCommit(success);
}
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/protocol/CDOServerIndication.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/protocol/CDOServerIndication.java
index e753ed7143..17549e0707 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/protocol/CDOServerIndication.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/protocol/CDOServerIndication.java
@@ -78,7 +78,7 @@ public abstract class CDOServerIndication extends IndicationWithResponse
protected Repository getRepository()
{
- Repository repository = getSessionManager().getRepository();
+ Repository repository = (Repository)getSessionManager().getRepository();
if (!repository.isActive())
{
throw new IllegalStateException("Repository has been deactivated");
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/protocol/CDOServerRequest.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/protocol/CDOServerRequest.java
index 07cfb39b2a..acbc73c4b0 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/protocol/CDOServerRequest.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/protocol/CDOServerRequest.java
@@ -74,7 +74,7 @@ public abstract class CDOServerRequest extends Request
protected Repository getRepository()
{
- Repository repository = getSessionManager().getRepository();
+ Repository repository = (Repository)getSessionManager().getRepository();
if (!repository.isActive())
{
throw new IllegalStateException("Repository has been deactivated");
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/protocol/LoadRevisionIndication.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/protocol/LoadRevisionIndication.java
index b8a0d428da..72a4954636 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/protocol/LoadRevisionIndication.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/protocol/LoadRevisionIndication.java
@@ -179,7 +179,7 @@ public class LoadRevisionIndication extends CDOReadIndication
visitedFetchRules.add(fetchRule);
- RevisionManager revisionManager = getSessionManager().getRepository().getRevisionManager();
+ RevisionManager revisionManager = (RevisionManager)getSessionManager().getRepository().getRevisionManager();
for (CDOFeature feature : fetchRule.getFeatures())
{
if (feature.isMany())
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/CDOServerUtil.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/CDOServerUtil.java
index 0b21ee6edc..e52b9aad6f 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/CDOServerUtil.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/CDOServerUtil.java
@@ -45,7 +45,7 @@ public final class CDOServerUtil
public static IRepository createRepository(String name, IStore store, Map<String, String> props)
{
- Repository repository = new Repository();
+ Repository repository = new Repository.Default();
repository.setName(name);
repository.setStore(store);
repository.setProperties(props);
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IRepositoryElement.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IRepositoryElement.java
index 8cf97386a5..8bb4ce1fe2 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IRepositoryElement.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IRepositoryElement.java
@@ -10,6 +10,7 @@
**************************************************************************/
package org.eclipse.emf.cdo.server;
+
/**
* @author Eike Stepper
* @noimplement This interface is not intended to be implemented by clients.
@@ -17,4 +18,11 @@ package org.eclipse.emf.cdo.server;
public interface IRepositoryElement
{
public IRepository getRepository();
+
+ /**
+ * Internal.
+ *
+ * @since 2.0
+ */
+ public void setRepository(IRepository repository);
}
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IStore.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IStore.java
index 8362b40b54..6d4169ded9 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IStore.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IStore.java
@@ -14,18 +14,12 @@ import org.eclipse.emf.cdo.common.id.CDOIDLibraryDescriptor;
import org.eclipse.emf.cdo.common.id.CDOIDLibraryProvider;
import org.eclipse.emf.cdo.common.id.CDOIDObjectFactory;
import org.eclipse.emf.cdo.common.revision.delta.CDORevisionDelta;
-import org.eclipse.emf.cdo.internal.server.Repository;
/**
* @author Eike Stepper
*/
public interface IStore extends IRepositoryElement
{
- /**
- * Internal method. Should only be called by {@link Repository#setStore(IStore)}.
- */
- public void setRepository(IRepository repository);
-
public String getStoreType();
public CDOIDObjectFactory getCDOIDObjectFactory();
diff --git a/plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/HbCDOAutomaticPackageRefTest.java b/plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/HbCDOAutomaticPackageRefTest.java
index 1a7a41b3ed..cc537c682d 100644
--- a/plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/HbCDOAutomaticPackageRefTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/HbCDOAutomaticPackageRefTest.java
@@ -1,12 +1,10 @@
package org.eclipse.emf.cdo.tests.hibernate;
import org.eclipse.emf.cdo.CDOSession;
-import org.eclipse.emf.cdo.CDOSessionConfiguration;
import org.eclipse.emf.cdo.CDOTransaction;
import org.eclipse.emf.cdo.eresource.CDOResource;
import org.eclipse.emf.cdo.tests.AbstractCDOTest;
import org.eclipse.emf.cdo.tests.StoreRepositoryProvider;
-import org.eclipse.emf.cdo.util.CDOUtil;
import base.BaseFactory;
import base.BasePackage;
@@ -24,21 +22,11 @@ public class HbCDOAutomaticPackageRefTest extends AbstractCDOTest
StoreRepositoryProvider.setInstance(HbStoreRepositoryProvider.getInstance());
}
- @Override
- protected CDOSession openSession()
- {
- CDOSessionConfiguration configuration = CDOUtil.createSessionConfiguration();
- configuration.setConnector(getConnector());
- configuration.setRepositoryName(REPOSITORY_NAME);
- configuration.setLazyPackageRegistry();
- return configuration.openSession();
- }
-
public void testPutPackage() throws Exception
{
try
{
- CDOSession session = openSession();
+ CDOSession session = openLazySession();
session.getPackageRegistry().putEPackage(InterfacePackage.eINSTANCE);
session.getPackageRegistry().putEPackage(ReferencePackage.eINSTANCE);
@@ -58,7 +46,7 @@ public class HbCDOAutomaticPackageRefTest extends AbstractCDOTest
{
try
{
- CDOSession session = openSession();
+ CDOSession session = openLazySession();
session.getPackageRegistry().putEPackage(InterfacePackage.eINSTANCE);
session.getPackageRegistry().putEPackage(ReferencePackage.eINSTANCE);
@@ -79,7 +67,7 @@ public class HbCDOAutomaticPackageRefTest extends AbstractCDOTest
{
try
{
- CDOSession session = openSession();
+ CDOSession session = openLazySession();
session.getPackageRegistry().putEPackage(InterfacePackage.eINSTANCE);
session.getPackageRegistry().putEPackage(ReferencePackage.eINSTANCE);
@@ -99,7 +87,7 @@ public class HbCDOAutomaticPackageRefTest extends AbstractCDOTest
{
try
{
- CDOSession session = openSession();
+ CDOSession session = openLazySession();
session.getPackageRegistry().putEPackage(InterfacePackage.eINSTANCE);
session.getPackageRegistry().putEPackage(ReferencePackage.eINSTANCE);
diff --git a/plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/HbCDOPackageRefTest.java b/plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/HbCDOPackageRefTest.java
index c2567de338..bfe54a1709 100644
--- a/plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/HbCDOPackageRefTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/HbCDOPackageRefTest.java
@@ -1,12 +1,10 @@
package org.eclipse.emf.cdo.tests.hibernate;
import org.eclipse.emf.cdo.CDOSession;
-import org.eclipse.emf.cdo.CDOSessionConfiguration;
import org.eclipse.emf.cdo.CDOTransaction;
import org.eclipse.emf.cdo.eresource.CDOResource;
import org.eclipse.emf.cdo.tests.AbstractCDOTest;
import org.eclipse.emf.cdo.tests.StoreRepositoryProvider;
-import org.eclipse.emf.cdo.util.CDOUtil;
import reference.ReferenceFactory;
import reference.ReferencePackage;
@@ -21,21 +19,11 @@ public class HbCDOPackageRefTest extends AbstractCDOTest
StoreRepositoryProvider.setInstance(HbStoreRepositoryProvider.getInstance());
}
- @Override
- protected CDOSession openSession()
- {
- CDOSessionConfiguration configuration = CDOUtil.createSessionConfiguration();
- configuration.setConnector(getConnector());
- configuration.setRepositoryName(REPOSITORY_NAME);
- configuration.setLazyPackageRegistry();
- return configuration.openSession();
- }
-
public void testOnlyReference() throws Exception
{
try
{
- CDOSession session = openSession();
+ CDOSession session = openLazySession();
session.getPackageRegistry().putEPackage(InterfacePackage.eINSTANCE);
session.getPackageRegistry().putEPackage(ReferencePackage.eINSTANCE);
diff --git a/plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/HbPackageRegistryTest.java b/plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/HbPackageRegistryTest.java
index 592b5e7645..75552d1fc5 100644
--- a/plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/HbPackageRegistryTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/HbPackageRegistryTest.java
@@ -14,7 +14,6 @@ package org.eclipse.emf.cdo.tests.hibernate;
import org.eclipse.emf.cdo.tests.PackageRegistryTest;
import org.eclipse.emf.cdo.tests.StoreRepositoryProvider;
-import java.util.HashMap;
import java.util.Map;
/**
@@ -31,15 +30,15 @@ public class HbPackageRegistryTest extends PackageRegistryTest
StoreRepositoryProvider.setInstance(HbStoreRepositoryProvider.getInstance());
}
- // allows a testcase to pass specific properties
@Override
- protected Map<String, String> getTestProperties()
+ public Map<String, Object> getTestProperties()
{
- final Map<String, String> testProperties = new HashMap<String, String>();
+ Map<String, Object> testProperties = super.getTestProperties();
if (getHbm2ddlValue() != null)
{
testProperties.put("hibernate.hbm2ddl.auto", getHbm2ddlValue());
}
+
return testProperties;
}
diff --git a/plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/HbResourceTest.java b/plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/HbResourceTest.java
index 71b305bee0..8136be135c 100644
--- a/plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/HbResourceTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/HbResourceTest.java
@@ -14,7 +14,6 @@ package org.eclipse.emf.cdo.tests.hibernate;
import org.eclipse.emf.cdo.tests.ResourceTest;
import org.eclipse.emf.cdo.tests.StoreRepositoryProvider;
-import java.util.HashMap;
import java.util.Map;
/**
@@ -27,11 +26,10 @@ public class HbResourceTest extends ResourceTest
StoreRepositoryProvider.setInstance(HbStoreRepositoryProvider.getInstance());
}
- // allows a testcase to pass specific properties
@Override
- protected Map<String, String> getTestProperties()
+ public Map<String, Object> getTestProperties()
{
- final Map<String, String> testProperties = new HashMap<String, String>();
+ Map<String, Object> testProperties = super.getTestProperties();
testProperties.put("hibernate.hbm2ddl.auto", "update");
return testProperties;
}
diff --git a/plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/HbRevisionDeltaTest.java b/plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/HbRevisionDeltaTest.java
index 44d3ee0f18..9ef60f5b84 100644
--- a/plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/HbRevisionDeltaTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/HbRevisionDeltaTest.java
@@ -11,12 +11,8 @@
**************************************************************************/
package org.eclipse.emf.cdo.tests.hibernate;
-import org.eclipse.emf.cdo.internal.server.Repository;
-import org.eclipse.emf.cdo.internal.server.RevisionManager;
-import org.eclipse.emf.cdo.server.IRepository;
-import org.eclipse.emf.cdo.server.IStore;
import org.eclipse.emf.cdo.tests.RevisionDeltaWithoutDeltaSupportTest;
-import org.eclipse.emf.cdo.tests.StoreRepositoryProvider;
+import org.eclipse.emf.cdo.tests.config.RepositoryConfig;
import java.util.Map;
@@ -27,36 +23,11 @@ import java.util.Map;
*/
public class HbRevisionDeltaTest extends RevisionDeltaWithoutDeltaSupportTest
{
- public HbRevisionDeltaTest()
- {
- StoreRepositoryProvider.setInstance(LocalHbStoreRepositoryProvider.getInstance());
- }
-
@Override
- protected Repository createRepository()
+ public Map<String, Object> getTestProperties()
{
- LocalHbStoreRepositoryProvider provider = new LocalHbStoreRepositoryProvider();
- return (Repository)provider.createRepository(REPOSITORY_NAME, getTestProperties());
- }
-
- private class LocalHbStoreRepositoryProvider extends HbStoreRepositoryProvider
- {
- @Override
- protected IRepository createRepository(String name, IStore store, Map<String, String> props)
- {
- Repository repository = new Repository()
- {
- @Override
- protected RevisionManager createRevisionManager()
- {
- return new TestRevisionManager(this);
- }
- };
-
- repository.setName(name);
- repository.setProperties(props);
- repository.setStore(store);
- return repository;
- }
+ Map<String, Object> testProperties = super.getTestProperties();
+ testProperties.put(RepositoryConfig.PROP_TEST_REVISION_MANAGER, new TestRevisionManager());
+ return testProperties;
}
}
diff --git a/plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/HbTransactionDeadLockTest.java b/plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/HbTransactionDeadLockTest.java
index 7eb4af7f77..c02ac32dd0 100644
--- a/plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/HbTransactionDeadLockTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/HbTransactionDeadLockTest.java
@@ -14,7 +14,6 @@ package org.eclipse.emf.cdo.tests.hibernate;
import org.eclipse.emf.cdo.tests.StoreRepositoryProvider;
import org.eclipse.emf.cdo.tests.TransactionDeadLockTest;
-import java.util.HashMap;
import java.util.Map;
/**
@@ -35,11 +34,10 @@ public class HbTransactionDeadLockTest extends TransactionDeadLockTest
StoreRepositoryProvider.setInstance(HbStoreRepositoryProvider.getInstance());
}
- // allows a testcase to pass specific properties
@Override
- protected Map<String, String> getTestProperties()
+ public Map<String, Object> getTestProperties()
{
- final Map<String, String> testProperties = new HashMap<String, String>();
+ Map<String, Object> testProperties = super.getTestProperties();
testProperties.put("hibernate.hbm2ddl.auto", "update");
return testProperties;
}
diff --git a/plugins/org.eclipse.emf.cdo.tests/CDO AllTests (All Configs).launch b/plugins/org.eclipse.emf.cdo.tests/CDO AllTests (All Configs).launch
new file mode 100644
index 0000000000..23e89a8101
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests/CDO AllTests (All Configs).launch
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTestsAllConfigs.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
+<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
+<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.cdo.tests.AllTestsAllConfigs"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.cdo.tests"/>
+</launchConfiguration>
diff --git a/plugins/org.eclipse.emf.cdo.tests/CDO AllTests.launch b/plugins/org.eclipse.emf.cdo.tests/CDO AllTests.launch
index 8c875b2d3c..60e98179d3 100644
--- a/plugins/org.eclipse.emf.cdo.tests/CDO AllTests.launch
+++ b/plugins/org.eclipse.emf.cdo.tests/CDO AllTests.launch
@@ -6,14 +6,14 @@
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
</listAttribute>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
-<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;sourceLookupDirector&gt;&#13;&#10;&lt;sourceContainers duplicates=&quot;false&quot;&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;javaProject name=&amp;quot;org.eclipse.emf.cdo&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.javaProject&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;default/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.default&quot;/&gt;&#13;&#10;&lt;/sourceContainers&gt;&#13;&#10;&lt;/sourceLookupDirector&gt;&#13;&#10;"/>
+<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
+<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
+<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
+</listAttribute>
<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.cdo.tests.AllTests"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.cdo.tests"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Ddebug=true&#13;&#10;-Dvista.cache.selector"/>
</launchConfiguration>
diff --git a/plugins/org.eclipse.emf.cdo.tests/build.properties b/plugins/org.eclipse.emf.cdo.tests/build.properties
index 84bc79edba..1954e5118a 100644
--- a/plugins/org.eclipse.emf.cdo.tests/build.properties
+++ b/plugins/org.eclipse.emf.cdo.tests/build.properties
@@ -26,7 +26,8 @@ bin.includes = .,\
test.xml,\
uml2/,\
My.ecore,\
- .options
+ .options,\
+ CDO AllTests (All Configs).launch
jars.compile.order = .
source.. = src/,\
model/,\
diff --git a/plugins/org.eclipse.emf.cdo.tests/net4j/org/eclipse/net4j/tests/AbstractOMTest.java b/plugins/org.eclipse.emf.cdo.tests/net4j/org/eclipse/net4j/tests/AbstractOMTest.java
index 48230568e0..8ae23a6e2c 100644
--- a/plugins/org.eclipse.emf.cdo.tests/net4j/org/eclipse/net4j/tests/AbstractOMTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/net4j/org/eclipse/net4j/tests/AbstractOMTest.java
@@ -20,6 +20,7 @@ import org.eclipse.net4j.util.om.log.PrintLogHandler;
import org.eclipse.net4j.util.om.trace.PrintTraceHandler;
import junit.framework.TestCase;
+import junit.framework.TestResult;
/**
* @author Eike Stepper
@@ -65,11 +66,11 @@ public abstract class AbstractOMTest extends TestCase
}
@Override
- protected void runTest() throws Throwable
+ public void runBare() throws Throwable
{
try
{
- super.runTest();
+ super.runBare();
}
catch (SkipTestException ex)
{
@@ -82,6 +83,29 @@ public abstract class AbstractOMTest extends TestCase
}
}
+ @Override
+ public void run(TestResult result)
+ {
+ try
+ {
+ super.run(result);
+ }
+ catch (SkipTestException ex)
+ {
+ OM.LOG.info("Skipped " + this);
+ }
+ catch (RuntimeException ex)
+ {
+ ex.printStackTrace(IOUtil.OUT());
+ throw ex;
+ }
+ catch (Error err)
+ {
+ err.printStackTrace(IOUtil.OUT());
+ throw err;
+ }
+ }
+
protected void enableConsole()
{
if (!consoleEnabled)
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AbstractCDOTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AbstractCDOTest.java
index f49198907c..7fcc6e0362 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AbstractCDOTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AbstractCDOTest.java
@@ -11,38 +11,19 @@
package org.eclipse.emf.cdo.tests;
import org.eclipse.emf.cdo.CDOObject;
-import org.eclipse.emf.cdo.CDOSession;
-import org.eclipse.emf.cdo.CDOSessionConfiguration;
import org.eclipse.emf.cdo.CDOState;
import org.eclipse.emf.cdo.CDOView;
import org.eclipse.emf.cdo.eresource.CDOResource;
-import org.eclipse.emf.cdo.server.CDOServerUtil;
-import org.eclipse.emf.cdo.server.IRepository;
-import org.eclipse.emf.cdo.server.IStore;
-import org.eclipse.emf.cdo.tests.mango.MangoFactory;
-import org.eclipse.emf.cdo.tests.mango.MangoPackage;
-import org.eclipse.emf.cdo.tests.model1.Model1Factory;
-import org.eclipse.emf.cdo.tests.model1.Model1Package;
-import org.eclipse.emf.cdo.tests.model2.Model2Factory;
-import org.eclipse.emf.cdo.tests.model2.Model2Package;
-import org.eclipse.emf.cdo.tests.model3.Model3Factory;
-import org.eclipse.emf.cdo.tests.model3.Model3Package;
-import org.eclipse.emf.cdo.tests.model4.model4Factory;
-import org.eclipse.emf.cdo.tests.model4.model4Package;
-import org.eclipse.emf.cdo.tests.model4interfaces.model4interfacesPackage;
+import org.eclipse.emf.cdo.tests.config.ConfigTest;
import org.eclipse.emf.cdo.util.CDOUtil;
import org.eclipse.emf.internal.cdo.CDOLegacyWrapper;
import org.eclipse.emf.internal.cdo.util.FSMUtil;
import org.eclipse.net4j.tests.AbstractTransportTest;
-import org.eclipse.net4j.util.container.IManagedContainer;
-import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
import org.eclipse.emf.ecore.EObject;
-import java.util.HashMap;
-import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
@@ -50,12 +31,8 @@ import java.util.concurrent.locks.Lock;
/**
* @author Eike Stepper
*/
-public abstract class AbstractCDOTest extends AbstractTransportTest
+public abstract class AbstractCDOTest extends ConfigTest
{
- public static final String REPOSITORY_NAME = "repo1";
-
- protected static boolean legacyTesting = false;
-
@Override
protected void doSetUp() throws Exception
{
@@ -63,226 +40,6 @@ public abstract class AbstractCDOTest extends AbstractTransportTest
startTransport();
}
- @Override
- protected IManagedContainer createContainer()
- {
- LifecycleUtil.deactivate(container);
- IManagedContainer container = super.createContainer();
- CDOUtil.prepareContainer(container);
- CDOServerUtil.prepareContainer(container);
- CDOServerUtil.addRepository(container, createRepository());
- return container;
- }
-
- protected IStore createStore()
- {
- return StoreRepositoryProvider.getInstance().createStore();
- }
-
- protected IRepository createRepository()
- {
- return StoreRepositoryProvider.getInstance().createRepository(REPOSITORY_NAME, getTestProperties());
- }
-
- // allows a testcase to pass specific properties
- protected Map<String, String> getTestProperties()
- {
- return new HashMap<String, String>();
- }
-
- protected IRepository getRepository()
- {
- return CDOServerUtil.getRepository(container, REPOSITORY_NAME);
- }
-
- protected IRepository getRepository(String repositoryName)
- {
- IRepository repository = createRepository();
- repository.setName(repositoryName);
- CDOServerUtil.addRepository(container, repository);
- return repository;
- }
-
- protected CDOSession openSession(String repoName)
- {
- CDOSessionConfiguration configuration = CDOUtil.createSessionConfiguration();
- configuration.setConnector(getConnector());
- configuration.setRepositoryName(repoName);
- return configuration.openSession();
- }
-
- protected CDOSession openSession()
- {
- CDOSessionConfiguration configuration = CDOUtil.createSessionConfiguration();
- configuration.setConnector(getConnector());
- configuration.setRepositoryName(REPOSITORY_NAME);
- return configuration.openSession();
- }
-
- protected CDOSession openModel1Session(String repoName)
- {
- CDOSession session = openSession(repoName);
- session.getPackageRegistry().putEPackage(getModel1Package());
- return session;
- }
-
- protected CDOSession openModel1Session()
- {
- CDOSession session = openSession();
- session.getPackageRegistry().putEPackage(getModel1Package());
- return session;
- }
-
- protected CDOSession openModel2Session()
- {
- CDOSession session = openModel1Session();
- session.getPackageRegistry().putEPackage(getModel2Package());
- return session;
- }
-
- protected CDOSession openModel3Session()
- {
- CDOSession session = openSession();
- session.getPackageRegistry().putEPackage(getModel3Package());
- return session;
- }
-
- protected CDOSession openMangoSession()
- {
- CDOSession session = openSession();
- session.getPackageRegistry().putEPackage(getMangoPackage());
- return session;
- }
-
- // TODO LEGACY
- // protected CDOSession openLegacySession()
- // {
- // CDOSession session = openSession();
- // session.getPackageRegistry().putEPackage(LegacyPackage.eINSTANCE);
- // return session;
- // }
-
- protected static MangoFactory getMangoFactory()
- {
- if (legacyTesting)
- {
- // TODO LEGACY
- // return org.eclipse.emf.cdo.tests.legacy.mango.MangoFactory.eINSTANCE;
- }
-
- return org.eclipse.emf.cdo.tests.mango.MangoFactory.eINSTANCE;
- }
-
- protected static MangoPackage getMangoPackage()
- {
- if (legacyTesting)
- {
- // TODO LEGACY
- // return org.eclipse.emf.cdo.tests.legacy.mango.MangoPackage.eINSTANCE;
- }
-
- return org.eclipse.emf.cdo.tests.mango.MangoPackage.eINSTANCE;
- }
-
- protected static Model1Factory getModel1Factory()
- {
- if (legacyTesting)
- {
- // TODO LEGACY
- // return org.eclipse.emf.cdo.tests.legacy.model1.Model1Factory.eINSTANCE;
- }
-
- return org.eclipse.emf.cdo.tests.model1.Model1Factory.eINSTANCE;
- }
-
- protected static Model1Package getModel1Package()
- {
- if (legacyTesting)
- {
- // TODO LEGACY
- // return org.eclipse.emf.cdo.tests.legacy.model1.Model1Package.eINSTANCE;
- }
-
- return org.eclipse.emf.cdo.tests.model1.Model1Package.eINSTANCE;
- }
-
- protected static Model2Factory getModel2Factory()
- {
- if (legacyTesting)
- {
- // TODO LEGACY
- // return org.eclipse.emf.cdo.tests.legacy.model2.Model2Factory.eINSTANCE;
- }
-
- return org.eclipse.emf.cdo.tests.model2.Model2Factory.eINSTANCE;
- }
-
- protected static Model2Package getModel2Package()
- {
- if (legacyTesting)
- {
- // TODO LEGACY
- // return org.eclipse.emf.cdo.tests.legacy.model2.Model2Package.eINSTANCE;
- }
-
- return org.eclipse.emf.cdo.tests.model2.Model2Package.eINSTANCE;
- }
-
- protected static Model3Factory getModel3Factory()
- {
- if (legacyTesting)
- {
- // TODO LEGACY
- // return org.eclipse.emf.cdo.tests.legacy.model3.Model3Factory.eINSTANCE;
- }
-
- return org.eclipse.emf.cdo.tests.model3.Model3Factory.eINSTANCE;
- }
-
- protected static Model3Package getModel3Package()
- {
- if (legacyTesting)
- {
- // TODO LEGACY
- // return org.eclipse.emf.cdo.tests.legacy.model3.Model3Package.eINSTANCE;
- }
-
- return org.eclipse.emf.cdo.tests.model3.Model3Package.eINSTANCE;
- }
-
- protected static model4Factory getModel4Factory()
- {
- if (legacyTesting)
- {
- // TODO LEGACY
- // return org.eclipse.emf.cdo.tests.legacy.model4.model4Factory.eINSTANCE;
- }
-
- return org.eclipse.emf.cdo.tests.model4.model4Factory.eINSTANCE;
- }
-
- protected static model4Package getModel4Package()
- {
- if (legacyTesting)
- {
- // TODO LEGACY
- // return org.eclipse.emf.cdo.tests.legacy.model4.model4Package.eINSTANCE;
- }
-
- return org.eclipse.emf.cdo.tests.model4.model4Package.eINSTANCE;
- }
-
- protected static model4interfacesPackage getModel4InterfacesPackage()
- {
- if (legacyTesting)
- {
- // TODO LEGACY
- // return org.eclipse.emf.cdo.tests.legacy.model4interfaces.model4interfacesPackage.eINSTANCE;
- }
-
- return org.eclipse.emf.cdo.tests.model4interfaces.model4interfacesPackage.eINSTANCE;
- }
-
public static void assertEquals(Object expected, Object actual)
{
// IMPORTANT: Give possible CDOLegacyWrapper a chance for actual, too
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTests.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTests.java
index 7e405d04ea..a0f57e05c2 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTests.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTests.java
@@ -10,69 +10,22 @@
**************************************************************************/
package org.eclipse.emf.cdo.tests;
-import org.eclipse.emf.cdo.tests.bugzilla.Bugzilla_241464_Test;
-import org.eclipse.emf.cdo.tests.bugzilla.Bugzilla_243310_Test;
-import org.eclipse.emf.cdo.tests.bugzilla.Bugzilla_246442_Test;
-import org.eclipse.emf.cdo.tests.bugzilla.Bugzilla_246456_Test;
-import org.eclipse.emf.cdo.tests.bugzilla.Bugzilla_246622_Test;
-import org.eclipse.emf.cdo.tests.bugzilla.Bugzilla_248052_Test;
-
import junit.framework.Test;
import junit.framework.TestSuite;
/**
* @author Eike Stepper
*/
-public class AllTests
+public class AllTests extends AllTestsAllConfigs
{
public static Test suite()
{
- TestSuite suite = new TestSuite("Tests for CDO");
-
- // $JUnit-BEGIN$
- suite.addTestSuite(InitialTest.class);
-
- suite.addTestSuite(ComplexTest.class);
- suite.addTestSuite(AttributeTest.class);
- suite.addTestSuite(EnumTest.class);
- suite.addTestSuite(StateMachineTest.class);
- suite.addTestSuite(ViewTest.class);
- suite.addTestSuite(ResourceTest.class);
- suite.addTestSuite(NonCDOResourceTest.class);
- suite.addTestSuite(ContainmentTest.class);
- suite.addTestSuite(InvalidationTest.class);
- suite.addTestSuite(RollbackTest.class);
- suite.addTestSuite(CrossReferenceTest.class);
- suite.addTestSuite(ChunkingTest.class);
- suite.addTestSuite(ChunkingWithMEMTest.class);
- suite.addTestSuite(TransactionDeadLockTest.class);
- suite.addTestSuite(PackageRegistryTest.class);
- suite.addTestSuite(MetaTest.class);
- suite.addTestSuite(RevisionDeltaWithDeltaSupportTest.class);
- suite.addTestSuite(RevisionDeltaWithoutDeltaSupportTest.class);
- suite.addTestSuite(IndexReconstructionTest.class);
- suite.addTestSuite(AutoAttacherTest.class);
- suite.addTestSuite(SavepointTest.class);
- suite.addTestSuite(ChangeSubscriptionTest.class);
- suite.addTestSuite(DetachTest.class);
- suite.addTestSuite(ExternalReferenceTest.class);
- suite.addTestSuite(XATransactionTest.class);
- suite.addTestSuite(TransactionHandlerTest.class);
-
- // Specific for MEMStore
- suite.addTestSuite(QueryTest.class);
-
- // Bugzilla verifications
- suite.addTestSuite(Bugzilla_241464_Test.class);
- suite.addTestSuite(Bugzilla_243310_Test.class);
- suite.addTestSuite(Bugzilla_246442_Test.class);
- suite.addTestSuite(Bugzilla_246456_Test.class);
- suite.addTestSuite(Bugzilla_246622_Test.class);
- suite.addTestSuite(Bugzilla_248052_Test.class);
-
- // TODO suite.addTestSuite(GeneratedEcoreTest.class);
- // $JUnit-END$
+ return new AllTests().getTestSuite("CDO Tests");
+ }
- return suite;
+ @Override
+ protected void initConfigSuites(TestSuite parent)
+ {
+ initConfigSuite(parent, COMBINED, MEM, TCP, NATIVE);
}
}
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTestsAllConfigs.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTestsAllConfigs.java
new file mode 100644
index 0000000000..8836d8a3ee
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTestsAllConfigs.java
@@ -0,0 +1,79 @@
+/***************************************************************************
+ * 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 org.eclipse.emf.cdo.tests.bugzilla.Bugzilla_241464_Test;
+import org.eclipse.emf.cdo.tests.bugzilla.Bugzilla_243310_Test;
+import org.eclipse.emf.cdo.tests.bugzilla.Bugzilla_246442_Test;
+import org.eclipse.emf.cdo.tests.bugzilla.Bugzilla_246456_Test;
+import org.eclipse.emf.cdo.tests.bugzilla.Bugzilla_246622_Test;
+import org.eclipse.emf.cdo.tests.config.ConfigTest;
+import org.eclipse.emf.cdo.tests.config.ConfigTestSuite;
+
+import java.util.List;
+
+import junit.framework.Test;
+
+/**
+ * @author Eike Stepper
+ */
+public class AllTestsAllConfigs extends ConfigTestSuite
+{
+ public static Test suite()
+ {
+ return new AllTestsAllConfigs().getTestSuite("CDO Tests (All Configs)");
+ }
+
+ @Override
+ protected void initTestClasses(List<Class<? extends ConfigTest>> testClasses)
+ {
+ // General
+ testClasses.add(InitialTest.class);
+ testClasses.add(ComplexTest.class);
+ testClasses.add(AttributeTest.class);
+ testClasses.add(EnumTest.class);
+ testClasses.add(StateMachineTest.class);
+ testClasses.add(ViewTest.class);
+ testClasses.add(ResourceTest.class);
+ testClasses.add(ContainmentTest.class);
+ testClasses.add(InvalidationTest.class);
+ testClasses.add(RollbackTest.class);
+ testClasses.add(CrossReferenceTest.class);
+ testClasses.add(ChunkingTest.class);
+ testClasses.add(ChunkingWithMEMTest.class);
+ testClasses.add(TransactionDeadLockTest.class);
+ testClasses.add(PackageRegistryTest.class);
+ testClasses.add(MetaTest.class);
+ testClasses.add(RevisionDeltaWithDeltaSupportTest.class);
+ testClasses.add(RevisionDeltaWithoutDeltaSupportTest.class);
+ testClasses.add(IndexReconstructionTest.class);
+ testClasses.add(AutoAttacherTest.class);
+ testClasses.add(SavepointTest.class);
+ testClasses.add(ChangeSubscriptionTest.class);
+ testClasses.add(DetachTest.class);
+ testClasses.add(ExternalReferenceTest.class);
+ testClasses.add(XATransactionTest.class);
+ testClasses.add(TransactionHandlerTest.class);
+
+ // Specific for MEMStore
+ testClasses.add(QueryTest.class);
+
+ // Bugzilla verifications
+ testClasses.add(Bugzilla_241464_Test.class);
+ testClasses.add(Bugzilla_243310_Test.class);
+ testClasses.add(Bugzilla_246442_Test.class);
+ testClasses.add(Bugzilla_246456_Test.class);
+ testClasses.add(Bugzilla_246622_Test.class);
+
+ // TODO testClasses.add(NonCDOResourceTest.class);
+ // TODO testClasses.add(GeneratedEcoreTest.class);
+ }
+}
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
new file mode 100644
index 0000000000..139d1a629d
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTestsHibernate.java
@@ -0,0 +1,40 @@
+/***************************************************************************
+ * 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 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;
+
+/**
+ * @author Eike Stepper
+ */
+public class AllTestsHibernate extends AllTestsAllConfigs
+{
+ public static Test suite()
+ {
+ return new AllTestsHibernate().getTestSuite("CDO Tests (Hibernate)");
+ }
+
+ @Override
+ protected void initConfigSuite(TestSuite parent, ContainerConfig containerConfig, RepositoryConfig repositoryConfig,
+ SessionConfig sessionConfig, ModelConfig modelConfig)
+ {
+ if (repositoryConfig == HIBERNATE)
+ {
+ super.initConfigSuite(parent, containerConfig, repositoryConfig, sessionConfig, modelConfig);
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ChunkingWithMEMTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ChunkingWithMEMTest.java
index d65f984ba9..f3f73f1ffd 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ChunkingWithMEMTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ChunkingWithMEMTest.java
@@ -15,16 +15,14 @@ import org.eclipse.emf.cdo.CDOSession;
import org.eclipse.emf.cdo.CDOTransaction;
import org.eclipse.emf.cdo.common.revision.CDORevision;
import org.eclipse.emf.cdo.eresource.CDOResource;
-import org.eclipse.emf.cdo.internal.server.Repository;
import org.eclipse.emf.cdo.internal.server.RevisionManager;
-import org.eclipse.emf.cdo.server.IStore;
+import org.eclipse.emf.cdo.tests.config.RepositoryConfig;
import org.eclipse.emf.cdo.tests.model1.Customer;
import org.eclipse.emf.cdo.tests.model1.SalesOrder;
import org.eclipse.emf.cdo.util.CDOUtil;
import org.eclipse.emf.common.util.EList;
-import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
@@ -153,25 +151,11 @@ public class ChunkingWithMEMTest extends AbstractCDOTest
}
@Override
- protected Repository createRepository()
+ public Map<String, Object> getTestProperties()
{
- Map<String, String> props = new HashMap<String, String>();
- // props.put(IRepository.PROP_SUPPORTING_REVISION_DELTAS, "true");
-
- IStore store = createStore();
- Repository repository = new Repository()
- {
- @Override
- protected RevisionManager createRevisionManager()
- {
- return new TestRevisionManager(this);
- }
- };
-
- repository.setName(REPOSITORY_NAME);
- repository.setProperties(props);
- repository.setStore(store);
- return repository;
+ Map<String, Object> testProperties = super.getTestProperties();
+ testProperties.put(RepositoryConfig.PROP_TEST_REVISION_MANAGER, new TestRevisionManager());
+ return testProperties;
}
/**
@@ -179,11 +163,6 @@ public class ChunkingWithMEMTest extends AbstractCDOTest
*/
private class TestRevisionManager extends RevisionManager
{
- public TestRevisionManager(Repository repository)
- {
- super(repository);
- }
-
public void removeCachedRevision(CDORevision revision)
{
super.removeCachedRevision(revision.getID(), revision.getVersion());
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ComplexTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ComplexTest.java
index ca1cf981b7..933686e130 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ComplexTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ComplexTest.java
@@ -61,20 +61,21 @@ public class ComplexTest extends AbstractCDOTest
{
private static long uniqueCounter = System.currentTimeMillis();
- private model4Factory factory = getModel4Factory();
+ private model4Factory factory;
- private CDOResource resource1 = null;
+ private CDOResource resource1;
- private CDOResource resource2 = null;
+ private CDOResource resource2;
- private CDOTransaction transaction = null;
+ private CDOTransaction transaction;
- private CDOSession session = null;
+ private CDOSession session;
@Override
protected void doSetUp() throws Exception
{
super.doSetUp();
+ factory = getModel4Factory();
session = openSession();
session.getPackageRegistry().putEPackage(model4interfacesPackage.eINSTANCE);
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/NonCDOResourceTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/NonCDOResourceTest.java
index ade66366b7..31f8a47be6 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/NonCDOResourceTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/NonCDOResourceTest.java
@@ -23,7 +23,6 @@ import junit.framework.TestCase;
/**
* @see http://bugs.eclipse.org/201593
* @author Simon McDuff
- * @author Eike Stepper
*/
public class NonCDOResourceTest extends TestCase
{
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ResourceTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ResourceTest.java
index 15987976e4..0cd03c6b4b 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ResourceTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ResourceTest.java
@@ -53,7 +53,7 @@ public class ResourceTest extends AbstractCDOTest
IStore store = getRepository().getStore();
if (!(store instanceof MEMStore))
{
- restartContainer();
+ restartContainers();
}
CDOSession session = openModel1Session();
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionDeltaTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionDeltaTest.java
index bd5aa1785c..fe61d271ac 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionDeltaTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionDeltaTest.java
@@ -24,7 +24,6 @@ import org.eclipse.emf.cdo.common.revision.delta.CDORevisionDelta;
import org.eclipse.emf.cdo.common.revision.delta.CDOSetFeatureDelta;
import org.eclipse.emf.cdo.eresource.CDOResource;
import org.eclipse.emf.cdo.internal.common.revision.delta.CDOListFeatureDeltaImpl;
-import org.eclipse.emf.cdo.internal.server.Repository;
import org.eclipse.emf.cdo.internal.server.RevisionManager;
import org.eclipse.emf.cdo.spi.common.InternalCDORevision;
import org.eclipse.emf.cdo.tests.model1.Category;
@@ -225,13 +224,8 @@ public abstract class RevisionDeltaTest extends AbstractCDOTest
/**
* @author Simon McDuff
*/
- protected static class TestRevisionManager extends RevisionManager
+ public static class TestRevisionManager extends RevisionManager
{
- public TestRevisionManager(Repository repository)
- {
- super(repository);
- }
-
public void removeCachedRevision(CDORevision revision)
{
super.removeCachedRevision(revision.getID(), revision.getVersion());
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionDeltaWithDeltaSupportTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionDeltaWithDeltaSupportTest.java
index 999170db28..86566ddb1c 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionDeltaWithDeltaSupportTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionDeltaWithDeltaSupportTest.java
@@ -11,12 +11,9 @@
**************************************************************************/
package org.eclipse.emf.cdo.tests;
-import org.eclipse.emf.cdo.internal.server.Repository;
-import org.eclipse.emf.cdo.internal.server.RevisionManager;
import org.eclipse.emf.cdo.server.IRepository;
-import org.eclipse.emf.cdo.server.IStore;
+import org.eclipse.emf.cdo.tests.config.RepositoryConfig;
-import java.util.HashMap;
import java.util.Map;
/**
@@ -25,29 +22,12 @@ import java.util.Map;
*/
public class RevisionDeltaWithDeltaSupportTest extends RevisionDeltaTest
{
- public RevisionDeltaWithDeltaSupportTest()
- {
- }
-
@Override
- protected Repository createRepository()
+ public Map<String, Object> getTestProperties()
{
- Map<String, String> props = new HashMap<String, String>();
- props.put(IRepository.Props.PROP_SUPPORTING_REVISION_DELTAS, "true");
-
- IStore store = createStore();
- Repository repository = new Repository()
- {
- @Override
- protected RevisionManager createRevisionManager()
- {
- return new TestRevisionManager(this);
- }
- };
-
- repository.setName(REPOSITORY_NAME);
- repository.setProperties(props);
- repository.setStore(store);
- return repository;
+ Map<String, Object> testProperties = super.getTestProperties();
+ testProperties.put(IRepository.Props.PROP_SUPPORTING_REVISION_DELTAS, "true");
+ testProperties.put(RepositoryConfig.PROP_TEST_REVISION_MANAGER, new TestRevisionManager());
+ return testProperties;
}
}
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionDeltaWithoutDeltaSupportTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionDeltaWithoutDeltaSupportTest.java
index e592f06a8c..f57e5d5620 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionDeltaWithoutDeltaSupportTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionDeltaWithoutDeltaSupportTest.java
@@ -11,12 +11,9 @@
**************************************************************************/
package org.eclipse.emf.cdo.tests;
-import org.eclipse.emf.cdo.internal.server.Repository;
-import org.eclipse.emf.cdo.internal.server.RevisionManager;
import org.eclipse.emf.cdo.server.IRepository;
-import org.eclipse.emf.cdo.server.IStore;
+import org.eclipse.emf.cdo.tests.config.RepositoryConfig;
-import java.util.HashMap;
import java.util.Map;
/**
@@ -25,29 +22,12 @@ import java.util.Map;
*/
public class RevisionDeltaWithoutDeltaSupportTest extends RevisionDeltaTest
{
- public RevisionDeltaWithoutDeltaSupportTest()
- {
- }
-
@Override
- protected Repository createRepository()
+ public Map<String, Object> getTestProperties()
{
- Map<String, String> props = new HashMap<String, String>();
- props.put(IRepository.Props.PROP_SUPPORTING_REVISION_DELTAS, "false");
-
- IStore store = createStore();
- Repository repository = new Repository()
- {
- @Override
- protected RevisionManager createRevisionManager()
- {
- return new TestRevisionManager(this);
- }
- };
-
- repository.setName(REPOSITORY_NAME);
- repository.setProperties(props);
- repository.setStore(store);
- return repository;
+ Map<String, Object> testProperties = super.getTestProperties();
+ testProperties.put(IRepository.Props.PROP_SUPPORTING_REVISION_DELTAS, "false");
+ testProperties.put(RepositoryConfig.PROP_TEST_REVISION_MANAGER, new TestRevisionManager());
+ return testProperties;
}
}
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/StateMachineTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/StateMachineTest.java
index 0392d221a5..893d7f0e69 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/StateMachineTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/StateMachineTest.java
@@ -16,6 +16,7 @@ import org.eclipse.emf.cdo.CDOState;
import org.eclipse.emf.cdo.CDOTransaction;
import org.eclipse.emf.cdo.common.id.CDOID;
import org.eclipse.emf.cdo.eresource.CDOResource;
+import org.eclipse.emf.cdo.tests.config.SessionConfig;
import org.eclipse.emf.cdo.tests.model1.Category;
import org.eclipse.emf.cdo.tests.model1.Product1;
import org.eclipse.emf.cdo.tests.model1.Supplier;
@@ -578,9 +579,10 @@ public class StateMachineTest extends AbstractCDOTest
// ///////////////////////////////////////////////////
@Override
- protected boolean useJVMTransport()
+ protected void doSetUp() throws Exception
{
- return true;
+ super.doSetUp();
+ skipUnlessConfig(SessionConfig.JVM.INSTANCE);
}
private static void assertFailure(IllegalStateException ex)
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/TransactionDeadLockTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/TransactionDeadLockTest.java
index b7ba4f8e46..d10c1c8583 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/TransactionDeadLockTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/TransactionDeadLockTest.java
@@ -30,10 +30,10 @@ import java.util.List;
public class TransactionDeadLockTest extends AbstractCDOTest
{
@Override
- protected boolean useJVMTransport()
+ protected void doSetUp() throws Exception
{
+ super.doSetUp();
OMPlatform.INSTANCE.setDebugging(false);
- return false;
}
public void _testCreateManySession() throws Exception
@@ -62,6 +62,7 @@ public class TransactionDeadLockTest extends AbstractCDOTest
}
}
+ @SuppressWarnings("deprecation")
public void testCreateManyTransaction() throws Exception
{
msg("Opening session");
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ViewTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ViewTest.java
index 986a25883f..6f74bfabe6 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ViewTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ViewTest.java
@@ -66,6 +66,7 @@ public class ViewTest extends AbstractCDOTest
session.close();
}
+ @SuppressWarnings("deprecation")
public void testUniqueResourceContents() throws Exception
{
{
@@ -107,6 +108,7 @@ public class ViewTest extends AbstractCDOTest
session.close();
}
+ @SuppressWarnings("deprecation")
public void testNonUniqueResourceContents() throws Exception
{
{
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_246456_Test.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_246456_Test.java
index 0c1f9a0b0b..793fa0eace 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_246456_Test.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_246456_Test.java
@@ -24,6 +24,7 @@ import org.eclipse.emf.internal.cdo.CDOTransactionImpl;
*/
public class Bugzilla_246456_Test extends AbstractCDOTest
{
+ @SuppressWarnings("deprecation")
public void testBugzilla_246456() throws Exception
{
msg("Opening session");
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_248052_Test.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_248052_Test.java
index fb88b63a78..45e914e39a 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_248052_Test.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_248052_Test.java
@@ -14,16 +14,13 @@ import org.eclipse.emf.cdo.CDOSession;
import org.eclipse.emf.cdo.CDOTransaction;
import org.eclipse.emf.cdo.eresource.CDOResource;
import org.eclipse.emf.cdo.internal.common.revision.CDORevisionResolverImpl;
-import org.eclipse.emf.cdo.internal.server.Repository;
import org.eclipse.emf.cdo.server.IRepository;
-import org.eclipse.emf.cdo.server.IStore;
import org.eclipse.emf.cdo.tests.AbstractCDOTest;
import org.eclipse.emf.cdo.tests.model1.Customer;
import org.eclipse.emf.internal.cdo.InternalCDOObject;
import org.eclipse.emf.internal.cdo.util.FSMUtil;
-import java.util.HashMap;
import java.util.Map;
/**
@@ -35,6 +32,16 @@ import java.util.Map;
*/
public class Bugzilla_248052_Test extends AbstractCDOTest
{
+
+ @Override
+ public Map<String, Object> getTestProperties()
+ {
+ Map<String, Object> testProperties = super.getTestProperties();
+ testProperties.put(IRepository.Props.PROP_SUPPORTING_REVISION_DELTAS, "false");
+ testProperties.put(IRepository.Props.PROP_SUPPORTING_AUDITS, "false");
+ return testProperties;
+ }
+
public void testNoSupportingDeltas() throws Exception
{
CDOSession session = openModel1Session();
@@ -57,19 +64,4 @@ public class Bugzilla_248052_Test extends AbstractCDOTest
transaction1.commit();
}
-
- @Override
- protected Repository createRepository()
- {
- Map<String, String> props = new HashMap<String, String>();
- props.put(IRepository.Props.PROP_SUPPORTING_REVISION_DELTAS, "false");
- props.put(IRepository.Props.PROP_SUPPORTING_AUDITS, "false");
-
- IStore store = createStore();
- Repository repository = new Repository();
- repository.setName(REPOSITORY_NAME);
- repository.setProperties(props);
- repository.setStore(store);
- return repository;
- }
}
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/Config.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/Config.java
index f098731d52..8e446a4cdb 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/Config.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/Config.java
@@ -10,6 +10,7 @@
**************************************************************************/
package org.eclipse.emf.cdo.tests.config;
+import java.util.Map;
import java.util.Set;
/**
@@ -47,6 +48,22 @@ public abstract class Config
this.currentTest = currentTest;
}
+ public Map<String, Object> getTestProperties()
+ {
+ return currentTest.getTestProperties();
+ }
+
+ public Object getTestProperty(String key)
+ {
+ Map<String, Object> testProperties = getTestProperties();
+ if (testProperties != null)
+ {
+ return testProperties.get(key);
+ }
+
+ return null;
+ }
+
protected boolean isValid(Set<Config> configs)
{
return true;
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/ConfigConstants.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/ConfigConstants.java
new file mode 100644
index 0000000000..e800d1efd5
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/ConfigConstants.java
@@ -0,0 +1,41 @@
+/***************************************************************************
+ * 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.config;
+
+/**
+ * @author Eike Stepper
+ */
+public interface ConfigConstants
+{
+ public static final Config[][] CONFIGS = { //
+ ContainerConfig.CONFIGS, //
+ RepositoryConfig.CONFIGS, //
+ SessionConfig.CONFIGS, //
+ ModelConfig.CONFIGS };
+
+ public static final ContainerConfig COMBINED = ContainerConfig.Combined.INSTANCE;
+
+ public static final ContainerConfig SEPARATED = ContainerConfig.Separated.INSTANCE;
+
+ public static final RepositoryConfig MEM = RepositoryConfig.MEM.INSTANCE;
+
+ public static final RepositoryConfig DB_HORIZONTAL_HSQL = RepositoryConfig.DBHorizontalHsql.INSTANCE;
+
+ public static final RepositoryConfig DB_HORIZONTAL_DERBY = RepositoryConfig.DBHorizontalDerby.INSTANCE;
+
+ public static final RepositoryConfig HIBERNATE = RepositoryConfig.Hibernate.INSTANCE;
+
+ public static final SessionConfig JVM = SessionConfig.JVM.INSTANCE;
+
+ public static final SessionConfig TCP = SessionConfig.TCP.INSTANCE;
+
+ public static final ModelConfig NATIVE = ModelConfig.Native.INSTANCE;
+}
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/ConfigTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/ConfigTest.java
index abf0078ad9..85154d2f33 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/ConfigTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/ConfigTest.java
@@ -24,6 +24,7 @@ import org.eclipse.emf.cdo.tests.model4.model4Factory;
import org.eclipse.emf.cdo.tests.model4.model4Package;
import org.eclipse.emf.cdo.tests.model4interfaces.model4interfacesPackage;
+import org.eclipse.net4j.acceptor.IAcceptor;
import org.eclipse.net4j.connector.IConnector;
import org.eclipse.net4j.tests.AbstractOMTest;
import org.eclipse.net4j.util.container.IManagedContainer;
@@ -31,22 +32,15 @@ import org.eclipse.net4j.util.container.IManagedContainer;
import org.eclipse.emf.ecore.EPackage;
import java.text.MessageFormat;
+import java.util.HashMap;
import java.util.Map;
/**
* @author Eike Stepper
*/
-public abstract class ConfigTest extends AbstractOMTest implements ContainerProvider, RepositoryProvider,
- SessionProvider, ModelProvider
+public abstract class ConfigTest extends AbstractOMTest implements ConfigConstants, ContainerProvider,
+ RepositoryProvider, SessionProvider, ModelProvider
{
- private ContainerConfig containerConfig;
-
- private RepositoryConfig repositoryConfig;
-
- private SessionConfig sessionConfig;
-
- private ModelConfig modelConfig;
-
public ConfigTest()
{
}
@@ -57,6 +51,16 @@ public abstract class ConfigTest extends AbstractOMTest implements ContainerProv
/**
*@category Container
*/
+ public static final ContainerConfig DEFAULT_CONTAINER_CONFIG = COMBINED;
+
+ /**
+ *@category Container
+ */
+ private ContainerConfig containerConfig;
+
+ /**
+ *@category Container
+ */
public ContainerConfig getContainerConfig()
{
return containerConfig;
@@ -73,6 +77,22 @@ public abstract class ConfigTest extends AbstractOMTest implements ContainerProv
/**
*@category Container
*/
+ public boolean hasClientContainer()
+ {
+ return containerConfig.hasClientContainer();
+ }
+
+ /**
+ *@category Container
+ */
+ public boolean hasServerContainer()
+ {
+ return containerConfig.hasServerContainer();
+ }
+
+ /**
+ *@category Container
+ */
public IManagedContainer getClientContainer()
{
return containerConfig.getClientContainer();
@@ -86,12 +106,30 @@ public abstract class ConfigTest extends AbstractOMTest implements ContainerProv
return containerConfig.getServerContainer();
}
+ /**
+ *@category Container
+ */
+ public void restartContainers() throws Exception
+ {
+ containerConfig.restartContainers();
+ }
+
// /////////////////////////////////////////////////////////////////////////
// //////////////////////// Repository /////////////////////////////////////
/**
*@category Repository
*/
+ public static final RepositoryConfig DEFAULT_REPOSITORY_CONFIG = MEM;
+
+ /**
+ *@category Repository
+ */
+ private RepositoryConfig repositoryConfig;
+
+ /**
+ *@category Repository
+ */
public RepositoryConfig getRepositoryConfig()
{
return repositoryConfig;
@@ -135,6 +173,16 @@ public abstract class ConfigTest extends AbstractOMTest implements ContainerProv
/**
*@category Session
*/
+ public static final SessionConfig DEFAULT_SESSION_CONFIG = TCP;
+
+ /**
+ *@category Session
+ */
+ private SessionConfig sessionConfig;
+
+ /**
+ *@category Session
+ */
public SessionConfig getSessionConfig()
{
return sessionConfig;
@@ -151,6 +199,30 @@ public abstract class ConfigTest extends AbstractOMTest implements ContainerProv
/**
*@category Session
*/
+ public void startTransport() throws Exception
+ {
+ sessionConfig.startTransport();
+ }
+
+ /**
+ *@category Session
+ */
+ public void stopTransport() throws Exception
+ {
+ sessionConfig.stopTransport();
+ }
+
+ /**
+ *@category Session
+ */
+ public IAcceptor getAcceptor()
+ {
+ return sessionConfig.getAcceptor();
+ }
+
+ /**
+ *@category Session
+ */
public IConnector getConnector()
{
return sessionConfig.getConnector();
@@ -191,6 +263,22 @@ public abstract class ConfigTest extends AbstractOMTest implements ContainerProv
/**
*@category Session
*/
+ public CDOSession openEagerSession()
+ {
+ return sessionConfig.openEagerSession();
+ }
+
+ /**
+ *@category Session
+ */
+ public CDOSession openLazySession()
+ {
+ return sessionConfig.openLazySession();
+ }
+
+ /**
+ *@category Session
+ */
public CDOSession openSession(EPackage ePackage)
{
return sessionConfig.openSession(ePackage);
@@ -218,6 +306,16 @@ public abstract class ConfigTest extends AbstractOMTest implements ContainerProv
/**
*@category Model
*/
+ public static final ModelConfig DEFAULT_MODEL_CONFIG = NATIVE;
+
+ /**
+ *@category Model
+ */
+ private ModelConfig modelConfig;
+
+ /**
+ *@category Model
+ */
public ModelConfig getModelConfig()
{
return modelConfig;
@@ -322,9 +420,9 @@ public abstract class ConfigTest extends AbstractOMTest implements ContainerProv
// /////////////////////////////////////////////////////////////////////////
// /////////////////////////////////////////////////////////////////////////
- public Map<String, String> getProperties()
+ public Map<String, Object> getTestProperties()
{
- return null;
+ return new HashMap<String, Object>();
}
public boolean isValid()
@@ -339,20 +437,66 @@ public abstract class ConfigTest extends AbstractOMTest implements ContainerProv
repositoryConfig, sessionConfig, modelConfig);
}
+ protected ContainerConfig filterContainerConfig(ContainerConfig config)
+ {
+ if (config == null)
+ {
+ config = DEFAULT_CONTAINER_CONFIG;
+ }
+
+ return config;
+ }
+
+ protected RepositoryConfig filterRepositoryConfig(RepositoryConfig config)
+ {
+ if (config == null)
+ {
+ config = DEFAULT_REPOSITORY_CONFIG;
+ }
+
+ return config;
+ }
+
+ protected SessionConfig filterSessionConfig(SessionConfig config)
+ {
+ if (config == null)
+ {
+ config = DEFAULT_SESSION_CONFIG;
+ }
+
+ return config;
+ }
+
+ protected ModelConfig filterModelConfig(ModelConfig config)
+ {
+ if (config == null)
+ {
+ config = DEFAULT_MODEL_CONFIG;
+ }
+
+ return config;
+ }
+
protected void skipConfig(Config config)
{
- skipTest(modelConfig == config);
- skipTest(sessionConfig == config);
+ skipTest(containerConfig == config || repositoryConfig == config || sessionConfig == config
+ || modelConfig == config);
+ }
+
+ protected void skipUnlessConfig(Config config)
+ {
+ skipTest(containerConfig != config && repositoryConfig != config && sessionConfig != config
+ && modelConfig != config);
}
@Override
protected void doSetUp() throws Exception
{
super.doSetUp();
- setUpConfig(containerConfig);
- setUpConfig(repositoryConfig);
- setUpConfig(sessionConfig);
- setUpConfig(modelConfig);
+ setUpConfig(containerConfig = filterContainerConfig(containerConfig));
+ setUpConfig(repositoryConfig = filterRepositoryConfig(repositoryConfig));
+ setUpConfig(sessionConfig = filterSessionConfig(sessionConfig));
+ setUpConfig(modelConfig = filterModelConfig(modelConfig));
}
@Override
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/ConfigTestSuite.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/ConfigTestSuite.java
index 60f0da6acf..2a57d76bd7 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/ConfigTestSuite.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/ConfigTestSuite.java
@@ -23,14 +23,8 @@ import junit.framework.TestSuite;
/**
* @author Eike Stepper
*/
-public abstract class ConfigTestSuite
+public abstract class ConfigTestSuite implements ConfigConstants
{
- public static final Config[][] CONFIGS = { //
- ContainerConfig.CONFIGS, //
- RepositoryConfig.CONFIGS, //
- SessionConfig.CONFIGS, //
- ModelConfig.CONFIGS };
-
public ConfigTestSuite()
{
}
@@ -42,7 +36,7 @@ public abstract class ConfigTestSuite
return suite;
}
- private void initConfigSuites(TestSuite parent)
+ protected void initConfigSuites(TestSuite parent)
{
for (ContainerConfig containerConfig : ContainerConfig.CONFIGS)
{
@@ -59,7 +53,7 @@ public abstract class ConfigTestSuite
}
}
- private void initConfigSuite(TestSuite parent, ContainerConfig containerConfig, RepositoryConfig repositoryConfig,
+ protected void initConfigSuite(TestSuite parent, ContainerConfig containerConfig, RepositoryConfig repositoryConfig,
SessionConfig sessionConfig, ModelConfig modelConfig)
{
Set<Config> configs = new HashSet<Config>();
@@ -107,7 +101,7 @@ public abstract class ConfigTestSuite
public ConfigSuite(Class<? extends ConfigTest> testClass, ContainerConfig containerConfig,
RepositoryConfig repositoryConfig, SessionConfig sessionConfig, ModelConfig modelConfig)
{
- super(testClass, testClass.getSimpleName());
+ super(testClass, testClass.getName()); // Important for the UI to set the *qualified* class name!
this.containerConfig = containerConfig;
this.repositoryConfig = repositoryConfig;
this.sessionConfig = sessionConfig;
@@ -137,14 +131,21 @@ public abstract class ConfigTestSuite
@Override
public void runTest(Test test, TestResult result)
{
- ConfigTest configTest = (ConfigTest)test;
- configTest.setContainerConfig(containerConfig);
- configTest.setRepositoryConfig(repositoryConfig);
- configTest.setSessionConfig(sessionConfig);
- configTest.setModelConfig(modelConfig);
- if (configTest.isValid())
+ if (test instanceof ConfigTest)
+ {
+ ConfigTest configTest = (ConfigTest)test;
+ configTest.setContainerConfig(containerConfig);
+ configTest.setRepositoryConfig(repositoryConfig);
+ configTest.setSessionConfig(sessionConfig);
+ configTest.setModelConfig(modelConfig);
+ if (configTest.isValid())
+ {
+ super.runTest(configTest, result);
+ }
+ }
+ else
{
- super.runTest(configTest, result);
+ super.runTest(test, result);
}
}
}
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/ContainerConfig.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/ContainerConfig.java
index eacb9491a6..e3a9da904f 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/ContainerConfig.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/ContainerConfig.java
@@ -16,6 +16,8 @@ import org.eclipse.emf.cdo.util.CDOUtil;
import org.eclipse.net4j.Net4jUtil;
import org.eclipse.net4j.util.container.ContainerUtil;
import org.eclipse.net4j.util.container.IManagedContainer;
+import org.eclipse.net4j.util.io.IOUtil;
+import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
/**
* @author Eike Stepper
@@ -29,6 +31,41 @@ public abstract class ContainerConfig extends Config implements ContainerProvide
super(name);
}
+ protected IManagedContainer clientContainer;
+
+ protected IManagedContainer serverContainer;
+
+ public boolean hasClientContainer()
+ {
+ return clientContainer != null;
+ }
+
+ public boolean hasServerContainer()
+ {
+ return serverContainer != null;
+ }
+
+ public void restartContainers() throws Exception
+ {
+ IOUtil.OUT().println("RESTARTING CONTAINER");
+ getCurrentTest().stopTransport();
+
+ // Stop client
+ LifecycleUtil.deactivate(clientContainer);
+ clientContainer = null;
+
+ // Restart server
+ LifecycleUtil.deactivate(serverContainer);
+ serverContainer = null;
+ getServerContainer();
+
+ // Start client
+ getClientContainer();
+
+ getCurrentTest().startTransport();
+ IOUtil.OUT().println("RESTARTING CONTAINER - FINISHED");
+ }
+
/**
* @author Eike Stepper
*/
@@ -38,8 +75,6 @@ public abstract class ContainerConfig extends Config implements ContainerProvide
public static final Combined INSTANCE = new Combined();
- private IManagedContainer container;
-
public Combined()
{
super(NAME);
@@ -47,12 +82,14 @@ public abstract class ContainerConfig extends Config implements ContainerProvide
public synchronized IManagedContainer getClientContainer()
{
- if (container == null)
+ if (clientContainer == null)
{
- container = createContainer();
+ clientContainer = createContainer();
+ LifecycleUtil.activate(clientContainer);
+ serverContainer = clientContainer;
}
- return container;
+ return clientContainer;
}
public IManagedContainer getServerContainer()
@@ -79,10 +116,6 @@ public abstract class ContainerConfig extends Config implements ContainerProvide
public static final Separated INSTANCE = new Separated();
- private IManagedContainer clientContainer;
-
- private IManagedContainer serverContainer;
-
public Separated()
{
super(NAME);
@@ -93,6 +126,7 @@ public abstract class ContainerConfig extends Config implements ContainerProvide
if (clientContainer == null)
{
clientContainer = createClientContainer();
+ LifecycleUtil.activate(clientContainer);
}
return clientContainer;
@@ -103,6 +137,7 @@ public abstract class ContainerConfig extends Config implements ContainerProvide
if (serverContainer == null)
{
serverContainer = createServerContainer();
+ LifecycleUtil.activate(serverContainer);
}
return serverContainer;
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/ContainerProvider.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/ContainerProvider.java
index 80aa37053c..335555e31b 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/ContainerProvider.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/ContainerProvider.java
@@ -17,7 +17,13 @@ import org.eclipse.net4j.util.container.IManagedContainer;
*/
public interface ContainerProvider
{
+ public boolean hasClientContainer();
+
+ public boolean hasServerContainer();
+
public IManagedContainer getClientContainer();
public IManagedContainer getServerContainer();
+
+ public void restartContainers() throws Exception;
}
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 5699b996dd..65bd709790 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
@@ -10,15 +10,23 @@
**************************************************************************/
package org.eclipse.emf.cdo.tests.config;
+import org.eclipse.emf.cdo.internal.server.Repository;
+import org.eclipse.emf.cdo.internal.server.RevisionManager;
import org.eclipse.emf.cdo.server.CDOServerUtil;
import org.eclipse.emf.cdo.server.IRepository;
+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.IMappingStrategy;
+import org.eclipse.net4j.util.ObjectUtil;
+import org.eclipse.net4j.util.container.IManagedContainer;
+import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
+
import java.util.HashMap;
import java.util.Map;
+import java.util.Map.Entry;
/**
* @author Eike Stepper
@@ -28,6 +36,12 @@ public abstract class RepositoryConfig extends Config implements RepositoryProvi
public static final RepositoryConfig[] CONFIGS = { MEM.INSTANCE, DBHorizontalHsql.INSTANCE,
DBHorizontalDerby.INSTANCE, Hibernate.INSTANCE };
+ public static final String PROP_TEST_REPOSITORY = "test.repository";
+
+ public static final String PROP_TEST_REVISION_MANAGER = "test.repository.revisionmanager";
+
+ public static final String PROP_TEST_STORE = "test.repository.store";
+
private Map<String, IRepository> repositories = new HashMap<String, IRepository>();
public RepositoryConfig(String name)
@@ -40,10 +54,16 @@ public abstract class RepositoryConfig extends Config implements RepositoryProvi
Map<String, String> repositoryProperties = new HashMap<String, String>();
initRepositoryProperties(repositoryProperties);
- Map<String, String> properties = getCurrentTest().getProperties();
- if (properties != null)
+ Map<String, Object> testProperties = getTestProperties();
+ if (testProperties != null)
{
- repositoryProperties.putAll(properties);
+ for (Entry<String, Object> entry : testProperties.entrySet())
+ {
+ if (entry.getValue() instanceof String)
+ {
+ repositoryProperties.put(entry.getKey(), (String)entry.getValue());
+ }
+ }
}
return repositoryProperties;
@@ -54,8 +74,21 @@ public abstract class RepositoryConfig extends Config implements RepositoryProvi
IRepository repository = repositories.get(name);
if (repository == null)
{
- repository = createRepository();
+ repository = getTestRepository();
+ if (repository != null && !ObjectUtil.equals(repository.getName(), name))
+ {
+ repository = null;
+ }
+
+ if (repository == null)
+ {
+ repository = createRepository(name);
+ }
+
repositories.put(name, repository);
+ LifecycleUtil.activate(repository);
+ // IManagedContainer serverContainer = getCurrentTest().getServerContainer();
+ // CDOServerUtil.addRepository(serverContainer, repository);
}
return repository;
@@ -63,13 +96,30 @@ public abstract class RepositoryConfig extends Config implements RepositoryProvi
protected void initRepositoryProperties(Map<String, String> props)
{
- props.put(Props.PROP_OVERRIDE_UUID, "TEST_UUID");
+ 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");
}
@Override
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+ IManagedContainer serverContainer = getCurrentTest().getServerContainer();
+ CDOServerUtil.prepareContainer(serverContainer, new IRepositoryProvider()
+ {
+ public IRepository getRepository(String name)
+ {
+ return repositories.get(name);
+ }
+ });
+
+ // Start default repository
+ getRepository(REPOSITORY_NAME);
+ }
+
+ @Override
protected void tearDown() throws Exception
{
// TODO deactivate?
@@ -77,13 +127,42 @@ public abstract class RepositoryConfig extends Config implements RepositoryProvi
super.tearDown();
}
- protected IRepository createRepository()
+ protected IRepository createRepository(String name)
{
- return CDOServerUtil.createRepository(REPOSITORY_NAME, createStore(), getRepositoryProperties());
+ IStore store = getTestStore();
+ if (store == null)
+ {
+ store = createStore();
+ }
+
+ Repository repository = (Repository)CDOServerUtil.createRepository(name, store, getRepositoryProperties());
+
+ RevisionManager revisionManager = getTestRevisionManager();
+ if (revisionManager != null)
+ {
+ repository.setRevisionManager(revisionManager);
+ }
+
+ return repository;
}
protected abstract IStore createStore();
+ protected IRepository getTestRepository()
+ {
+ return (IRepository)getTestProperty(PROP_TEST_REPOSITORY);
+ }
+
+ protected RevisionManager getTestRevisionManager()
+ {
+ return (RevisionManager)getTestProperty(PROP_TEST_REVISION_MANAGER);
+ }
+
+ protected IStore getTestStore()
+ {
+ return (IStore)getTestProperty(PROP_TEST_STORE);
+ }
+
/**
* @author Eike Stepper
*/
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/SessionConfig.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/SessionConfig.java
index 11f5ee5ecb..b13f0a71a2 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/SessionConfig.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/SessionConfig.java
@@ -14,9 +14,11 @@ import org.eclipse.emf.cdo.CDOSession;
import org.eclipse.emf.cdo.CDOSessionConfiguration;
import org.eclipse.emf.cdo.util.CDOUtil;
+import org.eclipse.net4j.acceptor.IAcceptor;
import org.eclipse.net4j.connector.IConnector;
import org.eclipse.net4j.jvm.JVMUtil;
import org.eclipse.net4j.tcp.TCPUtil;
+import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
import org.eclipse.emf.ecore.EPackage;
@@ -34,6 +36,30 @@ public abstract class SessionConfig extends Config implements SessionProvider
super(name);
}
+ public void startTransport() throws Exception
+ {
+ IAcceptor acceptor = getAcceptor();
+ LifecycleUtil.activate(acceptor);
+
+ IConnector connector = getConnector();
+ LifecycleUtil.activate(connector);
+ }
+
+ public void stopTransport() throws Exception
+ {
+ if (getCurrentTest().hasClientContainer())
+ {
+ IConnector connector = getConnector();
+ LifecycleUtil.deactivate(connector);
+ }
+
+ if (getCurrentTest().hasServerContainer())
+ {
+ IAcceptor acceptor = getAcceptor();
+ LifecycleUtil.deactivate(acceptor);
+ }
+ }
+
public CDOSession openMangoSession()
{
return openSession(getCurrentTest().getMangoPackage());
@@ -41,17 +67,33 @@ public abstract class SessionConfig extends Config implements SessionProvider
public CDOSession openModel1Session()
{
- return openSession(getCurrentTest().getMangoPackage());
+ return openSession(getCurrentTest().getModel1Package());
}
public CDOSession openModel2Session()
{
- return openSession(getCurrentTest().getMangoPackage());
+ CDOSession session = openModel1Session();
+ session.getPackageRegistry().putEPackage(getCurrentTest().getModel2Package());
+ return session;
}
public CDOSession openModel3Session()
{
- return openSession(getCurrentTest().getMangoPackage());
+ return openSession(getCurrentTest().getModel3Package());
+ }
+
+ public CDOSession openEagerSession()
+ {
+ CDOSessionConfiguration configuration = createSessionConfiguration(RepositoryProvider.REPOSITORY_NAME);
+ configuration.setEagerPackageRegistry();
+ return configuration.openSession();
+ }
+
+ public CDOSession openLazySession()
+ {
+ CDOSessionConfiguration configuration = createSessionConfiguration(RepositoryProvider.REPOSITORY_NAME);
+ configuration.setEagerPackageRegistry();
+ return configuration.openSession();
}
public CDOSession openSession(EPackage ePackage)
@@ -63,9 +105,7 @@ public abstract class SessionConfig extends Config implements SessionProvider
public CDOSession openSession(String repositoryName)
{
- CDOSessionConfiguration configuration = CDOUtil.createSessionConfiguration();
- configuration.setConnector(getConnector());
- configuration.setRepositoryName(repositoryName);
+ CDOSessionConfiguration configuration = createSessionConfiguration(repositoryName);
return configuration.openSession();
}
@@ -74,6 +114,14 @@ public abstract class SessionConfig extends Config implements SessionProvider
return openSession(RepositoryProvider.REPOSITORY_NAME);
}
+ private CDOSessionConfiguration createSessionConfiguration(String repositoryName)
+ {
+ CDOSessionConfiguration configuration = CDOUtil.createSessionConfiguration();
+ configuration.setConnector(getConnector());
+ configuration.setRepositoryName(repositoryName);
+ return configuration;
+ }
+
/**
* @author Eike Stepper
*/
@@ -90,6 +138,11 @@ public abstract class SessionConfig extends Config implements SessionProvider
super(NAME);
}
+ public IAcceptor getAcceptor()
+ {
+ return TCPUtil.getAcceptor(getCurrentTest().getServerContainer(), null);
+ }
+
public IConnector getConnector()
{
return TCPUtil.getConnector(getCurrentTest().getClientContainer(), CONNECTOR_HOST);
@@ -100,7 +153,7 @@ public abstract class SessionConfig extends Config implements SessionProvider
{
super.setUp();
TCPUtil.prepareContainer(getCurrentTest().getClientContainer());
- TCPUtil.prepareContainer(getCurrentTest().getClientContainer());
+ TCPUtil.prepareContainer(getCurrentTest().getServerContainer());
}
}
@@ -113,24 +166,29 @@ public abstract class SessionConfig extends Config implements SessionProvider
public static final JVM INSTANCE = new JVM();
- public static final String CONNECTOR_NAME = "default";
+ public static final String ACCEPTOR_NAME = "default";
public JVM()
{
super(NAME);
}
+ public IAcceptor getAcceptor()
+ {
+ return JVMUtil.getAcceptor(getCurrentTest().getServerContainer(), ACCEPTOR_NAME);
+ }
+
public IConnector getConnector()
{
- return JVMUtil.getConnector(getCurrentTest().getClientContainer(), CONNECTOR_NAME);
+ return JVMUtil.getConnector(getCurrentTest().getClientContainer(), ACCEPTOR_NAME);
}
@Override
protected void setUp() throws Exception
{
super.setUp();
- TCPUtil.prepareContainer(getCurrentTest().getClientContainer());
- TCPUtil.prepareContainer(getCurrentTest().getClientContainer());
+ JVMUtil.prepareContainer(getCurrentTest().getClientContainer());
+ JVMUtil.prepareContainer(getCurrentTest().getServerContainer());
}
@Override
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/SessionProvider.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/SessionProvider.java
index b55e1ed9a8..4722bdaba7 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/SessionProvider.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/SessionProvider.java
@@ -12,6 +12,7 @@ package org.eclipse.emf.cdo.tests.config;
import org.eclipse.emf.cdo.CDOSession;
+import org.eclipse.net4j.acceptor.IAcceptor;
import org.eclipse.net4j.connector.IConnector;
import org.eclipse.emf.ecore.EPackage;
@@ -21,6 +22,12 @@ import org.eclipse.emf.ecore.EPackage;
*/
public interface SessionProvider
{
+ public void startTransport() throws Exception;
+
+ public void stopTransport() throws Exception;
+
+ public IAcceptor getAcceptor();
+
public IConnector getConnector();
public CDOSession openMangoSession();
@@ -31,6 +38,10 @@ public interface SessionProvider
public CDOSession openModel3Session();
+ public CDOSession openEagerSession();
+
+ public CDOSession openLazySession();
+
public CDOSession openSession(EPackage ePackage);
public CDOSession openSession(String repositoryName);
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/store/logic/TestLogic.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/store/logic/TestLogic.java
index 0ded76661c..5379f25ebb 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/store/logic/TestLogic.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/store/logic/TestLogic.java
@@ -92,7 +92,7 @@ public abstract class TestLogic extends AbstractOMTest
props.putAll(testProperties);
}
- Repository repository = new Repository();
+ Repository repository = new Repository.Default();
repository.setName(REPOSITORY_NAME);
repository.setProperties(props);
repository.setStore(createStore());

Back to the top