[ https://issues.apache.org/jira/browse/MDEP-799?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17848739#comment-17848739 ]
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_r1610578562 ########## 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 { + List<String> contents = runTreeMojo("tree2.json", "json"); + + JsonReader reader = Json.createReader(new StringReader(String.join("\n", contents))); + JsonObject root = reader.readObject(); + reader.close(); Review Comment: Cool feature, thanks! This has been updated to use try-with-resource > 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)