Skip to main content
summaryrefslogtreecommitdiffstats
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/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo
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/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo')
-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
19 files changed, 302 insertions, 103 deletions
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();

Back to the top