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:25:35 UTC

[sling-org-apache-sling-testing-sling-mock] 03/14: SLING-5547 Update sling-mock-oak to Sling API 2.11 and Oak 1.3.15

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

commit 22cce0c7e7f6eaa7833ecae4ee68f830074002d9
Author: Stefan Seifert <ss...@apache.org>
AuthorDate: Tue Feb 23 00:55:22 2016 +0000

    SLING-5547 Update sling-mock-oak to Sling API 2.11 and Oak 1.3.15
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/testing/mocks/sling-mock@1731771 13f79535-47bb-0310-9956-ffa450edef68
---
 .../mock/sling/MockJcrResourceResolverAdapter.java |  5 +--
 .../sling/MockNoneResourceResolverAdapter.java     |  5 +--
 .../apache/sling/testing/mock/sling/MockSling.java |  4 +--
 .../sling/RRMockMockResourceResolverAdapter.java   |  5 +--
 .../sling/ResourceResolverFactoryInitializer.java  | 42 ++++++----------------
 .../sling/context/ModelAdapterFactoryUtil.java     |  5 +++
 .../sling/spi/ResourceResolverTypeAdapter.java     |  5 +--
 .../sling/testing/mock/sling/spi/package-info.java |  2 +-
 8 files changed, 30 insertions(+), 43 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 d9df564..57bfd0b 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
@@ -21,6 +21,7 @@ package org.apache.sling.testing.mock.sling;
 import org.apache.sling.api.resource.ResourceResolverFactory;
 import org.apache.sling.jcr.api.SlingRepository;
 import org.apache.sling.testing.mock.sling.spi.ResourceResolverTypeAdapter;
+import org.osgi.framework.BundleContext;
 
 /**
  * Resource resolver type adapter for JCR Mocks implementation.
@@ -28,12 +29,12 @@ import org.apache.sling.testing.mock.sling.spi.ResourceResolverTypeAdapter;
 class MockJcrResourceResolverAdapter implements ResourceResolverTypeAdapter {
 
     @Override
-    public ResourceResolverFactory newResourceResolverFactory() {
+    public ResourceResolverFactory newResourceResolverFactory(BundleContext bundleContext) {
         return null;
     }
 
     @Override
-    public SlingRepository newSlingRepository() {
+    public SlingRepository newSlingRepository(BundleContext bundleContext) {
         return new MockJcrSlingRepository();
     }
 
diff --git a/src/main/java/org/apache/sling/testing/mock/sling/MockNoneResourceResolverAdapter.java b/src/main/java/org/apache/sling/testing/mock/sling/MockNoneResourceResolverAdapter.java
index 05a427c..c99c23f 100644
--- a/src/main/java/org/apache/sling/testing/mock/sling/MockNoneResourceResolverAdapter.java
+++ b/src/main/java/org/apache/sling/testing/mock/sling/MockNoneResourceResolverAdapter.java
@@ -21,6 +21,7 @@ package org.apache.sling.testing.mock.sling;
 import org.apache.sling.api.resource.ResourceResolverFactory;
 import org.apache.sling.jcr.api.SlingRepository;
 import org.apache.sling.testing.mock.sling.spi.ResourceResolverTypeAdapter;
+import org.osgi.framework.BundleContext;
 
 /**
  * Resource resolver type with no resource provider registered.
@@ -28,12 +29,12 @@ import org.apache.sling.testing.mock.sling.spi.ResourceResolverTypeAdapter;
 class MockNoneResourceResolverAdapter implements ResourceResolverTypeAdapter {
 
     @Override
-    public ResourceResolverFactory newResourceResolverFactory() {
+    public ResourceResolverFactory newResourceResolverFactory(BundleContext bundleContext) {
         return null;
     }
 
     @Override
-    public SlingRepository newSlingRepository() {
+    public SlingRepository newSlingRepository(BundleContext bundleContext) {
         return null;
     }
 
diff --git a/src/main/java/org/apache/sling/testing/mock/sling/MockSling.java b/src/main/java/org/apache/sling/testing/mock/sling/MockSling.java
index fdc222e..31a3059 100644
--- a/src/main/java/org/apache/sling/testing/mock/sling/MockSling.java
+++ b/src/main/java/org/apache/sling/testing/mock/sling/MockSling.java
@@ -69,9 +69,9 @@ public final class MockSling {
     public static ResourceResolverFactory newResourceResolverFactory(final ResourceResolverType type,
             final BundleContext bundleContext) {
         ResourceResolverTypeAdapter adapter = getResourceResolverTypeAdapter(type);
-        ResourceResolverFactory factory = adapter.newResourceResolverFactory();
+        ResourceResolverFactory factory = adapter.newResourceResolverFactory(bundleContext);
         if (factory == null) {
-            SlingRepository repository = adapter.newSlingRepository();
+            SlingRepository repository = adapter.newSlingRepository(bundleContext);
             factory = ResourceResolverFactoryInitializer.setUp(repository, bundleContext, type.getNodeTypeMode());
         }
         else {
diff --git a/src/main/java/org/apache/sling/testing/mock/sling/RRMockMockResourceResolverAdapter.java b/src/main/java/org/apache/sling/testing/mock/sling/RRMockMockResourceResolverAdapter.java
index 47c4a64..1329805 100644
--- a/src/main/java/org/apache/sling/testing/mock/sling/RRMockMockResourceResolverAdapter.java
+++ b/src/main/java/org/apache/sling/testing/mock/sling/RRMockMockResourceResolverAdapter.java
@@ -23,6 +23,7 @@ import org.apache.sling.jcr.api.SlingRepository;
 import org.apache.sling.testing.mock.sling.spi.ResourceResolverTypeAdapter;
 import org.apache.sling.testing.resourceresolver.MockResourceResolverFactory;
 import org.apache.sling.testing.resourceresolver.MockResourceResolverFactoryOptions;
+import org.osgi.framework.BundleContext;
 
 /**
  * Resource resolver type adapter for Sling Resource Resolver Mock implementation.
@@ -40,12 +41,12 @@ class RRMockMockResourceResolverAdapter implements ResourceResolverTypeAdapter {
     }
 
     @Override
-    public ResourceResolverFactory newResourceResolverFactory() {
+    public ResourceResolverFactory newResourceResolverFactory(BundleContext bundleContext) {
         return new MockResourceResolverFactory(options);
     }
 
     @Override
-    public SlingRepository newSlingRepository() {
+    public SlingRepository newSlingRepository(BundleContext bundleContext) {
         return null;
     }
 
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 e98a5e4..eae5323 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
@@ -85,10 +85,10 @@ class ResourceResolverFactoryInitializer {
      * @param bundleContext Bundle context
      */
     private static void ensureJcrResourceProviderDependencies(BundleContext bundleContext) {
-        bundleContext.registerService(DynamicClassLoaderManager.class, new MockDynamicClassLoaderManager(), null);
-        // setup PathMapper which is a mandatory service for JcrProviderFactory (since org.apache.sling.jcr.resource 2.5.4)
-        // use reflection to not depend on it if running with older version of org.apache.sling.jcr.resource
-        registerServiceIfFoundInClasspath(bundleContext, PathMapper.class.getName(), PathMapper.class.getName());
+        if (bundleContext.getServiceReference(DynamicClassLoaderManager.class) == null) {
+            bundleContext.registerService(DynamicClassLoaderManager.class, new MockDynamicClassLoaderManager(), null);
+        }
+        registerServiceIfNotPresent(bundleContext, PathMapper.class, new PathMapper());
     }
  
     /**
@@ -135,10 +135,11 @@ class ResourceResolverFactoryInitializer {
      * @param serviceClass Service class
      * @param instance Service instance
      */
-    private static void registerServiceIfNotPresent(BundleContext bundleContext, Class<?> serviceClass, 
-            Object instance) {
+    private static <T> void registerServiceIfNotPresent(BundleContext bundleContext, Class<T> serviceClass, 
+            T instance) {
         registerServiceIfNotPresent(bundleContext, serviceClass, instance, new Hashtable<String, Object>());
     }
+    
     /**
      * Registers a service if the service class is found in classpath,
      * and if no service with this class is already registered.
@@ -147,35 +148,12 @@ class ResourceResolverFactoryInitializer {
      * @param instance Service instance
      * @param config OSGi config
      */
-    private static void registerServiceIfNotPresent(BundleContext bundleContext, Class<?> serviceClass, 
-            Object instance, Dictionary<String, Object> config) {
+    private static <T> void registerServiceIfNotPresent(BundleContext bundleContext, Class<T> serviceClass, 
+            T instance, Dictionary<String, Object> config) {
         if (bundleContext.getServiceReference(serviceClass.getName()) == null) {
             MockOsgi.injectServices(instance, bundleContext);
             MockOsgi.activate(instance, bundleContext, config);
-            bundleContext.registerService(serviceClass.getName(), instance, config);
-        }
-    }
-    
-    /**
-     * Registers a service if the service class is found in classpath,
-     * and if no service with this class is already registered.
-     * @param className Service class name
-     */
-    private static void registerServiceIfFoundInClasspath(BundleContext bundleContext, String serviceClassName, String implClassName) {
-        try {
-            Class<?> serviceClass = Class.forName(serviceClassName);
-            Class<?> implClass = Class.forName(implClassName);
-            Object instance = implClass.newInstance();
-            registerServiceIfNotPresent(bundleContext, serviceClass, instance);
-        }
-        catch (ClassNotFoundException ex) {
-            // skip service registration
-        }
-        catch (InstantiationException e) {
-            // skip service registration
-        }
-        catch (IllegalAccessException e) {
-            // skip service registration
+            bundleContext.registerService(serviceClass, instance, config);
         }
     }
     
diff --git a/src/main/java/org/apache/sling/testing/mock/sling/context/ModelAdapterFactoryUtil.java b/src/main/java/org/apache/sling/testing/mock/sling/context/ModelAdapterFactoryUtil.java
index 3b649ca..e0044a4 100644
--- a/src/main/java/org/apache/sling/testing/mock/sling/context/ModelAdapterFactoryUtil.java
+++ b/src/main/java/org/apache/sling/testing/mock/sling/context/ModelAdapterFactoryUtil.java
@@ -47,6 +47,11 @@ import org.reflections.Reflections;
  */
 final class ModelAdapterFactoryUtil {
     
+    static {
+        // disable logging of reflections library to avoid spamming log files during unit tests
+        Reflections.log = null;
+    }
+    
     private ModelAdapterFactoryUtil() {
         // static methods only
     }
diff --git a/src/main/java/org/apache/sling/testing/mock/sling/spi/ResourceResolverTypeAdapter.java b/src/main/java/org/apache/sling/testing/mock/sling/spi/ResourceResolverTypeAdapter.java
index cc20279..85d346c 100644
--- a/src/main/java/org/apache/sling/testing/mock/sling/spi/ResourceResolverTypeAdapter.java
+++ b/src/main/java/org/apache/sling/testing/mock/sling/spi/ResourceResolverTypeAdapter.java
@@ -20,6 +20,7 @@ package org.apache.sling.testing.mock.sling.spi;
 
 import org.apache.sling.api.resource.ResourceResolverFactory;
 import org.apache.sling.jcr.api.SlingRepository;
+import org.osgi.framework.BundleContext;
 
 /**
  * SPI interface for resource resolver type implementations to provide a mock
@@ -33,7 +34,7 @@ public interface ResourceResolverTypeAdapter {
      * {@link #newSlingRepository()} has to return a value.
      * @return Resource resolver factory instance or null
      */
-    ResourceResolverFactory newResourceResolverFactory();
+    ResourceResolverFactory newResourceResolverFactory(BundleContext bundleContext);
 
     /**
      * Get SlingRepository instance. Can be null if a resource resolver factory
@@ -41,6 +42,6 @@ public interface ResourceResolverTypeAdapter {
      * {@link #newResourceResolverFactory()} has to return a value.
      * @return Sling repository instance or null
      */
-    SlingRepository newSlingRepository();
+    SlingRepository newSlingRepository(BundleContext bundleContext);
 
 }
diff --git a/src/main/java/org/apache/sling/testing/mock/sling/spi/package-info.java b/src/main/java/org/apache/sling/testing/mock/sling/spi/package-info.java
index 0316d03..c0720b9 100644
--- a/src/main/java/org/apache/sling/testing/mock/sling/spi/package-info.java
+++ b/src/main/java/org/apache/sling/testing/mock/sling/spi/package-info.java
@@ -19,5 +19,5 @@
 /**
  * SPI for hooking in alternative resource type adapter implementations.
  */
-@aQute.bnd.annotation.Version("1.0")
+@aQute.bnd.annotation.Version("2.0")
 package org.apache.sling.testing.mock.sling.spi;

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.