[MSHARED-852] Add Exclusions to DependencyNode
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 @@
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 @@
* @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 @@
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 @@
public class DefaultDependencyNode implements DependencyNode
{
private final Artifact artifact;
-
+
private final DependencyNode parent;
private final String premanagedVersion;
@@ -44,6 +45,8 @@
private Boolean optional;
+ private List<Exclusion> exclusions;
+
/**
* Constructs the DefaultDependencyNode.
*
@@ -64,7 +67,8 @@
}
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 @@
this.premanagedScope = premanagedScope;
this.versionConstraint = versionConstraint;
this.optional = optional;
+ this.exclusions = exclusions;
}
/**
@@ -158,13 +163,19 @@
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 @@
*/
private static class ItemAppender
{
- private StringBuffer buffer;
+ private StringBuilder buffer;
private String startToken;
@@ -210,7 +221,7 @@
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.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 @@
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 @@
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() )