You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by de...@apache.org on 2007/07/30 23:44:59 UTC
svn commit: r561140 -
/maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/DependencyConvergenceReport.java
Author: dennisl
Date: Mon Jul 30 14:44:58 2007
New Revision: 561140
URL: http://svn.apache.org/viewvc?view=rev&rev=561140
Log:
[MPIR-28] improve convergence report
o Ignore counting snapshots for dependencies that are projects in the reactor.
Modified:
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/DependencyConvergenceReport.java
Modified: maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/DependencyConvergenceReport.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/DependencyConvergenceReport.java?view=diff&rev=561140&r1=561139&r2=561140
==============================================================================
--- maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/DependencyConvergenceReport.java (original)
+++ maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/DependencyConvergenceReport.java Mon Jul 30 14:44:58 2007
@@ -224,7 +224,7 @@
private void generateVersionDetails( Sink sink, Map artifactMap, String version )
{
- sink.numberedList( 1 ); // parameter value is apparently irrelevant here.
+ sink.numberedList( 1 ); // Use lower alpha numbering
List depList = (List) artifactMap.get( version );
Collections.sort( depList, new ProjectComparator() );
Iterator it = depList.iterator();
@@ -246,6 +246,25 @@
sink.numberedList_();
}
+ /**
+ * Produce a Map of relationships between dependencies (its version) and
+ * reactor projects.
+ *
+ * This is the structure of the Map:
+ * <pre>
+ * +--------------------+----------------------------------+
+ * | key | value |
+ * +--------------------+----------------------------------+
+ * | version of a | A List of ReverseDependencyLinks |
+ * | dependency | which each look like this: |
+ * | | +------------+-----------------+ |
+ * | | | dependency | reactor project | |
+ * | | +------------+-----------------+ |
+ * +--------------------+----------------------------------+
+ * </pre>
+ *
+ * @return A Map of sorted unique artifacts
+ */
private Map getSortedUniqueArtifactMap( List depList )
{
Map uniqueArtifactMap = new TreeMap();
@@ -451,7 +470,22 @@
while ( it.hasNext() )
{
String version = (String) it.next();
- if ( version.endsWith( "-SNAPSHOT" ) )
+ boolean isReactorProject = false;
+
+ Iterator iterator = ( (List) artifactMap.get( version ) ).iterator();
+ // It if enough to check just the first dependency here, because
+ // the dependency is the same in all the RDLs in the List. It's the
+ // reactorProjects that are different.
+ if ( iterator.hasNext() )
+ {
+ ReverseDependencyLink rdl = (ReverseDependencyLink) iterator.next();
+ if( isReactorProject(rdl.getDependency()) )
+ {
+ isReactorProject = true;
+ }
+ }
+
+ if ( version.endsWith( "-SNAPSHOT" ) && !isReactorProject )
{
count++;
}
@@ -459,6 +493,31 @@
return count;
}
+ /**
+ * Check to see if the specified dependency is among the reactor projects.
+ *
+ * @param dependency The dependency to check
+ * @return true if and only if the dependency is a reactor project
+ */
+ private boolean isReactorProject( Dependency dependency )
+ {
+ Iterator iterator = reactorProjects.iterator();
+ while ( iterator.hasNext() )
+ {
+ MavenProject project = (MavenProject) iterator.next();
+ if ( project.getGroupId().equals( dependency.getGroupId() )
+ && project.getArtifactId().equals( dependency.getArtifactId() ) )
+ {
+ if ( getLog().isDebugEnabled() )
+ {
+ getLog().debug( dependency + " is a reactor project" );
+ }
+ return true;
+ }
+ }
+ return false;
+ }
+
private void iconSuccess( Sink sink )
{
sink.figure();
@@ -479,6 +538,25 @@
sink.figure_();
}
+ /**
+ * Produce a Map of relationships between dependencies
+ * (its groupId:artifactId) and reactor projects.
+ *
+ * This is the structure of the Map:
+ * <pre>
+ * +--------------------+----------------------------------+
+ * | key | value |
+ * +--------------------+----------------------------------+
+ * | groupId:artifactId | A List of ReverseDependencyLinks |
+ * | of a dependency | which each look like this: |
+ * | | +------------+-----------------+ |
+ * | | | dependency | reactor project | |
+ * | | +------------+-----------------+ |
+ * +--------------------+----------------------------------+
+ * </pre>
+ *
+ * @return A Map of relationships between dependencies and reactor projects
+ */
public Map getDependencyMap()
{
Iterator it = reactorProjects.iterator();