You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2015/10/27 14:35:18 UTC

svn commit: r1710810 - in /sling/trunk/bundles/resourceresolver/src: main/java/org/apache/sling/resourceresolver/impl/ main/java/org/apache/sling/resourceresolver/impl/legacy/ main/java/org/apache/sling/resourceresolver/impl/providers/stateful/ test/ja...

Author: cziegeler
Date: Tue Oct 27 13:35:17 2015
New Revision: 1710810

URL: http://svn.apache.org/viewvc?rev=1710810&view=rev
Log:
SLING-5201 : Improve resource provider resolving

Modified:
    sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/BasicResolveContext.java
    sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/legacy/LegacyResourceProviderAdapter.java
    sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/legacy/LegacyResourceProviderFactoryAdapter.java
    sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/stateful/AuthenticatedResourceProvider.java
    sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/stateful/EmptyResourceProvider.java
    sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/stateful/StatefulResourceProvider.java
    sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/stateful/StatefulResourceProviderWrapper.java
    sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/MockedResourceResolverImplTest.java
    sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/ProviderHandlerTest.java
    sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/ResourceDecoratorTestBase.java
    sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/ResourceProviderEntryTest.java
    sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/ResourceResolverImplTest.java
    sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/ResourceResolverMangleNamespacesTest.java

Modified: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/BasicResolveContext.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/BasicResolveContext.java?rev=1710810&r1=1710809&r2=1710810&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/BasicResolveContext.java (original)
+++ sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/BasicResolveContext.java Tue Oct 27 13:35:17 2015
@@ -18,38 +18,31 @@
  */
 package org.apache.sling.resourceresolver.impl;
 
-import java.util.Collections;
-import java.util.Map;
-
 import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.spi.resource.provider.ResolveContext;
+import org.apache.sling.spi.resource.provider.ResolverContext;
 import org.apache.sling.spi.resource.provider.ResourceProvider;
 
-public class BasicResolveContext<T> implements ResolveContext<T> {
+public class BasicResolveContext<T> implements ResolverContext<T> {
 
     private final ResourceResolver resourceResolver;
 
-    private final Map<String, String> resolveParameters;
-
     private final T providerState;
 
-    private final ResolveContext<Object> parentResolveContext;
+    private final ResolverContext<Object> parentResolveContext;
 
     private final ResourceProvider<Object> parentResourceProvider;
 
-    public BasicResolveContext(ResourceResolver resourceResolver, Map<String, String> resolveParameters,
-            T providerState, ResourceProvider<Object> parentResourceProvider, ResolveContext<Object> parentResolveContext) {
+    public BasicResolveContext(ResourceResolver resourceResolver,
+            T providerState, ResourceProvider<Object> parentResourceProvider, ResolverContext<Object> parentResolveContext) {
         this.resourceResolver = resourceResolver;
-        this.resolveParameters = resolveParameters == null ? Collections.<String, String> emptyMap()
-                : resolveParameters;
         this.providerState = providerState;
         this.parentResolveContext = parentResolveContext;
         this.parentResourceProvider = parentResourceProvider;
     }
 
-    public BasicResolveContext(ResourceResolver resourceResolver, Map<String, String> resolveParameters,
+    public BasicResolveContext(ResourceResolver resourceResolver,
             T providerState) {
-        this(resourceResolver, resolveParameters, providerState, null, null);
+        this(resourceResolver, providerState, null, null);
     }
 
     @Override
@@ -58,17 +51,12 @@ public class BasicResolveContext<T> impl
     }
 
     @Override
-    public Map<String, String> getResolveParameters() {
-        return resolveParameters;
-    }
-
-    @Override
     public T getProviderState() {
         return providerState;
     }
 
     @Override
-    public ResolveContext<?> getParentResolveContext() {
+    public ResolverContext<?> getParentResolveContext() {
         return parentResolveContext;
     }
 

Modified: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/legacy/LegacyResourceProviderAdapter.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/legacy/LegacyResourceProviderAdapter.java?rev=1710810&r1=1710809&r2=1710810&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/legacy/LegacyResourceProviderAdapter.java (original)
+++ sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/legacy/LegacyResourceProviderAdapter.java Tue Oct 27 13:35:17 2015
@@ -36,7 +36,8 @@ import org.apache.sling.api.resource.Res
 import org.apache.sling.api.resource.ResourceMetadata;
 import org.apache.sling.api.resource.ValueMap;
 import org.apache.sling.spi.resource.provider.JCRQueryProvider;
-import org.apache.sling.spi.resource.provider.ResolveContext;
+import org.apache.sling.spi.resource.provider.ResolverContext;
+import org.apache.sling.spi.resource.provider.ResourceContext;
 import org.apache.sling.spi.resource.provider.ResourceProvider;
 
 @SuppressWarnings("deprecation")
@@ -56,26 +57,26 @@ public class LegacyResourceProviderAdapt
 
     @SuppressWarnings({ "rawtypes", "unchecked" })
     @Override
-    public Resource getResource(ResolveContext<Object> ctx, String path, Resource parent) {
+    public Resource getResource(ResolverContext<Object> ctx, String path, ResourceContext resourceContext, Resource parent) {
         Resource resourceCandidate;
         if (rp instanceof ParametrizableResourceProvider) {
             resourceCandidate = ((ParametrizableResourceProvider) rp).getResource(ctx.getResourceResolver(), path,
-                    ctx.getResolveParameters());
+                    resourceContext.getResolveParameters());
         } else {
             resourceCandidate = rp.getResource(ctx.getResourceResolver(), path);
         }
 
         ResourceProvider<?> parentProvider = ctx.getParentResourceProvider();
-        ResolveContext parentCtx = ctx.getParentResolveContext();
+        ResolverContext parentCtx = ctx.getParentResolveContext();
         // Ask the parent provider
         if (resourceCandidate == null && !ownsRoot && parentProvider != null) {
-            return parentProvider.getResource(parentCtx, path, parent);
+            return parentProvider.getResource(parentCtx, path, resourceContext, parent);
         }
 
         // Support the INTERNAL_CONTINUE_RESOLVING flag
         Resource fallbackResource = resourceCandidate;
         if (resourceCandidate != null && parentProvider != null && isContinueResolving(resourceCandidate)) {
-            resourceCandidate = ctx.getParentResourceProvider().getResource(parentCtx, path, parent);
+            resourceCandidate = ctx.getParentResourceProvider().getResource(parentCtx, path, resourceContext, parent);
         }
         if (resourceCandidate != null) {
             return resourceCandidate;
@@ -91,17 +92,17 @@ public class LegacyResourceProviderAdapt
 
     @SuppressWarnings({ "rawtypes", "unchecked" })
     @Override
-    public Iterator<Resource> listChildren(ResolveContext<Object> ctx, Resource parent) {
+    public Iterator<Resource> listChildren(ResolverContext<Object> ctx, Resource parent) {
         Iterator<Resource> children = rp.listChildren(parent);
         if (children == null && !ownsRoot && ctx.getParentResourceProvider() != null) {
-            children = ctx.getParentResourceProvider().listChildren((ResolveContext) ctx.getParentResolveContext(),
+            children = ctx.getParentResourceProvider().listChildren((ResolverContext) ctx.getParentResolveContext(),
                     parent);
         }
         return children;
     }
 
     @Override
-    public void refresh(final @Nonnull ResolveContext<Object> ctx) {
+    public void refresh(final @Nonnull ResolverContext<Object> ctx) {
         if (rp instanceof RefreshableResourceProvider) {
             ((RefreshableResourceProvider) rp).refresh();
         }
@@ -117,7 +118,7 @@ public class LegacyResourceProviderAdapt
     }
 
     @Override
-    public Collection<String> getAttributeNames(final @Nonnull ResolveContext<Object> ctx) {
+    public Collection<String> getAttributeNames(final @Nonnull ResolverContext<Object> ctx) {
         if (rp instanceof AttributableResourceProvider) {
             return ((AttributableResourceProvider) rp).getAttributeNames(ctx.getResourceResolver());
         } else {
@@ -126,7 +127,7 @@ public class LegacyResourceProviderAdapt
     }
 
     @Override
-    public Object getAttribute(final @Nonnull ResolveContext<Object> ctx, final @Nonnull String name) {
+    public Object getAttribute(final @Nonnull ResolverContext<Object> ctx, final @Nonnull String name) {
         if (rp instanceof AttributableResourceProvider) {
             return ((AttributableResourceProvider) rp).getAttribute(ctx.getResourceResolver(), name);
         } else {
@@ -135,7 +136,7 @@ public class LegacyResourceProviderAdapt
     }
 
     @Override
-    public boolean isLive(final @Nonnull ResolveContext<Object> ctx) {
+    public boolean isLive(final @Nonnull ResolverContext<Object> ctx) {
         if (rp instanceof DynamicResourceProvider) {
             return ((DynamicResourceProvider) rp).isLive();
         } else {
@@ -152,21 +153,21 @@ public class LegacyResourceProviderAdapt
 
     @SuppressWarnings({ "rawtypes", "unchecked" })
     @Override
-    public Resource create(final @Nonnull ResolveContext<Object> ctx, final String path,
+    public Resource create(final @Nonnull ResolverContext<Object> ctx, final String path,
             final Map<String, Object> properties) throws PersistenceException {
         Resource createdResource = null;
         if (rp instanceof ModifyingResourceProvider) {
             createdResource = ((ModifyingResourceProvider) rp).create(ctx.getResourceResolver(), path, properties);
         }
         if (createdResource == null && !ownsRoot && ctx.getParentResourceProvider() != null) {
-            createdResource = ctx.getParentResourceProvider().create((ResolveContext) ctx.getParentResolveContext(),
+            createdResource = ctx.getParentResourceProvider().create((ResolverContext) ctx.getParentResolveContext(),
                     path, properties);
         }
         return createdResource;
     }
 
     @Override
-    public void delete(final @Nonnull ResolveContext<Object> ctx, final @Nonnull Resource resource)
+    public void delete(final @Nonnull ResolverContext<Object> ctx, final @Nonnull Resource resource)
             throws PersistenceException {
         if (rp instanceof ModifyingResourceProvider) {
             ((ModifyingResourceProvider) rp).delete(ctx.getResourceResolver(), resource.getPath());
@@ -176,7 +177,7 @@ public class LegacyResourceProviderAdapt
     }
 
     @Override
-    public void revert(final @Nonnull ResolveContext<Object> ctx) {
+    public void revert(final @Nonnull ResolverContext<Object> ctx) {
         if (rp instanceof ModifyingResourceProvider) {
             ((ModifyingResourceProvider) rp).revert(ctx.getResourceResolver());
         } else {
@@ -185,7 +186,7 @@ public class LegacyResourceProviderAdapt
     }
 
     @Override
-    public void commit(final @Nonnull ResolveContext<Object> ctx) throws PersistenceException {
+    public void commit(final @Nonnull ResolverContext<Object> ctx) throws PersistenceException {
         if (rp instanceof ModifyingResourceProvider) {
             ((ModifyingResourceProvider) rp).commit(ctx.getResourceResolver());
         } else {
@@ -194,7 +195,7 @@ public class LegacyResourceProviderAdapt
     }
 
     @Override
-    public boolean hasChanges(final @Nonnull ResolveContext<Object> ctx) {
+    public boolean hasChanges(final @Nonnull ResolverContext<Object> ctx) {
         if (rp instanceof ModifyingResourceProvider) {
             return ((ModifyingResourceProvider) rp).hasChanges(ctx.getResourceResolver());
         } else {
@@ -205,26 +206,26 @@ public class LegacyResourceProviderAdapt
     private static class JCRQueryProviderAdapter implements JCRQueryProvider<Object> {
 
         private final QueriableResourceProvider rp;
-        
+
         private final String[] languages;
-        
+
         public JCRQueryProviderAdapter(QueriableResourceProvider rp, String[] languages) {
             this.rp = rp;
             this.languages = languages;
         }
 
         @Override
-        public String[] getSupportedLanguages(ResolveContext<Object> ctx) {
+        public String[] getSupportedLanguages(ResolverContext<Object> ctx) {
             return languages;
         }
 
         @Override
-        public Iterator<Resource> findResources(ResolveContext<Object> ctx, String query, String language) {
+        public Iterator<Resource> findResources(ResolverContext<Object> ctx, String query, String language) {
             return rp.findResources(ctx.getResourceResolver(), query, language);
         }
 
         @Override
-        public Iterator<ValueMap> queryResources(ResolveContext<Object> ctx, String query, String language) {
+        public Iterator<ValueMap> queryResources(ResolverContext<Object> ctx, String query, String language) {
             return rp.queryResources(ctx.getResourceResolver(), query, language);
         }
     }

Modified: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/legacy/LegacyResourceProviderFactoryAdapter.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/legacy/LegacyResourceProviderFactoryAdapter.java?rev=1710810&r1=1710809&r2=1710810&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/legacy/LegacyResourceProviderFactoryAdapter.java (original)
+++ sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/legacy/LegacyResourceProviderFactoryAdapter.java Tue Oct 27 13:35:17 2015
@@ -32,7 +32,8 @@ import org.apache.sling.api.resource.Res
 import org.apache.sling.api.resource.ResourceProviderFactory;
 import org.apache.sling.api.resource.ValueMap;
 import org.apache.sling.spi.resource.provider.JCRQueryProvider;
-import org.apache.sling.spi.resource.provider.ResolveContext;
+import org.apache.sling.spi.resource.provider.ResolverContext;
+import org.apache.sling.spi.resource.provider.ResourceContext;
 import org.apache.sling.spi.resource.provider.ResourceProvider;
 
 @SuppressWarnings({ "deprecation", "rawtypes", "unchecked" })
@@ -50,29 +51,31 @@ public class LegacyResourceProviderFacto
         this.ownsRoot = ownsRoot;
     }
 
+    @Override
     @Nonnull
     public LegacyResourceProviderAdapter authenticate(final @Nonnull Map<String, Object> authenticationInfo)
             throws LoginException {
         return new LegacyResourceProviderAdapter(rpFactory.getResourceProvider(authenticationInfo), languages, ownsRoot);
     }
 
+    @Override
     public void logout(final @Nonnull LegacyResourceProviderAdapter state) {
         state.logout(null);
     }
 
     @Override
-    public Resource getResource(ResolveContext<LegacyResourceProviderAdapter> ctx, String path, Resource parent) {
-        return ctx.getProviderState().getResource((ResolveContext) ctx, path, parent);
+    public Resource getResource(ResolverContext<LegacyResourceProviderAdapter> ctx, String path, ResourceContext resourceContext, Resource parent) {
+        return ctx.getProviderState().getResource((ResolverContext) ctx, path, resourceContext, parent);
     }
 
     @Override
-    public Iterator<Resource> listChildren(ResolveContext<LegacyResourceProviderAdapter> ctx, Resource parent) {
-        return ctx.getProviderState().listChildren((ResolveContext) ctx, parent);
+    public Iterator<Resource> listChildren(ResolverContext<LegacyResourceProviderAdapter> ctx, Resource parent) {
+        return ctx.getProviderState().listChildren((ResolverContext) ctx, parent);
     }
 
     @Override
-    public void refresh(final @Nonnull ResolveContext<LegacyResourceProviderAdapter> ctx) {
-        ctx.getProviderState().refresh((ResolveContext) ctx);
+    public void refresh(final @Nonnull ResolverContext<LegacyResourceProviderAdapter> ctx) {
+        ctx.getProviderState().refresh((ResolverContext) ctx);
     }
 
     @Override
@@ -85,46 +88,46 @@ public class LegacyResourceProviderFacto
     }
 
     @Override
-    public Collection<String> getAttributeNames(final @Nonnull ResolveContext<LegacyResourceProviderAdapter> ctx) {
-        return ctx.getProviderState().getAttributeNames((ResolveContext) ctx);
+    public Collection<String> getAttributeNames(final @Nonnull ResolverContext<LegacyResourceProviderAdapter> ctx) {
+        return ctx.getProviderState().getAttributeNames((ResolverContext) ctx);
     }
 
     @Override
-    public Object getAttribute(final @Nonnull ResolveContext<LegacyResourceProviderAdapter> ctx,
+    public Object getAttribute(final @Nonnull ResolverContext<LegacyResourceProviderAdapter> ctx,
             final @Nonnull String name) {
-        return ctx.getProviderState().getAttribute((ResolveContext) ctx, name);
+        return ctx.getProviderState().getAttribute((ResolverContext) ctx, name);
     }
 
     @Override
-    public boolean isLive(final @Nonnull ResolveContext<LegacyResourceProviderAdapter> ctx) {
-        return ctx.getProviderState().isLive((ResolveContext) ctx);
+    public boolean isLive(final @Nonnull ResolverContext<LegacyResourceProviderAdapter> ctx) {
+        return ctx.getProviderState().isLive((ResolverContext) ctx);
     }
 
     @Override
-    public Resource create(final @Nonnull ResolveContext<LegacyResourceProviderAdapter> ctx, final String path,
+    public Resource create(final @Nonnull ResolverContext<LegacyResourceProviderAdapter> ctx, final String path,
             final Map<String, Object> properties) throws PersistenceException {
-        return ctx.getProviderState().create((ResolveContext) ctx, path, properties);
+        return ctx.getProviderState().create((ResolverContext) ctx, path, properties);
     }
 
     @Override
-    public void delete(final @Nonnull ResolveContext<LegacyResourceProviderAdapter> ctx,
+    public void delete(final @Nonnull ResolverContext<LegacyResourceProviderAdapter> ctx,
             final @Nonnull Resource resource) throws PersistenceException {
-        ctx.getProviderState().delete((ResolveContext) ctx, resource);
+        ctx.getProviderState().delete((ResolverContext) ctx, resource);
     }
 
     @Override
-    public void revert(final @Nonnull ResolveContext<LegacyResourceProviderAdapter> ctx) {
-        ctx.getProviderState().revert((ResolveContext) ctx);
+    public void revert(final @Nonnull ResolverContext<LegacyResourceProviderAdapter> ctx) {
+        ctx.getProviderState().revert((ResolverContext) ctx);
     }
 
     @Override
-    public void commit(final @Nonnull ResolveContext<LegacyResourceProviderAdapter> ctx) throws PersistenceException {
-        ctx.getProviderState().commit((ResolveContext) ctx);
+    public void commit(final @Nonnull ResolverContext<LegacyResourceProviderAdapter> ctx) throws PersistenceException {
+        ctx.getProviderState().commit((ResolverContext) ctx);
     }
 
     @Override
-    public boolean hasChanges(final @Nonnull ResolveContext<LegacyResourceProviderAdapter> ctx) {
-        return ctx.getProviderState().hasChanges((ResolveContext) ctx);
+    public boolean hasChanges(final @Nonnull ResolverContext<LegacyResourceProviderAdapter> ctx) {
+        return ctx.getProviderState().hasChanges((ResolverContext) ctx);
     }
 
     private static class JCRQueryProviderAdapter implements JCRQueryProvider<LegacyResourceProviderAdapter> {
@@ -136,20 +139,20 @@ public class LegacyResourceProviderFacto
         }
 
         @Override
-        public String[] getSupportedLanguages(ResolveContext<LegacyResourceProviderAdapter> ctx) {
+        public String[] getSupportedLanguages(ResolverContext<LegacyResourceProviderAdapter> ctx) {
             return languages;
         }
 
         @Override
-        public Iterator<Resource> findResources(ResolveContext<LegacyResourceProviderAdapter> ctx, String query,
+        public Iterator<Resource> findResources(ResolverContext<LegacyResourceProviderAdapter> ctx, String query,
                 String language) {
-            return ctx.getProviderState().getJCRQueryProvider().findResources((ResolveContext) ctx, query, language);
+            return ctx.getProviderState().getJCRQueryProvider().findResources((ResolverContext) ctx, query, language);
         }
 
         @Override
-        public Iterator<ValueMap> queryResources(ResolveContext<LegacyResourceProviderAdapter> ctx, String query,
+        public Iterator<ValueMap> queryResources(ResolverContext<LegacyResourceProviderAdapter> ctx, String query,
                 String language) {
-            return ctx.getProviderState().getJCRQueryProvider().queryResources((ResolveContext) ctx, query, language);
+            return ctx.getProviderState().getJCRQueryProvider().queryResources((ResolverContext) ctx, query, language);
         }
     }
 }

Modified: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/stateful/AuthenticatedResourceProvider.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/stateful/AuthenticatedResourceProvider.java?rev=1710810&r1=1710809&r2=1710810&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/stateful/AuthenticatedResourceProvider.java (original)
+++ sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/stateful/AuthenticatedResourceProvider.java Tue Oct 27 13:35:17 2015
@@ -39,7 +39,8 @@ import org.apache.sling.resourceresolver
 import org.apache.sling.spi.resource.provider.JCRQueryProvider;
 import org.apache.sling.spi.resource.provider.QueryProvider;
 import org.apache.sling.spi.resource.provider.QueryResult;
-import org.apache.sling.spi.resource.provider.ResolveContext;
+import org.apache.sling.spi.resource.provider.ResolverContext;
+import org.apache.sling.spi.resource.provider.ResourceContext;
 import org.apache.sling.spi.resource.provider.ResourceProvider;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -68,7 +69,7 @@ public class AuthenticatedResourceProvid
 
     private Object contextData;
 
-    private ResolveContext<Object> cachedContext;
+    private ResolverContext<Object> cachedContext;
 
     private QueryProvider<Object> cachedQueryProvider;
 
@@ -94,35 +95,31 @@ public class AuthenticatedResourceProvid
         return contextData;
     }
 
-    private ResolveContext<Object> getBasicContext() throws LoginException {
+    private ResolverContext<Object> getBasicContext() throws LoginException {
         if (cachedContext != null) {
             return cachedContext;
         }
-        return cachedContext = getContext(null, null);
+        return cachedContext = getContext(null);
     }
 
     @Override
-    public ResolveContext<Object> getContext(Map<String, String> parameters) throws LoginException {
-        if (parameters == null || parameters.isEmpty()) {
-            return getBasicContext();
-        } else {
-            return getContext(parameters, null);
-        }
+    public ResolverContext<Object> getContext() throws LoginException {
+        return getBasicContext();
     }
 
-    private ResolveContext<Object> getContext(Map<String, String> parameters, List<StatefulResourceProvider> parentProviders) throws LoginException {
+    private ResolverContext<Object> getContext(List<StatefulResourceProvider> parentProviders) throws LoginException {
         ResourceProvider<Object> parentProvider = null;
-        ResolveContext<Object> parentContext = null;
+        ResolverContext<Object> parentContext = null;
         try {
             if (parentProviders != null && !parentProviders.isEmpty()) {
                 StatefulResourceProvider statefulParentProvider = parentProviders.get(0);
                 parentProvider = statefulParentProvider.getResourceProvider();
-                parentContext = statefulParentProvider.getContext(parameters);
+                parentContext = statefulParentProvider.getContext();
             }
         } catch (LoginException e) {
             logger.warn("Can't authenticate the parent resource provider", e);
         }
-        return new BasicResolveContext<Object>(resolver, parameters, authenticate(), parentProvider, parentContext);
+        return new BasicResolveContext<Object>(resolver, authenticate(), parentProvider, parentContext);
     }
 
     @Override
@@ -160,7 +157,7 @@ public class AuthenticatedResourceProvid
     @Override
     public Resource getParent(Resource child, List<StatefulResourceProvider> parentProviders) {
         try {
-            return rp.getParent(getContext(child.getResourceMetadata().getParameterMap(), parentProviders), child);
+            return rp.getParent(getContext(parentProviders), child);
         } catch (LoginException e) {
             logger.error("Can't create context", e);
             return null;
@@ -168,9 +165,20 @@ public class AuthenticatedResourceProvid
     }
 
     @Override
-    public Resource getResource(String path, Resource parent, Map<String, String> parameters, boolean isResolve, List<StatefulResourceProvider> parentProviders) {
+    public Resource getResource(String path, Resource parent, final Map<String, String> parameters, boolean isResolve, List<StatefulResourceProvider> parentProviders) {
+        ResourceContext resourceContext = ResourceContext.EMPTY_CONTEXT;
+        if ( parameters != null ) {
+            resourceContext = new ResourceContext() {
+
+                @Override
+                public Map<String, String> getResolveParameters() {
+                    // TODO Auto-generated method stub
+                    return parameters;
+                }
+            };
+        }
         try {
-            return rp.getResource(getContext(parameters, parentProviders), path, parent);
+            return rp.getResource(getContext(parentProviders), path, resourceContext, parent);
         } catch (LoginException e) {
             logger.error("Can't create context", e);
             return null;
@@ -181,7 +189,7 @@ public class AuthenticatedResourceProvid
     @Override
     public Iterator<Resource> listChildren(Resource parent, List<StatefulResourceProvider> parentProviders) {
         try {
-            return rp.listChildren(getContext(parent.getResourceMetadata().getParameterMap(), parentProviders), parent);
+            return rp.listChildren(getContext(parentProviders), parent);
         } catch (LoginException e) {
             logger.error("Can't create context", e);
             return null;
@@ -227,7 +235,7 @@ public class AuthenticatedResourceProvid
     @Override
     public Resource create(String path, Map<String, Object> properties, List<StatefulResourceProvider> parentProviders) throws PersistenceException {
         try {
-            return rp.create(getContext(null, parentProviders), path, properties);
+            return rp.create(getContext(parentProviders), path, properties);
         } catch (LoginException e) {
             logger.error("Can't create context", e);
             return null;
@@ -237,7 +245,7 @@ public class AuthenticatedResourceProvid
     @Override
     public void delete(Resource resource, List<StatefulResourceProvider> parentProviders) throws PersistenceException {
         try {
-            rp.delete(getContext(resource.getResourceMetadata().getParameterMap(), parentProviders), resource);
+            rp.delete(getContext(parentProviders), resource);
         } catch (LoginException e) {
             logger.error("Can't create context", e);
         }
@@ -355,7 +363,7 @@ public class AuthenticatedResourceProvid
     @Override
     public boolean copy(String srcAbsPath, String destAbsPath, List<StatefulResourceProvider> parentProviders) throws PersistenceException {
         try {
-            return rp.copy(getContext(null, parentProviders), srcAbsPath, destAbsPath);
+            return rp.copy(getContext(parentProviders), srcAbsPath, destAbsPath);
         } catch (LoginException e) {
             logger.error("Can't create context", e);
             return false;
@@ -365,7 +373,7 @@ public class AuthenticatedResourceProvid
     @Override
     public boolean move(String srcAbsPath, String destAbsPath, List<StatefulResourceProvider> parentProviders) throws PersistenceException {
         try {
-            return rp.move(getContext(null, parentProviders), srcAbsPath, destAbsPath);
+            return rp.move(getContext(parentProviders), srcAbsPath, destAbsPath);
         } catch (LoginException e) {
             logger.error("Can't create context", e);
             return false;

Modified: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/stateful/EmptyResourceProvider.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/stateful/EmptyResourceProvider.java?rev=1710810&r1=1710809&r2=1710810&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/stateful/EmptyResourceProvider.java (original)
+++ sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/stateful/EmptyResourceProvider.java Tue Oct 27 13:35:17 2015
@@ -29,7 +29,7 @@ import org.apache.sling.api.resource.Res
 import org.apache.sling.api.resource.query.Query;
 import org.apache.sling.api.resource.query.QueryInstructions;
 import org.apache.sling.spi.resource.provider.QueryResult;
-import org.apache.sling.spi.resource.provider.ResolveContext;
+import org.apache.sling.spi.resource.provider.ResolverContext;
 import org.apache.sling.spi.resource.provider.ResourceProvider;
 
 public class EmptyResourceProvider implements StatefulResourceProvider {
@@ -144,7 +144,7 @@ public class EmptyResourceProvider imple
     }
 
     @Override
-    public ResolveContext<Object> getContext(Map<String, String> parameters) {
+    public ResolverContext<Object> getContext() {
         return null;
     }
 

Modified: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/stateful/StatefulResourceProvider.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/stateful/StatefulResourceProvider.java?rev=1710810&r1=1710809&r2=1710810&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/stateful/StatefulResourceProvider.java (original)
+++ sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/stateful/StatefulResourceProvider.java Tue Oct 27 13:35:17 2015
@@ -35,7 +35,7 @@ import org.apache.sling.api.resource.que
 import org.apache.sling.api.resource.query.QueryManager;
 import org.apache.sling.spi.resource.provider.JCRQueryProvider;
 import org.apache.sling.spi.resource.provider.QueryResult;
-import org.apache.sling.spi.resource.provider.ResolveContext;
+import org.apache.sling.spi.resource.provider.ResolverContext;
 import org.apache.sling.spi.resource.provider.ResourceProvider;
 
 /**
@@ -168,7 +168,7 @@ public interface StatefulResourceProvide
 
     /**
      * @return Context for the wrapped ResourceProvider
-     * @throws LoginException 
+     * @throws LoginException
      */
-    ResolveContext<Object> getContext(Map<String, String> parameters) throws LoginException;
+    ResolverContext<Object> getContext() throws LoginException;
 }

Modified: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/stateful/StatefulResourceProviderWrapper.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/stateful/StatefulResourceProviderWrapper.java?rev=1710810&r1=1710809&r2=1710810&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/stateful/StatefulResourceProviderWrapper.java (original)
+++ sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/stateful/StatefulResourceProviderWrapper.java Tue Oct 27 13:35:17 2015
@@ -30,7 +30,7 @@ import org.apache.sling.api.resource.Res
 import org.apache.sling.api.resource.query.Query;
 import org.apache.sling.api.resource.query.QueryInstructions;
 import org.apache.sling.spi.resource.provider.QueryResult;
-import org.apache.sling.spi.resource.provider.ResolveContext;
+import org.apache.sling.spi.resource.provider.ResolverContext;
 import org.apache.sling.spi.resource.provider.ResourceProvider;
 
 public class StatefulResourceProviderWrapper implements StatefulResourceProvider {
@@ -152,7 +152,7 @@ public class StatefulResourceProviderWra
     }
 
     @Override
-    public ResolveContext<Object> getContext(Map<String, String> parameters) throws LoginException {
-        return rp.getContext(parameters);
+    public ResolverContext<Object> getContext() throws LoginException {
+        return rp.getContext();
     }
 }

Modified: sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/MockedResourceResolverImplTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/MockedResourceResolverImplTest.java?rev=1710810&r1=1710809&r2=1710810&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/MockedResourceResolverImplTest.java (original)
+++ sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/MockedResourceResolverImplTest.java Tue Oct 27 13:35:17 2015
@@ -47,7 +47,8 @@ import org.apache.sling.resourceresolver
 import org.apache.sling.resourceresolver.impl.providers.ResourceProviderStorage;
 import org.apache.sling.resourceresolver.impl.providers.ResourceProviderTracker;
 import org.apache.sling.spi.resource.provider.JCRQueryProvider;
-import org.apache.sling.spi.resource.provider.ResolveContext;
+import org.apache.sling.spi.resource.provider.ResolverContext;
+import org.apache.sling.spi.resource.provider.ResourceContext;
 import org.apache.sling.spi.resource.provider.ResourceProvider;
 import org.junit.After;
 import org.junit.Assert;
@@ -124,7 +125,7 @@ public class MockedResourceResolverImplT
      */
     @Mock
     private ResourceProvider<?> appsResourceProvider;
-    
+
     /**
      * QueriableResourceProviders
      */
@@ -202,7 +203,7 @@ public class MockedResourceResolverImplT
 
     public static ResourceProviderHandler createRPHandler(ResourceProvider<?> rp, String pid, long ranking,
             String path) {
-        ServiceReference ref = Mockito.mock(ServiceReference.class);        
+        ServiceReference ref = Mockito.mock(ServiceReference.class);
         BundleContext bc = Mockito.mock(BundleContext.class);
         Mockito.when(bc.getService(Mockito.eq(ref))).thenReturn(rp);
         Mockito.when(ref.getProperty(Mockito.eq(Constants.SERVICE_ID))).thenReturn(new Random().nextLong());
@@ -239,7 +240,7 @@ public class MockedResourceResolverImplT
         mappingChildren.add(buildResource(path+"/http/localhost_any", localHostAnyList, resourceResolver, provider,"sling:match", "localhost\\.\\d*", "sling:internalRedirect", "/content"));
 
         Resource etcMapResource = buildResource(path+"/http", mappingChildren);
-        Mockito.when(provider.getResource(Mockito.any(ResolveContext.class), Mockito.eq(path), Mockito.any(Resource.class))).thenReturn(etcMapResource);
+        Mockito.when(provider.getResource(Mockito.any(ResolverContext.class), Mockito.eq(path), Mockito.any(ResourceContext.class), Mockito.any(Resource.class))).thenReturn(etcMapResource);
         return etcMapResource;
     }
 
@@ -269,7 +270,7 @@ public class MockedResourceResolverImplT
     private Resource buildResource(String fullpath, Iterable<Resource> children) {
         return buildResource(fullpath, children, null, null, new String[0]);
     }
-    
+
     /** Build a List of ValueMap */
     private List<ValueMap> buildValueMapCollection(int howMany, String pathPrefix) {
         final List<ValueMap> result = new ArrayList<ValueMap>();
@@ -300,8 +301,8 @@ public class MockedResourceResolverImplT
 
         // register the resource with the provider
         if ( provider != null ) {
-            Mockito.when(provider.listChildren(Mockito.any(ResolveContext.class), Mockito.eq(resource))).thenReturn(children.iterator());
-            Mockito.when(provider.getResource(Mockito.any(ResolveContext.class), Mockito.eq(fullpath), Mockito.any(Resource.class))).thenReturn(resource);
+            Mockito.when(provider.listChildren(Mockito.any(ResolverContext.class), Mockito.eq(resource))).thenReturn(children.iterator());
+            Mockito.when(provider.getResource(Mockito.any(ResolverContext.class), Mockito.eq(fullpath), Mockito.any(ResourceContext.class), Mockito.any(Resource.class))).thenReturn(resource);
         }
         if ( properties != null ) {
             ValueMap vm = new SimpleValueMapImpl();
@@ -548,8 +549,8 @@ public class MockedResourceResolverImplT
     public void testQueryResources() throws LoginException {
         final int n = 3;
         String[] languages = new String[] {FAKE_QUERY_LANGUAGE};
-        Mockito.when(queryProvider.getSupportedLanguages(Mockito.any(ResolveContext.class))).thenReturn(languages);
-        Mockito.when(queryProvider.queryResources(Mockito.any(ResolveContext.class), Mockito.any(String.class), Mockito.any(String.class)))
+        Mockito.when(queryProvider.getSupportedLanguages(Mockito.any(ResolverContext.class))).thenReturn(languages);
+        Mockito.when(queryProvider.queryResources(Mockito.any(ResolverContext.class), Mockito.any(String.class), Mockito.any(String.class)))
         .thenReturn(buildValueMapCollection(n, "A_").iterator());
 
         final ResourceResolver rr = resourceResolverFactory.getResourceResolver(null);

Modified: sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/ProviderHandlerTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/ProviderHandlerTest.java?rev=1710810&r1=1710809&r2=1710810&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/ProviderHandlerTest.java (original)
+++ sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/ProviderHandlerTest.java Tue Oct 27 13:35:17 2015
@@ -18,12 +18,11 @@
  */
 package org.apache.sling.resourceresolver.impl;
 
+import static org.apache.sling.resourceresolver.impl.MockedResourceResolverImplTest.createRPHandler;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-import static org.apache.sling.resourceresolver.impl.MockedResourceResolverImplTest.createRPHandler;
-
 import java.util.Arrays;
 
 import org.apache.sling.api.resource.LoginException;
@@ -32,11 +31,9 @@ import org.apache.sling.api.resource.Res
 import org.apache.sling.api.resource.ResourceMetadata;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.api.resource.ResourceUtil;
-import org.apache.sling.resourceresolver.impl.CommonResourceResolverFactoryImpl;
-import org.apache.sling.resourceresolver.impl.ResourceResolverFactoryActivator;
-import org.apache.sling.resourceresolver.impl.ResourceResolverImpl;
 import org.apache.sling.resourceresolver.impl.providers.ResourceProviderHandler;
-import org.apache.sling.spi.resource.provider.ResolveContext;
+import org.apache.sling.spi.resource.provider.ResolverContext;
+import org.apache.sling.spi.resource.provider.ResourceContext;
 import org.apache.sling.spi.resource.provider.ResourceProvider;
 import org.junit.Test;
 import org.mockito.Mockito;
@@ -57,10 +54,10 @@ public class ProviderHandlerTest {
         });
 
         final ResourceProvider<?> leaveProvider = Mockito.mock(ResourceProvider.class);
-        Mockito.when(leaveProvider.getResource(Mockito.any(ResolveContext.class), Mockito.eq(servletpath), Mockito.any(Resource.class))).thenReturn(servletResource);
+        Mockito.when(leaveProvider.getResource(Mockito.any(ResolverContext.class), Mockito.eq(servletpath), Mockito.any(ResourceContext.class), Mockito.any(Resource.class))).thenReturn(servletResource);
         ResourceProviderHandler h = createRPHandler(leaveProvider, "my-pid", 0, servletpath);
         ResourceResolver resolver = new ResourceResolverImpl(new CommonResourceResolverFactoryImpl(new ResourceResolverFactoryActivator()), false, null, Arrays.asList(h));
-        
+
         final Resource parent = resolver.getResource(ResourceUtil.getParent(servletpath));
         assertNotNull("Parent must be available", parent);
         assertTrue("Resource should be synthetic", ResourceUtil.isSyntheticResource(parent));

Modified: sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/ResourceDecoratorTestBase.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/ResourceDecoratorTestBase.java?rev=1710810&r1=1710809&r2=1710810&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/ResourceDecoratorTestBase.java (original)
+++ sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/ResourceDecoratorTestBase.java Tue Oct 27 13:35:17 2015
@@ -38,7 +38,8 @@ import org.apache.sling.api.resource.Val
 import org.apache.sling.resourceresolver.impl.helper.ResourceDecoratorTracker;
 import org.apache.sling.resourceresolver.impl.providers.ResourceProviderHandler;
 import org.apache.sling.spi.resource.provider.JCRQueryProvider;
-import org.apache.sling.spi.resource.provider.ResolveContext;
+import org.apache.sling.spi.resource.provider.ResolverContext;
+import org.apache.sling.spi.resource.provider.ResourceContext;
 import org.apache.sling.spi.resource.provider.ResourceProvider;
 import org.junit.Before;
 import org.mockito.Mockito;
@@ -54,10 +55,12 @@ public abstract class ResourceDecoratorT
     @Before
     public void setup() throws LoginException {
         final ResourceDecorator d = new ResourceDecorator() {
+            @Override
             public Resource decorate(Resource resource) {
                 return ResourceDecoratorTestBase.this.wrapResourceForTest(resource);
             }
 
+            @Override
             public Resource decorate(Resource resource, HttpServletRequest request) {
                 throw new UnsupportedOperationException("Not supposed to be used in these tests");
             }
@@ -74,12 +77,12 @@ public abstract class ResourceDecoratorT
                 return new JCRQueryProvider<Object>() {
 
                     @Override
-                    public String[] getSupportedLanguages(ResolveContext<Object> ctx) {
+                    public String[] getSupportedLanguages(ResolverContext<Object> ctx) {
                         return new String[] { QUERY_LANGUAGE };
                     }
 
                     @Override
-                    public Iterator<Resource> findResources(ResolveContext<Object> ctx, String query, String language) {
+                    public Iterator<Resource> findResources(ResolverContext<Object> ctx, String query, String language) {
                         final List<Resource> found = new ArrayList<Resource>();
                         found.add(mockResource("/tmp/C"));
                         found.add(mockResource("/tmp/D"));
@@ -89,14 +92,14 @@ public abstract class ResourceDecoratorT
                     }
 
                     @Override
-                    public Iterator<ValueMap> queryResources(ResolveContext<Object> ctx, String query, String language) {
+                    public Iterator<ValueMap> queryResources(ResolverContext<Object> ctx, String query, String language) {
                         return null;
                     }
                 };
             }
-            
+
             @Override
-            public Resource getResource(ResolveContext<Object> ctx, String path, Resource parent) {
+            public Resource getResource(ResolverContext<Object> ctx, String path, final ResourceContext rCtx, Resource parent) {
                 if(path.equals("/") || path.startsWith("/tmp") || path.startsWith("/var")) {
                     return mockResource(path);
                 }
@@ -104,7 +107,7 @@ public abstract class ResourceDecoratorT
             }
 
             @Override
-            public Iterator<Resource> listChildren(ResolveContext<Object> ctx, Resource parent) {
+            public Iterator<Resource> listChildren(ResolverContext<Object> ctx, Resource parent) {
                 final List<Resource> children = new ArrayList<Resource>();
                 if("/".equals(parent.getPath())) {
                     children.add(mockResource("/tmp"));

Modified: sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/ResourceProviderEntryTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/ResourceProviderEntryTest.java?rev=1710810&r1=1710809&r2=1710810&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/ResourceProviderEntryTest.java (original)
+++ sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/ResourceProviderEntryTest.java Tue Oct 27 13:35:17 2015
@@ -19,7 +19,6 @@
 package org.apache.sling.resourceresolver.impl;
 
 import static org.apache.sling.resourceresolver.impl.MockedResourceResolverImplTest.createRPHandler;
-
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNull;
@@ -36,11 +35,9 @@ import org.apache.sling.api.resource.Res
 import org.apache.sling.api.resource.ResourceMetadata;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.api.resource.SyntheticResource;
-import org.apache.sling.resourceresolver.impl.CommonResourceResolverFactoryImpl;
-import org.apache.sling.resourceresolver.impl.ResourceResolverFactoryActivator;
-import org.apache.sling.resourceresolver.impl.ResourceResolverImpl;
 import org.apache.sling.resourceresolver.impl.providers.ResourceProviderHandler;
-import org.apache.sling.spi.resource.provider.ResolveContext;
+import org.apache.sling.spi.resource.provider.ResolverContext;
+import org.apache.sling.spi.resource.provider.ResourceContext;
 import org.apache.sling.spi.resource.provider.ResourceProvider;
 import org.junit.Before;
 import org.junit.Test;
@@ -61,7 +58,7 @@ public class ResourceProviderEntryTest {
         this.providersBasedResolver = null;
         this.providers.clear();
         final ResourceProvider<?> rootProvider = Mockito.mock(ResourceProvider.class);
-        Mockito.when(rootProvider.getResource(Mockito.any(ResolveContext.class), Mockito.anyString(), Mockito.any(Resource.class))).thenReturn(new TestResource(this.mockedRootResolver));
+        Mockito.when(rootProvider.getResource(Mockito.any(ResolverContext.class), Mockito.anyString(), Mockito.any(ResourceContext.class), Mockito.any(Resource.class))).thenReturn(new TestResource(this.mockedRootResolver));
         providers.add(createRPHandler(rootProvider, "rp0", 0, "/"));
     }
 
@@ -78,7 +75,7 @@ public class ResourceProviderEntryTest {
         String firstPath = "/rootel";
         final ResourceResolver resolver = Mockito.mock(ResourceResolver.class);
         final ResourceProvider<?> first = Mockito.mock(ResourceProvider.class);
-        Mockito.when(first.getResource(Mockito.any(ResolveContext.class), Mockito.startsWith(firstPath), Mockito.any(Resource.class))).thenReturn(new TestResource(resolver));
+        Mockito.when(first.getResource(Mockito.any(ResolverContext.class), Mockito.startsWith(firstPath), Mockito.any(ResourceContext.class), Mockito.any(Resource.class))).thenReturn(new TestResource(resolver));
 
         providers.add(createRPHandler(first, "rp1", 1, "/rootel"));
         this.providersBasedResolver = null;
@@ -99,13 +96,13 @@ public class ResourceProviderEntryTest {
 
         final ResourceResolver firstResolver = Mockito.mock(ResourceResolver.class);
         final ResourceProvider<?> first = Mockito.mock(ResourceProvider.class);
-        Mockito.when(first.getResource(Mockito.any(ResolveContext.class), Mockito.startsWith(firstPath), Mockito.any(Resource.class))).thenReturn(new TestResource(firstResolver));
+        Mockito.when(first.getResource(Mockito.any(ResolverContext.class), Mockito.startsWith(firstPath), Mockito.any(ResourceContext.class), Mockito.any(Resource.class))).thenReturn(new TestResource(firstResolver));
         final ResourceResolver secondResolver = Mockito.mock(ResourceResolver.class);
         final ResourceProvider<?> second = Mockito.mock(ResourceProvider.class);
-        Mockito.when(second.getResource(Mockito.any(ResolveContext.class), Mockito.startsWith(secondPath), Mockito.any(Resource.class))).thenReturn(new TestResource(secondResolver));
+        Mockito.when(second.getResource(Mockito.any(ResolverContext.class), Mockito.startsWith(secondPath), Mockito.any(ResourceContext.class), Mockito.any(Resource.class))).thenReturn(new TestResource(secondResolver));
         final ResourceResolver thirdResolver = Mockito.mock(ResourceResolver.class);
         final ResourceProvider<?> third = Mockito.mock(ResourceProvider.class);
-        Mockito.when(third.getResource(Mockito.any(ResolveContext.class), Mockito.startsWith(thirdPath), Mockito.any(Resource.class))).thenReturn(new TestResource(thirdResolver));
+        Mockito.when(third.getResource(Mockito.any(ResolverContext.class), Mockito.startsWith(thirdPath), Mockito.any(ResourceContext.class), Mockito.any(Resource.class))).thenReturn(new TestResource(thirdResolver));
 
         providers.add(createRPHandler(first, "rp1", 1, firstPath));
         providers.add(createRPHandler(second, "rp2", 2, secondPath));
@@ -128,13 +125,13 @@ public class ResourceProviderEntryTest {
 
         final ResourceResolver firstResolver = Mockito.mock(ResourceResolver.class);
         final ResourceProvider<?> first = Mockito.mock(ResourceProvider.class);
-        Mockito.when(first.getResource(Mockito.any(ResolveContext.class), Mockito.startsWith(firstPath), Mockito.any(Resource.class))).thenReturn(new TestResource(firstResolver));
+        Mockito.when(first.getResource(Mockito.any(ResolverContext.class), Mockito.startsWith(firstPath), Mockito.any(ResourceContext.class), Mockito.any(Resource.class))).thenReturn(new TestResource(firstResolver));
         final ResourceResolver secondResolver = Mockito.mock(ResourceResolver.class);
         final ResourceProvider<?> second = Mockito.mock(ResourceProvider.class);
-        Mockito.when(second.getResource(Mockito.any(ResolveContext.class), Mockito.startsWith(secondPath), Mockito.any(Resource.class))).thenReturn(new TestResource(secondResolver));
+        Mockito.when(second.getResource(Mockito.any(ResolverContext.class), Mockito.startsWith(secondPath), Mockito.any(ResourceContext.class), Mockito.any(Resource.class))).thenReturn(new TestResource(secondResolver));
         final ResourceResolver thirdResolver = Mockito.mock(ResourceResolver.class);
         final ResourceProvider<?> third = Mockito.mock(ResourceProvider.class);
-        Mockito.when(third.getResource(Mockito.any(ResolveContext.class), Mockito.startsWith(thirdPath), Mockito.any(Resource.class))).thenReturn(new TestResource(thirdResolver));
+        Mockito.when(third.getResource(Mockito.any(ResolverContext.class), Mockito.startsWith(thirdPath), Mockito.any(ResourceContext.class), Mockito.any(Resource.class))).thenReturn(new TestResource(thirdResolver));
 
         providers.add(createRPHandler(first, "rp1", 1, firstPath));
         providers.add(createRPHandler(second, "rp2", 2, secondPath));
@@ -157,13 +154,13 @@ public class ResourceProviderEntryTest {
 
         final ResourceResolver firstResolver = Mockito.mock(ResourceResolver.class);
         final ResourceProvider<?> first = Mockito.mock(ResourceProvider.class);
-        Mockito.when(first.getResource(Mockito.any(ResolveContext.class), Mockito.startsWith(firstPath), Mockito.any(Resource.class))).thenReturn(new TestResource(firstResolver));
+        Mockito.when(first.getResource(Mockito.any(ResolverContext.class), Mockito.startsWith(firstPath), Mockito.any(ResourceContext.class), Mockito.any(Resource.class))).thenReturn(new TestResource(firstResolver));
         final ResourceResolver secondResolver = Mockito.mock(ResourceResolver.class);
         final ResourceProvider<?> second = Mockito.mock(ResourceProvider.class);
-        Mockito.when(second.getResource(Mockito.any(ResolveContext.class), Mockito.startsWith(secondPath), Mockito.any(Resource.class))).thenReturn(new TestResource(secondResolver));
+        Mockito.when(second.getResource(Mockito.any(ResolverContext.class), Mockito.startsWith(secondPath), Mockito.any(ResourceContext.class), Mockito.any(Resource.class))).thenReturn(new TestResource(secondResolver));
         final ResourceResolver thirdResolver = Mockito.mock(ResourceResolver.class);
         final ResourceProvider<?> third = Mockito.mock(ResourceProvider.class);
-        Mockito.when(third.getResource(Mockito.any(ResolveContext.class), Mockito.startsWith(thirdPath), Mockito.any(Resource.class))).thenReturn(new TestResource(thirdResolver));
+        Mockito.when(third.getResource(Mockito.any(ResolverContext.class), Mockito.startsWith(thirdPath), Mockito.any(ResourceContext.class), Mockito.any(Resource.class))).thenReturn(new TestResource(thirdResolver));
 
         final Map<String, Object> firstProps = new HashMap<String, Object>();
         firstProps.put(Constants.SERVICE_ID, (long)1);
@@ -205,7 +202,7 @@ public class ResourceProviderEntryTest {
         for(String path : new String[] { "/foo", "/", "/foo/bar" }) {
             final ResourceResolver resolver = Mockito.mock(ResourceResolver.class);
             final ResourceProvider<?> p = Mockito.mock(ResourceProvider.class);
-            Mockito.when(p.getResource(Mockito.any(ResolveContext.class), Mockito.startsWith(path), Mockito.any(Resource.class))).thenReturn(new TestResource(resolver));
+            Mockito.when(p.getResource(Mockito.any(ResolverContext.class), Mockito.startsWith(path), Mockito.any(ResourceContext.class), Mockito.any(Resource.class))).thenReturn(new TestResource(resolver));
 
             ++counter;
 
@@ -241,7 +238,7 @@ public class ResourceProviderEntryTest {
     private Resource getResource(String path) throws LoginException {
         return getResolver().getResource(path);
     }
-    
+
     private ResourceResolver getResolver() throws LoginException {
         if (providersBasedResolver == null) {
             providersBasedResolver = new ResourceResolverImpl(new CommonResourceResolverFactoryImpl(new ResourceResolverFactoryActivator()), false, null, providers);
@@ -257,22 +254,27 @@ public class ResourceProviderEntryTest {
             this.resourceResolver = resourceResolver;
         }
 
+        @Override
         public String getPath() {
             return null;
         }
 
+        @Override
         public ResourceMetadata getResourceMetadata() {
             return new ResourceMetadata();
         }
 
+        @Override
         public ResourceResolver getResourceResolver() {
             return resourceResolver;
         }
 
+        @Override
         public String getResourceType() {
             return null;
         }
 
+        @Override
         public String getResourceSuperType() {
             return null;
         }

Modified: sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/ResourceResolverImplTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/ResourceResolverImplTest.java?rev=1710810&r1=1710809&r2=1710810&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/ResourceResolverImplTest.java (original)
+++ sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/ResourceResolverImplTest.java Tue Oct 27 13:35:17 2015
@@ -47,7 +47,8 @@ import org.apache.sling.api.resource.Syn
 import org.apache.sling.resourceresolver.impl.providers.ResourceProviderHandler;
 import org.apache.sling.resourceresolver.impl.providers.ResourceProviderStorage;
 import org.apache.sling.resourceresolver.impl.providers.ResourceProviderTracker;
-import org.apache.sling.spi.resource.provider.ResolveContext;
+import org.apache.sling.spi.resource.provider.ResolverContext;
+import org.apache.sling.spi.resource.provider.ResourceContext;
 import org.apache.sling.spi.resource.provider.ResourceProvider;
 import org.junit.Before;
 import org.junit.Test;
@@ -61,19 +62,19 @@ public class ResourceResolverImplTest {
     private ResourceResolver resResolver;
 
     private ResourceResolverFactoryImpl resFac;
-    
+
     private ResourceProviderTracker resourceProviderTracker;
 
     @Before public void setup() throws LoginException {
         ResourceProvider<?> rp = new ResourceProvider<Object>() {
 
             @Override
-            public Resource getResource(ResolveContext<Object> ctx, String path, Resource parent) {
+            public Resource getResource(ResolverContext<Object> ctx, String path, ResourceContext rCtx, Resource parent) {
                 return null;
             }
 
             @Override
-            public Iterator<Resource> listChildren(ResolveContext<Object> ctx, Resource parent) {
+            public Iterator<Resource> listChildren(ResolverContext<Object> ctx, Resource parent) {
                 return null;
             }
         };

Modified: sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/ResourceResolverMangleNamespacesTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/ResourceResolverMangleNamespacesTest.java?rev=1710810&r1=1710809&r2=1710810&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/ResourceResolverMangleNamespacesTest.java (original)
+++ sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/ResourceResolverMangleNamespacesTest.java Tue Oct 27 13:35:17 2015
@@ -31,7 +31,8 @@ import javax.jcr.Session;
 import org.apache.commons.collections.IteratorUtils;
 import org.apache.sling.api.resource.LoginException;
 import org.apache.sling.api.resource.Resource;
-import org.apache.sling.spi.resource.provider.ResolveContext;
+import org.apache.sling.spi.resource.provider.ResolverContext;
+import org.apache.sling.spi.resource.provider.ResourceContext;
 import org.apache.sling.spi.resource.provider.ResourceProvider;
 import org.junit.Before;
 import org.junit.Test;
@@ -70,7 +71,7 @@ public class ResourceResolverMangleNames
 
             @SuppressWarnings("unchecked")
             @Override
-            public @CheckForNull <AdapterType> AdapterType adaptTo(final  @Nonnull ResolveContext<Object> ctx,
+            public @CheckForNull <AdapterType> AdapterType adaptTo(final  @Nonnull ResolverContext<Object> ctx,
                     final @Nonnull Class<AdapterType> type) {
                 if (type.equals(Session.class)) {
                     return (AdapterType) activeSession;
@@ -80,13 +81,13 @@ public class ResourceResolverMangleNames
             }
 
             @Override
-            public Resource getResource(ResolveContext<Object> ctx, String path, Resource parent) {
+            public Resource getResource(ResolverContext<Object> ctx, String path, ResourceContext rCtx, Resource parent) {
                 return null;
             }
 
             @SuppressWarnings("unchecked")
             @Override
-            public Iterator<Resource> listChildren(ResolveContext<Object> ctx, Resource parent) {
+            public Iterator<Resource> listChildren(ResolverContext<Object> ctx, Resource parent) {
                 return IteratorUtils.emptyIterator();
             }
         };