diff options
author | Eike Stepper | 2016-12-14 08:06:34 +0000 |
---|---|---|
committer | Eike Stepper | 2016-12-14 08:06:34 +0000 |
commit | e06ec8c3a7c6a8cfa334752f3435264d5dc6dd7c (patch) | |
tree | 7a87ada54a771b2207bbe48b8a5a8d71502305e8 /plugins/org.eclipse.emf.cdo.tests/src/org | |
parent | 5986b206d25da8e5d040cc042cba11fa1581b272 (diff) | |
download | cdo-e06ec8c3a7c6a8cfa334752f3435264d5dc6dd7c.tar.gz cdo-e06ec8c3a7c6a8cfa334752f3435264d5dc6dd7c.tar.xz cdo-e06ec8c3a7c6a8cfa334752f3435264d5dc6dd7c.zip |
[509149] Provide an EmbeddedRepository
https://bugs.eclipse.org/bugs/show_bug.cgi?id=509149
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.tests/src/org')
6 files changed, 116 insertions, 73 deletions
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTestsMEMEmbedded.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTestsMEMEmbedded.java index 609d634dfb..a88b0bcaae 100644 --- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTestsMEMEmbedded.java +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTestsMEMEmbedded.java @@ -15,9 +15,7 @@ import junit.framework.TestSuite; /** * @author Eike Stepper - * @deprecated Not yet supported. */ -@Deprecated public class AllTestsMEMEmbedded extends AllConfigs { public static Test suite() @@ -28,6 +26,6 @@ public class AllTestsMEMEmbedded extends AllConfigs @Override protected void initConfigSuites(TestSuite parent) { - addScenario(parent, MEM, EMBEDDED, NATIVE); + addScenario(parent, MEM_EMBEDDED_BRANCHES, EMBEDDED, NATIVE); } } diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/IConstants.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/IConstants.java index 754df5d5e7..d3ad3ce1ca 100644 --- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/IConstants.java +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/IConstants.java @@ -33,11 +33,9 @@ public interface IConstants public static final RepositoryConfig MEM_OFFLINE = new MEMOfflineConfig(IDGenerationLocation.CLIENT); - /** - * @deprecated Not yet supported. - */ - @Deprecated - public static final SessionConfig EMBEDDED = SessionConfig.Embedded.INSTANCE; + public static final RepositoryConfig MEM_EMBEDDED_BRANCHES = new MEMConfig.Embedded(true, true, IDGenerationLocation.STORE); + + public static final SessionConfig EMBEDDED = Net4j.JVM.Embedded.INSTANCE; public static final SessionConfig JVM = Net4j.JVM.INSTANCE; diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/ISessionConfig.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/ISessionConfig.java index a62ea8a6f8..f8bc572c5c 100644 --- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/ISessionConfig.java +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/ISessionConfig.java @@ -30,6 +30,8 @@ public interface ISessionConfig extends IConfig public static final String CAPABILITY_NET4J_SSL = "session.net4j.ssl"; + public static final String CAPABILITY_NET4J_EMBEDDED = "session.net4j.embedded"; + public IManagedContainer getClientContainer(); public boolean hasClientContainer(); 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 be7e359a55..ad9f618b85 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 @@ -39,12 +39,16 @@ import org.eclipse.emf.cdo.server.IStoreAccessor.CommitContext; import org.eclipse.emf.cdo.server.ITransaction; import org.eclipse.emf.cdo.server.StoreThreadLocal; import org.eclipse.emf.cdo.server.admin.CDOAdminServerUtil; +import org.eclipse.emf.cdo.server.internal.embedded.ServerBranchLoader; +import org.eclipse.emf.cdo.server.internal.embedded.ServerRevisionLoader; import org.eclipse.emf.cdo.server.mem.MEMStoreUtil; import org.eclipse.emf.cdo.server.net4j.CDONet4jServerUtil; import org.eclipse.emf.cdo.server.ocl.OCLQueryHandler; import org.eclipse.emf.cdo.server.security.ISecurityManager; import org.eclipse.emf.cdo.server.spi.security.InternalSecurityManager; import org.eclipse.emf.cdo.session.CDOSessionConfigurationFactory; +import org.eclipse.emf.cdo.spi.common.branch.CDOBranchUtil; +import org.eclipse.emf.cdo.spi.common.branch.InternalCDOBranchManager; import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevision; import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevisionManager; import org.eclipse.emf.cdo.spi.server.InternalRepository; @@ -71,6 +75,7 @@ import org.eclipse.net4j.util.concurrent.DelegatingExecutorService; import org.eclipse.net4j.util.concurrent.ExecutorServiceFactory; import org.eclipse.net4j.util.container.ContainerUtil; import org.eclipse.net4j.util.container.IManagedContainer; +import org.eclipse.net4j.util.container.IPluginContainer; import org.eclipse.net4j.util.event.IEvent; import org.eclipse.net4j.util.event.IListener; import org.eclipse.net4j.util.event.ThrowableEvent; @@ -355,8 +360,12 @@ public abstract class RepositoryConfig extends Config implements IRepositoryConf } } - IManagedContainer serverContainer = getServerContainer(); - repository.setContainer(serverContainer); + if (repository.getContainer() == IPluginContainer.INSTANCE) + { + IManagedContainer serverContainer = getServerContainer(); + repository.setContainer(serverContainer); + } + registerRepository(repository); if (activate) @@ -596,7 +605,7 @@ public abstract class RepositoryConfig extends Config implements IRepositoryConf IStore store = createStore(name); Map<String, String> repoProps = getRepositoryProperties(); - InternalRepository repository = (InternalRepository)CDOServerUtil.createRepository(name, store, repoProps); + InternalRepository repository = createRepository(name, store, repoProps); if (hasAnnotation(CountedTime.class)) { @@ -655,6 +664,11 @@ public abstract class RepositoryConfig extends Config implements IRepositoryConf return repository; } + protected InternalRepository createRepository(String name, IStore store, Map<String, String> props) + { + return (InternalRepository)CDOServerUtil.createRepository(name, store, props); + } + protected InternalRepository getTestRepository() { return (InternalRepository)getTestProperty(PROP_TEST_REPOSITORY); @@ -1075,9 +1089,14 @@ public abstract class RepositoryConfig extends Config implements IRepositoryConf private static final long serialVersionUID = 1L; + public MEMConfig(String name, boolean supportingAudits, boolean supportingBranches, IDGenerationLocation idGenerationLocation) + { + super(name, supportingAudits, supportingBranches, idGenerationLocation); + } + public MEMConfig(boolean supportingAudits, boolean supportingBranches, IDGenerationLocation idGenerationLocation) { - super(STORE_NAME, supportingAudits, supportingBranches, idGenerationLocation); + this(STORE_NAME, supportingAudits, supportingBranches, idGenerationLocation); } @Override @@ -1096,6 +1115,34 @@ public abstract class RepositoryConfig extends Config implements IRepositoryConf { return MEMStoreUtil.createMEMStore(); } + + /** + * @author Eike Stepper + */ + public static class Embedded extends MEMConfig + { + private static final long serialVersionUID = 1L; + + public Embedded(boolean supportingAudits, boolean supportingBranches, IDGenerationLocation idGenerationLocation) + { + super(STORE_NAME + "Embedded", supportingAudits, supportingBranches, idGenerationLocation); + } + + @Override + protected InternalRepository createRepository(String name) + { + InternalRepository repository = super.createRepository(name); + + InternalCDORevisionManager revisionManager = repository.getRevisionManager(); + revisionManager.setRevisionLoader(new ServerRevisionLoader(repository)); + + InternalCDOBranchManager branchManager = CDOBranchUtil.createBranchManager(); + branchManager.setBranchLoader(new ServerBranchLoader(repository)); + repository.setBranchManager(branchManager); + + return repository; + } + } } /** diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/impl/SessionConfig.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/impl/SessionConfig.java index 573a0f9e80..be01b4d04f 100644 --- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/impl/SessionConfig.java +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/config/impl/SessionConfig.java @@ -11,14 +11,18 @@ */ package org.eclipse.emf.cdo.tests.config.impl; +import org.eclipse.emf.cdo.common.branch.CDOBranchManager; +import org.eclipse.emf.cdo.common.revision.CDORevisionManager; +import org.eclipse.emf.cdo.net4j.CDONet4jSession; import org.eclipse.emf.cdo.net4j.CDONet4jSessionConfiguration; import org.eclipse.emf.cdo.net4j.CDONet4jUtil; import org.eclipse.emf.cdo.net4j.CDONet4jViewProvider; -import org.eclipse.emf.cdo.server.CDOServerUtil; -import org.eclipse.emf.cdo.server.IRepository; +import org.eclipse.emf.cdo.server.internal.embedded.ClientBranchManager; +import org.eclipse.emf.cdo.server.internal.embedded.ClientRevisionManager; import org.eclipse.emf.cdo.session.CDOSession; import org.eclipse.emf.cdo.session.CDOSessionConfiguration; import org.eclipse.emf.cdo.spi.common.CDOLobStoreImpl; +import org.eclipse.emf.cdo.spi.server.InternalRepository; import org.eclipse.emf.cdo.tests.config.IRepositoryConfig; import org.eclipse.emf.cdo.tests.config.ISessionConfig; import org.eclipse.emf.cdo.tests.util.TestRevisionManager; @@ -315,56 +319,6 @@ public abstract class SessionConfig extends Config implements ISessionConfig /** * @author Eike Stepper - * @deprecated Not yet supported. - */ - @Deprecated - public static final class Embedded extends SessionConfig - { - public static final String NAME = "Embedded"; - - public static final Embedded INSTANCE = new Embedded(); - - private static final long serialVersionUID = 1L; - - public Embedded() - { - super(NAME); - } - - public void initCapabilities(Set<String> capabilities) - { - capabilities.add(CAPABILITY_EMBEDDED); - } - - public String getURIProtocol() - { - throw new UnsupportedOperationException(); - } - - public String getURIPrefix() - { - throw new UnsupportedOperationException(); - } - - @Override - public CDOSessionConfiguration createSessionConfiguration(String repositoryName) - { - IRepository repository = getCurrentTest().getRepository(repositoryName); - - org.eclipse.emf.cdo.server.embedded.CDOSessionConfiguration configuration = CDOServerUtil.createSessionConfiguration(); - configuration.setRepository(repository); - return configuration; - } - - @Override - protected boolean usesServerContainer() - { - return true; - } - } - - /** - * @author Eike Stepper */ public static abstract class Net4j extends SessionConfig { @@ -620,7 +574,7 @@ public abstract class SessionConfig extends Config implements ISessionConfig /** * @author Eike Stepper */ - public static final class JVM extends SessionConfig.Net4j + public static class JVM extends SessionConfig.Net4j { public static final String NAME = "JVM"; @@ -630,9 +584,14 @@ public abstract class SessionConfig extends Config implements ISessionConfig private static final long serialVersionUID = 1L; + public JVM(String name) + { + super(name); + } + public JVM() { - super(NAME); + this(NAME); } @Override @@ -684,6 +643,52 @@ public abstract class SessionConfig extends Config implements ISessionConfig } }; } + + /** + * @author Eike Stepper + */ + public static final class Embedded extends SessionConfig.Net4j.JVM + { + public static final String NAME = "JVMEmbedded"; + + public static final Embedded INSTANCE = new Embedded(); + + private static final long serialVersionUID = 1L; + + public Embedded() + { + super(NAME); + } + + @Override + public void initCapabilities(Set<String> capabilities) + { + super.initCapabilities(capabilities); + capabilities.add(CAPABILITY_NET4J_EMBEDDED); + } + + @Override + public CDOSessionConfiguration createSessionConfiguration(String repositoryName) + { + InternalRepository repository = getCurrentTest().getRepository(repositoryName); + CDOBranchManager branchManager = new ClientBranchManager(repository.getBranchManager()); + CDORevisionManager revisionManager = new ClientRevisionManager(repository.getRevisionManager()); + + CDONet4jSessionConfiguration configuration = (CDONet4jSessionConfiguration)super.createSessionConfiguration(repositoryName); + configuration.setBranchManager(branchManager); + configuration.setRevisionManager(revisionManager); + configuration.setSignalTimeout(Integer.MAX_VALUE); + + return configuration; + } + + @Override + public void configureSession(CDOSession session) + { + super.configureSession(session); + ((CDONet4jSession)session).options().setCommitTimeout(Integer.MAX_VALUE); + } + } } } } diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/util/TestRevisionManager.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/util/TestRevisionManager.java index 942106285a..f1ec3372e8 100644 --- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/util/TestRevisionManager.java +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/util/TestRevisionManager.java @@ -19,7 +19,6 @@ import org.eclipse.emf.cdo.spi.common.revision.RevisionInfo; import org.eclipse.emf.cdo.spi.common.revision.SyntheticCDORevision; import org.eclipse.net4j.util.concurrent.ConcurrencyUtil; -import org.eclipse.net4j.util.event.IListener; import java.util.List; @@ -71,12 +70,6 @@ public class TestRevisionManager extends CDORevisionManagerImpl return super.getRevisions(ids, branchPoint, referenceChunk, prefetchDepth, loadOnDemand, synthetics); } - @Override - public void addListener(IListener listener) - { - super.addListener(listener); - } - public void resetLoadCounter() { synchronized (lock) |