Le tour d'horizon dans l'écosystème Java de cette semaine du 18 avril 2022 présente des nouvelles d'OpenJDK, la JEP 426, le Critical Patch Update d'Oracle pour avril 2022, le JDK 19, les mises à jour de Liberica JDK et du Native Image Kit, plusieurs versions de Spring, la version d'avril 2022 de Payara Platform, Quarkus 2.8.1.Final, Apache Groovy 4.0.2, Apache TomEE 8.0.11, JobRunr 5.0.1 et une mise à jour de JReleaser 1.0.
OpenJDK
Dans un délai d'une semaine après avoir été promue du statut Draft à Candidate, la JEP 426, Vector API (Fourth Incubator), a été promue de Candidate à Proposed to Target pour le JDK 19. Cette JEP, sous les auspices du Projet Panama, intègre des améliorations en réponse aux commentaires des trois cycles d'incubation précédents : JEP 417, Vector API (Third Incubator) (livrée dans JDK 18), JEP 414, Vector API (Second Incubator) (livrée dans JDK 17), et JEP 338, Vector API (Incubator), livrée sous la forme d'un module incubateur dans le JDK 16. La JEP 426 propose d'améliorer l'API Vector pour charger et stocker des vecteurs vers et depuis un MemorySegment
tel que défini par la JEP 424, API Foreign Function & Memory (Preview). L'examen devrait se terminer le 28 avril 2022.
Dans le cadre de la publication par Oracle des Critical Patch Update d'avril 2022, JDK 18.0.1, 17.0.3, 11.0.15, 8u331 et 7u341, ont été mis à disposition. Plus de détails peuvent être trouvés dans les release notes pour JDK 18, JDK 17, JDK 11, JDK 8 et JDK 7.
JDK 19
Le Build 19 du JDK 19 early-access builds a été mis à disposition la semaine dernière, avec des mises à jour du Build 18 qui incluent des correctifs pour divers problèmes. Plus de détails peuvent être trouvés dans les release notes.
Pour le JDK 19, les développeurs sont encouragés à signaler les bugs via la Java Bug Database.
Liberica JDK et Native Image Kit
Parallèlement à la publication du Critical Patch Update pour avril 2022, BellSoft a publié les versions 18.0.1, 17.0.3, 11.0.15 et 8u332 de Liberica JDK, leur distribution downstream d'OpenJDK.
BellSoft a également publié un nouveau Liberica Native Image Kit (NIK) version 22.1.0 et une version mise à jour 21.3.2. Les nouvelles fonctionnalités incluent : une analyse de heap concurrente et incrémentielle pendant l'analyse points-to qui fournit des temps de création d'images natives plus courts ; la prise en charge des événements GarbageCollection
, GCPhasePause
, SafepointBegin
, SafepointEnd
et ExecutionSample
de JFR ; et une fonctionnalité spéciale qui recherche les bibliothèques log4j vulnérables dans les images natives qui génèrent un avertissement. Cette version rend également obsolète l'option --allow-incomplete-classpath
qui lie une image au moment de l'exécution puisqu'il s'agit désormais de l'option par défaut. Les développeurs sont encouragés à utiliser la nouvelle option --link-at-build-time
pour lier une image au moment de la construction.
Spring Framework
Ce fut une semaine chargée chez Spring, car l'équipe a fourni plusieurs versions candidates et ponctuelles sur certains de leurs projets.
En route vers Spring Boot 2.7.0, la première version candidate a été mise à disposition avec des corrections de bugs, des améliorations de la documentation et des mises à niveau des dépendances. Les nouvelles fonctionnalités incluent la configuration automatique pour : Kafka Retry Topics et la prise en charge de RSocket dans GraphQL. Plus de détails sur cette version peuvent être trouvés dans les release notes.
Spring Boot 2.6.7 a été publié qui contient 38 corrections de bugs, améliorations de la documentation et mises à niveau des dépendances qui incluent : Spring Framework 5.3.19, Spring Data 2021.1.4, Spring Session 2021.1.3, Spring Security 5.6.3, Micrometer 1.8.5, Reactor 2020.0.18 et Apache Tomcat 9.0.62. De plus amples détails sur cette version peuvent être trouvés dans les release notes.
Spring Boot 2.5.13 a été publié qui contient 31 corrections de bugs, améliorations de la documentation et mises à niveau des dépendances qui incluent : Spring Framework 5.3.19, Spring Data 2021.0.11, Spring Session 2021.0.6, Spring Security 5.5.6, Micrometer 1.7.11, Reactor 2020.0.18 et Apache Tomcat 9.0.62.
Ces deux versions de Spring Boot corrigent la CVE-2022-22968, Spring Framework Data Binding Rules Vulnerability, que VMware a annoncée la semaine dernière. Plus de détails sur cette version peuvent être trouvés dans les release notes.
VMware a annoncé la CVE-2022-22969, Denial-of-Service (DoS) in spring-security-oauth2, dans laquelle les versions de Spring Security OAuth antérieurs à 2.5.2 sont susceptibles d'être attaqués par déni de service via le lancement de la requête Authorization dans une application cliente OAuth 2.0. Spring Security OAuth 2.5.2 corrige cette CVE.
En route vers Spring for GraphQL 1.0, la première release candidate a été mise à disposition avec de nouvelles fonctionnalités telles que : la prise en charge du serveur et du client pour GraphQL via le protocole RSocket ; la prise en charge du type de média GraphQL sur HTTP (application/graphql+json
) en tant que type de média par défaut ; et un GraghQLSource Builder amélioré.
Les versions 2021.2.0-RC1, 2021.1.4 et 2021.0.11 de Spring Data ont été publiées avec des corrections de bugs et des mises à niveau de dépendance qui incluent : Spring Data Commons 2.7.0-RC1, 2.6.4, 2.5.11 ; Spring Data MongoDB 3.4.0-RC1, 3.3.4, 3.2.11 ; Spring Data JDBC 2.4.0-RC1, 2.3.4, 2.2.11 ; et Spring Data Redis 2.7.0-RC1, 2.6.4, 2.5.11.
De même, les versions 2021.2.0-RC1, 2021.1.3 et 2021.0.6 de Spring Session ont été publiées avec corrections de bugs et des mises à niveau des dépendances : Spring Session Core 2.7.0-RC1, 2.6.3, 2.5.6 ; Spring Session Data Redis 2.7.0-RC1, 2.6.3, 2.5.6 ; Session de printemps JDBC 2.7.0-RC1, 2.6.3, 2.5.6 ; Spring Session Hazelcast 2.7.0-RC1, 2.6.3, 2.5.6 ; Spring Session MongoDB 2.7.0-RC1, 2.6.3 ; et Spring Session for Apache Geode 2.7.0-RC1, 2.6.1, 2.5.6.
En route vers Spring Security 5.7.0, la première release candidate a été mise à disposition et contient des correctifs de bugs, des améliorations de la documentation et des mises à niveau des dépendances. Les nouvelles fonctionnalités incluent : une nouvelle classe SecurityContextHolderFilter
qui permet l'enregistrement explicite du SecurityContext
; l'ajout de la prise en charge du DSL pour les en-têtes Cross-Origins Policies ; autoriser la configuration de Proof Key for Code Exchange (PKCE) sur les clients confidentiels ; et la prise en charge de Login et Single Logout XML de SAML 2.0. Vous trouverez plus de détails sur cette version dans les release notes.
Les versions de Spring Security 5.6.3 et 5.5.6 ont été publiées avec des corrections de bugs et des mises à niveau de dépendance telles que : Spring Framework 5.3.19 ; Spring Data 2021.1.3 et 2021.0.10 ; Reactor Netty 1.0.18 ; et Reactor 2020.0.18.
Payara
Payara a publié son édition d'avril 2022 de Payara Platform. L'édition Community 5.2022.2 comprend 13 corrections de bugs, deux mises à niveau de composants, trois améliorations et trois correctifs de sécurité. L'édition Enterprise 5.38.0 comprend deux correctifs de bugs, une amélioration et quatre correctifs de sécurité. Les deux éditions partagent de nouvelles fonctionnalités, notamment : une nouvelle extension gRPC ; un correctif pour la vulnérabilité Spring4Shell dans les applications Spring Framework packagées comme WAR dans Payara Server ; et la possibilité d'utiliser Jakarta EE 9 et PrimeFaces avec Eclipse Transformer.
Payara a également annoncé que l'édition Payara 5 Community arrivera en fin de vie après la prochaine version en faveur de l'édition Payara 6 Community, qui sera alignée sur la prochaine version GA de Jakarta EE 10. Les développeurs seront encouragés à migrer à Payara 5 Enterprise s'ils décident de rester sur Payara Platform 5.
Quarkus
Une semaine après la sortie de Quarkus 2.8.0, Red Hat a fourni une version de maintenance avec Quarkus 2.8.1.Final qui propose des corrections de bugs et des améliorations dans la documentation. Plus de détails sur cette version peuvent être trouvés dans la changelog.
Apache Groovy
L'Apache Software Foundation (ASF) a fourni des versions ponctuelles d'Apache Groovy et Apache TomEE.
Groovy 4.0.2 a été publié et est livré avec : une prise en charge préliminaire du JDK 19 ; une métadonnée Gradle améliorée qui résout un problème avec la propriété groovy-all
; une phase initiale d'élimination des fichiers de politique de sécurité liés à la JEP-411, Deprecate the Security Manager for Removal ; et une recommandation pour les développeurs utilisant les JDK 18 ou JDK 19 pour définir la variable d'environnement JAVA_OPTS
avec -Djava.security.manager=allow
tout en utilisant l'outil groovysh
. Plus de détails peuvent être trouvés dans les release notes et dans cette actualité plus détaillée sur Groovy 4.0, sortie fin janvier 2022.
La version 8.0.11 de TomEE, le serveur d'applications certifié Jakarta EE 9.1 Web Profile, a également été publiée avec des corrections de bugs, des mises à niveau de dépendance et des améliorations telles que : remplacer Google Analytics par ASF Matomo ; une solution à l'échec des actions GitHub pour les builds PullRequest en raison de la génération automatique actuelle d'une nomenclature ; et une mise à jour du fichier tomee.xml
afin qu'il fasse référence à l'emplacement correct de la documentation après la mise à jour du site Web. De plus amples détails peuvent être trouvés dans les release notes.
JobRunr
Moins d'un mois après la sortie de JobRunr 5.0, la version 5.0.1 a mise à disposition pour inclure des corrections de bugs et une amélioration où les journaux du tableau de bord après le succès du job seront conservés. C'était en réponse au changement radical dans lequel les métadonnées étaient effacées après le succès d'un job. Plus de détails peuvent être trouvés dans les release notes.
JReleaser
Une petite mise à jour de JReleaser a été publiée pour inclure la dépréciation du gestionnaire de packages GoFish en raison de la fermeture du référentiel par le propriétaire du projet pour les contributions.