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 f0f7c035b2135f0c4a76f073de63a9bc9835ee0d Author: Michael Osipov <micha...@apache.org> AuthorDate: Sat Jul 2 23:58:47 2022 +0200 Prepare for Doxia 2.0.0 --- pom.xml | 2 +- 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/AbstractProjectInfoReport.java | 1 + .../renderer/DependenciesRenderer.java | 138 +-------------------- .../projectinfo/AbstractProjectInfoTestCase.java | 16 +-- .../report/projectinfo/MailingListsReportTest.java | 16 +-- .../report/projectinfo/ModulesReportTest.java | 3 +- .../maven/report/projectinfo/ScmReportTest.java | 3 +- .../maven/report/projectinfo/TeamReportTest.java | 3 +- .../mailing-lists-plugin-config-fr.xml | 61 +++++++++ 14 files changed, 101 insertions(+), 183 deletions(-) diff --git a/pom.xml b/pom.xml index 6718811..885c966 100644 --- a/pom.xml +++ b/pom.xml @@ -30,7 +30,7 @@ under the License. </parent> <artifactId>maven-project-info-reports-plugin</artifactId> - <version>3.4.3-SNAPSHOT</version> + <version>4.0.0-M1-SNAPSHOT</version> <packaging>maven-plugin</packaging> <name>Apache Maven Project Info Reports Plugin</name> 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..cccb3d0 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>28</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/AbstractProjectInfoReport.java b/src/main/java/org/apache/maven/report/projectinfo/AbstractProjectInfoReport.java index 4d6f9c9..8fb5027 100644 --- a/src/main/java/org/apache/maven/report/projectinfo/AbstractProjectInfoReport.java +++ b/src/main/java/org/apache/maven/report/projectinfo/AbstractProjectInfoReport.java @@ -329,6 +329,7 @@ public abstract class AbstractProjectInfoReport return getI18nString( locale, "description" ); } + // TODO Review, especially Locale.getDefault() private static class CustomI18N implements I18N { 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 02f848a..a5afcd1 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 @@ -43,7 +43,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; @@ -96,11 +95,6 @@ public class DependenciesRenderer /** 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; @@ -236,124 +230,6 @@ public class DependenciesRenderer } } - // ---------------------------------------------------------------------- - // 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 // ---------------------------------------------------------------------- @@ -742,7 +618,7 @@ public class DependenciesRenderer String anchorByScope = ( isTransitive ? getI18nString( "transitive.title" ) + "_" + scope : getI18nString( "title" ) + "_" + scope ); - startSection( anchorByScope, scope ); + startSection( scope, anchorByScope ); paragraph( getI18nString( "intro." + scope ) ); @@ -910,8 +786,7 @@ public class DependenciesRenderer List<License> licenses = artifactProject.getLicenses(); - sink.table(); - sink.tableRows( null, false ); + startTable( null, false ); sink.tableRow(); sink.tableHeaderCell(); @@ -1008,8 +883,7 @@ public class DependenciesRenderer sink.tableCell_(); sink.tableRow_(); - sink.tableRows_(); - sink.table_(); + endTable(); } catch ( ProjectBuildingException e ) { @@ -1028,8 +902,7 @@ public class DependenciesRenderer } else { - sink.table(); - sink.tableRows( null, false ); + startTable( null, false ); sink.tableRow(); sink.tableHeaderCell(); @@ -1060,8 +933,7 @@ public class DependenciesRenderer 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 4ae02ca..fdf8f13 100644 --- a/src/test/java/org/apache/maven/report/projectinfo/AbstractProjectInfoTestCase.java +++ b/src/test/java/org/apache/maven/report/projectinfo/AbstractProjectInfoTestCase.java @@ -21,8 +21,8 @@ package org.apache.maven.report.projectinfo; import java.io.File; import java.io.IOException; -import java.util.Locale; +import org.apache.maven.doxia.tools.SiteTool; import org.apache.maven.plugin.LegacySupport; import org.apache.maven.plugin.testing.AbstractMojoTestCase; import org.apache.maven.plugin.testing.ArtifactStubFactory; @@ -38,6 +38,8 @@ import org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory; import org.eclipse.aether.DefaultRepositorySystemSession; import org.eclipse.aether.repository.LocalRepository; +import com.meterware.httpunit.HttpUnitOptions; + /** * Abstract class to test reports generation with <a href="http://www.httpunit.org/">HTTPUnit</a> framework. * @@ -50,11 +52,6 @@ public abstract class AbstractProjectInfoTestCase { private ArtifactStubFactory artifactStubFactory; - /** - * The default locale is English. - */ - protected static final Locale DEFAULT_LOCALE = Locale.ENGLISH; - /** * The current project to be test. */ @@ -72,14 +69,13 @@ public abstract class AbstractProjectInfoTestCase // 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 @@ -102,7 +98,7 @@ public abstract class AbstractProjectInfoTestCase throw new IllegalArgumentException( "The key cannot be empty" ); } - return i18n.getString( key, Locale.getDefault() ).trim(); + return i18n.getString( key, SiteTool.DEFAULT_LOCALE ).trim(); } /** 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 2a96e15..ef20784 100644 --- a/src/test/java/org/apache/maven/report/projectinfo/MailingListsReportTest.java +++ b/src/test/java/org/apache/maven/report/projectinfo/MailingListsReportTest.java @@ -20,7 +20,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; @@ -97,19 +96,8 @@ public class MailingListsReportTest 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() ); } /** 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 7a1463a..a90106c 100644 --- a/src/test/java/org/apache/maven/report/projectinfo/ModulesReportTest.java +++ b/src/test/java/org/apache/maven/report/projectinfo/ModulesReportTest.java @@ -87,7 +87,8 @@ public class ModulesReportTest // Test the texts TextBlock[] textBlocks = response.getTextBlocks(); - assertEquals( 2, textBlocks.length ); + // Last one is footer noise + assertEquals( 2, textBlocks.length - 1 ); assertEquals( getString( "report.modules.title" ), textBlocks[0].getText() ); assertEquals( getString( "report.modules.intro" ), textBlocks[1].getText() ); 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 6f23220..49504ec 100644 --- a/src/test/java/org/apache/maven/report/projectinfo/ScmReportTest.java +++ b/src/test/java/org/apache/maven/report/projectinfo/ScmReportTest.java @@ -72,7 +72,8 @@ public class ScmReportTest // Test the texts TextBlock[] textBlocks = response.getTextBlocks(); - assertEquals( 6, textBlocks.length ); + // Last one is footer noise + assertEquals( 6, textBlocks.length - 1 ); 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() ); 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 82d2c4d..e45272e 100644 --- a/src/test/java/org/apache/maven/report/projectinfo/TeamReportTest.java +++ b/src/test/java/org/apache/maven/report/projectinfo/TeamReportTest.java @@ -78,7 +78,8 @@ public class TeamReportTest // Test the texts TextBlock[] textBlocks = response.getTextBlocks(); - assertEquals( 7, textBlocks.length ); + // Last one is footer noise + assertEquals( 7, textBlocks.length - 1 ); 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() ); diff --git a/src/test/resources/plugin-configs/mailing-lists-plugin-config-fr.xml b/src/test/resources/plugin-configs/mailing-lists-plugin-config-fr.xml new file mode 100644 index 0000000..96f4226 --- /dev/null +++ b/src/test/resources/plugin-configs/mailing-lists-plugin-config-fr.xml @@ -0,0 +1,61 @@ +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> + +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>org.apache.maven.plugin.projectinfo.tests</groupId> + <artifactId>mailing-lists</artifactId> + <version>1.0-SNAPSHOT</version> + <packaging>jar</packaging> + <name>mailing lists project info</name> + <dependencies> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>3.8.1</version> + <scope>test</scope> + </dependency> + </dependencies> + <mailingLists> + <mailingList> + <name>Test List</name> + <post>t...@maven.apache.org</post> + <subscribe>MAILTO:test-subscr...@maven.apache.org</subscribe> + </mailingList> + <mailingList> + <name>Test List 2</name> + <post>te...@maven.apache.org</post> + <subscribe>MAILTO:test-subscri...@maven.apache.org</subscribe> + <unsubscribe>https://example.com/unsubscribe</unsubscribe> + </mailingList> + </mailingLists> + <build> + <plugins> + <plugin> + <artifactId>maven-project-info-reports-plugin</artifactId> + <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> + </plugins> + </build> +</project>