From c4b6a27bce797859212a39fa3a35510a63b36d0b Mon Sep 17 00:00:00 2001 From: Michael Osipov Date: Sun, 12 Nov 2023 23:40:40 +0100 Subject: [PATCH] [JXR-189] Dynamically calculate javadocLocation/testJavadocLocation --- .../maven/plugin/jxr/AbstractJxrReport.java | 26 +++++++++---------- .../apache/maven/plugin/jxr/JxrReport.java | 10 ++++--- .../maven/plugin/jxr/JxrTestReport.java | 10 ++++--- .../aggregate-test-plugin-config.xml | 2 +- .../default-configuration-plugin-config-4.xml | 2 +- .../default-configuration-plugin-config-6.xml | 2 +- .../default-configuration-plugin-config-7.xml | 2 +- .../default-configuration-plugin-config-8.xml | 2 +- .../default-configuration-plugin-config.xml | 2 +- .../exception-test-plugin-config.xml | 2 +- .../exclude-configuration-plugin-config.xml | 2 +- .../include-configuration-plugin-config.xml | 2 +- .../nojavadocdir-test-plugin-config.xml | 2 +- ...avadoclink-configuration-plugin-config.xml | 2 +- 14 files changed, 36 insertions(+), 32 deletions(-) diff --git a/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/AbstractJxrReport.java b/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/AbstractJxrReport.java index feabfb18..81717479 100644 --- a/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/AbstractJxrReport.java +++ b/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/AbstractJxrReport.java @@ -215,7 +215,7 @@ private void createXref(Locale locale, File outputDirectory, List source jxr.setLocale(locale); jxr.setOutputEncoding(getOutputEncoding()); jxr.setRevision("HEAD"); - jxr.setJavadocLinkDir(getJavadocLocation()); + jxr.setJavadocLinkDir(constructJavadocLocation()); // Set include/exclude patterns on the jxr instance if (excludes != null && !excludes.isEmpty()) { jxr.setExcludes(excludes.toArray(new String[0])); @@ -468,14 +468,14 @@ public boolean isExternalReport() { /** * @return a String that contains the location of the javadocs */ - private Path getJavadocLocation() throws IOException { + private Path constructJavadocLocation() throws IOException { Path location = null; if (linkJavadoc) { // We don't need to do the whole translation thing like normal, because JXR does it internally. // It probably shouldn't. - if (getJavadocDir().exists()) { + if (getJavadocLocation().exists()) { // XRef was already generated by manual execution of a lifecycle binding - location = getJavadocDir().toPath().toAbsolutePath(); + location = getJavadocLocation().toPath().toAbsolutePath(); } else { // Not yet generated - check if the report is on its way @@ -483,15 +483,15 @@ private Path getJavadocLocation() throws IOException { String stagingDirectory = System.getProperty("stagingDirectory"); if (stagingDirectory != null && !stagingDirectory.isEmpty()) { - String javadocDestDir = getJavadocDir().getName(); + String javadocOutputDir = getJavadocLocation().getName(); boolean javadocAggregate = JxrReportUtil.isJavadocAggregated(project); String structureProject = JxrReportUtil.getStructure(project, false); if (isAggregate() && javadocAggregate) { - location = Paths.get(stagingDirectory, structureProject, javadocDestDir); + location = Paths.get(stagingDirectory, structureProject, javadocOutputDir); } if (!isAggregate() && javadocAggregate) { - location = Paths.get(stagingDirectory, javadocDestDir); + location = Paths.get(stagingDirectory, javadocOutputDir); String hierarchy = project.getName(); @@ -500,17 +500,17 @@ private Path getJavadocLocation() throws IOException { hierarchy = parent.getName(); parent = parent.getParent(); } - location = Paths.get(stagingDirectory, hierarchy, javadocDestDir); + location = Paths.get(stagingDirectory, hierarchy, javadocOutputDir); } if (isAggregate() && !javadocAggregate) { getLog().warn("The JXR plugin is configured to build an aggregated report at the root, " + "not the Javadoc plugin."); } if (!isAggregate() && !javadocAggregate) { - location = Paths.get(stagingDirectory, structureProject, javadocDestDir); + location = Paths.get(stagingDirectory, structureProject, javadocOutputDir); } } else { - location = getJavadocDir().toPath(); + location = getJavadocLocation().toPath(); } } @@ -547,11 +547,11 @@ private Path getJavadocLocation() throws IOException { protected abstract List getSourceRoots(MavenProject project); /** - * Abstract method that returns the directory of the javadoc files. + * Abstract method that returns the location where (Test) Javadoc is generated for this project. * - * @return a File for the directory of the javadocs + * @return a File for the location of (test) javadoc */ - protected abstract File getJavadocDir(); + protected abstract File getJavadocLocation(); /** * Is the current report aggregated? diff --git a/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrReport.java b/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrReport.java index dfe3e757..32d7842f 100644 --- a/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrReport.java +++ b/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrReport.java @@ -54,9 +54,11 @@ public class JxrReport extends AbstractJxrReport { /** * Directory where Javadoc is generated for this project. + *
+ * Default: {@link #getReportOutputDirectory()} + {@code /apidocs} */ - @Parameter(defaultValue = "${project.reporting.outputDirectory}/apidocs") - private File javadocDir; + @Parameter + private File javadocLocation; @Override protected File getPluginReportOutputDirectory() { @@ -120,7 +122,7 @@ public String getOutputName() { } @Override - protected File getJavadocDir() { - return javadocDir; + protected File getJavadocLocation() { + return javadocLocation != null ? javadocLocation : new File(getReportOutputDirectory(), "apidocs"); } } diff --git a/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrTestReport.java b/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrTestReport.java index 7a390402..f0eace3f 100644 --- a/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrTestReport.java +++ b/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrTestReport.java @@ -47,9 +47,11 @@ public class JxrTestReport extends AbstractJxrReport { /** * Directory where Test Javadoc is generated for this project. + *
+ * Default: {@link #getReportOutputDirectory()} + {@code /testapidocs} */ - @Parameter(defaultValue = "${project.reporting.outputDirectory}/testapidocs") - private File testJavadocDir; + @Parameter + private File testJavadocLocation; @Override protected List getSourceRoots() { @@ -102,7 +104,7 @@ public String getOutputName() { } @Override - protected File getJavadocDir() { - return testJavadocDir; + protected File getJavadocLocation() { + return testJavadocLocation != null ? testJavadocLocation : new File(getReportOutputDirectory(), "testapidocs"); } } diff --git a/maven-jxr-plugin/src/test/resources/unit/aggregate-test/aggregate-test-plugin-config.xml b/maven-jxr-plugin/src/test/resources/unit/aggregate-test/aggregate-test-plugin-config.xml index 73c0ab46..53430019 100644 --- a/maven-jxr-plugin/src/test/resources/unit/aggregate-test/aggregate-test-plugin-config.xml +++ b/maven-jxr-plugin/src/test/resources/unit/aggregate-test/aggregate-test-plugin-config.xml @@ -41,7 +41,7 @@ under the License. ${basedir}/src/test/resources/unit/aggregate-test/submodule1 ${basedir}/src/test/resources/unit/aggregate-test/submodule2 - ${basedir}/target/test/unit/aggregate-test/target/site/apidocs + ${basedir}/target/test/unit/aggregate-test/target/site/apidocs false Copyright 2006 Apache Foundation 1.4 diff --git a/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-4.xml b/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-4.xml index 410f864f..e6e26198 100644 --- a/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-4.xml +++ b/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-4.xml @@ -39,7 +39,7 @@ under the License. ${basedir}/src/test/resources/unit/default-configuration - ${basedir}/target/test/unit/default-configuration/target/site/4/apidocs + ${basedir}/target/test/unit/default-configuration/target/site/4/apidocs true Copyright 2006 Apache Foundation 1.4 diff --git a/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-6.xml b/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-6.xml index 5d0184db..3067637b 100644 --- a/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-6.xml +++ b/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-6.xml @@ -39,7 +39,7 @@ under the License. ${basedir}/src/test/resources/unit/default-configuration - ${basedir}/target/test/unit/default-configuration/target/site/6/apidocs + ${basedir}/target/test/unit/default-configuration/target/site/6/apidocs true Copyright 2006 Apache Foundation 1.6 diff --git a/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-7.xml b/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-7.xml index 8620129b..a5b58bfc 100644 --- a/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-7.xml +++ b/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-7.xml @@ -39,7 +39,7 @@ under the License. ${basedir}/src/test/resources/unit/default-configuration - ${basedir}/target/test/unit/default-configuration/target/site/7/apidocs + ${basedir}/target/test/unit/default-configuration/target/site/7/apidocs true Copyright 2006 Apache Foundation 1.7 diff --git a/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-8.xml b/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-8.xml index 486776a7..df1fff77 100644 --- a/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-8.xml +++ b/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-8.xml @@ -39,7 +39,7 @@ under the License. ${basedir}/src/test/resources/unit/default-configuration - ${basedir}/target/test/unit/default-configuration/target/site/8/apidocs + ${basedir}/target/test/unit/default-configuration/target/site/8/apidocs true Copyright 2006 Apache Foundation 1.8 diff --git a/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml b/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml index a457dce8..e17feb12 100644 --- a/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml +++ b/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml @@ -39,7 +39,7 @@ under the License. ${basedir}/src/test/resources/unit/default-configuration - ${basedir}/target/test/unit/default-configuration/target/site/apidocs + ${basedir}/target/test/unit/default-configuration/target/site/apidocs true Copyright 2006 Apache Foundation templates diff --git a/maven-jxr-plugin/src/test/resources/unit/default-configuration/exception-test-plugin-config.xml b/maven-jxr-plugin/src/test/resources/unit/default-configuration/exception-test-plugin-config.xml index 06039de9..b4958747 100644 --- a/maven-jxr-plugin/src/test/resources/unit/default-configuration/exception-test-plugin-config.xml +++ b/maven-jxr-plugin/src/test/resources/unit/default-configuration/exception-test-plugin-config.xml @@ -40,7 +40,7 @@ under the License. ${basedir}/src/test/resources/unit/default-configuration - ${basedir}/target/test/unit/default-configuration/target/site/apidocs + ${basedir}/target/test/unit/default-configuration/target/site/apidocs true Copyright 2006 Apache Foundation temp diff --git a/maven-jxr-plugin/src/test/resources/unit/exclude-configuration/exclude-configuration-plugin-config.xml b/maven-jxr-plugin/src/test/resources/unit/exclude-configuration/exclude-configuration-plugin-config.xml index ff9bef70..33e057bf 100644 --- a/maven-jxr-plugin/src/test/resources/unit/exclude-configuration/exclude-configuration-plugin-config.xml +++ b/maven-jxr-plugin/src/test/resources/unit/exclude-configuration/exclude-configuration-plugin-config.xml @@ -40,7 +40,7 @@ under the License. ${basedir}/src/test/resources/unit/exclude-configuration - ${basedir}/target/test/unit/exclude-configuration/target/site/apidocs + ${basedir}/target/test/unit/exclude-configuration/target/site/apidocs true Copyright 2006 Apache Foundation 1.4 diff --git a/maven-jxr-plugin/src/test/resources/unit/include-configuration/include-configuration-plugin-config.xml b/maven-jxr-plugin/src/test/resources/unit/include-configuration/include-configuration-plugin-config.xml index 2cda9596..84128a0c 100644 --- a/maven-jxr-plugin/src/test/resources/unit/include-configuration/include-configuration-plugin-config.xml +++ b/maven-jxr-plugin/src/test/resources/unit/include-configuration/include-configuration-plugin-config.xml @@ -40,7 +40,7 @@ under the License. ${basedir}/src/test/resources/unit/include-configuration - ${basedir}/target/test/unit/include-configuration/target/site/apidocs + ${basedir}/target/test/unit/include-configuration/target/site/apidocs true Copyright 2006 Apache Foundation 1.4 diff --git a/maven-jxr-plugin/src/test/resources/unit/nojavadocdir-test/nojavadocdir-test-plugin-config.xml b/maven-jxr-plugin/src/test/resources/unit/nojavadocdir-test/nojavadocdir-test-plugin-config.xml index fed568a8..255b59e4 100644 --- a/maven-jxr-plugin/src/test/resources/unit/nojavadocdir-test/nojavadocdir-test-plugin-config.xml +++ b/maven-jxr-plugin/src/test/resources/unit/nojavadocdir-test/nojavadocdir-test-plugin-config.xml @@ -40,7 +40,7 @@ under the License. ${basedir}/src/test/resources/unit/nojavadocdir-test - ${basedir}/target/test/unit/nojavadocdir-test/target/site/apidocs + ${basedir}/target/test/unit/nojavadocLocation-test/target/site/apidocs true Copyright 2006 Apache Foundation 1.4 diff --git a/maven-jxr-plugin/src/test/resources/unit/nojavadoclink-configuration/nojavadoclink-configuration-plugin-config.xml b/maven-jxr-plugin/src/test/resources/unit/nojavadoclink-configuration/nojavadoclink-configuration-plugin-config.xml index b66627d2..4dc92a01 100644 --- a/maven-jxr-plugin/src/test/resources/unit/nojavadoclink-configuration/nojavadoclink-configuration-plugin-config.xml +++ b/maven-jxr-plugin/src/test/resources/unit/nojavadoclink-configuration/nojavadoclink-configuration-plugin-config.xml @@ -40,7 +40,7 @@ under the License. ${basedir}/src/test/resources/unit/nojavadoclink-configuration - ${basedir}/target/test/unit/nojavadoclink-configuration/target/site/apidocs + ${basedir}/target/test/unit/nojavadoclink-configuration/target/site/apidocs false Copyright 2006 Apache Foundation 1.4