Resumen de noticias de Java: subprocesos virtuales, JReleaser 1.0, Project Loom, declaraciones de proveedores en Spring4Shell

El resumen de Java de esta semana para el 4 de abril de 2022 presenta noticias de OpenJDK, JEP 425, JDK 19, Project Loom Build 19-loom+5-429, la utilidad Jakarta EE Starter, hitos de Spring y lanzamientos puntuales, declaraciones de Payara y JetBrains en Spring4Shell, JReleaser 1.0, Helidon 2.5.0, JHipster 7.8.1, Hibernate Search 6.1.4, Kotlin 1.6.20 y JDKMon 17.0.24.

OpenJDK

JEP 425, Subprocesos virtuales (versión preliminar) , se promovió de su JEP Draft 8277131 al estado de Candidato . Este JEP presenta subprocesos virtuales, subprocesos livianos que reducen drásticamente el esfuerzo de escribir, mantener y observar aplicaciones simultáneas de alto rendimiento en la plataforma Java.

JEP Draft 8284289, Forma mejorada de obtener seguimientos de llamadas de forma asíncrona para la creación de perfiles , una función de tipo JEP, define una API eficiente para obtener seguimientos de llamadas asíncronos para la creación de perfiles de un controlador de señales con información sobre Java y tramas nativas.

JEP Draft 8284453, Opcionalmente Grabar contexto de subproceso en JFR , una función de tipo JEP, propone agregar la capacidad de adjuntar contexto definido por el usuario de eventos relevantes al seguimiento de pila JFR estándar existente, el ID de subproceso y los eventos de tiempo.

JDK 19

Mark Reinhold , arquitecto jefe de Java Platform Group en Oracle, ha propuesto el siguiente calendario para el lanzamiento de JDK 19:

  • 9 de junio de 2022: fase uno de reducción
  • 21 de julio de 2022: fase dos de rampa descendente
  • 11 de agosto de 2022: versión candidata inicial
  • 25 de agosto de 2022: versión candidata final
  • 20 de septiembre de 2022: disponibilidad general

Esta propuesta permanecerá en revisión para comentarios hasta el 13 de abril de 2022 antes de que se finalice. En este momento, solo una característica nueva, JEP 422: Puerto Linux/RISC-V , ha sido el objetivo de JDK 19.

La compilación 17 de las compilaciones de acceso temprano de JDK 19 estuvo disponible la semana pasada, con actualizaciones de la compilación 16 que incluyen soluciones a varios problemas . Se pueden encontrar más detalles en las notas de la versión .

Para JDK 19 , se alienta a los desarrolladores a informar errores a través de la base de datos de errores de Java .

Proyecto Telar

La compilación 19-loom+5-429 de las compilaciones de acceso anticipado de Project Loom se puso a disposición de la comunidad de Java y se basa en la compilación 16 de las compilaciones de acceso anticipado de JDK 19. Esta última versión presenta la actualización de la 

<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ForkJoinPool.html">ForkJoinPool</a>
clase que mejora el rendimiento en casos como el paso de mensajes.

Inicio de Yakarta EE

Los embajadores de Jakarta EE han presentado la versión 1.0 de la utilidad Jakarta Starter , un arquetipo de Maven que genera código de muestra para crear proyectos de microservicios de Jakarta EE simples. Jakarta Starter ha sido probado con JDK 8, JDK 11 y JDK 17 y requiere Maven 3+.

marco de primavera

En el camino hacia Spring Cloud 2022.0.0, cuyo nombre en código es Kilburn, se ha puesto a disposición el segundo lanzamiento histórico que presenta una serie de mejoras, correcciones de errores y actualizaciones de dependencias para sus subproyectos: Spring Cloud Stream , Spring Cloud Config , Spring Cloud Kubernetes , Spring Cloud Contrato , Spring Cloud Gateway , Spring Cloud Function y Spring Cloud Commons . Hay, sin embargo, cambios de última hora. Spring Cloud 2022.0.0-M2 es compatible con Spring Boot 3.0.0-M2. Se pueden encontrar más detalles sobre esta versión en las notas de la versión .

Se lanzó Spring Cloud Data Flow 2.9.4 que soluciona las vulnerabilidades CVE-2022-22965 , también conocido como Spring4Shell y CVE-2021-29425 . También hay una actualización de dependencia a Spring Boot 2.5.12. Se pueden encontrar más detalles sobre esta versión en las notas de la versión .

Declaraciones de proveedores sobre la vulnerabilidad de Spring4Shell

Declaración de Payara en la plataforma de Payara:

Es poco probable que la vulnerabilidad de ejecución remota de código (RCE) detectada en Spring Java Framework en marzo de 2022 (etiquetada como CVE-2022-22965) afecte a quienes utilizan Payara Platform.

Sin embargo, los usuarios que implementan aplicaciones empaquetadas Spring Framework WAR en Payara Server se ven afectados por esta vulnerabilidad, ya que Payara Server comparte fragmentos de código en su implementación de Servlet, Catalina, que originalmente se ramificó de Apache Tomcat.

Para mitigar el riesgo de verse afectado por esta vulnerabilidad, hemos implementado una solución urgente que deshabilita efectivamente el código afectado en los módulos de Catalina correspondientes. Esta revisión se incluirá en los próximos lanzamientos de Payara Community (5.2022.2) y Payara Enterprise (5.38)

Declaración de JetBrains sobre los productos de JetBrains:

Junto con los equipos de productos, realizamos una auditoría de las aplicaciones web de JetBrains, incluidos los productos: YouTrack , Hub , TeamCity , Space , Datalore y servicios: sitio web de JetBrains y cuenta de JetBrains .

Ninguna de las aplicaciones enumeradas anteriormente usa versiones vulnerables de Spring o no cumple con los criterios de explotación conocidos y, por lo tanto, no se ve afectada por los problemas de seguridad descubiertos. Consulte las siguientes discusiones técnicas sobre TeamCity , Hub y YouTrack .

JReleaser

En el primer aniversario del lanzamiento de la versión inicial 0.1.0 de JReleaser , se puso a disposición la versión anticipada 1.0 que se envía con muchas características nuevas, como: agregar una función de formato basada en la URL de descarga del lanzador; permitir plantillas con nombre para las propiedades 

appName
appVersion
; una opción para omitir archivos de plantilla; y agregue una 
packageVersion
propiedad para resolver un problema de esquema de versión con Chocolatey.

Se pueden encontrar más detalles sobre este lanzamiento en el registro de cambios y las preguntas y respuestas con Andrés Almiray , creador de JReleaser, se pueden encontrar en esta noticia de InfoQ .

Helidón

Oracle ha lanzado Helidon 2.5.0 que se envía con: compatibilidad mejorada con Oracle Cloud Infrastructure (OCI) Java SDK; implementación mejorada de JAX-RS para admitir la 

@Path
anotación; y una serie de correcciones de errores y actualizaciones de dependencia. Se pueden encontrar más detalles sobre esta versión en las notas de la versión .

JHipster

Una semana después del lanzamiento de la versión 7.8.0 , se lanzó la versión 7.8.1 de JHipster para incluir: muchas actualizaciones de la biblioteca; y una solución para abordar CVE-2022-24815 , Inyección de SQL al crear una aplicación con backend de SQL reactivo. Se pueden encontrar más detalles sobre esta versión en el registro de cambios .

Hibernar

Se ha lanzado Hibernate Search 6.1.4.Final que incluye: una actualización de los 

-orm6
artefactos para Hibernate ORM 6.0.0.Final e Hibernate Commons Annotations 6.0.0.Final; una actualización a la última versión de las dependencias de Jakarta para los artefactos 
-orm6
y ; 
-jakarta
usar una instancia de la 
<a href="https://docs.jboss.org/hibernate/stable/search/api/org/hibernate/search/engine/search/sort/SearchSort.html">SearchSort</a>
interfaz en consultas múltiples con el backend de Lucene que elimina los efectos secundarios; y una solución en el backend de Elasticsearch en la que se ordena un campo dinámico que nunca se ha indexado.

kotlin

JetBrains ha lanzado Kotlin 1.6.20 que incluye: soporte para definir declaraciones dependientes del contexto en Kotlin/JVM ; interoperabilidad mejorada con clases e interfaces Java genéricas; tiempos de compilación más rápidos como resultado de la compilación paralela de un solo módulo en el backend JVM IR; una experiencia de desarrollo optimizada facilitada por la compilación incremental en Kotlin/JS IR; mejoras con el rendimiento de Kotlin/Native ; y código compartido mejorado debido a la estructura jerárquica de los proyectos multiplataforma. Se pueden encontrar más detalles sobre este lanzamiento en esta noticia de InfoQ .

JDKMon

La última versión de JDKMon , una nueva herramienta que monitorea y actualiza los JDK instalados, se ha puesto a disposición de la comunidad de Java. Creada por Gerrit Grunwald , ingeniero principal de Azul, la versión 17.0.24 incluye: arreglos relacionados con la versión Linux de JDKMon; y una sustitución del indicador por CVE. Se detectarán las compilaciones de Ubuntu de las compilaciones de OpenJDK, pero no hay soporte de actualización en la API de Disco .