tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From r...@apache.org
Subject [tomcat] branch master updated: Support Java 11 in Graal Native Images
Date Thu, 28 Nov 2019 10:24:53 GMT
This is an automated email from the ASF dual-hosted git repository.

remm pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/master by this push:
     new f73e601  Support Java 11 in Graal Native Images
f73e601 is described below

commit f73e6012f2437f732f711ddf197ccf790d2a38fa
Author: remm <remm@apache.org>
AuthorDate: Thu Nov 28 11:24:38 2019 +0100

    Support Java 11 in Graal Native Images
    
    Add support for Graal 19.3, since Graal now has Java 9+ [without
    modules], the jre9Available needs to be accurate and match the substrate
    VM (otherwise the direct byte buffer cleaner will not be there).
    Java 11 support needs Graal 19.3 and it solves a lot of the big problems
    Tomcat had with Graal with SunEC (now actually always available) and
    ALPN now works.
    The Graal support should now be like the regular JVM: you can use either
    Java 8 or Java 11.
---
 java/org/apache/tomcat/util/compat/GraalCompat.java | 15 ++++++++++++++-
 java/org/apache/tomcat/util/compat/JreCompat.java   |  2 +-
 webapps/docs/changelog.xml                          |  3 +++
 webapps/docs/graal.xml                              |  3 +--
 4 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/java/org/apache/tomcat/util/compat/GraalCompat.java b/java/org/apache/tomcat/util/compat/GraalCompat.java
index 53b67a1..4ae501d 100644
--- a/java/org/apache/tomcat/util/compat/GraalCompat.java
+++ b/java/org/apache/tomcat/util/compat/GraalCompat.java
@@ -17,8 +17,10 @@
 package org.apache.tomcat.util.compat;
 
 import java.io.IOException;
+import java.net.URL;
+import java.util.Deque;
 
-class GraalCompat extends JreCompat {
+class GraalCompat extends Jre9Compat {
 
     private static final boolean GRAAL;
 
@@ -44,4 +46,15 @@ class GraalCompat extends JreCompat {
     public void disableCachingForJarUrlConnections() throws IOException {
     }
 
+    @Override
+    public void addBootModulePath(Deque<URL> classPathUrlsToProcess) {
+        // No support for modules in native images
+    }
+
+    @Override
+    public boolean isExported(Class<?> type) {
+        // No support for modules in native images so return true
+        return true;
+    }
+
 }
diff --git a/java/org/apache/tomcat/util/compat/JreCompat.java b/java/org/apache/tomcat/util/compat/JreCompat.java
index b33175b..cea18fb 100644
--- a/java/org/apache/tomcat/util/compat/JreCompat.java
+++ b/java/org/apache/tomcat/util/compat/JreCompat.java
@@ -49,7 +49,7 @@ public class JreCompat {
         if (GraalCompat.isSupported()) {
             instance = new GraalCompat();
             graalAvailable = true;
-            jre9Available = false;
+            jre9Available = Jre9Compat.isSupported();
         } else if (Jre9Compat.isSupported()) {
             instance = new Jre9Compat();
             graalAvailable = false;
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 2693403..c303810 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -114,6 +114,9 @@
       <update>
         Update the OWB module to Apache OpenWebBeans 2.0.13. (remm)
       </update>
+      <update>
+        Support Java 11 in Graal Native Images with Graal 19.3+. (remm)
+      </update>
     </changelog>
   </subsection>
 </section>
diff --git a/webapps/docs/graal.xml b/webapps/docs/graal.xml
index cb73078..6aea12c 100644
--- a/webapps/docs/graal.xml
+++ b/webapps/docs/graal.xml
@@ -145,8 +145,7 @@ ant -Dwebapp.name=somewebapp -f graal-webapp.ant.xml</source>
 
   <p>
     Running the native image is then:
-    <source>./tomcat-maven-1.0 -Djava.library.path=$JAVA_HOME/jre/lib/amd64\
-        -Dcatalina.base=. -Djava.util.logging.config.file=conf/logging.properties</source>
+    <source>./tomcat-maven-1.0 -Dcatalina.base=. -Djava.util.logging.config.file=conf/logging.properties</source>
   </p>
 
   </section>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Mime
View raw message