Added support for MNG-612
git-svn-id: https://svn.apache.org/repos/asf/maven/shared/branches/maven-dependency-tree-MNG-612@553141 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/maven/shared/dependency/tree/DefaultDependencyTreeBuilder.java b/src/main/java/org/apache/maven/shared/dependency/tree/DefaultDependencyTreeBuilder.java
index d35f12e..63262a6 100644
--- a/src/main/java/org/apache/maven/shared/dependency/tree/DefaultDependencyTreeBuilder.java
+++ b/src/main/java/org/apache/maven/shared/dependency/tree/DefaultDependencyTreeBuilder.java
@@ -20,6 +20,7 @@
*/
import java.util.Collections;
+import java.util.List;
import java.util.Map;
import org.apache.maven.artifact.factory.ArtifactFactory;
@@ -27,8 +28,11 @@
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.resolver.ArtifactCollector;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
+import org.apache.maven.artifact.resolver.conflict.ConflictResolverFactory;
+import org.apache.maven.artifact.resolver.conflict.ConflictResolverNotFoundException;
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.ProjectUtils;
import org.apache.maven.shared.dependency.tree.traversal.CollectingDependencyNodeVisitor;
/**
@@ -42,6 +46,15 @@
*/
public class DefaultDependencyTreeBuilder implements DependencyTreeBuilder
{
+ // fields -----------------------------------------------------------------
+
+ /**
+ * The conflict resolver factory to use.
+ *
+ * @plexus.requirement
+ */
+ private ConflictResolverFactory conflictResolverFactory;
+
// DependencyTreeBuilder methods ------------------------------------------
/*
@@ -79,10 +92,12 @@
try
{
Map managedVersions = project.getManagedVersionMap();
+
+ List conflictResolvers = ProjectUtils.buildConflictResolvers( project, conflictResolverFactory );
collector.collect( project.getDependencyArtifacts(), project.getArtifact(), managedVersions, repository,
project.getRemoteArtifactRepositories(), metadataSource, filter,
- Collections.singletonList( listener ) );
+ Collections.singletonList( listener ), conflictResolvers );
return listener.getRootNode();
}
@@ -90,5 +105,9 @@
{
throw new DependencyTreeBuilderException( "Cannot build project dependency tree", exception );
}
+ catch ( ConflictResolverNotFoundException exception )
+ {
+ throw new DependencyTreeBuilderException( "Cannot build project dependency tree", exception );
+ }
}
}
diff --git a/src/test/resources/org/apache/maven/shared/dependency/tree/DependencyTreeBuilderTest.xml b/src/test/resources/org/apache/maven/shared/dependency/tree/DependencyTreeBuilderTest.xml
index cf6ed39..6eaafa3 100644
--- a/src/test/resources/org/apache/maven/shared/dependency/tree/DependencyTreeBuilderTest.xml
+++ b/src/test/resources/org/apache/maven/shared/dependency/tree/DependencyTreeBuilderTest.xml
@@ -31,6 +31,11 @@
<component>
<role>org.apache.maven.artifact.resolver.ArtifactCollector</role>
<implementation>org.apache.maven.artifact.resolver.DefaultArtifactCollector</implementation>
+ <requirements>
+ <requirement>
+ <role>org.apache.maven.artifact.resolver.conflict.ConflictResolver</role>
+ </requirement>
+ </requirements>
</component>
</components>
</component-set>