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 2014/01/30 15:24:23 UTC

svn commit: r1562837 - in /sling/trunk/testing/resourceresolver-mock/src/main/java/org/apache/sling/testing/resourceresolver: MockResourceResolver.java MockResourceResolverFactory.java MockResourceResolverFactoryOptions.java

Author: cziegeler
Date: Thu Jan 30 14:24:23 2014
New Revision: 1562837

URL: http://svn.apache.org/r1562837
Log:
Refactoring and javadoc updates

Added:
    sling/trunk/testing/resourceresolver-mock/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolverFactoryOptions.java   (with props)
Modified:
    sling/trunk/testing/resourceresolver-mock/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolver.java
    sling/trunk/testing/resourceresolver-mock/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolverFactory.java

Modified: sling/trunk/testing/resourceresolver-mock/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolver.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/resourceresolver-mock/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolver.java?rev=1562837&r1=1562836&r2=1562837&view=diff
==============================================================================
--- sling/trunk/testing/resourceresolver-mock/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolver.java (original)
+++ sling/trunk/testing/resourceresolver-mock/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolver.java Thu Jan 30 14:24:23 2014
@@ -36,7 +36,6 @@ import org.apache.sling.api.resource.Per
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.osgi.service.event.Event;
-import org.osgi.service.event.EventAdmin;
 
 public class MockResourceResolver implements ResourceResolver {
 
@@ -46,11 +45,11 @@ public class MockResourceResolver implem
 
     private final Set<String> deletedResources = new HashSet<String>();
 
-    private final EventAdmin eventAdmin;
+    private final MockResourceResolverFactoryOptions options;
 
-    public MockResourceResolver(final EventAdmin eventAdmin,
+    public MockResourceResolver(final MockResourceResolverFactoryOptions options,
             final Map<String, Map<String, Object>> resources) {
-        this.eventAdmin = eventAdmin;
+        this.options = options;
         this.resources = resources;
     }
 
@@ -130,7 +129,7 @@ public class MockResourceResolver implem
 
     @Override
     public String[] getSearchPath() {
-        return new String[] {"/apps", "/libs"};
+        return this.options.getSearchPaths();
     }
 
     @Override
@@ -270,25 +269,25 @@ public class MockResourceResolver implem
     public void commit() throws PersistenceException {
         synchronized ( this.resources ) {
             for(final String path : this.deletedResources ) {
-                if ( this.resources.remove(path) != null && this.eventAdmin != null ) {
+                if ( this.resources.remove(path) != null && this.options.getEventAdmin() != null ) {
                     final Map<String, Object> props = new HashMap<String, Object>();
                     props.put(SlingConstants.PROPERTY_PATH, path);
                     final Event e = new Event(SlingConstants.TOPIC_RESOURCE_REMOVED, props);
-                    this.eventAdmin.sendEvent(e);
+                    this.options.getEventAdmin().sendEvent(e);
                 }
                 this.temporaryResources.remove(path);
             }
             for(final String path : this.temporaryResources.keySet() ) {
                 final boolean changed = this.resources.containsKey(path);
                 this.resources.put(path, this.temporaryResources.get(path));
-                if ( this.eventAdmin != null ) {
+                if ( this.options.getEventAdmin() != null ) {
                     final Map<String, Object> props = new HashMap<String, Object>();
                     props.put(SlingConstants.PROPERTY_PATH, path);
                     if ( this.resources.get(path).get(ResourceResolver.PROPERTY_RESOURCE_TYPE) != null ) {
                         props.put(SlingConstants.PROPERTY_RESOURCE_TYPE, this.resources.get(path).get(ResourceResolver.PROPERTY_RESOURCE_TYPE));
                     }
                     final Event e = new Event(changed ? SlingConstants.TOPIC_RESOURCE_CHANGED : SlingConstants.TOPIC_RESOURCE_ADDED, props);
-                    this.eventAdmin.sendEvent(e);
+                    this.options.getEventAdmin().sendEvent(e);
                 }
             }
         }

Modified: sling/trunk/testing/resourceresolver-mock/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolverFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/resourceresolver-mock/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolverFactory.java?rev=1562837&r1=1562836&r2=1562837&view=diff
==============================================================================
--- sling/trunk/testing/resourceresolver-mock/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolverFactory.java (original)
+++ sling/trunk/testing/resourceresolver-mock/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolverFactory.java Thu Jan 30 14:24:23 2014
@@ -27,36 +27,54 @@ import org.apache.sling.api.resource.Res
 import org.apache.sling.api.resource.ResourceResolverFactory;
 import org.osgi.service.event.EventAdmin;
 
+/**
+ * Simple resource resolver factory
+ */
 public class MockResourceResolverFactory implements ResourceResolverFactory {
 
+    /** We use a linked hash map to preserve creation order. */
     private final Map<String, Map<String, Object>> resources = new LinkedHashMap<String, Map<String, Object>>();
 
-    private final EventAdmin eventAdmin;
+    private final MockResourceResolverFactoryOptions options;
 
+    /**
+     * Create a new resource resolver factory
+     * @param eventAdmin All resource events are sent to this event admin
+     */
     public MockResourceResolverFactory(final EventAdmin eventAdmin) {
-        this.eventAdmin = eventAdmin;
-        resources.put("/", new HashMap<String, Object>());
+        this(new MockResourceResolverFactoryOptions().setEventAdmin(eventAdmin));
     }
 
+    /**
+     * Create a new resource resolver factory.
+     */
     public MockResourceResolverFactory() {
-        this(null);
+        this(new MockResourceResolverFactoryOptions());
+    }
+
+    /**
+     * Create a new resource resolver factory.
+     */
+    public MockResourceResolverFactory(final MockResourceResolverFactoryOptions options) {
+        this.options = options;
+        resources.put("/", new HashMap<String, Object>());
     }
 
     @Override
     public ResourceResolver getResourceResolver(
             final Map<String, Object> authenticationInfo) throws LoginException {
-        return new MockResourceResolver(this.eventAdmin, resources);
+        return new MockResourceResolver(options, resources);
     }
 
     @Override
     public ResourceResolver getAdministrativeResourceResolver(
             final Map<String, Object> authenticationInfo) throws LoginException {
-        return new MockResourceResolver(this.eventAdmin, resources);
+        return new MockResourceResolver(options, resources);
     }
 
     @Override
     public ResourceResolver getServiceResourceResolver(
             Map<String, Object> authenticationInfo) throws LoginException {
-        return new MockResourceResolver(this.eventAdmin, resources);
+        return new MockResourceResolver(options, resources);
     }
 }

Added: sling/trunk/testing/resourceresolver-mock/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolverFactoryOptions.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/resourceresolver-mock/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolverFactoryOptions.java?rev=1562837&view=auto
==============================================================================
--- sling/trunk/testing/resourceresolver-mock/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolverFactoryOptions.java (added)
+++ sling/trunk/testing/resourceresolver-mock/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolverFactoryOptions.java Thu Jan 30 14:24:23 2014
@@ -0,0 +1,52 @@
+/*
+ * 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.testing.resourceresolver;
+
+import org.osgi.service.event.EventAdmin;
+
+/**
+ * Options for the factory
+ */
+public class MockResourceResolverFactoryOptions {
+
+    private EventAdmin eventAdmin;
+
+    private String[] searchPaths = new String[] {"/apps", "/libs"};
+
+    public EventAdmin getEventAdmin() {
+        return eventAdmin;
+    }
+
+    public MockResourceResolverFactoryOptions setEventAdmin(EventAdmin eventAdmin) {
+        this.eventAdmin = eventAdmin;
+        return this;
+    }
+
+    public String[] getSearchPaths() {
+        return searchPaths;
+    }
+
+    public MockResourceResolverFactoryOptions setSearchPaths(String[] searchPaths) {
+        if ( searchPaths == null ) {
+            searchPaths = new String[] {};
+        }
+        this.searchPaths = searchPaths;
+        return this;
+    }
+}

Propchange: sling/trunk/testing/resourceresolver-mock/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolverFactoryOptions.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sling/trunk/testing/resourceresolver-mock/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolverFactoryOptions.java
------------------------------------------------------------------------------
    svn:keywords = author date id revision rev url

Propchange: sling/trunk/testing/resourceresolver-mock/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolverFactoryOptions.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain