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 6759ae459b823cf805dfb901b61725d4f5c3a9bb
Author: Stefan Seifert <[email protected]>
AuthorDate: Tue Feb 23 00:09:40 2016 +0000

    SLING-5546 Update to Sling API 2.11 and dependencies
    
    git-svn-id: 
https://svn.apache.org/repos/asf/sling/trunk/testing/mocks/sling-mock@1731761 
13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml                                            |  71 ++++-----
 .../testing/mock/sling/MockAdapterManagerImpl.java | 168 ++++++++++++---------
 ...nfo.java => MockDynamicClassLoaderManager.java} |  16 +-
 .../testing/mock/sling/MockJcrSlingRepository.java |   6 +
 .../sling/ResourceResolverFactoryInitializer.java  |  39 +++--
 .../sling/ThreadsafeMockAdapterManagerWrapper.java |   2 +-
 .../sling/context/ModelAdapterFactoryUtil.java     |  43 ++++--
 .../mock/sling/context/SlingContextImpl.java       |   4 +-
 .../testing/mock/sling/loader/ContentLoader.java   |   4 +-
 .../sling/testing/mock/sling/package-info.java     |   2 +-
 .../sling/servlet/MockSlingHttpServletRequest.java |   2 +-
 11 files changed, 203 insertions(+), 154 deletions(-)

diff --git a/pom.xml b/pom.xml
index f5b10e2..decc8fc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,7 +28,7 @@
     </parent>
 
     <artifactId>org.apache.sling.testing.sling-mock</artifactId>
-    <version>1.6.3-SNAPSHOT</version>
+    <version>2.0.0-SNAPSHOT</version>
     <packaging>bundle</packaging>
 
     <name>Apache Sling Testing Sling Mock</name>
@@ -45,7 +45,7 @@
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.testing.osgi-mock</artifactId>
-            <version>1.7.2</version>
+            <version>2.0.3-SNAPSHOT</version>
             <scope>compile</scope>
         </dependency>
         <dependency>
@@ -70,81 +70,93 @@
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.models.api</artifactId>
-            <version>1.1.0</version>
+            <version>1.2.2</version>
             <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.models.impl</artifactId>
-            <version>1.1.0</version>
+            <version>1.2.2</version>
             <scope>compile</scope>
         </dependency>
     
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.api</artifactId>
-            <version>2.4.0</version>
+            <version>2.11.0</version>
             <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.resourceresolver</artifactId>
-            <version>1.1.0</version>
+            <version>1.4.3-SNAPSHOT</version>
             <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.jcr.api</artifactId>
-            <version>2.2.0</version>
+            <version>2.3.0</version>
             <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.jcr.resource</artifactId>
-            <version>2.3.6</version>
+            <version>2.7.0</version>
             <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.commons.mime</artifactId>
-            <version>2.1.4</version>
+            <version>2.1.8</version>
             <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.commons.json</artifactId>
-            <version>2.0.6</version>
+            <version>2.0.16</version>
             <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.commons.osgi</artifactId>
-            <version>2.2.0</version>
+            <version>2.4.0</version>
             <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.commons.classloader</artifactId>
-            <version>1.3.0</version>
+            <version>1.3.2</version>
             <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.settings</artifactId>
-            <version>1.2.2</version>
+            <version>1.3.8</version>
             <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.i18n</artifactId>
-            <version>2.2.4</version>
+            <version>2.4.4</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.adapter</artifactId>
+            <version>2.1.6</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.jackrabbit</groupId>
+            <artifactId>jackrabbit-api</artifactId>
+            <version>2.11.3</version>
             <scope>compile</scope>
         </dependency>
 
         <dependency>
             <groupId>commons-collections</groupId>
             <artifactId>commons-collections</artifactId>
-            <version>3.2.1</version>
+            <version>3.2.2</version>
             <scope>compile</scope>
         </dependency>
         <dependency>
@@ -204,10 +216,10 @@
         </dependency>
     
         <dependency>
-            <groupId>javax.inject</groupId>
-            <artifactId>javax.inject</artifactId>
-            <version>1</version>
-            <scope>compile</scope>
+          <groupId>org.apache.geronimo.specs</groupId>
+          <artifactId>geronimo-atinject_1.0_spec</artifactId>
+          <version>1.0</version>
+          <scope>compile</scope>
         </dependency>
     
         <dependency>
@@ -267,25 +279,4 @@
         </plugins>
     </build>
   
-    <!-- Profiles to run unit tests against different JCR Resource versions -->
-    <profiles>
-        <profile>
-            <id>jcr.resource-2.5.4</id>
-            <dependencies>
-                <dependency>
-                    <groupId>org.apache.sling</groupId>
-                    <artifactId>org.apache.sling.api</artifactId>
-                    <version>2.9.0</version>
-                    <scope>compile</scope>
-                </dependency>
-                <dependency>
-                    <groupId>org.apache.sling</groupId>
-                    <artifactId>org.apache.sling.jcr.resource</artifactId>
-                    <version>2.5.4</version>
-                    <scope>compile</scope>
-                </dependency>
-            </dependencies>
-        </profile>
-    </profiles>
-    
 </project>
diff --git 
a/src/main/java/org/apache/sling/testing/mock/sling/MockAdapterManagerImpl.java 
b/src/main/java/org/apache/sling/testing/mock/sling/MockAdapterManagerImpl.java
index 889022b..d058e12 100644
--- 
a/src/main/java/org/apache/sling/testing/mock/sling/MockAdapterManagerImpl.java
+++ 
b/src/main/java/org/apache/sling/testing/mock/sling/MockAdapterManagerImpl.java
@@ -22,26 +22,34 @@ import static 
org.apache.sling.api.adapter.AdapterFactory.ADAPTABLE_CLASSES;
 import static org.apache.sling.api.adapter.AdapterFactory.ADAPTER_CLASSES;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Dictionary;
 import java.util.HashMap;
 import java.util.Hashtable;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
-import java.util.TreeMap;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 
 import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Properties;
+import org.apache.felix.scr.annotations.Property;
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.ReferenceCardinality;
 import org.apache.felix.scr.annotations.ReferencePolicy;
 import org.apache.felix.scr.annotations.Service;
+import org.apache.sling.adapter.Adaption;
+import org.apache.sling.adapter.internal.AdapterFactoryDescriptor;
+import org.apache.sling.adapter.internal.AdapterFactoryDescriptorMap;
+import org.apache.sling.adapter.internal.AdaptionImpl;
 import org.apache.sling.api.SlingConstants;
 import org.apache.sling.api.adapter.AdapterFactory;
 import org.apache.sling.api.adapter.AdapterManager;
 import org.apache.sling.commons.osgi.PropertiesUtil;
+import org.osgi.framework.Constants;
 import org.osgi.framework.ServiceReference;
+import org.osgi.framework.ServiceRegistration;
 import org.osgi.service.component.ComponentContext;
 import org.osgi.service.event.Event;
 import org.osgi.service.event.EventAdmin;
@@ -49,12 +57,18 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- * This is a copy of org.apache.sling.adapter.internal.AdpaterManagerImpl from 
Sling Adapter 2.1.0,
+ * This is a copy of org.apache.sling.adapter.internal.AdpaterManagerImpl from 
Sling Adapter 2.1.6,
  * with all calls to SyntheticResource.setAdapterManager/unsetAdapterManager 
disabled, because this would
  * break the {@link ThreadsafeMockAdapterManagerWrapper} concept.
+ * Additionally the reference to PackageAdmin is disabled.
  */
 @Component(immediate=true)
 @Service
+@Properties({
+    @Property(name=Constants.SERVICE_DESCRIPTION, value="Sling Adapter 
Manager"),
+    @Property(name=Constants.SERVICE_VENDOR, value="The Apache Software 
Foundation")
+
+})
 @Reference(name="AdapterFactory", referenceInterface=AdapterFactory.class,
 cardinality=ReferenceCardinality.OPTIONAL_MULTIPLE, 
policy=ReferencePolicy.DYNAMIC)
 public class MockAdapterManagerImpl implements AdapterManager {
@@ -102,6 +116,12 @@ public class MockAdapterManagerImpl implements 
AdapterManager {
     @Reference(cardinality=ReferenceCardinality.OPTIONAL_UNARY, 
policy=ReferencePolicy.DYNAMIC)
     private volatile EventAdmin eventAdmin;
 
+    // DISABLED IN THIS COPY OF CLASS
+    /*
+    @Reference
+    private PackageAdmin packageAdmin;
+    */
+
     // ---------- AdapterManager interface 
-------------------------------------
 
     /**
@@ -181,7 +201,6 @@ public class MockAdapterManagerImpl implements 
AdapterManager {
 
     /**
      * Bind a new adapter factory.
-     * @param reference Service reference
      */
     protected void bindAdapterFactory(final ServiceReference reference) {
         boolean create = true;
@@ -199,8 +218,7 @@ public class MockAdapterManagerImpl implements 
AdapterManager {
     }
 
     /**
-     * Unbind an adapter factory.
-     * @param reference Service reference
+     * Unbind a adapter factory.
      */
     protected void unbindAdapterFactory(final ServiceReference reference) {
         unregisterAdapterFactory(reference);
@@ -242,6 +260,21 @@ public class MockAdapterManagerImpl implements 
AdapterManager {
             return;
         }
 
+        // DISABLED IN THIS COPY OF CLASS
+        /*
+        for (String clazz : adaptables) {
+            if (!checkPackage(packageAdmin, clazz)) {
+                log.warn("Adaptable class {} in factory service {} is not in 
an exported package.", clazz, reference.getProperty(Constants.SERVICE_ID));
+            }
+        }
+
+        for (String clazz : adapters) {
+            if (!checkPackage(packageAdmin, clazz)) {
+                log.warn("Adapter class {} in factory service {} is not in an 
exported package.", clazz, reference.getProperty(Constants.SERVICE_ID));
+            }
+        }
+        */
+
         final AdapterFactoryDescriptor factoryDesc = new 
AdapterFactoryDescriptor(context,
                 reference, adapters);
 
@@ -262,16 +295,51 @@ public class MockAdapterManagerImpl implements 
AdapterManager {
         // clear the factory cache to force rebuild on next access
         this.factoryCache.clear();
 
+        // register adaption
+        final Dictionary<String, Object> props = new Hashtable<String, 
Object>();
+        props.put(SlingConstants.PROPERTY_ADAPTABLE_CLASSES, adaptables);
+        props.put(SlingConstants.PROPERTY_ADAPTER_CLASSES, adapters);
+
+        ServiceRegistration adaptionRegistration = 
this.context.getBundleContext().registerService(
+                Adaption.class.getName(), AdaptionImpl.INSTANCE, props);
+        if (log.isDebugEnabled()) {
+            log.debug("Registered service {} with {} : {} and {} : {}", new 
Object[] { Adaption.class.getName(),
+                    SlingConstants.PROPERTY_ADAPTABLE_CLASSES, 
Arrays.toString(adaptables),
+                    SlingConstants.PROPERTY_ADAPTER_CLASSES, 
Arrays.toString(adapters) });
+        }
+        factoryDesc.setAdaption(adaptionRegistration);
+
         // send event
         final EventAdmin localEA = this.eventAdmin;
         if ( localEA != null ) {
-            final Dictionary<String, Object> props = new Hashtable<String, 
Object>();
-            props.put(SlingConstants.PROPERTY_ADAPTABLE_CLASSES, adaptables);
-            props.put(SlingConstants.PROPERTY_ADAPTER_CLASSES, adapters);
             localEA.postEvent(new 
Event(SlingConstants.TOPIC_ADAPTER_FACTORY_ADDED,
                     props));
         }
     }
+    
+    static String getPackageName(String clazz) {
+        final int lastDot = clazz.lastIndexOf('.');
+        return lastDot <= 0 ? "" : clazz.substring(0, lastDot);
+    }
+
+    /**
+     * Check that the package containing the class is exported or is a java.*
+     * class.
+     * 
+     * @param packageAdmin the PackageAdmin service
+     * @param clazz the class name
+     * @return true if the package is exported
+     */
+    // DISABLED IN THIS COPY OF CLASS
+    /*
+    static boolean checkPackage(PackageAdmin packageAdmin, String clazz) {
+        final String packageName = getPackageName(clazz); 
+        if (packageName.startsWith("java.")) {
+            return true;
+        }
+        return packageAdmin.getExportedPackage(packageName) != null;
+    }
+    */
 
     /**
      * Unregisters the {@link AdapterFactory} referred to by the service
@@ -291,13 +359,25 @@ public class MockAdapterManagerImpl implements 
AdapterManager {
 
         boolean factoriesModified = false;
         AdapterFactoryDescriptorMap adfMap = null;
+
+        AdapterFactoryDescriptor removedDescriptor = null;
         for (final String adaptable : adaptables) {
             synchronized ( this.descriptors ) {
                 adfMap = this.descriptors.get(adaptable);
             }
             if (adfMap != null) {
                 synchronized ( adfMap ) {
-                    factoriesModified |= (adfMap.remove(reference) != null);
+                    AdapterFactoryDescriptor factoryDesc = 
adfMap.remove(reference);
+                    if (factoryDesc != null) {
+                        factoriesModified = true;
+                        // A single ServiceReference should correspond to a 
single Adaption service being registered
+                        // Since the code paths above does not fully guarantee 
it though, let's keep this check in place
+                        if (removedDescriptor != null && removedDescriptor != 
factoryDesc) {
+                            log.error("When unregistering reference {} got 
duplicate service descriptors {} and {}. Unregistration of {} services may be 
incomplete.",
+                                    new Object[] { reference, 
removedDescriptor, factoryDesc, Adaption.class.getName()} );
+                        }
+                        removedDescriptor = factoryDesc;
+                    }
                 }
             }
         }
@@ -308,6 +388,16 @@ public class MockAdapterManagerImpl implements 
AdapterManager {
             this.factoryCache.clear();
         }
 
+        // unregister adaption
+        if (removedDescriptor != null) {
+            removedDescriptor.getAdaption().unregister();
+            if (log.isDebugEnabled()) {
+                log.debug("Unregistered service {} with {} : {} and {} : {}", 
new Object[] { Adaption.class.getName(),
+                        SlingConstants.PROPERTY_ADAPTABLE_CLASSES, 
Arrays.toString(adaptables),
+                        SlingConstants.PROPERTY_ADAPTER_CLASSES, 
Arrays.toString(adapters) });
+            }
+        }
+
         // send event
         final EventAdmin localEA = this.eventAdmin;
         if ( localEA != null ) {
@@ -428,64 +518,4 @@ public class MockAdapterManagerImpl implements 
AdapterManager {
             }
         }
     }
-
-
-    /**
-     * The <code>AdapterFactoryDescriptor</code> is an entry in the
-     * {@link AdapterFactoryDescriptorMap} conveying the list of adapter 
(target)
-     * types and the respective {@link AdapterFactory}.
-     */
-    private static class AdapterFactoryDescriptor {
-
-        private volatile AdapterFactory factory;
-
-        private final String[] adapters;
-
-        private final ServiceReference reference;
-
-        private final ComponentContext context;
-
-        public AdapterFactoryDescriptor(
-                final ComponentContext context,
-                final ServiceReference reference,
-                final String[] adapters) {
-            this.reference = reference;
-            this.context = context;
-            this.adapters = adapters;
-        }
-
-        public AdapterFactory getFactory() {
-            if ( factory == null ) {
-                factory = (AdapterFactory) context.locateService(
-                        "AdapterFactory", reference);
-            }
-            return factory;
-        }
-
-        public String[] getAdapters() {
-            return adapters;
-        }
-    }
-
-    /**
-     * The <code>AdapterFactoryDescriptorMap</code> is a sorted map of
-     * {@link AdapterFactoryDescriptor} instances indexed (and ordered) by 
their
-     * {@link ServiceReference}. This map is used to organize the
-     * registered {@link org.apache.sling.api.adapter.AdapterFactory} services 
for
-     * a given adaptable type.
-     * <p>
-     * Each entry in the map is a {@link AdapterFactoryDescriptor} thus 
enabling the
-     * registration of multiple factories for the same (adaptable, adapter) 
type
-     * tuple. Of course only the first entry (this is the reason for having a 
sorted
-     * map) for such a given tuple is actually being used. If that first 
instance is
-     * removed the eventual second instance may actually be used instead.
-     */
-    private static class AdapterFactoryDescriptorMap extends
-            TreeMap<ServiceReference, AdapterFactoryDescriptor> {
-
-        private static final long serialVersionUID = 2L;
-
-    }
-
-    
 }
diff --git 
a/src/main/java/org/apache/sling/testing/mock/sling/package-info.java 
b/src/main/java/org/apache/sling/testing/mock/sling/MockDynamicClassLoaderManager.java
similarity index 71%
copy from src/main/java/org/apache/sling/testing/mock/sling/package-info.java
copy to 
src/main/java/org/apache/sling/testing/mock/sling/MockDynamicClassLoaderManager.java
index 85ce5c4..2ec7f15 100644
--- a/src/main/java/org/apache/sling/testing/mock/sling/package-info.java
+++ 
b/src/main/java/org/apache/sling/testing/mock/sling/MockDynamicClassLoaderManager.java
@@ -16,8 +16,18 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.sling.testing.mock.sling;
+
+import org.apache.sling.commons.classloader.DynamicClassLoaderManager;
+
 /**
- * Mock implementation of selected Sling APIs.
+ * Mock implementation of {@link DynamicClassLoaderManager}.
  */
[email protected]("1.5")
-package org.apache.sling.testing.mock.sling;
+class MockDynamicClassLoaderManager implements DynamicClassLoaderManager {
+
+    @Override
+    public ClassLoader getDynamicClassLoader() {
+        return MockDynamicClassLoaderManager.class.getClassLoader();
+    }
+
+}
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 48fd567..ffd5f9c 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
@@ -116,4 +116,10 @@ public final class MockJcrSlingRepository implements 
SlingRepository {
         return this.repository.login();
     }
 
+    @Override
+    public Session impersonateFromService(String subServiceName, Credentials 
credentials, String workspaceName)
+            throws LoginException, RepositoryException {
+        return this.repository.login(credentials);
+    }
+
 }
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 dd8b69e..e98a5e4 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
@@ -23,18 +23,17 @@ import java.util.Hashtable;
 
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
-import javax.jcr.query.Query;
 
-import org.apache.sling.api.resource.QueriableResourceProvider;
-import org.apache.sling.api.resource.ResourceProvider;
-import org.apache.sling.api.resource.ResourceProviderFactory;
 import org.apache.sling.api.resource.ResourceResolverFactory;
+import org.apache.sling.commons.classloader.DynamicClassLoaderManager;
 import org.apache.sling.jcr.api.SlingRepository;
-import 
org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProviderFactory;
+import org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProvider;
+import org.apache.sling.jcr.resource.internal.helper.jcr.PathMapper;
 import org.apache.sling.resourceresolver.impl.ResourceAccessSecurityTracker;
 import org.apache.sling.resourceresolver.impl.ResourceResolverFactoryActivator;
 import org.apache.sling.serviceusermapping.ServiceUserMapper;
 import org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl;
+import org.apache.sling.spi.resource.provider.ResourceProvider;
 import org.apache.sling.testing.mock.osgi.MockEventAdmin;
 import org.apache.sling.testing.mock.osgi.MockOsgi;
 import org.osgi.framework.BundleContext;
@@ -66,15 +65,15 @@ class ResourceResolverFactoryInitializer {
             registerJcrNodeTypes(slingRepository, nodeTypeMode);
             
             // initialize JCR resource provider factory
-            ensureJcrResourceProviderFactoryDependencies(bundleContext);
-            initializeJcrResourceProviderFactory(bundleContext);
+            ensureJcrResourceProviderDependencies(bundleContext);
+            initializeJcrResourceProvider(bundleContext);
         }
         
         // initialize resource resolver factory activator
         ensureResourceResolverFactoryActivatorDependencies(bundleContext);
         initializeResourceResolverFactoryActivator(bundleContext);
 
-        ServiceReference factoryRef = 
bundleContext.getServiceReference(ResourceResolverFactory.class.getName());
+        ServiceReference<ResourceResolverFactory> factoryRef = 
bundleContext.getServiceReference(ResourceResolverFactory.class);
         if (factoryRef == null) {
             throw new IllegalStateException("Unable to get 
ResourceResolverFactory.");
         }
@@ -85,26 +84,23 @@ class ResourceResolverFactoryInitializer {
      * Ensure dependencies for JcrResourceProviderFactory are present.
      * @param bundleContext Bundle context
      */
-    private static void 
ensureJcrResourceProviderFactoryDependencies(BundleContext bundleContext) {
+    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, 
"org.apache.sling.jcr.resource.internal.helper.jcr.PathMapper");
+        registerServiceIfFoundInClasspath(bundleContext, 
PathMapper.class.getName(), PathMapper.class.getName());
     }
  
     /**
      * Initialize JCR resource provider factory.
      * @param bundleContext Bundle context
      */
-    @SuppressWarnings("deprecation")
-    private static void initializeJcrResourceProviderFactory(BundleContext 
bundleContext) {
+    private static void initializeJcrResourceProvider(BundleContext 
bundleContext) {
         Dictionary<String, Object> config = new Hashtable<String, Object>();
-        config.put(ResourceProvider.ROOTS, new String[] { "/" });
-        config.put(QueriableResourceProvider.LANGUAGES, new String[] { 
Query.XPATH, Query.SQL, Query.JCR_SQL2 });
-
-        JcrResourceProviderFactory factory = new JcrResourceProviderFactory();
+        JcrResourceProvider factory = new JcrResourceProvider();
         MockOsgi.injectServices(factory, bundleContext);
         MockOsgi.activate(factory, bundleContext, config);
-        bundleContext.registerService(ResourceProviderFactory.class.getName(), 
factory, config);
+        bundleContext.registerService(ResourceProvider.class, factory, config);
     }
     
     /**
@@ -126,8 +122,6 @@ class ResourceResolverFactoryInitializer {
      */
     private static void 
initializeResourceResolverFactoryActivator(BundleContext bundleContext) {
         Dictionary<String, Object> config = new Hashtable<String, Object>();
-        config.put("resource.resolver.required.providers", new String[0]);
-
         ResourceResolverFactoryActivator activator = new 
ResourceResolverFactoryActivator();
         MockOsgi.injectServices(activator, bundleContext);
         MockOsgi.activate(activator, bundleContext, config);
@@ -167,10 +161,11 @@ class ResourceResolverFactoryInitializer {
      * and if no service with this class is already registered.
      * @param className Service class name
      */
-    private static void registerServiceIfFoundInClasspath(BundleContext 
bundleContext, String className) {
+    private static void registerServiceIfFoundInClasspath(BundleContext 
bundleContext, String serviceClassName, String implClassName) {
         try {
-            Class<?> serviceClass = Class.forName(className);
-            Object instance = serviceClass.newInstance();
+            Class<?> serviceClass = Class.forName(serviceClassName);
+            Class<?> implClass = Class.forName(implClassName);
+            Object instance = implClass.newInstance();
             registerServiceIfNotPresent(bundleContext, serviceClass, instance);
         }
         catch (ClassNotFoundException ex) {
diff --git 
a/src/main/java/org/apache/sling/testing/mock/sling/ThreadsafeMockAdapterManagerWrapper.java
 
b/src/main/java/org/apache/sling/testing/mock/sling/ThreadsafeMockAdapterManagerWrapper.java
index d9c21e9..428bd4c 100644
--- 
a/src/main/java/org/apache/sling/testing/mock/sling/ThreadsafeMockAdapterManagerWrapper.java
+++ 
b/src/main/java/org/apache/sling/testing/mock/sling/ThreadsafeMockAdapterManagerWrapper.java
@@ -87,7 +87,7 @@ class ThreadsafeMockAdapterManagerWrapper implements 
AdapterManager {
             if (bundleContext == null) {
                 setBundleContext(MockOsgi.newBundleContext());
             }
-            ServiceReference serviceReference = 
bundleContext.getServiceReference(AdapterManager.class.getName());
+            ServiceReference<AdapterManager> serviceReference = 
bundleContext.getServiceReference(AdapterManager.class);
             if (serviceReference != null) {
                 return 
(AdapterManager)bundleContext.getService(serviceReference);
             }
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 43a4af4..3b649ca 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
@@ -18,13 +18,16 @@
  */
 package org.apache.sling.testing.mock.sling.context;
 
+import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.security.cert.X509Certificate;
 import java.util.Dictionary;
 import java.util.Enumeration;
 import java.util.Hashtable;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.Vector;
@@ -59,7 +62,6 @@ final class ModelAdapterFactoryUtil {
         MockOsgi.sendBundleEvent(bundleContext, event);
     }
 
-    @SuppressWarnings("unused")
     private static class ModelsPackageBundle implements Bundle {
 
         private final String packageName;
@@ -78,14 +80,14 @@ final class ModelAdapterFactoryUtil {
         }
 
         @Override
-        public Dictionary getHeaders() {
-            Dictionary<String, Object> headers = new Hashtable<String, 
Object>();
+        public Dictionary<String,String> getHeaders() {
+            Dictionary<String, String> headers = new Hashtable<String, 
String>();
             headers.put("Sling-Model-Packages", this.packageName);
             return headers;
         }
 
         @Override
-        public Enumeration findEntries(String path, String filePattern, 
boolean recurse) {
+        public Enumeration<URL> findEntries(String path, String filePattern, 
boolean recurse) {
             Reflections reflections = new Reflections(this.packageName);
             Set<Class<?>> types = 
reflections.getTypesAnnotatedWith(Model.class);
             Vector<URL> urls = new Vector<URL>(); // NOPMD
@@ -100,7 +102,7 @@ final class ModelAdapterFactoryUtil {
         }
 
         @Override
-        public Class loadClass(String name) throws ClassNotFoundException {
+        public Class<?> loadClass(String name) throws ClassNotFoundException {
             return getClass().getClassLoader().loadClass(name);
         }
 
@@ -155,12 +157,12 @@ final class ModelAdapterFactoryUtil {
         }
 
         @Override
-        public ServiceReference[] getRegisteredServices() { // NOPMD
+        public ServiceReference<?>[] getRegisteredServices() { // NOPMD
             return null;
         }
 
         @Override
-        public ServiceReference[] getServicesInUse() { // NOPMD
+        public ServiceReference<?>[] getServicesInUse() { // NOPMD
             return null;
         }
 
@@ -175,7 +177,7 @@ final class ModelAdapterFactoryUtil {
         }
 
         @Override
-        public Dictionary getHeaders(String locale) {
+        public Dictionary<String,String> getHeaders(String locale) {
             return null;
         }
 
@@ -185,12 +187,12 @@ final class ModelAdapterFactoryUtil {
         }
 
         @Override
-        public Enumeration getResources(String name) throws IOException {
+        public Enumeration<URL> getResources(String name) throws IOException {
             return null;
         }
 
         @Override
-        public Enumeration getEntryPaths(String path) {
+        public Enumeration<String> getEntryPaths(String path) {
             return null;
         }
 
@@ -204,16 +206,31 @@ final class ModelAdapterFactoryUtil {
             return 0;
         }
 
-        // this is part of org.osgi 4.2.0
-        public Map getSignerCertificates(int signersType) {
+        @Override
+        public Map<X509Certificate, List<X509Certificate>> 
getSignerCertificates(int signersType) {
             return null;
         }
 
-        // this is part of org.osgi 4.2.0
+        @Override
         public Version getVersion() {
             return null;
         }
 
+        @Override
+        public int compareTo(Bundle o) {
+            return 0;
+        }
+
+        @Override
+        public <A> A adapt(Class<A> type) {
+            return null;
+        }
+
+        @Override
+        public File getDataFile(String filename) {
+            return null;
+        }
+
     }
 
 }
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 c1be12f..e22b34e 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
@@ -308,9 +308,9 @@ public class SlingContextImpl extends OsgiContextImpl {
      */
     public final void runMode(String... runModes) {
         Set<String> newRunModes = ImmutableSet.<String> 
builder().add(runModes).build();
-        ServiceReference ref = 
bundleContext().getServiceReference(SlingSettingsService.class.getName());
+        ServiceReference<SlingSettingsService> ref = 
bundleContext().getServiceReference(SlingSettingsService.class);
         if (ref != null) {
-            MockSlingSettingService slingSettings = (MockSlingSettingService) 
bundleContext().getService(ref);
+            MockSlingSettingService slingSettings = 
(MockSlingSettingService)bundleContext().getService(ref);
             slingSettings.setRunModes(newRunModes);
         }
     }
diff --git 
a/src/main/java/org/apache/sling/testing/mock/sling/loader/ContentLoader.java 
b/src/main/java/org/apache/sling/testing/mock/sling/loader/ContentLoader.java
index 7729618..efbc82e 100644
--- 
a/src/main/java/org/apache/sling/testing/mock/sling/loader/ContentLoader.java
+++ 
b/src/main/java/org/apache/sling/testing/mock/sling/loader/ContentLoader.java
@@ -603,9 +603,9 @@ public final class ContentLoader {
         String mimeType = null;
         String fileExtension = StringUtils.substringAfterLast(name, ".");
         if (bundleContext != null && StringUtils.isNotEmpty(fileExtension)) {
-            ServiceReference ref = 
bundleContext.getServiceReference(MimeTypeService.class.getName());
+            ServiceReference<MimeTypeService> ref = 
bundleContext.getServiceReference(MimeTypeService.class);
             if (ref != null) {
-                MimeTypeService mimeTypeService = (MimeTypeService) 
bundleContext.getService(ref);
+                MimeTypeService mimeTypeService = 
(MimeTypeService)bundleContext.getService(ref);
                 mimeType = mimeTypeService.getMimeType(fileExtension);
             }
         }
diff --git 
a/src/main/java/org/apache/sling/testing/mock/sling/package-info.java 
b/src/main/java/org/apache/sling/testing/mock/sling/package-info.java
index 85ce5c4..b34a57d 100644
--- a/src/main/java/org/apache/sling/testing/mock/sling/package-info.java
+++ b/src/main/java/org/apache/sling/testing/mock/sling/package-info.java
@@ -19,5 +19,5 @@
 /**
  * Mock implementation of selected Sling APIs.
  */
[email protected]("1.5")
[email protected]("1.6")
 package org.apache.sling.testing.mock.sling;
diff --git 
a/src/main/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletRequest.java
 
b/src/main/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletRequest.java
index a404c44..dc251c5 100644
--- 
a/src/main/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletRequest.java
+++ 
b/src/main/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletRequest.java
@@ -84,7 +84,7 @@ public class MockSlingHttpServletRequest extends 
org.apache.sling.servlethelpers
     public ResourceBundle getResourceBundle(String baseName, Locale locale) {
         // check of ResourceBundleProvider is registered in mock OSGI context
         ResourceBundle resourceBundle = null;
-        ServiceReference serviceReference = 
bundleContext.getServiceReference(ResourceBundleProvider.class.getName());
+        ServiceReference<ResourceBundleProvider> serviceReference = 
bundleContext.getServiceReference(ResourceBundleProvider.class);
         if (serviceReference != null) {
             ResourceBundleProvider provider = 
(ResourceBundleProvider)bundleContext.getService(serviceReference);
             resourceBundle = provider.getResourceBundle(baseName, locale);

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

Reply via email to