diff --git a/src/graph/ReactorGraph.java b/src/graph/ReactorGraph.java index eb82a19ce382..b147c48ecbc5 100755 --- a/src/graph/ReactorGraph.java +++ b/src/graph/ReactorGraph.java @@ -144,7 +144,7 @@ public static void main(String[] args) { Files.write(Paths.get("target/graph/intermediary_graph.dot"), dotContent.getBytes()); System.out.println("Intermediary graph written to intermediary_graph.dot"); - // Render graph to SVF + // Render graph to SVG Graphviz.fromGraph(clusteredGraph) .engine(Engine.FDP) .render(Format.SVG).toFile(new File("target/graph/intermediary_graph.svg")); @@ -185,40 +185,30 @@ private static MutableGraph generateHighLevelGraph(MutableGraph clusteredGraph, MutableGraph cluster = entry.getValue(); String headerColor = clusterName.startsWith("Maven") ? "black" : "#808080"; // #808080 is a middle gray + String prefix; + switch (clusterName) { + case "MavenAPI": prefix = "../api/"; break; + case "MavenImplementation": prefix = "../impl/"; break; + case "MavenCompatibility": prefix = "../compat/"; break; + case "MavenResolver": prefix = "https://maven.apache.org/resolver/"; break; + default: prefix = null; + } + StringBuilder labelBuilder = new StringBuilder(); - labelBuilder.append(""); - labelBuilder.append(""); + .append(" "); cluster.nodes().stream().map(MutableNode::name).map(Label::toString).sorted() .forEach(nodeName -> { - labelBuilder.append(""); - String prefix = null; - switch (clusterName) { - case "MavenAPI": prefix = "../api/"; break; - case "MavenImplementation": prefix = "../impl/"; break; - case "MavenCompatibility": prefix = "../compat/"; break; - case "MavenResolver": prefix = "https://maven.apache.org/resolver/"; break; - } + labelBuilder.append(""); - } else { - labelBuilder.append(""); + labelBuilder.append(" href='").append(prefix).append(nodeName) + .append("' title='").append(nodeName).append("' target='_parent'"); } - labelBuilder.append(""); + labelBuilder.append(">").append(nodeName).append(""); }); labelBuilder.append("
") + .append("") + .append("'> ") .append(key) - .append("
") - .append(nodeName) - .append("").append(nodeName).append("
"); @@ -257,6 +247,17 @@ private static MutableGraph generateHighLevelGraph(MutableGraph clusteredGraph, } } + // force top group + MutableGraph topGroup = mutGraph("top") + .setDirected(true) + .graphAttrs().add(Rank.inSubgraph(Rank.RankType.SAME)) + .add( + mutNode("MavenResolver"), + mutNode("MavenAPI"), + mutNode("MavenImplementation") + ); + highLevelGraph.add(topGroup); + return highLevelGraph; }