This is an automated email from the ASF dual-hosted git repository.

slachiewicz pushed a commit to branch MDEP-435
in repository https://gitbox.apache.org/repos/asf/maven-dependency-plugin.git

commit 61afd75e172f3bffd4fc5726465ca449e68639f8
Author: Bogdan Sikora <[email protected]>
AuthorDate: Thu Nov 14 16:36:11 2019 +0100

    [MDEP-435] - Update of XML dependency tree
---
 .../dependency/tree/XMLDependencyNodeVisitor.java  | 51 ++++++++++++++++------
 1 file changed, 38 insertions(+), 13 deletions(-)

diff --git 
a/src/main/java/org/apache/maven/plugins/dependency/tree/XMLDependencyNodeVisitor.java
 
b/src/main/java/org/apache/maven/plugins/dependency/tree/XMLDependencyNodeVisitor.java
index 3096dce..69959d9 100644
--- 
a/src/main/java/org/apache/maven/plugins/dependency/tree/XMLDependencyNodeVisitor.java
+++ 
b/src/main/java/org/apache/maven/plugins/dependency/tree/XMLDependencyNodeVisitor.java
@@ -29,13 +29,12 @@ import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
 
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.shared.dependency.graph.DependencyNode;
 import 
org.apache.maven.shared.dependency.graph.traversal.DependencyNodeVisitor;
-
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
 import java.io.Writer;
 import java.util.List;
 
@@ -73,7 +72,7 @@ public class XMLDependencyNodeVisitor
                 DocumentBuilderFactory dbFactory = 
DocumentBuilderFactory.newInstance();
                 DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
                 Document doc = dBuilder.newDocument();
-                Element rootElement = getNode( doc, node );
+                Element rootElement = getNode( doc, node, true );
                 doc.appendChild( rootElement );
 
                 List<DependencyNode> children = node.getChildren();
@@ -119,8 +118,9 @@ public class XMLDependencyNodeVisitor
      */
     private void handleChild( Document doc, DependencyNode node, Element 
parent )
     {
-        Element element = getNode( doc, node );
-        parent.appendChild( element );
+        Element element = getNode( doc, node, false );
+        Node dependencies = parent.getElementsByTagName( "dependencies" 
).item(0);
+        dependencies.appendChild( element );
 
         List<DependencyNode> children = node.getChildren();
         for ( DependencyNode child : children )
@@ -135,14 +135,39 @@ public class XMLDependencyNodeVisitor
      * @param doc Docuemnt to use
      * @param node Node to get data from
      */
-    private Element getNode( Document doc, DependencyNode node )
+    private Element getNode( Document doc, DependencyNode node, Boolean root )
     {
         Artifact artifact = node.getArtifact();
-        Element element = doc.createElement( artifact.getArtifactId() );
-        element.setAttribute( "groupId", artifact.getGroupId() );
-        element.setAttribute( "version", artifact.getVersion() );
-        element.setAttribute( "scope", artifact.getScope() );
-        element.setAttribute( "type", artifact.getType() );
+        Element element = null;
+
+        if (root) {
+            element = doc.createElement( "project" );
+        } else {
+            element = doc.createElement( "dependency" );
+        }
+
+        Element groupId = doc.createElement( "groupId" );
+        groupId.setTextContent(artifact.getGroupId());
+        element.appendChild( groupId );
+
+        Element artifactId = doc.createElement( "artifactId" );
+        artifactId.setTextContent(artifact.getArtifactId());
+        element.appendChild( artifactId );
+
+        Element version = doc.createElement( "version" );
+        version.setTextContent(artifact.getVersion());
+        element.appendChild( version );
+
+        Element scope = doc.createElement( "scope" );
+        scope.setTextContent(artifact.getScope());
+        element.appendChild( scope );
+
+        Element type = doc.createElement( "type" );
+        type.setTextContent(artifact.getType());
+        element.appendChild( type );
+
+        Element dependencies = doc.createElement( "dependencies" );
+        element.appendChild( dependencies );
 
         return element;
     }

Reply via email to