You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 10:23:46 UTC
[sling-org-apache-sling-testing-sling-mock] 30/37: SLING-5088
control SlingRepository resources via activate/deactivate methods;
make sure all oak ExecutorServices are shutdown properly
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 <ss...@apache.org>
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
"commits@sling.apache.org" <co...@sling.apache.org>.