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 <rfscho...@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() )