in src/main/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverter.java [390:409]
private static void orderDependencies(@NotNull Map<PackageId, VaultPackage> idFileMap,
@NotNull Map<PackageId, VaultPackage> idPackageMapping,
@NotNull VaultPackage pack,
@NotNull Set<PackageId> visited) throws IOException, ConverterException {
if (!visited.add(pack.getId())) {
throw new ConverterException("Cyclic dependency detected, " + pack.getId() + " was previously visited already");
}
for (Dependency dep : pack.getDependencies()) {
for (java.util.Map.Entry<PackageId, VaultPackage> entry : idPackageMapping.entrySet()) {
if (dep.matches(entry.getKey())) {
orderDependencies(idFileMap, idPackageMapping, entry.getValue(), visited);
break;
}
}
}
idFileMap.put(pack.getId(), pack);
idPackageMapping.remove(pack.getId());
}