* Refactored out MPIR dependency in favor of maven-dependency-tree component.

git-svn-id: https://svn.apache.org/repos/asf/maven/archiva/trunk@477354 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Joakim Erdfelt 2006-11-20 21:37:06 +00:00
parent 62eea2b13d
commit 3852fea4d9
4 changed files with 47 additions and 38 deletions

View File

@ -119,15 +119,9 @@
<artifactId>maven-project</artifactId> <artifactId>maven-project</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.shared</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId> <artifactId>maven-dependency-tree</artifactId>
<version>2.1-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>plexus</groupId>
<artifactId>plexus-utils</artifactId>
</exclusion>
</exclusions>
</dependency> </dependency>
<!-- Plexus Security Dependencies --> <!-- Plexus Security Dependencies -->
<dependency> <dependency>

View File

@ -42,8 +42,10 @@ import org.apache.maven.project.MavenProject;
import org.apache.maven.project.MavenProjectBuilder; import org.apache.maven.project.MavenProjectBuilder;
import org.apache.maven.project.ProjectBuildingException; import org.apache.maven.project.ProjectBuildingException;
import org.apache.maven.project.artifact.InvalidDependencyVersionException; import org.apache.maven.project.artifact.InvalidDependencyVersionException;
import org.apache.maven.report.projectinfo.dependencies.Dependencies; import org.apache.maven.shared.dependency.tree.DependencyNode;
import org.apache.maven.report.projectinfo.dependencies.ReportResolutionListener; 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.StringUtils;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException; import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import org.codehaus.plexus.xwork.action.PlexusActionSupport; import org.codehaus.plexus.xwork.action.PlexusActionSupport;
@ -55,9 +57,7 @@ import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.HashSet; import java.util.HashSet;
import java.util.Iterator; import java.util.Iterator;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Set; import java.util.Set;
/** /**
@ -103,6 +103,11 @@ public class ShowArtifactAction
*/ */
private ArtifactCollector collector; private ArtifactCollector collector;
/**
* @plexus.requirement
*/
private DependencyTreeBuilder dependencyTreeBuilder;
private String groupId; private String groupId;
private String artifactId; private String artifactId;
@ -192,42 +197,43 @@ public class ShowArtifactAction
getLogger().debug( " processing : " + groupId + ":" + artifactId + ":" + version ); getLogger().debug( " processing : " + groupId + ":" + artifactId + ":" + version );
Dependencies dependencies = DependencyTree dependencies =
collectDependencies( project, artifact, localRepository, repositories ); collectDependencies( project, artifact, localRepository, repositories );
dependencyTree = new LinkedList(); this.dependencyTree = new ArrayList();
populateFlatTreeList( dependencies.getResolvedRoot(), dependencyTree );
populateFlatTreeList( dependencies.getRootNode(), dependencyTree );
return SUCCESS; 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(); ) for ( Iterator iterator = currentNode.getChildren().iterator(); iterator.hasNext(); )
{ {
childNode = (ReportResolutionListener.Node) iterator.next(); childNode = (DependencyNode) iterator.next();
dependencyList.add( childNode ); dependencyList.add( childNode );
populateFlatTreeList( childNode, dependencyList ); populateFlatTreeList( childNode, dependencyList );
} }
} }
private Dependencies collectDependencies( MavenProject project, Artifact artifact, private DependencyTree collectDependencies( MavenProject project, Artifact artifact,
ArtifactRepository localRepository, List repositories ) ArtifactRepository localRepository, List repositories )
throws ArtifactResolutionException, ProjectBuildingException, InvalidDependencyVersionException, throws ArtifactResolutionException, ProjectBuildingException, InvalidDependencyVersionException,
ConfigurationStoreException ConfigurationStoreException
{ {
Map managedDependencyMap = Dependencies.getManagedVersionMap( project, artifactFactory ); try
{
ReportResolutionListener listener = new ReportResolutionListener(); return dependencyTreeBuilder.buildDependencyTree( project, localRepository, artifactFactory,
artifactMetadataSource, collector );
project.setDependencyArtifacts( project.createArtifacts( artifactFactory, null, null ) ); }
catch ( DependencyTreeBuilderException e )
collector.collect( project.getDependencyArtifacts(), artifact, managedDependencyMap, localRepository, {
repositories, artifactMetadataSource, null, Collections.singletonList( listener ) ); getLogger().error( "Unable to build dependency tree.", e );
return null;
return new Dependencies( project, listener, null ); }
} }
private static String createId( String groupId, String artifactId, String version ) private static String createId( String groupId, String artifactId, String version )
@ -293,11 +299,6 @@ public class ShowArtifactAction
return dependencies; return dependencies;
} }
public List getDependencyTree()
{
return dependencyTree;
}
public String getGroupId() public String getGroupId()
{ {
return groupId; return groupId;
@ -318,6 +319,11 @@ public class ShowArtifactAction
this.artifactId = artifactId; this.artifactId = artifactId;
} }
public List getDependencyTree()
{
return dependencyTree;
}
public String getVersion() public String getVersion()
{ {
return version; return version;
@ -466,4 +472,5 @@ public class ShowArtifactAction
return version; return version;
} }
} }
} }

View File

@ -18,7 +18,7 @@
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="my" tagdir="/WEB-INF/tags" %> <%@ taglib prefix="my" tagdir="/WEB-INF/tags" %>
<ul> <ul class="dependencyTree">
<c:set var="prevDepth" value="1"/> <c:set var="prevDepth" value="1"/>
<ww:set name="dependencyTree" value="dependencyTree"/> <ww:set name="dependencyTree" value="dependencyTree"/>
<c:forEach items="${dependencyTree}" var="node"> <c:forEach items="${dependencyTree}" var="node">

View File

@ -116,3 +116,11 @@
.artifact-title { .artifact-title {
} }
ul.dependencyTree {
margin-left: 50px;
}
ul.dependencyTree span.artifact-link {
padding-left: 0px;
}