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:
@@ -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());
|
||||
|
||||
@@ -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.");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user