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 37ba82e29fdefa416103ed50936b0a66527f611d
Author: Michael Osipov <micha...@apache.org>
AuthorDate: Sun Apr 30 11:25:56 2023 +0200

    Prepare for Doxia 2.0.0
---
 pom.xml                                            | 21 +++---
 .../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, 65 insertions(+), 153 deletions(-)

diff --git a/pom.xml b/pom.xml
index e1110c1c..2970ea0a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -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>

Reply via email to