From 3023f8961f89dd950d8ebbc7e13068a61a652039 Mon Sep 17 00:00:00 2001 From: Michael Osipov Date: Sun, 30 Apr 2023 11:25:56 +0200 Subject: [PATCH] Prepare for Doxia 2.0.0 --- pom.xml | 28 +++--- src/it/mrm/3rdparty/_doclet-1.0.jar | Bin 0 -> 1542 bytes src/it/mrm/repository/_mjavadoc450-static.jar | Bin 0 -> 858 bytes .../plugins/javadoc/AbstractJavadocMojo.java | 83 ++++-------------- .../maven/plugins/javadoc/JavadocJar.java | 4 +- .../maven/plugins/javadoc/JavadocReport.java | 16 ++-- .../javadoc/AggregatorJavadocReportTest.java | 8 +- .../maven/plugins/javadoc/JavadocJarTest.java | 7 +- .../plugins/javadoc/JavadocReportTest.java | 20 ++--- .../javadoc/TestJavadocReportTest.java | 7 +- .../wrong-locale-test-plugin-config.xml | 51 ----------- 11 files changed, 65 insertions(+), 159 deletions(-) create mode 100644 src/it/mrm/3rdparty/_doclet-1.0.jar create mode 100644 src/it/mrm/repository/_mjavadoc450-static.jar delete mode 100644 src/test/resources/unit/validate-options-test/wrong-locale-test-plugin-config.xml diff --git a/pom.xml b/pom.xml index 414bc337..fc417f1a 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ under the License. maven-javadoc-plugin - 3.6.1-SNAPSHOT + 3.7.0-SNAPSHOT maven-plugin Apache Maven Javadoc Plugin @@ -112,16 +112,15 @@ under the License. 8 3.2.5 - 1.11.1 - 1.11.1 + 2.0.0-M13 2.4 1.0.0.v20140518 1.1.2 9.4.51.v20230217 - 3.12.1 - 3.4.2 + 4.0.0-M11 + 4.0.0-M1-SNAPSHOT 2023-09-12T05:45:11Z 1.7.36 @@ -209,7 +208,7 @@ under the License. org.apache.maven.reporting maven-reporting-api - 3.1.1 + 4.0.0-M8 org.apache.maven @@ -235,21 +234,20 @@ under the License. org.apache.maven.doxia doxia-sink-api - ${doxiaVersion} + 2.0.0-M8 org.apache.maven.doxia doxia-site-renderer - ${doxia-sitetoolsVersion} - - - - org.apache.velocity - velocity-tools - - + ${doxiaSitetoolsVersion} + + + + org.apache.maven.doxia + doxia-integration-tools + ${doxiaSitetoolsVersion} diff --git a/src/it/mrm/3rdparty/_doclet-1.0.jar b/src/it/mrm/3rdparty/_doclet-1.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..95b7d5f41597f2a0fe3f88e9f564c52d7e1ad623 GIT binary patch literal 1542 zcmWIWW@h1HVBlb2cvbQ?i~$L70@=QE;?7qUY=O+4sz8A8%c~i@e^tTIbH3-yCFc#rVO~B0Vo(9Z%njrK`3Cah&j6 ztDzfKpyPG!gpRjvkikV`X3d9BnHWH}K^$e6q3j2=01jAyto)*MuzRqp;D)M5EJ#ew zNX4U25LIDrVp(b)9_5nQlo#Zbrf23A4NURYq`N=t{C3?v@iN(cJC!X{>Y#`9~-!t56VL;gtRzKa@M_D;V z3ll9}L$p?~TkKqURcdMBlO45MdUGaNd|@6SDc=g zy|%==#Y=kOM-YvaDM8wBXG@S`5LnWv4kY2)kTNN<#n`eMSUcF_sX!(q;~|`i zt^<_yAOPgl?La0-2RtL<)(Faq5CGEn0LVnr2+NqbwS%%I1c0>j1JgZ*c0@+SZ44-@ zB8+jvXAC0a;x-PHbrHt35@Q@BBZG{@ot0sRE@?bLtdYnWJHVTj4P*o-5M~2QhgN0~ F4*-k7qfh_< literal 0 HcmV?d00001 diff --git a/src/it/mrm/repository/_mjavadoc450-static.jar b/src/it/mrm/repository/_mjavadoc450-static.jar new file mode 100644 index 0000000000000000000000000000000000000000..0daddbcf2e1a3d698878a226a14783a6f4828f49 GIT binary patch literal 858 zcmWIWW@h1HVBlb2cvbQ?i~$L70@=QE;?7qUY=O+4sz8A8%c~i@e^tTIbH3-yCFc#rVO~B0Vo(9Z%njrK`3Cah&j6 ztDzfKpyPG!gpRjvkikV`X3d9BnHUhZl}?%vqG*%CaE+0HL7tg`0q9hQ;D#zbs_KFqJ6Ot}nm6Me?pmpPlS?cF+vcfOiUU62= z`1vpGk#73=RW5HgFy$ZE&T&$~`xi&>Z_lWf#ge6}dyS;zgbHg|sur;>o@kuB(ELiU z)Z4YYdggK6<>gOF7OcK<&y|6xknQ{@rMvPA!eo8JPu*SCQ4_RpDc{osqi^C@SX5Sf zu}0l&ycF^xU2slh&XToL@;b_PL|xq?cV@}OU17XOLRo|#?cgdjzagz!xo1}4#)9W% zoQdrAoN5t&MQU5vvmWGZ{&U-=Zf1IQC2Out58wTXjQ71{Y&cZ||6b5s={+kp=I>$k z()HXeJ1acz7MU?F+n3M$((*CSg0FQyWR71paV-*)lDvIn^~N7FH=Q~1khzohZ~EPZ z#R(t3uh2=Y+Sw%I;jO8^WW!|PmXO0y&r*edr)VbLePdDlde{5upX4rU^}M-f9uP3e zY?CL;k|gGM;fY>j7`u)pqGTA*8 z1$p=Jnw?PZ)l%uWdiU;{KM(but=+-s9lCl_&danZyiUpg7F>O(!?tB_QDSf3lh6{5 zy`MgRv^e+gvq<5#Ugw&RV&BpOpV%kpv$Wib5AbGW5@E)jD1k`;2m~13I)Z4VBnr}o zJCTAEgTRtTbs!1XhLmI>7DG(HmhiyZ!6r-vl89s&;LXYgl4AzKjX-)b6Nm=@*^4%A literal 0 HcmV?d00001 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 979d253f..23fe2c90 100644 --- a/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java +++ b/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java @@ -65,6 +65,7 @@ import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager; 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; @@ -269,6 +270,12 @@ public abstract class AbstractJavadocMojo extends AbstractMojo { // Mojo components // ---------------------------------------------------------------------- + /** + * SiteTool. + */ + @Component + protected SiteTool siteTool; + /** * Archiver manager * @@ -328,8 +335,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 plugin should operate in offline mode. If maven is run in offline @@ -421,8 +428,8 @@ public abstract class AbstractJavadocMojo extends AbstractMojo { /** * The projects in the reactor for aggregation report. */ - @Parameter(property = "reactorProjects", readonly = true) - private List reactorProjects; + @Parameter(defaultValue = "${reactorProjects}", required = true, readonly = true) + protected List reactorProjects; /** * Set this to true to debug the Javadoc plugin. With this, javadoc.bat(or.sh), @@ -1827,7 +1834,7 @@ public void execute() throws MojoExecutionException, MojoFailureException { 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( @@ -1837,7 +1844,7 @@ protected final void verifyRemovedParameter(String paramName) { } 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 " @@ -4249,64 +4256,8 @@ private void validateJavadocOptions() throws MavenReportException { } // 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 '" + 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 '" + 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 '" + 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 '" + this.locale + "', should be language_country_variant."); - } - - this.locale = localeObject.toString(); - final List availableLocalesList = Arrays.asList(Locale.getAvailableLocales()); - if (StringUtils.isNotEmpty(localeObject.getVariant()) && !availableLocalesList.contains(localeObject)) { - StringBuilder sb = new StringBuilder(); - sb.append("Unsupported option with variant '").append(this.locale); - sb.append("'"); - - localeObject = new Locale(localeObject.getLanguage(), localeObject.getCountry()); - this.locale = localeObject.toString(); - - sb.append(", trying to use without variant, i.e. '") - .append(this.locale) - .append("'"); - if (getLog().isWarnEnabled()) { - getLog().warn(sb.toString()); - } - } - - if (!availableLocalesList.contains(localeObject)) { - throw new MavenReportException("Unsupported option '" + this.locale + "'"); - } + if (StringUtils.isNotEmpty(this.locale)) { + this.locale = siteTool.getSiteLocales(locale).get(0).toString(); } } @@ -6029,6 +5980,10 @@ protected void logError(String message, Throwable t) { } } + protected List 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 @@ 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 void doExecute() throws MojoExecutionException { } 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 5bab790e..79803d00 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 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 String getDescription(Locale locale) { } /** {@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 void doExecute() throws MojoExecutionException, MojoFailureException { 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 @@ protected void setUp() throws Exception { 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 1e0aa19b..1fbb39e4 100644 --- a/src/test/java/org/apache/maven/plugins/javadoc/JavadocJarTest.java +++ b/src/test/java/org/apache/maven/plugins/javadoc/JavadocJarTest.java @@ -46,9 +46,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 b4a8c391..cb282d07 100644 --- a/src/test/java/org/apache/maven/plugins/javadoc/JavadocReportTest.java +++ b/src/test/java/org/apache/maven/plugins/javadoc/JavadocReportTest.java @@ -27,6 +27,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -113,17 +114,23 @@ protected void tearDown() throws Exception { 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 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; } @@ -1045,15 +1052,6 @@ public void testValidateOptions() throws Exception { assertTrue("No wrong charset catch", e.getMessage().contains("Unsupported option ")); } - // 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 ")); - } 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 void testTestJavadoc() throws Exception { 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 f8c564af..00000000 --- a/src/test/resources/unit/validate-options-test/wrong-locale-test-plugin-config.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - 4.0.0 - org.apache.maven.plugins.maven-javadoc-plugin.unit - wrong-locale-options-test - jar - 1.0-SNAPSHOT - 2007 - Maven Javadoc Plugin wrong locale Test - http://maven.apache.org - - - - org.apache.maven.plugins - maven-javadoc-plugin - - - ${basedir}/target/test/unit/validate-options-test/target/site/apidocs - ${basedir}/target/test/unit/validate-options-test/target/javadoc-bundle-options - protected - - - true - true - wrong_wrong_wrong_wrong - java - true - - - - -