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 2013/10/11 16:14:53 UTC

svn commit: r1531301 - in /sling/trunk/bundles/resourceresolver/src: main/java/org/apache/sling/resourceresolver/impl/ main/java/org/apache/sling/resourceresolver/impl/console/ test/java/org/apache/sling/resourceresolver/impl/

Author: cziegeler
Date: Fri Oct 11 14:14:52 2013
New Revision: 1531301

URL: http://svn.apache.org/r1531301
Log:
SLING-3160 : Creating ResourceResolverFactory as ServiceFactory leads to multiple MapEntries creation

Added:
    sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/CommonResourceResolverFactoryImpl.java   (with props)
Modified:
    sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryActivator.java
    sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryImpl.java
    sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java
    sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/console/ResourceResolverWebConsolePlugin.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

Added: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/CommonResourceResolverFactoryImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/CommonResourceResolverFactoryImpl.java?rev=1531301&view=auto
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/CommonResourceResolverFactoryImpl.java (added)
+++ sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/CommonResourceResolverFactoryImpl.java Fri Oct 11 14:14:52 2013
@@ -0,0 +1,202 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.sling.resourceresolver.impl;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.collections.BidiMap;
+import org.apache.sling.api.resource.LoginException;
+import org.apache.sling.api.resource.ResourceProviderFactory;
+import org.apache.sling.api.resource.ResourceResolver;
+import org.apache.sling.api.resource.ResourceResolverFactory;
+import org.apache.sling.api.security.ResourceAccessSecurity;
+import org.apache.sling.resourceresolver.impl.console.ResourceResolverWebConsolePlugin;
+import org.apache.sling.resourceresolver.impl.helper.ResourceDecoratorTracker;
+import org.apache.sling.resourceresolver.impl.helper.ResourceResolverContext;
+import org.apache.sling.resourceresolver.impl.mapping.MapConfigurationProvider;
+import org.apache.sling.resourceresolver.impl.mapping.MapEntries;
+import org.apache.sling.resourceresolver.impl.mapping.Mapping;
+import org.apache.sling.resourceresolver.impl.tree.RootResourceProviderEntry;
+import org.osgi.framework.BundleContext;
+import org.osgi.util.tracker.ServiceTracker;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * The <code>CommonResourceResolverFactoryImpl</code> is a singleton
+ * implementing the shared/common functionality of all resource
+ * resolver factories.
+ */
+public class CommonResourceResolverFactoryImpl implements ResourceResolverFactory, MapConfigurationProvider {
+
+    /** Helper for the resource resolver. */
+    private MapEntries mapEntries = MapEntries.EMPTY;
+
+    /** The web console plugin. */
+    private ResourceResolverWebConsolePlugin plugin;
+
+    /** The activator */
+    private final ResourceResolverFactoryActivator activator;
+
+    private ServiceTracker resourceAccessSecurityTracker;
+
+    public CommonResourceResolverFactoryImpl(final ResourceResolverFactoryActivator activator) {
+        this.activator = activator;
+    }
+
+    // ---------- Resource Resolver Factory ------------------------------------
+
+    public ResourceResolver getAdministrativeResourceResolver(final Map<String, Object> passedAuthenticationInfo)
+    throws LoginException {
+        // create a copy of the passed authentication info as we modify the map
+        final Map<String, Object> authenticationInfo = new HashMap<String, Object>();
+        if ( passedAuthenticationInfo != null ) {
+            authenticationInfo.putAll(passedAuthenticationInfo);
+            // make sure there is no leaking of service bundle and info props
+            authenticationInfo.remove(ResourceProviderFactory.SERVICE_BUNDLE);
+            authenticationInfo.remove(SUBSERVICE);
+        }
+
+        return getResourceResolverInternal(authenticationInfo, true);
+    }
+
+    public ResourceResolver getResourceResolver(final Map<String, Object> passedAuthenticationInfo)
+    throws LoginException {
+        // create a copy of the passed authentication info as we modify the map
+        final Map<String, Object> authenticationInfo = new HashMap<String, Object>();
+        if ( passedAuthenticationInfo != null ) {
+            authenticationInfo.putAll(passedAuthenticationInfo);
+            // make sure there is no leaking of service bundle and info props
+            authenticationInfo.remove(ResourceProviderFactory.SERVICE_BUNDLE);
+            authenticationInfo.remove(SUBSERVICE);
+        }
+
+        return getResourceResolverInternal(authenticationInfo, false);
+    }
+
+    // ---------- Implementation helpers --------------------------------------
+
+    /**
+     * Create a new ResourceResolver
+     * @param authenticationInfo The authentication map
+     * @param isAdmin is an administrative resolver requested?
+     * @return A resource resolver
+     * @throws LoginException if login to any of the required resource providers fails.
+     */
+    public ResourceResolver getResourceResolverInternal(final Map<String, Object> authenticationInfo,
+                    final boolean isAdmin)
+    throws LoginException {
+        // create context
+        final ResourceResolverContext ctx = new ResourceResolverContext(isAdmin, authenticationInfo, resourceAccessSecurityTracker);
+
+        // login
+        this.activator.getRootProviderEntry().loginToRequiredFactories(ctx);
+
+        return new ResourceResolverImpl(this, ctx);
+    }
+
+    public MapEntries getMapEntries() {
+        return mapEntries;
+    }
+
+    /** Activates this component */
+    protected void activate(final BundleContext bundleContext) {
+        final Logger logger = LoggerFactory.getLogger(getClass());
+        try {
+            plugin = new ResourceResolverWebConsolePlugin(bundleContext, this);
+        } catch (final Throwable ignore) {
+            // an exception here propably means the web console plugin is not
+            // available
+            logger.debug("activate: unable to setup web console plugin.", ignore);
+        }
+        // set up the map entries from configuration
+        try {
+            mapEntries = new MapEntries(this, bundleContext, this.activator.getEventAdmin());
+        } catch (final Exception e) {
+            logger.error("activate: Cannot access repository, failed setting up Mapping Support", e);
+        }
+
+        // create and open service tracker for ResourceAccessSecurity
+        resourceAccessSecurityTracker = new ServiceTracker(bundleContext, ResourceAccessSecurity.class.getName(), null);
+        resourceAccessSecurityTracker.open();
+    }
+
+    /**
+     * Deativates this component
+     */
+    protected void deactivate() {
+        if (plugin != null) {
+            plugin.dispose();
+            plugin = null;
+        }
+
+        if (mapEntries != null) {
+            mapEntries.dispose();
+            mapEntries = MapEntries.EMPTY;
+        }
+
+        resourceAccessSecurityTracker.close();
+    }
+
+    public ResourceDecoratorTracker getResourceDecoratorTracker() {
+        return this.activator.getResourceDecoratorTracker();
+    }
+
+    public String[] getSearchPath() {
+        return this.activator.getSearchPath();
+    }
+
+    public boolean isMangleNamespacePrefixes() {
+        return this.activator.isMangleNamespacePrefixes();
+    }
+
+    public String getMapRoot() {
+        return this.activator.getMapRoot();
+    }
+
+    public Mapping[] getMappings() {
+        return this.activator.getMappings();
+    }
+
+    public BidiMap getVirtualURLMap() {
+        return this.activator.getVirtualURLMap();
+    }
+
+    public RootResourceProviderEntry getRootProviderEntry() {
+        return this.activator.getRootProviderEntry();
+    }
+
+    public int getDefaultVanityPathRedirectStatus() {
+        return this.activator.getDefaultVanityPathRedirectStatus();
+    }
+
+    /**
+     * get's the ServiceTracker of the ResourceAccessSecurity service
+     */
+
+    public ServiceTracker getResourceAccessSecurityTracker () {
+        return resourceAccessSecurityTracker;
+    }
+
+    public ResourceResolver getServiceResourceResolver(
+            final Map<String, Object> authenticationInfo) throws LoginException {
+        throw new IllegalStateException("This method is not implemented.");
+    }
+}
\ No newline at end of file

Propchange: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/CommonResourceResolverFactoryImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/CommonResourceResolverFactoryImpl.java
------------------------------------------------------------------------------
    svn:keywords = author date id revision rev url

Propchange: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/CommonResourceResolverFactoryImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryActivator.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryActivator.java?rev=1531301&r1=1531300&r2=1531301&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryActivator.java (original)
+++ sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryActivator.java Fri Oct 11 14:14:52 2013
@@ -81,6 +81,8 @@ public class ResourceResolverFactoryActi
     private static final class FactoryRegistration {
         /** Registration .*/
         public volatile ServiceRegistration factoryRegistration;
+
+        public volatile CommonResourceResolverFactoryImpl commonFactory;
     }
 
     @Property(value = { "/apps", "/libs" })
@@ -327,6 +329,9 @@ public class ResourceResolverFactoryActi
             if ( local.factoryRegistration != null ) {
                 local.factoryRegistration.unregister();
             }
+            if ( local.commonFactory != null ) {
+                local.commonFactory.deactivate();;
+            }
         }
     }
 
@@ -351,18 +356,20 @@ public class ResourceResolverFactoryActi
             serviceProps.put(Constants.SERVICE_VENDOR, localContext.getProperties().get(Constants.SERVICE_VENDOR));
             serviceProps.put(Constants.SERVICE_DESCRIPTION, localContext.getProperties().get(Constants.SERVICE_DESCRIPTION));
 
+            local.commonFactory = new CommonResourceResolverFactoryImpl(this);
+            local.commonFactory.activate(localContext.getBundleContext());
             local.factoryRegistration = localContext.getBundleContext().registerService(
                 ResourceResolverFactory.class.getName(), new ServiceFactory() {
-                    public Object getService(Bundle bundle, ServiceRegistration registration) {
+
+                    public Object getService(final Bundle bundle, final ServiceRegistration registration) {
                         final ResourceResolverFactoryImpl r = new ResourceResolverFactoryImpl(
-                            ResourceResolverFactoryActivator.this, bundle,
+                                local.commonFactory, bundle,
                             ResourceResolverFactoryActivator.this.serviceUserMapper);
-                        r.activate(localContext.getBundleContext());
                         return r;
                     }
 
-                    public void ungetService(Bundle bundle, ServiceRegistration registration, Object service) {
-                        ((ResourceResolverFactoryImpl) service).deactivate();
+                    public void ungetService(final Bundle bundle, final ServiceRegistration registration, final Object service) {
+                        // nothing to do
                     }
                 }, serviceProps);
 

Modified: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryImpl.java?rev=1531301&r1=1531300&r2=1531301&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryImpl.java (original)
+++ sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryImpl.java Fri Oct 11 14:14:52 2013
@@ -21,25 +21,12 @@ package org.apache.sling.resourceresolve
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.commons.collections.BidiMap;
 import org.apache.sling.api.resource.LoginException;
 import org.apache.sling.api.resource.ResourceProviderFactory;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.api.resource.ResourceResolverFactory;
-import org.apache.sling.api.security.ResourceAccessSecurity;
-import org.apache.sling.resourceresolver.impl.console.ResourceResolverWebConsolePlugin;
-import org.apache.sling.resourceresolver.impl.helper.ResourceDecoratorTracker;
-import org.apache.sling.resourceresolver.impl.helper.ResourceResolverContext;
-import org.apache.sling.resourceresolver.impl.mapping.MapConfigurationProvider;
-import org.apache.sling.resourceresolver.impl.mapping.MapEntries;
-import org.apache.sling.resourceresolver.impl.mapping.Mapping;
-import org.apache.sling.resourceresolver.impl.tree.RootResourceProviderEntry;
 import org.apache.sling.serviceusermapping.ServiceUserMapper;
 import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-import org.osgi.util.tracker.ServiceTracker;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * The <code>ResourceResolverFactoryImpl</code> is the {@link ResourceResolverFactory} service
@@ -51,26 +38,19 @@ import org.slf4j.LoggerFactory;
  * </ul>
  *
  */
-public class ResourceResolverFactoryImpl implements ResourceResolverFactory, MapConfigurationProvider {
+public class ResourceResolverFactoryImpl implements ResourceResolverFactory {
 
-    /** Helper for the resource resolver. */
-    private MapEntries mapEntries = MapEntries.EMPTY;
-
-    /** The web console plugin. */
-    private ResourceResolverWebConsolePlugin plugin;
-
-    /** The activator */
-    private final ResourceResolverFactoryActivator activator;
-
-    private ServiceTracker resourceAccessSecurityTracker;
+    private final CommonResourceResolverFactoryImpl commonFactory;
 
     private final ServiceUserMapper serviceUserMapper;
 
     private final Bundle usingBundle;
 
-    public ResourceResolverFactoryImpl(final ResourceResolverFactoryActivator activator, final Bundle usingBundle,
+    public ResourceResolverFactoryImpl(
+            final CommonResourceResolverFactoryImpl commonFactory,
+            final Bundle usingBundle,
             final ServiceUserMapper serviceUserMapper) {
-        this.activator = activator;
+        this.commonFactory = commonFactory;
         this.serviceUserMapper = serviceUserMapper;
         this.usingBundle = usingBundle;
     }
@@ -105,136 +85,16 @@ public class ResourceResolverFactoryImpl
         authenticationInfo.put(ResourceResolverFactory.USER, userName);
         authenticationInfo.put(ResourceProviderFactory.SERVICE_BUNDLE, this.usingBundle);
 
-        return getResourceResolverInternal(authenticationInfo, false);
-    }
-
-    public ResourceResolver getAdministrativeResourceResolver(final Map<String, Object> passedAuthenticationInfo) throws LoginException {
-        // create a copy of the passed authentication info as we modify the map
-        final Map<String, Object> authenticationInfo = new HashMap<String, Object>();
-        if ( passedAuthenticationInfo != null ) {
-            authenticationInfo.putAll(passedAuthenticationInfo);
-            // make sure there is no leaking of service bundle and info props
-            authenticationInfo.remove(ResourceProviderFactory.SERVICE_BUNDLE);
-            authenticationInfo.remove(SUBSERVICE);
-        }
-
-        return getResourceResolverInternal(authenticationInfo, true);
-    }
-
-    public ResourceResolver getResourceResolver(final Map<String, Object> passedAuthenticationInfo) throws LoginException {
-        // create a copy of the passed authentication info as we modify the map
-        final Map<String, Object> authenticationInfo = new HashMap<String, Object>();
-        if ( passedAuthenticationInfo != null ) {
-            authenticationInfo.putAll(passedAuthenticationInfo);
-            // make sure there is no leaking of service bundle and info props
-            authenticationInfo.remove(ResourceProviderFactory.SERVICE_BUNDLE);
-            authenticationInfo.remove(SUBSERVICE);
-        }
-
-        return getResourceResolverInternal(authenticationInfo, false);
-    }
-
-    // ---------- Implementation helpers --------------------------------------
-
-    /**
-     * Create a new ResourceResolver
-     * @param authenticationInfo The authentication map
-     * @param isAdmin is an administrative resolver requested?
-     * @return A resource resolver
-     * @throws LoginException if login to any of the required resource providers fails.
-     */
-    private ResourceResolver getResourceResolverInternal(final Map<String, Object> authenticationInfo,
-                    final boolean isAdmin)
-    throws LoginException {
-        // create context
-        final ResourceResolverContext ctx = new ResourceResolverContext(isAdmin, authenticationInfo, resourceAccessSecurityTracker);
-
-        // login
-        this.activator.getRootProviderEntry().loginToRequiredFactories(ctx);
-
-        return new ResourceResolverImpl(this, ctx);
-    }
-
-    public MapEntries getMapEntries() {
-        return mapEntries;
+        return commonFactory.getResourceResolverInternal(authenticationInfo, false);
     }
 
-    /** Activates this component */
-    protected void activate(final BundleContext bundleContext) {
-        final Logger logger = LoggerFactory.getLogger(getClass());
-        try {
-            plugin = new ResourceResolverWebConsolePlugin(bundleContext, this);
-        } catch (final Throwable ignore) {
-            // an exception here propably means the web console plugin is not
-            // available
-            logger.debug("activate: unable to setup web console plugin.", ignore);
-        }
-        // set up the map entries from configuration
-        try {
-            mapEntries = new MapEntries(this, bundleContext, this.activator.getEventAdmin());
-        } catch (final Exception e) {
-            logger.error("activate: Cannot access repository, failed setting up Mapping Support", e);
-        }
-
-        // create and open service tracker for ResourceAccessSecurity
-        resourceAccessSecurityTracker = new ServiceTracker(bundleContext, ResourceAccessSecurity.class.getName(), null);
-        resourceAccessSecurityTracker.open();
-    }
-
-    /**
-     * Deativates this component
-     */
-    protected void deactivate() {
-        if (plugin != null) {
-            plugin.dispose();
-            plugin = null;
-        }
-
-        if (mapEntries != null) {
-            mapEntries.dispose();
-            mapEntries = MapEntries.EMPTY;
-        }
-
-        resourceAccessSecurityTracker.close();
-    }
-
-    public ResourceDecoratorTracker getResourceDecoratorTracker() {
-        return this.activator.getResourceDecoratorTracker();
-    }
-
-    public String[] getSearchPath() {
-        return this.activator.getSearchPath();
+    public ResourceResolver getResourceResolver(
+            final Map<String, Object> authenticationInfo) throws LoginException {
+        return commonFactory.getResourceResolver(authenticationInfo);
     }
 
-    public boolean isMangleNamespacePrefixes() {
-        return this.activator.isMangleNamespacePrefixes();
-    }
-
-    public String getMapRoot() {
-        return this.activator.getMapRoot();
-    }
-
-    public Mapping[] getMappings() {
-        return this.activator.getMappings();
-    }
-
-    public BidiMap getVirtualURLMap() {
-        return this.activator.getVirtualURLMap();
-    }
-
-    public RootResourceProviderEntry getRootProviderEntry() {
-        return this.activator.getRootProviderEntry();
-    }
-
-    public int getDefaultVanityPathRedirectStatus() {
-        return this.activator.getDefaultVanityPathRedirectStatus();
-    }
-
-    /**
-     * get's the ServiceTracker of the ResourceAccessSecurity service
-     */
-
-    public ServiceTracker getResourceAccessSecurityTracker () {
-        return resourceAccessSecurityTracker;
+    public ResourceResolver getAdministrativeResourceResolver(
+            final Map<String, Object> authenticationInfo) throws LoginException {
+        return commonFactory.getAdministrativeResourceResolver(authenticationInfo);
     }
 }
\ No newline at end of file

Modified: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java?rev=1531301&r1=1531300&r2=1531301&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java (original)
+++ sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java Fri Oct 11 14:14:52 2013
@@ -88,7 +88,7 @@ public class ResourceResolverImpl extend
     private static final String JCR_CONTENT_LEAF = "/jcr:content";
 
     /** The factory which created this resource resolver. */
-    private final ResourceResolverFactoryImpl factory;
+    private final CommonResourceResolverFactoryImpl factory;
 
     /** Closed marker. */
     private volatile boolean closed = false;
@@ -99,7 +99,7 @@ public class ResourceResolverImpl extend
     /**
      * The resource resolver context.
      */
-    public ResourceResolverImpl(final ResourceResolverFactoryImpl factory, final ResourceResolverContext ctx) {
+    public ResourceResolverImpl(final CommonResourceResolverFactoryImpl factory, final ResourceResolverContext ctx) {
         this.factory = factory;
         this.context = ctx;
     }

Modified: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/console/ResourceResolverWebConsolePlugin.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/console/ResourceResolverWebConsolePlugin.java?rev=1531301&r1=1531300&r2=1531301&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/console/ResourceResolverWebConsolePlugin.java (original)
+++ sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/console/ResourceResolverWebConsolePlugin.java Fri Oct 11 14:14:52 2013
@@ -36,7 +36,7 @@ import javax.servlet.http.HttpServletRes
 
 import org.apache.sling.api.request.ResponseUtil;
 import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.resourceresolver.impl.ResourceResolverFactoryImpl;
+import org.apache.sling.resourceresolver.impl.CommonResourceResolverFactoryImpl;
 import org.apache.sling.resourceresolver.impl.helper.URI;
 import org.apache.sling.resourceresolver.impl.helper.URIException;
 import org.apache.sling.resourceresolver.impl.mapping.MapEntries;
@@ -56,12 +56,12 @@ public class ResourceResolverWebConsoleP
     private static final String PAR_MSG = "msg";
     private static final String PAR_TEST = "test";
 
-    private final transient ResourceResolverFactoryImpl resolverFactory;
+    private final transient CommonResourceResolverFactoryImpl resolverFactory;
 
     private transient ServiceRegistration service;
 
     public ResourceResolverWebConsolePlugin(BundleContext context,
-            ResourceResolverFactoryImpl resolverFactory) {
+            CommonResourceResolverFactoryImpl resolverFactory) {
         this.resolverFactory = resolverFactory;
 
         Dictionary<String, Object> props = new Hashtable<String, Object>();

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=1531301&r1=1531300&r2=1531301&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 Fri Oct 11 14:14:52 2013
@@ -48,17 +48,20 @@ import org.mockito.Mockito;
 
 public class ResourceResolverImplTest {
 
+    private CommonResourceResolverFactoryImpl commonFactory;
+
     private ResourceResolver resResolver;
 
     private ResourceResolverFactoryImpl resFac;
 
     @Before public void setup() {
-        resFac = new ResourceResolverFactoryImpl(new ResourceResolverFactoryActivator(), /* TODO: using Bundle */ null, null);
-        resResolver = new ResourceResolverImpl(resFac, new ResourceResolverContext(false, null, null));
+        commonFactory = new CommonResourceResolverFactoryImpl(new ResourceResolverFactoryActivator());
+        resFac = new ResourceResolverFactoryImpl(commonFactory, /* TODO: using Bundle */ null, null);
+        resResolver = new ResourceResolverImpl(commonFactory, new ResourceResolverContext(false, null, null));
     }
 
     @Test public void testClose() throws Exception {
-        final ResourceResolver rr = new ResourceResolverImpl(resFac, new ResourceResolverContext(false, null, null));
+        final ResourceResolver rr = new ResourceResolverImpl(commonFactory, new ResourceResolverContext(false, null, null));
         assertTrue(rr.isLive());
         rr.close();
         assertFalse(rr.isLive());
@@ -345,7 +348,7 @@ public class ResourceResolverImplTest {
         // the resource resolver
         final List<ResourceResolver> resolvers = new ArrayList<ResourceResolver>();
         final PathBasedResourceResolverImpl resolver = new PathBasedResourceResolverImpl(
-                new ResourceResolverFactoryImpl(new ResourceResolverFactoryActivator(), /* TODO: using Bundle */ null, null) {
+                new CommonResourceResolverFactoryImpl(new ResourceResolverFactoryActivator()) {
 
                     @Override
                     public ResourceResolver getAdministrativeResourceResolver(
@@ -381,7 +384,7 @@ public class ResourceResolverImplTest {
 
         final List<ResourceResolver> resolvers = new ArrayList<ResourceResolver>();
         final PathBasedResourceResolverImpl resolver = new PathBasedResourceResolverImpl(
-                new ResourceResolverFactoryImpl(new ResourceResolverFactoryActivator(), /* TODO: using Bundle */ null, null) {
+                new CommonResourceResolverFactoryImpl(new ResourceResolverFactoryActivator()) {
 
                     @Override
                     public ResourceResolver getAdministrativeResourceResolver(
@@ -414,7 +417,7 @@ public class ResourceResolverImplTest {
         private final Map<String, Resource> resources = new HashMap<String, Resource>();
 
         public PathBasedResourceResolverImpl(
-                ResourceResolverFactoryImpl factory, ResourceResolverContext ctx) {
+                CommonResourceResolverFactoryImpl factory, ResourceResolverContext ctx) {
             super(factory, ctx);
         }
 

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=1531301&r1=1531300&r2=1531301&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 Fri Oct 11 14:14:52 2013
@@ -70,7 +70,7 @@ public class ResourceResolverMangleNames
             }
         };
 
-        final ResourceResolverFactoryImpl fac = new ResourceResolverFactoryImpl(act, null, null) {
+        final CommonResourceResolverFactoryImpl fac = new CommonResourceResolverFactoryImpl(act) {
             @Override
             public RootResourceProviderEntry getRootProviderEntry() {
                 return rrpe;