[ 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)