Skip to content

Commit c85af67

Browse files
committed
[MJAVADOC-784] Upgrade to Doxia 2.0.0 Milestone Stack
This closes #204
1 parent aa0a666 commit c85af67

File tree

6 files changed

+29
-147
lines changed

6 files changed

+29
-147
lines changed

pom.xml

+12-14
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 -->
@@ -127,8 +126,8 @@ under the License.
127126
<enforcerPluginVersion>3.4.1</enforcerPluginVersion>
128127
<pluginPluginVersion>3.10.1</pluginPluginVersion>
129128
<jarPluginVersion>3.3.0</jarPluginVersion>
130-
<sitePluginVersion>3.12.1</sitePluginVersion>
131-
<projectInfoReportsPluginVersion>3.5.0</projectInfoReportsPluginVersion>
129+
<sitePluginVersion>4.0.0-M15</sitePluginVersion>
130+
<projectInfoReportsPluginVersion>3.6.1</projectInfoReportsPluginVersion>
132131
<project.build.outputTimestamp>2024-05-29T16:13:14Z</project.build.outputTimestamp>
133132
<slf4jVersion>1.7.36</slf4jVersion>
134133
</properties>
@@ -203,7 +202,7 @@ under the License.
203202
<dependency>
204203
<groupId>org.apache.maven.reporting</groupId>
205204
<artifactId>maven-reporting-api</artifactId>
206-
<version>3.1.1</version>
205+
<version>4.0.0-M12</version>
207206
</dependency>
208207
<dependency>
209208
<groupId>org.apache.maven</groupId>
@@ -230,21 +229,20 @@ under the License.
230229
<dependency>
231230
<groupId>org.apache.maven.doxia</groupId>
232231
<artifactId>doxia-sink-api</artifactId>
233-
<version>${doxiaVersion}</version>
232+
<version>2.0.0-M12</version>
234233
</dependency>
235234

236235
<!-- Doxia-sitetools -->
237236
<dependency>
238237
<groupId>org.apache.maven.doxia</groupId>
239238
<artifactId>doxia-site-renderer</artifactId>
240-
<version>${doxia-sitetoolsVersion}</version>
241-
<exclusions>
242-
<exclusion>
243-
<!-- MJAVADOC-726 -->
244-
<groupId>org.apache.velocity</groupId>
245-
<artifactId>velocity-tools</artifactId>
246-
</exclusion>
247-
</exclusions>
239+
<version>${doxiaSitetoolsVersion}</version>
240+
</dependency>
241+
<!-- Doxia-sitetools -->
242+
<dependency>
243+
<groupId>org.apache.maven.doxia</groupId>
244+
<artifactId>doxia-integration-tools</artifactId>
245+
<version>${doxiaSitetoolsVersion}</version>
248246
</dependency>
249247

250248
<!-- wagon -->

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

+9-58
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
*
@@ -4250,64 +4257,8 @@ private void validateJavadocOptions() throws MavenReportException {
42504257
}
42514258

42524259
// locale
4253-
if (this.locale != null && !this.locale.isEmpty()) {
4254-
StringTokenizer tokenizer = new StringTokenizer(this.locale, "_");
4255-
final int maxTokens = 3;
4256-
if (tokenizer.countTokens() > maxTokens) {
4257-
throw new MavenReportException(
4258-
"Unsupported option <locale/> '" + this.locale + "', should be language_country_variant.");
4259-
}
4260-
4261-
Locale localeObject = null;
4262-
if (tokenizer.hasMoreTokens()) {
4263-
String language = tokenizer.nextToken().toLowerCase(Locale.ENGLISH);
4264-
if (!Arrays.asList(Locale.getISOLanguages()).contains(language)) {
4265-
throw new MavenReportException(
4266-
"Unsupported language '" + language + "' in option <locale/> '" + this.locale + "'");
4267-
}
4268-
localeObject = new Locale(language);
4269-
4270-
if (tokenizer.hasMoreTokens()) {
4271-
String country = tokenizer.nextToken().toUpperCase(Locale.ENGLISH);
4272-
if (!Arrays.asList(Locale.getISOCountries()).contains(country)) {
4273-
throw new MavenReportException(
4274-
"Unsupported country '" + country + "' in option <locale/> '" + this.locale + "'");
4275-
}
4276-
localeObject = new Locale(language, country);
4277-
4278-
if (tokenizer.hasMoreTokens()) {
4279-
String variant = tokenizer.nextToken();
4280-
localeObject = new Locale(language, country, variant);
4281-
}
4282-
}
4283-
}
4284-
4285-
if (localeObject == null) {
4286-
throw new MavenReportException(
4287-
"Unsupported option <locale/> '" + this.locale + "', should be language_country_variant.");
4288-
}
4289-
4290-
this.locale = localeObject.toString();
4291-
final List<Locale> availableLocalesList = Arrays.asList(Locale.getAvailableLocales());
4292-
if (StringUtils.isNotEmpty(localeObject.getVariant()) && !availableLocalesList.contains(localeObject)) {
4293-
StringBuilder sb = new StringBuilder();
4294-
sb.append("Unsupported option <locale/> with variant '").append(this.locale);
4295-
sb.append("'");
4296-
4297-
localeObject = new Locale(localeObject.getLanguage(), localeObject.getCountry());
4298-
this.locale = localeObject.toString();
4299-
4300-
sb.append(", trying to use <locale/> without variant, i.e. '")
4301-
.append(this.locale)
4302-
.append("'");
4303-
if (getLog().isWarnEnabled()) {
4304-
getLog().warn(sb.toString());
4305-
}
4306-
}
4307-
4308-
if (!availableLocalesList.contains(localeObject)) {
4309-
throw new MavenReportException("Unsupported option <locale/> '" + this.locale + "'");
4310-
}
4260+
if (StringUtils.isNotEmpty(this.locale)) {
4261+
this.locale = siteTool.getSiteLocales(locale).get(0).toString();
43114262
}
43124263
}
43134264

src/main/java/org/apache/maven/plugins/javadoc/JavadocJar.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/test/java/org/apache/maven/plugins/javadoc/JavadocReportTest.java

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

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

src/test/resources/unit/validate-options-test/wrong-locale-test-plugin-config.xml

-51
This file was deleted.

0 commit comments

Comments
 (0)