Java 17 (OpenJDK 17) as default JVM
We continue with news of version 5.0.0-Renegade, and today we want to emphasize that we have migrated and certified Onesait Platform to use the latest LTS version of Java by default, 17, as the JVM for all Platform modules.
With this, long-term support of the JVM through Oracle Java SE (if any project needs it) is guaranteed according to the following release schedule:
This will allow developers to use the latest Java features, as well as any third-party libraries that do not support Java 8.
What has been the migration process?
The migration process to Java 17 for a project like Onesait Platform has gone through the following steps:
At the source code level
Being a Maven project with a parent pom that centralizes all the JVM configuration, it was enough to modify the version of Java to be used.
<java.version>17</java.version>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
Recompiling and testing
We have recompiled and passed all the Platform tests using OpenJDK-17, solving any problems. In our case, this resolution was quite simple and was solved by uploading a third-party library version and touching a few lines of code
Containerization
We have carried out a containerization of all the modules of the Platform so that they use OpenJDK-17-JRE instead of OpenJDK-1.8. In this case, the Platform has a base image for all its modules, so that they all have a unified operating system and software configuration, the JRE being part of that configuration. In this way, changing the JVM at a global level is done from the Dockerfile of the base image, building said image and updating it in the registry.
FROM alpine:3.15
RUN apk --update add openjdk17-jre-headless
Other tasks
- We have installed OpenJDK-17 on our CI/CD systems (Jenkins) to build the Platform.
- We have carried out a deployment of the Platform and executed a complete battery of tests to certify the Platform.
Header image: Johny vino at Unsplash.