Author: vsiveton
Date: Thu Oct 28 11:20:47 2010
New Revision: 1028260

URL: http://svn.apache.org/viewvc?rev=1028260&view=rev
Log:
MPIR-205: Add the license information for each dependency

o added license information in dependencyManagement report

Modified:
    
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/DependencyManagementReport.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/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependencyManagementRenderer.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/main/resources/project-info-report_fr.properties
    
maven/plugins/trunk/maven-project-info-reports-plugin/src/test/java/org/apache/maven/report/projectinfo/DependencyManagementReportTest.java

Modified: 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/DependencyManagementReport.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/DependencyManagementReport.java?rev=1028260&r1=1028259&r2=1028260&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/DependencyManagementReport.java
 (original)
+++ 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/DependencyManagementReport.java
 Thu Oct 28 11:20:47 2010
@@ -23,10 +23,15 @@ import java.util.List;
 import java.util.Locale;
 
 import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.manager.WagonManager;
 import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.metadata.RepositoryMetadataManager;
 import org.apache.maven.project.MavenProjectBuilder;
 import org.apache.maven.report.projectinfo.dependencies.ManagementDependencies;
+import org.apache.maven.report.projectinfo.dependencies.RepositoryUtils;
 import 
org.apache.maven.report.projectinfo.dependencies.renderer.DependencyManagementRenderer;
+import org.apache.maven.settings.Settings;
+import org.apache.maven.shared.dependency.tree.DependencyTreeBuilder;
 
 
 /**
@@ -59,6 +64,22 @@ public class DependencyManagementReport
      */
     private ArtifactFactory artifactFactory;
 
+    /**
+     * Wagon manager component.
+     *
+     * @since 2.3
+     * @component
+     */
+    private WagonManager wagonManager;
+
+    /**
+     * Repository metadata component.
+     *
+     * @since 2.3
+     * @component
+     */
+    private RepositoryMetadataManager repositoryMetadataManager;
+
     // ----------------------------------------------------------------------
     // Mojo parameters
     // ----------------------------------------------------------------------
@@ -72,6 +93,16 @@ public class DependencyManagementReport
     private List<ArtifactRepository> remoteRepositories;
 
     /**
+     * The current user system settings for use in Maven.
+     *
+     * @since 2.3
+     * @parameter expression="${settings}"
+     * @required
+     * @readonly
+     */
+    private Settings settings;
+
+    /**
      * Lazy instantiation for management dependencies.
      */
     private ManagementDependencies managementDependencies;
@@ -83,10 +114,16 @@ public class DependencyManagementReport
     /** {...@inheritdoc} */
     public void executeReport( Locale locale )
     {
-        DependencyManagementRenderer r = new DependencyManagementRenderer( 
getSink(), locale, i18n, getLog(),
-                                                                           
getManagementDependencies(),
-                                                                           
artifactFactory, mavenProjectBuilder,
-                                                                           
remoteRepositories, localRepository );
+        RepositoryUtils repoUtils =
+            new RepositoryUtils( getLog(), wagonManager, settings,
+                                 mavenProjectBuilder, factory, resolver, 
project.getRemoteArtifactRepositories(),
+                                 project.getPluginArtifactRepositories(), 
localRepository,
+                                 repositoryMetadataManager );
+
+        DependencyManagementRenderer r =
+            new DependencyManagementRenderer( getSink(), locale, i18n, 
getLog(), getManagementDependencies(),
+                                              artifactFactory, 
mavenProjectBuilder, remoteRepositories,
+                                              localRepository, repoUtils );
         r.render();
     }
 

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=1028260&r1=1028259&r2=1028260&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
 Thu Oct 28 11:20:47 2010
@@ -842,7 +842,7 @@ public class DependenciesRenderer
         }
         catch ( ProjectBuildingException e )
         {
-            log.error( e.getMessage(), e );
+            log.warn( "Unable to create Maven project from repository.", e );
         }
 
         String content[];
@@ -1006,7 +1006,7 @@ public class DependenciesRenderer
             }
             catch ( ProjectBuildingException e )
             {
-                log.error( "ProjectBuildingException error : ", e );
+                log.warn( "Unable to create Maven project from repository.", e 
);
             }
         }
         else

Modified: 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependencyManagementRenderer.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/DependencyManagementRenderer.java?rev=1028260&r1=1028259&r2=1028260&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependencyManagementRenderer.java
 (original)
+++ 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependencyManagementRenderer.java
 Thu Oct 28 11:20:47 2010
@@ -21,6 +21,7 @@ package org.apache.maven.report.projecti
 
 import java.util.Collections;
 import java.util.Comparator;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
@@ -30,11 +31,15 @@ import org.apache.maven.artifact.factory
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.doxia.sink.Sink;
 import org.apache.maven.model.Dependency;
+import org.apache.maven.model.License;
 import org.apache.maven.plugin.logging.Log;
+import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.MavenProjectBuilder;
+import org.apache.maven.project.ProjectBuildingException;
 import org.apache.maven.report.projectinfo.AbstractProjectInfoRenderer;
 import org.apache.maven.report.projectinfo.ProjectInfoReportUtils;
 import org.apache.maven.report.projectinfo.dependencies.ManagementDependencies;
+import org.apache.maven.report.projectinfo.dependencies.RepositoryUtils;
 import org.codehaus.plexus.i18n.I18N;
 import org.codehaus.plexus.util.StringUtils;
 
@@ -58,6 +63,8 @@ public class DependencyManagementRendere
 
     private final ArtifactRepository localRepository;
 
+    private final RepositoryUtils repoUtils;
+
     /**
      * Default constructor
      *
@@ -70,11 +77,13 @@ public class DependencyManagementRendere
      * @param mavenProjectBuilder
      * @param remoteRepositories
      * @param localRepository
+     * @param repoUtils
      */
     public DependencyManagementRenderer( Sink sink, Locale locale, I18N i18n, 
Log log,
                                          ManagementDependencies dependencies, 
ArtifactFactory artifactFactory,
                                          MavenProjectBuilder 
mavenProjectBuilder,
-                                         List<ArtifactRepository> 
remoteRepositories, ArtifactRepository localRepository )
+                                         List<ArtifactRepository> 
remoteRepositories,
+                                         ArtifactRepository localRepository, 
RepositoryUtils repoUtils )
     {
         super( sink, i18n, locale );
 
@@ -84,6 +93,7 @@ public class DependencyManagementRendere
         this.mavenProjectBuilder = mavenProjectBuilder;
         this.remoteRepositories = remoteRepositories;
         this.localRepository = localRepository;
+        this.repoUtils = repoUtils;
     }
 
     // ----------------------------------------------------------------------
@@ -147,13 +157,14 @@ public class DependencyManagementRendere
         String version = getI18nString( "column.version" );
         String classifier = getI18nString( "column.classifier" );
         String type = getI18nString( "column.type" );
+        String license = getI18nString( "column.license" );
 
         if ( hasClassifier )
         {
-            return new String[] { groupId, artifactId, version, classifier, 
type };
+            return new String[] { groupId, artifactId, version, classifier, 
type, license };
         }
 
-        return new String[] { groupId, artifactId, version, type };
+        return new String[] { groupId, artifactId, version, type, license };
     }
 
     private void renderDependenciesForScope( String scope, List<Dependency> 
artifacts )
@@ -200,14 +211,32 @@ public class DependencyManagementRendere
                                                    localRepository );
         String artifactIdCell = ProjectInfoReportUtils.getArtifactIdCell( 
artifact.getArtifactId(), url );
 
+        MavenProject artifactProject;
+        StringBuffer sb = new StringBuffer();
+        try
+        {
+            artifactProject = repoUtils.getMavenProjectFromRepository( 
artifact );
+            List licenses = artifactProject.getLicenses();
+            for ( Iterator iterator = licenses.iterator(); iterator.hasNext(); 
)
+            {
+                License license = (License) iterator.next();
+                String artifactIdCell2 = 
ProjectInfoReportUtils.getArtifactIdCell( license.getName(), license.getUrl() );
+                sb.append( artifactIdCell2 );
+            }
+        }
+        catch ( ProjectBuildingException e )
+        {
+            log.warn( "Unable to create Maven project from repository.", e );
+        }
+
         if ( hasClassifier )
         {
             return new String[] { dependency.getGroupId(), artifactIdCell, 
dependency.getVersion(),
-                dependency.getClassifier(), dependency.getType() };
+                dependency.getClassifier(), dependency.getType(), 
sb.toString() };
         }
 
         return new String[] { dependency.getGroupId(), artifactIdCell, 
dependency.getVersion(),
-            dependency.getType() };
+            dependency.getType(), sb.toString() };
     }
 
     private Comparator<Dependency> getDependencyComparator()

Modified: 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/resources/project-info-report.properties
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-project-info-reports-plugin/src/main/resources/project-info-report.properties?rev=1028260&r1=1028259&r2=1028260&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
 Thu Oct 28 11:20:47 2010
@@ -238,6 +238,7 @@ report.dependencyManagement.column.artif
 report.dependencyManagement.column.version                         = Version
 report.dependencyManagement.column.classifier                      = Classifier
 report.dependencyManagement.column.type                            = Type
+report.dependencyManagement.column.license                         = License
 report.dependencyManagement.intro.compile                          = The 
following is a list of compile dependencies in the DependencyManagement of this 
project. These dependencies can be included in the submodules to compile and 
run the submodule:
 report.dependencyManagement.intro.provided                         = The 
following is a list of provided dependencies in the DependencyManagement of 
this project. These dependencies can be included in the submodules to compile 
the submodule, but should be provided by default when using the library:
 report.dependencyManagement.intro.runtime                          = The 
following is a list of runtime dependencies in the DependencyManagement of this 
project. These dependencies can be included in the submodules to run the 
submodule:

Modified: 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/resources/project-info-report_fr.properties
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-project-info-reports-plugin/src/main/resources/project-info-report_fr.properties?rev=1028260&r1=1028259&r2=1028260&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/resources/project-info-report_fr.properties
 (original)
+++ 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/resources/project-info-report_fr.properties
 Thu Oct 28 11:20:47 2010
@@ -234,6 +234,7 @@ report.dependencyManagement.column.artif
 report.dependencyManagement.column.version                         = Version
 report.dependencyManagement.column.classifier                      = Classifier
 report.dependencyManagement.column.type                            = Type
+report.dependencyManagement.column.license                         = Licence
 report.dependencyManagement.intro.compile                          = Ce qui 
suit est la liste des d\u00e9pendances d\u00e9finies dans dependencyManagement 
de port\u00e9e compile pour ce projet. Ces d\u00e9pendances sont requises pour 
compiler et ex\u00e9cuter l'application :
 report.dependencyManagement.intro.provided                         = Ce qui 
suit est la liste des d\u00e9pendances d\u00e9finies dans dependencyManagement 
de port\u00e9e provided pour ce projet. Ces d\u00e9pendances sont requises pour 
compiler l'application, mais devraient \u00eatre fournies par d\u00e9faut lors 
de l'utilisation de cette librairie :
 report.dependencyManagement.intro.runtime                          = Ce qui 
suit est la liste des d\u00e9pendances d\u00e9finies dans dependencyManagement 
de port\u00e9e runtime pour ce projet. Ces d\u00e9pendances sont requises pour 
ex\u00e9cuter l'application :

Modified: 
maven/plugins/trunk/maven-project-info-reports-plugin/src/test/java/org/apache/maven/report/projectinfo/DependencyManagementReportTest.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-project-info-reports-plugin/src/test/java/org/apache/maven/report/projectinfo/DependencyManagementReportTest.java?rev=1028260&r1=1028259&r2=1028260&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-project-info-reports-plugin/src/test/java/org/apache/maven/report/projectinfo/DependencyManagementReportTest.java
 (original)
+++ 
maven/plugins/trunk/maven-project-info-reports-plugin/src/test/java/org/apache/maven/report/projectinfo/DependencyManagementReportTest.java
 Thu Oct 28 11:20:47 2010
@@ -71,7 +71,7 @@ public class DependencyManagementReportT
         WebTable[] webTables = response.getTables();
         assertEquals( webTables.length, 1 );
 
-        assertEquals( webTables[0].getColumnCount(), 4 );
+        assertEquals( webTables[0].getColumnCount(), 5 );
         assertEquals( webTables[0].getRowCount(),
                       1 + 
getTestMavenProject().getDependencyManagement().getDependencies().size() );
 


Reply via email to