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/07 13:25:06 UTC

svn commit: r674456 - in /maven/plugins/trunk/maven-project-info-reports-plugin/src: main/java/org/apache/maven/report/projectinfo/dependencies/ main/java/org/apache/maven/report/projectinfo/dependencies/renderer/ test/java/org/apache/maven/report/proj...

Author: vsiveton
Date: Mon Jul  7 04:25:06 2008
New Revision: 674456

URL: http://svn.apache.org/viewvc?rev=674456&view=rev
Log:
MPIR-106: Regression in 2.1-SNAPSHOT, the Project Dependencies and the Project Transitive Dependencies are the same 

o Updated code due to MPIR-76
o Updated test code

Modified:
    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
    maven/plugins/trunk/maven-project-info-reports-plugin/src/test/java/org/apache/maven/report/projectinfo/DependenciesReportTest.java

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=674456&r1=674455&r2=674456&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 04:25:06 2008
@@ -85,38 +85,129 @@
         return ( projectDependencies != null ) && ( !this.projectDependencies.isEmpty() );
     }
 
+    /**
+     * @return a list of <code>Artifact</code> from the project.
+     */
     public List getProjectDependencies()
     {
         return new ArrayList( projectDependencies );
     }
 
+    /**
+     * @return a list of transitive <code>Artifact</code> from the project.
+     */
     public List getTransitiveDependencies()
     {
-        List deps = new ArrayList( dependencyTree.getArtifacts() );
+        List deps = new ArrayList( getAllDependencies() );
         deps.removeAll( projectDependencies );
         return deps;
     }
 
+    /**
+     * @return a list of included <code>Artifact</code> returned by the dependency tree.
+     */
     public List getAllDependencies()
     {
-        return dependencyTree.getArtifacts();
+        List artifacts = new ArrayList();
+        for ( Iterator i = dependencyTree.getNodes().iterator(); i.hasNext(); )
+        {
+            DependencyNode dependencyNode = (DependencyNode) i.next();
+
+            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() ) )
+            {
+                continue;
+            }
+
+            artifacts.add( dependencyNode.getArtifact() );
+        }
+
+        return artifacts;
     }
 
-    public Map getDependenciesByScope()
+    /**
+     * @param isTransitively <code>true</code> to return transitive dependencies, <code>false</code> otherwise.
+     * @return a map with supported scopes as key and <code>Artifact</code> as values.
+     * @see Artifact#SCOPE_COMPILE
+     * @see Artifact#SCOPE_PROVIDED
+     * @see Artifact#SCOPE_RUNTIME
+     * @see Artifact#SCOPE_SYSTEM
+     * @see Artifact#SCOPE_TEST
+     */
+    public Map getDependenciesByScope( boolean isTransitively )
     {
         Map dependenciesByScope = new HashMap();
-        for ( Iterator i = getAllDependencies().iterator(); i.hasNext(); )
+
+        if ( isTransitively )
         {
-            Artifact artifact = (Artifact) i.next();
+            for ( Iterator i = dependencyTree.getNodes().iterator(); i.hasNext(); )
+            {
+                DependencyNode dependencyNode = (DependencyNode) i.next();
 
-            List multiValue = (List) dependenciesByScope.get( artifact.getScope() );
-            if ( multiValue == null )
+                if ( dependencyNode.getArtifact().getScope() == null )
+                {
+                    continue;
+                }
+
+                if (dependencyNode.getState() != DependencyNode.INCLUDED )
+                {
+                    continue;
+                }
+
+                if ( getProjectDependencies().contains( dependencyNode ) )
+                {
+                    continue;
+                }
+
+                List multiValue = (List) dependenciesByScope.get( dependencyNode.getArtifact().getScope() );
+                if ( multiValue == null )
+                {
+                    multiValue = new ArrayList();
+                }
+
+                if ( !multiValue.contains( dependencyNode.getArtifact() ) )
+                {
+                    multiValue.add( dependencyNode.getArtifact() );
+                }
+                dependenciesByScope.put( dependencyNode.getArtifact().getScope(), multiValue );
+            }
+        }
+        else
+        {
+            for ( Iterator i = getProjectDependencies().iterator(); i.hasNext(); )
             {
-                multiValue = new ArrayList();
+                DependencyNode dependencyNode = (DependencyNode) i.next();
+
+                if ( dependencyNode.getArtifact().getScope() == null )
+                {
+                    continue;
+                }
+
+                if (dependencyNode.getState() != DependencyNode.INCLUDED )
+                {
+                    continue;
+                }
+
+                List multiValue = (List) dependenciesByScope.get( dependencyNode.getArtifact().getScope() );
+                if ( multiValue == null )
+                {
+                    multiValue = new ArrayList();
+                }
+
+                if ( !multiValue.contains( dependencyNode.getArtifact() ) )
+                {
+                    multiValue.add( dependencyNode.getArtifact() );
+                }
+                dependenciesByScope.put( dependencyNode.getArtifact().getScope(), multiValue );
             }
-            multiValue.add( artifact );
-            dependenciesByScope.put( artifact.getScope(), multiValue );
         }
+
         return dependenciesByScope;
     }
 

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=674456&r1=674455&r2=674456&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 04:25:06 2008
@@ -220,7 +220,7 @@
         startSection( getTitle() );
 
         // collect dependencies by scope
-        Map dependenciesByScope = dependencies.getDependenciesByScope();
+        Map dependenciesByScope = dependencies.getDependenciesByScope( false );
 
         renderDependenciesForAllScopes( tableHeader, dependenciesByScope );
 
@@ -243,18 +243,17 @@
 
     private void renderSectionProjectTransitiveDependencies()
     {
-        List artifacts = dependencies.getTransitiveDependencies();
+        Map dependenciesByScope = dependencies.getDependenciesByScope( true );
 
         startSection( getReportString( "report.transitivedependencies.title" ) );
 
-        if ( artifacts.isEmpty() )
+        if ( dependenciesByScope.values().isEmpty() )
         {
             paragraph( getReportString( "report.transitivedependencies.nolist" ) );
         }
         else
         {
             String[] tableHeader = getDependencyTableHeader();
-            Map dependenciesByScope = dependencies.getDependenciesByScope();
 
             paragraph( getReportString( "report.transitivedependencies.intro" ) );
 

Modified: maven/plugins/trunk/maven-project-info-reports-plugin/src/test/java/org/apache/maven/report/projectinfo/DependenciesReportTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-project-info-reports-plugin/src/test/java/org/apache/maven/report/projectinfo/DependenciesReportTest.java?rev=674456&r1=674455&r2=674456&view=diff
==============================================================================
--- maven/plugins/trunk/maven-project-info-reports-plugin/src/test/java/org/apache/maven/report/projectinfo/DependenciesReportTest.java (original)
+++ maven/plugins/trunk/maven-project-info-reports-plugin/src/test/java/org/apache/maven/report/projectinfo/DependenciesReportTest.java Mon Jul  7 04:25:06 2008
@@ -69,24 +69,21 @@
 
         // Test the tables
         WebTable[] webTables = response.getTables();
-        assertEquals( webTables.length, 2 );
+        assertEquals( webTables.length, 1 );
 
         assertEquals( webTables[0].getColumnCount(), 6 );
         assertEquals( webTables[0].getRowCount(), 1 + getTestMavenProject().getDependencies().size() );
 
-        assertEquals( webTables[1].getColumnCount(), 6 );
-
         // Test the texts
         TextBlock[] textBlocks = response.getTextBlocks();
         assertEquals( textBlocks[0].getText(), getString( "report.dependencies.title" ) );
         assertEquals( textBlocks[1].getText(), "test" );
         assertEquals( textBlocks[2].getText(), getString( "report.dependencies.intro.test" ) );
         assertEquals( textBlocks[3].getText(), getString( "report.transitivedependencies.title" ) );
-        assertEquals( textBlocks[4].getText(), getString( "report.transitivedependencies.intro" ) );
-        assertEquals( textBlocks[5].getText(), "test" );
-        assertEquals( textBlocks[6].getText(), getString( "report.dependencies.intro.test" ) );
-        assertEquals( textBlocks[7].getText(), getString( "report.dependencies.graph.title" ) );
-        assertEquals( textBlocks[8].getText(), getString( "report.dependencies.graph.tree.title" ) );
-        assertEquals( textBlocks[12].getText(), getString( "report.dependencies.graph.tables.title" ) );
+        assertEquals( textBlocks[4].getText(), getString( "report.transitivedependencies.nolist" ) );
+        assertEquals( textBlocks[5].getText(), getString( "report.dependencies.graph.title" ) );
+        assertEquals( textBlocks[6].getText(), getString( "report.dependencies.graph.tree.title" ) );
+        assertEquals( textBlocks[7].getText(), "junit:junit:jar" );
+        assertEquals( textBlocks[10].getText(), getString( "report.dependencies.graph.tables.title" ) );
     }
 }