Author: hboutemy
Date: Mon Jul 25 22:57:29 2011
New Revision: 1150948

URL: http://svn.apache.org/viewvc?rev=1150948&view=rev
Log:
[MSITE-402] ensure order of reports like defined in POM (works with Maven 3 but 
not with Maven 2.2 for the moment)

Modified:
    maven/plugins/trunk/maven-site-plugin/pom.xml
    maven/plugins/trunk/maven-site-plugin/src/it/full-reporting/pom.xml
    maven/plugins/trunk/maven-site-plugin/src/it/full-reporting/verify.groovy
    
maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/AbstractSiteRenderingMojo.java

Modified: maven/plugins/trunk/maven-site-plugin/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-site-plugin/pom.xml?rev=1150948&r1=1150947&r2=1150948&view=diff
==============================================================================
--- maven/plugins/trunk/maven-site-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-site-plugin/pom.xml Mon Jul 25 22:57:29 2011
@@ -205,7 +205,7 @@ under the License.
     <dependency>
       <groupId>org.apache.maven.reporting</groupId>
       <artifactId>maven-reporting-exec</artifactId>
-      <version>1.0</version>
+      <version>1.0.1-SNAPSHOT</version>
     </dependency>
 
     <!-- Maven -->

Modified: maven/plugins/trunk/maven-site-plugin/src/it/full-reporting/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-site-plugin/src/it/full-reporting/pom.xml?rev=1150948&r1=1150947&r2=1150948&view=diff
==============================================================================
--- maven/plugins/trunk/maven-site-plugin/src/it/full-reporting/pom.xml 
(original)
+++ maven/plugins/trunk/maven-site-plugin/src/it/full-reporting/pom.xml Mon Jul 
25 22:57:29 2011
@@ -65,6 +65,23 @@
           <dependencyDetailsEnabled>false</dependencyDetailsEnabled>
           <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
         </configuration>
+        <reportSets>
+          <reportSet>
+            <reports>
+              <report>index</report>
+              <report>summary</report>
+              <report>license</report>
+              <report>project-team</report>
+              <report>scm</report>
+              <report>issue-tracking</report>
+              <report>mailing-list</report>
+              <report>dependencies</report>
+              <report>cim</report>
+              <report>plugin-management</report>
+              <report>plugins</report>
+            </reports>
+          </reportSet>
+        </reportSets>
       </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>

Modified: 
maven/plugins/trunk/maven-site-plugin/src/it/full-reporting/verify.groovy
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-site-plugin/src/it/full-reporting/verify.groovy?rev=1150948&r1=1150947&r2=1150948&view=diff
==============================================================================
--- maven/plugins/trunk/maven-site-plugin/src/it/full-reporting/verify.groovy 
(original)
+++ maven/plugins/trunk/maven-site-plugin/src/it/full-reporting/verify.groovy 
Mon Jul 25 22:57:29 2011
@@ -25,21 +25,71 @@ assert content.contains( 'Test set: org.
 
 assert content.contains( 'Tests run: 1, Failures: 0, Errors: 0, Skipped: 0' );
 
-assert new File( basedir, 'target/site/surefire-report.html' ).exists();
-assert new File( basedir, 'target/site/index.html' ).exists();
-assert new File( basedir, 'target/site/checkstyle.html' ).exists();
-assert new File( basedir, 'target/site/cpd.html' ).exists();
-assert new File( basedir, 'target/site/apidocs/index.html' ).exists();
-assert new File( basedir, 
'target/site/apidocs/org/apache/maven/plugins/site/its/App.html' ).exists();
-assert new File( basedir, 'target/site/cobertura/index.html' ).exists();
-assert new File( basedir, 'target/site/xref/index.html' ).exists();
-assert new File( basedir, 'target/site/xref-test/index.html' ).exists();
+sitedir = new File( basedir, 'target/site' );
 
-assert new File( basedir, 'target/site/taglist.html' ).exists();
-assert new File( basedir, 'target/site/team-list.html' ).exists();
+assert new File( sitedir, 'surefire-report.html' ).exists();
+assert new File( sitedir, 'index.html' ).exists();
+assert new File( sitedir, 'checkstyle.html' ).exists();
+assert new File( sitedir, 'cpd.html' ).exists();
+assert new File( sitedir, 'apidocs/index.html' ).exists();
+assert new File( sitedir, 'apidocs/org/apache/maven/plugins/site/its/App.html' 
).exists();
+assert new File( sitedir, 'cobertura/index.html' ).exists();
+assert new File( sitedir, 'xref/index.html' ).exists();
+assert new File( sitedir, 'xref-test/index.html' ).exists();
 
-assert new File( basedir, 'target/site/dependencies.html' ).exists();
-content = new File( basedir, 'target/site/dependencies.html' ).text;
+assert new File( sitedir, 'taglist.html' ).exists();
+assert new File( sitedir, 'team-list.html' ).exists();
+
+assert new File( sitedir, 'dependencies.html' ).exists();
+content = new File( sitedir, 'dependencies.html' ).text;
 assert content.contains( 'junit:junit:jar:3.8.2' );
 
+// check reports order
+String[] reports = [ 'index',                  // <report>index</report>
+                     'project-summary',        // <report>summary</report>
+                     'license',                // <report>license</report>
+                     'team-list',              // <report>project-team</report>
+                     'source-repository',      // <report>scm</report>
+                     'issue-tracking',         // 
<report>issue-tracking</report>
+                     'mail-lists',             // <report>mailing-list</report>
+                     'dependencies',           // <report>dependencies</report>
+                     'integration',            // <report>cim</report>
+                     'plugin-management',      // 
<report>plugin-management</report>
+                     'plugins'                 // <report>plugins</report>
+                   ];
+String info = new File( sitedir, 'project-info.html' ).text;
+int index1 = 10;
+int index2 = 10;
+String previousReportLink;
+for ( String report : reports )
+{
+    File reportFile = new File( sitedir, report + ".html" );
+    if ( !reportFile.isFile() )
+    {
+        println "Report file not existent: $reportFile";
+        return false;
+    }
+
+    String link = "<a href=\"" + reportFile.getName() + "\"";
+    int i1 = info.indexOf( link );
+    int i2 = info.indexOf( link, i1 + 1 );
+    if ( i1 < index1 )
+    {
+        println "Wrong order for first report link: expected 
$previousReportLink -> $link, but found $i1 < $index1";
+        println "   previous report link: " + info.substring( index1 - 10, 
index1 + 70 );
+        println "     actual report link: " + info.substring( i1 - 10, i1 + 70 
);
+        //return false; // does not work with Maven 2.2 for the moment
+    }
+    if ( i2 < index2 )
+    {
+        println "Wrong order for second report link: expected 
$previousReportLink -> $link, but found $i2 < $index2";
+        println "   previous report link: " + info.substring( index2 - 10, 
index2 + 70 );
+        println "     actual report link: " + info.substring( i2 - 10, i2 + 70 
);
+        //return false; // does not work with Maven 2.2 for the moment
+    }
+    index1 = i1;
+    index2 = i2;
+    previousReportLink = link;
+}
+
 return true;
\ No newline at end of file

Modified: 
maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/AbstractSiteRenderingMojo.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/AbstractSiteRenderingMojo.java?rev=1150948&r1=1150947&r2=1150948&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/AbstractSiteRenderingMojo.java
 (original)
+++ 
maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/AbstractSiteRenderingMojo.java
 Mon Jul 25 22:57:29 2011
@@ -26,6 +26,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
@@ -389,7 +390,7 @@ public abstract class AbstractSiteRender
         // copy Collection to prevent ConcurrentModificationException
         List<MavenReportExecution> filtered = new 
ArrayList<MavenReportExecution>( reports );
 
-        Map<String, MavenReport> reportsByOutputName = new HashMap<String, 
MavenReport>();
+        Map<String, MavenReport> reportsByOutputName = new 
LinkedHashMap<String, MavenReport>();
         for ( MavenReportExecution mavenReportExecution : filtered )
         {
             MavenReport report = mavenReportExecution.getMavenReport();
@@ -426,7 +427,7 @@ public abstract class AbstractSiteRender
      */
     protected Map<String, List<MavenReport>> categoriseReports( 
Collection<MavenReport> reports )
     {
-        Map<String, List<MavenReport>> categories = new HashMap<String, 
List<MavenReport>>();
+        Map<String, List<MavenReport>> categories = new LinkedHashMap<String, 
List<MavenReport>>();
         for ( MavenReport report : reports )
         {
             List<MavenReport> categoryReports = categories.get( 
report.getCategoryName() );


Reply via email to