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-2.2.10
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-sling-mock.git

commit 2c484d7b21be3983bd61ed83953aa1e9b1f35eab
Author: Stefan Seifert <[email protected]>
AuthorDate: Sat Apr 29 07:25:35 2017 +0000

    SLING-6812 sling-mock: Lazy initialization of ResourceResolverFactory
    
    git-svn-id: 
https://svn.apache.org/repos/asf/sling/trunk/testing/mocks/sling-mock@1793172 
13f79535-47bb-0310-9956-ffa450edef68
---
 .../mock/sling/ResourceResolverFactoryInitializer.java      |  1 +
 .../sling/testing/mock/sling/context/SlingContextImpl.java  | 12 +++++++++---
 .../mock/sling/context/NoResourceResolverTypeTest.java      | 13 +++++++++++++
 3 files changed, 23 insertions(+), 3 deletions(-)

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 65d8dc1..0b42c49 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
@@ -124,6 +124,7 @@ class ResourceResolverFactoryInitializer {
         Dictionary<String, Object> config = new Hashtable<String, Object>();
         // do not required a specific resource provider (otherwise "NONE" will 
not work)
         config.put("resource.resolver.required.providers", "");
+        config.put("resource.resolver.required.providernames", "");
         ResourceResolverFactoryActivator activator = new 
ResourceResolverFactoryActivator();
         MockOsgi.injectServices(activator, bundleContext);
         MockOsgi.activate(activator, bundleContext, config);
diff --git 
a/src/main/java/org/apache/sling/testing/mock/sling/context/SlingContextImpl.java
 
b/src/main/java/org/apache/sling/testing/mock/sling/context/SlingContextImpl.java
index dc5e986..20557eb 100644
--- 
a/src/main/java/org/apache/sling/testing/mock/sling/context/SlingContextImpl.java
+++ 
b/src/main/java/org/apache/sling/testing/mock/sling/context/SlingContextImpl.java
@@ -118,7 +118,6 @@ public class SlingContextImpl extends OsgiContextImpl {
             MockOsgi.setConfigForPid(bundleContext(), 
RESOURCERESOLVERFACTORYACTIVATOR_PID, 
this.resourceResolverFactoryActivatorProps);
         }
         
-        this.resourceResolverFactory = newResourceResolverFactory();
         registerDefaultServices();
     }
     
@@ -129,6 +128,13 @@ public class SlingContextImpl extends OsgiContextImpl {
     protected ResourceResolverFactory newResourceResolverFactory() {
         return ContextResourceResolverFactory.get(this.resourceResolverType, 
bundleContext());
     }
+    
+    private ResourceResolverFactory resourceResolverFactory() {
+        if (this.resourceResolverFactory == null) {
+            this.resourceResolverFactory = newResourceResolverFactory();
+        }
+        return this.resourceResolverFactory;
+    }
 
     /**
      * Default services that should be available for every unit test
@@ -212,7 +218,7 @@ public class SlingContextImpl extends OsgiContextImpl {
     public final ResourceResolverType resourceResolverType() {
         return this.resourceResolverType;
     }
-
+    
     /**
      * Returns the singleton resource resolver bound to this context.
      * It is automatically closed after the test.
@@ -221,7 +227,7 @@ public class SlingContextImpl extends OsgiContextImpl {
     public final ResourceResolver resourceResolver() {
         if (this.resourceResolver == null) {
             try {
-                this.resourceResolver = 
this.resourceResolverFactory.getAdministrativeResourceResolver(null);
+                this.resourceResolver = 
this.resourceResolverFactory().getAdministrativeResourceResolver(null);
             } catch (LoginException ex) {
                 throw new RuntimeException("Creating resource resolver 
failed.", ex);
             }
diff --git 
a/src/test/java/org/apache/sling/testing/mock/sling/context/NoResourceResolverTypeTest.java
 
b/src/test/java/org/apache/sling/testing/mock/sling/context/NoResourceResolverTypeTest.java
index bf861f3..5af4d3e 100644
--- 
a/src/test/java/org/apache/sling/testing/mock/sling/context/NoResourceResolverTypeTest.java
+++ 
b/src/test/java/org/apache/sling/testing/mock/sling/context/NoResourceResolverTypeTest.java
@@ -22,18 +22,31 @@ import static org.junit.Assert.assertTrue;
 
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.SyntheticResource;
+import org.apache.sling.spi.resource.provider.ResourceProvider;
 import org.apache.sling.testing.mock.sling.ResourceResolverType;
 import org.apache.sling.testing.mock.sling.junit.SlingContext;
 import org.junit.Rule;
 import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
 
+@RunWith(MockitoJUnitRunner.class)
 public class NoResourceResolverTypeTest {
 
     @Rule
     public SlingContext context = new SlingContext(ResourceResolverType.NONE);
     
+    @Mock
+    private ResourceProvider<?> resourceProvider;
+    
     @Test
     public void testRoot() {
+        // resgister dummy resource provider because otherwise 
ResourceResolverFactory get's not activated
+        // with lates sling resource resolver implementation
+        context.registerService(ResourceProvider.class, resourceProvider,
+                ResourceProvider.PROPERTY_ROOT, "/");
+        
         Resource root = context.resourceResolver().getResource("/");
         assertTrue(root instanceof SyntheticResource);
     }

-- 
To stop receiving notification emails like this one, please contact
"[email protected]" <[email protected]>.

Reply via email to