Remove assertion on number of resource locations

With the new ResourceResolver abstraction and resource resolver chain
in 4.1, the assumption that resources are found by checking for the URL
path under the configured locations is no longer accurate.

A custom ResourceResolver could find resources in ways that don't
depend on a list of locations.

Issuse: SPR-12133
This commit is contained in:
Rossen Stoyanchev
2014-08-29 11:29:49 -04:00
parent d9f4016c35
commit 4df05d1f98
2 changed files with 7 additions and 6 deletions

View File

@@ -141,7 +141,6 @@ public class ResourceHandlerRegistration {
* Returns a {@link ResourceHttpRequestHandler} instance.
*/
protected ResourceHttpRequestHandler getRequestHandler() {
Assert.isTrue(!CollectionUtils.isEmpty(locations), "At least one location is required for resource handling.");
ResourceHttpRequestHandler handler = new ResourceHttpRequestHandler();
if (this.resourceChainRegistration != null) {
handler.setResourceResolvers(this.resourceChainRegistration.getResourceResolvers());

View File

@@ -86,11 +86,11 @@ public class ResourceHttpRequestHandler extends WebContentGenerator implements H
private static final String CONTENT_ENCODING = "Content-Encoding";
private List<Resource> locations;
private final List<Resource> locations = new ArrayList<Resource>(4);
private final List<ResourceResolver> resourceResolvers = new ArrayList<ResourceResolver>();
private final List<ResourceResolver> resourceResolvers = new ArrayList<ResourceResolver>(4);
private final List<ResourceTransformer> resourceTransformers = new ArrayList<ResourceTransformer>();
private final List<ResourceTransformer> resourceTransformers = new ArrayList<ResourceTransformer>(4);
public ResourceHttpRequestHandler() {
@@ -105,7 +105,8 @@ public class ResourceHttpRequestHandler extends WebContentGenerator implements H
*/
public void setLocations(List<Resource> locations) {
Assert.notEmpty(locations, "Locations list must not be empty");
this.locations = locations;
this.locations.clear();
this.locations.addAll(locations);
}
public List<Resource> getLocations() {
@@ -154,7 +155,8 @@ public class ResourceHttpRequestHandler extends WebContentGenerator implements H
@Override
public void afterPropertiesSet() throws Exception {
if (logger.isWarnEnabled() && CollectionUtils.isEmpty(this.locations)) {
logger.warn("Locations list is empty. No resources will be served");
logger.warn("Locations list is empty. No resources will be served unless a " +
"custom ResourceResolver is configured as an alternative to PathResourceResolver.");
}
}