Skip to content

Commit 0706c26

Browse files
committed
Prepare for Doxia 2.0.0
1 parent 54e69eb commit 0706c26

File tree

9 files changed

+66
-154
lines changed

9 files changed

+66
-154
lines changed

pom.xml

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ under the License.
2828
</parent>
2929

3030
<artifactId>maven-javadoc-plugin</artifactId>
31-
<version>3.5.1-SNAPSHOT</version>
31+
<version>3.6.0-SNAPSHOT</version>
3232
<packaging>maven-plugin</packaging>
3333

3434
<name>Apache Maven Javadoc Plugin</name>
@@ -112,16 +112,15 @@ under the License.
112112
<properties>
113113
<javaVersion>8</javaVersion>
114114
<mavenVersion>3.2.5</mavenVersion>
115-
<doxiaVersion>1.11.1</doxiaVersion>
116-
<doxia-sitetoolsVersion>1.11.1</doxia-sitetoolsVersion>
115+
<doxiaSitetoolsVersion>2.0.0-M11</doxiaSitetoolsVersion>
117116
<wagonVersion>2.4</wagonVersion>
118117
<aetherVersion>1.0.0.v20140518</aetherVersion>
119118
<!-- https://cwiki.apache.org/confluence/x/VIHOCg#MavenEcosystemCleanup-ResolverandMaven -->
120119
<plexus-java.version>1.1.2</plexus-java.version>
121120
<jetty.version>9.4.50.v20221201</jetty.version>
122121
<!-- for ITs -->
123-
<sitePluginVersion>3.12.1</sitePluginVersion>
124-
<projectInfoReportsPluginVersion>3.4.2</projectInfoReportsPluginVersion>
122+
<sitePluginVersion>4.0.0-M9</sitePluginVersion>
123+
<projectInfoReportsPluginVersion>4.0.0-M1-SNAPSHOT</projectInfoReportsPluginVersion>
125124
<project.build.outputTimestamp>2023-02-12T17:50:15Z</project.build.outputTimestamp>
126125
<slf4jVersion>1.7.36</slf4jVersion>
127126
</properties>
@@ -209,7 +208,7 @@ under the License.
209208
<dependency>
210209
<groupId>org.apache.maven.reporting</groupId>
211210
<artifactId>maven-reporting-api</artifactId>
212-
<version>3.1.1</version>
211+
<version>4.0.0-M7</version>
213212
</dependency>
214213
<dependency>
215214
<groupId>org.apache.maven</groupId>
@@ -235,14 +234,20 @@ under the License.
235234
<dependency>
236235
<groupId>org.apache.maven.doxia</groupId>
237236
<artifactId>doxia-sink-api</artifactId>
238-
<version>${doxiaVersion}</version>
237+
<version>2.0.0-M7</version>
239238
</dependency>
240239

241240
<!-- Doxia-sitetools -->
242241
<dependency>
243242
<groupId>org.apache.maven.doxia</groupId>
244243
<artifactId>doxia-site-renderer</artifactId>
245-
<version>${doxia-sitetoolsVersion}</version>
244+
<version>${doxiaSitetoolsVersion}</version>
245+
</dependency>
246+
<!-- Doxia-sitetools -->
247+
<dependency>
248+
<groupId>org.apache.maven.doxia</groupId>
249+
<artifactId>doxia-integration-tools</artifactId>
250+
<version>${doxiaSitetoolsVersion}</version>
246251
</dependency>
247252

248253
<!-- wagon -->

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

Lines changed: 20 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666
import org.apache.maven.artifact.repository.ArtifactRepository;
6767
import org.apache.maven.artifact.versioning.ArtifactVersion;
6868
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
69+
import org.apache.maven.doxia.tools.SiteTool;
6970
import org.apache.maven.execution.MavenSession;
7071
import org.apache.maven.model.Dependency;
7172
import org.apache.maven.model.Plugin;
@@ -271,6 +272,12 @@ public abstract class AbstractJavadocMojo extends AbstractMojo {
271272
// Mojo components
272273
// ----------------------------------------------------------------------
273274

275+
/**
276+
* SiteTool.
277+
*/
278+
@Component
279+
protected SiteTool siteTool;
280+
274281
/**
275282
* Archiver manager
276283
*
@@ -330,8 +337,8 @@ public abstract class AbstractJavadocMojo extends AbstractMojo {
330337
@Parameter(defaultValue = "${project}", readonly = true, required = true)
331338
protected MavenProject project;
332339

333-
@Parameter(defaultValue = "${mojoExecution}", readonly = true)
334-
private MojoExecution mojo;
340+
@Parameter(defaultValue = "${mojoExecution}", readonly = true, required = true)
341+
protected MojoExecution mojoExecution;
335342

336343
/**
337344
* Specify if the Javadoc should operate in offline mode.
@@ -423,10 +430,10 @@ public abstract class AbstractJavadocMojo extends AbstractMojo {
423430
private ArtifactRepository localRepository;
424431

425432
/**
426-
* The projects in the reactor for aggregation report.
433+
* The reactor projects.
427434
*/
428-
@Parameter(property = "reactorProjects", readonly = true)
429-
private List<MavenProject> reactorProjects;
435+
@Parameter(defaultValue = "${reactorProjects}", required = true, readonly = true)
436+
protected List<MavenProject> reactorProjects;
430437

431438
/**
432439
* Set this to <code>true</code> to debug the Javadoc plugin. With this, <code>javadoc.bat(or.sh)</code>,
@@ -1819,7 +1826,7 @@ public void execute() throws MojoExecutionException, MojoFailureException {
18191826
abstract void doExecute() throws MojoExecutionException, MojoFailureException;
18201827

18211828
protected final void verifyRemovedParameter(String paramName) {
1822-
Xpp3Dom configDom = mojo.getConfiguration();
1829+
Xpp3Dom configDom = mojoExecution.getConfiguration();
18231830
if (configDom != null) {
18241831
if (configDom.getChild(paramName) != null) {
18251832
throw new IllegalArgumentException(
@@ -1829,7 +1836,7 @@ protected final void verifyRemovedParameter(String paramName) {
18291836
}
18301837

18311838
private void verifyReplacedParameter(String oldParamName, String newParamNew) {
1832-
Xpp3Dom configDom = mojo.getConfiguration();
1839+
Xpp3Dom configDom = mojoExecution.getConfiguration();
18331840
if (configDom != null) {
18341841
if (configDom.getChild(oldParamName) != null) {
18351842
throw new IllegalArgumentException("parameter '" + oldParamName + "' has been replaced with "
@@ -4236,64 +4243,8 @@ private void validateJavadocOptions() throws MavenReportException {
42364243
}
42374244

42384245
// locale
4239-
if (this.locale != null && !this.locale.isEmpty()) {
4240-
StringTokenizer tokenizer = new StringTokenizer(this.locale, "_");
4241-
final int maxTokens = 3;
4242-
if (tokenizer.countTokens() > maxTokens) {
4243-
throw new MavenReportException(
4244-
"Unsupported option <locale/> '" + this.locale + "', should be language_country_variant.");
4245-
}
4246-
4247-
Locale localeObject = null;
4248-
if (tokenizer.hasMoreTokens()) {
4249-
String language = tokenizer.nextToken().toLowerCase(Locale.ENGLISH);
4250-
if (!Arrays.asList(Locale.getISOLanguages()).contains(language)) {
4251-
throw new MavenReportException(
4252-
"Unsupported language '" + language + "' in option <locale/> '" + this.locale + "'");
4253-
}
4254-
localeObject = new Locale(language);
4255-
4256-
if (tokenizer.hasMoreTokens()) {
4257-
String country = tokenizer.nextToken().toUpperCase(Locale.ENGLISH);
4258-
if (!Arrays.asList(Locale.getISOCountries()).contains(country)) {
4259-
throw new MavenReportException(
4260-
"Unsupported country '" + country + "' in option <locale/> '" + this.locale + "'");
4261-
}
4262-
localeObject = new Locale(language, country);
4263-
4264-
if (tokenizer.hasMoreTokens()) {
4265-
String variant = tokenizer.nextToken();
4266-
localeObject = new Locale(language, country, variant);
4267-
}
4268-
}
4269-
}
4270-
4271-
if (localeObject == null) {
4272-
throw new MavenReportException(
4273-
"Unsupported option <locale/> '" + this.locale + "', should be language_country_variant.");
4274-
}
4275-
4276-
this.locale = localeObject.toString();
4277-
final List<Locale> availableLocalesList = Arrays.asList(Locale.getAvailableLocales());
4278-
if (StringUtils.isNotEmpty(localeObject.getVariant()) && !availableLocalesList.contains(localeObject)) {
4279-
StringBuilder sb = new StringBuilder();
4280-
sb.append("Unsupported option <locale/> with variant '").append(this.locale);
4281-
sb.append("'");
4282-
4283-
localeObject = new Locale(localeObject.getLanguage(), localeObject.getCountry());
4284-
this.locale = localeObject.toString();
4285-
4286-
sb.append(", trying to use <locale/> without variant, i.e. '")
4287-
.append(this.locale)
4288-
.append("'");
4289-
if (getLog().isWarnEnabled()) {
4290-
getLog().warn(sb.toString());
4291-
}
4292-
}
4293-
4294-
if (!availableLocalesList.contains(localeObject)) {
4295-
throw new MavenReportException("Unsupported option <locale/> '" + this.locale + "'");
4296-
}
4246+
if (StringUtils.isNotEmpty(this.locale)) {
4247+
this.locale = siteTool.getSiteLocales(locale).get(0).toString();
42974248
}
42984249
}
42994250

@@ -6007,6 +5958,10 @@ protected void logError(String message, Throwable t) {
60075958
}
60085959
}
60095960

5961+
protected List<MavenProject> getReactorProjects() {
5962+
return reactorProjects;
5963+
}
5964+
60105965
/**
60115966
* @param prefix The prefix of the exception.
60125967
* @param e The exception.

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

Lines changed: 2 additions & 2 deletions
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

Lines changed: 6 additions & 10 deletions
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
}
@@ -298,16 +294,16 @@ public void doExecute() throws MojoExecutionException, MojoFailureException {
298294

299295
String filename = getOutputName() + ".html";
300296

301-
Locale locale = Locale.getDefault();
297+
Locale locale = SiteTool.DEFAULT_LOCALE;
302298

303299
try {
304-
// TODO Replace null with real value
305-
RenderingContext docRenderingContext = new RenderingContext(outputDirectory, filename, null);
300+
String reportMojoInfo = mojoExecution.getPlugin().getId() + ":" + mojoExecution.getGoal();
301+
DocumentRenderingContext docRenderingContext =
302+
new DocumentRenderingContext(outputDirectory, filename, reportMojoInfo);
306303

307304
SiteRendererSink sink = new SiteRendererSink(docRenderingContext);
308305

309306
generate(sink, null, locale);
310-
311307
} catch (MavenReportException | RuntimeException e) {
312308
failOnError("An error has occurred in " + getName(Locale.ENGLISH) + " report generation", e);
313309
}

src/test/java/org/apache/maven/plugins/javadoc/AggregatorJavadocReportTest.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,12 @@ protected void setUp() throws Exception {
6262
private JavadocReport lookupMojo(File testPom) throws Exception {
6363
JavadocReport mojo = (JavadocReport) lookupMojo("aggregate", testPom);
6464

65-
MojoExecution mojoExec = new MojoExecution(new Plugin(), "aggregate", null);
66-
setVariableValueToObject(mojo, "mojo", mojoExec);
65+
Plugin p = new Plugin();
66+
p.setGroupId("org.apache.maven.plugins");
67+
p.setArtifactId("maven-javadoc-plugin");
68+
MojoExecution mojoExecution = new MojoExecution(p, "aggregate", null);
69+
70+
setVariableValueToObject(mojo, "mojoExecution", mojoExecution);
6771

6872
MavenProject currentProject = new MavenProjectStub();
6973
currentProject.setGroupId("GROUPID");

src/test/java/org/apache/maven/plugins/javadoc/JavadocJarTest.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,12 @@ public class JavadocJarTest extends AbstractMojoTestCase {
4242
private JavadocJar lookupMojo(File testPom) throws Exception {
4343
JavadocJar mojo = (JavadocJar) lookupMojo("jar", testPom);
4444

45-
MojoExecution mojoExec = new MojoExecution(new Plugin(), "javadoc", null);
45+
Plugin p = new Plugin();
46+
p.setGroupId("org.apache.maven.plugins");
47+
p.setArtifactId("maven-javadoc-plugin");
48+
MojoExecution mojoExecution = new MojoExecution(p, "jar", null);
4649

47-
setVariableValueToObject(mojo, "mojo", mojoExec);
50+
setVariableValueToObject(mojo, "mojoExecution", mojoExecution);
4851

4952
MavenProject currentProject = new MavenProjectStub();
5053
currentProject.setGroupId("GROUPID");

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

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import java.nio.charset.StandardCharsets;
2727
import java.nio.file.Files;
2828
import java.nio.file.Path;
29+
import java.util.Collections;
2930
import java.util.HashMap;
3031
import java.util.List;
3132
import java.util.Map;
@@ -101,17 +102,23 @@ protected void setUp() throws Exception {
101102
private JavadocReport lookupMojo(Path testPom) throws Exception {
102103
JavadocReport mojo = (JavadocReport) lookupMojo("javadoc", testPom.toFile());
103104

104-
MojoExecution mojoExec = new MojoExecution(new Plugin(), "javadoc", null);
105+
Plugin p = new Plugin();
106+
p.setGroupId("org.apache.maven.plugins");
107+
p.setArtifactId("maven-javadoc-plugin");
108+
MojoExecution mojoExecution = new MojoExecution(p, "javadoc", null);
105109

106-
setVariableValueToObject(mojo, "mojo", mojoExec);
110+
setVariableValueToObject(mojo, "mojoExecution", mojoExecution);
107111

108112
MavenProject currentProject = new MavenProjectStub();
109113
currentProject.setGroupId("GROUPID");
110114
currentProject.setArtifactId("ARTIFACTID");
111115

116+
List<MavenProject> reactorProjects =
117+
mojo.getReactorProjects() != null ? mojo.getReactorProjects() : Collections.emptyList();
112118
MavenSession session = newMavenSession(currentProject);
113119
setVariableValueToObject(mojo, "session", session);
114120
setVariableValueToObject(mojo, "repoSession", session.getRepositorySession());
121+
setVariableValueToObject(mojo, "reactorProjects", reactorProjects);
115122
return mojo;
116123
}
117124

@@ -1064,15 +1071,6 @@ public void testValidateOptions() throws Exception {
10641071
assertTrue("No wrong charset catch", e.getMessage().contains("Unsupported option <charset/>"));
10651072
}
10661073

1067-
// locale
1068-
testPom = unit.resolve("validate-options-test/wrong-locale-test-plugin-config.xml");
1069-
mojo = lookupMojo(testPom);
1070-
try {
1071-
mojo.execute();
1072-
fail("No wrong locale catch");
1073-
} catch (MojoExecutionException e) {
1074-
assertTrue("No wrong locale catch", e.getMessage().contains("Unsupported option <locale/>"));
1075-
}
10761074
testPom = unit.resolve("validate-options-test/wrong-locale-with-variant-test-plugin-config.xml");
10771075
mojo = lookupMojo(testPom);
10781076
mojo.execute();

src/test/java/org/apache/maven/plugins/javadoc/TestJavadocReportTest.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,12 @@ public void testTestJavadoc() throws Exception {
4343
new File(getBasedir(), "src/test/resources/unit/test-javadoc-test/test-javadoc-test-plugin-config.xml");
4444
TestJavadocReport mojo = (TestJavadocReport) lookupMojo("test-javadoc", testPom);
4545

46-
MojoExecution mojoExec = new MojoExecution(new Plugin(), "test-javadoc", null);
46+
Plugin p = new Plugin();
47+
p.setGroupId("org.apache.maven.plugins");
48+
p.setArtifactId("maven-javadoc-plugin");
49+
MojoExecution mojoExecution = new MojoExecution(p, "test-javadoc", null);
4750

48-
setVariableValueToObject(mojo, "mojo", mojoExec);
51+
setVariableValueToObject(mojo, "mojoExecution", mojoExecution);
4952

5053
MavenProject currentProject = new MavenProjectStub();
5154
currentProject.setGroupId("GROUPID");

0 commit comments

Comments
 (0)