Sakai 25 upgraded to JDK 17

This message is from Earle Nietzel – the Sakai Community Branch Manager:

The JDK 17 upgrade is upon us and here are some notes to help everyone upgrade.

  • Upgrade JDK to version 17 (sdkman makes this simple)
    • sdk install java 17.0.13-tem (install Temurin jdk 17)
    • sdk use java 17.0.13-tem (switches jdk in the current shell)
  • Follow traditional build and deploy of sakai src to tomcat
    • mvn(d) clean install sakai:deploy-exploded
    • use mvnd for parallel builds
      • sdk install mvnd
  • Update java options for running tomcat
    • use the following jdk options when starting tomcat (setenv.sh)
      •     JAVA_OPTS=”$JAVA_OPTS \
                –add-opens=java.base/jdk.internal.access=ALL-UNNAMED \
                –add-opens=java.base/jdk.internal.misc=ALL-UNNAMED \
                –add-opens=java.base/sun.nio.ch=ALL-UNNAMED \
                –add-opens=java.base/sun.util.calendar=ALL-UNNAMED \
                –add-opens=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED \
                –add-opens=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED \
                –add-opens=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED \
                –add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED \
                –add-opens=java.base/java.io=ALL-UNNAMED \
                –add-opens=java.base/java.nio=ALL-UNNAMED \
                –add-opens=java.base/java.net=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.locks=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.lang.invoke=ALL-UNNAMED \
                –add-opens=java.base/java.math=ALL-UNNAMED \
                –add-opens=java.sql/java.sql=ALL-UNNAMED \
                –add-opens=java.base/java.lang.reflect=ALL-UNNAMED \
                –add-opens=java.base/java.time=ALL-UNNAMED \
                –add-opens=java.base/java.text=ALL-UNNAMED \
                –add-opens=java.management/sun.management=ALL-UNNAMED \
                –add-opens=java.desktop/java.awt.font=ALL-UNNAMED \
                –add-opens=java.desktop/javax.swing.tree=ALL-UNNAMED”
      • see https://raw.githubusercontent.com/sakaiproject/nightly-config/refs/heads/master/setenv.sh
    • adjust catalina.properties adding “serializer.jar” to list jars that should NOT be scanned

Everything else is the same

At this time we can also begin allowing jdk 17 syntax into the repo, but I would advise that if you know something is to be backported to 23 that you use jdk 11 syntax.

-earle