public static synchronized Map<String,List<String>> getDraftTree(String serviceName) {
if(draftTree!=null && draftTree.get(serviceName)!=null ) {
return draftTree.get(serviceName);
}
JsonNode csn = getCsn();
if (csn == null)
return new HashMap<>();
Map.Entry<String, JsonNode> root=null;
JsonNode alldefs = csn.get("definitions");
Iterator<Entry<String, JsonNode>> nodes = alldefs.fields();
while (nodes.hasNext()) {
Map.Entry<String, JsonNode> entry = (Map.Entry<String, JsonNode>) nodes.next();
if(entry.getKey().startsWith(serviceName)&&entry.getValue().get(DRAFT_ENABLED)!= null&&entry.getValue().get(DRAFT_ENABLED).asText().equals("true")) {
root=entry;
break;
}
}
if(root!=null && draftTree!=null) {
draftTree.put(serviceName,constructCompositionTree(root, serviceName));
}
return draftTree!=null?draftTree.get(serviceName):null;
}