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>