You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2024/06/02 19:04:49 UTC

(maven-jxr) 02/02: [JXR-189] Dynamically calculate javadocLocation/testJavadocLocation

This is an automated email from the ASF dual-hosted git repository.

michaelo pushed a commit to branch doxia-2.0.0
in repository https://gitbox.apache.org/repos/asf/maven-jxr.git

commit 14d11acd899da5ebda9fb6f5f375a596bbb08b6e
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Sun Nov 12 23:40:40 2023 +0100

    [JXR-189] Dynamically calculate javadocLocation/testJavadocLocation
---
 .../apache/maven/plugin/jxr/AbstractJxrReport.java | 26 +++++++++++-----------
 .../org/apache/maven/plugin/jxr/JxrReport.java     | 10 +++++----
 .../org/apache/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 +-
 .../nojavadoclink-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 feabfb1..8171747 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 @@ public abstract class AbstractJxrReport extends AbstractMavenReport {
         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 abstract class AbstractJxrReport extends AbstractMavenReport {
     /**
      * @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 @@ public abstract class AbstractJxrReport extends AbstractMavenReport {
                 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 @@ public abstract class AbstractJxrReport extends AbstractMavenReport {
                             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 @@ public abstract class AbstractJxrReport extends AbstractMavenReport {
     protected abstract List<String> 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 dfe3e75..32d7842 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.
+     * <br>
+     * <strong>Default</strong>: {@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 class JxrReport extends AbstractJxrReport {
     }
 
     @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 7a39040..f0eace3 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.
+     * <br>
+     * <strong>Default</strong>: {@link #getReportOutputDirectory()} + {@code /testapidocs}
      */
-    @Parameter(defaultValue = "${project.reporting.outputDirectory}/testapidocs")
-    private File testJavadocDir;
+    @Parameter
+    private File testJavadocLocation;
 
     @Override
     protected List<String> getSourceRoots() {
@@ -102,7 +104,7 @@ public class JxrTestReport extends AbstractJxrReport {
     }
 
     @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 73c0ab4..5343001 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.
             <value>${basedir}/src/test/resources/unit/aggregate-test/submodule1</value>
             <value>${basedir}/src/test/resources/unit/aggregate-test/submodule2</value>
           </sourceDirs>
-          <javadocDir>${basedir}/target/test/unit/aggregate-test/target/site/apidocs</javadocDir>
+          <javadocLocation>${basedir}/target/test/unit/aggregate-test/target/site/apidocs</javadocLocation>
           <linkJavadoc>false</linkJavadoc>
           <bottom>Copyright 2006 Apache Foundation</bottom>
           <javadocVersion>1.4</javadocVersion>
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 410f864..e6e2619 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.
           <sourceDirs>
             <value>${basedir}/src/test/resources/unit/default-configuration</value>
           </sourceDirs>
-          <javadocDir>${basedir}/target/test/unit/default-configuration/target/site/4/apidocs</javadocDir>
+          <javadocLocation>${basedir}/target/test/unit/default-configuration/target/site/4/apidocs</javadocLocation>
           <linkJavadoc>true</linkJavadoc>
           <bottom>Copyright 2006 Apache Foundation</bottom>
           <javadocVersion>1.4</javadocVersion>
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 5d0184d..3067637 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.
           <sourceDirs>
             <value>${basedir}/src/test/resources/unit/default-configuration</value>
           </sourceDirs>
-          <javadocDir>${basedir}/target/test/unit/default-configuration/target/site/6/apidocs</javadocDir>
+          <javadocLocation>${basedir}/target/test/unit/default-configuration/target/site/6/apidocs</javadocLocation>
           <linkJavadoc>true</linkJavadoc>
           <bottom>Copyright 2006 Apache Foundation</bottom>
           <javadocVersion>1.6</javadocVersion>
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 8620129..a5b58bf 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.
           <sourceDirs>
             <value>${basedir}/src/test/resources/unit/default-configuration</value>
           </sourceDirs>
-          <javadocDir>${basedir}/target/test/unit/default-configuration/target/site/7/apidocs</javadocDir>
+          <javadocLocation>${basedir}/target/test/unit/default-configuration/target/site/7/apidocs</javadocLocation>
           <linkJavadoc>true</linkJavadoc>
           <bottom>Copyright 2006 Apache Foundation</bottom>
           <javadocVersion>1.7</javadocVersion>
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 486776a..df1fff7 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.
           <sourceDirs>
             <value>${basedir}/src/test/resources/unit/default-configuration</value>
           </sourceDirs>
-          <javadocDir>${basedir}/target/test/unit/default-configuration/target/site/8/apidocs</javadocDir>
+          <javadocLocation>${basedir}/target/test/unit/default-configuration/target/site/8/apidocs</javadocLocation>
           <linkJavadoc>true</linkJavadoc>
           <bottom>Copyright 2006 Apache Foundation</bottom>
           <javadocVersion>1.8</javadocVersion>
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 a457dce..e17feb1 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.
           <sourceDirs>
             <value>${basedir}/src/test/resources/unit/default-configuration</value>
           </sourceDirs>
-          <javadocDir>${basedir}/target/test/unit/default-configuration/target/site/apidocs</javadocDir>
+          <javadocLocation>${basedir}/target/test/unit/default-configuration/target/site/apidocs</javadocLocation>
           <linkJavadoc>true</linkJavadoc>
           <bottom>Copyright 2006 Apache Foundation</bottom>
           <templateDir>templates</templateDir>
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 06039de..b495874 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.
           <sourceDirs>
             <value>${basedir}/src/test/resources/unit/default-configuration</value>
           </sourceDirs>
-          <javadocDir>${basedir}/target/test/unit/default-configuration/target/site/apidocs</javadocDir>
+          <javadocLocation>${basedir}/target/test/unit/default-configuration/target/site/apidocs</javadocLocation>
           <linkJavadoc>true</linkJavadoc>
           <bottom>Copyright 2006 Apache Foundation</bottom>
           <templateDir>temp</templateDir>
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 ff9bef7..33e057b 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.
           <sourceDirs>
             <value>${basedir}/src/test/resources/unit/exclude-configuration</value>
           </sourceDirs>
-          <javadocDir>${basedir}/target/test/unit/exclude-configuration/target/site/apidocs</javadocDir>
+          <javadocLocation>${basedir}/target/test/unit/exclude-configuration/target/site/apidocs</javadocLocation>
           <linkJavadoc>true</linkJavadoc>
           <bottom>Copyright 2006 Apache Foundation</bottom>
           <javadocVersion>1.4</javadocVersion>
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 2cda959..84128a0 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.
           <sourceDirs>
             <value>${basedir}/src/test/resources/unit/include-configuration</value>
           </sourceDirs>
-          <javadocDir>${basedir}/target/test/unit/include-configuration/target/site/apidocs</javadocDir>
+          <javadocLocation>${basedir}/target/test/unit/include-configuration/target/site/apidocs</javadocLocation>
           <linkJavadoc>true</linkJavadoc>
           <bottom>Copyright 2006 Apache Foundation</bottom>
           <javadocVersion>1.4</javadocVersion>
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 fed568a..255b59e 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.
           <sourceDirs>
             <value>${basedir}/src/test/resources/unit/nojavadocdir-test</value>
           </sourceDirs>
-          <javadocDir>${basedir}/target/test/unit/nojavadocdir-test/target/site/apidocs</javadocDir>
+          <javadocLocation>${basedir}/target/test/unit/nojavadocLocation-test/target/site/apidocs</javadocLocation>
           <linkJavadoc>true</linkJavadoc>
           <bottom>Copyright 2006 Apache Foundation</bottom>
           <javadocVersion>1.4</javadocVersion>
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 b66627d..4dc92a0 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.
           <sourceDirs>
             <value>${basedir}/src/test/resources/unit/nojavadoclink-configuration</value>
           </sourceDirs>
-          <javadocDir>${basedir}/target/test/unit/nojavadoclink-configuration/target/site/apidocs</javadocDir>
+          <javadocLocation>${basedir}/target/test/unit/nojavadoclink-configuration/target/site/apidocs</javadocLocation>
           <linkJavadoc>false</linkJavadoc>
           <bottom>Copyright 2006 Apache Foundation</bottom>
           <javadocVersion>1.4</javadocVersion>