in src/main/java/org/apache/sling/graphql/schema/aggregator/impl/DefaultSchemaAggregator.java [161:181]
private void addWithRequirements(Map<PartialInfo, Partial> providers, Set<Partial> addTo, Set<String> missing, Partial p, int recursionLevel) {
// simplistic cycle detection
if(recursionLevel > MAX_REQUIREMENTS_RECURSION_LEVEL) {
throw new RuntimeException(String.format(
"Requirements depth over %d, requirements cycle suspected at partial %s",
MAX_REQUIREMENTS_RECURSION_LEVEL,
p.getPartialInfo()
));
}
addTo.add(p);
for(PartialInfo req : p.getRequiredPartialNames()) {
final Partial preq = providers.get(req);
if(preq == null) {
missing.add(req.toString());
} else {
addWithRequirements(providers, addTo, missing, preq, recursionLevel + 1);
}
}
}