Le tour d'horizon dans l'écosystème Java de cette semaine du 11 avril 2022 présente des nouvelles d'OpenJDK, la JEP 426, le JDK 19, les mises à jour de Jakarta EE 10, des versions de Spring Framework et CVE-2022-22968, Quarkus 2.8.0, Open Liberty 22.0.0.4 et 22.0.0.5-beta, Micronaut 3.4.2, WildFly 26.1, Eclipse GlassFish 7.0-M4, Piranha 22.4.0, Apache Camel Quarkus 2.8.0, IntelliJ IDEA 2022.1, Ktor 2.0 et la conférence Devnexus 2022.
OpenJDK
La JEP 426, Vector API (Fourth Incubator), a été promue de son statut JEP Draft 8280173 à Candidate. 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 : la JEP 417, Vector API ( Third Incubator) (livrée dans le JDK 18), la JEP 414, Vector API (Second Incubator) (livrée dans le JDK 17), et la 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).
JDK 19
Le Build 18 du JDK 19 early-access builds a été mis à disposition la semaine dernière, avec des mises à jour du Build 17 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 le Java Bug Database.
Jakarta EE 10
En route vers Jakarta EE 10, Ivar Grimstad, Jakarta EE developer advocate à la Fondation Eclipse, a annoncé dans son blog Hashtag Jakarta EE hebdomadaire que les revues de version pour quatre spécifications supplémentaires se sont terminées la semaine dernière. Cela signifie qu'environ la moitié des spécifications définies pour être incluses dans le Platform Profile sont prêtes pour Jakarta EE 10 :
- Jakarta Persistence 3.1
- Jakarta RESTful Web Services 3.1
- Jakarta XML Binding 4.0
- Jakarta XML Web Services 4.0
- Jakarta Activation 2.1
- Jakarta Annotations 2.1
- Jakarta Batch 2.1
- Jakarta Interceptors 2.1
- Jakarta JSON Binding 3.0
- Jakarta JSON Processing 2.1
- Jakarta Mail 2.1
- Jakarta SOAP with Attachments 3.0
L'examen de la version de Jakarta Context and Dependency Injection 4.0 est toujours en cours et devrait être terminé d'ici le 20 avril 2022. Pour les spécifications restantes, actuellement en attente de demandes de certification de compatibilité et à différentes étapes des tests TCK, les revues de version devraient être terminées dans les trois prochaines semaines pour garantir que Jakarta EE 10 est livré d'ici la fin mai 2022.
Spring Framework
VMware a annoncé la CVE-2022-22968, Spring Framework Data Binding Rules Vulnerability, suite à la CVE-2022-22965, Spring Framework RCE via Data Binding on JDK 9+, après avoir découvert que la propriété de configuration disallowedFields
sur la classe WebDataBinder
n'était pas protégée. Les versions 2.6.7 et 2.5.13 de Spring Boot, dont la sortie est prévue le 21 avril 2022, contiendront également ce correctif, mais les développeurs sont encouragés à mettre à niveau manuellement la dépendance Spring Framework dans leurs applications Spring Boot.
Spring Framework 5.3.19 et 5.2.21 ont été publiées contenant 12 corrections de bugs et améliorations et cinq corrections de bugs et améliorations, respectivement. Ces deux versions corrigent également la vulnérabilité CVE-2022-22968 décrite ci-dessus.
Quarkus
Quarkus 2.8.0.Final a été publiée avec : RESTEasy Reactive comme couche REST par défaut ; GraalVM 22.0 comme version par défaut ; une nouvelle API QuarkusTransaction
; et les services de développement Elasticsearch qui peuvent démarrer automatiquement un conteneur Elasticsearch en modes dev
et test
. De plus, AssertJ a été supprimé de la nomenclature Quarkus en raison d'une compatibilité binaire non fiable. Les développeurs devront définir explicitement AssertJ 3.22.0 dans leurs applications. Vous trouverez plus de détails sur cette version dans la changelog.
InfoQ suivra avec une nouvelle plus détaillée.
Open Liberty
IBM a promu Open Liberty 22.0.0.4 depuis sa version bêta contenant : la prise en charge du JDK 18 ; la prise en charge des certificats client avec des chaînes encodées en URL ; introduire le Paketo Liberty Buildpack ; et de nombreuses corrections de bugs.
Open Liberty 22.0.0.5-beta a également été publié, avec : la prise en charge de MicroProfile GraphQL 2.0 ; et des caches de sécurité distribués tels que plusieurs serveurs Liberty peuvent partager des caches via JCache
.
Micronaut
La Fondation Micronaut a publié Micronaut 3.4.2 qui est livré avec des correctifs de bug, des améliorations de la documentation et des mises à niveau vers Micronaut AWS 3.2.3, Micronaut Email 1.2.1, Micronaut AOT 1.0.3, Micronaut Micrometer 4.2.1 et Netty 4.1.76. De plus amples détails sur cette version peuvent être trouvés dans la changelog.
WildFly
Trois semaines après la mise à disposition de WildFly 26.1 Beta1, Red Hat a publié WildFly 26.1 livré avec : la prise en charge des versions LTS, JDK 8, JDK 11 et JDK 17 ; la possibilité de spécifier un répertoire racine des sources de configuration avec MicroProfile Config ; un nouvel attribut address_queue_scan
à configurer la fréquence à laquelle les files d'attente marquées pour être supprimées sont effectivement supprimées ; un nouvel attribut execution-records-limit
pour limiter le nombre d'enregistrements récupérés via un JDBC Store; et la possibilité d'activer la configuration du répertoire du journal de validation de l'adaptateur de ressources. Plus de détails sur cette version peuvent être trouvés dans la documentation de WildFly 26.1.
Eclipse GlassFish
En route vers GlassFish 7.0, la quatrième version milestone a été mise à disposition par la Fondation Eclipse qui fournit : les spécifications Jakarta Servlet 6.0 et Jakarta Server Pages 3.1 passant leurs TCK respectifs ; et d'autres composants Jakarta EE 10 mis à jour. GlassFish 7.0.0-M4, considérée comme une version bêta, compile et s'exécute sur les JDK 11 à JDK 18. De plus amples détails sur cette version peuvent être trouvés dans les release notes.
Piranha
Piranha 22.4.0 a été publié. Surnommée l'édition "Ralentir le rythme" d'avril 2022, cette version inclut des mises à jour de leurs dépendances et des plugins. Plus de détails sur cette version peuvent être trouvés dans leur documentation et outil de suivi des problèmes.
Apache Camel Quarkus
En maintenant l'alignement avec Quarkus, Apache a publié Camel Quarkus 2.8.0 contenant Camel 3.16.0 et Quarkus 2.8.0.Final. Les nouvelles fonctionnalités incluent : une meilleure prise en charge de Windows ; les nouvelles extensions JVM azure-servicebus
et google-secret-manager
; la prise en charge native de l'extension mybatis
; l'abandon des extensions spark
, ahc
et ahc-ws
; la suppression des extensions ipfs
et weka
; et un client HTTP Azure basé sur Vert.x pour les extensions Azure. De plus amples détails sur cette version peuvent être trouvés dans la liste des problèmes résolus.
JetBrains
JetBrains a publié IntelliJ IDEA 2022.1 avec ; la prise en charge du JDK 18 ; un nouvel analyseur de dépendances pour la gestion des dépendances et la résolution des conflits ; la fenêtre de l'outil Notifications offre désormais une nouvelle façon de recevoir et de stocker les notifications de l'IDE ; un assistant New Project mis à jour pour un meilleur démarrage de nouveaux projets ; et l'amélioration des performances de l'IDE avec Kotlin. Plus de détails sur cette version peuvent être trouvés dans les release notes.
Après un an de préparation, Ktor 2.0 a aussi été publié par JetBrains pour fournir : la prise en charge de Kotlin 1.6.20 ; un moyen plus simple de créer des plugins avec une API d'extensions simplifiée ; la prise en charge de Kotlin/Native pour compléter la prise en charge existante de GraalVM ; de nouvelles API pour simplifier les requêtes HTTP en éliminant les méthodes post<T>
et get<T>
; et la prise en charge intégrée des retentatives. De plus amples détails sur cette version se trouvent dans la changelog.
InfoQ suivra avec des articles d'actualité plus détaillés sur ces deux produits JetBrains.
Conférence Devnexus
Après la conférence virtuelle en 2021, Devnexus 2022, organisée par l'Atlanta Java Users Group, a eu lieu la semaine dernière au Georgia World Congress Center à Atlanta, en Géorgie. La conférence, avec des ateliers, des présentations et le troisième JUG Leaders Summit, avec de nombreux speakers de la communauté Java.