|
|
@ -54,13 +54,11 @@ public class ResourceProperties implements ResourceLoaderAware {
|
|
|
|
SERVLET_RESOURCE_LOCATIONS.length, CLASSPATH_RESOURCE_LOCATIONS.length);
|
|
|
|
SERVLET_RESOURCE_LOCATIONS.length, CLASSPATH_RESOURCE_LOCATIONS.length);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private static final String[] STATIC_INDEX_HTML_RESOURCES;
|
|
|
|
/**
|
|
|
|
static {
|
|
|
|
* Locations of static resources. Defaults to classpath:[/META-INF/resources/,
|
|
|
|
STATIC_INDEX_HTML_RESOURCES = new String[RESOURCE_LOCATIONS.length];
|
|
|
|
* /resources/, /static/, /public/] plus context:/ (the root of the servlet context).
|
|
|
|
for (int i = 0; i < STATIC_INDEX_HTML_RESOURCES.length; i++) {
|
|
|
|
*/
|
|
|
|
STATIC_INDEX_HTML_RESOURCES[i] = RESOURCE_LOCATIONS[i] + "index.html";
|
|
|
|
private String[] staticLocations = RESOURCE_LOCATIONS;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Cache period for the resources served by the resource handler, in seconds.
|
|
|
|
* Cache period for the resources served by the resource handler, in seconds.
|
|
|
@ -74,12 +72,6 @@ public class ResourceProperties implements ResourceLoaderAware {
|
|
|
|
|
|
|
|
|
|
|
|
private final Chain chain = new Chain();
|
|
|
|
private final Chain chain = new Chain();
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* Locations of static resources. Defaults to classpath:[/META-INF/resources/,
|
|
|
|
|
|
|
|
* /resources/, /static/, /public/] plus context:/ (the root of the servlet context).
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
private String[] staticLocations = RESOURCE_LOCATIONS;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private ResourceLoader resourceLoader;
|
|
|
|
private ResourceLoader resourceLoader;
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
@ -87,6 +79,54 @@ public class ResourceProperties implements ResourceLoaderAware {
|
|
|
|
this.resourceLoader = resourceLoader;
|
|
|
|
this.resourceLoader = resourceLoader;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public String[] getStaticLocations() {
|
|
|
|
|
|
|
|
return this.staticLocations;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void setStaticLocations(String[] staticLocations) {
|
|
|
|
|
|
|
|
this.staticLocations = staticLocations;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public Resource getWelcomePage() {
|
|
|
|
|
|
|
|
for (String location : getStaticWelcomePageLocations()) {
|
|
|
|
|
|
|
|
Resource resource = this.resourceLoader.getResource(location);
|
|
|
|
|
|
|
|
if (resource.exists()) {
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
resource.getURL();
|
|
|
|
|
|
|
|
return resource;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
catch (IOException ex) {
|
|
|
|
|
|
|
|
// Ignore
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private String[] getStaticWelcomePageLocations() {
|
|
|
|
|
|
|
|
String[] result = new String[this.staticLocations.length];
|
|
|
|
|
|
|
|
for (int i = 0; i < result.length; i++) {
|
|
|
|
|
|
|
|
String location = this.staticLocations[i];
|
|
|
|
|
|
|
|
if (!location.endsWith("/")) {
|
|
|
|
|
|
|
|
location = location + "/";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
result[i] = location + "index.html";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public List<Resource> getFaviconLocations() {
|
|
|
|
|
|
|
|
List<Resource> locations = new ArrayList<Resource>(
|
|
|
|
|
|
|
|
CLASSPATH_RESOURCE_LOCATIONS.length + 1);
|
|
|
|
|
|
|
|
if (this.resourceLoader != null) {
|
|
|
|
|
|
|
|
for (String location : CLASSPATH_RESOURCE_LOCATIONS) {
|
|
|
|
|
|
|
|
locations.add(this.resourceLoader.getResource(location));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
locations.add(new ClassPathResource("/"));
|
|
|
|
|
|
|
|
return Collections.unmodifiableList(locations);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public Integer getCachePeriod() {
|
|
|
|
public Integer getCachePeriod() {
|
|
|
|
return this.cachePeriod;
|
|
|
|
return this.cachePeriod;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -258,52 +298,4 @@ public class ResourceProperties implements ResourceLoaderAware {
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public String[] getStaticLocations() {
|
|
|
|
|
|
|
|
return this.staticLocations;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void setStaticLocations(String[] staticLocations) {
|
|
|
|
|
|
|
|
this.staticLocations = staticLocations;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private String[] getStaticWelcomePageLocations() {
|
|
|
|
|
|
|
|
String[] result = new String[this.staticLocations.length];
|
|
|
|
|
|
|
|
for (int i = 0; i < result.length; i++) {
|
|
|
|
|
|
|
|
String location = this.staticLocations[i];
|
|
|
|
|
|
|
|
if (!location.endsWith("/")) {
|
|
|
|
|
|
|
|
location = location + "/";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
result[i] = location + "index.html";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public List<Resource> getFaviconLocations() {
|
|
|
|
|
|
|
|
List<Resource> locations = new ArrayList<Resource>(
|
|
|
|
|
|
|
|
CLASSPATH_RESOURCE_LOCATIONS.length + 1);
|
|
|
|
|
|
|
|
if (this.resourceLoader != null) {
|
|
|
|
|
|
|
|
for (String location : CLASSPATH_RESOURCE_LOCATIONS) {
|
|
|
|
|
|
|
|
locations.add(this.resourceLoader.getResource(location));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
locations.add(new ClassPathResource("/"));
|
|
|
|
|
|
|
|
return Collections.unmodifiableList(locations);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public Resource getWelcomePage() {
|
|
|
|
|
|
|
|
for (String location : getStaticWelcomePageLocations()) {
|
|
|
|
|
|
|
|
Resource resource = this.resourceLoader.getResource(location);
|
|
|
|
|
|
|
|
if (resource.exists()) {
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
resource.getURL();
|
|
|
|
|
|
|
|
return resource;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
catch (IOException ex) {
|
|
|
|
|
|
|
|
// Ignore
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|