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