Author: cziegeler
Date: Fri Mar 7 16:18:09 2014
New Revision: 1575311
URL: http://svn.apache.org/r1575311
Log:
SLING-3441 : Avoid shared resource resolver usage
Modified:
sling/trunk/bundles/servlets/resolver/pom.xml
sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java
sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/helper/AbstractResourceCollector.java
sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/helper/LocationIterator.java
sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/SlingServletResolverTest.java
sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/helper/LocationIteratorTest.java
sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/helper/ResourceCollectorTest.java
sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/helper/ScriptSelectionTest.java
Modified: sling/trunk/bundles/servlets/resolver/pom.xml
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/servlets/resolver/pom.xml?rev=1575311&r1=1575310&r2=1575311&view=diff
==============================================================================
--- sling/trunk/bundles/servlets/resolver/pom.xml (original)
+++ sling/trunk/bundles/servlets/resolver/pom.xml Fri Mar 7 16:18:09 2014
@@ -81,7 +81,7 @@
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.api</artifactId>
- <version>2.3.0</version>
+ <version>2.4.0</version>
<scope>provided</scope>
</dependency>
<dependency>
Modified:
sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java?rev=1575311&r1=1575310&r2=1575311&view=diff
==============================================================================
---
sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java
(original)
+++
sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java
Fri Mar 7 16:18:09 2014
@@ -65,6 +65,8 @@ import org.apache.sling.api.SlingHttpSer
import org.apache.sling.api.request.RequestPathInfo;
import org.apache.sling.api.request.RequestProgressTracker;
import org.apache.sling.api.request.RequestUtil;
+import org.apache.sling.api.request.SlingRequestEvent;
+import org.apache.sling.api.request.SlingRequestListener;
import org.apache.sling.api.resource.LoginException;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceProvider;
@@ -106,7 +108,7 @@ import org.slf4j.LoggerFactory;
*/
@Component(name="org.apache.sling.servlets.resolver.SlingServletResolver",
metatype=true,
label="%servletresolver.name",
description="%servletresolver.description")
-@Service(value={ServletResolver.class, SlingScriptResolver.class,
ErrorHandler.class})
+@Service(value={ServletResolver.class, SlingScriptResolver.class,
ErrorHandler.class, SlingRequestListener.class})
@Properties({
@Property(name="service.description", value="Sling Servlet Resolver and
Error Handler"),
@Property(name="event.topics", propertyPrivate=true,
@@ -121,6 +123,7 @@ import org.slf4j.LoggerFactory;
public class SlingServletResolver
implements ServletResolver,
SlingScriptResolver,
+ SlingRequestListener,
ErrorHandler,
EventHandler {
@@ -162,7 +165,7 @@ public class SlingServletResolver
@Reference
private ResourceResolverFactory resourceResolverFactory;
- private ResourceResolver scriptResolver;
+ private ResourceResolver sharedScriptResolver;
private final Map<ServiceReference, ServletReg> servletsByReference = new
HashMap<ServiceReference, ServletReg>();
@@ -199,6 +202,11 @@ public class SlingServletResolver
private String[] executionPaths;
/**
+ * The search paths
+ */
+ private String[] searchPaths;
+
+ /**
* The default extensions
*/
private String[] defaultExtensions;
@@ -223,10 +231,11 @@ public class SlingServletResolver
LOGGER.debug("resolveServlet called for resource {}", resource);
}
+ final ResourceResolver scriptResolver =
this.getScriptResourceResolver();
Servlet servlet = null;
if ( type != null && type.length() > 0 ) {
- servlet = resolveServletInternal(request, type);
+ servlet = resolveServletInternal(request, type, scriptResolver);
}
// last resort, use the core bundle default servlet
@@ -267,7 +276,8 @@ public class SlingServletResolver
LOGGER.debug("resolveServlet called for resource {} with script
name {}", resource, scriptName);
}
- final Servlet servlet = resolveServletInternal(resource, scriptName);
+ final ResourceResolver scriptResolver =
this.getScriptResourceResolver();
+ final Servlet servlet = resolveServletInternal(resource, scriptName,
scriptResolver);
// log the servlet found
if (LOGGER.isDebugEnabled()) {
@@ -292,7 +302,8 @@ public class SlingServletResolver
LOGGER.debug("resolveServlet called for for script name {}",
scriptName);
}
- final Servlet servlet = resolveServletInternal((Resource)null,
scriptName);
+ final ResourceResolver scriptResolver =
this.getScriptResourceResolver();
+ final Servlet servlet = resolveServletInternal((Resource)null,
scriptName, scriptResolver);
// log the servlet found
if (LOGGER.isDebugEnabled()) {
@@ -309,7 +320,8 @@ public class SlingServletResolver
/** Internal method to resolve a servlet. */
private Servlet resolveServletInternal(
final Resource resource,
- final String scriptName) {
+ final String scriptName,
+ final ResourceResolver resolver) {
Servlet servlet = null;
// first check whether the type of a resource is the absolute
@@ -317,7 +329,7 @@ public class SlingServletResolver
if (scriptName.charAt(0) == '/') {
final String scriptPath = ResourceUtil.normalize(scriptName);
if ( this.isPathAllowed(scriptPath) ) {
- final Resource res =
this.scriptResolver.getResource(scriptPath);
+ final Resource res = resolver.getResource(scriptPath);
if (res != null) {
servlet = res.adaptTo(Servlet.class);
}
@@ -330,7 +342,7 @@ public class SlingServletResolver
if ( servlet == null ) {
// the resource type is not absolute, so lets go for the deep
search
final NamedScriptResourceCollector locationUtil =
NamedScriptResourceCollector.create(scriptName, resource, this.executionPaths);
- servlet = getServletInternal(locationUtil, null);
+ servlet = getServletInternal(locationUtil, null, resolver);
if (LOGGER.isDebugEnabled() && servlet != null) {
LOGGER.debug("resolveServlet returns servlet {}",
RequestUtil.getServletName(servlet));
@@ -407,6 +419,7 @@ public class SlingServletResolver
String timerName = "handleError:status=" + status;
tracker.startTimer(timerName);
+ final ResourceResolver scriptResolver =
this.getScriptResourceResolver();
try {
// find the error handler component
Resource resource = getErrorResource(request);
@@ -415,11 +428,11 @@ public class SlingServletResolver
ResourceCollector locationUtil = new
ResourceCollector(String.valueOf(status),
ServletResolverConstants.ERROR_HANDLER_PATH, resource,
this.executionPaths);
- Servlet servlet = getServletInternal(locationUtil, request);
+ Servlet servlet = getServletInternal(locationUtil, request,
scriptResolver);
// fall back to default servlet if none
if (servlet == null) {
- servlet = getDefaultErrorServlet(request, resource);
+ servlet = getDefaultErrorServlet(request, resource,
scriptResolver);
}
// set the message properties
@@ -439,9 +452,7 @@ public class SlingServletResolver
handleError(servlet, request, response);
} finally {
-
tracker.logTimer(timerName, "Error handler finished");
-
}
}
@@ -461,6 +472,7 @@ public class SlingServletResolver
String timerName = "handleError:throwable=" +
throwable.getClass().getName();
tracker.startTimer(timerName);
+ final ResourceResolver scriptResolver =
this.getScriptResourceResolver();
try {
// find the error handler component
Servlet servlet = null;
@@ -472,14 +484,14 @@ public class SlingServletResolver
ResourceCollector locationUtil = new
ResourceCollector(tClass.getSimpleName(),
ServletResolverConstants.ERROR_HANDLER_PATH, resource,
this.executionPaths);
- servlet = getServletInternal(locationUtil, request);
+ servlet = getServletInternal(locationUtil, request,
scriptResolver);
// go to the base class
tClass = tClass.getSuperclass();
}
if (servlet == null) {
- servlet = getDefaultErrorServlet(request, resource);
+ servlet = getDefaultErrorServlet(request, resource,
scriptResolver);
}
// set the message properties
@@ -492,14 +504,45 @@ public class SlingServletResolver
handleError(servlet, request, response);
} finally {
-
tracker.logTimer(timerName, "Error handler finished");
-
}
}
// ---------- internal helper ---------------------------------------------
+ private ResourceResolver getScriptResourceResolver() {
+ ResourceResolver scriptResolver = this.perThreadScriptResolver.get();
+ if ( scriptResolver == null ) {
+ // no per thread, let's use the shared one
+ synchronized ( this.sharedScriptResolver ) {
+ this.sharedScriptResolver.refresh();
+ }
+ scriptResolver = this.sharedScriptResolver;
+ }
+ return scriptResolver;
+ }
+
+ private final ThreadLocal<ResourceResolver> perThreadScriptResolver = new
ThreadLocal<ResourceResolver>();
+
+ /**
+ * @see
org.apache.sling.api.request.SlingRequestListener#onEvent(org.apache.sling.api.request.SlingRequestEvent)
+ */
+ public void onEvent(final SlingRequestEvent event) {
+ if ( event.getType() == SlingRequestEvent.EventType.EVENT_INIT ) {
+ try {
+
this.perThreadScriptResolver.set(this.sharedScriptResolver.clone(null));
+ } catch (final LoginException e) {
+ LOGGER.error("Unable to create new script resolver clone", e);
+ }
+ } else if ( event.getType() ==
SlingRequestEvent.EventType.EVENT_DESTROY ) {
+ final ResourceResolver resolver =
this.perThreadScriptResolver.get();
+ if ( resolver != null ) {
+ this.perThreadScriptResolver.remove();
+ resolver.close();
+ }
+ }
+ }
+
/**
* Returns the resource of the given request to be used as the basis for
* error handling. If the resource has not yet been set in the request
@@ -523,7 +566,8 @@ public class SlingServletResolver
* using the provided ResourceResolver
*/
private Servlet resolveServletInternal(final SlingHttpServletRequest
request,
- final String type) {
+ final String type,
+ final ResourceResolver resolver) {
Servlet servlet = null;
// first check whether the type of a resource is the absolute
@@ -531,7 +575,7 @@ public class SlingServletResolver
if (type.charAt(0) == '/') {
String scriptPath = ResourceUtil.normalize(type);
if ( this.isPathAllowed(scriptPath) ) {
- final Resource res =
this.scriptResolver.getResource(scriptPath);
+ final Resource res = resolver.getResource(scriptPath);
if (res != null) {
servlet = res.adaptTo(Servlet.class);
}
@@ -549,7 +593,7 @@ public class SlingServletResolver
if ( servlet == null ) {
// the resource type is not absolute, so lets go for the deep
search
final ResourceCollector locationUtil =
ResourceCollector.create(request, this.executionPaths, this.defaultExtensions);
- servlet = getServletInternal(locationUtil, request);
+ servlet = getServletInternal(locationUtil, request, resolver);
if (servlet != null && LOGGER.isDebugEnabled()) {
LOGGER.debug("getServlet returns servlet {}",
RequestUtil.getServletName(servlet));
@@ -580,7 +624,8 @@ public class SlingServletResolver
* such servlet willing to handle the request could be found.
*/
private Servlet getServletInternal(final AbstractResourceCollector
locationUtil,
- final SlingHttpServletRequest request) {
+ final SlingHttpServletRequest request,
+ final ResourceResolver resolver) {
final Servlet scriptServlet = (this.cache != null ?
this.cache.get(locationUtil) : null);
if (scriptServlet != null) {
if ( LOGGER.isDebugEnabled() ) {
@@ -589,7 +634,7 @@ public class SlingServletResolver
return scriptServlet;
}
- final Collection<Resource> candidates =
locationUtil.getServlets(this.scriptResolver);
+ final Collection<Resource> candidates =
locationUtil.getServlets(resolver);
if (LOGGER.isDebugEnabled()) {
if (candidates.isEmpty()) {
@@ -676,7 +721,8 @@ public class SlingServletResolver
*/
private Servlet getDefaultErrorServlet(
final SlingHttpServletRequest request,
- final Resource resource) {
+ final Resource resource,
+ final ResourceResolver resolver) {
// find a default error handler according to the resource type
// tree of the given resource
@@ -684,7 +730,7 @@ public class SlingServletResolver
ServletResolverConstants.DEFAULT_ERROR_HANDLER_NAME,
ServletResolverConstants.ERROR_HANDLER_PATH, resource,
this.executionPaths);
- final Servlet servlet = getServletInternal(locationUtil, request);
+ final Servlet servlet = getServletInternal(locationUtil, request,
resolver);
if (servlet != null) {
return servlet;
}
@@ -763,11 +809,10 @@ public class SlingServletResolver
refs = new ArrayList<ServiceReference>(pendingServlets);
pendingServlets.clear();
- this.scriptResolver =
+ this.sharedScriptResolver =
resourceResolverFactory.getAdministrativeResourceResolver(this.createAuthenticationInfo(context.getProperties()));
-
- servletResourceProviderFactory = new
ServletResourceProviderFactory(servletRoot,
- this.scriptResolver.getSearchPath());
+ this.searchPaths = this.sharedScriptResolver.getSearchPath();
+ servletResourceProviderFactory = new
ServletResourceProviderFactory(servletRoot, this.searchPaths);
// register servlets immediately from now on
this.context = context;
@@ -855,9 +900,9 @@ public class SlingServletResolver
}
}
- if (this.scriptResolver != null) {
- this.scriptResolver.close();
- this.scriptResolver = null;
+ if (this.sharedScriptResolver != null) {
+ this.sharedScriptResolver.close();
+ this.sharedScriptResolver = null;
}
this.cache = null;
@@ -998,21 +1043,19 @@ public class SlingServletResolver
// bindings values provide factory added or removed: we always
flush
flushCache = true;
} else {
- // this is a resource event
+ // this is a resource or resource provider event
// if the path of the event is a sub path of a search path
// we flush the whole cache
- String path = (String)
event.getProperty(SlingConstants.PROPERTY_PATH);
- if (path.contains(":")) {
- path = path.substring(path.indexOf(":") + 1);
- }
- final String[] searchPaths =
this.scriptResolver.getSearchPath();
- int index = 0;
- while (!flushCache && index < searchPaths.length) {
- if (path.startsWith(searchPaths[index])) {
- flushCache = true;
+ final String path = (String)
event.getProperty(SlingConstants.PROPERTY_PATH);
+ if ( path != null ) {
+ int index = 0;
+ while (!flushCache && index < searchPaths.length) {
+ if (path.startsWith(this.searchPaths[index])) {
+ flushCache = true;
+ }
+ index++;
}
- index++;
}
}
if (flushCache) {
Modified:
sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/helper/AbstractResourceCollector.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/helper/AbstractResourceCollector.java?rev=1575311&r1=1575310&r2=1575311&view=diff
==============================================================================
---
sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/helper/AbstractResourceCollector.java
(original)
+++
sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/helper/AbstractResourceCollector.java
Fri Mar 7 16:18:09 2014
@@ -64,7 +64,7 @@ public abstract class AbstractResourceCo
this.executionPaths = executionPaths;
}
- public final Collection<Resource> getServlets(ResourceResolver resolver) {
+ public final Collection<Resource> getServlets(final ResourceResolver
resolver) {
final SortedSet<Resource> resources = new TreeSet<Resource>();
final Iterator<String> locations = new LocationIterator(resourceType,
resourceSuperType,
Modified:
sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/helper/LocationIterator.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/helper/LocationIterator.java?rev=1575311&r1=1575310&r2=1575311&view=diff
==============================================================================
---
sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/helper/LocationIterator.java
(original)
+++
sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/helper/LocationIterator.java
Fri Mar 7 16:18:09 2014
@@ -240,7 +240,7 @@ public class LocationIterator implements
} else {
// if the path is relative we use the search paths
- for(final String searchPath : resourceResolver.getSearchPath()) {
+ for(final String searchPath : this.searchPath) {
final String candidatePath = searchPath + rtPath;
final Resource rtResource =
resourceResolver.getResource(candidatePath);
if ( rtResource != null && rtResource.getResourceSuperType()
!= null ) {
Modified:
sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/SlingServletResolverTest.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/SlingServletResolverTest.java?rev=1575311&r1=1575310&r2=1575311&view=diff
==============================================================================
---
sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/SlingServletResolverTest.java
(original)
+++
sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/SlingServletResolverTest.java
Fri Mar 7 16:18:09 2014
@@ -83,6 +83,16 @@ public class SlingServletResolverTest {
public <AdapterType> AdapterType adaptTo(Class<AdapterType> type) {
return null;
}
+
+ @Override
+ public ResourceResolver clone(Map<String, Object>
authenticationInfo)
+ throws LoginException {
+ throw new LoginException("MockResourceResolver can't be cloned
- excepted for this test!");
+ }
+
+ public void refresh() {
+ // nothing to do
+ }
};
mockResourceResolver.setSearchPath("/");
Modified:
sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/helper/LocationIteratorTest.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/helper/LocationIteratorTest.java?rev=1575311&r1=1575310&r2=1575311&view=diff
==============================================================================
---
sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/helper/LocationIteratorTest.java
(original)
+++
sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/helper/LocationIteratorTest.java
Fri Mar 7 16:18:09 2014
@@ -26,15 +26,28 @@ import org.apache.sling.commons.testing.
public class LocationIteratorTest extends HelperTestBase {
+ private LocationIterator getLocationIterator(final String resourceType,
+ final String resourceSuperType) {
+ return this.getLocationIterator(resourceType, resourceSuperType,
DEFAULT_SERVLET_NAME);
+ }
+
+ private LocationIterator getLocationIterator(final String resourceType,
+ final String resourceSuperType,
+ final String baseResourceType) {
+ final LocationIterator li = new LocationIterator(resourceType,
+ resourceSuperType,
+ baseResourceType,
+ this.resourceResolver);
+ return li;
+ }
+
public void testSearchPathEmpty() {
// expect path gets { "/" }
resourceResolver.setSearchPath((String[]) null);
final Resource r = request.getResource();
- LocationIterator li = new LocationIterator(r.getResourceType(),
- r.getResourceSuperType(),
- DEFAULT_SERVLET_NAME,
- resourceResolver);
+ LocationIterator li = getLocationIterator(r.getResourceType(),
+ r.getResourceSuperType());
// 1. /foo/bar
assertTrue(li.hasNext());
@@ -53,10 +66,8 @@ public class LocationIteratorTest extend
resourceResolver.setSearchPath(root0);
final Resource r = request.getResource();
- LocationIterator li = new LocationIterator(r.getResourceType(),
- r.getResourceSuperType(),
- DEFAULT_SERVLET_NAME,
- resourceResolver);
+ LocationIterator li = getLocationIterator(r.getResourceType(),
+ r.getResourceSuperType());
// 1. /apps/foo/bar
assertTrue(li.hasNext());
@@ -76,10 +87,8 @@ public class LocationIteratorTest extend
resourceResolver.setSearchPath(root0, root1);
final Resource r = request.getResource();
- LocationIterator li = new LocationIterator(r.getResourceType(),
- r.getResourceSuperType(),
- DEFAULT_SERVLET_NAME,
- resourceResolver);
+ LocationIterator li = getLocationIterator(r.getResourceType(),
+ r.getResourceSuperType());
// 1. /apps/foo/bar
assertTrue(li.hasNext());
@@ -111,10 +120,8 @@ public class LocationIteratorTest extend
resource.setResourceType(resourceType);
final Resource r = request.getResource();
- LocationIterator li = new LocationIterator(r.getResourceType(),
- r.getResourceSuperType(),
- DEFAULT_SERVLET_NAME,
- resourceResolver);
+ LocationIterator li = getLocationIterator(r.getResourceType(),
+ r.getResourceSuperType());
// 1. /foo/bar
assertTrue(li.hasNext());
@@ -138,10 +145,8 @@ public class LocationIteratorTest extend
resource.setResourceType(resourceType);
final Resource r = request.getResource();
- LocationIterator li = new LocationIterator(r.getResourceType(),
- r.getResourceSuperType(),
- DEFAULT_SERVLET_NAME,
- resourceResolver);
+ LocationIterator li = getLocationIterator(r.getResourceType(),
+ r.getResourceSuperType());
// 1. /foo/bar
assertTrue(li.hasNext());
@@ -166,10 +171,8 @@ public class LocationIteratorTest extend
resource.setResourceType(resourceType);
final Resource r = request.getResource();
- LocationIterator li = new LocationIterator(r.getResourceType(),
- r.getResourceSuperType(),
- DEFAULT_SERVLET_NAME,
- resourceResolver);
+ LocationIterator li = getLocationIterator(r.getResourceType(),
+ r.getResourceSuperType());
// 1. /foo/bar
assertTrue(li.hasNext());
@@ -197,10 +200,8 @@ public class LocationIteratorTest extend
resource.setResourceSuperType(resourceSuperType);
final Resource r = request.getResource();
- LocationIterator li = new LocationIterator(r.getResourceType(),
- r.getResourceSuperType(),
- DEFAULT_SERVLET_NAME,
- resourceResolver);
+ LocationIterator li = getLocationIterator(r.getResourceType(),
+ r.getResourceSuperType());
// 1. /foo/bar
assertTrue(li.hasNext());
@@ -228,10 +229,8 @@ public class LocationIteratorTest extend
resource.setResourceSuperType(resourceSuperType);
final Resource r = request.getResource();
- LocationIterator li = new LocationIterator(r.getResourceType(),
- r.getResourceSuperType(),
- DEFAULT_SERVLET_NAME,
- resourceResolver);
+ LocationIterator li = getLocationIterator(r.getResourceType(),
+ r.getResourceSuperType());
// 1. /apps/foo/bar
assertTrue(li.hasNext());
@@ -260,10 +259,8 @@ public class LocationIteratorTest extend
resource.setResourceSuperType(resourceSuperType);
final Resource r = request.getResource();
- LocationIterator li = new LocationIterator(r.getResourceType(),
- r.getResourceSuperType(),
- DEFAULT_SERVLET_NAME,
- resourceResolver);
+ LocationIterator li = getLocationIterator(r.getResourceType(),
+ r.getResourceSuperType());
// 1. /apps/foo/bar
assertTrue(li.hasNext());
@@ -308,10 +305,8 @@ public class LocationIteratorTest extend
resource.setResourceSuperType(resourceSuperType);
final Resource r = request.getResource();
- LocationIterator li = new LocationIterator(r.getResourceType(),
- r.getResourceSuperType(),
- DEFAULT_SERVLET_NAME,
- resourceResolver);
+ LocationIterator li = getLocationIterator(r.getResourceType(),
+ r.getResourceSuperType());
// 1. /foo/bar
assertTrue(li.hasNext());
@@ -344,10 +339,8 @@ public class LocationIteratorTest extend
resource.setResourceSuperType(resourceSuperType);
final Resource r = request.getResource();
- LocationIterator li = new LocationIterator(r.getResourceType(),
- r.getResourceSuperType(),
- DEFAULT_SERVLET_NAME,
- resourceResolver);
+ LocationIterator li = getLocationIterator(r.getResourceType(),
+ r.getResourceSuperType());
// 1. /foo/bar
assertTrue(li.hasNext());
@@ -381,10 +374,8 @@ public class LocationIteratorTest extend
resource.setResourceSuperType(resourceSuperType);
final Resource r = request.getResource();
- LocationIterator li = new LocationIterator(r.getResourceType(),
- r.getResourceSuperType(),
- DEFAULT_SERVLET_NAME,
- resourceResolver);
+ LocationIterator li = getLocationIterator(r.getResourceType(),
+ r.getResourceSuperType());
// 1. /foo/bar
assertTrue(li.hasNext());
@@ -414,10 +405,9 @@ public class LocationIteratorTest extend
String root0 = "/apps";
String root1 = "/libs";
resourceResolver.setSearchPath(root0, root1);
- LocationIterator li = new LocationIterator("",
+ LocationIterator li = getLocationIterator("",
null,
- "",
- resourceResolver);
+ "");
assertTrue(li.hasNext());
assertEquals("/apps/", li.next());
assertTrue(li.hasNext());
@@ -429,10 +419,8 @@ public class LocationIteratorTest extend
String root0 = "/apps";
String root1 = "/libs";
resourceResolver.setSearchPath(root0, root1);
- LocationIterator li = new LocationIterator("a/b",
- null,
- DEFAULT_SERVLET_NAME,
- resourceResolver);
+ LocationIterator li = getLocationIterator("a/b",
+ null);
assertTrue(li.hasNext());
assertEquals(root0 + "/a/b", li.next());
assertTrue(li.hasNext());
@@ -448,10 +436,8 @@ public class LocationIteratorTest extend
String root0 = "/apps";
String root1 = "/libs";
resourceResolver.setSearchPath(root0, root1);
- LocationIterator li = new LocationIterator("a/b",
- "c/d",
- DEFAULT_SERVLET_NAME,
- resourceResolver);
+ LocationIterator li = getLocationIterator("a/b",
+ "c/d");
assertTrue(li.hasNext());
assertEquals(root0 + "/a/b", li.next());
assertTrue(li.hasNext());
@@ -485,10 +471,8 @@ public class LocationIteratorTest extend
resourceType, resourceType);
resourceResolver.addResource(resource3);
- LocationIterator li = new LocationIterator(resourceType,
- resourceSuperType,
- DEFAULT_SERVLET_NAME,
- resourceResolver);
+ LocationIterator li = getLocationIterator(resourceType,
+ resourceSuperType);
// 1. /libs/foo/bar
assertTrue(li.hasNext());
Modified:
sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/helper/ResourceCollectorTest.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/helper/ResourceCollectorTest.java?rev=1575311&r1=1575310&r2=1575311&view=diff
==============================================================================
---
sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/helper/ResourceCollectorTest.java
(original)
+++
sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/helper/ResourceCollectorTest.java
Fri Mar 7 16:18:09 2014
@@ -271,7 +271,7 @@ public class ResourceCollectorTest exten
}
ResourceCollector lu = ResourceCollector.create(request, null, new
String[] {"html"});
- Collection<Resource> res =
lu.getServlets(request.getResource().getResourceResolver());
+ Collection<Resource> res =
lu.getServlets(request.getResourceResolver());
Iterator<Resource> rIter = res.iterator();
for (int index : indices) {
Modified:
sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/helper/ScriptSelectionTest.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/helper/ScriptSelectionTest.java?rev=1575311&r1=1575310&r2=1575311&view=diff
==============================================================================
---
sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/helper/ScriptSelectionTest.java
(original)
+++
sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/helper/ScriptSelectionTest.java
Fri Mar 7 16:18:09 2014
@@ -69,7 +69,7 @@ public class ScriptSelectionTest extends
// Create mock request and get scripts from ResourceCollector
final MockSlingHttpServletRequest req = makeRequest(method, selectors,
extension);
final ResourceCollector u = ResourceCollector.create(req, null, new
String[] {"html"});
- final Collection<Resource> s =
u.getServlets(req.getResource().getResourceResolver());
+ final Collection<Resource> s =
u.getServlets(req.getResourceResolver());
if(expectedScript == null) {
assertFalse("No script must be found", s.iterator().hasNext());