[ 
https://issues.apache.org/jira/browse/MDEP-799?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17848736#comment-17848736
 ] 

ASF GitHub Bot commented on MDEP-799:
-------------------------------------

LogFlames commented on code in PR #391:
URL: 
https://github.com/apache/maven-dependency-plugin/pull/391#discussion_r1610577280


##########
src/test/java/org/apache/maven/plugins/dependency/tree/TestTreeMojo.java:
##########
@@ -137,6 +147,74 @@ public void testTreeTGFSerializing() throws Exception {
         assertTrue(findString(contents, 
"testGroupId:release:jar:1.0:compile"));
     }
 
+    /**
+     * Test the JSON format serialization on DependencyNodes with circular 
dependence
+     */
+    public void testTreeJsonCircularDependency() throws Exception {
+        String outputFileName = testDir.getAbsolutePath() + "tree1.json";
+        File outputFile = new File(outputFileName);
+        Files.createDirectories(outputFile.getParentFile().toPath());
+        outputFile.createNewFile();
+
+        Artifact artifact1 = this.stubFactory.createArtifact("testGroupId", 
"project1", "1.0");
+        Artifact artifact2 = this.stubFactory.createArtifact("testGroupId", 
"project2", "1.0");
+        DefaultDependencyNode node1 = new DefaultDependencyNode(artifact1);
+        DefaultDependencyNode node2 = new DefaultDependencyNode(artifact2);
+
+        node1.setChildren(new ArrayList<DependencyNode>());
+        node2.setChildren(new ArrayList<DependencyNode>());
+
+        node1.getChildren().add(node2);
+        node2.getChildren().add(node1);
+
+        JsonDependencyNodeVisitor jsonDependencyNodeVisitor =
+                new JsonDependencyNodeVisitor(new OutputStreamWriter(new 
FileOutputStream(outputFile)));
+
+        jsonDependencyNodeVisitor.visit(node1);
+    }
+
+    /*
+     * Test parsing of Json output and verify all key-value pairs
+     */
+    public void testTreeJsonParsing() throws Exception {

Review Comment:
   This uses the prebuilt function `runTreeMojo` that is also used by most 
other tests in the file, which throws an Exception. I don't think this can be 
more specific without major changes to `runTreeMojo`.
   Within `runTreeMojo` there are function that throws the following exceptions:
   `lookupMojo`: `Exception`
   `setVariableValueToObject`: `IllegalAccessException`
   `this.stubFactory.createArtifact`: `IOException`
   `mojo.execute()`: `MojoFailureException` and `MojoExecutionException`
   





> improve mvn dependency:tree - add optional JSON output of the results
> ---------------------------------------------------------------------
>
>                 Key: MDEP-799
>                 URL: https://issues.apache.org/jira/browse/MDEP-799
>             Project: Maven Dependency Plugin
>          Issue Type: New Feature
>          Components: tree
>            Reporter: Zhenxu Ke
>            Priority: Major
>
> I'd like to add an output type JSON, will open a pull request soon



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to