diff --git a/pom.xml b/pom.xml index 309ae8410..9ca0b6c94 100644 --- a/pom.xml +++ b/pom.xml @@ -112,8 +112,7 @@ under the License. 8 3.6.3 - 1.11.1 - 1.11.1 + 2.0.0-M19 3.5.3 1.4.1 @@ -127,8 +126,8 @@ under the License. 3.4.1 3.10.1 3.3.0 - 3.12.1 - 3.5.0 + 4.0.0-M15 + 3.6.1 2024-05-29T16:13:14Z 1.7.36 @@ -203,7 +202,7 @@ under the License. org.apache.maven.reporting maven-reporting-api - 3.1.1 + 4.0.0-M12 org.apache.maven @@ -230,21 +229,20 @@ under the License. org.apache.maven.doxia doxia-sink-api - ${doxiaVersion} + 2.0.0-M12 org.apache.maven.doxia doxia-site-renderer - ${doxia-sitetoolsVersion} - - - - org.apache.velocity - velocity-tools - - + ${doxiaSitetoolsVersion} + + + + org.apache.maven.doxia + doxia-integration-tools + ${doxiaSitetoolsVersion} diff --git a/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java b/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java index 09c9e4889..7ebcb2063 100644 --- a/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java +++ b/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java @@ -65,6 +65,7 @@ import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager; import org.apache.maven.artifact.versioning.ArtifactVersion; import org.apache.maven.artifact.versioning.DefaultArtifactVersion; +import org.apache.maven.doxia.tools.SiteTool; import org.apache.maven.execution.MavenSession; import org.apache.maven.model.Dependency; import org.apache.maven.model.Plugin; @@ -269,6 +270,12 @@ public abstract class AbstractJavadocMojo extends AbstractMojo { // Mojo components // ---------------------------------------------------------------------- + /** + * SiteTool. + */ + @Component + protected SiteTool siteTool; + /** * Archiver manager * @@ -4250,64 +4257,8 @@ private void validateJavadocOptions() throws MavenReportException { } // locale - if (this.locale != null && !this.locale.isEmpty()) { - StringTokenizer tokenizer = new StringTokenizer(this.locale, "_"); - final int maxTokens = 3; - if (tokenizer.countTokens() > maxTokens) { - throw new MavenReportException( - "Unsupported option '" + this.locale + "', should be language_country_variant."); - } - - Locale localeObject = null; - if (tokenizer.hasMoreTokens()) { - String language = tokenizer.nextToken().toLowerCase(Locale.ENGLISH); - if (!Arrays.asList(Locale.getISOLanguages()).contains(language)) { - throw new MavenReportException( - "Unsupported language '" + language + "' in option '" + this.locale + "'"); - } - localeObject = new Locale(language); - - if (tokenizer.hasMoreTokens()) { - String country = tokenizer.nextToken().toUpperCase(Locale.ENGLISH); - if (!Arrays.asList(Locale.getISOCountries()).contains(country)) { - throw new MavenReportException( - "Unsupported country '" + country + "' in option '" + this.locale + "'"); - } - localeObject = new Locale(language, country); - - if (tokenizer.hasMoreTokens()) { - String variant = tokenizer.nextToken(); - localeObject = new Locale(language, country, variant); - } - } - } - - if (localeObject == null) { - throw new MavenReportException( - "Unsupported option '" + this.locale + "', should be language_country_variant."); - } - - this.locale = localeObject.toString(); - final List availableLocalesList = Arrays.asList(Locale.getAvailableLocales()); - if (StringUtils.isNotEmpty(localeObject.getVariant()) && !availableLocalesList.contains(localeObject)) { - StringBuilder sb = new StringBuilder(); - sb.append("Unsupported option with variant '").append(this.locale); - sb.append("'"); - - localeObject = new Locale(localeObject.getLanguage(), localeObject.getCountry()); - this.locale = localeObject.toString(); - - sb.append(", trying to use without variant, i.e. '") - .append(this.locale) - .append("'"); - if (getLog().isWarnEnabled()) { - getLog().warn(sb.toString()); - } - } - - if (!availableLocalesList.contains(localeObject)) { - throw new MavenReportException("Unsupported option '" + this.locale + "'"); - } + if (StringUtils.isNotEmpty(this.locale)) { + this.locale = siteTool.getSiteLocales(locale).get(0).toString(); } } diff --git a/src/main/java/org/apache/maven/plugins/javadoc/JavadocJar.java b/src/main/java/org/apache/maven/plugins/javadoc/JavadocJar.java index e295edd24..98bed568d 100644 --- a/src/main/java/org/apache/maven/plugins/javadoc/JavadocJar.java +++ b/src/main/java/org/apache/maven/plugins/javadoc/JavadocJar.java @@ -21,12 +21,12 @@ import java.io.File; import java.io.IOException; import java.util.List; -import java.util.Locale; import org.apache.maven.archiver.MavenArchiveConfiguration; import org.apache.maven.archiver.MavenArchiver; import org.apache.maven.artifact.DependencyResolutionRequiredException; import org.apache.maven.artifact.handler.ArtifactHandler; +import org.apache.maven.doxia.tools.SiteTool; import org.apache.maven.model.Resource; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugins.annotations.Component; @@ -178,7 +178,7 @@ public void doExecute() throws MojoExecutionException { } try { - executeReport(Locale.getDefault()); + executeReport(SiteTool.DEFAULT_LOCALE); } catch (MavenReportException e) { failOnError("MavenReportException: Error while generating Javadoc", e); } catch (RuntimeException e) { diff --git a/src/main/java/org/apache/maven/plugins/javadoc/JavadocReport.java b/src/main/java/org/apache/maven/plugins/javadoc/JavadocReport.java index 0d857831e..b5058fcce 100644 --- a/src/main/java/org/apache/maven/plugins/javadoc/JavadocReport.java +++ b/src/main/java/org/apache/maven/plugins/javadoc/JavadocReport.java @@ -28,8 +28,9 @@ import org.apache.maven.doxia.sink.Sink; import org.apache.maven.doxia.sink.SinkFactory; -import org.apache.maven.doxia.siterenderer.RenderingContext; +import org.apache.maven.doxia.siterenderer.DocumentRenderingContext; import org.apache.maven.doxia.siterenderer.sink.SiteRendererSink; +import org.apache.maven.doxia.tools.SiteTool; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.plugins.annotations.Execute; @@ -117,11 +118,6 @@ public String getDescription(Locale locale) { } /** {@inheritDoc} */ - @Override - public void generate(org.codehaus.doxia.sink.Sink sink, Locale locale) throws MavenReportException { - generate(sink, null, locale); - } - public void generate(Sink sink, Locale locale) throws MavenReportException { generate(sink, null, locale); } @@ -236,9 +232,6 @@ public boolean canGenerateReport() { canGenerate = canGenerateReport(files); } - if (getLog().isDebugEnabled()) { - getLog().debug(" canGenerateReport = " + canGenerate + " for project " + this.project); - } return canGenerate; } @@ -293,16 +286,16 @@ public void doExecute() throws MojoExecutionException, MojoFailureException { String filename = getOutputName() + ".html"; - Locale locale = Locale.getDefault(); + Locale locale = SiteTool.DEFAULT_LOCALE; try { - // TODO Replace null with real value - RenderingContext docRenderingContext = new RenderingContext(outputDirectory, filename, null); + String reportMojoInfo = mojoExecution.getPlugin().getId() + ":" + mojoExecution.getGoal(); + DocumentRenderingContext docRenderingContext = + new DocumentRenderingContext(outputDirectory, filename, reportMojoInfo); SiteRendererSink sink = new SiteRendererSink(docRenderingContext); generate(sink, null, locale); - } catch (MavenReportException | RuntimeException e) { failOnError("An error has occurred in " + getName(Locale.ENGLISH) + " report generation", e); } diff --git a/src/test/java/org/apache/maven/plugins/javadoc/JavadocReportTest.java b/src/test/java/org/apache/maven/plugins/javadoc/JavadocReportTest.java index f80cdf64d..55f2b65d7 100644 --- a/src/test/java/org/apache/maven/plugins/javadoc/JavadocReportTest.java +++ b/src/test/java/org/apache/maven/plugins/javadoc/JavadocReportTest.java @@ -1054,15 +1054,6 @@ public void testValidateOptions() throws Exception { assertTrue("No wrong charset catch", e.getMessage().contains("Unsupported option ")); } - // locale - testPom = unit.resolve("validate-options-test/wrong-locale-test-plugin-config.xml"); - mojo = lookupMojo(testPom); - try { - mojo.execute(); - fail("No wrong locale catch"); - } catch (MojoExecutionException e) { - assertTrue("No wrong locale catch", e.getMessage().contains("Unsupported option ")); - } testPom = unit.resolve("validate-options-test/wrong-locale-with-variant-test-plugin-config.xml"); mojo = lookupMojo(testPom); mojo.execute(); diff --git a/src/test/resources/unit/validate-options-test/wrong-locale-test-plugin-config.xml b/src/test/resources/unit/validate-options-test/wrong-locale-test-plugin-config.xml deleted file mode 100644 index f8c564af9..000000000 --- a/src/test/resources/unit/validate-options-test/wrong-locale-test-plugin-config.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - 4.0.0 - org.apache.maven.plugins.maven-javadoc-plugin.unit - wrong-locale-options-test - jar - 1.0-SNAPSHOT - 2007 - Maven Javadoc Plugin wrong locale Test - http://maven.apache.org - - - - org.apache.maven.plugins - maven-javadoc-plugin - - - ${basedir}/target/test/unit/validate-options-test/target/site/apidocs - ${basedir}/target/test/unit/validate-options-test/target/javadoc-bundle-options - protected - - - true - true - wrong_wrong_wrong_wrong - java - true - - - - -