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>.