elharo commented on code in PR #530:
URL: 
https://github.com/apache/maven-dependency-plugin/pull/530#discussion_r2109238647


##########
src/main/java/org/apache/maven/plugins/dependency/tree/DOTDependencyNodeVisitor.java:
##########
@@ -47,29 +48,38 @@ public DOTDependencyNodeVisitor(Writer writer) {
      */
     @Override
     public boolean visit(DependencyNode node) {
-        if (node.getParent() == null || node.getParent() == node) {
-            writer.write("digraph \"" + node.toNodeString() + "\" { " + 
System.lineSeparator());
-        }
-
-        // Generate "currentNode -> Child" lines
+        try {
+            if (node.getParent() == null || node.getParent() == node) {
+                writer.write("digraph \"" + node.toNodeString() + "\" { " + 
System.lineSeparator());
+            }
 
-        List<DependencyNode> children = node.getChildren();
+            // Generate "currentNode -> Child" lines
 
-        for (DependencyNode child : children) {
-            writer.println("\t\"" + node.toNodeString() + "\" -> \"" + 
child.toNodeString() + "\" ; ");
+            List<DependencyNode> children = node.getChildren();
+            for (DependencyNode child : children) {
+                writer.write("\t\"" + node.toNodeString() + "\" -> \"" + 
child.toNodeString() + "\" ; "
+                        + System.lineSeparator());
+            }
+            writer.flush();
+            return true;
+        } catch (IOException e) {
+            throw new RuntimeException("Failed to write to DOT output", e);

Review Comment:
   
[UncheckedIOException](https://docs.oracle.com/javase/8/docs/api/java/io/UncheckedIOException.html)
 but really we need to figure out how to not thrown an exception at all here, 
or perhaps  change the method signature. Possibly we need to put everything in 
a StringWriter first and then write the string later. 



##########
src/main/java/org/apache/maven/plugins/dependency/tree/GraphmlDependencyNodeVisitor.java:
##########
@@ -63,37 +64,48 @@ public GraphmlDependencyNodeVisitor(Writer writer) {
      * {@inheritDoc}
      */
     @Override
-    public boolean endVisit(DependencyNode node) {
-        if (node.getParent() == null || node.getParent() == node) {
-            writer.write(GRAPHML_FOOTER);
-        } else {
-            DependencyNode p = node.getParent();
-            writer.print("<edge source=\"" + generateId(p) + "\" target=\"" + 
generateId(node) + "\">");
-            if (node.getArtifact().getScope() != null) {
-                // add Edge label
-                writer.print("<data key=\"d1\"><y:PolyLineEdge><y:EdgeLabel>"
-                        + node.getArtifact().getScope() + 
"</y:EdgeLabel></y:PolyLineEdge></data>");
+    public boolean visit(DependencyNode node) {
+        try {
+            if (node.getParent() == null || node.getParent() == node) {
+                writer.write(GRAPHML_HEADER);
             }
-            writer.println("</edge>");
+            // write node
+            writer.write("<node id=\"" + generateId(node) + "\">");
+            // add node label
+            writer.write("<data key=\"d0\"><y:ShapeNode><y:NodeLabel>" + 
node.toNodeString()
+                    + "</y:NodeLabel></y:ShapeNode></data>");
+            writer.write("</node>" + System.lineSeparator());
+            writer.flush();
+            return true;
+        } catch (IOException e) {
+            throw new RuntimeException("Failed to write GraphML node", e);

Review Comment:
   ditto



##########
src/main/java/org/apache/maven/plugins/dependency/tree/DOTDependencyNodeVisitor.java:
##########
@@ -47,29 +48,38 @@ public DOTDependencyNodeVisitor(Writer writer) {
      */
     @Override
     public boolean visit(DependencyNode node) {
-        if (node.getParent() == null || node.getParent() == node) {
-            writer.write("digraph \"" + node.toNodeString() + "\" { " + 
System.lineSeparator());
-        }
-
-        // Generate "currentNode -> Child" lines
+        try {
+            if (node.getParent() == null || node.getParent() == node) {
+                writer.write("digraph \"" + node.toNodeString() + "\" { " + 
System.lineSeparator());
+            }
 
-        List<DependencyNode> children = node.getChildren();
+            // Generate "currentNode -> Child" lines
 
-        for (DependencyNode child : children) {
-            writer.println("\t\"" + node.toNodeString() + "\" -> \"" + 
child.toNodeString() + "\" ; ");
+            List<DependencyNode> children = node.getChildren();
+            for (DependencyNode child : children) {
+                writer.write("\t\"" + node.toNodeString() + "\" -> \"" + 
child.toNodeString() + "\" ; "
+                        + System.lineSeparator());

Review Comment:
   Output should be platform independent. That is, use \n



##########
src/main/java/org/apache/maven/plugins/dependency/tree/DOTDependencyNodeVisitor.java:
##########
@@ -47,29 +48,38 @@ public DOTDependencyNodeVisitor(Writer writer) {
      */
     @Override
     public boolean visit(DependencyNode node) {
-        if (node.getParent() == null || node.getParent() == node) {
-            writer.write("digraph \"" + node.toNodeString() + "\" { " + 
System.lineSeparator());
-        }
-
-        // Generate "currentNode -> Child" lines
+        try {
+            if (node.getParent() == null || node.getParent() == node) {
+                writer.write("digraph \"" + node.toNodeString() + "\" { " + 
System.lineSeparator());
+            }
 
-        List<DependencyNode> children = node.getChildren();
+            // Generate "currentNode -> Child" lines
 
-        for (DependencyNode child : children) {
-            writer.println("\t\"" + node.toNodeString() + "\" -> \"" + 
child.toNodeString() + "\" ; ");
+            List<DependencyNode> children = node.getChildren();
+            for (DependencyNode child : children) {
+                writer.write("\t\"" + node.toNodeString() + "\" -> \"" + 
child.toNodeString() + "\" ; "
+                        + System.lineSeparator());
+            }
+            writer.flush();
+            return true;
+        } catch (IOException e) {
+            throw new RuntimeException("Failed to write to DOT output", e);
         }
-
-        return true;
     }
 
     /**
      * {@inheritDoc}
      */
     @Override
     public boolean endVisit(DependencyNode node) {
-        if (node.getParent() == null || node.getParent() == node) {
-            writer.write(" } ");
+        try {
+            if (node.getParent() == null || node.getParent() == node) {
+                writer.write(" } ");
+                writer.flush();
+            }
+            return true;
+        } catch (IOException e) {
+            throw new RuntimeException("Failed to write to DOT output", e);

Review Comment:
   ditto



##########
src/main/java/org/apache/maven/plugins/dependency/tree/GraphmlDependencyNodeVisitor.java:
##########
@@ -63,37 +64,48 @@ public GraphmlDependencyNodeVisitor(Writer writer) {
      * {@inheritDoc}
      */
     @Override
-    public boolean endVisit(DependencyNode node) {
-        if (node.getParent() == null || node.getParent() == node) {
-            writer.write(GRAPHML_FOOTER);
-        } else {
-            DependencyNode p = node.getParent();
-            writer.print("<edge source=\"" + generateId(p) + "\" target=\"" + 
generateId(node) + "\">");
-            if (node.getArtifact().getScope() != null) {
-                // add Edge label
-                writer.print("<data key=\"d1\"><y:PolyLineEdge><y:EdgeLabel>"
-                        + node.getArtifact().getScope() + 
"</y:EdgeLabel></y:PolyLineEdge></data>");
+    public boolean visit(DependencyNode node) {
+        try {
+            if (node.getParent() == null || node.getParent() == node) {
+                writer.write(GRAPHML_HEADER);
             }
-            writer.println("</edge>");
+            // write node
+            writer.write("<node id=\"" + generateId(node) + "\">");
+            // add node label
+            writer.write("<data key=\"d0\"><y:ShapeNode><y:NodeLabel>" + 
node.toNodeString()
+                    + "</y:NodeLabel></y:ShapeNode></data>");
+            writer.write("</node>" + System.lineSeparator());
+            writer.flush();
+            return true;
+        } catch (IOException e) {
+            throw new RuntimeException("Failed to write GraphML node", e);
         }
-        return true;
     }
 
     /**
      * {@inheritDoc}
      */
     @Override
-    public boolean visit(DependencyNode node) {
-        if (node.getParent() == null || node.getParent() == node) {
-            writer.write(GRAPHML_HEADER);
+    public boolean endVisit(DependencyNode node) {
+        try {
+            if (node.getParent() == null || node.getParent() == node) {
+                writer.write(GRAPHML_FOOTER);
+                writer.flush();
+            } else {
+                DependencyNode p = node.getParent();
+                writer.write("<edge source=\"" + generateId(p) + "\" 
target=\"" + generateId(node) + "\">");
+                if (node.getArtifact().getScope() != null) {
+                    // add Edge label
+                    writer.write("<data 
key=\"d1\"><y:PolyLineEdge><y:EdgeLabel>"
+                            + node.getArtifact().getScope() + 
"</y:EdgeLabel></y:PolyLineEdge></data>");
+                }
+                writer.write("</edge>" + System.lineSeparator());
+                writer.flush();
+            }
+            return true;
+        } catch (IOException e) {
+            throw new RuntimeException("Failed to write GraphML edge or 
footer", e);

Review Comment:
   ditto



##########
src/main/java/org/apache/maven/plugins/dependency/tree/TGFDependencyNodeVisitor.java:
##########
@@ -101,31 +102,43 @@ public TGFDependencyNodeVisitor(Writer writer) {
      * {@inheritDoc}
      */
     @Override
-    public boolean endVisit(DependencyNode node) {
-        if (node.getParent() == null || node.getParent() == node) {
-            // dump edges on last node endVisit
-            writer.println("#");
-            for (EdgeAppender edge : edges) {
-                writer.println(edge.toString());
-            }
-        } else {
-            DependencyNode p = node.getParent();
-            // using scope as edge label.
-            edges.add(new EdgeAppender(p, node, 
node.getArtifact().getScope()));
+    public boolean visit(DependencyNode node) {
+        try {
+            // write node
+            writer.write(generateId(node));
+            writer.write(" ");
+            writer.write(node.toNodeString());
+            writer.write(System.lineSeparator());
+            writer.flush();
+            return true;
+        } catch (IOException e) {
+            throw new RuntimeException("Failed to write TGF node", e);
         }
-        return true;
     }
 
     /**
      * {@inheritDoc}
      */
     @Override
-    public boolean visit(DependencyNode node) {
-        // write node
-        writer.write(generateId(node));
-        writer.write(" ");
-        writer.println(node.toNodeString());
-        return true;
+    public boolean endVisit(DependencyNode node) {
+        try {
+            if (node.getParent() == null || node.getParent() == node) {
+                // dump edges on last node endVisit
+                writer.write("#" + System.lineSeparator());

Review Comment:
   \n



##########
src/main/java/org/apache/maven/plugins/dependency/tree/TGFDependencyNodeVisitor.java:
##########
@@ -101,31 +102,43 @@ public TGFDependencyNodeVisitor(Writer writer) {
      * {@inheritDoc}
      */
     @Override
-    public boolean endVisit(DependencyNode node) {
-        if (node.getParent() == null || node.getParent() == node) {
-            // dump edges on last node endVisit
-            writer.println("#");
-            for (EdgeAppender edge : edges) {
-                writer.println(edge.toString());
-            }
-        } else {
-            DependencyNode p = node.getParent();
-            // using scope as edge label.
-            edges.add(new EdgeAppender(p, node, 
node.getArtifact().getScope()));
+    public boolean visit(DependencyNode node) {
+        try {
+            // write node
+            writer.write(generateId(node));
+            writer.write(" ");
+            writer.write(node.toNodeString());
+            writer.write(System.lineSeparator());
+            writer.flush();
+            return true;
+        } catch (IOException e) {
+            throw new RuntimeException("Failed to write TGF node", e);
         }
-        return true;
     }
 
     /**
      * {@inheritDoc}
      */
     @Override
-    public boolean visit(DependencyNode node) {
-        // write node
-        writer.write(generateId(node));
-        writer.write(" ");
-        writer.println(node.toNodeString());
-        return true;
+    public boolean endVisit(DependencyNode node) {
+        try {
+            if (node.getParent() == null || node.getParent() == node) {
+                // dump edges on last node endVisit
+                writer.write("#" + System.lineSeparator());
+                for (EdgeAppender edge : edges) {
+                    writer.write(edge.toString());
+                    writer.write(System.lineSeparator());

Review Comment:
   \n



##########
src/main/java/org/apache/maven/plugins/dependency/tree/JsonDependencyNodeVisitor.java:
##########
@@ -56,13 +57,18 @@ public boolean visit(DependencyNode node) {
      * @param node  the node to write
      */
     private void writeRootNode(DependencyNode node) {
-        Set<DependencyNode> visited = new HashSet<>();
-        int indent = 2;
-        StringBuilder sb = new StringBuilder();
-        sb.append("{").append("\n");
-        writeNode(indent, node, sb, visited);
-        sb.append("}").append("\n");
-        writer.write(sb.toString());
+        try {
+            Set<DependencyNode> visited = new HashSet<>();
+            int indent = 2;
+            StringBuilder sb = new StringBuilder();
+            sb.append("{").append("\n");
+            writeNode(indent, node, sb, visited);
+            sb.append("}").append("\n");
+            writer.write(sb.toString());
+            writer.flush();
+        } catch (IOException e) {
+            throw new RuntimeException("Failed to write JSON output", e);

Review Comment:
   ditto



##########
src/main/java/org/apache/maven/plugins/dependency/tree/TGFDependencyNodeVisitor.java:
##########
@@ -101,31 +102,43 @@ public TGFDependencyNodeVisitor(Writer writer) {
      * {@inheritDoc}
      */
     @Override
-    public boolean endVisit(DependencyNode node) {
-        if (node.getParent() == null || node.getParent() == node) {
-            // dump edges on last node endVisit
-            writer.println("#");
-            for (EdgeAppender edge : edges) {
-                writer.println(edge.toString());
-            }
-        } else {
-            DependencyNode p = node.getParent();
-            // using scope as edge label.
-            edges.add(new EdgeAppender(p, node, 
node.getArtifact().getScope()));
+    public boolean visit(DependencyNode node) {
+        try {
+            // write node
+            writer.write(generateId(node));
+            writer.write(" ");
+            writer.write(node.toNodeString());
+            writer.write(System.lineSeparator());
+            writer.flush();
+            return true;
+        } catch (IOException e) {
+            throw new RuntimeException("Failed to write TGF node", e);
         }
-        return true;
     }
 
     /**
      * {@inheritDoc}
      */
     @Override
-    public boolean visit(DependencyNode node) {
-        // write node
-        writer.write(generateId(node));
-        writer.write(" ");
-        writer.println(node.toNodeString());
-        return true;
+    public boolean endVisit(DependencyNode node) {
+        try {
+            if (node.getParent() == null || node.getParent() == node) {
+                // dump edges on last node endVisit
+                writer.write("#" + System.lineSeparator());
+                for (EdgeAppender edge : edges) {
+                    writer.write(edge.toString());
+                    writer.write(System.lineSeparator());
+                }
+                writer.flush();
+            } else {
+                DependencyNode p = node.getParent();

Review Comment:
   p --> parent



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@maven.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to