final String localePrefix = getLocalePrefixForLocateResource();
if(getResourceLoaderCache().containsResource(resourceName, libraryName, contentType, localePrefix))
{
ResourceValue resourceValue = getResourceLoaderCache().getResource(resourceName, libraryName, contentType, localePrefix);
resource = new ResourceImpl(resourceValue.getResourceMeta(), resourceValue.getResourceLoader(),
getResourceHandlerSupport(), contentType);
}
else
{
for (ResourceLoader loader : getResourceHandlerSupport()
.getResourceLoaders())
{
ResourceMeta resourceMeta = deriveResourceMeta(loader,
resourceName, libraryName);
if (resourceMeta != null)
{
resource = new ResourceImpl(resourceMeta, loader,
getResourceHandlerSupport(), contentType);
getResourceLoaderCache().putResource(resourceName, libraryName, contentType, localePrefix, resourceMeta, loader);
break;
}