Why is it necessary to update the Java version?
Java 17 has been released in September 2021, three years after Java 11. Two years later, in September 2023, the active support provided by Oracle is going to end. Additionally, support for Spring Boot 2.x will end in November 2023 and Spring Boot 3 requires Java 17.
What is the recommended Java version for FirstSpirit?
Starting with FirstSpirit 2023.1, the recommended Java version is Java 17.
Do we have to compile our modules with Java 17?
Java 17 is backwards-compatible with older Java versions, so existing modules will continue to work regardless of the compiler version used to create the module.
Later this year, FirstSpirit artifacts like the isolated-runtime jar will require Java 17 to compile when used as a dependency in your project.
Is it safe to use the new bytecode version now?
The new bytecode version of Java 17 is 61.0 and supports new language features like records and text blocks. To use those, it is necessary to compile your module with Java 17 and set the bytecode version accordingly. A FirstSpirit server running with Java 17 will be able to load those modules.
If your build pipeline supports compilation with the new bytecode version depends on the responsibility for the pipeline: On-premises customers are free to modify their pipeline on their own terms while Cloud customers rely on the build infrastructure provided by Crownpeak. Java 17 support for the latter will be available in the next months.
Which steps are required to update the Java version of a FirstSpirit server?
- Ensure that the FirstSpirit version is at least 2023.1 and the backend is up to date.
- Install the latest version of Java 17
- Shutdown the FirstSpirit server
- Point wrapper.java.command to the correct location
- Start the FirstSpirit server
Wrapper configuration files shipped with FirstSpirit will detect the Java version in use and apply the correct JVM parameters automatically.
Please note that it is also recommended to use the new Java version for your application server (e.g., Tomcat).