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

michaelo pushed a commit to branch MJAVADOC-603
in repository https://gitbox.apache.org/repos/asf/maven-javadoc-plugin.git

commit 3b1ae0946e341d488f4d20585659ad6cef23843f
Author: Michael Osipov <micha...@apache.org>
AuthorDate: Sun Jul 14 23:15:18 2024 +0200

    [MJAVADOC-603] javadoc:fix failure on JDK10: 
java.lang.ClassNotFoundException: java.sql.Connection
    
    This closes #303
---
 .../maven/plugins/javadoc/AbstractFixJavadocMojo.java    | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git 
a/src/main/java/org/apache/maven/plugins/javadoc/AbstractFixJavadocMojo.java 
b/src/main/java/org/apache/maven/plugins/javadoc/AbstractFixJavadocMojo.java
index 7ef7968c..a48d8d09 100644
--- a/src/main/java/org/apache/maven/plugins/javadoc/AbstractFixJavadocMojo.java
+++ b/src/main/java/org/apache/maven/plugins/javadoc/AbstractFixJavadocMojo.java
@@ -66,6 +66,7 @@ import com.thoughtworks.qdox.model.JavaTypeVariable;
 import com.thoughtworks.qdox.parser.ParseException;
 import com.thoughtworks.qdox.type.TypeResolver;
 import org.apache.commons.lang3.ClassUtils;
+import org.apache.commons.lang3.reflect.MethodUtils;
 import org.apache.commons.text.StringEscapeUtils;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.DependencyResolutionRequiredException;
@@ -79,6 +80,7 @@ import org.apache.maven.project.MavenProject;
 import org.apache.maven.settings.Settings;
 import org.apache.maven.shared.invoker.MavenInvocationException;
 import org.codehaus.plexus.components.interactivity.InputHandler;
+import org.codehaus.plexus.languages.java.version.JavaVersion;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.ReaderFactory;
 import org.codehaus.plexus.util.StringUtils;
@@ -201,6 +203,8 @@ public abstract class AbstractFixJavadocMojo extends 
AbstractMojo {
      */
     private static final String CLIRR_MAVEN_PLUGIN_GOAL = "check";
 
+    private static final JavaVersion JAVA_VERSION = 
JavaVersion.JAVA_SPECIFICATION_VERSION;
+
     /**
      * Java Files Pattern.
      */
@@ -837,7 +841,17 @@ public abstract class AbstractFixJavadocMojo extends 
AbstractMojo {
                 }
             }
 
-            projectClassLoader = new URLClassLoader(urls.toArray(new 
URL[urls.size()]), null);
+            ClassLoader parent = null;
+            if (JAVA_VERSION.isAtLeast("9")) {
+                try {
+                    parent = (ClassLoader) 
MethodUtils.invokeStaticMethod(ClassLoader.class, "getPlatformClassLoader");
+                } catch (Exception e) {
+                    throw new MojoExecutionException(
+                            "Failed to invoke 
ClassLoader#getPlatformClassLoader() dynamically", e);
+                }
+            }
+
+            projectClassLoader = new URLClassLoader(urls.toArray(new 
URL[urls.size()]), parent);
         }
 
         return projectClassLoader;

Reply via email to