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

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


The following commit(s) were added to refs/heads/master by this push:
     new d46e00f6f [KYUUBI #4849] Open modules to enable JDK 17 support
d46e00f6f is described below

commit d46e00f6fe0e7085699b7ee21c3b2563520c6c36
Author: Cheng Pan <[email protected]>
AuthorDate: Mon May 22 09:53:49 2023 +0800

    [KYUUBI #4849] Open modules to enable JDK 17 support
    
    ### _Why are the changes needed?_
    
    After previous efforts, we are close to the goal. This is the latest step 
to to allow Kyuubi run on JDK 17 by adding `--add-open` in bootstrap scripts 
and test the plugin's parameter.
    
    This PR also enables JDK 17 test in CI, but only for Kyuubi server and 
Spark(3.3+) engine moudles, because
    
    - Spark supports JDK 17 since 3.3, see SPARK-33772
    - Flink does not support JDK 17 until the latest 1.17
    
    ### _How was this patch tested?_
    - [ ] Add some test cases that check the changes thoroughly including 
negative and positive cases if possible
    
    - [x] Add screenshots for manual tests if appropriate
    
      - Run Kyuubi server on JDK 17
      - Run simple Spark (3.3.2) query on JDK 17
      - Run `kyuubi-zk-cli` on JDK 17
    
    - [x] [Run 
test](https://kyuubi.readthedocs.io/en/master/develop_tools/testing.html#running-tests)
 locally before make a pull request
    
    Closes #4849 from pan3793/jdk-17.
    
    Closes #4849
    
    165e3558c [Cheng Pan] Enable JDK 17 in CI
    f5778e7bd [Cheng Pan] Open modules in bootstrap scripts
    76b507ffd [Cheng Pan] Open modules in UT
    
    Authored-by: Cheng Pan <[email protected]>
    Signed-off-by: Cheng Pan <[email protected]>
---
 .github/workflows/master.yml |  7 +++++++
 bin/load-kyuubi-env.sh       | 38 ++++++++++++++++++++++++++++++++++++++
 pom.xml                      | 21 +++++++++++++++++++++
 3 files changed, 66 insertions(+)

diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml
index 7edc4f662..99817e6ca 100644
--- a/.github/workflows/master.yml
+++ b/.github/workflows/master.yml
@@ -46,6 +46,7 @@ jobs:
         java:
           - 8
           - 11
+          - 17
         spark:
           - '3.1'
           - '3.2'
@@ -70,6 +71,12 @@ jobs:
             spark-archive: 
'-Dspark.archive.mirror=https://archive.apache.org/dist/spark/spark-3.4.0 
-Dspark.archive.name=spark-3.4.0-bin-hadoop3.tgz -Pzookeeper-3.6'
             exclude-tags: 
'-Dmaven.plugin.scalatest.exclude.tags=org.scalatest.tags.Slow,org.apache.kyuubi.tags.DeltaTest,org.apache.kyuubi.tags.IcebergTest'
             comment: 'verify-on-spark-3.4-binary'
+        exclude:
+          # SPARK-33772: Spark supports JDK 17 since 3.3.0
+          - java: 17
+            spark: '3.1'
+          - java: 17
+            spark: '3.2'
     env:
       SPARK_LOCAL_IP: localhost
     steps:
diff --git a/bin/load-kyuubi-env.sh b/bin/load-kyuubi-env.sh
index bfb922658..4d6f72ddf 100755
--- a/bin/load-kyuubi-env.sh
+++ b/bin/load-kyuubi-env.sh
@@ -69,6 +69,44 @@ if [[ -z ${JAVA_HOME} ]]; then
   fi
 fi
 
+KYUUBI_JAVA_OPTS="$KYUUBI_JAVA_OPTS -XX:+IgnoreUnrecognizedVMOptions"
+KYUUBI_JAVA_OPTS="$KYUUBI_JAVA_OPTS -Dio.netty.tryReflectionSetAccessible=true"
+KYUUBI_JAVA_OPTS="$KYUUBI_JAVA_OPTS 
--add-opens=java.base/java.lang=ALL-UNNAMED"
+KYUUBI_JAVA_OPTS="$KYUUBI_JAVA_OPTS 
--add-opens=java.base/java.lang.invoke=ALL-UNNAMED"
+KYUUBI_JAVA_OPTS="$KYUUBI_JAVA_OPTS 
--add-opens=java.base/java.lang.reflect=ALL-UNNAMED"
+KYUUBI_JAVA_OPTS="$KYUUBI_JAVA_OPTS --add-opens=java.base/java.io=ALL-UNNAMED"
+KYUUBI_JAVA_OPTS="$KYUUBI_JAVA_OPTS --add-opens=java.base/java.net=ALL-UNNAMED"
+KYUUBI_JAVA_OPTS="$KYUUBI_JAVA_OPTS --add-opens=java.base/java.nio=ALL-UNNAMED"
+KYUUBI_JAVA_OPTS="$KYUUBI_JAVA_OPTS 
--add-opens=java.base/java.util=ALL-UNNAMED"
+KYUUBI_JAVA_OPTS="$KYUUBI_JAVA_OPTS 
--add-opens=java.base/java.util.concurrent=ALL-UNNAMED"
+KYUUBI_JAVA_OPTS="$KYUUBI_JAVA_OPTS 
--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED"
+KYUUBI_JAVA_OPTS="$KYUUBI_JAVA_OPTS 
--add-opens=java.base/sun.nio.ch=ALL-UNNAMED"
+KYUUBI_JAVA_OPTS="$KYUUBI_JAVA_OPTS 
--add-opens=java.base/sun.nio.cs=ALL-UNNAMED"
+KYUUBI_JAVA_OPTS="$KYUUBI_JAVA_OPTS 
--add-opens=java.base/sun.security.action=ALL-UNNAMED"
+KYUUBI_JAVA_OPTS="$KYUUBI_JAVA_OPTS 
--add-opens=java.base/sun.security.tools.keytool=ALL-UNNAMED"
+KYUUBI_JAVA_OPTS="$KYUUBI_JAVA_OPTS 
--add-opens=java.base/sun.security.x509=ALL-UNNAMED"
+KYUUBI_JAVA_OPTS="$KYUUBI_JAVA_OPTS 
--add-opens=java.base/sun.util.calendar=ALL-UNNAMED"
+export KYUUBI_JAVA_OPTS="$KYUUBI_JAVA_OPTS"
+
+KYUUBI_CTL_JAVA_OPTS="$KYUUBI_CTL_JAVA_OPTS -XX:+IgnoreUnrecognizedVMOptions"
+KYUUBI_CTL_JAVA_OPTS="$KYUUBI_CTL_JAVA_OPTS 
-Dio.netty.tryReflectionSetAccessible=true"
+KYUUBI_CTL_JAVA_OPTS="$KYUUBI_CTL_JAVA_OPTS 
--add-opens=java.base/java.lang=ALL-UNNAMED"
+KYUUBI_CTL_JAVA_OPTS="$KYUUBI_CTL_JAVA_OPTS 
--add-opens=java.base/java.lang.invoke=ALL-UNNAMED"
+KYUUBI_CTL_JAVA_OPTS="$KYUUBI_CTL_JAVA_OPTS 
--add-opens=java.base/java.lang.reflect=ALL-UNNAMED"
+KYUUBI_CTL_JAVA_OPTS="$KYUUBI_CTL_JAVA_OPTS 
--add-opens=java.base/java.io=ALL-UNNAMED"
+KYUUBI_CTL_JAVA_OPTS="$KYUUBI_CTL_JAVA_OPTS 
--add-opens=java.base/java.net=ALL-UNNAMED"
+KYUUBI_CTL_JAVA_OPTS="$KYUUBI_CTL_JAVA_OPTS 
--add-opens=java.base/java.nio=ALL-UNNAMED"
+KYUUBI_CTL_JAVA_OPTS="$KYUUBI_CTL_JAVA_OPTS 
--add-opens=java.base/java.util=ALL-UNNAMED"
+KYUUBI_CTL_JAVA_OPTS="$KYUUBI_CTL_JAVA_OPTS 
--add-opens=java.base/java.util.concurrent=ALL-UNNAMED"
+KYUUBI_CTL_JAVA_OPTS="$KYUUBI_CTL_JAVA_OPTS 
--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED"
+KYUUBI_CTL_JAVA_OPTS="$KYUUBI_CTL_JAVA_OPTS 
--add-opens=java.base/sun.nio.ch=ALL-UNNAMED"
+KYUUBI_CTL_JAVA_OPTS="$KYUUBI_CTL_JAVA_OPTS 
--add-opens=java.base/sun.nio.cs=ALL-UNNAMED"
+KYUUBI_CTL_JAVA_OPTS="$KYUUBI_CTL_JAVA_OPTS 
--add-opens=java.base/sun.security.action=ALL-UNNAMED"
+KYUUBI_CTL_JAVA_OPTS="$KYUUBI_CTL_JAVA_OPTS 
--add-opens=java.base/sun.security.tools.keytool=ALL-UNNAMED"
+KYUUBI_CTL_JAVA_OPTS="$KYUUBI_CTL_JAVA_OPTS 
--add-opens=java.base/sun.security.x509=ALL-UNNAMED"
+KYUUBI_CTL_JAVA_OPTS="$KYUUBI_CTL_JAVA_OPTS 
--add-opens=java.base/sun.util.calendar=ALL-UNNAMED"
+export KYUUBI_CTL_JAVA_OPTS="$KYUUBI_CTL_JAVA_OPTS"
+
 export KYUUBI_SCALA_VERSION="${KYUUBI_SCALA_VERSION:-"2.12"}"
 
 if [[ -f ${KYUUBI_HOME}/RELEASE ]]; then
diff --git a/pom.xml b/pom.xml
index 7996fa7a9..ae5c46140 100644
--- a/pom.xml
+++ b/pom.xml
@@ -256,6 +256,25 @@
         <distMgmtSnapshotsId>apache.snapshots.https</distMgmtSnapshotsId>
         <distMgmtSnapshotsName>Apache Development Snapshot 
Repository</distMgmtSnapshotsName>
         
<distMgmtSnapshotsUrl>https://repository.apache.org/content/repositories/snapshots</distMgmtSnapshotsUrl>
+
+        <extraJavaTestArgs>-XX:+IgnoreUnrecognizedVMOptions
+            --add-opens=java.base/java.lang=ALL-UNNAMED
+            --add-opens=java.base/java.lang.invoke=ALL-UNNAMED
+            --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
+            --add-opens=java.base/java.io=ALL-UNNAMED
+            --add-opens=java.base/java.net=ALL-UNNAMED
+            --add-opens=java.base/java.nio=ALL-UNNAMED
+            --add-opens=java.base/java.util=ALL-UNNAMED
+            --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
+            --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED
+            --add-opens=java.base/sun.nio.ch=ALL-UNNAMED
+            --add-opens=java.base/sun.nio.cs=ALL-UNNAMED
+            --add-opens=java.base/sun.security.action=ALL-UNNAMED
+            --add-opens=java.base/sun.security.tools.keytool=ALL-UNNAMED
+            --add-opens=java.base/sun.security.x509=ALL-UNNAMED
+            --add-opens=java.base/sun.util.calendar=ALL-UNNAMED
+            -Djdk.reflect.useDirectMethodHandle=false
+            -Dio.netty.tryReflectionSetAccessible=true</extraJavaTestArgs>
     </properties>
 
     <dependencyManagement>
@@ -1661,6 +1680,7 @@
                     <configuration>
                         <skipTests>true</skipTests>
                         <failIfNoSpecifiedTests>false</failIfNoSpecifiedTests>
+                        <argLine>${extraJavaTestArgs}</argLine>
                     </configuration>
                 </plugin>
                 <!-- enable scalatest -->
@@ -1672,6 +1692,7 @@
                         
<reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory>
                         <junitxml>.</junitxml>
                         <filereports>TestSuite.txt</filereports>
+                        <argLine>${extraJavaTestArgs}</argLine>
                         <environmentVariables>
                             
<KYUUBI_WORK_DIR_ROOT>${project.build.directory}/work</KYUUBI_WORK_DIR_ROOT>
                         </environmentVariables>

Reply via email to