You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by vs...@apache.org on 2008/07/08 00:58:07 UTC

svn commit: r674664 - in /maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo: DependenciesReport.java dependencies/Dependencies.java dependencies/renderer/DependenciesRenderer.java

Author: vsiveton
Date: Mon Jul  7 15:58:07 2008
New Revision: 674664

URL: http://svn.apache.org/viewvc?rev=674664&view=rev
Log:
MPIR-110: Update code due to deprecated classes in maven-dependency-tree:1.1

o removed DependencyTree dependency

Modified:
    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/dependencies/Dependencies.java
    maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java

Modified: maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/DependenciesReport.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/DependenciesReport.java?rev=674664&r1=674663&r2=674664&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 Mon Jul  7 15:58:07 2008
@@ -19,16 +19,19 @@
  * under the License.
  */
 
+import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.manager.WagonManager;
 import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
 import org.apache.maven.artifact.resolver.ArtifactCollector;
+import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
+import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter;
 import org.apache.maven.project.MavenProjectBuilder;
 import org.apache.maven.report.projectinfo.dependencies.Dependencies;
 import org.apache.maven.report.projectinfo.dependencies.DependenciesReportConfiguration;
 import org.apache.maven.report.projectinfo.dependencies.RepositoryUtils;
 import org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer;
 import org.apache.maven.settings.Settings;
-import org.apache.maven.shared.dependency.tree.DependencyTree;
+import org.apache.maven.shared.dependency.tree.DependencyNode;
 import org.apache.maven.shared.dependency.tree.DependencyTreeBuilder;
 import org.apache.maven.shared.dependency.tree.DependencyTreeBuilderException;
 import org.apache.maven.shared.jar.classes.JarClassesAnalysis;
@@ -151,15 +154,15 @@
                                                          project.getRemoteArtifactRepositories(),
                                                          project.getPluginArtifactRepositories(), localRepository );
 
-        DependencyTree dependencyTree = resolveProject();
+        DependencyNode dependencyTreeNode = resolveProject();
 
-        Dependencies dependencies = new Dependencies( project, dependencyTree, classesAnalyzer );
+        Dependencies dependencies = new Dependencies( project, dependencyTreeNode, classesAnalyzer );
 
         DependenciesReportConfiguration config =
             new DependenciesReportConfiguration( dependencyDetailsEnabled, dependencyLocationsEnabled );
 
         DependenciesRenderer r =
-            new DependenciesRenderer( getSink(), locale, i18n, dependencies, dependencyTree, config, repoUtils );
+            new DependenciesRenderer( getSink(), locale, i18n, dependencies, dependencyTreeNode, config, repoUtils );
 
         repoUtils.setLog( getLog() );
         r.setLog( getLog() );
@@ -176,12 +179,13 @@
     // Private methods
     // ----------------------------------------------------------------------
 
-    private DependencyTree resolveProject()
+    private DependencyNode resolveProject()
     {
         try
         {
-            return dependencyTreeBuilder.buildDependencyTree( project, localRepository, factory, artifactMetadataSource,
-                                                              collector );
+            ArtifactFilter artifactFilter = new ScopeArtifactFilter( Artifact.SCOPE_TEST );
+            return dependencyTreeBuilder.buildDependencyTree( project, localRepository, factory,
+                                                              artifactMetadataSource, artifactFilter, collector );
         }
         catch ( DependencyTreeBuilderException e )
         {

Modified: maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/Dependencies.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/Dependencies.java?rev=674664&r1=674663&r2=674664&view=diff
==============================================================================
--- maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/Dependencies.java (original)
+++ maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/Dependencies.java Mon Jul  7 15:58:07 2008
@@ -23,7 +23,6 @@
 import org.apache.maven.artifact.ArtifactUtils;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.shared.dependency.tree.DependencyNode;
-import org.apache.maven.shared.dependency.tree.DependencyTree;
 import org.apache.maven.shared.jar.JarAnalyzer;
 import org.apache.maven.shared.jar.JarData;
 import org.apache.maven.shared.jar.classes.JarClassesAnalysis;
@@ -43,17 +42,46 @@
 {
     private final MavenProject project;
 
-    private final List projectDependencies;
-
-    private final DependencyTree dependencyTree;
+    private final DependencyNode dependencyTreeNode;
 
     private final JarClassesAnalysis classesAnalyzer;
 
-    public Dependencies( MavenProject project, DependencyTree dependencyTree, JarClassesAnalysis classesAnalyzer )
+    /**
+     * @since 2.1
+     */
+    private List projectDependencies;
+
+    /**
+     * @since 2.1
+     */
+    private List projectTransitiveDependencies;
+
+    /**
+     * @since 2.1
+     */
+    private List allDependencies;
+
+    /**
+     * @since 2.1
+     */
+    private Map dependenciesByScope;
+
+    /**
+     * @since 2.1
+     */
+    private Map transitiveDependenciesByScope;
+
+    /**
+     * Default constructor
+     *
+     * @param project
+     * @param dependencyTreeNode
+     * @param classesAnalyzer
+     */
+    public Dependencies( MavenProject project, DependencyNode dependencyTreeNode, JarClassesAnalysis classesAnalyzer )
     {
         this.project = project;
-        this.dependencyTree = dependencyTree;
-        this.projectDependencies = dependencyTree.getRootNode().getChildren();
+        this.dependencyTreeNode = dependencyTreeNode;
         this.classesAnalyzer = classesAnalyzer;
 
         /*
@@ -67,7 +95,7 @@
             projectMap.put( ArtifactUtils.versionlessKey( artifact ), artifact );
         }
 
-        mapArtifactFiles( dependencyTree.getRootNode(), projectMap );
+        mapArtifactFiles( dependencyTreeNode, projectMap );
     }
 
     /**
@@ -80,9 +108,12 @@
         return project;
     }
 
+    /**
+     * @return <code>true</code> if getProjectDependencies() is not empty, <code>false</code> otherwise.
+     */
     public boolean hasDependencies()
     {
-        return ( projectDependencies != null ) && ( !this.projectDependencies.isEmpty() );
+        return ( getProjectDependencies() != null ) && ( !getProjectDependencies().isEmpty() );
     }
 
     /**
@@ -90,7 +121,20 @@
      */
     public List getProjectDependencies()
     {
-        return new ArrayList( projectDependencies );
+        if ( projectDependencies != null )
+        {
+            return projectDependencies;
+        }
+
+        projectDependencies = new ArrayList();
+        for ( Iterator i = dependencyTreeNode.getChildren().iterator(); i.hasNext(); )
+        {
+            DependencyNode dependencyNode = (DependencyNode) i.next();
+
+            projectDependencies.add( dependencyNode.getArtifact() );
+        }
+
+        return projectDependencies;
     }
 
     /**
@@ -98,9 +142,15 @@
      */
     public List getTransitiveDependencies()
     {
-        List deps = new ArrayList( getAllDependencies() );
-        deps.removeAll( projectDependencies );
-        return deps;
+        if ( projectTransitiveDependencies != null )
+        {
+            return projectTransitiveDependencies;
+        }
+
+        projectTransitiveDependencies = new ArrayList( getAllDependencies() );
+        projectTransitiveDependencies.removeAll( getProjectDependencies() );
+
+        return projectTransitiveDependencies;
     }
 
     /**
@@ -108,27 +158,36 @@
      */
     public List getAllDependencies()
     {
-        List artifacts = new ArrayList();
-        for ( Iterator i = dependencyTree.getNodes().iterator(); i.hasNext(); )
+        if ( allDependencies != null )
+        {
+            return allDependencies;
+        }
+
+        allDependencies = new ArrayList();
+        for ( Iterator i = dependencyTreeNode.getChildren().iterator(); i.hasNext(); )
         {
             DependencyNode dependencyNode = (DependencyNode) i.next();
 
-            if (dependencyNode.getState() != DependencyNode.INCLUDED )
+            if ( dependencyNode.getState() != DependencyNode.INCLUDED )
             {
                 continue;
             }
 
-            if ( dependencyNode.getArtifact().getGroupId().equals( project.getGroupId() ) &&
-                dependencyNode.getArtifact().getArtifactId().equals( project.getArtifactId() ) &&
-                dependencyNode.getArtifact().getVersion().equals( project.getVersion() ) )
+            if ( dependencyNode.getArtifact().getGroupId().equals( project.getGroupId() )
+                && dependencyNode.getArtifact().getArtifactId().equals( project.getArtifactId() )
+                && dependencyNode.getArtifact().getVersion().equals( project.getVersion() ) )
             {
                 continue;
             }
 
-            artifacts.add( dependencyNode.getArtifact() );
+            if ( !allDependencies.contains( dependencyNode.getArtifact() ) )
+            {
+                allDependencies.add( dependencyNode.getArtifact() );
+            }
+            getAllDependencies( dependencyNode );
         }
 
-        return artifacts;
+        return allDependencies;
     }
 
     /**
@@ -142,70 +201,55 @@
      */
     public Map getDependenciesByScope( boolean isTransitively )
     {
-        Map dependenciesByScope = new HashMap();
-
         if ( isTransitively )
         {
-            for ( Iterator i = dependencyTree.getNodes().iterator(); i.hasNext(); )
+            if ( transitiveDependenciesByScope != null )
             {
-                DependencyNode dependencyNode = (DependencyNode) i.next();
-
-                if ( dependencyNode.getArtifact().getScope() == null )
-                {
-                    continue;
-                }
-
-                if (dependencyNode.getState() != DependencyNode.INCLUDED )
-                {
-                    continue;
-                }
+                return transitiveDependenciesByScope;
+            }
 
-                if ( getProjectDependencies().contains( dependencyNode ) )
-                {
-                    continue;
-                }
+            transitiveDependenciesByScope = new HashMap();
+            for ( Iterator i = getTransitiveDependencies().iterator(); i.hasNext(); )
+            {
+                Artifact artifact = (Artifact)i.next();
 
-                List multiValue = (List) dependenciesByScope.get( dependencyNode.getArtifact().getScope() );
+                List multiValue = (List) transitiveDependenciesByScope.get( artifact.getScope() );
                 if ( multiValue == null )
                 {
                     multiValue = new ArrayList();
                 }
 
-                if ( !multiValue.contains( dependencyNode.getArtifact() ) )
+                if ( !multiValue.contains( artifact) )
                 {
-                    multiValue.add( dependencyNode.getArtifact() );
+                    multiValue.add( artifact );
                 }
-                dependenciesByScope.put( dependencyNode.getArtifact().getScope(), multiValue );
+                transitiveDependenciesByScope.put( artifact.getScope(), multiValue );
             }
+
+            return transitiveDependenciesByScope;
         }
-        else
-        {
-            for ( Iterator i = getProjectDependencies().iterator(); i.hasNext(); )
-            {
-                DependencyNode dependencyNode = (DependencyNode) i.next();
 
-                if ( dependencyNode.getArtifact().getScope() == null )
-                {
-                    continue;
-                }
+        if ( dependenciesByScope != null )
+        {
+            return dependenciesByScope;
+        }
 
-                if (dependencyNode.getState() != DependencyNode.INCLUDED )
-                {
-                    continue;
-                }
+        dependenciesByScope = new HashMap();
+        for ( Iterator i = getProjectDependencies().iterator(); i.hasNext(); )
+        {
+            Artifact artifact = (Artifact)i.next();
 
-                List multiValue = (List) dependenciesByScope.get( dependencyNode.getArtifact().getScope() );
-                if ( multiValue == null )
-                {
-                    multiValue = new ArrayList();
-                }
+            List multiValue = (List) dependenciesByScope.get( artifact.getScope() );
+            if ( multiValue == null )
+            {
+                multiValue = new ArrayList();
+            }
 
-                if ( !multiValue.contains( dependencyNode.getArtifact() ) )
-                {
-                    multiValue.add( dependencyNode.getArtifact() );
-                }
-                dependenciesByScope.put( dependencyNode.getArtifact().getScope(), multiValue );
+            if ( !multiValue.contains( artifact ) )
+            {
+                multiValue.add( artifact );
             }
+            dependenciesByScope.put( artifact.getScope(), multiValue );
         }
 
         return dependenciesByScope;
@@ -254,4 +298,44 @@
             mapArtifactFiles( anode, projectMap );
         }
     }
+
+    /**
+     * Recursive method to get all dependencies from a given <code>dependencyNode</code>
+     *
+     * @param dependencyNode not null
+     */
+    private void getAllDependencies( DependencyNode dependencyNode )
+    {
+        if ( dependencyNode == null || dependencyNode.getChildren() == null )
+        {
+            if ( !allDependencies.contains( dependencyNode.getArtifact() ) )
+            {
+                allDependencies.add( dependencyNode.getArtifact() );
+            }
+            return;
+        }
+
+        for ( Iterator i = dependencyNode.getChildren().iterator(); i.hasNext(); )
+        {
+            DependencyNode subdependencyNode = (DependencyNode) i.next();
+
+            if ( subdependencyNode.getState() != DependencyNode.INCLUDED )
+            {
+                continue;
+            }
+
+            if ( subdependencyNode.getArtifact().getGroupId().equals( project.getGroupId() )
+                && subdependencyNode.getArtifact().getArtifactId().equals( project.getArtifactId() )
+                && subdependencyNode.getArtifact().getVersion().equals( project.getVersion() ) )
+            {
+                continue;
+            }
+
+            if ( !allDependencies.contains( subdependencyNode.getArtifact() ) )
+            {
+                allDependencies.add( subdependencyNode.getArtifact() );
+            }
+            getAllDependencies( subdependencyNode );
+        }
+    }
 }

Modified: maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java?rev=674664&r1=674663&r2=674664&view=diff
==============================================================================
--- maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java (original)
+++ maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java Mon Jul  7 15:58:07 2008
@@ -35,7 +35,6 @@
 import org.apache.maven.report.projectinfo.dependencies.RepositoryUtils;
 import org.apache.maven.reporting.AbstractMavenReportRenderer;
 import org.apache.maven.shared.dependency.tree.DependencyNode;
-import org.apache.maven.shared.dependency.tree.DependencyTree;
 import org.apache.maven.shared.jar.JarData;
 import org.apache.maven.wagon.Wagon;
 import org.codehaus.plexus.i18n.I18N;
@@ -76,7 +75,7 @@
         JAR_SUBTYPE.add( "ejb" );
     }
 
-    private final DependencyTree dependencyTree;
+    private final DependencyNode dependencyTreeNode;
 
     private Dependencies dependencies;
 
@@ -108,14 +107,14 @@
     };
 
     public DependenciesRenderer( Sink sink, Locale locale, I18N i18n, Dependencies dependencies,
-                                 DependencyTree depTree, DependenciesReportConfiguration config,
+                                 DependencyNode dependencyTreeNode, DependenciesReportConfiguration config,
                                  RepositoryUtils repoUtils )
     {
         super( sink );
 
         this.locale = locale;
 
-        this.dependencyTree = depTree;
+        this.dependencyTreeNode = dependencyTreeNode;
 
         this.repoUtils = repoUtils;
 
@@ -282,7 +281,7 @@
         startSection( getReportString( "report.dependencies.graph.tree.title" ) );
         sink.paragraph();
         sink.list();
-        printDependencyListing( dependencyTree.getRootNode() );
+        printDependencyListing( dependencyTreeNode );
         sink.list_();
         sink.paragraph_();
         endSection();
@@ -605,7 +604,7 @@
     private void renderSectionDependencyListing()
     {
         startSection( getReportString( "report.dependencies.graph.tables.title" ) );
-        printDescriptionsAndURLs( dependencyTree.getRootNode() );
+        printDescriptionsAndURLs( dependencyTreeNode );
         endSection();
     }