You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2023/06/05 21:08:32 UTC
[maven-javadoc-plugin] 01/01: Prepare for Doxia 2.0.0
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 03aa6d776234cb25e024db89c3fe11e9475c0084
Author: Michael Osipov <mi...@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 | 85 +++++-----------------
.../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, 67 insertions(+), 155 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 8374125c..1bee0cbf 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 "
@@ -4238,64 +4245,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();
}
}
@@ -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 50a8a827..53ea206e 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);
}
@@ -298,16 +294,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>