提交 4df05d1f 编写于 作者: R Rossen Stoyanchev

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
上级 d9f4016c
......@@ -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.");
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册