Skip to content

Commit ad2924a

Browse files
committed
Prepare for Doxia 2.0.0
1 parent 6fa9c86 commit ad2924a

File tree

11 files changed

+65
-159
lines changed

11 files changed

+65
-159
lines changed

pom.xml

Lines changed: 13 additions & 15 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.6.1-SNAPSHOT</version>
31+
<version>3.7.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.51.v20230217</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-09-12T05:45:11Z</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,21 +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>
246-
<exclusions>
247-
<exclusion>
248-
<!-- MJAVADOC-726 -->
249-
<groupId>org.apache.velocity</groupId>
250-
<artifactId>velocity-tools</artifactId>
251-
</exclusion>
252-
</exclusions>
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>
253251
</dependency>
254252

255253
<!-- wagon -->

src/it/mrm/3rdparty/_doclet-1.0.jar

1.51 KB
Binary file not shown.
858 Bytes
Binary file not shown.

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

Lines changed: 19 additions & 64 deletions
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
*
@@ -328,8 +335,8 @@ public abstract class AbstractJavadocMojo extends AbstractMojo {
328335
@Parameter(defaultValue = "${project}", readonly = true, required = true)
329336
protected MavenProject project;
330337

331-
@Parameter(defaultValue = "${mojoExecution}", readonly = true)
332-
private MojoExecution mojo;
338+
@Parameter(defaultValue = "${mojoExecution}", readonly = true, required = true)
339+
protected MojoExecution mojoExecution;
333340

334341
/**
335342
* Specify if the Javadoc plugin should operate in offline mode. If maven is run in offline
@@ -421,8 +428,8 @@ public abstract class AbstractJavadocMojo extends AbstractMojo {
421428
/**
422429
* The projects in the reactor for aggregation report.
423430
*/
424-
@Parameter(property = "reactorProjects", readonly = true)
425-
private List<MavenProject> reactorProjects;
431+
@Parameter(defaultValue = "${reactorProjects}", required = true, readonly = true)
432+
protected List<MavenProject> reactorProjects;
426433

427434
/**
428435
* Set this to <code>true</code> to debug the Javadoc plugin. With this, <code>javadoc.bat(or.sh)</code>,
@@ -1827,7 +1834,7 @@ public void execute() throws MojoExecutionException, MojoFailureException {
18271834
abstract void doExecute() throws MojoExecutionException, MojoFailureException;
18281835

18291836
protected final void verifyRemovedParameter(String paramName) {
1830-
Xpp3Dom configDom = mojo.getConfiguration();
1837+
Xpp3Dom configDom = mojoExecution.getConfiguration();
18311838
if (configDom != null) {
18321839
if (configDom.getChild(paramName) != null) {
18331840
throw new IllegalArgumentException(
@@ -1837,7 +1844,7 @@ protected final void verifyRemovedParameter(String paramName) {
18371844
}
18381845

18391846
private void verifyReplacedParameter(String oldParamName, String newParamNew) {
1840-
Xpp3Dom configDom = mojo.getConfiguration();
1847+
Xpp3Dom configDom = mojoExecution.getConfiguration();
18411848
if (configDom != null) {
18421849
if (configDom.getChild(oldParamName) != null) {
18431850
throw new IllegalArgumentException("parameter '" + oldParamName + "' has been replaced with "
@@ -4249,64 +4256,8 @@ private void validateJavadocOptions() throws MavenReportException {
42494256
}
42504257

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

@@ -6029,6 +5980,10 @@ protected void logError(String message, Throwable t) {
60295980
}
60305981
}
60315982

5983+
protected List<MavenProject> getReactorProjects() {
5984+
return reactorProjects;
5985+
}
5986+
60325987
/**
60335988
* @param prefix The prefix of the exception.
60345989
* @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
@@ -46,9 +46,12 @@ public class JavadocJarTest extends AbstractMojoTestCase {
4646
private JavadocJar lookupMojo(File testPom) throws Exception {
4747
JavadocJar mojo = (JavadocJar) lookupMojo("jar", testPom);
4848

49-
MojoExecution mojoExec = new MojoExecution(new Plugin(), "javadoc", null);
49+
Plugin p = new Plugin();
50+
p.setGroupId("org.apache.maven.plugins");
51+
p.setArtifactId("maven-javadoc-plugin");
52+
MojoExecution mojoExecution = new MojoExecution(p, "jar", null);
5053

51-
setVariableValueToObject(mojo, "mojo", mojoExec);
54+
setVariableValueToObject(mojo, "mojoExecution", mojoExecution);
5255

5356
MavenProject currentProject = new MavenProjectStub();
5457
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
@@ -27,6 +27,7 @@
2727
import java.nio.file.Files;
2828
import java.nio.file.Path;
2929
import java.nio.file.Paths;
30+
import java.util.Collections;
3031
import java.util.HashMap;
3132
import java.util.List;
3233
import java.util.Map;
@@ -113,17 +114,23 @@ protected void tearDown() throws Exception {
113114
private JavadocReport lookupMojo(Path testPom) throws Exception {
114115
JavadocReport mojo = (JavadocReport) lookupMojo("javadoc", testPom.toFile());
115116

116-
MojoExecution mojoExec = new MojoExecution(new Plugin(), "javadoc", null);
117+
Plugin p = new Plugin();
118+
p.setGroupId("org.apache.maven.plugins");
119+
p.setArtifactId("maven-javadoc-plugin");
120+
MojoExecution mojoExecution = new MojoExecution(p, "javadoc", null);
117121

118-
setVariableValueToObject(mojo, "mojo", mojoExec);
122+
setVariableValueToObject(mojo, "mojoExecution", mojoExecution);
119123

120124
MavenProject currentProject = new MavenProjectStub();
121125
currentProject.setGroupId("GROUPID");
122126
currentProject.setArtifactId("ARTIFACTID");
123127

128+
List<MavenProject> reactorProjects =
129+
mojo.getReactorProjects() != null ? mojo.getReactorProjects() : Collections.emptyList();
124130
MavenSession session = newMavenSession(currentProject);
125131
setVariableValueToObject(mojo, "session", session);
126132
setVariableValueToObject(mojo, "repoSession", session.getRepositorySession());
133+
setVariableValueToObject(mojo, "reactorProjects", reactorProjects);
127134
return mojo;
128135
}
129136

@@ -1045,15 +1052,6 @@ public void testValidateOptions() throws Exception {
10451052
assertTrue("No wrong charset catch", e.getMessage().contains("Unsupported option <charset/>"));
10461053
}
10471054

1048-
// locale
1049-
testPom = unit.resolve("validate-options-test/wrong-locale-test-plugin-config.xml");
1050-
mojo = lookupMojo(testPom);
1051-
try {
1052-
mojo.execute();
1053-
fail("No wrong locale catch");
1054-
} catch (MojoExecutionException e) {
1055-
assertTrue("No wrong locale catch", e.getMessage().contains("Unsupported option <locale/>"));
1056-
}
10571055
testPom = unit.resolve("validate-options-test/wrong-locale-with-variant-test-plugin-config.xml");
10581056
mojo = lookupMojo(testPom);
10591057
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)