Java 17 (OpenJDK 17) como JVM por defecto
Seguimos con novedades de la versión 5.0.0-Renegade, y hoy queremos hacer hincapié en que hemos migrado y certificado Onesait Platform para utilizar por defecto la última versión LTS de Java, la 17, como JVM para todos los módulos de la Plataforma.
Con esto se garantiza -si algún proyecto llegase a necesitarlo- el soporte a largo plazo de la JVM mediante Oracle Java SE según el siguiente calendario de lanzamientos:
Esto va a permitir a los desarrolladores utilizar las ultimas novedades de Java, así como cualquier librería de terceros sin compatibilidad para Java 8.
¿Cuál ha sido el proceso de migración?
El proceso de migración a Java 17 para un proyecto como Onesait Platform ha pasado por los siguientes pasos:
A nivel de código fuente
Al tratarse de un proyecto Maven con un pom padre que centraliza toda la configuración de la JVM, ha bastado con modificar la versión de Java a utilizar.
<java.version>17</java.version>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
Recompilado y tests
Hemos recompilado y pasado todos los test de la Plataforma utilizando OpenJDK-17, resolviendo cualquier problema. En nuestro caso, dicha resolución fue bastante sencilla y se resolvió subiendo de versión alguna librería de terceros y tocando alguna línea de código.
Contenerización
Hemos llevado a cabo una contenerización de todos los módulos de la Plataforma para que utilicen OpenJDK-17-JRE en vez de OpenJDK-1.8. En este caso, la Plataforma dispone de una imagen base para todos sus módulos, de manera que todos tengan una configuración de sistema operativo y software unificada, siendo la JRE parte de esa configuración. De este modo cambiar de JVM a nivel global se hace desde el Dockerfile de la imagen base, construyendo dicha imagen y actualizándola en el registro.
FROM alpine:3.15
RUN apk --update add openjdk17-jre-headless
Otras tareas
- Hemos instalado OpenJDK-17 en nuestros sistemas CI/CD (Jenkins) para construir la Plataforma.
- Hemos realizado un despliegue de la Plataforma y ejecutado una batería completa de pruebas para certificar la Plataforma.
Imagen de cabecera: Johny vino en Unsplash