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-javadoc-plugin.git
commit b8ff115f50e294f0cec96bddc88d8fb44fd7aca8 Author: Michael Osipov <micha...@apache.org> AuthorDate: Sun Apr 30 11:25:56 2023 +0200 Prepare for Doxia 2.0.0 --- pom.xml | 23 +++--- .../maven/plugins/javadoc/AbstractJavadocMojo.java | 83 +++++----------------- .../apache/maven/plugins/javadoc/JavadocJar.java | 4 +- .../maven/plugins/javadoc/JavadocReport.java | 16 ++--- .../javadoc/AggregatorJavadocReportTest.java | 8 ++- .../maven/plugins/javadoc/JavadocJarTest.java | 7 +- .../maven/plugins/javadoc/JavadocReportTest.java | 20 +++--- .../plugins/javadoc/TestJavadocReportTest.java | 7 +- .../wrong-locale-test-plugin-config.xml | 52 -------------- 9 files changed, 66 insertions(+), 154 deletions(-) diff --git a/pom.xml b/pom.xml index e1110c1c..708acc4a 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ under the License. </parent> <artifactId>maven-javadoc-plugin</artifactId> - <version>3.5.1-SNAPSHOT</version> + <version>3.6.0-SNAPSHOT</version> <packaging>maven-plugin</packaging> <name>Apache Maven Javadoc Plugin</name> @@ -112,16 +112,15 @@ under the License. <properties> <javaVersion>8</javaVersion> <mavenVersion>3.2.5</mavenVersion> - <doxiaVersion>1.11.1</doxiaVersion> - <doxia-sitetoolsVersion>1.11.1</doxia-sitetoolsVersion> + <doxiaSitetoolsVersion>2.0.0-M10</doxiaSitetoolsVersion> <wagonVersion>2.4</wagonVersion> <aetherVersion>1.0.0.v20140518</aetherVersion> <!-- https://cwiki.apache.org/confluence/x/VIHOCg#MavenEcosystemCleanup-ResolverandMaven --> <plexus-java.version>1.1.2</plexus-java.version> <jetty.version>9.4.50.v20221201</jetty.version> <!-- for ITs --> - <sitePluginVersion>3.12.1</sitePluginVersion> - <projectInfoReportsPluginVersion>3.4.2</projectInfoReportsPluginVersion> + <sitePluginVersion>4.0.0-M8</sitePluginVersion> + <projectInfoReportsPluginVersion>4.0.0-M1-SNAPSHOT</projectInfoReportsPluginVersion> <project.build.outputTimestamp>2023-02-12T17:50:15Z</project.build.outputTimestamp> <slf4jVersion>1.7.36</slf4jVersion> </properties> @@ -209,7 +208,7 @@ 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</groupId> @@ -231,14 +230,20 @@ under the License. <dependency> <groupId>org.apache.maven.doxia</groupId> <artifactId>doxia-sink-api</artifactId> - <version>${doxiaVersion}</version> + <version>2.0.0-M6</version> </dependency> <!-- Doxia-sitetools --> <dependency> <groupId>org.apache.maven.doxia</groupId> <artifactId>doxia-site-renderer</artifactId> - <version>${doxia-sitetoolsVersion}</version> + <version>${doxiaSitetoolsVersion}</version> + </dependency> + <!-- Doxia-sitetools --> + <dependency> + <groupId>org.apache.maven.doxia</groupId> + <artifactId>doxia-integration-tools</artifactId> + <version>${doxiaSitetoolsVersion}</version> </dependency> <!-- wagon --> @@ -285,7 +290,7 @@ under the License. <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-utils</artifactId> - <version>3.5.0</version> + <version>3.5.1</version> </dependency> <dependency> <groupId>commons-io</groupId> 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 e9f38d54..ed5adeff 100644 --- a/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java +++ b/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java @@ -66,6 +66,7 @@ import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager; import org.apache.maven.artifact.repository.ArtifactRepository; 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; @@ -271,6 +272,12 @@ public abstract class AbstractJavadocMojo extends AbstractMojo { // Mojo components // ---------------------------------------------------------------------- + /** + * SiteTool. + */ + @Component + protected SiteTool siteTool; + /** * Archiver manager * @@ -330,8 +337,8 @@ public abstract class AbstractJavadocMojo extends AbstractMojo { @Parameter(defaultValue = "${project}", readonly = true, required = true) protected MavenProject project; - @Parameter(defaultValue = "${mojoExecution}", readonly = true) - private MojoExecution mojo; + @Parameter(defaultValue = "${mojoExecution}", readonly = true, required = true) + protected MojoExecution mojoExecution; /** * Specify if the Javadoc should operate in offline mode. @@ -423,10 +430,10 @@ public abstract class AbstractJavadocMojo extends AbstractMojo { private ArtifactRepository localRepository; /** - * The projects in the reactor for aggregation report. + * The reactor projects. */ - @Parameter(property = "reactorProjects", readonly = true) - private List<MavenProject> reactorProjects; + @Parameter(defaultValue = "${reactorProjects}", required = true, readonly = true) + protected List<MavenProject> reactorProjects; /** * Set this to <code>true</code> to debug the Javadoc plugin. With this, <code>javadoc.bat(or.sh)</code>, @@ -1821,7 +1828,7 @@ public abstract class AbstractJavadocMojo extends AbstractMojo { abstract void doExecute() throws MojoExecutionException, MojoFailureException; protected final void verifyRemovedParameter(String paramName) { - Xpp3Dom configDom = mojo.getConfiguration(); + Xpp3Dom configDom = mojoExecution.getConfiguration(); if (configDom != null) { if (configDom.getChild(paramName) != null) { throw new IllegalArgumentException( @@ -1831,7 +1838,7 @@ public abstract class AbstractJavadocMojo extends AbstractMojo { } private void verifyReplacedParameter(String oldParamName, String newParamNew) { - Xpp3Dom configDom = mojo.getConfiguration(); + Xpp3Dom configDom = mojoExecution.getConfiguration(); if (configDom != null) { if (configDom.getChild(oldParamName) != null) { throw new IllegalArgumentException("parameter '" + oldParamName + "' has been replaced with " @@ -4239,63 +4246,7 @@ public abstract class AbstractJavadocMojo extends AbstractMojo { // locale if (StringUtils.isNotEmpty(this.locale)) { - StringTokenizer tokenizer = new StringTokenizer(this.locale, "_"); - final int maxTokens = 3; - if (tokenizer.countTokens() > maxTokens) { - throw new MavenReportException( - "Unsupported option <locale/> '" + 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 <locale/> '" + 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 <locale/> '" + 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 <locale/> '" + this.locale + "', should be language_country_variant."); - } - - this.locale = localeObject.toString(); - final List<Locale> availableLocalesList = Arrays.asList(Locale.getAvailableLocales()); - if (StringUtils.isNotEmpty(localeObject.getVariant()) && !availableLocalesList.contains(localeObject)) { - StringBuilder sb = new StringBuilder(); - sb.append("Unsupported option <locale/> with variant '").append(this.locale); - sb.append("'"); - - localeObject = new Locale(localeObject.getLanguage(), localeObject.getCountry()); - this.locale = localeObject.toString(); - - sb.append(", trying to use <locale/> without variant, i.e. '") - .append(this.locale) - .append("'"); - if (getLog().isWarnEnabled()) { - getLog().warn(sb.toString()); - } - } - - if (!availableLocalesList.contains(localeObject)) { - throw new MavenReportException("Unsupported option <locale/> '" + this.locale + "'"); - } + this.locale = siteTool.getSiteLocales(locale).get(0).toString(); } } @@ -6009,6 +5960,10 @@ public abstract class AbstractJavadocMojo extends AbstractMojo { } } + protected List<MavenProject> getReactorProjects() { + return reactorProjects; + } + /** * @param prefix The prefix of the exception. * @param e The exception. 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 e295edd2..98bed568 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 @@ package org.apache.maven.plugins.javadoc; 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 class JavadocJar extends AbstractJavadocMojo { } 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 14e138ec..417ffea8 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 java.util.stream.Collectors; 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; @@ -118,11 +119,6 @@ public class JavadocReport extends AbstractJavadocMojo implements MavenMultiPage } /** {@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); } @@ -299,16 +295,16 @@ public class JavadocReport extends AbstractJavadocMojo implements MavenMultiPage 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/AggregatorJavadocReportTest.java b/src/test/java/org/apache/maven/plugins/javadoc/AggregatorJavadocReportTest.java index 9097ab9e..36bd7d89 100644 --- a/src/test/java/org/apache/maven/plugins/javadoc/AggregatorJavadocReportTest.java +++ b/src/test/java/org/apache/maven/plugins/javadoc/AggregatorJavadocReportTest.java @@ -62,8 +62,12 @@ public class AggregatorJavadocReportTest extends AbstractMojoTestCase { private JavadocReport lookupMojo(File testPom) throws Exception { JavadocReport mojo = (JavadocReport) lookupMojo("aggregate", testPom); - MojoExecution mojoExec = new MojoExecution(new Plugin(), "aggregate", null); - setVariableValueToObject(mojo, "mojo", mojoExec); + Plugin p = new Plugin(); + p.setGroupId("org.apache.maven.plugins"); + p.setArtifactId("maven-javadoc-plugin"); + MojoExecution mojoExecution = new MojoExecution(p, "aggregate", null); + + setVariableValueToObject(mojo, "mojoExecution", mojoExecution); MavenProject currentProject = new MavenProjectStub(); currentProject.setGroupId("GROUPID"); diff --git a/src/test/java/org/apache/maven/plugins/javadoc/JavadocJarTest.java b/src/test/java/org/apache/maven/plugins/javadoc/JavadocJarTest.java index c36668f7..66ffc989 100644 --- a/src/test/java/org/apache/maven/plugins/javadoc/JavadocJarTest.java +++ b/src/test/java/org/apache/maven/plugins/javadoc/JavadocJarTest.java @@ -42,9 +42,12 @@ public class JavadocJarTest extends AbstractMojoTestCase { private JavadocJar lookupMojo(File testPom) throws Exception { JavadocJar mojo = (JavadocJar) lookupMojo("jar", testPom); - MojoExecution mojoExec = new MojoExecution(new Plugin(), "javadoc", null); + Plugin p = new Plugin(); + p.setGroupId("org.apache.maven.plugins"); + p.setArtifactId("maven-javadoc-plugin"); + MojoExecution mojoExecution = new MojoExecution(p, "jar", null); - setVariableValueToObject(mojo, "mojo", mojoExec); + setVariableValueToObject(mojo, "mojoExecution", mojoExecution); MavenProject currentProject = new MavenProjectStub(); currentProject.setGroupId("GROUPID"); 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 d8c836b8..e61f747e 100644 --- a/src/test/java/org/apache/maven/plugins/javadoc/JavadocReportTest.java +++ b/src/test/java/org/apache/maven/plugins/javadoc/JavadocReportTest.java @@ -26,6 +26,7 @@ import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -101,17 +102,23 @@ public class JavadocReportTest extends AbstractMojoTestCase { private JavadocReport lookupMojo(Path testPom) throws Exception { JavadocReport mojo = (JavadocReport) lookupMojo("javadoc", testPom.toFile()); - MojoExecution mojoExec = new MojoExecution(new Plugin(), "javadoc", null); + Plugin p = new Plugin(); + p.setGroupId("org.apache.maven.plugins"); + p.setArtifactId("maven-javadoc-plugin"); + MojoExecution mojoExecution = new MojoExecution(p, "javadoc", null); - setVariableValueToObject(mojo, "mojo", mojoExec); + setVariableValueToObject(mojo, "mojoExecution", mojoExecution); MavenProject currentProject = new MavenProjectStub(); currentProject.setGroupId("GROUPID"); currentProject.setArtifactId("ARTIFACTID"); + List<MavenProject> reactorProjects = + mojo.getReactorProjects() != null ? mojo.getReactorProjects() : Collections.emptyList(); MavenSession session = newMavenSession(currentProject); setVariableValueToObject(mojo, "session", session); setVariableValueToObject(mojo, "repoSession", session.getRepositorySession()); + setVariableValueToObject(mojo, "reactorProjects", reactorProjects); return mojo; } @@ -1064,15 +1071,6 @@ public class JavadocReportTest extends AbstractMojoTestCase { assertTrue("No wrong charset catch", e.getMessage().contains("Unsupported option <charset/>")); } - // 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 <locale/>")); - } testPom = unit.resolve("validate-options-test/wrong-locale-with-variant-test-plugin-config.xml"); mojo = lookupMojo(testPom); mojo.execute(); diff --git a/src/test/java/org/apache/maven/plugins/javadoc/TestJavadocReportTest.java b/src/test/java/org/apache/maven/plugins/javadoc/TestJavadocReportTest.java index ad2cfa66..3f8d02a6 100644 --- a/src/test/java/org/apache/maven/plugins/javadoc/TestJavadocReportTest.java +++ b/src/test/java/org/apache/maven/plugins/javadoc/TestJavadocReportTest.java @@ -43,9 +43,12 @@ public class TestJavadocReportTest extends AbstractMojoTestCase { new File(getBasedir(), "src/test/resources/unit/test-javadoc-test/test-javadoc-test-plugin-config.xml"); TestJavadocReport mojo = (TestJavadocReport) lookupMojo("test-javadoc", testPom); - MojoExecution mojoExec = new MojoExecution(new Plugin(), "test-javadoc", null); + Plugin p = new Plugin(); + p.setGroupId("org.apache.maven.plugins"); + p.setArtifactId("maven-javadoc-plugin"); + MojoExecution mojoExecution = new MojoExecution(p, "test-javadoc", null); - setVariableValueToObject(mojo, "mojo", mojoExec); + setVariableValueToObject(mojo, "mojoExecution", mojoExecution); MavenProject currentProject = new MavenProjectStub(); currentProject.setGroupId("GROUPID"); 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 d94e0c8a..00000000 --- a/src/test/resources/unit/validate-options-test/wrong-locale-test-plugin-config.xml +++ /dev/null @@ -1,52 +0,0 @@ -<!-- -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.plugins.maven-javadoc-plugin.unit</groupId> - <artifactId>wrong-locale-options-test</artifactId> - <packaging>jar</packaging> - <version>1.0-SNAPSHOT</version> - <inceptionYear>2007</inceptionYear> - <name>Maven Javadoc Plugin wrong locale Test</name> - <url>http://maven.apache.org</url> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <configuration> - <project implementation="org.apache.maven.plugins.javadoc.stubs.WrongEncodingOptionsTestMavenProjectStub"/> - <localRepository>${localRepository}</localRepository> - <outputDirectory>${basedir}/target/test/unit/validate-options-test/target/site/apidocs</outputDirectory> - <javadocOptionsDir>${basedir}/target/test/unit/validate-options-test/target/javadoc-bundle-options</javadocOptionsDir> - <show>protected</show> - <groups/> - <tags/> - <quiet>true</quiet> - <debug>true</debug> - <locale>wrong_wrong_wrong_wrong</locale> - <stylesheet>java</stylesheet> - <failOnError>true</failOnError> - </configuration> - </plugin> - </plugins> - </build> -</project>