Skip to content

Commit 9d33925

Browse files
committedAug 20, 2024
[MJAVADOC-784] Upgrade to Doxia 2.0.0 Milestone Stack
This closes #204
1 parent a11b921 commit 9d33925

File tree

9 files changed

+37
-248
lines changed

9 files changed

+37
-248
lines changed
 

‎pom.xml

+13-15
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,7 @@ under the License.
112112
<properties>
113113
<javaVersion>8</javaVersion>
114114
<mavenVersion>3.6.3</mavenVersion>
115-
<doxiaVersion>1.11.1</doxiaVersion>
116-
<doxia-sitetoolsVersion>1.11.1</doxia-sitetoolsVersion>
115+
<doxiaSitetoolsVersion>2.0.0-M19</doxiaSitetoolsVersion>
117116
<wagonVersion>3.5.3</wagonVersion>
118117
<resolverVersion>1.4.1</resolverVersion>
119118
<!-- https://cwiki.apache.org/confluence/x/VIHOCg#MavenEcosystemCleanup-ResolverandMaven -->
@@ -123,10 +122,10 @@ under the License.
123122
<compilerPluginVersion>3.11.0</compilerPluginVersion>
124123
<sourcePluginVersion>3.3.0</sourcePluginVersion>
125124
<enforcerPluginVersion>3.4.1</enforcerPluginVersion>
126-
<pluginPluginVersion>3.10.1</pluginPluginVersion>
125+
<pluginPluginVersion>3.14.0</pluginPluginVersion>
127126
<jarPluginVersion>3.3.0</jarPluginVersion>
128-
<sitePluginVersion>3.12.1</sitePluginVersion>
129-
<projectInfoReportsPluginVersion>3.5.0</projectInfoReportsPluginVersion>
127+
<sitePluginVersion>3.20.0</sitePluginVersion>
128+
<projectInfoReportsPluginVersion>3.7.0</projectInfoReportsPluginVersion>
130129
<project.build.outputTimestamp>2024-07-17T13:27:38Z</project.build.outputTimestamp>
131130
<slf4jVersion>1.7.36</slf4jVersion>
132131
</properties>
@@ -201,7 +200,7 @@ under the License.
201200
<dependency>
202201
<groupId>org.apache.maven.reporting</groupId>
203202
<artifactId>maven-reporting-api</artifactId>
204-
<version>3.1.1</version>
203+
<version>4.0.0-M12</version>
205204
</dependency>
206205
<dependency>
207206
<groupId>org.apache.maven</groupId>
@@ -228,21 +227,20 @@ under the License.
228227
<dependency>
229228
<groupId>org.apache.maven.doxia</groupId>
230229
<artifactId>doxia-sink-api</artifactId>
231-
<version>${doxiaVersion}</version>
230+
<version>2.0.0-M12</version>
232231
</dependency>
233232

234233
<!-- Doxia-sitetools -->
235234
<dependency>
236235
<groupId>org.apache.maven.doxia</groupId>
237236
<artifactId>doxia-site-renderer</artifactId>
238-
<version>${doxia-sitetoolsVersion}</version>
239-
<exclusions>
240-
<exclusion>
241-
<!-- MJAVADOC-726 -->
242-
<groupId>org.apache.velocity</groupId>
243-
<artifactId>velocity-tools</artifactId>
244-
</exclusion>
245-
</exclusions>
237+
<version>${doxiaSitetoolsVersion}</version>
238+
</dependency>
239+
<!-- Doxia-sitetools -->
240+
<dependency>
241+
<groupId>org.apache.maven.doxia</groupId>
242+
<artifactId>doxia-integration-tools</artifactId>
243+
<version>${doxiaSitetoolsVersion}</version>
246244
</dependency>
247245

248246
<!-- wagon -->

‎src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java

+11-68
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
6565
import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
6666
import org.apache.maven.artifact.versioning.ArtifactVersion;
6767
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
68+
import org.apache.maven.doxia.tools.SiteTool;
6869
import org.apache.maven.execution.MavenSession;
6970
import org.apache.maven.model.Dependency;
7071
import org.apache.maven.model.Plugin;
@@ -269,6 +270,12 @@ public abstract class AbstractJavadocMojo extends AbstractMojo {
269270
// Mojo components
270271
// ----------------------------------------------------------------------
271272

273+
/**
274+
* SiteTool.
275+
*/
276+
@Component
277+
protected SiteTool siteTool;
278+
272279
/**
273280
* Archiver manager
274281
*
@@ -4264,64 +4271,8 @@ private void validateJavadocOptions() throws MavenReportException {
42644271
}
42654272

42664273
// locale
4267-
if (this.locale != null && !this.locale.isEmpty()) {
4268-
StringTokenizer tokenizer = new StringTokenizer(this.locale, "_");
4269-
final int maxTokens = 3;
4270-
if (tokenizer.countTokens() > maxTokens) {
4271-
throw new MavenReportException(
4272-
"Unsupported option <locale/> '" + this.locale + "', should be language_country_variant.");
4273-
}
4274-
4275-
Locale localeObject = null;
4276-
if (tokenizer.hasMoreTokens()) {
4277-
String language = tokenizer.nextToken().toLowerCase(Locale.ENGLISH);
4278-
if (!Arrays.asList(Locale.getISOLanguages()).contains(language)) {
4279-
throw new MavenReportException(
4280-
"Unsupported language '" + language + "' in option <locale/> '" + this.locale + "'");
4281-
}
4282-
localeObject = new Locale(language);
4283-
4284-
if (tokenizer.hasMoreTokens()) {
4285-
String country = tokenizer.nextToken().toUpperCase(Locale.ENGLISH);
4286-
if (!Arrays.asList(Locale.getISOCountries()).contains(country)) {
4287-
throw new MavenReportException(
4288-
"Unsupported country '" + country + "' in option <locale/> '" + this.locale + "'");
4289-
}
4290-
localeObject = new Locale(language, country);
4291-
4292-
if (tokenizer.hasMoreTokens()) {
4293-
String variant = tokenizer.nextToken();
4294-
localeObject = new Locale(language, country, variant);
4295-
}
4296-
}
4297-
}
4298-
4299-
if (localeObject == null) {
4300-
throw new MavenReportException(
4301-
"Unsupported option <locale/> '" + this.locale + "', should be language_country_variant.");
4302-
}
4303-
4304-
this.locale = localeObject.toString();
4305-
final List<Locale> availableLocalesList = Arrays.asList(Locale.getAvailableLocales());
4306-
if (StringUtils.isNotEmpty(localeObject.getVariant()) && !availableLocalesList.contains(localeObject)) {
4307-
StringBuilder sb = new StringBuilder();
4308-
sb.append("Unsupported option <locale/> with variant '").append(this.locale);
4309-
sb.append("'");
4310-
4311-
localeObject = new Locale(localeObject.getLanguage(), localeObject.getCountry());
4312-
this.locale = localeObject.toString();
4313-
4314-
sb.append(", trying to use <locale/> without variant, i.e. '")
4315-
.append(this.locale)
4316-
.append("'");
4317-
if (getLog().isWarnEnabled()) {
4318-
getLog().warn(sb.toString());
4319-
}
4320-
}
4321-
4322-
if (!availableLocalesList.contains(localeObject)) {
4323-
throw new MavenReportException("Unsupported option <locale/> '" + this.locale + "'");
4324-
}
4274+
if (StringUtils.isNotEmpty(this.locale)) {
4275+
this.locale = siteTool.getSiteLocales(locale).get(0).toString();
43254276
}
43264277
}
43274278

@@ -5902,8 +5853,7 @@ private boolean isJavadocVMInitError(String output) {
59025853

59035854
/**
59045855
* @param p not null
5905-
* @return the javadoc link based on the project url i.e. <code>${project.url}/${destDir}</code> where
5906-
* <code>destDir</code> is configued in the Javadoc plugin configuration (<code>apidocs</code> by default).
5856+
* @return the javadoc link based on the project url i.e. <code>${project.url}/apidocs</code>.
59075857
* @since 2.6
59085858
*/
59095859
private static String getJavadocLink(MavenProject p) {
@@ -5912,15 +5862,8 @@ private static String getJavadocLink(MavenProject p) {
59125862
}
59135863

59145864
String url = cleanUrl(p.getUrl());
5915-
String destDir = "apidocs"; // see JavadocReport#destDir
5916-
5917-
final String pluginId = "org.apache.maven.plugins:maven-javadoc-plugin";
5918-
String destDirConfigured = getPluginParameter(p, pluginId, "destDir");
5919-
if (destDirConfigured != null) {
5920-
destDir = destDirConfigured;
5921-
}
59225865

5923-
return url + "/" + destDir;
5866+
return url + "/apidocs";
59245867
}
59255868

59265869
/**

‎src/main/java/org/apache/maven/plugins/javadoc/JavadocJarMojo.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@
2121
import java.io.File;
2222
import java.io.IOException;
2323
import java.util.List;
24-
import java.util.Locale;
2524

2625
import org.apache.maven.archiver.MavenArchiveConfiguration;
2726
import org.apache.maven.archiver.MavenArchiver;
2827
import org.apache.maven.artifact.DependencyResolutionRequiredException;
2928
import org.apache.maven.artifact.handler.ArtifactHandler;
29+
import org.apache.maven.doxia.tools.SiteTool;
3030
import org.apache.maven.model.Resource;
3131
import org.apache.maven.plugin.MojoExecutionException;
3232
import org.apache.maven.plugins.annotations.Component;
@@ -178,7 +178,7 @@ public void doExecute() throws MojoExecutionException {
178178
}
179179

180180
try {
181-
executeReport(Locale.getDefault());
181+
executeReport(SiteTool.DEFAULT_LOCALE);
182182
} catch (MavenReportException e) {
183183
failOnError("MavenReportException: Error while generating Javadoc", e);
184184
} catch (RuntimeException e) {

‎src/main/java/org/apache/maven/plugins/javadoc/JavadocReport.java

+6-13
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,9 @@
2828

2929
import org.apache.maven.doxia.sink.Sink;
3030
import org.apache.maven.doxia.sink.SinkFactory;
31-
import org.apache.maven.doxia.siterenderer.RenderingContext;
31+
import org.apache.maven.doxia.siterenderer.DocumentRenderingContext;
3232
import org.apache.maven.doxia.siterenderer.sink.SiteRendererSink;
33+
import org.apache.maven.doxia.tools.SiteTool;
3334
import org.apache.maven.plugin.MojoExecutionException;
3435
import org.apache.maven.plugin.MojoFailureException;
3536
import org.apache.maven.plugins.annotations.Execute;
@@ -117,11 +118,6 @@ public String getDescription(Locale locale) {
117118
}
118119

119120
/** {@inheritDoc} */
120-
@Override
121-
public void generate(org.codehaus.doxia.sink.Sink sink, Locale locale) throws MavenReportException {
122-
generate(sink, null, locale);
123-
}
124-
125121
public void generate(Sink sink, Locale locale) throws MavenReportException {
126122
generate(sink, null, locale);
127123
}
@@ -236,9 +232,6 @@ public boolean canGenerateReport() {
236232

237233
canGenerate = canGenerateReport(files);
238234
}
239-
if (getLog().isDebugEnabled()) {
240-
getLog().debug(" canGenerateReport = " + canGenerate + " for project " + this.project);
241-
}
242235
return canGenerate;
243236
}
244237

@@ -293,16 +286,16 @@ public void doExecute() throws MojoExecutionException, MojoFailureException {
293286

294287
String filename = getOutputName() + ".html";
295288

296-
Locale locale = Locale.getDefault();
289+
Locale locale = SiteTool.DEFAULT_LOCALE;
297290

298291
try {
299-
// TODO Replace null with real value
300-
RenderingContext docRenderingContext = new RenderingContext(outputDirectory, filename, null);
292+
String reportMojoInfo = mojoExecution.getPlugin().getId() + ":" + mojoExecution.getGoal();
293+
DocumentRenderingContext docRenderingContext =
294+
new DocumentRenderingContext(outputDirectory, filename, reportMojoInfo);
301295

302296
SiteRendererSink sink = new SiteRendererSink(docRenderingContext);
303297

304298
generate(sink, null, locale);
305-
306299
} catch (MavenReportException | RuntimeException e) {
307300
failOnError("An error has occurred in " + getName(Locale.ENGLISH) + " report generation", e);
308301
}

‎src/site/apt/examples/alternate-doclet.apt.vm

-3
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,6 @@ Using Alternate Doclet In Addition To The Javadoc Doclet
9797
<additionalOption>\${project.build.directory}/site/doccheck</additionalOption>
9898
</additionalOptions>
9999

100-
<!-- Other dir than apidocs -->
101-
<destDir>doccheck</destDir>
102-
103100
<!-- For the project-reports page-->
104101
<name>DocCheck</name>
105102
<description>DocCheck documentation.</description>

‎src/site/apt/examples/output-configuration.apt.vm

+5-6
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,7 @@ Using Alternative Output Directory
4040
<artifactId>maven-javadoc-plugin</artifactId>
4141
<version>${project.version}</version>
4242
<configuration>
43-
<reportOutputDirectory>\${project.reporting.outputDirectory}/myoutput</reportOutputDirectory>
44-
<destDir>myapidocs</destDir>
43+
<reportOutputDirectory>\${project.build.directory}/myoutput</reportOutputDirectory>
4544
...
4645
</configuration>
4746
</plugin>
@@ -53,8 +52,8 @@ Using Alternative Output Directory
5352
+-----+
5453

5554
Running <<<mvn javadoc:javadoc>>> will output the Javadoc in the
56-
<$\{project.reporting.outputDirectory\}/myoutput/myapidocs> instead of the default directory, i.e.
57-
<$\{project.reporting.outputDirectory\}/apidocs>.
55+
<<<$\{project.build.directory\}/myoutput/apidocs>>> instead of the default directory, i.e.
56+
<<<$\{project.build.directory\}/reports/apidocs>>>.
5857

59-
<<Note>>: Running <mvn site> will automatically use the <$\{project.reporting.outputDirectory\}> directory and
60-
in this case, <reportOutputDirectory> has no effect. Only, <testDestDir> and <destDir> could be used.
58+
<<Note>>: Running <<<mvn site>>> will automatically use the <<<$\{project.reporting.outputDirectory\}>>>
59+
directory and in this case, <<<\<reportOutputDirectory /\>>>> has no effect.

‎src/test/java/org/apache/maven/plugins/javadoc/JavadocReportTest.java

-9
Original file line numberDiff line numberDiff line change
@@ -1056,15 +1056,6 @@ public void testValidateOptions() throws Exception {
10561056
assertTrue("No wrong charset catch", e.getMessage().contains("Unsupported option <charset/>"));
10571057
}
10581058

1059-
// locale
1060-
testPom = unit.resolve("validate-options-test/wrong-locale-test-plugin-config.xml");
1061-
mojo = lookupMojo(testPom);
1062-
try {
1063-
mojo.execute();
1064-
fail("No wrong locale catch");
1065-
} catch (MojoExecutionException e) {
1066-
assertTrue("No wrong locale catch", e.getMessage().contains("Unsupported option <locale/>"));
1067-
}
10681059
testPom = unit.resolve("validate-options-test/wrong-locale-with-variant-test-plugin-config.xml");
10691060
mojo = lookupMojo(testPom);
10701061
mojo.execute();

‎src/test/java/org/apache/maven/plugins/javadoc/stubs/JavadocJarInvalidDestdirMavenProjectStub.java

-81
This file was deleted.

0 commit comments

Comments
 (0)