This is an automated email from the ASF dual-hosted git repository. michaelo pushed a commit to branch doxia-2.0.0 in repository https://gitbox.apache.org/repos/asf/maven-project-info-reports-plugin.git
commit 9f4b753c67266be767a773a70b2e0f78853daba0 Author: Michael Osipov <micha...@apache.org> AuthorDate: Sat Jul 2 23:58:47 2022 +0200 Prepare for Doxia 2.0.0 --- pom.xml | 96 ++++++++------- src/it/dependencies-java-1.7-and-1.8/verify.groovy | 28 ++--- src/it/full-pom/pom.xml | 2 +- src/it/minimal-pom/pom.xml | 2 +- src/it/multi-module/pom.xml | 5 +- src/it/multi-module/verify.groovy | 4 +- .../projectinfo/AbstractProjectInfoRenderer.java | 31 ----- .../projectinfo/AbstractProjectInfoReport.java | 30 ++--- .../report/projectinfo/DependenciesReport.java | 4 +- .../projectinfo/DependencyConvergenceReport.java | 8 +- .../projectinfo/DependencyManagementReport.java | 4 +- .../maven/report/projectinfo/TeamReport.java | 2 +- .../renderer/DependenciesRenderer.java | 133 +-------------------- .../projectinfo/AbstractProjectInfoTestCase.java | 53 ++++++-- .../report/projectinfo/CiManagementReportTest.java | 16 ++- .../report/projectinfo/DependenciesReportTest.java | 5 + .../DependencyConvergenceReportTest.java | 7 +- .../DependencyManagementReportTest.java | 9 +- .../maven/report/projectinfo/IndexReportTest.java | 9 +- .../projectinfo/IssueManagementReportTest.java | 13 +- .../report/projectinfo/LicensesReportTest.java | 29 +++-- .../report/projectinfo/MailingListsReportTest.java | 25 ++-- .../report/projectinfo/ModulesReportTest.java | 12 +- .../projectinfo/PluginManagementReportTest.java | 9 +- .../maven/report/projectinfo/ScmReportTest.java | 20 ++-- .../report/projectinfo/SummaryReportTest.java | 15 ++- .../maven/report/projectinfo/TeamReportTest.java | 22 ++-- .../projectinfo/stubs/ProjectInfoProjectStub.java | 7 ++ .../plugin-configs/ci-management-plugin-config.xml | 3 +- ...ci-management-plugin-with-ci-section-config.xml | 3 +- .../dependency-convergence-plugin-config.xml | 3 +- .../dependency-management-plugin-config.xml | 1 + .../plugin-configs/index-plugin-config.xml | 3 +- .../issue-management-plugin-config.xml | 3 +- .../licenses-plugin-config-linkonly.xml | 3 +- .../plugin-configs/licenses-plugin-config.xml | 3 +- ...nfig.xml => mailing-lists-plugin-config-fr.xml} | 2 + .../mailing-lists-plugin-config-invalidlink.xml | 1 + .../plugin-configs/mailing-lists-plugin-config.xml | 1 + .../plugin-configs/modules-plugin-config.xml | 6 +- ...ariable-settings-interpolated-plugin-config.xml | 8 +- .../plugin-management-plugin-config-MPIR-375.xml | 6 +- .../plugin-management-plugin-config.xml | 2 +- .../resources/plugin-configs/scm-plugin-config.xml | 3 +- .../plugin-configs/scm-wrong-url-plugin-config.xml | 3 +- .../plugin-configs/summary-plugin-config.xml | 3 +- .../plugin-configs/team-plugin-config.xml | 3 +- 47 files changed, 305 insertions(+), 355 deletions(-) diff --git a/pom.xml b/pom.xml index 701edc4..020c61e 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ under the License. </parent> <artifactId>maven-project-info-reports-plugin</artifactId> - <version>3.4.4-SNAPSHOT</version> + <version>4.0.0-M1-SNAPSHOT</version> <packaging>maven-plugin</packaging> <name>Apache Maven Project Info Reports Plugin</name> @@ -114,14 +114,15 @@ under the License. </distributionManagement> <properties> - <doxiaVersion>1.11.1</doxiaVersion> - <doxia-sitetoolsVersion>1.11.1</doxia-sitetoolsVersion> + <javaVersion>8</javaVersion> + <doxiaVersion>2.0.0-M6</doxiaVersion> + <doxiaSitetoolsVersion>2.0.0-M10</doxiaSitetoolsVersion> <mavenVersion>3.2.5</mavenVersion> <scmVersion>1.13.0</scmVersion> <aetherVersion>1.0.0.v20140518</aetherVersion> - <sitePluginVersion>3.12.1</sitePluginVersion> - <fluidoSkinVersion>1.11.1</fluidoSkinVersion> - <surefire.version>2.22.2</surefire.version> + <sitePluginVersion>4.0.0-M8</sitePluginVersion> + <fluidoSkinVersion>2.0.0-M6</fluidoSkinVersion> + <surefire.version>3.0.0</surefire.version> <checkstyle.violation.ignore>ParameterNumber,MethodLength</checkstyle.violation.ignore> <project.build.outputTimestamp>2023-04-15T14:36:20Z</project.build.outputTimestamp> </properties> @@ -130,12 +131,12 @@ under the License. <dependency> <groupId>org.apache.maven.reporting</groupId> <artifactId>maven-reporting-api</artifactId> - <version>3.1.1</version> + <version>4.0.0-M6</version> </dependency> <dependency> <groupId>org.apache.maven.reporting</groupId> <artifactId>maven-reporting-impl</artifactId> - <version>3.2.0</version> + <version>4.0.0-M8</version> <exclusions> <exclusion> <groupId>org.apache.maven</groupId> @@ -322,56 +323,18 @@ under the License. <groupId>org.apache.maven.doxia</groupId> <artifactId>doxia-sink-api</artifactId> <version>${doxiaVersion}</version> - <exclusions> - <exclusion> - <groupId>org.codehaus.plexus</groupId> - <artifactId>plexus-container-default</artifactId> - </exclusion> - </exclusions> </dependency> <dependency> <groupId>org.apache.maven.doxia</groupId> <artifactId>doxia-core</artifactId> <version>${doxiaVersion}</version> - <exclusions> - <exclusion> - <groupId>org.codehaus.plexus</groupId> - <artifactId>plexus-container-default</artifactId> - </exclusion> - </exclusions> </dependency> <!-- Doxia Sitetools --> - <dependency> - <groupId>org.apache.maven.doxia</groupId> - <artifactId>doxia-decoration-model</artifactId> - <version>${doxia-sitetoolsVersion}</version> - </dependency> - <dependency> - <groupId>org.apache.maven.doxia</groupId> - <artifactId>doxia-site-renderer</artifactId> - <version>${doxia-sitetoolsVersion}</version> - <exclusions> - <exclusion> - <groupId>org.codehaus.plexus</groupId> - <artifactId>plexus-container-default</artifactId> - </exclusion> - <exclusion> - <groupId>org.codehaus.plexus</groupId> - <artifactId>plexus-component-api</artifactId> - </exclusion> - </exclusions> - </dependency> <dependency> <groupId>org.apache.maven.doxia</groupId> <artifactId>doxia-integration-tools</artifactId> - <version>${doxia-sitetoolsVersion}</version> - <exclusions> - <exclusion> - <groupId>org.codehaus.plexus</groupId> - <artifactId>plexus-container-default</artifactId> - </exclusion> - </exclusions> + <version>${doxiaSitetoolsVersion}</version> </dependency> <!-- Plexus --> @@ -389,7 +352,7 @@ under the License. <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-utils</artifactId> - <version>3.4.2</version> + <version>3.5.1</version> </dependency> <dependency> <groupId>org.codehaus.plexus</groupId> @@ -461,7 +424,7 @@ under the License. <dependency> <groupId>org.apache.maven.wagon</groupId> <artifactId>wagon-http-lightweight</artifactId> - <version>3.5.1</version> + <version>3.5.3</version> <scope>test</scope> </dependency> <dependency> @@ -523,6 +486,12 @@ under the License. <exclude>**/DependenciesReportTest*</exclude> <!-- FIXME: missing Maven 3 class or conflict --> </excludes> + <systemPropertyVariables> + <!-- NOTE: This is unfortunately required because httpunit forces 'file.encoding' onto all + file URLs without the option to read 'charset' from <meta /> or to override explicitly: + https://github.com/kohsuke/httpunit/blob/a2841fd31fbf3bc234bea02f6bd18a87f5ec6574/src/com/meterware/httpunit/HttpWebResponse.java#L240-L245 --> + <file.encoding>UTF-8</file.encoding> + </systemPropertyVariables> </configuration> </plugin> <!-- To use Jetty SSL in tests --> @@ -586,6 +555,35 @@ under the License. </properties> <build> <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-clean-plugin</artifactId> + <!-- + This is necessary if "mvn site" has been invoked previously with 3.x + and leaves 0-byte files in the local repository for MRM Maven Plugin + to serve which are broken from a consumer's PoV. + --> + <executions> + <execution> + <id>delete-0-byte-site-descriptors</id> + <goals> + <goal>clean</goal> + </goals> + <phase>pre-integration-test</phase> + <configuration> + <excludeDefaultDirectories>true</excludeDefaultDirectories> + <filesets> + <fileset> + <directory>${settings.localRepository}/org/apache/apache</directory> + <includes> + <include>**/*-site*.xml</include> + </includes> + </fileset> + </filesets> + </configuration> + </execution> + </executions> + </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-invoker-plugin</artifactId> diff --git a/src/it/dependencies-java-1.7-and-1.8/verify.groovy b/src/it/dependencies-java-1.7-and-1.8/verify.groovy index 2edcd4e..2a344fe 100644 --- a/src/it/dependencies-java-1.7-and-1.8/verify.groovy +++ b/src/it/dependencies-java-1.7-and-1.8/verify.groovy @@ -19,24 +19,24 @@ File dependencies = new File( basedir, 'target/site/dependencies.html' ) def mavenModel = '''\ <tr class="a"> -<td align="left">maven-model-3.3.9.jar</td> -<td align="right">164 kB</td> -<td align="right">71</td> -<td align="right">54</td> -<td align="right">3</td> -<td align="center">1.7</td> -<td align="center">Yes</td></tr> +<td style="text-align: left;">maven-model-3.3.9.jar</td> +<td style="text-align: right;">164 kB</td> +<td style="text-align: right;">71</td> +<td style="text-align: right;">54</td> +<td style="text-align: right;">3</td> +<td style="text-align: center;">1.7</td> +<td style="text-align: center;">Yes</td></tr> ''' def jacksonDataTypeJsr310 = '''\ <tr class="a"> -<td align="left">jackson-datatype-jsr310-2.6.4.jar</td> -<td align="right">78.1 kB</td> -<td align="right">69</td> -<td align="right">51</td> -<td align="right">5</td> -<td align="center">1.8</td> -<td align="center">Yes</td></tr> +<td style="text-align: left;">jackson-datatype-jsr310-2.6.4.jar</td> +<td style="text-align: right;">78.1 kB</td> +<td style="text-align: right;">69</td> +<td style="text-align: right;">51</td> +<td style="text-align: right;">5</td> +<td style="text-align: center;">1.8</td> +<td style="text-align: center;">Yes</td></tr> ''' assert dependencies.text.contains( mavenModel.replaceAll( "\n", System.getProperty( "line.separator" ) ) ) diff --git a/src/it/full-pom/pom.xml b/src/it/full-pom/pom.xml index c6e92f3..ff4ef62 100644 --- a/src/it/full-pom/pom.xml +++ b/src/it/full-pom/pom.xml @@ -174,7 +174,7 @@ <artifactId>maven-site-plugin</artifactId> <version>@sitePluginVersion@</version> <configuration> - <locales>en,cs,de,en,es,fr,gl,hu,it,ja,ko,lt,nl,no,pl,pt,pt_BR,ru,sk,sv,tr,zh_CN,zh_TW</locales> + <locales>default,en,cs,de,en,es,fr,gl,hu,it,ja,ko,lt,nl,no,pl,pt,pt_BR,ru,sk,sv,tr,zh_CN,zh_TW</locales> </configuration> </plugin> </plugins> diff --git a/src/it/minimal-pom/pom.xml b/src/it/minimal-pom/pom.xml index a2c013b..0c92814 100644 --- a/src/it/minimal-pom/pom.xml +++ b/src/it/minimal-pom/pom.xml @@ -44,7 +44,7 @@ <artifactId>maven-site-plugin</artifactId> <version>@sitePluginVersion@</version> <configuration> - <locales>en,cs,de,es,fr,hu,it,ja,ko,nl,no,pl,pt,pt_BR,sk,sv,tr,zh_CN,zh_TW</locales> + <locales>default,en,cs,de,es,fr,hu,it,ja,ko,nl,no,pl,pt,pt_BR,sk,sv,tr,zh_CN,zh_TW</locales> </configuration> </plugin> </plugins> diff --git a/src/it/multi-module/pom.xml b/src/it/multi-module/pom.xml index 60cd695..50d8223 100644 --- a/src/it/multi-module/pom.xml +++ b/src/it/multi-module/pom.xml @@ -26,7 +26,7 @@ <parent> <groupId>org.apache</groupId> <artifactId>apache</artifactId> - <version>16</version> + <version>29</version> </parent> <groupId>org.apache.maven.plugins.project-info-reports.its</groupId> @@ -79,9 +79,6 @@ <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <version>@sitePluginVersion@</version> - <configuration> - <locales>en</locales> - </configuration> </plugin> </plugins> </build> diff --git a/src/it/multi-module/verify.groovy b/src/it/multi-module/verify.groovy index 7fdfb6b..afc2cb4 100644 --- a/src/it/multi-module/verify.groovy +++ b/src/it/multi-module/verify.groovy @@ -21,5 +21,5 @@ File mainDependencies = new File( basedir, 'main/target/site/dependencies.html' // Dependency File Details section should display dep-1.0-SNAPSHOT.jar packaged from previous build (package phase), // not dep/target/classes from current build (site phase) -assert !mainDependencies.text.contains( '<td align="left">dep/target/classes</td>' ) -assert mainDependencies.text.contains( '<td align="left">dep-1.0-SNAPSHOT.jar</td>' ) +assert !mainDependencies.text.contains( '<td style="text-align: left;">dep/target/classes</td>' ) +assert mainDependencies.text.contains( '<td style="text-align: left;">dep-1.0-SNAPSHOT.jar</td>' ) diff --git a/src/main/java/org/apache/maven/report/projectinfo/AbstractProjectInfoRenderer.java b/src/main/java/org/apache/maven/report/projectinfo/AbstractProjectInfoRenderer.java index c490a56..a66f8b0 100644 --- a/src/main/java/org/apache/maven/report/projectinfo/AbstractProjectInfoRenderer.java +++ b/src/main/java/org/apache/maven/report/projectinfo/AbstractProjectInfoRenderer.java @@ -92,36 +92,5 @@ public abstract class AbstractProjectInfoRenderer extends AbstractMavenReportRen } } - /* FIXME The next two methods need to be retained until Doxia and Maven Reporting Impl properly implement - * the difference of a (boxed) real verbatim text and (boxed) source code. - */ - /** - * {@inheritDoc} - */ - @Override - protected void verbatimText(String text) { - sink.verbatim(null); - - text(text); - - sink.verbatim_(); - } - - /** - * {@inheritDoc} - */ - @Override - protected void verbatimLink(String text, String href) { - if (StringUtils.isEmpty(href)) { - verbatimText(text); - } else { - sink.verbatim(null); - - link(href, text); - - sink.verbatim_(); - } - } - protected abstract String getI18Nsection(); } diff --git a/src/main/java/org/apache/maven/report/projectinfo/AbstractProjectInfoReport.java b/src/main/java/org/apache/maven/report/projectinfo/AbstractProjectInfoReport.java index 3270a22..adad272 100644 --- a/src/main/java/org/apache/maven/report/projectinfo/AbstractProjectInfoReport.java +++ b/src/main/java/org/apache/maven/report/projectinfo/AbstractProjectInfoReport.java @@ -35,6 +35,7 @@ import java.util.ResourceBundle; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.execution.MavenSession; import org.apache.maven.model.Plugin; +import org.apache.maven.plugin.MojoExecution; import org.apache.maven.plugins.annotations.Component; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.project.MavenProject; @@ -91,22 +92,17 @@ public abstract class AbstractProjectInfoReport extends AbstractMavenReport { @Parameter(defaultValue = "${session}", readonly = true, required = true) private MavenSession session; + @Parameter(defaultValue = "${project.remoteArtifactRepositories}", readonly = true, required = true) + protected List<ArtifactRepository> remoteRepositories; + /** * Plugin repositories used for the project. * * @since 3.1.0 */ - @Parameter(property = "project.pluginArtifactRepositories") + @Parameter(defaultValue = "${project.pluginArtifactRepositories}", readonly = true, required = true) protected List<ArtifactRepository> pluginRepositories; - /** - * The reactor projects. - * - * @since 2.10 - */ - @Parameter(defaultValue = "${reactorProjects}", required = true, readonly = true) - protected List<MavenProject> reactorProjects; - /** * The current user system settings for use in Maven. * @@ -149,6 +145,12 @@ public abstract class AbstractProjectInfoReport extends AbstractMavenReport { @Parameter private List<LicenseMapping> licenseMappings; + /** + * The local repository. + */ + @Parameter(defaultValue = "${localRepository}", readonly = true, required = true) + protected ArtifactRepository localRepository; + // ---------------------------------------------------------------------- // Public methods // ---------------------------------------------------------------------- @@ -211,15 +213,14 @@ public abstract class AbstractProjectInfoReport extends AbstractMavenReport { return session; } - /** - * Reactor projects - * - * @return List of projects - */ protected List<MavenProject> getReactorProjects() { return reactorProjects; } + protected MojoExecution getMojoExecution() { + return mojoExecution; + } + /** * @param pluginId The id of the plugin * @return The information about the plugin. @@ -306,6 +307,7 @@ public abstract class AbstractProjectInfoReport extends AbstractMavenReport { return getI18nString(locale, "description"); } + // TODO Review, especially Locale.getDefault() private static class CustomI18N implements I18N { private final MavenProject project; diff --git a/src/main/java/org/apache/maven/report/projectinfo/DependenciesReport.java b/src/main/java/org/apache/maven/report/projectinfo/DependenciesReport.java index 7db0220..9011399 100644 --- a/src/main/java/org/apache/maven/report/projectinfo/DependenciesReport.java +++ b/src/main/java/org/apache/maven/report/projectinfo/DependenciesReport.java @@ -140,8 +140,8 @@ public class DependenciesReport extends AbstractProjectInfoReport { projectBuilder, repositorySystem, resolver, - project.getRemoteArtifactRepositories(), - project.getPluginArtifactRepositories(), + remoteRepositories, + pluginRepositories, buildingRequest, repositoryMetadataManager); diff --git a/src/main/java/org/apache/maven/report/projectinfo/DependencyConvergenceReport.java b/src/main/java/org/apache/maven/report/projectinfo/DependencyConvergenceReport.java index 579829a..b143aa7 100644 --- a/src/main/java/org/apache/maven/report/projectinfo/DependencyConvergenceReport.java +++ b/src/main/java/org/apache/maven/report/projectinfo/DependencyConvergenceReport.java @@ -273,7 +273,7 @@ public class DependencyConvergenceReport extends AbstractProjectInfoReport { */ private void generateDependencyDetails(Locale locale, Sink sink, List<ReverseDependencyLink> depList) { sink.table(); - sink.tableRows(null, false); + sink.tableRows(); Map<String, List<ReverseDependencyLink>> artifactMap = getSortedUniqueArtifactMap(depList); @@ -288,7 +288,7 @@ public class DependencyConvergenceReport extends AbstractProjectInfoReport { sink.tableCell(); sink.table(); - sink.tableRows(null, false); + sink.tableRows(); for (String version : artifactMap.keySet()) { sink.tableRow(); @@ -474,7 +474,7 @@ public class DependencyConvergenceReport extends AbstractProjectInfoReport { */ private void generateLegend(Locale locale, Sink sink) { sink.table(); - sink.tableRows(null, false); + sink.tableRows(); sink.tableCaption(); sink.bold(); sink.text(getI18nString(locale, "legend")); @@ -514,7 +514,7 @@ public class DependencyConvergenceReport extends AbstractProjectInfoReport { // Create report sink.table(); - sink.tableRows(null, false); + sink.tableRows(); sink.tableCaption(); sink.bold(); sink.text(getI18nString(locale, "stats.caption")); diff --git a/src/main/java/org/apache/maven/report/projectinfo/DependencyManagementReport.java b/src/main/java/org/apache/maven/report/projectinfo/DependencyManagementReport.java index 38601fc..ca68828 100644 --- a/src/main/java/org/apache/maven/report/projectinfo/DependencyManagementReport.java +++ b/src/main/java/org/apache/maven/report/projectinfo/DependencyManagementReport.java @@ -96,8 +96,8 @@ public class DependencyManagementReport extends AbstractProjectInfoReport { projectBuilder, repositorySystem, resolver, - project.getRemoteArtifactRepositories(), - project.getPluginArtifactRepositories(), + remoteRepositories, + pluginRepositories, buildingRequest, repositoryMetadataManager); diff --git a/src/main/java/org/apache/maven/report/projectinfo/TeamReport.java b/src/main/java/org/apache/maven/report/projectinfo/TeamReport.java index 1eefe5e..16bae2c 100644 --- a/src/main/java/org/apache/maven/report/projectinfo/TeamReport.java +++ b/src/main/java/org/apache/maven/report/projectinfo/TeamReport.java @@ -233,7 +233,7 @@ public class TeamReport extends AbstractProjectInfoReport { if (id == null) { tableCell(null); } else { - tableCell("<a name=\"" + id + "\"></a>" + id, true); + tableCell("<a id=\"" + id + "\"></a>" + id, true); } } } diff --git a/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java b/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java index cbe5c63..59f8d15 100644 --- a/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java +++ b/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java @@ -42,7 +42,6 @@ import org.apache.maven.artifact.Artifact; import org.apache.maven.doxia.sink.Sink; import org.apache.maven.doxia.sink.SinkEventAttributes; import org.apache.maven.doxia.sink.impl.SinkEventAttributeSet; -import org.apache.maven.doxia.util.HtmlTools; import org.apache.maven.model.License; import org.apache.maven.plugin.logging.Log; import org.apache.maven.project.MavenProject; @@ -93,11 +92,6 @@ public class DependenciesRenderer extends AbstractProjectInfoRenderer { /** Used to format file length values */ private final DecimalFormat fileLengthDecimalFormat; - /** - * @since 2.1.1 - */ - private int section; - /** Counter for unique IDs that is consistent across generations. */ private int idCounter = 0; @@ -230,117 +224,6 @@ public class DependenciesRenderer extends AbstractProjectInfoRenderer { } } - // ---------------------------------------------------------------------- - // Protected methods - // ---------------------------------------------------------------------- - - /** {@inheritDoc} */ - // workaround for MPIR-140 - // TODO Remove me when MSHARED-390 has been resolved - @Override - protected void startSection(String name) { - startSection(name, name); - } - - /** - * Start section with a name and a specific anchor. - * - * @param anchor not null - * @param name not null - */ - // TODO Remove me when MSHARED-390 has been resolved - protected void startSection(String anchor, String name) { - section = section + 1; - - super.sink.anchor(HtmlTools.encodeId(anchor)); - super.sink.anchor_(); - - switch (section) { - case 1: - sink.section1(); - sink.sectionTitle1(); - break; - case 2: - sink.section2(); - sink.sectionTitle2(); - break; - case 3: - sink.section3(); - sink.sectionTitle3(); - break; - case 4: - sink.section4(); - sink.sectionTitle4(); - break; - case 5: - sink.section5(); - sink.sectionTitle5(); - break; - - default: - // TODO: warning - just don't start a section - break; - } - - text(name); - - switch (section) { - case 1: - sink.sectionTitle1_(); - break; - case 2: - sink.sectionTitle2_(); - break; - case 3: - sink.sectionTitle3_(); - break; - case 4: - sink.sectionTitle4_(); - break; - case 5: - sink.sectionTitle5_(); - break; - - default: - // TODO: warning - just don't start a section - break; - } - } - - /** {@inheritDoc} */ - // workaround for MPIR-140 - // TODO Remove me when MSHARED-390 has been resolved - @Override - protected void endSection() { - switch (section) { - case 1: - sink.section1_(); - break; - case 2: - sink.section2_(); - break; - case 3: - sink.section3_(); - break; - case 4: - sink.section4_(); - break; - case 5: - sink.section5_(); - break; - - default: - // TODO: warning - just don't start a section - break; - } - - section = section - 1; - - if (section < 0) { - throw new IllegalStateException("Too many closing sections"); - } - } - // ---------------------------------------------------------------------- // Private methods // ---------------------------------------------------------------------- @@ -436,7 +319,7 @@ public class DependenciesRenderer extends AbstractProjectInfoRenderer { PrintWriter pw = new PrintWriter(sw); pw.println(""); - pw.println("<script language=\"javascript\" type=\"text/javascript\">"); + pw.println("<script>"); pw.println(" function toggleDependencyDetails( divId, imgId )"); pw.println(" {"); pw.println(" var div = document.getElementById( divId );"); @@ -701,7 +584,7 @@ public class DependenciesRenderer extends AbstractProjectInfoRenderer { String anchorByScope = (isTransitive ? getI18nString("transitive.title") + "_" + scope : getI18nString("title") + "_" + scope); - startSection(anchorByScope, scope); + startSection(scope, anchorByScope); paragraph(getI18nString("intro." + scope)); @@ -849,8 +732,7 @@ public class DependenciesRenderer extends AbstractProjectInfoRenderer { List<License> licenses = artifactProject.getLicenses(); - sink.table(); - sink.tableRows(null, false); + startTable(); sink.tableRow(); sink.tableHeaderCell(); @@ -931,8 +813,7 @@ public class DependenciesRenderer extends AbstractProjectInfoRenderer { sink.tableCell_(); sink.tableRow_(); - sink.tableRows_(); - sink.table_(); + endTable(); } catch (ProjectBuildingException e) { sink.text(getI18nString("index", "nodescription")); if (log.isDebugEnabled()) { @@ -945,8 +826,7 @@ public class DependenciesRenderer extends AbstractProjectInfoRenderer { } } } else { - sink.table(); - sink.tableRows(null, false); + startTable(); sink.tableRow(); sink.tableHeaderCell(); @@ -976,8 +856,7 @@ public class DependenciesRenderer extends AbstractProjectInfoRenderer { sink.tableCell_(); sink.tableRow_(); - sink.tableRows_(); - sink.table_(); + endTable(); } sink.rawText("</div>"); diff --git a/src/test/java/org/apache/maven/report/projectinfo/AbstractProjectInfoTestCase.java b/src/test/java/org/apache/maven/report/projectinfo/AbstractProjectInfoTestCase.java index b46d356..1766141 100644 --- a/src/test/java/org/apache/maven/report/projectinfo/AbstractProjectInfoTestCase.java +++ b/src/test/java/org/apache/maven/report/projectinfo/AbstractProjectInfoTestCase.java @@ -20,9 +20,16 @@ package org.apache.maven.report.projectinfo; import java.io.File; import java.io.IOException; -import java.util.Locale; +import java.util.Collections; +import java.util.List; +import com.meterware.httpunit.HttpUnitOptions; +import org.apache.maven.doxia.tools.SiteTool; +import org.apache.maven.model.Plugin; import org.apache.maven.plugin.LegacySupport; +import org.apache.maven.plugin.MojoExecution; +import org.apache.maven.plugin.descriptor.MojoDescriptor; +import org.apache.maven.plugin.descriptor.PluginDescriptor; import org.apache.maven.plugin.testing.AbstractMojoTestCase; import org.apache.maven.plugin.testing.ArtifactStubFactory; import org.apache.maven.plugin.testing.stubs.MavenProjectStub; @@ -47,11 +54,6 @@ import org.eclipse.aether.repository.LocalRepository; public abstract class AbstractProjectInfoTestCase extends AbstractMojoTestCase { private ArtifactStubFactory artifactStubFactory; - /** - * The default locale is English. - */ - protected static final Locale DEFAULT_LOCALE = Locale.ENGLISH; - /** * The current project to be test. */ @@ -67,14 +69,13 @@ public abstract class AbstractProjectInfoTestCase extends AbstractMojoTestCase { // required for mojo lookups to work super.setUp(); + HttpUnitOptions.setScriptingEnabled(false); + i18n = getContainer().lookup(I18N.class); setVariableValueToObject(i18n, "defaultBundleName", "project-info-reports"); artifactStubFactory = new DependencyArtifactStubFactory(getTestFile("target"), true, false); artifactStubFactory.getWorkingDir().mkdirs(); - - // Set the default Locale - Locale.setDefault(DEFAULT_LOCALE); } @Override @@ -93,7 +94,7 @@ public abstract class AbstractProjectInfoTestCase extends AbstractMojoTestCase { throw new IllegalArgumentException("The key cannot be empty"); } - return i18n.getString(key, Locale.getDefault()).trim(); + return i18n.getString(key, SiteTool.DEFAULT_LOCALE).trim(); } /** @@ -138,7 +139,7 @@ public abstract class AbstractProjectInfoTestCase extends AbstractMojoTestCase { File report = new File(outputDirectory, name); if (!report.exists()) { - throw new IOException("File not found. Attempted :" + report); + throw new IOException("File not found. Attempted: " + report); } return report; @@ -160,7 +161,7 @@ public abstract class AbstractProjectInfoTestCase extends AbstractMojoTestCase { protected AbstractProjectInfoReport createReportMojo(String goal, File pluginXmlFile) throws Exception { AbstractProjectInfoReport mojo = (AbstractProjectInfoReport) lookupMojo(goal, pluginXmlFile); - assertNotNull("Mojo found.", mojo); + assertNotNull("Mojo not found.", mojo); LegacySupport legacySupport = lookup(LegacySupport.class); legacySupport.setSession(newMavenSession(new MavenProjectStub())); @@ -169,9 +170,19 @@ public abstract class AbstractProjectInfoTestCase extends AbstractMojoTestCase { repoSession.setLocalRepositoryManager(new SimpleLocalRepositoryManagerFactory() .newInstance(repoSession, new LocalRepository(artifactStubFactory.getWorkingDir()))); + List<MavenProject> reactorProjects = + mojo.getReactorProjects() != null ? mojo.getReactorProjects() : Collections.emptyList(); + + setVariableValueToObject(mojo, "mojoExecution", getMockMojoExecution()); setVariableValueToObject(mojo, "session", legacySupport.getSession()); + setVariableValueToObject(mojo, "repoSession", legacySupport.getRepositorySession()); + setVariableValueToObject(mojo, "reactorProjects", reactorProjects); + setVariableValueToObject( + mojo, "remoteProjectRepositories", mojo.getProject().getRemoteProjectRepositories()); setVariableValueToObject(mojo, "remoteRepositories", mojo.getProject().getRemoteArtifactRepositories()); setVariableValueToObject(mojo, "pluginRepositories", mojo.getProject().getPluginArtifactRepositories()); + setVariableValueToObject( + mojo, "siteDirectory", new File(mojo.getProject().getBasedir(), "src/site")); return mojo; } @@ -190,4 +201,22 @@ public abstract class AbstractProjectInfoTestCase extends AbstractMojoTestCase { return new File(outputDir, filename); } + + private MojoExecution getMockMojoExecution() { + MojoDescriptor md = new MojoDescriptor(); + md.setGoal(getGoal()); + + MojoExecution me = new MojoExecution(md); + + PluginDescriptor pd = new PluginDescriptor(); + Plugin p = new Plugin(); + p.setGroupId("org.apache.maven.plugins"); + p.setArtifactId("maven-project-info-reports-plugin"); + pd.setPlugin(p); + md.setPluginDescriptor(pd); + + return me; + } + + protected abstract String getGoal(); } diff --git a/src/test/java/org/apache/maven/report/projectinfo/CiManagementReportTest.java b/src/test/java/org/apache/maven/report/projectinfo/CiManagementReportTest.java index 6b6b4bf..93cea2b 100644 --- a/src/test/java/org/apache/maven/report/projectinfo/CiManagementReportTest.java +++ b/src/test/java/org/apache/maven/report/projectinfo/CiManagementReportTest.java @@ -65,8 +65,8 @@ public class CiManagementReportTest extends AbstractProjectInfoTestCase { // Test the texts TextBlock[] textBlocks = response.getTextBlocks(); - assertEquals(getString("report.ci-management.name"), textBlocks[0].getText()); - assertEquals(getString("report.ci-management.nocim"), textBlocks[1].getText()); + assertEquals(getString("report.ci-management.name"), textBlocks[1].getText()); + assertEquals(getString("report.ci-management.nocim"), textBlocks[2].getText()); } /** @@ -93,11 +93,17 @@ public class CiManagementReportTest extends AbstractProjectInfoTestCase { // Test the texts TextBlock[] textBlocks = response.getTextBlocks(); - assertTrue(textBlocks[1].getText().startsWith("This project uses ")); - assertEquals(3, textBlocks[1].getNode().getChildNodes().getLength()); + TextBlock textBlock = textBlocks[2]; + assertTrue(textBlock.getText().startsWith("This project uses ")); + assertEquals(3, textBlock.getNode().getChildNodes().getLength()); HTMLAnchorElement anchor = - (HTMLAnchorElement) textBlocks[1].getNode().getChildNodes().item(1); + (HTMLAnchorElement) textBlock.getNode().getChildNodes().item(1); assertEquals("https://www.jetbrains.com/teamcity/", anchor.getAttribute("href")); assertEquals("TeamCity", anchor.getFirstChild().getNodeValue()); } + + @Override + protected String getGoal() { + return "ci-management"; + } } diff --git a/src/test/java/org/apache/maven/report/projectinfo/DependenciesReportTest.java b/src/test/java/org/apache/maven/report/projectinfo/DependenciesReportTest.java index 445cbec..09d75be 100644 --- a/src/test/java/org/apache/maven/report/projectinfo/DependenciesReportTest.java +++ b/src/test/java/org/apache/maven/report/projectinfo/DependenciesReportTest.java @@ -83,4 +83,9 @@ public class DependenciesReportTest extends AbstractProjectInfoTestCase { assertEquals(getString("report.dependencies.graph.tree.title"), textBlocks[6].getText()); assertEquals(getString("report.dependencies.graph.tables.licenses"), textBlocks[7].getText()); } + + @Override + protected String getGoal() { + return "dependencies"; + } } diff --git a/src/test/java/org/apache/maven/report/projectinfo/DependencyConvergenceReportTest.java b/src/test/java/org/apache/maven/report/projectinfo/DependencyConvergenceReportTest.java index c4df533..3927a25 100644 --- a/src/test/java/org/apache/maven/report/projectinfo/DependencyConvergenceReportTest.java +++ b/src/test/java/org/apache/maven/report/projectinfo/DependencyConvergenceReportTest.java @@ -67,6 +67,11 @@ public class DependencyConvergenceReportTest extends AbstractProjectInfoTestCase // Test the texts TextBlock[] textBlocks = response.getTextBlocks(); - assertEquals(getString("report.dependency-convergence.reactor.name"), textBlocks[0].getText()); + assertEquals(getString("report.dependency-convergence.reactor.name"), textBlocks[1].getText()); + } + + @Override + protected String getGoal() { + return "dependency-convergence"; } } diff --git a/src/test/java/org/apache/maven/report/projectinfo/DependencyManagementReportTest.java b/src/test/java/org/apache/maven/report/projectinfo/DependencyManagementReportTest.java index d3075aa..7b0d26d 100644 --- a/src/test/java/org/apache/maven/report/projectinfo/DependencyManagementReportTest.java +++ b/src/test/java/org/apache/maven/report/projectinfo/DependencyManagementReportTest.java @@ -80,7 +80,12 @@ public class DependencyManagementReportTest extends AbstractProjectInfoTestCase // Test the texts TextBlock[] textBlocks = response.getTextBlocks(); - assertEquals(getString("report.dependency-management.title"), textBlocks[0].getText()); - assertEquals("test", textBlocks[1].getText()); + assertEquals(getString("report.dependency-management.title"), textBlocks[1].getText()); + assertEquals("test", textBlocks[2].getText()); + } + + @Override + protected String getGoal() { + return "dependency-management"; } } diff --git a/src/test/java/org/apache/maven/report/projectinfo/IndexReportTest.java b/src/test/java/org/apache/maven/report/projectinfo/IndexReportTest.java index e7aee3a..01f611f 100644 --- a/src/test/java/org/apache/maven/report/projectinfo/IndexReportTest.java +++ b/src/test/java/org/apache/maven/report/projectinfo/IndexReportTest.java @@ -65,7 +65,12 @@ public class IndexReportTest extends AbstractProjectInfoTestCase { // Test the texts TextBlock[] textBlocks = response.getTextBlocks(); assertEquals( - getString("report.index.title") + " " + getTestMavenProject().getName(), textBlocks[0].getText()); - assertEquals(getString("report.index.nodescription"), textBlocks[1].getText()); + getString("report.index.title") + " " + getTestMavenProject().getName(), textBlocks[1].getText()); + assertEquals(getString("report.index.nodescription"), textBlocks[2].getText()); + } + + @Override + protected String getGoal() { + return "index"; } } diff --git a/src/test/java/org/apache/maven/report/projectinfo/IssueManagementReportTest.java b/src/test/java/org/apache/maven/report/projectinfo/IssueManagementReportTest.java index abc506f..b1e0185 100644 --- a/src/test/java/org/apache/maven/report/projectinfo/IssueManagementReportTest.java +++ b/src/test/java/org/apache/maven/report/projectinfo/IssueManagementReportTest.java @@ -67,7 +67,7 @@ public class IssueManagementReportTest extends AbstractProjectInfoTestCase { // Test the links WebLink[] weblinks = response.getLinks(); - assertEquals(3, weblinks.length); + assertEquals(4, weblinks.length); assertEquals("JIRA", weblinks[1].getText()); @@ -75,8 +75,13 @@ public class IssueManagementReportTest extends AbstractProjectInfoTestCase { // Test the texts TextBlock[] textBlocks = response.getTextBlocks(); - assertEquals(getString("report.issue-management.overview.title"), textBlocks[0].getText()); - assertEquals("This project uses JIRA.", textBlocks[1].getText()); // due to link pattern - assertEquals(getString("report.issue-management.name"), textBlocks[2].getText()); + assertEquals(getString("report.issue-management.overview.title"), textBlocks[1].getText()); + assertEquals("This project uses JIRA.", textBlocks[2].getText()); // due to link pattern + assertEquals(getString("report.issue-management.name"), textBlocks[3].getText()); + } + + @Override + protected String getGoal() { + return "issue-management"; } } diff --git a/src/test/java/org/apache/maven/report/projectinfo/LicensesReportTest.java b/src/test/java/org/apache/maven/report/projectinfo/LicensesReportTest.java index b487eb1..23dc4f1 100644 --- a/src/test/java/org/apache/maven/report/projectinfo/LicensesReportTest.java +++ b/src/test/java/org/apache/maven/report/projectinfo/LicensesReportTest.java @@ -64,15 +64,15 @@ public class LicensesReportTest extends AbstractProjectInfoTestCase { // Test the texts TextBlock[] textBlocks = response.getTextBlocks(); - assertEquals(getString("report.licenses.overview.title"), textBlocks[0].getText()); - assertEquals(getString("report.licenses.overview.intro"), textBlocks[1].getText()); - assertEquals(getString("report.licenses.title"), textBlocks[2].getText()); - assertEquals("The Apache Software License, Version 2.0", textBlocks[3].getText()); + assertEquals(getString("report.licenses.overview.title"), textBlocks[1].getText()); + assertEquals(getString("report.licenses.overview.intro"), textBlocks[2].getText()); + assertEquals(getString("report.licenses.title"), textBlocks[3].getText()); + assertEquals("The Apache Software License, Version 2.0", textBlocks[4].getText()); // only 1 link in default report final WebLink[] links = response.getLinks(); - assertEquals(1, links.length); - assertEquals("http://maven.apache.org/", links[0].getURLString()); + assertEquals(2, links.length); + assertEquals("http://maven.apache.org/", links[1].getURLString()); } public void testReportLinksOnly() throws Exception { @@ -96,16 +96,21 @@ public class LicensesReportTest extends AbstractProjectInfoTestCase { // Test the texts TextBlock[] textBlocks = response.getTextBlocks(); - assertEquals(getString("report.licenses.overview.title"), textBlocks[0].getText()); - assertEquals(getString("report.licenses.overview.intro"), textBlocks[1].getText()); - assertEquals(getString("report.licenses.title"), textBlocks[2].getText()); - assertEquals("The Apache Software License, Version 2.0", textBlocks[3].getText()); + assertEquals(getString("report.licenses.overview.title"), textBlocks[1].getText()); + assertEquals(getString("report.licenses.overview.intro"), textBlocks[2].getText()); + assertEquals(getString("report.licenses.title"), textBlocks[3].getText()); + assertEquals("The Apache Software License, Version 2.0", textBlocks[4].getText()); // here's our specific test final WebLink[] links = response.getLinks(); - assertEquals(2, links.length); - assertEquals("http://maven.apache.org/", links[0].getURLString()); + assertEquals(3, links.length); + assertEquals("http://maven.apache.org", links[0].getURLString()); assertEquals("https://www.apache.org/licenses/LICENSE-2.0.txt", links[1].getURLString()); assertEquals("https://www.apache.org/licenses/LICENSE-2.0.txt", links[1].getText()); } + + @Override + protected String getGoal() { + return "licenses"; + } } diff --git a/src/test/java/org/apache/maven/report/projectinfo/MailingListsReportTest.java b/src/test/java/org/apache/maven/report/projectinfo/MailingListsReportTest.java index 6404eae..22f30fa 100644 --- a/src/test/java/org/apache/maven/report/projectinfo/MailingListsReportTest.java +++ b/src/test/java/org/apache/maven/report/projectinfo/MailingListsReportTest.java @@ -19,7 +19,6 @@ package org.apache.maven.report.projectinfo; import java.net.URL; -import java.util.Locale; import com.meterware.httpunit.GetMethodWebRequest; import com.meterware.httpunit.TextBlock; @@ -66,8 +65,8 @@ public class MailingListsReportTest extends AbstractProjectInfoTestCase { // Test the texts TextBlock[] textBlocks = response.getTextBlocks(); - assertEquals(getString("report.mailing-lists.title"), textBlocks[0].getText()); - assertEquals(getString("report.mailing-lists.intro"), textBlocks[1].getText()); + assertEquals(getString("report.mailing-lists.title"), textBlocks[1].getText()); + assertEquals(getString("report.mailing-lists.intro"), textBlocks[2].getText()); // MPIR-385 + MPIR-401: Test links are URIs otherwise assume a plain email address String post = getString("report.mailing-lists.column.post"); @@ -90,18 +89,9 @@ public class MailingListsReportTest extends AbstractProjectInfoTestCase { * @throws Exception if any */ public void testFrenchReport() throws Exception { - Locale oldLocale = Locale.getDefault(); - - try { - Locale.setDefault(Locale.FRENCH); - - generateReport("mailing-lists", "mailing-lists-plugin-config.xml"); - assertTrue( - "Test html generated", - getGeneratedReport("mailing-lists.html").exists()); - } finally { - Locale.setDefault(oldLocale); - } + generateReport("mailing-lists", "mailing-lists-plugin-config-fr.xml"); + assertTrue( + "Test html generated", getGeneratedReport("mailing-lists.html").exists()); } /** @@ -114,4 +104,9 @@ public class MailingListsReportTest extends AbstractProjectInfoTestCase { assertTrue( "Test html generated", getGeneratedReport("mailing-lists.html").exists()); } + + @Override + protected String getGoal() { + return "mailing-lists"; + } } diff --git a/src/test/java/org/apache/maven/report/projectinfo/ModulesReportTest.java b/src/test/java/org/apache/maven/report/projectinfo/ModulesReportTest.java index 79a3b4a..85f4bc7 100644 --- a/src/test/java/org/apache/maven/report/projectinfo/ModulesReportTest.java +++ b/src/test/java/org/apache/maven/report/projectinfo/ModulesReportTest.java @@ -78,9 +78,10 @@ public class ModulesReportTest extends AbstractProjectInfoTestCase { // Test the texts TextBlock[] textBlocks = response.getTextBlocks(); - assertEquals(2, textBlocks.length); - assertEquals(getString("report.modules.title"), textBlocks[0].getText()); - assertEquals(getString("report.modules.intro"), textBlocks[1].getText()); + // Last one is footer noise + assertEquals(4, textBlocks.length - 1); + assertEquals(getString("report.modules.title"), textBlocks[1].getText()); + assertEquals(getString("report.modules.intro"), textBlocks[2].getText()); String[][] cellTexts = response.getTables()[0].asText(); assertEquals(3, cellTexts.length); @@ -124,4 +125,9 @@ public class ModulesReportTest extends AbstractProjectInfoTestCase { "Variable 'sitePublishLocation' should be interpolated", FileUtils.readFileToString(getGeneratedReport("modules.html")).contains("sitePublishLocation")); } + + @Override + protected String getGoal() { + return "modules"; + } } diff --git a/src/test/java/org/apache/maven/report/projectinfo/PluginManagementReportTest.java b/src/test/java/org/apache/maven/report/projectinfo/PluginManagementReportTest.java index 4fa7704..0635538 100644 --- a/src/test/java/org/apache/maven/report/projectinfo/PluginManagementReportTest.java +++ b/src/test/java/org/apache/maven/report/projectinfo/PluginManagementReportTest.java @@ -104,7 +104,7 @@ public class PluginManagementReportTest extends AbstractProjectInfoTestCase { // Test the texts TextBlock[] textBlocks = response.getTextBlocks(); - assertEquals(getString("report.plugin-management.title"), textBlocks[0].getText()); + assertEquals(getString("report.plugin-management.title"), textBlocks[1].getText()); } /** @@ -149,7 +149,7 @@ public class PluginManagementReportTest extends AbstractProjectInfoTestCase { // Test the texts TextBlock[] textBlocks = response.getTextBlocks(); - assertEquals(getString("report.plugin-management.title"), textBlocks[0].getText()); + assertEquals(getString("report.plugin-management.title"), textBlocks[1].getText()); } private static ProjectBuildingResult createProjectBuildingResult(Artifact artifact, String url) { @@ -164,4 +164,9 @@ public class PluginManagementReportTest extends AbstractProjectInfoTestCase { return result; } + + @Override + protected String getGoal() { + return "plugin-management"; + } } diff --git a/src/test/java/org/apache/maven/report/projectinfo/ScmReportTest.java b/src/test/java/org/apache/maven/report/projectinfo/ScmReportTest.java index 506496c..33c213c 100644 --- a/src/test/java/org/apache/maven/report/projectinfo/ScmReportTest.java +++ b/src/test/java/org/apache/maven/report/projectinfo/ScmReportTest.java @@ -65,13 +65,14 @@ public class ScmReportTest extends AbstractProjectInfoTestCase { // Test the texts TextBlock[] textBlocks = response.getTextBlocks(); - assertEquals(6, textBlocks.length); - assertEquals(getString("report.scm.overview.title"), textBlocks[0].getText()); - assertEquals(getString("report.scm.general.intro"), textBlocks[1].getText()); - assertEquals(getString("report.scm.webaccess.title"), textBlocks[2].getText()); - assertEquals(getString("report.scm.webaccess.nourl"), textBlocks[3].getText()); - assertEquals(getString("report.scm.accessbehindfirewall.title"), textBlocks[4].getText()); - assertEquals(getString("report.scm.accessbehindfirewall.general.intro"), textBlocks[5].getText()); + // Last one is footer noise + assertEquals(8, textBlocks.length - 1); + assertEquals(getString("report.scm.overview.title"), textBlocks[1].getText()); + assertEquals(getString("report.scm.general.intro"), textBlocks[2].getText()); + assertEquals(getString("report.scm.webaccess.title"), textBlocks[3].getText()); + assertEquals(getString("report.scm.webaccess.nourl"), textBlocks[4].getText()); + assertEquals(getString("report.scm.accessbehindfirewall.title"), textBlocks[5].getText()); + assertEquals(getString("report.scm.accessbehindfirewall.general.intro"), textBlocks[6].getText()); } /** @@ -118,4 +119,9 @@ public class ScmReportTest extends AbstractProjectInfoTestCase { assertTrue("IllegalArgumentException catched", true); } } + + @Override + protected String getGoal() { + return "scm"; + } } diff --git a/src/test/java/org/apache/maven/report/projectinfo/SummaryReportTest.java b/src/test/java/org/apache/maven/report/projectinfo/SummaryReportTest.java index 878025c..6e3512e 100644 --- a/src/test/java/org/apache/maven/report/projectinfo/SummaryReportTest.java +++ b/src/test/java/org/apache/maven/report/projectinfo/SummaryReportTest.java @@ -64,10 +64,15 @@ public class SummaryReportTest extends AbstractProjectInfoTestCase { // Test the texts TextBlock[] textBlocks = response.getTextBlocks(); - assertEquals(getString("report.summary.title"), textBlocks[0].getText()); - assertEquals(getString("report.summary.general.title"), textBlocks[1].getText()); - assertEquals(getString("report.summary.organization.title"), textBlocks[2].getText()); - assertEquals(getString("report.summary.noorganization"), textBlocks[3].getText()); - assertEquals(getString("report.summary.build.title"), textBlocks[4].getText()); + assertEquals(getString("report.summary.title"), textBlocks[1].getText()); + assertEquals(getString("report.summary.general.title"), textBlocks[2].getText()); + assertEquals(getString("report.summary.organization.title"), textBlocks[3].getText()); + assertEquals(getString("report.summary.noorganization"), textBlocks[4].getText()); + assertEquals(getString("report.summary.build.title"), textBlocks[5].getText()); + } + + @Override + protected String getGoal() { + return "summary"; } } diff --git a/src/test/java/org/apache/maven/report/projectinfo/TeamReportTest.java b/src/test/java/org/apache/maven/report/projectinfo/TeamReportTest.java index e0b2c2a..0ad9062 100644 --- a/src/test/java/org/apache/maven/report/projectinfo/TeamReportTest.java +++ b/src/test/java/org/apache/maven/report/projectinfo/TeamReportTest.java @@ -72,14 +72,15 @@ public class TeamReportTest extends AbstractProjectInfoTestCase { // Test the texts TextBlock[] textBlocks = response.getTextBlocks(); - assertEquals(7, textBlocks.length); - assertEquals(getString("report.team.intro.title"), textBlocks[0].getText()); - assertEquals(getString("report.team.intro.description1"), textBlocks[1].getText()); - assertEquals(getString("report.team.intro.description2"), textBlocks[2].getText()); - assertEquals(getString("report.team.developers.title"), textBlocks[3].getText()); - assertEquals(getString("report.team.developers.intro"), textBlocks[4].getText()); - assertEquals(getString("report.team.contributors.title"), textBlocks[5].getText()); - assertEquals(getString("report.team.nocontributor"), textBlocks[6].getText()); + // Last one is footer noise + assertEquals(9, textBlocks.length - 1); + assertEquals(getString("report.team.intro.title"), textBlocks[1].getText()); + assertEquals(getString("report.team.intro.description1"), textBlocks[2].getText()); + assertEquals(getString("report.team.intro.description2"), textBlocks[3].getText()); + assertEquals(getString("report.team.developers.title"), textBlocks[4].getText()); + assertEquals(getString("report.team.developers.intro"), textBlocks[5].getText()); + assertEquals(getString("report.team.contributors.title"), textBlocks[6].getText()); + assertEquals(getString("report.team.nocontributor"), textBlocks[7].getText()); WebTable[] tables = response.getTables(); assertEquals(1, tables.length); @@ -89,4 +90,9 @@ public class TeamReportTest extends AbstractProjectInfoTestCase { assertEquals(1, links.length); assertEquals("mailto:vsive...@apache.org", links[0].getURLString()); } + + @Override + protected String getGoal() { + return "team"; + } } diff --git a/src/test/java/org/apache/maven/report/projectinfo/stubs/ProjectInfoProjectStub.java b/src/test/java/org/apache/maven/report/projectinfo/stubs/ProjectInfoProjectStub.java index 14b4006..5df9241 100644 --- a/src/test/java/org/apache/maven/report/projectinfo/stubs/ProjectInfoProjectStub.java +++ b/src/test/java/org/apache/maven/report/projectinfo/stubs/ProjectInfoProjectStub.java @@ -25,6 +25,7 @@ import java.util.List; import java.util.Objects; import java.util.Set; +import org.apache.maven.RepositoryUtils; import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.DefaultArtifact; import org.apache.maven.artifact.handler.DefaultArtifactHandler; @@ -42,6 +43,7 @@ import org.apache.maven.plugin.testing.stubs.MavenProjectStub; import org.apache.maven.shared.utils.io.IOUtil; import org.codehaus.plexus.util.ReaderFactory; import org.codehaus.plexus.util.xml.XmlStreamReader; +import org.eclipse.aether.repository.RemoteRepository; /** * @author Edwin Punzalan @@ -150,6 +152,11 @@ public abstract class ProjectInfoProjectStub extends MavenProjectStub { return Collections.singletonList(repository); } + @Override + public List<RemoteRepository> getRemoteProjectRepositories() { + return RepositoryUtils.toRepos(getRemoteArtifactRepositories()); + } + @Override public Set<Artifact> getDependencyArtifacts() { Artifact artifact = new DefaultArtifact( diff --git a/src/test/resources/plugin-configs/ci-management-plugin-config.xml b/src/test/resources/plugin-configs/ci-management-plugin-config.xml index 1aede55..56eff3d 100644 --- a/src/test/resources/plugin-configs/ci-management-plugin-config.xml +++ b/src/test/resources/plugin-configs/ci-management-plugin-config.xml @@ -24,6 +24,7 @@ under the License. <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>ci mangement project info</name> + <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> @@ -44,4 +45,4 @@ under the License. </plugin> </plugins> </build> -</project> \ No newline at end of file +</project> diff --git a/src/test/resources/plugin-configs/ci-management-plugin-with-ci-section-config.xml b/src/test/resources/plugin-configs/ci-management-plugin-with-ci-section-config.xml index 3ec898e..b329f91 100644 --- a/src/test/resources/plugin-configs/ci-management-plugin-with-ci-section-config.xml +++ b/src/test/resources/plugin-configs/ci-management-plugin-with-ci-section-config.xml @@ -24,6 +24,7 @@ under the License. <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>ci management project info</name> + <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> @@ -48,4 +49,4 @@ under the License. <system>TeamCity</system> <url>https://example.com</url> </ciManagement> -</project> \ No newline at end of file +</project> diff --git a/src/test/resources/plugin-configs/dependency-convergence-plugin-config.xml b/src/test/resources/plugin-configs/dependency-convergence-plugin-config.xml index 831f98e..e252f05 100644 --- a/src/test/resources/plugin-configs/dependency-convergence-plugin-config.xml +++ b/src/test/resources/plugin-configs/dependency-convergence-plugin-config.xml @@ -24,6 +24,7 @@ under the License. <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <name>dependency convergence project info</name> + <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> @@ -48,4 +49,4 @@ under the License. </plugin> </plugins> </build> -</project> \ No newline at end of file +</project> diff --git a/src/test/resources/plugin-configs/dependency-management-plugin-config.xml b/src/test/resources/plugin-configs/dependency-management-plugin-config.xml index 867689a..7630a65 100644 --- a/src/test/resources/plugin-configs/dependency-management-plugin-config.xml +++ b/src/test/resources/plugin-configs/dependency-management-plugin-config.xml @@ -24,6 +24,7 @@ under the License. <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>dependency management project info</name> + <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> diff --git a/src/test/resources/plugin-configs/index-plugin-config.xml b/src/test/resources/plugin-configs/index-plugin-config.xml index 7827725..7cc0fc5 100644 --- a/src/test/resources/plugin-configs/index-plugin-config.xml +++ b/src/test/resources/plugin-configs/index-plugin-config.xml @@ -24,6 +24,7 @@ under the License. <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>index project info</name> + <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> @@ -44,4 +45,4 @@ under the License. </plugin> </plugins> </build> -</project> \ No newline at end of file +</project> diff --git a/src/test/resources/plugin-configs/issue-management-plugin-config.xml b/src/test/resources/plugin-configs/issue-management-plugin-config.xml index 889df8c..56c6f49 100644 --- a/src/test/resources/plugin-configs/issue-management-plugin-config.xml +++ b/src/test/resources/plugin-configs/issue-management-plugin-config.xml @@ -24,6 +24,7 @@ under the License. <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>issue management project info</name> + <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> @@ -48,4 +49,4 @@ under the License. </plugin> </plugins> </build> -</project> \ No newline at end of file +</project> diff --git a/src/test/resources/plugin-configs/licenses-plugin-config-linkonly.xml b/src/test/resources/plugin-configs/licenses-plugin-config-linkonly.xml index a6be1a9..62c3265 100644 --- a/src/test/resources/plugin-configs/licenses-plugin-config-linkonly.xml +++ b/src/test/resources/plugin-configs/licenses-plugin-config-linkonly.xml @@ -24,6 +24,7 @@ under the License. <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>licenses project info</name> + <url>http://maven.apache.org</url> <licenses> <license> <name>The Apache Software License, Version 2.0</name> @@ -54,4 +55,4 @@ under the License. </plugin> </plugins> </build> -</project> \ No newline at end of file +</project> diff --git a/src/test/resources/plugin-configs/licenses-plugin-config.xml b/src/test/resources/plugin-configs/licenses-plugin-config.xml index 88028d4..d03ba8e 100644 --- a/src/test/resources/plugin-configs/licenses-plugin-config.xml +++ b/src/test/resources/plugin-configs/licenses-plugin-config.xml @@ -24,6 +24,7 @@ under the License. <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>licenses project info</name> + <url>http://maven.apache.org</url> <licenses> <license> <name>The Apache Software License, Version 2.0</name> @@ -53,4 +54,4 @@ under the License. </plugin> </plugins> </build> -</project> \ No newline at end of file +</project> diff --git a/src/test/resources/plugin-configs/mailing-lists-plugin-config.xml b/src/test/resources/plugin-configs/mailing-lists-plugin-config-fr.xml similarity index 97% copy from src/test/resources/plugin-configs/mailing-lists-plugin-config.xml copy to src/test/resources/plugin-configs/mailing-lists-plugin-config-fr.xml index 2cd6e45..c50e7eb 100644 --- a/src/test/resources/plugin-configs/mailing-lists-plugin-config.xml +++ b/src/test/resources/plugin-configs/mailing-lists-plugin-config-fr.xml @@ -24,6 +24,7 @@ under the License. <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>mailing lists project info</name> + <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> @@ -52,6 +53,7 @@ under the License. <configuration> <outputDirectory>target/test-harness/mailing-lists</outputDirectory> <localRepository>${localRepository}</localRepository> + <locale>fr</locale> <project implementation="org.apache.maven.report.projectinfo.stubs.MailingListsStub"/> </configuration> </plugin> diff --git a/src/test/resources/plugin-configs/mailing-lists-plugin-config-invalidlink.xml b/src/test/resources/plugin-configs/mailing-lists-plugin-config-invalidlink.xml index 6f4cde9..3ed9413 100644 --- a/src/test/resources/plugin-configs/mailing-lists-plugin-config-invalidlink.xml +++ b/src/test/resources/plugin-configs/mailing-lists-plugin-config-invalidlink.xml @@ -24,6 +24,7 @@ under the License. <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>mailing lists project info</name> + <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> diff --git a/src/test/resources/plugin-configs/mailing-lists-plugin-config.xml b/src/test/resources/plugin-configs/mailing-lists-plugin-config.xml index 2cd6e45..c35c710 100644 --- a/src/test/resources/plugin-configs/mailing-lists-plugin-config.xml +++ b/src/test/resources/plugin-configs/mailing-lists-plugin-config.xml @@ -24,6 +24,7 @@ under the License. <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>mailing lists project info</name> + <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> diff --git a/src/test/resources/plugin-configs/modules-plugin-config.xml b/src/test/resources/plugin-configs/modules-plugin-config.xml index b78319e..1340a64 100644 --- a/src/test/resources/plugin-configs/modules-plugin-config.xml +++ b/src/test/resources/plugin-configs/modules-plugin-config.xml @@ -24,7 +24,7 @@ under the License. <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <name>modules project info</name> - + <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> @@ -33,12 +33,10 @@ under the License. <scope>test</scope> </dependency> </dependencies> - <modules> <module>subproject1</module> <module>subproject2</module> </modules> - <build> <plugins> <plugin> @@ -51,4 +49,4 @@ under the License. </plugin> </plugins> </build> -</project> \ No newline at end of file +</project> diff --git a/src/test/resources/plugin-configs/modules-variable-settings-interpolated-plugin-config.xml b/src/test/resources/plugin-configs/modules-variable-settings-interpolated-plugin-config.xml index 318521c..1560b78 100644 --- a/src/test/resources/plugin-configs/modules-variable-settings-interpolated-plugin-config.xml +++ b/src/test/resources/plugin-configs/modules-variable-settings-interpolated-plugin-config.xml @@ -24,7 +24,7 @@ under the License. <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <name>modules project info</name> - + <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> @@ -33,11 +33,9 @@ under the License. <scope>test</scope> </dependency> </dependencies> - <modules> <module>subproject-site-url</module> </modules> - <build> <plugins> <plugin> @@ -51,12 +49,10 @@ under the License. </plugin> </plugins> </build> - <distributionManagement> <site> <id>projectSite</id> <url>${sitePublishLocation}/foo/${project.artifactId}</url> </site> </distributionManagement> - -</project> \ No newline at end of file +</project> diff --git a/src/test/resources/plugin-configs/plugin-management-plugin-config-MPIR-375.xml b/src/test/resources/plugin-configs/plugin-management-plugin-config-MPIR-375.xml index fc99bcd..114447a 100644 --- a/src/test/resources/plugin-configs/plugin-management-plugin-config-MPIR-375.xml +++ b/src/test/resources/plugin-configs/plugin-management-plugin-config-MPIR-375.xml @@ -24,11 +24,11 @@ under the License. <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>plugin management project info</name> - + <url>http://maven.apache.org</url> <build> <pluginManagement> <plugins> - <!--This plugin's configuration is used to store Eclipse m2e settings only. + <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself. --> <plugin> <groupId>org.eclipse.m2e</groupId> @@ -71,7 +71,7 @@ under the License. <outputDirectory>target/test-harness/plugin-management</outputDirectory> <localRepository>${localRepository}</localRepository> <project implementation="org.apache.maven.report.projectinfo.stubs.PluginManagementMPIR375Stub"/> - + <pluginManagementExcludes> <pluginManagementExclude>org.eclipse.m2e:lifecycle-mapping</pluginManagementExclude> </pluginManagementExcludes> diff --git a/src/test/resources/plugin-configs/plugin-management-plugin-config.xml b/src/test/resources/plugin-configs/plugin-management-plugin-config.xml index c06ed75..ac962fe 100644 --- a/src/test/resources/plugin-configs/plugin-management-plugin-config.xml +++ b/src/test/resources/plugin-configs/plugin-management-plugin-config.xml @@ -24,6 +24,7 @@ under the License. <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>plugin management project info</name> + <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> @@ -31,7 +32,6 @@ under the License. <version>3.8.1</version> </dependency> </dependencies> - <build> <pluginManagement> <plugins> diff --git a/src/test/resources/plugin-configs/scm-plugin-config.xml b/src/test/resources/plugin-configs/scm-plugin-config.xml index cc4fa04..6f0cded 100644 --- a/src/test/resources/plugin-configs/scm-plugin-config.xml +++ b/src/test/resources/plugin-configs/scm-plugin-config.xml @@ -24,6 +24,7 @@ under the License. <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>scm project info</name> + <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> @@ -50,4 +51,4 @@ under the License. </plugin> </plugins> </build> -</project> \ No newline at end of file +</project> diff --git a/src/test/resources/plugin-configs/scm-wrong-url-plugin-config.xml b/src/test/resources/plugin-configs/scm-wrong-url-plugin-config.xml index ce9c1eb..ceaf5ae 100644 --- a/src/test/resources/plugin-configs/scm-wrong-url-plugin-config.xml +++ b/src/test/resources/plugin-configs/scm-wrong-url-plugin-config.xml @@ -24,6 +24,7 @@ under the License. <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>scm project info</name> + <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> @@ -45,4 +46,4 @@ under the License. </plugin> </plugins> </build> -</project> \ No newline at end of file +</project> diff --git a/src/test/resources/plugin-configs/summary-plugin-config.xml b/src/test/resources/plugin-configs/summary-plugin-config.xml index d47e9c8..e53e574 100644 --- a/src/test/resources/plugin-configs/summary-plugin-config.xml +++ b/src/test/resources/plugin-configs/summary-plugin-config.xml @@ -24,6 +24,7 @@ under the License. <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>summary project info</name> + <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> @@ -44,4 +45,4 @@ under the License. </plugin> </plugins> </build> -</project> \ No newline at end of file +</project> diff --git a/src/test/resources/plugin-configs/team-plugin-config.xml b/src/test/resources/plugin-configs/team-plugin-config.xml index f94a7b6..d6f2f89 100644 --- a/src/test/resources/plugin-configs/team-plugin-config.xml +++ b/src/test/resources/plugin-configs/team-plugin-config.xml @@ -24,6 +24,7 @@ under the License. <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>team project info</name> + <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> @@ -61,4 +62,4 @@ under the License. </plugin> </plugins> </build> -</project> \ No newline at end of file +</project>