diff --git a/CHANGES.txt b/CHANGES.txt index 238417174c..b5495844f5 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,6 +1,6 @@ 4.2 * More accurate skipping of sstables in read path (CASSANDRA-18134) - * Prepare for JDK17 experimental support (CASSANDRA-18179) + * Prepare for JDK17 experimental support (CASSANDRA-18179, CASSANDRA-18258) * Remove Scripted UDFs internals; hooks to be added later in CASSANDRA-17281 (CASSANDRA-18252) * Update JNA to 5.13.0 (CASSANDRA-18050) * Make virtual tables decide if they implicitly enable ALLOW FILTERING (CASSANDRA-18238) diff --git a/bin/cassandra.in.sh b/bin/cassandra.in.sh index dcbd12d014..dfbb95955e 100644 --- a/bin/cassandra.in.sh +++ b/bin/cassandra.in.sh @@ -114,8 +114,9 @@ fi java_ver_output=`"${JAVA:-java}" -version 2>&1` jvmver=`echo "$java_ver_output" | grep '[openjdk|java] version' | awk -F'"' 'NR==1 {print $2}' | cut -d\- -f1` JVM_VERSION=${jvmver%_*} +short=$(echo "${jvmver}" | cut -c1-2) -JAVA_VERSION=11 +JAVA_VERSION=17 if [ "$JVM_VERSION" = "1.8.0" ] ; then JVM_PATCH_VERSION=${jvmver#*_} if [ "$JVM_VERSION" \< "1.8" ] || [ "$JVM_VERSION" \> "1.8.2" ] ; then @@ -130,6 +131,11 @@ if [ "$JVM_VERSION" = "1.8.0" ] ; then elif [ "$JVM_VERSION" \< "11" ] ; then echo "Cassandra 4.0 requires either Java 8 (update 151 or newer) or Java 11 (or newer)." exit 1; +elif [ "$short" = "11" ] ; then + JAVA_VERSION=11 +elif [ "$JVM_VERSION" \< "17" ] ; then + echo "Cassandra 5.0 requires Java 11 or Java 17." + exit 1; fi jvm=`echo "$java_ver_output" | grep -A 1 '[openjdk|java] version' | awk 'NR==2 {print $1}'` @@ -153,7 +159,9 @@ esac # Read user-defined JVM options from jvm-server.options file JVM_OPTS_FILE=$CASSANDRA_CONF/jvm${jvmoptions_variant:--clients}.options -if [ $JAVA_VERSION -ge 11 ] ; then +if [ $JAVA_VERSION -ge 17 ] ; then + JVM_DEP_OPTS_FILE=$CASSANDRA_CONF/jvm17${jvmoptions_variant:--clients}.options +elif [ $JAVA_VERSION -ge 11 ] ; then JVM_DEP_OPTS_FILE=$CASSANDRA_CONF/jvm11${jvmoptions_variant:--clients}.options else JVM_DEP_OPTS_FILE=$CASSANDRA_CONF/jvm8${jvmoptions_variant:--clients}.options diff --git a/build.xml b/build.xml index 76f5397d39..1cee3d0d62 100644 --- a/build.xml +++ b/build.xml @@ -216,9 +216,51 @@ - - - + + + + + -Djdk.attach.allowAttachSelf=true + -XX:+UseG1GC + -XX:+ParallelRefProcEnabled + -XX:MaxTenuringThreshold=1 + -XX:G1HeapRegionSize=16m + + --add-exports java.base/jdk.internal.misc=ALL-UNNAMED + --add-exports java.base/jdk.internal.ref=ALL-UNNAMED + --add-exports java.base/sun.nio.ch=ALL-UNNAMED + --add-exports java.management.rmi/com.sun.jmx.remote.internal.rmi=ALL-UNNAMED + --add-exports java.rmi/sun.rmi.registry=ALL-UNNAMED + --add-exports java.rmi/sun.rmi.server=ALL-UNNAMED + --add-exports java.sql/java.sql=ALL-UNNAMED + --add-exports java.base/java.lang.ref=ALL-UNNAMED + --add-exports jdk.unsupported/sun.misc=ALL-UNNAMED + --add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED + + --add-opens java.base/java.lang.module=ALL-UNNAMED + --add-opens java.base/java.net=ALL-UNNAMED + --add-opens java.base/jdk.internal.loader=ALL-UNNAMED + --add-opens java.base/jdk.internal.ref=ALL-UNNAMED + --add-opens java.base/jdk.internal.reflect=ALL-UNNAMED + --add-opens java.base/jdk.internal.math=ALL-UNNAMED + --add-opens java.base/jdk.internal.module=ALL-UNNAMED + --add-opens java.base/jdk.internal.util.jar=ALL-UNNAMED + --add-opens jdk.management/com.sun.management.internal=ALL-UNNAMED + --add-opens jdk.management/com.sun.management.internal=ALL-UNNAMED + + --add-opens java.base/sun.nio.ch=ALL-UNNAMED + --add-opens java.base/java.io=ALL-UNNAMED + --add-opens java.base/java.nio=ALL-UNNAMED + --add-opens java.base/java.util.concurrent=ALL-UNNAMED + --add-opens java.base/java.util=ALL-UNNAMED + --add-opens java.base/java.util.concurrent.atomic=ALL-UNNAMED + --add-opens java.base/java.lang=ALL-UNNAMED + --add-opens java.base/java.math=ALL-UNNAMED + --add-opens java.base/java.lang.reflect=ALL-UNNAMED + + + + + - + - + @@ -292,7 +340,7 @@ windowtitle="${ant.project.name} API" classpathref="cassandra.classpath" bottom="Copyright &copy; 2009- The Apache Software Foundation" useexternalfile="yes" encoding="UTF-8" failonerror="false" - maxmemory="256m" additionalparam="${jdk11-javadoc-exports}"> + maxmemory="256m" additionalparam="${jdk11plus-javadoc-exports}"> @@ -431,6 +479,7 @@ + @@ -451,7 +500,7 @@ - + @@ -1088,9 +1137,11 @@ + - + + @@ -1752,6 +1803,7 @@