in src/main/java/org/apache/sling/caconfig/resource/impl/def/DefaultConfigurationResourceResolvingStrategy.java [311:342]
private Iterator<Resource> getResourceInheritanceChainInternal(
final Collection<String> bucketNames,
final String configName,
final Iterator<String> paths,
final ResourceResolver resourceResolver) {
// find all matching items among all configured paths
Iterator<Resource> matchingResources = IteratorUtils.transformedIterator(paths, new Transformer() {
@Override
public Object transform(Object input) {
String path = (String) input;
for (String bucketName : bucketNames) {
final String name = bucketName + "/" + configName;
final String configPath = buildResourcePath(path, name);
Resource resource = resourceResolver.getResource(configPath);
if (resource != null) {
log.trace("+ Found matching config resource for inheritance chain: {}", configPath);
return resource;
} else {
log.trace("- No matching config resource for inheritance chain: {}", configPath);
}
}
return null;
}
});
Iterator<Resource> result =
IteratorUtils.filteredIterator(matchingResources, PredicateUtils.notNullPredicate());
if (result.hasNext()) {
return result;
}
return null;
}