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