Description
Depending on the ResourceLoader used, testing the existence of a resource is
somewhat expensive, as the resource has to be opened to test for its existence.
I'm proposing the following changes:
1.
Add a new method to org.apache.velocity.runtime.resource.loader.ResourceLoader:
public boolean resourceExists(String source) {
InputStream is = null;
try {
is = resourceLoader.getResourceStream(resourceName);
if (is != null)
} catch (ResourceNotFoundException e) {
} finally {
if (is != null) {
try
catch (Exception e) {
}
}
}
return false;
}
This method keeps compatibility with all current ResourceLoaders, and can be overriden by subclasses.
2. org.apache.velocity.runtime.resource.ResourceManagerImpl
Modify the String getLoaderNameForResource(String resourceName) method to use
the new ResourceLoader.resourceExists(String) method.