This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to annotated tag org.apache.sling.testing.sling-mock-1.6.0 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-sling-mock.git
commit 8801d9987b1036e361e9e1486da7389263b95757 Author: Stefan Seifert <[email protected]> AuthorDate: Fri Oct 2 23:31:40 2015 +0000 SLING-5088 control SlingRepository resources via activate/deactivate methods; make sure all oak ExecutorServices are shutdown properly git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/testing/mocks/sling-mock@1706505 13f79535-47bb-0310-9956-ffa450edef68 --- .../mock/sling/MockJcrResourceResolverAdapter.java | 6 +--- .../testing/mock/sling/MockJcrSlingRepository.java | 39 +++++++++++++--------- .../sling/ResourceResolverFactoryInitializer.java | 6 ++-- .../mock/sling/MockJcrSlingRepositoryTest.java | 9 +++-- 4 files changed, 34 insertions(+), 26 deletions(-) diff --git a/src/main/java/org/apache/sling/testing/mock/sling/MockJcrResourceResolverAdapter.java b/src/main/java/org/apache/sling/testing/mock/sling/MockJcrResourceResolverAdapter.java index 8eafd59..d9df564 100644 --- a/src/main/java/org/apache/sling/testing/mock/sling/MockJcrResourceResolverAdapter.java +++ b/src/main/java/org/apache/sling/testing/mock/sling/MockJcrResourceResolverAdapter.java @@ -18,11 +18,8 @@ */ package org.apache.sling.testing.mock.sling; -import javax.jcr.Repository; - import org.apache.sling.api.resource.ResourceResolverFactory; import org.apache.sling.jcr.api.SlingRepository; -import org.apache.sling.testing.mock.jcr.MockJcr; import org.apache.sling.testing.mock.sling.spi.ResourceResolverTypeAdapter; /** @@ -37,8 +34,7 @@ class MockJcrResourceResolverAdapter implements ResourceResolverTypeAdapter { @Override public SlingRepository newSlingRepository() { - Repository repository = MockJcr.newRepository(); - return new MockJcrSlingRepository(repository); + return new MockJcrSlingRepository(); } } diff --git a/src/main/java/org/apache/sling/testing/mock/sling/MockJcrSlingRepository.java b/src/main/java/org/apache/sling/testing/mock/sling/MockJcrSlingRepository.java index c5e0f58..48fd567 100644 --- a/src/main/java/org/apache/sling/testing/mock/sling/MockJcrSlingRepository.java +++ b/src/main/java/org/apache/sling/testing/mock/sling/MockJcrSlingRepository.java @@ -26,18 +26,25 @@ import javax.jcr.RepositoryException; import javax.jcr.Session; import javax.jcr.Value; +import org.apache.felix.scr.annotations.Activate; +import org.apache.felix.scr.annotations.Component; +import org.apache.felix.scr.annotations.Service; import org.apache.sling.jcr.api.SlingRepository; import org.apache.sling.testing.mock.jcr.MockJcr; +import org.osgi.service.component.ComponentContext; /** * Mock {@link SlingRepository} implementation. */ -class MockJcrSlingRepository implements SlingRepository { - - private final Repository delegate; - - public MockJcrSlingRepository(final Repository delegate) { - this.delegate = delegate; +@Component +@Service(SlingRepository.class) +public final class MockJcrSlingRepository implements SlingRepository { + + private Repository repository; + + @Activate + protected void activate(ComponentContext componentContext) { + repository = MockJcr.newRepository(); } @Override @@ -59,54 +66,54 @@ class MockJcrSlingRepository implements SlingRepository { // delegated methods @Override public String[] getDescriptorKeys() { - return this.delegate.getDescriptorKeys(); + return this.repository.getDescriptorKeys(); } @Override public boolean isStandardDescriptor(final String key) { - return this.delegate.isStandardDescriptor(key); + return this.repository.isStandardDescriptor(key); } @Override public boolean isSingleValueDescriptor(final String key) { - return this.delegate.isSingleValueDescriptor(key); + return this.repository.isSingleValueDescriptor(key); } @Override public Value getDescriptorValue(final String key) { - return this.delegate.getDescriptorValue(key); + return this.repository.getDescriptorValue(key); } @Override public Value[] getDescriptorValues(final String key) { - return this.delegate.getDescriptorValues(key); + return this.repository.getDescriptorValues(key); } @Override public String getDescriptor(final String key) { - return this.delegate.getDescriptor(key); + return this.repository.getDescriptor(key); } @Override public Session login(final Credentials credentials, final String workspaceName) throws LoginException, NoSuchWorkspaceException, RepositoryException { - return this.delegate.login(credentials, workspaceName); + return this.repository.login(credentials, workspaceName); } @Override public Session login(final Credentials credentials) throws LoginException, RepositoryException { - return this.delegate.login(credentials); + return this.repository.login(credentials); } @Override public Session login(final String workspaceName) throws LoginException, NoSuchWorkspaceException, RepositoryException { - return this.delegate.login(workspaceName); + return this.repository.login(workspaceName); } @Override public Session login() throws LoginException, RepositoryException { - return this.delegate.login(); + return this.repository.login(); } } diff --git a/src/main/java/org/apache/sling/testing/mock/sling/ResourceResolverFactoryInitializer.java b/src/main/java/org/apache/sling/testing/mock/sling/ResourceResolverFactoryInitializer.java index 0572ec9..fef5f6c 100644 --- a/src/main/java/org/apache/sling/testing/mock/sling/ResourceResolverFactoryInitializer.java +++ b/src/main/java/org/apache/sling/testing/mock/sling/ResourceResolverFactoryInitializer.java @@ -60,12 +60,12 @@ class ResourceResolverFactoryInitializer { BundleContext bundleContext, NodeTypeMode nodeTypeMode) { if (slingRepository != null) { + // register sling repository as OSGi service + registerServiceIfNotPresent(bundleContext, SlingRepository.class, slingRepository); + // register JCR node types found in classpath registerJcrNodeTypes(slingRepository, nodeTypeMode); - // register sling repository as OSGi service - bundleContext.registerService(SlingRepository.class.getName(), slingRepository, null); - // initialize JCR resource provider factory ensureJcrResourceProviderFactoryDependencies(bundleContext); initializeJcrResourceProviderFactory(bundleContext); diff --git a/src/test/java/org/apache/sling/testing/mock/sling/MockJcrSlingRepositoryTest.java b/src/test/java/org/apache/sling/testing/mock/sling/MockJcrSlingRepositoryTest.java index 9d425a9..902aaca 100644 --- a/src/test/java/org/apache/sling/testing/mock/sling/MockJcrSlingRepositoryTest.java +++ b/src/test/java/org/apache/sling/testing/mock/sling/MockJcrSlingRepositoryTest.java @@ -25,18 +25,23 @@ import javax.jcr.Session; import org.apache.sling.jcr.api.SlingRepository; import org.apache.sling.testing.mock.jcr.MockJcr; +import org.apache.sling.testing.mock.osgi.junit.OsgiContext; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; public class MockJcrSlingRepositoryTest { + @Rule + public OsgiContext context = new OsgiContext(); + private SlingRepository repository; @Before public void setUp() { - this.repository = new MockJcrSlingRepository(MockJcr.newRepository()); + this.repository = context.registerInjectActivateService(new MockJcrSlingRepository()); } - + @SuppressWarnings("deprecation") @Test public void testLoginAdministrative() throws RepositoryException { -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
