Author: brett
Date: Wed May 10 02:13:18 2006
New Revision: 405686

URL: http://svn.apache.org/viewcvs?rev=405686&view=rev
Log:
fix some issues in the dependency report (wrong dependency versions included), 
and simplify

Modified:
    maven/plugins/trunk/maven-project-info-reports-plugin/pom.xml
    
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/DependenciesReport.java
    
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/ReportResolutionListener.java
    
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/resources/project-info-report.properties
    
maven/plugins/trunk/maven-project-info-reports-plugin/src/test/java/org/apache/maven/report/projectinfo/ReportResolutionListenerTest.java

Modified: maven/plugins/trunk/maven-project-info-reports-plugin/pom.xml
URL: 
http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-project-info-reports-plugin/pom.xml?rev=405686&r1=405685&r2=405686&view=diff
==============================================================================
--- maven/plugins/trunk/maven-project-info-reports-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-project-info-reports-plugin/pom.xml Wed May 10 
02:13:18 2006
@@ -38,6 +38,13 @@
   <build>
     <plugins>
       <plugin>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <source>1.4</source>
+          <target>1.4</target>
+        </configuration>
+      </plugin>
+      <plugin>
         <artifactId>maven-site-plugin</artifactId>
       </plugin>
       <plugin>
@@ -118,6 +125,11 @@
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-settings</artifactId>
       <version>2.0.4</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.doxia</groupId>
+      <artifactId>doxia-core</artifactId>
+      <version>1.0-alpha-8-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.doxia</groupId>

Modified: 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/DependenciesReport.java
URL: 
http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/DependenciesReport.java?rev=405686&r1=405685&r2=405686&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/DependenciesReport.java
 (original)
+++ 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/DependenciesReport.java
 Wed May 10 02:13:18 2006
@@ -19,7 +19,7 @@
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
 import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
+import org.apache.maven.artifact.resolver.ArtifactCollector;
 import org.apache.maven.artifact.resolver.ArtifactResolutionException;
 import 
org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
 import org.apache.maven.artifact.versioning.VersionRange;
@@ -35,12 +35,10 @@
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
-import java.util.Set;
 
 /**
  * Generates the Project Dependencies report.
@@ -67,6 +65,11 @@
     protected ArtifactMetadataSource artifactMetadataSource;
 
     /**
+     * @component
+     */
+    private ArtifactCollector collector;
+
+    /**
      * @see org.apache.maven.reporting.MavenReport#getName(java.util.Locale)
      */
     public String getName( Locale locale )
@@ -89,9 +92,7 @@
     {
         ReportResolutionListener listener = resolveProject();
 
-        DependenciesRenderer r = new DependenciesRenderer( getSink(), locale, 
listener.getDirectDependencies(),
-                                                           
listener.getTransitiveDependencies(),
-                                                           
listener.getOmittedArtifacts(), listener.getDepTree() );
+        DependenciesRenderer r = new DependenciesRenderer( getSink(), locale, 
listener );
 
         r.render();
     }
@@ -112,18 +113,14 @@
 
         try
         {
-            resolver.resolveTransitively( project.getDependencyArtifacts(), 
project.getArtifact(), managedVersions,
-                                          localRepository, 
project.getRemoteArtifactRepositories(),
-                                          artifactMetadataSource, null, 
Collections.singletonList( listener ) );
+            collector.collect( project.getDependencyArtifacts(), 
project.getArtifact(), managedVersions,
+                               localRepository, 
project.getRemoteArtifactRepositories(), artifactMetadataSource, null,
+                               Collections.singletonList( listener ) );
         }
         catch ( ArtifactResolutionException e )
         {
             getLog().error( "An error occurred while resolving project 
dependencies.", e );
         }
-        catch ( ArtifactNotFoundException e )
-        {
-            getLog().error( "An error occurred while resolving project 
dependencies.", e );
-        }
 
         return listener;
     }
@@ -174,28 +171,15 @@
     {
         private final Locale locale;
 
-        private final Map directDep;
-
-        private final Map transitiveDep;
-
-        private final Map omittedDeps;
+        private final ReportResolutionListener listener;
 
-        private final Map depTree;
-
-        DependenciesRenderer( Sink sink, Locale locale, Map 
directDependencies, Map transitiveDependencies,
-                              Map omittedDependencies, Map dependencyTree )
+        DependenciesRenderer( Sink sink, Locale locale, 
ReportResolutionListener listener )
         {
             super( sink );
 
             this.locale = locale;
 
-            this.directDep = Collections.unmodifiableMap( directDependencies );
-
-            this.transitiveDep = Collections.unmodifiableMap( 
transitiveDependencies );
-
-            this.omittedDeps = Collections.unmodifiableMap( 
omittedDependencies );
-
-            this.depTree = Collections.unmodifiableMap( dependencyTree );
+            this.listener = listener;
         }
 
         public String getTitle()
@@ -206,7 +190,7 @@
         public void renderBody()
         {
             // Dependencies report
-            Set dependencies = new HashSet( directDep.values() );
+            List dependencies = listener.getRootNode().getChildren();
 
             if ( dependencies.isEmpty() )
             {
@@ -231,19 +215,7 @@
             String[] tableHeader = new String[]{groupId, artifactId, version, 
classifier, type, optional};
 
             // collect dependencies by scope
-            Map dependenciesByScope = new HashMap();
-            for ( Iterator i = dependencies.iterator(); i.hasNext(); )
-            {
-                Artifact artifact = (Artifact) i.next();
-
-                List multiValue = (List) dependenciesByScope.get( 
artifact.getScope() );
-                if ( multiValue == null )
-                {
-                    multiValue = new ArrayList();
-                }
-                multiValue.add( artifact );
-                dependenciesByScope.put( artifact.getScope(), multiValue );
-            }
+            Map dependenciesByScope = getDependenciesByScope( dependencies );
 
             renderDependenciesForScope( Artifact.SCOPE_COMPILE,
                                         (List) dependenciesByScope.get( 
Artifact.SCOPE_COMPILE ), tableHeader );
@@ -259,8 +231,8 @@
             endSection();
 
             // Transitive dependencies
-            List artifacts = new ArrayList( transitiveDep.values() );
-            Collections.sort( artifacts, getArtifactComparator() );
+            List artifacts = new ArrayList( listener.getArtifacts() );
+            artifacts.removeAll( dependencies );
 
             startSection( getReportString( 
"report.transitivedependencies.title" ) );
 
@@ -272,18 +244,18 @@
             {
                 paragraph( getReportString( 
"report.transitivedependencies.intro" ) );
 
-                startTable();
-
-                tableHeader( tableHeader );
-
-                for ( Iterator i = artifacts.iterator(); i.hasNext(); )
-                {
-                    Artifact artifact = (Artifact) i.next();
-
-                    tableRow( getArtifactRow( artifact ) );
-                }
+                dependenciesByScope = getDependenciesByScope( artifacts );
 
-                endTable();
+                renderDependenciesForScope( Artifact.SCOPE_COMPILE,
+                                            (List) dependenciesByScope.get( 
Artifact.SCOPE_COMPILE ), tableHeader );
+                renderDependenciesForScope( Artifact.SCOPE_RUNTIME,
+                                            (List) dependenciesByScope.get( 
Artifact.SCOPE_RUNTIME ), tableHeader );
+                renderDependenciesForScope( Artifact.SCOPE_TEST, (List) 
dependenciesByScope.get( Artifact.SCOPE_TEST ),
+                                            tableHeader );
+                renderDependenciesForScope( Artifact.SCOPE_PROVIDED,
+                                            (List) dependenciesByScope.get( 
Artifact.SCOPE_PROVIDED ), tableHeader );
+                renderDependenciesForScope( Artifact.SCOPE_SYSTEM,
+                                            (List) dependenciesByScope.get( 
Artifact.SCOPE_SYSTEM ), tableHeader );
             }
 
             endSection();
@@ -293,17 +265,36 @@
 
             //for Dependencies Graph Tree
             startSection( getReportString( 
"report.dependencies.graph.tree.title" ) );
-            printDependencyListing( project.getArtifact() );
+            printDependencyListing( listener.getRootNode() );
             endSection();
 
             //for Artifact Descriptions / URLs
             startSection( getReportString( 
"report.dependencies.graph.tables.title" ) );
-            printDescriptionsAndURLs( project.getArtifact() );
+            printDescriptionsAndURLs( listener.getRootNode() );
             endSection();
 
             endSection();
         }
 
+        private Map getDependenciesByScope( List dependencies )
+        {
+            Map dependenciesByScope = new HashMap();
+            for ( Iterator i = dependencies.iterator(); i.hasNext(); )
+            {
+                ReportResolutionListener.Node node = 
(ReportResolutionListener.Node) i.next();
+                Artifact artifact = node.getArtifact();
+
+                List multiValue = (List) dependenciesByScope.get( 
artifact.getScope() );
+                if ( multiValue == null )
+                {
+                    multiValue = new ArrayList();
+                }
+                multiValue.add( artifact );
+                dependenciesByScope.put( artifact.getScope(), multiValue );
+            }
+            return dependenciesByScope;
+        }
+
         private void renderDependenciesForScope( String scope, List artifacts, 
String[] tableHeader )
         {
             if ( artifacts != null )
@@ -360,106 +351,92 @@
                 artifact.getClassifier(), artifact.getType(), 
artifact.isOptional() ? "(optional)" : " "};
         }
 
-        private void printDependencyListing( Artifact artifact )
+        private void printDependencyListing( ReportResolutionListener.Node 
node )
         {
-            String id = artifact.getId();
-
-            if ( !omittedDeps.containsKey( id ) )
-            {
-                sink.list();
-                sink.listItem();
-
-                sink.link( "#" + id );
-                sink.text( id );
-                sink.link_();
+            Artifact artifact = node.getArtifact();
+            String id = artifact.getDependencyConflictId();
 
-                if ( depTree.containsKey( id ) )
-                {
+            sink.list();
+            sink.listItem();
 
-                    List depList = (List) depTree.get( id );
-                    for ( Iterator deps = depList.iterator(); deps.hasNext(); )
-                    {
-                        Artifact dep = (Artifact) deps.next();
-                        printDependencyListing( dep );
-                    }
-                }
+            sink.link( "#" + id );
+            sink.text( id );
+            sink.link_();
 
-                sink.listItem_();
-                sink.list_();
+            for ( Iterator deps = node.getChildren().iterator(); 
deps.hasNext(); )
+            {
+                ReportResolutionListener.Node dep = 
(ReportResolutionListener.Node) deps.next();
+                printDependencyListing( dep );
             }
+
+            sink.listItem_();
+            sink.list_();
         }
 
-        private void printDescriptionsAndURLs( Artifact artifact )
+        private void printDescriptionsAndURLs( ReportResolutionListener.Node 
node )
         {
-            String id = artifact.getId();
+            Artifact artifact = node.getArtifact();
+            String id = artifact.getDependencyConflictId();
 
-            if ( !omittedDeps.containsKey( id ) )
+            String artifactDescription = null;
+            String artifactUrl = null;
+            try
             {
-                String artifactDescription = null;
-                String artifactUrl = null;
-                try
-                {
-                    MavenProject artifactProject = 
getMavenProjectFromRepository( artifact, localRepository );
-                    artifactDescription = artifactProject.getDescription();
-                    artifactUrl = artifactProject.getUrl();
-                }
-                catch ( ProjectBuildingException e )
-                {
-                    getLog().debug( e );
-                }
-                if ( artifactDescription == null )
-
-                {
-                    artifactDescription = getReportString( 
"report.dependencies.graph.description.default" );
-                }
+                MavenProject artifactProject = getMavenProjectFromRepository( 
artifact, localRepository );
+                artifactDescription = artifactProject.getDescription();
+                artifactUrl = artifactProject.getUrl();
+            }
+            catch ( ProjectBuildingException e )
+            {
+                getLog().debug( e );
+            }
+            if ( artifactDescription == null )
 
-                if ( artifactUrl == null )
-                {
-                    artifactUrl = getReportString( 
"report.dependencies.graph.url.default" );
-                }
+            {
+                artifactDescription = getReportString( 
"report.dependencies.graph.description.default" );
+            }
 
-                sink.anchor( id );
-                startSection( id );
-                sink.anchor_();
-
-                sink.paragraph();
-                sink.bold();
-                sink.text( getReportString( 
"report.dependencies.column.description" ) );
-                sink.bold_();
-                sink.lineBreak();
-                sink.text( artifactDescription );
-                sink.paragraph_();
-
-                sink.paragraph();
-                sink.bold();
-                sink.text( getReportString( "report.dependencies.column.url" ) 
);
-                sink.bold_();
-                sink.lineBreak();
+            if ( artifactUrl == null )
+            {
+                artifactUrl = getReportString( 
"report.dependencies.graph.url.default" );
+            }
 
-                if ( artifactUrl != null && artifactUrl.startsWith( "http://"; 
) )
-                {
-                    sink.link( artifactUrl );
-                    sink.text( artifactUrl );
-                    sink.link_();
-                }
-                else
-                {
-                    sink.text( artifactUrl );
-                }
-                sink.paragraph_();
+            sink.anchor( id );
+            startSection( id );
+            sink.anchor_();
+
+            sink.paragraph();
+            sink.bold();
+            sink.text( getReportString( 
"report.dependencies.column.description" ) );
+            sink.bold_();
+            sink.lineBreak();
+            sink.text( artifactDescription );
+            sink.paragraph_();
+
+            sink.paragraph();
+            sink.bold();
+            sink.text( getReportString( "report.dependencies.column.url" ) );
+            sink.bold_();
+            sink.lineBreak();
 
-                endSection();
+            if ( artifactUrl != null && artifactUrl.startsWith( "http://"; ) )
+            {
+                sink.link( artifactUrl );
+                sink.text( artifactUrl );
+                sink.link_();
             }
-
-            if ( depTree.containsKey( id ) )
+            else
             {
+                sink.text( artifactUrl );
+            }
+            sink.paragraph_();
 
-                List depList = (List) depTree.get( id );
-                for ( Iterator deps = depList.iterator(); deps.hasNext(); )
-                {
-                    Artifact dep = (Artifact) deps.next();
-                    printDescriptionsAndURLs( dep );
-                }
+            endSection();
+
+            for ( Iterator deps = node.getChildren().iterator(); 
deps.hasNext(); )
+            {
+                ReportResolutionListener.Node dep = 
(ReportResolutionListener.Node) deps.next();
+                printDescriptionsAndURLs( dep );
             }
         }
 

Modified: 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/ReportResolutionListener.java
URL: 
http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/ReportResolutionListener.java?rev=405686&r1=405685&r2=405686&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/ReportResolutionListener.java
 (original)
+++ 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/ReportResolutionListener.java
 Wed May 10 02:13:18 2006
@@ -16,18 +16,16 @@
  * limitations under the License.
  */
 
-import org.apache.maven.artifact.resolver.ResolutionListener;
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.resolver.ResolutionListener;
 import org.apache.maven.artifact.versioning.VersionRange;
 
-import java.util.Map;
+import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.Set;
-import java.util.HashSet;
-import java.util.Collections;
+import java.util.Map;
+import java.util.Stack;
 
 /**
  * @author Edwin Punzalan
@@ -35,244 +33,140 @@
 public class ReportResolutionListener
     implements ResolutionListener
 {
-    private Map directDep = new HashMap();
+    private Stack parents = new Stack();
 
-    private Map transitiveDep = new HashMap();
+    private Map artifacts = new HashMap();
 
-    private Map replacedDep = new HashMap();
+    private Node rootNode;
 
-    private List parents = new ArrayList();
-
-    private Map depTree = new HashMap();
-
-    private Map depMap = new HashMap();
-
-    private Map depthMap = new HashMap();
-
-    public void testArtifact( Artifact node )
+    public void testArtifact( Artifact artifact )
     {
-
+        // intentionally blank
     }
 
     public void startProcessChildren( Artifact artifact )
     {
-        parents.add( artifact );
+        Node node = (Node) artifacts.get( artifact.getDependencyConflictId() );
+        if ( parents.isEmpty() )
+        {
+            rootNode = node;
+        }
+
+        parents.push( node );
     }
 
     public void endProcessChildren( Artifact artifact )
     {
-        parents.remove( artifact );
+        Node check = (Node) parents.pop();
+        assert artifact.equals( check.artifact );
     }
 
-    public void includeArtifact( Artifact artifact )
+    public void omitForNearer( Artifact omitted, Artifact kept )
     {
-        addToDepMap( artifact );
+        assert omitted.getDependencyConflictId().equals( 
kept.getDependencyConflictId() );
 
-        if ( depthMap.containsKey( artifact.getId() ) )
+        Node prev = (Node) artifacts.get( omitted.getDependencyConflictId() );
+        if ( prev != null )
         {
-            Integer depth = (Integer) depthMap.get( artifact.getId() );
-            if ( depth.intValue() <= parents.size() )
+            if ( prev.parent != null )
             {
-                return;
+                prev.parent.children.remove( prev );
             }
+            artifacts.remove( omitted.getDependencyConflictId() );
         }
 
-        //remove from tree the artifact which is farther down the dependency 
trail
-        removeFromDepTree( artifact );
-
-        depthMap.put( artifact.getId(), new Integer( parents.size() ) );
-
-        addDependency( artifact );
-
-        addToDepTree( artifact );
+        includeArtifact( kept );
     }
 
-    private void removeFromDepTree( Artifact artifact )
+    public void omitForCycle( Artifact artifact )
     {
-        for ( Iterator artifactDeps = depTree.values().iterator(); 
artifactDeps.hasNext(); )
-        {
-            List depList = (List) artifactDeps.next();
-            for ( Iterator artifacts = depList.iterator(); 
artifacts.hasNext(); )
-            {
-                Artifact dep = (Artifact) artifacts.next();
-
-                if ( dep.getId().equals( artifact.getId() ) )
-                {
-                    depList.remove( dep );
-                    break;
-                }
-            }
-        }
+        // intentionally blank
     }
 
-    private void addToDepTree( Artifact artifact )
+    public void includeArtifact( Artifact artifact )
     {
-        if ( parents.size() > 0 )
+        if ( artifacts.containsKey( artifact.getDependencyConflictId() ) )
         {
-            Artifact parent = (Artifact) parents.get( parents.size() - 1 );
-
-            if ( depTree.containsKey( parent.getId() ) )
+            Node prev = (Node) artifacts.get( 
artifact.getDependencyConflictId() );
+            if ( prev.parent != null )
             {
-                List deps = (List) depTree.get( parent.getId() );
-
-                deps.add( artifact );
-            }
-            else
-            {
-                List deps = new ArrayList();
-                deps.add( artifact );
-                depTree.put( parent.getId(), deps );
+                prev.parent.children.remove( prev );
             }
+            artifacts.remove( artifact.getDependencyConflictId() );
         }
-    }
 
-    private void addToDepMap( Artifact artifact )
-    {
-        if ( parents.size() > 0 )
+        Node node = new Node();
+        node.artifact = artifact;
+        if ( !parents.isEmpty() )
         {
-            Artifact parent = (Artifact) parents.get( parents.size() - 1 );
-
-            if ( depMap.containsKey( parent.getId() ) )
-            {
-                List deps = (List) depMap.get( parent.getId() );
-
-                deps.add( artifact );
-            }
-            else
-            {
-                List deps = new ArrayList();
-                deps.add( artifact );
-                depMap.put( parent.getId(), deps );
-            }
+            node.parent = (Node) parents.peek();
+            node.parent.children.add( node );
         }
+        artifacts.put( artifact.getDependencyConflictId(), node );
     }
 
-    public void omitForNearer( Artifact omitted, Artifact kept )
+    public void updateScope( Artifact artifact, String scope )
     {
-        String key = omitted.getId();
+        Node node = (Node) artifacts.get( artifact.getDependencyConflictId() );
 
-        replacedDep.put( key, omitted );
-
-        if ( directDep.containsKey( key ) )
-        {
-            directDep.remove( key );
-        }
-        else if ( transitiveDep.containsKey( key ) )
-        {
-            transitiveDep.remove( key );
-        }
-
-        addDependency( kept );
+        node.artifact.setScope( scope );
     }
 
-    private void addDependency( Artifact artifact )
+    public void manageArtifact( Artifact artifact, Artifact replacement )
     {
-        if ( parents.size() == 0 )
-        {
-            //do nothing... artifact is current project
-        }
-        else if ( parents.size() == 1 )
-        {
-            if ( !directDep.containsKey( artifact.getId() ) )
-            {
-                if ( artifact.getScope() == null )
-                {
-                    artifact.setScope( Artifact.SCOPE_COMPILE );
-                }
-                directDep.put( artifact.getId(), artifact );
-            }
-        }
-        else
-        {
-            if ( !transitiveDep.containsKey( artifact.getId() ) )
-            {
-                if ( artifact.getScope() == null )
-                {
-                    Artifact parent = (Artifact) parents.get(  parents.size() 
- 1 );
-
-                    artifact.setScope( parent.getScope() );
-                }
+        Node node = (Node) artifacts.get( artifact.getDependencyConflictId() );
 
-                transitiveDep.put( artifact.getId(), artifact );
-            }
-        }
-    }
-
-    public void updateScope( Artifact artifact, String scope )
-    {
-        if ( directDep.containsKey( artifact.getId() ) )
+        if ( replacement.getVersion() != null )
         {
-            Artifact depArtifact = (Artifact) directDep.get( artifact.getId() 
);
-
-            depArtifact.setScope( scope );
+            node.artifact.setVersion( replacement.getVersion() );
         }
-
-        if ( transitiveDep.containsKey( artifact.getId() ) )
+        if ( replacement.getScope() != null )
         {
-            Artifact depArtifact = (Artifact) transitiveDep.get( 
artifact.getId() );
-
-            depArtifact.setScope( scope );
+            node.artifact.setScope( replacement.getScope() );
         }
     }
 
-    public void manageArtifact( Artifact artifact, Artifact replacement )
-    {
-        omitForNearer( artifact, replacement );
-    }
-
-    public void omitForCycle( Artifact artifact )
-    {
-        replacedDep.put( artifact.getId(), artifact );
-    }
-
-    public void updateScopeCurrentPom( Artifact artifact, String scope )
+    public void updateScopeCurrentPom( Artifact artifact, String key )
     {
-        updateScope( artifact, scope );
+        // intentionally blank
     }
 
     public void selectVersionFromRange( Artifact artifact )
     {
-
+        // intentionally blank
     }
 
-    public void restrictRange( Artifact artifact, Artifact replacement, 
VersionRange newRange )
+    public void restrictRange( Artifact artifact, Artifact artifact1, 
VersionRange versionRange )
     {
-
+        // intentionally blank
     }
 
-    public Set getArtifacts()
+    public Collection getArtifacts()
     {
-        Set all = new HashSet();
-
-        all.addAll( directDep.values() );
-
-        all.addAll( transitiveDep.values() );
-
-        return all;
+        return artifacts.values();
     }
 
-    public Map getTransitiveDependencies()
+    static class Node
     {
-        return Collections.unmodifiableMap( transitiveDep );
-    }
+        private Node parent;
 
-    public Map getDirectDependencies()
-    {
-        return Collections.unmodifiableMap( directDep );
-    }
+        private List children = new ArrayList();
 
-    public Map getOmittedArtifacts()
-    {
-        return Collections.unmodifiableMap( replacedDep );
-    }
+        private Artifact artifact;
 
-    public Map getDepTree()
-    {
-        return depTree;
+        public List getChildren()
+        {
+            return children;
+        }
+
+        public Artifact getArtifact()
+        {
+            return artifact;
+        }
     }
 
-    public Map getDepMap()
+    public Node getRootNode()
     {
-        return depMap;
+        return rootNode;
     }
 }

Modified: 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/resources/project-info-report.properties
URL: 
http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-project-info-reports-plugin/src/main/resources/project-info-report.properties?rev=405686&r1=405685&r2=405686&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/resources/project-info-report.properties
 (original)
+++ 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/resources/project-info-report.properties
 Wed May 10 02:13:18 2006
@@ -18,7 +18,6 @@
 report.dependencies.nolist=There are no dependencies for this project. It is a 
standalone application that does not depend on any other project.
 report.dependencies.title=Project Dependencies
 report.dependencies.description=This document lists the projects dependencies 
and provides information on each dependency.
-report.dependencies.intro=The following is a list of dependencies for this 
project. These dependencies are required to compile and run the application:
 report.dependencies.column.groupId=GroupId
 report.dependencies.column.artifactId=ArtifactId
 report.dependencies.column.version=Version
@@ -36,12 +35,7 @@
 
 report.transitivedependencies.title=Project Transitive Dependencies
 report.transitivedependencies.nolist=No transitive dependencies are required 
for this project.
-report.transitivedependencies.intro=The following is a list of transitive 
dependencies for this project. Transitive dependencies are the dependencies of 
the project dependencies:
-report.transitivedependencies.column.groupId=GroupId
-report.transitivedependencies.column.artifactId=ArtifactId
-report.transitivedependencies.column.version=Version
-report.transitivedependencies.column.description=Description
-report.transitivedependencies.column.url=URL
+report.transitivedependencies.intro=The following is a list of transitive 
dependencies for this project. Transitive dependencies are the dependencies of 
the project dependencies.
 
 report.mailing-lists.name=Mailing Lists
 report.mailing-lists.nolist=There are no mailing lists currently associated 
with this project.

Modified: 
maven/plugins/trunk/maven-project-info-reports-plugin/src/test/java/org/apache/maven/report/projectinfo/ReportResolutionListenerTest.java
URL: 
http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-project-info-reports-plugin/src/test/java/org/apache/maven/report/projectinfo/ReportResolutionListenerTest.java?rev=405686&r1=405685&r2=405686&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-project-info-reports-plugin/src/test/java/org/apache/maven/report/projectinfo/ReportResolutionListenerTest.java
 (original)
+++ 
maven/plugins/trunk/maven-project-info-reports-plugin/src/test/java/org/apache/maven/report/projectinfo/ReportResolutionListenerTest.java
 Wed May 10 02:13:18 2006
@@ -22,8 +22,10 @@
 import org.apache.maven.artifact.handler.DefaultArtifactHandler;
 import org.apache.maven.artifact.versioning.VersionRange;
 
-import java.util.Set;
-import java.util.Map;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Iterator;
 import java.util.List;
 
 /**
@@ -34,9 +36,12 @@
 {
     private ReportResolutionListener listener;
 
+    private static final Artifact[] EMPTY_ARTIFACTS = new Artifact[]{};
+
     public void testSimpleDependencyTree()
     {
         Artifact projectArtifact = createArtifact( "test-project", 
"project-artifact", "1.0" );
+        listener.includeArtifact( projectArtifact );
 
         listener.startProcessChildren( projectArtifact );
 
@@ -51,62 +56,52 @@
 
         listener.endProcessChildren( projectArtifact );
 
-        Set artifacts = listener.getArtifacts();
-        assertEquals( "Test total artifacts", 3, artifacts.size() );
-        assertTrue( "Test dependency one", artifacts.contains( depArtifact01 ) 
);
-        assertTrue( "Test dependency two", artifacts.contains( depArtifact02 ) 
);
-        assertTrue( "Test dependency three", artifacts.contains( depArtifact03 
) );
-
-        Map depMap = listener.getDepMap();
-        assertEquals( "Test total artifacts in dependency map", 1, 
depMap.size() );
-        assertTrue( "Test dependency map key", depMap.containsKey( 
projectArtifact.getId() ) );
-        List dependencies = (List) depMap.get( projectArtifact.getId() );
-        assertEquals( "Test dependency total", 3, dependencies.size() );
-        assertTrue( "Test dependency content 1", dependencies.contains( 
depArtifact01 ) );
-        assertTrue( "Test dependency content 2", dependencies.contains( 
depArtifact02 ) );
-        assertTrue( "Test dependency content 3", dependencies.contains( 
depArtifact03 ) );
-
-        Map depTree = listener.getDepTree();
-        assertEquals( "Test total artifacts in dependency map", 1, 
depTree.size() );
-        assertTrue( "Test dependency map key", depTree.containsKey( 
projectArtifact.getId() ) );
-        dependencies = (List) depTree.get( projectArtifact.getId() );
-        assertEquals( "Test dependency total", 3, dependencies.size() );
-        assertTrue( "Test dependency content 1", dependencies.contains( 
depArtifact01 ) );
-        assertTrue( "Test dependency content 2", dependencies.contains( 
depArtifact02 ) );
-        assertTrue( "Test dependency content 3", dependencies.contains( 
depArtifact03 ) );
-
-        Map directDeps = listener.getDirectDependencies();
-        assertEquals( "Test total direct dependencies", 3, directDeps.size() );
-        assertTrue( "Test dependency content 1", directDeps.containsValue( 
depArtifact01 ) );
-        assertTrue( "Test dependency content 2", directDeps.containsValue( 
depArtifact02 ) );
-        assertTrue( "Test dependency content 3", directDeps.containsValue( 
depArtifact03 ) );
+        Collection artifacts = listener.getArtifacts();
+        assertTrue( "Check artifact lists match", compareNodeListToArtifacts( 
artifacts, new Artifact[]{depArtifact01,
+            depArtifact02, depArtifact03, projectArtifact} ) );
+
+        assertEquals( "Test dependency map key", projectArtifact, 
listener.getRootNode().getArtifact() );
+
+        assertTrue( "Check artifact lists match", compareNodeListToArtifacts( 
listener.getRootNode().getChildren(),
+                                                                              
new Artifact[]{depArtifact01,
+                                                                               
   depArtifact02, depArtifact03} ) );
+    }
+
+    private boolean compareNodeListToArtifacts( Collection nodes, Artifact[] 
artifacts )
+    {
+        List artifactsRemaining = new ArrayList( Arrays.asList( artifacts ) );
 
-        Map omittedDeps = listener.getOmittedArtifacts();
-        assertEquals( "Test total omitted dependencies", 0, omittedDeps.size() 
);
+        for ( Iterator i = nodes.iterator(); i.hasNext(); )
+        {
+            ReportResolutionListener.Node node = 
(ReportResolutionListener.Node) i.next();
 
-        Map transDeps = listener.getTransitiveDependencies();
-        assertEquals( "Test total transitive dependencies", 0, 
transDeps.size() );
+            if ( !artifactsRemaining.remove( node.getArtifact() ) )
+            {
+                return false;
+            }
+        }
+        return artifactsRemaining.isEmpty();
     }
 
     public void testSimpleDepTreeWithTransitiveDeps()
     {
         Artifact projectArtifact = createArtifact( "test-project", 
"project-artifact", "1.0" );
+        listener.includeArtifact( projectArtifact );
 
         listener.startProcessChildren( projectArtifact );
 
         Artifact depArtifact1 = createArtifact( "test-dep", "dependency-one", 
"1.0" );
         listener.includeArtifact( depArtifact1 );
 
-            listener.startProcessChildren( depArtifact1 );
-
-            Artifact depArtifact01 = createArtifact( "test-dep", 
"dependency-zero-one", "1.0" );
-            listener.includeArtifact( depArtifact01 );
+        listener.startProcessChildren( depArtifact1 );
 
-            Artifact depArtifact02 = createArtifact( "test-dep", 
"dependency-zero-two", "1.0" );
-            listener.includeArtifact( depArtifact02 );
+        Artifact depArtifact01 = createArtifact( "test-dep", 
"dependency-zero-one", "1.0" );
+        listener.includeArtifact( depArtifact01 );
 
-            listener.endProcessChildren( depArtifact1 );
+        Artifact depArtifact02 = createArtifact( "test-dep", 
"dependency-zero-two", "1.0" );
+        listener.includeArtifact( depArtifact02 );
 
+        listener.endProcessChildren( depArtifact1 );
 
         Artifact depArtifact2 = createArtifact( "test-dep", "dependency-two", 
"1.0" );
         listener.includeArtifact( depArtifact2 );
@@ -116,167 +111,93 @@
 
         listener.endProcessChildren( projectArtifact );
 
-        Set artifacts = listener.getArtifacts();
-        assertEquals( "Test total artifacts", 5, artifacts.size() );
-        assertTrue( "Test dependency one", artifacts.contains( depArtifact1 ) 
);
-        assertTrue( "Test dependency two", artifacts.contains( depArtifact2 ) 
);
-        assertTrue( "Test dependency three", artifacts.contains( depArtifact3 
) );
-        assertTrue( "Test dependency four", artifacts.contains( depArtifact01 
) );
-        assertTrue( "Test dependency five", artifacts.contains( depArtifact02 
) );
-
-        Map depMap = listener.getDepMap();
-        assertEquals( "Test total artifacts in dependency map", 2, 
depMap.size() );
-        assertTrue( "Test dependency map key", depMap.containsKey( 
projectArtifact.getId() ) );
-        List dependencies = (List) depMap.get( projectArtifact.getId() );
-        assertEquals( "Test dependency total", 3, dependencies.size() );
-        assertTrue( "Test dependency content 1", dependencies.contains( 
depArtifact1 ) );
-        assertTrue( "Test dependency content 2", dependencies.contains( 
depArtifact2 ) );
-        assertTrue( "Test dependency content 3", dependencies.contains( 
depArtifact3 ) );
-        assertTrue( "Test dependency map key", depMap.containsKey( 
projectArtifact.getId() ) );
-        dependencies = (List) depMap.get( depArtifact1.getId() );
-        assertEquals( "Test dependency total", 2, dependencies.size() );
-        assertTrue( "Test dependency content 1", dependencies.contains( 
depArtifact01 ) );
-        assertTrue( "Test dependency content 2", dependencies.contains( 
depArtifact02 ) );
-
-        Map depTree = listener.getDepTree();
-        assertEquals( "Test total artifacts in dependency map", 2, 
depTree.size() );
-        assertTrue( "Test dependency map key", depTree.containsKey( 
projectArtifact.getId() ) );
-        dependencies = (List) depTree.get( projectArtifact.getId() );
-        assertEquals( "Test dependency total", 3, dependencies.size() );
-        assertTrue( "Test dependency content 1", dependencies.contains( 
depArtifact1 ) );
-        assertTrue( "Test dependency content 2", dependencies.contains( 
depArtifact2 ) );
-        assertTrue( "Test dependency content 3", dependencies.contains( 
depArtifact3 ) );
-        assertTrue( "Test dependency map key", depTree.containsKey( 
depArtifact1.getId() ) );
-        dependencies = (List) depTree.get( depArtifact1.getId() );
-        assertEquals( "Test dependency total", 2, dependencies.size() );
-        assertTrue( "Test dependency content 1", dependencies.contains( 
depArtifact01 ) );
-        assertTrue( "Test dependency content 2", dependencies.contains( 
depArtifact02 ) );
-
-        Map directDeps = listener.getDirectDependencies();
-        assertEquals( "Test total direct dependencies", 3, directDeps.size() );
-        assertTrue( "Test dependency content 1", directDeps.containsValue( 
depArtifact1 ) );
-        assertTrue( "Test dependency content 2", directDeps.containsValue( 
depArtifact2 ) );
-        assertTrue( "Test dependency content 3", directDeps.containsValue( 
depArtifact3 ) );
-
-        Map omittedDeps = listener.getOmittedArtifacts();
-        assertEquals( "Test total omitted dependencies", 0, omittedDeps.size() 
);
-
-        Map transDeps = listener.getTransitiveDependencies();
-        assertEquals( "Test total transitive dependencies", 2, 
transDeps.size() );
-        assertTrue( "Test transitive dependency 1", transDeps.containsValue( 
depArtifact01 ) );
-        assertTrue( "Test transitive dependency 1", transDeps.containsValue( 
depArtifact02 ) );
+        Collection artifacts = listener.getArtifacts();
+        assertTrue( compareNodeListToArtifacts( artifacts, new 
Artifact[]{depArtifact1, depArtifact2, depArtifact3,
+            depArtifact01, depArtifact02, projectArtifact} ) );
+
+        assertEquals( "Check root", projectArtifact, 
listener.getRootNode().getArtifact() );
+        assertTrue( compareNodeListToArtifacts( 
listener.getRootNode().getChildren(),
+                                                new Artifact[]{depArtifact1, 
depArtifact2, depArtifact3} ) );
+
+        ReportResolutionListener.Node depNode1 = getChild( 
listener.getRootNode(), depArtifact1 );
+        assertTrue(
+            compareNodeListToArtifacts( depNode1.getChildren(), new 
Artifact[]{depArtifact01, depArtifact02} ) );
+    }
+
+    private ReportResolutionListener.Node getChild( 
ReportResolutionListener.Node node, Artifact artifact )
+    {
+        ReportResolutionListener.Node result = null;
+        for ( Iterator i = node.getChildren().iterator(); i.hasNext() && 
result == null; )
+        {
+            ReportResolutionListener.Node child = 
(ReportResolutionListener.Node) i.next();
+            if ( child.getArtifact().equals( artifact ) )
+            {
+                result = child;
+            }
+        }
+        return result;
     }
 
     public void testComplexDependencyTree()
     {
         Artifact projectArtifact = createArtifact( "test-project", 
"project-artifact", "1.0" );
+        listener.includeArtifact( projectArtifact );
 
         listener.startProcessChildren( projectArtifact );
 
         Artifact depArtifact1 = createArtifact( "test-dep", "dependency-one", 
"1.0", Artifact.SCOPE_COMPILE );
         listener.includeArtifact( depArtifact1 );
 
-            listener.startProcessChildren( depArtifact1 );
-
-            Artifact depArtifact11 = createArtifact( "test-dep", 
"dependency-zero-one", "1.0" );
-            listener.includeArtifact( depArtifact11 );
+        listener.startProcessChildren( depArtifact1 );
 
-            Artifact depArtifact12 = createArtifact( "test-dep", 
"dependency-zero-two", "1.0" );
-            listener.includeArtifact( depArtifact12 );
+        Artifact depArtifact11 = createArtifact( "test-dep", 
"dependency-zero-one", "1.0" );
+        listener.includeArtifact( depArtifact11 );
 
-                listener.startProcessChildren( depArtifact12 );
+        Artifact depArtifact12 = createArtifact( "test-dep", 
"dependency-zero-two", "1.0" );
+        listener.includeArtifact( depArtifact12 );
 
-                Artifact depArtifact121 = createArtifact( "test-dep", 
"dep-zero-two-1", "1.0" );
-                listener.includeArtifact( depArtifact121 );
+        listener.startProcessChildren( depArtifact12 );
 
-                listener.endProcessChildren( depArtifact12 );
+        Artifact depArtifact121 = createArtifact( "test-dep", 
"dep-zero-two-1", "1.0" );
+        listener.includeArtifact( depArtifact121 );
 
-            listener.endProcessChildren( depArtifact1 );
+        listener.endProcessChildren( depArtifact12 );
 
+        listener.endProcessChildren( depArtifact1 );
 
         Artifact depArtifact2 = createArtifact( "test-dep", "dependency-two", 
"1.0", Artifact.SCOPE_TEST );
         listener.includeArtifact( depArtifact2 );
 
-            listener.startProcessChildren( depArtifact2 );
+        listener.startProcessChildren( depArtifact2 );
 
-            Artifact depArtifact21 = createArtifact( "test-dep", 
"dep-zero-two-1", "1.0" );
-            listener.includeArtifact( depArtifact21 );
-            listener.omitForNearer( depArtifact121, depArtifact21 );
-            listener.updateScope( depArtifact121, Artifact.SCOPE_TEST );
+        Artifact depArtifact21 = createArtifact( "test-dep", "dep-zero-two-1", 
"1.0" );
+        listener.includeArtifact( depArtifact21 );
+        listener.omitForNearer( depArtifact121, depArtifact21 );
 
-            listener.endProcessChildren( depArtifact2 );
+        listener.endProcessChildren( depArtifact2 );
 
         Artifact depArtifact3 = createArtifact( "test-dep", 
"dependency-three", "1.0", Artifact.SCOPE_COMPILE );
         listener.includeArtifact( depArtifact3 );
 
         listener.endProcessChildren( projectArtifact );
 
-        Set artifacts = listener.getArtifacts();
-        assertEquals( "Test total artifacts", 6, artifacts.size() );
-        assertTrue( "Test dependency one", artifacts.contains( depArtifact1 ) 
);
-        assertTrue( "Test dependency two", artifacts.contains( depArtifact2 ) 
);
-        assertTrue( "Test dependency three", artifacts.contains( depArtifact3 
) );
-        assertTrue( "Test dependency four", artifacts.contains( depArtifact11 
) );
-        assertTrue( "Test dependency five", artifacts.contains( depArtifact12 
) );
-        assertTrue( "Test dependency six", artifacts.contains( depArtifact21 ) 
);
-
-        Map depMap = listener.getDepMap();
-        assertEquals( "Test total artifacts in dependency map", 4, 
depMap.size() );
-        assertTrue( "Test dependency map key", depMap.containsKey( 
projectArtifact.getId() ) );
-        List dependencies = (List) depMap.get( projectArtifact.getId() );
-        assertEquals( "Test dependency total", 3, dependencies.size() );
-        assertTrue( "Test dependency content 1", dependencies.contains( 
depArtifact1 ) );
-        assertTrue( "Test dependency content 2", dependencies.contains( 
depArtifact2 ) );
-        assertTrue( "Test dependency content 3", dependencies.contains( 
depArtifact3 ) );
-        assertTrue( "Test dependency map key", depMap.containsKey( 
depArtifact1.getId() ) );
-        dependencies = (List) depMap.get( depArtifact1.getId() );
-        assertEquals( "Test dependency total", 2, dependencies.size() );
-        assertTrue( "Test dependency content 1", dependencies.contains( 
depArtifact11 ) );
-        assertTrue( "Test dependency content 2", dependencies.contains( 
depArtifact12 ) );
-        assertTrue( "Test dependency map key", depMap.containsKey( 
depArtifact12.getId() ) );
-        dependencies = (List) depMap.get( depArtifact12.getId() );
-        assertEquals( "Test dependency total", 1, dependencies.size() );
-        assertTrue( "Test dependency content 1", dependencies.contains( 
depArtifact121 ) );
-        assertTrue( "Test dependency map key", depMap.containsKey( 
depArtifact2.getId() ) );
-        dependencies = (List) depMap.get( depArtifact2.getId() );
-        assertEquals( "Test dependency total", 1, dependencies.size() );
-        assertTrue( "Test dependency content 1", dependencies.contains( 
depArtifact21 ) );
-
-        Map depTree = listener.getDepTree();
-        assertEquals( "Test total artifacts in dependency map", 4, 
depTree.size() );
-        assertTrue( "Test dependency map key", depTree.containsKey( 
projectArtifact.getId() ) );
-        dependencies = (List) depTree.get( projectArtifact.getId() );
-        assertEquals( "Test dependency total", 3, dependencies.size() );
-        assertTrue( "Test dependency content 1", dependencies.contains( 
depArtifact1 ) );
-        assertTrue( "Test dependency content 2", dependencies.contains( 
depArtifact2 ) );
-        assertTrue( "Test dependency content 3", dependencies.contains( 
depArtifact3 ) );
-        assertTrue( "Test dependency map key", depTree.containsKey( 
depArtifact1.getId() ) );
-        dependencies = (List) depTree.get( depArtifact1.getId() );
-        assertEquals( "Test dependency total", 2, dependencies.size() );
-        assertTrue( "Test dependency content 1", dependencies.contains( 
depArtifact11 ) );
-        assertTrue( "Test dependency content 2", dependencies.contains( 
depArtifact12 ) );
-        assertTrue( "Test dependency map key", depTree.containsKey( 
depArtifact12.getId() ) );
-        dependencies = (List) depTree.get( depArtifact12.getId() );
-        assertEquals( "Test dependency total", 0, dependencies.size() );
-        assertTrue( "Test dependency map key", depTree.containsKey( 
depArtifact2.getId() ) );
-        dependencies = (List) depTree.get( depArtifact2.getId() );
-        assertEquals( "Test dependency total", 1, dependencies.size() );
-        assertTrue( "Test dependency content 1", dependencies.contains( 
depArtifact21 ) );
-
-        Map directDeps = listener.getDirectDependencies();
-        assertEquals( "Test total direct dependencies", 3, directDeps.size() );
-        assertTrue( "Test dependency content 1", directDeps.containsValue( 
depArtifact1 ) );
-        assertTrue( "Test dependency content 2", directDeps.containsValue( 
depArtifact2 ) );
-        assertTrue( "Test dependency content 3", directDeps.containsValue( 
depArtifact3 ) );
-
-        Map omittedDeps = listener.getOmittedArtifacts();
-        assertEquals( "Test total omitted dependencies", 1, omittedDeps.size() 
);
-
-        Map transDeps = listener.getTransitiveDependencies();
-        assertEquals( "Test total transitive dependencies", 3, 
transDeps.size() );
-        assertTrue( "Test transitive dependency 1", transDeps.containsValue( 
depArtifact11 ) );
-        assertTrue( "Test transitive dependency 2", transDeps.containsValue( 
depArtifact12 ) );
-        assertTrue( "Test transitive dependency 3", transDeps.containsValue( 
depArtifact21 ) );
+        Collection artifacts = listener.getArtifacts();
+        assertTrue( compareNodeListToArtifacts( artifacts, new 
Artifact[]{depArtifact1, depArtifact2, depArtifact3,
+            depArtifact11, depArtifact12, depArtifact21, projectArtifact} ) );
+
+        assertEquals( projectArtifact, listener.getRootNode().getArtifact() );
+
+        assertTrue( compareNodeListToArtifacts( 
listener.getRootNode().getChildren(),
+                                                new Artifact[]{depArtifact1, 
depArtifact2, depArtifact3} ) );
+
+        ReportResolutionListener.Node node = getChild( listener.getRootNode(), 
depArtifact1 );
+        assertTrue( compareNodeListToArtifacts( node.getChildren(), new 
Artifact[]{depArtifact11, depArtifact12} ) );
+
+        node = getChild( node, depArtifact12 );
+        assertTrue( compareNodeListToArtifacts( node.getChildren(), 
EMPTY_ARTIFACTS ) );
+
+        node = getChild( listener.getRootNode(), depArtifact2 );
+        assertTrue( compareNodeListToArtifacts( node.getChildren(), new 
Artifact[]{depArtifact21} ) );
     }
 
     private Artifact createArtifact( String groupId, String artifactId, String 
version )
@@ -288,21 +209,14 @@
     {
         VersionRange versionRange = VersionRange.createFromVersion( version );
 
-        Artifact artifact = new DefaultArtifact( groupId, artifactId, 
versionRange, scope,
-                                                 "jar", null, new 
DefaultArtifactHandler(), false );
-
-        return artifact;
+        return new DefaultArtifact( groupId, artifactId, versionRange, scope, 
"jar", null, new DefaultArtifactHandler(),
+                                    false );
     }
 
     protected void setUp()
         throws Exception
     {
+        super.setUp();
         listener = new ReportResolutionListener();
-    }
-
-    protected void tearDown()
-        throws Exception
-    {
-        listener = null;
     }
 }


Reply via email to