diff --git a/archiva-webapp/pom.xml b/archiva-webapp/pom.xml
index a85351ef0..b9c2acd68 100644
--- a/archiva-webapp/pom.xml
+++ b/archiva-webapp/pom.xml
@@ -119,15 +119,9 @@
maven-project
- org.apache.maven.plugins
- maven-project-info-reports-plugin
- 2.1-SNAPSHOT
-
-
- plexus
- plexus-utils
-
-
+ org.apache.maven.shared
+ maven-dependency-tree
+ 1.0-SNAPSHOT
diff --git a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java
index 208d92597..2913056ec 100644
--- a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java
+++ b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java
@@ -42,8 +42,10 @@
import org.apache.maven.project.MavenProjectBuilder;
import org.apache.maven.project.ProjectBuildingException;
import org.apache.maven.project.artifact.InvalidDependencyVersionException;
-import org.apache.maven.report.projectinfo.dependencies.Dependencies;
-import org.apache.maven.report.projectinfo.dependencies.ReportResolutionListener;
+import org.apache.maven.shared.dependency.tree.DependencyNode;
+import org.apache.maven.shared.dependency.tree.DependencyTree;
+import org.apache.maven.shared.dependency.tree.DependencyTreeBuilder;
+import org.apache.maven.shared.dependency.tree.DependencyTreeBuilderException;
import org.codehaus.plexus.util.StringUtils;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import org.codehaus.plexus.xwork.action.PlexusActionSupport;
@@ -55,9 +57,7 @@
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
-import java.util.LinkedList;
import java.util.List;
-import java.util.Map;
import java.util.Set;
/**
@@ -102,6 +102,11 @@ public class ShowArtifactAction
* @plexus.requirement
*/
private ArtifactCollector collector;
+
+ /**
+ * @plexus.requirement
+ */
+ private DependencyTreeBuilder dependencyTreeBuilder;
private String groupId;
@@ -112,7 +117,7 @@ public class ShowArtifactAction
private Model model;
private Collection dependencies;
-
+
private List dependencyTree;
public String artifact()
@@ -192,42 +197,43 @@ public String dependencyTree()
getLogger().debug( " processing : " + groupId + ":" + artifactId + ":" + version );
- Dependencies dependencies =
+ DependencyTree dependencies =
collectDependencies( project, artifact, localRepository, repositories );
-
- dependencyTree = new LinkedList();
- populateFlatTreeList( dependencies.getResolvedRoot(), dependencyTree );
+
+ this.dependencyTree = new ArrayList();
+
+ populateFlatTreeList( dependencies.getRootNode(), dependencyTree );
return SUCCESS;
}
- private void populateFlatTreeList( ReportResolutionListener.Node currentNode, List dependencyList )
+ private void populateFlatTreeList( DependencyNode currentNode, List dependencyList )
{
- ReportResolutionListener.Node childNode;
+ DependencyNode childNode;
for ( Iterator iterator = currentNode.getChildren().iterator(); iterator.hasNext(); )
{
- childNode = (ReportResolutionListener.Node) iterator.next();
+ childNode = (DependencyNode) iterator.next();
dependencyList.add( childNode );
populateFlatTreeList( childNode, dependencyList );
}
}
- private Dependencies collectDependencies( MavenProject project, Artifact artifact,
+ private DependencyTree collectDependencies( MavenProject project, Artifact artifact,
ArtifactRepository localRepository, List repositories )
throws ArtifactResolutionException, ProjectBuildingException, InvalidDependencyVersionException,
ConfigurationStoreException
{
- Map managedDependencyMap = Dependencies.getManagedVersionMap( project, artifactFactory );
-
- ReportResolutionListener listener = new ReportResolutionListener();
-
- project.setDependencyArtifacts( project.createArtifacts( artifactFactory, null, null ) );
-
- collector.collect( project.getDependencyArtifacts(), artifact, managedDependencyMap, localRepository,
- repositories, artifactMetadataSource, null, Collections.singletonList( listener ) );
-
- return new Dependencies( project, listener, null );
+ try
+ {
+ return dependencyTreeBuilder.buildDependencyTree( project, localRepository, artifactFactory,
+ artifactMetadataSource, collector );
+ }
+ catch ( DependencyTreeBuilderException e )
+ {
+ getLogger().error( "Unable to build dependency tree.", e );
+ return null;
+ }
}
private static String createId( String groupId, String artifactId, String version )
@@ -293,11 +299,6 @@ public Collection getDependencies()
return dependencies;
}
- public List getDependencyTree()
- {
- return dependencyTree;
- }
-
public String getGroupId()
{
return groupId;
@@ -318,6 +319,11 @@ public void setArtifactId( String artifactId )
this.artifactId = artifactId;
}
+ public List getDependencyTree()
+ {
+ return dependencyTree;
+ }
+
public String getVersion()
{
return version;
@@ -466,4 +472,5 @@ public String getVersion()
return version;
}
}
+
}
diff --git a/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/dependencyTree.jspf b/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/dependencyTree.jspf
index 55a9ecc51..4939a79e3 100644
--- a/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/dependencyTree.jspf
+++ b/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/dependencyTree.jspf
@@ -18,7 +18,7 @@
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="my" tagdir="/WEB-INF/tags" %>
-
+
diff --git a/archiva-webapp/src/main/webapp/css/site.css b/archiva-webapp/src/main/webapp/css/site.css
index 5c832dbdf..33e82371a 100644
--- a/archiva-webapp/src/main/webapp/css/site.css
+++ b/archiva-webapp/src/main/webapp/css/site.css
@@ -116,3 +116,11 @@
.artifact-title {
}
+
+ul.dependencyTree {
+ margin-left: 50px;
+}
+
+ul.dependencyTree span.artifact-link {
+ padding-left: 0px;
+}