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 <[email protected]> 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. */ [email protected]("1.0") [email protected]("2.0") package org.apache.sling.testing.mock.sling.spi; -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
