Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/impl/RepositoryConfig.java')
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/impl/RepositoryConfig.java79
1 files changed, 41 insertions, 38 deletions
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/impl/RepositoryConfig.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/impl/RepositoryConfig.java
index 409492315a..4186b96b2c 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/impl/RepositoryConfig.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/impl/RepositoryConfig.java
@@ -637,35 +637,40 @@ public abstract class RepositoryConfig extends Config implements IRepositoryConf
stopMasterTransport();
}
- @Override
- protected InternalRepository createRepository(String name)
+ protected InternalRepository createMasterRepository(String masterName, String name, Map<String, String> props,
+ boolean failover)
{
- boolean failover = getTestFailover();
- Map<String, String> props = getRepositoryProperties();
-
- final String masterName = name + "_master";
IStore masterStore = createStore(masterName);
-
- InternalRepository master;
if (failover)
{
InternalRepositorySynchronizer synchronizer = createSynchronizer("backup", name);
- master = (InternalRepository)CDOServerUtil.createFailoverParticipant(masterName, masterStore, props,
+ return (InternalRepository)CDOServerUtil.createFailoverParticipant(masterName, masterStore, props,
synchronizer, true);
}
- else
- {
- master = (InternalRepository)CDOServerUtil.createRepository(masterName, masterStore, props);
- }
+ return (InternalRepository)CDOServerUtil.createRepository(masterName, masterStore, props);
+ }
+
+ @Override
+ protected InternalRepository createRepository(String name)
+ {
+ boolean failover = getTestFailover();
+ Map<String, String> props = getRepositoryProperties();
+
+ final String masterName = "master";
+ InternalRepository master;
synchronized (repositories)
{
- repositories.put(masterName, master);
+ master = repositories.get(masterName);
+ if (master == null)
+ {
+ master = createMasterRepository(masterName, name, props, failover);
+ repositories.put(masterName, master);
+ LifecycleUtil.activate(master);
+ startMasterTransport();
+ }
}
- LifecycleUtil.activate(master);
- startMasterTransport();
-
InternalRepositorySynchronizer synchronizer = createSynchronizer("master", masterName);
IStore store = createStore(name);
@@ -673,33 +678,31 @@ public abstract class RepositoryConfig extends Config implements IRepositoryConf
{
return (InternalRepository)CDOServerUtil.createFailoverParticipant(name, store, props, synchronizer, false);
}
- else
+
+ OfflineClone repository = new OfflineClone()
{
- OfflineClone repository = new OfflineClone()
+ @Override
+ public void handleCommitInfo(CDOCommitInfo commitInfo)
{
- @Override
- public void handleCommitInfo(CDOCommitInfo commitInfo)
- {
- waitIfLockAvailable();
- super.handleCommitInfo(commitInfo);
- }
+ waitIfLockAvailable();
+ super.handleCommitInfo(commitInfo);
+ }
- private void waitIfLockAvailable()
+ private void waitIfLockAvailable()
+ {
+ long millis = getTestDelayedCommitHandling();
+ if (millis != 0L)
{
- long millis = getTestDelayedCommitHandling();
- if (millis != 0L)
- {
- ConcurrencyUtil.sleep(millis);
- }
+ ConcurrencyUtil.sleep(millis);
}
- };
+ }
+ };
- repository.setName(name);
- repository.setStore((InternalStore)store);
- repository.setProperties(props);
- repository.setSynchronizer(synchronizer);
- return repository;
- }
+ repository.setName(name);
+ repository.setStore((InternalStore)store);
+ repository.setProperties(props);
+ repository.setSynchronizer(synchronizer);
+ return repository;
}
protected InternalRepositorySynchronizer createSynchronizer(final String acceptorName, final String repositoryName)

Back to the top