in src/main/java/org/apache/sling/scripting/sightly/js/impl/use/DependencyResolver.java [130:166]
private Resource getHierarchyResource(@NotNull Resource caller, @NotNull Resource driver) {
if (caller.getPath().equals(driver.getPath())) {
return caller;
}
if (isResourceType(caller, driver)) {
return caller;
}
if (isResourceType(driver, caller)) {
return driver;
}
int callerOverlayIndex = 0;
int driverOverlayIndex = 0;
String callerRelativePath = null;
String driverRelativePath = null;
int spIndex = 0;
for (String sp : scriptingResourceResolver.getSearchPath()) {
if (caller.getPath().startsWith(sp)) {
callerRelativePath = caller.getPath().substring(sp.length());
callerOverlayIndex = spIndex;
}
if (driver.getPath().startsWith(sp)) {
driverRelativePath = driver.getPath().substring(sp.length());
driverOverlayIndex = spIndex;
}
if (callerRelativePath != null && driverRelativePath != null) {
break;
}
spIndex++;
}
if (callerRelativePath != null && callerRelativePath.equals(driverRelativePath)) {
if (callerOverlayIndex < driverOverlayIndex) {
return caller;
}
return driver;
}
return null;
}