You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2020/02/07 09:10:39 UTC

[maven-dependency-tree] branch MSHARED-852 created (now d7212fe)

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

rfscholte pushed a change to branch MSHARED-852
in repository https://gitbox.apache.org/repos/asf/maven-dependency-tree.git.


      at d7212fe  [MSHARED-852] Add Exclusions to DependencyNode

This branch includes the following new commits:

     new d7212fe  [MSHARED-852] Add Exclusions to DependencyNode

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[maven-dependency-tree] 01/01: [MSHARED-852] Add Exclusions to DependencyNode

Posted by rf...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rfscholte pushed a commit to branch MSHARED-852
in repository https://gitbox.apache.org/repos/asf/maven-dependency-tree.git

commit d7212fec557dcf66815409ac614db9e2fc65d000
Author: rfscholte <rf...@apache.org>
AuthorDate: Fri Feb 7 10:10:27 2020 +0100

    [MSHARED-852] Add Exclusions to DependencyNode
---
 .../shared/dependency/graph/DependencyNode.java     |  7 +++++++
 .../graph/internal/DefaultDependencyNode.java       | 21 ++++++++++++++++-----
 .../internal/Maven31DependencyGraphBuilder.java     | 13 +++++++++++--
 .../traversal/BuildingDependencyNodeVisitor.java    |  2 +-
 4 files changed, 35 insertions(+), 8 deletions(-)

diff --git a/src/main/java/org/apache/maven/shared/dependency/graph/DependencyNode.java b/src/main/java/org/apache/maven/shared/dependency/graph/DependencyNode.java
index b2e5219..e46d6a5 100644
--- a/src/main/java/org/apache/maven/shared/dependency/graph/DependencyNode.java
+++ b/src/main/java/org/apache/maven/shared/dependency/graph/DependencyNode.java
@@ -22,6 +22,7 @@ package org.apache.maven.shared.dependency.graph;
 import java.util.List;
 
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.model.Exclusion;
 import org.apache.maven.shared.dependency.graph.traversal.DependencyNodeVisitor;
 
 /**
@@ -92,4 +93,10 @@ public interface DependencyNode
      * @return true for an optional dependency.
      */
     Boolean getOptional();
+    
+    /**
+     * 
+     * @return the exclusions of the dependency
+     */
+    List<Exclusion> getExclusions();
 }
diff --git a/src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyNode.java b/src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyNode.java
index 3b8139c..440eaea 100644
--- a/src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyNode.java
+++ b/src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyNode.java
@@ -22,6 +22,7 @@ package org.apache.maven.shared.dependency.graph.internal;
 import java.util.List;
 
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.model.Exclusion;
 import org.apache.maven.shared.dependency.graph.DependencyNode;
 import org.apache.maven.shared.dependency.graph.traversal.DependencyNodeVisitor;
 
@@ -31,7 +32,7 @@ import org.apache.maven.shared.dependency.graph.traversal.DependencyNodeVisitor;
 public class DefaultDependencyNode implements DependencyNode
 {
     private final Artifact artifact;
-
+    
     private final DependencyNode parent;
 
     private final String premanagedVersion;
@@ -44,6 +45,8 @@ public class DefaultDependencyNode implements DependencyNode
 
     private Boolean optional;
 
+    private List<Exclusion> exclusions;
+
     /**
      * Constructs the DefaultDependencyNode.
      *
@@ -64,7 +67,8 @@ public class DefaultDependencyNode implements DependencyNode
     }
 
     public DefaultDependencyNode( DependencyNode parent, Artifact artifact, String premanagedVersion,
-                                  String premanagedScope, String versionConstraint, Boolean optional )
+                                  String premanagedScope, String versionConstraint, Boolean optional,
+                                  List<Exclusion> exclusions )
     {
         this.parent = parent;
         this.artifact = artifact;
@@ -72,6 +76,7 @@ public class DefaultDependencyNode implements DependencyNode
         this.premanagedScope = premanagedScope;
         this.versionConstraint = versionConstraint;
         this.optional = optional;
+        this.exclusions = exclusions;
     }
 
     /**
@@ -158,13 +163,19 @@ public class DefaultDependencyNode implements DependencyNode
         return optional;
     }
 
+    @Override
+    public List<Exclusion> getExclusions()
+    {
+        return exclusions;
+    }
+
     /**
      * @return Stringified representation of this DependencyNode.
      */
     @Override
     public String toNodeString()
     {
-        StringBuffer buffer = new StringBuffer();
+        StringBuilder buffer = new StringBuilder();
 
         buffer.append( artifact );
 
@@ -200,7 +211,7 @@ public class DefaultDependencyNode implements DependencyNode
      */
     private static class ItemAppender
     {
-        private StringBuffer buffer;
+        private StringBuilder buffer;
 
         private String startToken;
 
@@ -210,7 +221,7 @@ public class DefaultDependencyNode implements DependencyNode
 
         private boolean appended;
 
-        ItemAppender( StringBuffer buffer, String startToken, String separatorToken, String endToken )
+        ItemAppender( StringBuilder buffer, String startToken, String separatorToken, String endToken )
         {
             this.buffer = buffer;
             this.startToken = startToken;
diff --git a/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java b/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java
index 47d9e53..5a53dcb 100644
--- a/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java
+++ b/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java
@@ -44,6 +44,7 @@ import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.graph.Dependency;
+import org.eclipse.aether.graph.Exclusion;
 import org.eclipse.aether.version.VersionConstraint;
 
 /**
@@ -208,16 +209,24 @@ public class Maven31DependencyGraphBuilder
         String premanagedVersion = null; // DependencyManagerUtils.getPremanagedVersion( node );
         String premanagedScope = null; // DependencyManagerUtils.getPremanagedScope( node );
 
+        List<org.apache.maven.model.Exclusion> exclusions = null;
         Boolean optional = null;
         if ( node.getDependency() != null )
         {
-            optional = node.getDependency().isOptional();
+            exclusions = new ArrayList<>( node.getDependency().getExclusions().size() );
+            for ( Exclusion exclusion : node.getDependency().getExclusions() )
+            {
+                org.apache.maven.model.Exclusion modelExclusion = new org.apache.maven.model.Exclusion();
+                modelExclusion.setGroupId( exclusion.getGroupId() );
+                modelExclusion.setArtifactId( exclusion.getArtifactId() );
+                exclusions.add( modelExclusion );
+            }
         }
 
         DefaultDependencyNode current =
             new DefaultDependencyNode( parent, artifact, premanagedVersion, premanagedScope,
                                        getVersionSelectedFromRange( node.getVersionConstraint() ),
-                                       optional );
+                                       optional, exclusions );
 
         List<DependencyNode> nodes = new ArrayList<DependencyNode>( node.getChildren().size() );
         for ( org.eclipse.aether.graph.DependencyNode child : node.getChildren() )
diff --git a/src/main/java/org/apache/maven/shared/dependency/graph/traversal/BuildingDependencyNodeVisitor.java b/src/main/java/org/apache/maven/shared/dependency/graph/traversal/BuildingDependencyNodeVisitor.java
index 498b6e1..fb05fbe 100644
--- a/src/main/java/org/apache/maven/shared/dependency/graph/traversal/BuildingDependencyNodeVisitor.java
+++ b/src/main/java/org/apache/maven/shared/dependency/graph/traversal/BuildingDependencyNodeVisitor.java
@@ -88,7 +88,7 @@ public class BuildingDependencyNodeVisitor
             new DefaultDependencyNode( parentNodes.isEmpty() ? null : parentNodes.peek(), node.getArtifact(),
                                        node.getPremanagedVersion(), node.getPremanagedScope(),
                                        node.getVersionConstraint(),
-                                       node.getOptional() );
+                                       node.getOptional(), node.getExclusions() );
         newNode.setChildren( new ArrayList<DependencyNode>() );
 
         if ( parentNodes.empty() )