in extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/jsf/resources/deprecated/SourceResourceHandler.java [113:209]
protected ResourceMeta deriveResourceMeta(ResourceLoader resourceLoader,
String resourceName, String libraryName) {
String localePrefix = getLocalePrefixForLocateResource();
String resourceVersion = null;
String libraryVersion = null;
ResourceMeta resourceId = null;
//1. Try to locate resource in a localized path
if (localePrefix != null) {
if (null != libraryName) {
String pathToLib = localePrefix + '/' + libraryName;
libraryVersion = resourceLoader.getLibraryVersion(pathToLib);
if (null != libraryVersion) {
String pathToResource = localePrefix + '/'
+ libraryName + '/' + libraryVersion + '/'
+ resourceName;
resourceVersion = resourceLoader
.getResourceVersion(pathToResource);
} else {
String pathToResource = localePrefix + '/'
+ libraryName + '/' + resourceName;
resourceVersion = resourceLoader
.getResourceVersion(pathToResource);
}
if (!(resourceVersion != null && ResourceLoader.VERSION_INVALID.equals(resourceVersion))) {
resourceId = resourceLoader.createResourceMeta(localePrefix, libraryName,
libraryVersion, resourceName, resourceVersion);
}
} else {
resourceVersion = resourceLoader
.getResourceVersion(localePrefix + '/' + resourceName);
if (!(resourceVersion != null && ResourceLoader.VERSION_INVALID.equals(resourceVersion))) {
resourceId = resourceLoader.createResourceMeta(localePrefix, null, null,
resourceName, resourceVersion);
} else if (resourceVersion == ResourceLoader.VERSION_INVALID) {
resourceId = resourceLoader.createResourceMeta(null, libraryName,
null, resourceName, null);
}
}
if (resourceId != null) {
URL url = resourceLoader.getResourceURL(resourceId);
if (url == null) {
resourceId = null;
}
}
}
//2. Try to localize resource in a non localized path
if (resourceId == null) {
if (null != libraryName) {
libraryVersion = resourceLoader.getLibraryVersion(libraryName);
if (null != libraryVersion) {
String pathToResource = (libraryName + '/' + libraryVersion
+ '/' + resourceName);
resourceVersion = resourceLoader
.getResourceVersion(pathToResource);
} else {
String pathToResource = (libraryName + '/'
+ resourceName);
resourceVersion = resourceLoader
.getResourceVersion(pathToResource);
}
if (!(resourceVersion != null && ResourceLoader.VERSION_INVALID.equals(resourceVersion))) {
resourceId = resourceLoader.createResourceMeta(null, libraryName,
libraryVersion, resourceName, resourceVersion);
} else if (resourceVersion == ResourceLoader.VERSION_INVALID) {
resourceId = resourceLoader.createResourceMeta(null, libraryName,
libraryVersion, resourceName, null);
}
} else {
resourceVersion = resourceLoader
.getResourceVersion(resourceName);
if (!(resourceVersion != null && ResourceLoader.VERSION_INVALID.equals(resourceVersion))) {
resourceId = resourceLoader.createResourceMeta(null, null, null,
resourceName, resourceVersion);
} else if (resourceVersion == ResourceLoader.VERSION_INVALID) {
resourceId = resourceLoader.createResourceMeta(null, null,
null, resourceName, null);
}
}
if (resourceId != null) {
URL url = resourceLoader.getResourceURL(resourceId);
if (url == null) {
resourceId = null;
}
}
}
return resourceId;
}