@Override public URL getResource(String name) { final String realResourceName = getAlternativeResourceName(name); for (ClassLoader classloader : classLoaders) { final URL url = classloader.getResource(realResourceName); if (url != null) { return url; } } return null; }
@Override public Enumeration<URL> getResources(String name) throws IOException { return new ResourcesEnumeration(getAlternativeResourceName(name), classLoaders); }
@Override public InputStream getResourceAsStream(String name) { final String realResourceName = getAlternativeResourceName(name); for (ClassLoader classloader : classLoaders) { final InputStream inputStream = classloader.getResourceAsStream(realResourceName); if (inputStream != null) { return inputStream; } } if (!name.equals(realResourceName)) { //looks like we didn't find anything with the alternate resourcename. Lets fall back to the //original resource name! log.debug("No resource found with alternate resourceName '{}'. Falling back to original name '{}'.", realResourceName, name); for (ClassLoader classloader : classLoaders) { final InputStream inputStream = classloader.getResourceAsStream(name); if (inputStream != null) { return inputStream; } } } return null; }