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

    [MJAVADOC-784] Upgrade to Doxia 2.0.0 Milestone Stack
    
    This closes #204
---
 pom.xml                                            | 24 ++++----
 .../maven/plugins/javadoc/AbstractJavadocMojo.java | 67 +++-------------------
 .../apache/maven/plugins/javadoc/JavadocJar.java   |  4 +-
 .../maven/plugins/javadoc/JavadocReport.java       | 19 ++----
 .../maven/plugins/javadoc/JavadocReportTest.java   |  9 ---
 .../wrong-locale-test-plugin-config.xml            | 51 ----------------
 6 files changed, 28 insertions(+), 146 deletions(-)

diff --git a/pom.xml b/pom.xml
index 309ae841..37449ad1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -112,8 +112,7 @@ under the License.
   <properties>
     <javaVersion>8</javaVersion>
     <mavenVersion>3.6.3</mavenVersion>
-    <doxiaVersion>1.11.1</doxiaVersion>
-    <doxia-sitetoolsVersion>1.11.1</doxia-sitetoolsVersion>
+    <doxiaSitetoolsVersion>2.0.0-M19</doxiaSitetoolsVersion>
     <wagonVersion>3.5.3</wagonVersion>
     <resolverVersion>1.4.1</resolverVersion>
     <!-- 
https://cwiki.apache.org/confluence/x/VIHOCg#MavenEcosystemCleanup-ResolverandMaven
 -->
@@ -127,7 +126,7 @@ under the License.
     <enforcerPluginVersion>3.4.1</enforcerPluginVersion>
     <pluginPluginVersion>3.10.1</pluginPluginVersion>
     <jarPluginVersion>3.3.0</jarPluginVersion>
-    <sitePluginVersion>3.12.1</sitePluginVersion>
+    <sitePluginVersion>4.0.0-M15</sitePluginVersion>
     <projectInfoReportsPluginVersion>3.5.0</projectInfoReportsPluginVersion>
     
<project.build.outputTimestamp>2024-05-29T16:13:14Z</project.build.outputTimestamp>
     <slf4jVersion>1.7.36</slf4jVersion>
@@ -203,7 +202,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-M12</version>
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
@@ -230,21 +229,20 @@ under the License.
     <dependency>
       <groupId>org.apache.maven.doxia</groupId>
       <artifactId>doxia-sink-api</artifactId>
-      <version>${doxiaVersion}</version>
+      <version>2.0.0-M12</version>
     </dependency>
 
     <!-- Doxia-sitetools -->
     <dependency>
       <groupId>org.apache.maven.doxia</groupId>
       <artifactId>doxia-site-renderer</artifactId>
-      <version>${doxia-sitetoolsVersion}</version>
-      <exclusions>
-        <exclusion>
-          <!-- MJAVADOC-726 -->
-          <groupId>org.apache.velocity</groupId>
-          <artifactId>velocity-tools</artifactId>
-        </exclusion>
-      </exclusions>
+      <version>${doxiaSitetoolsVersion}</version>
+    </dependency>
+    <!-- Doxia-sitetools -->
+    <dependency>
+      <groupId>org.apache.maven.doxia</groupId>
+      <artifactId>doxia-integration-tools</artifactId>
+      <version>${doxiaSitetoolsVersion}</version>
     </dependency>
 
     <!-- wagon -->
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 f951e129..30385f4d 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.ArtifactHandler;
 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 @@ public abstract class AbstractJavadocMojo extends 
AbstractMojo {
         }
 
         // 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 <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 + "'");
-            }
+        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 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 0d857831..b5058fcc 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;
@@ -117,11 +118,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);
     }
@@ -236,9 +232,6 @@ public class JavadocReport extends AbstractJavadocMojo 
implements MavenMultiPage
 
             canGenerate = canGenerateReport(files);
         }
-        if (getLog().isDebugEnabled()) {
-            getLog().debug(" canGenerateReport = " + canGenerate + " for 
project " + this.project);
-        }
         return canGenerate;
     }
 
@@ -293,16 +286,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/JavadocReportTest.java 
b/src/test/java/org/apache/maven/plugins/javadoc/JavadocReportTest.java
index f80cdf64..55f2b65d 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 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/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 f8c564af..00000000
--- 
a/src/test/resources/unit/validate-options-test/wrong-locale-test-plugin-config.xml
+++ /dev/null
@@ -1,51 +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"/>
-          
<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