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() );