protected Map<String, Resource> getSubResources(DAG graph, Resource r, String type) { Map<String, Resource> res = new HashMap<>(); List<String> deps = r.getDependencies(); if (deps != null) { for (String dn : deps) { Resource d = getResource(dn); if (d == null) { log.error("Unknown resource dependency named '" + dn + "'"); continue; } if (!ResourceType.matches(type, d)) { continue; } res.put(dn, d); try { graph.addEdge(r.getName(), dn); } catch (CycleDetectedException e) { log.error("Cycle detected in resource dependencies: ", e); break; } res.putAll(getSubResources(graph, d, type)); } } return res; }