Author: justin
Date: Tue Aug 28 18:34:48 2012
New Revision: 1378260

URL: http://svn.apache.org/viewvc?rev=1378260&view=rev
Log:
SLING-2583 - introducing MapConfigurationProvider interface

Added:
    
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/mapping/MapConfigurationProvider.java
   (with props)
Modified:
    
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/mapping/MapEntries.java

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=1378260&r1=1378259&r2=1378260&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
 Tue Aug 28 18:34:48 2012
@@ -27,6 +27,7 @@ import org.apache.sling.api.resource.Res
 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;
@@ -44,7 +45,7 @@ import org.slf4j.LoggerFactory;
  * </ul>
  *
  */
-public class ResourceResolverFactoryImpl implements ResourceResolverFactory {
+public class ResourceResolverFactoryImpl implements ResourceResolverFactory, 
MapConfigurationProvider {
 
     /** Helper for the resource resolver. */
     private MapEntries mapEntries = MapEntries.EMPTY;

Added: 
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/mapping/MapConfigurationProvider.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/mapping/MapConfigurationProvider.java?rev=1378260&view=auto
==============================================================================
--- 
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/mapping/MapConfigurationProvider.java
 (added)
+++ 
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/mapping/MapConfigurationProvider.java
 Tue Aug 28 18:34:48 2012
@@ -0,0 +1,38 @@
+/*
+ * 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.mapping;
+
+import java.util.Map;
+
+import org.apache.sling.api.resource.ResourceResolverFactory;
+
+/**
+ * Internal interface representing the additional methods
+ * MapEntries needs from the ResourceResolverFactory.
+ * 
+ * Exists primarily to facilitate mocking of the ResourceResolverFactory
+ * when testing MapEntries.
+ */
+public interface MapConfigurationProvider extends ResourceResolverFactory {
+
+    String getMapRoot();
+
+    Map<?, ?> getVirtualURLMap();
+
+    Mapping[] getMappings();
+
+}

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

Propchange: 
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/mapping/MapConfigurationProvider.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision Rev URL

Modified: 
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/mapping/MapEntries.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/mapping/MapEntries.java?rev=1378260&r1=1378259&r2=1378260&view=diff
==============================================================================
--- 
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/mapping/MapEntries.java
 (original)
+++ 
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/mapping/MapEntries.java
 Tue Aug 28 18:34:48 2012
@@ -84,7 +84,7 @@ public class MapEntries implements Event
     /** default log */
     private final Logger log = LoggerFactory.getLogger(getClass());
 
-    private ResourceResolverFactoryImpl factory;
+    private MapConfigurationProvider factory;
 
     private volatile ResourceResolver resolver;
 
@@ -118,7 +118,7 @@ public class MapEntries implements Event
     }
 
     @SuppressWarnings("unchecked")
-    public MapEntries(final ResourceResolverFactoryImpl factory, final 
BundleContext bundleContext, final EventAdmin eventAdmin)
+    public MapEntries(final MapConfigurationProvider factory, final 
BundleContext bundleContext, final EventAdmin eventAdmin)
                     throws LoginException {
         this.resolver = factory.getAdministrativeResourceResolver(null);
         this.factory = factory;
@@ -162,7 +162,7 @@ public class MapEntries implements Event
      * to trigger a call to doInit. Terminates when the resolver has been
      * null-ed after having been triggered.
      */
-    void init() {
+    private void init() {
         while (this.resolver != null) {
             try {
                 this.initTrigger.acquire();
@@ -175,16 +175,16 @@ public class MapEntries implements Event
     }
 
     /**
-     * Actual initializer. Guards itself agains concurrent use by using a
+     * Actual initializer. Guards itself against concurrent use by using a
      * ReentrantLock. Does nothing if the resource resolver has already been
      * null-ed.
      */
-    private void doInit() {
+    protected void doInit() {
 
         this.initializing.lock();
         try {
             final ResourceResolver resolver = this.resolver;
-            final ResourceResolverFactoryImpl factory = this.factory;
+            final MapConfigurationProvider factory = this.factory;
             if (resolver == null || factory == null) {
                 return;
             }
@@ -551,7 +551,7 @@ public class MapEntries implements Event
         return result;
     }
 
-    private void loadConfiguration(final ResourceResolverFactoryImpl factory, 
final List<MapEntry> entries) {
+    private void loadConfiguration(final MapConfigurationProvider factory, 
final List<MapEntry> entries) {
         // virtual uris
         final Map<?, ?> virtuals = factory.getVirtualURLMap();
         if (virtuals != null) {
@@ -592,7 +592,7 @@ public class MapEntries implements Event
         }
     }
 
-    private void loadMapConfiguration(final ResourceResolverFactoryImpl 
factory, final Map<String, MapEntry> entries) {
+    private void loadMapConfiguration(final MapConfigurationProvider factory, 
final Map<String, MapEntry> entries) {
         // URL Mappings
         final Mapping[] mappings = factory.getMappings();
         if (mappings != null) {


Reply via email to