Le tour d'horizon dans l'écosystème Java de cette semaine du 14 février 2022 présente des nouvelles d'OpenJDK, du JDK 18, du JDK 19, du projet Loom, des versions ponctuelles sur les projets Spring, Payara Platform, Open Liberty 22.0.0.2 et 22.0.0.3-beta, Micronaut 3.3.3, GraalVM Native Build Tools 0.9.10, JReleaser 1.0.0-M2, Piranha 22.2.0, JobRunr 4.0.9, Micrometer Metrics 2.0.0-M2, Micrometer Tracing 1.0.0-M2, JDKMon 17.0.22 et Failsafe 3.2.2.
OpenJDK
Conformément au calendrier de publication du JDK 18, Mark Reinhold, architecte en chef, Java Platform Group chez Oracle, a déclaré officiellement que le JDK 18 est entré dans sa phase initiale de release candidate. Les bugs critiques, tels que les régressions ou les problèmes de fonctionnalité graves, peuvent être résolus, mais doivent être approuvés via le processus Fix-Request.
La JEP Draft 8281710, TLS Certificate Compression, propose d'améliorer la sécurité et les performances de TLS et QUIC et réduire la latence grâce à la prise en charge de la compression standard des certificats TLS.
JDK 18
Le Build 36 du JDK 18 early access builds a été mis à disposition la semaine dernière, avec des mises à jour du Build 35 qui incluent des correctifs pour divers problèmes. Plus de détails peuvent être trouvés dans les release notes.
JDK 19
Le Build 10 du JDK 19 early-access builds a également été mis à disposition la semaine dernière, avec des mises à jour du Build 9 qui incluent des correctifs pour divers problèmes. Plus de détails peuvent être trouvés dans les release notes.
Pour les JDK 18 et JDK 19, les développeurs sont encouragés à signaler les bugs via la Java Bug Database.
Projet Loom
Le build 19-loom+4-115 du projet Loom early-access builds a été mis à disposition de la communauté Java et est basé sur le Build 9 des early-access builds du JDK 19. Cette dernière version propose une migration de la JEP Draft 8277129, Structured Concurrency et de la JEP Draft 8263012, Scope Locals, dans un module incubateur.
Spring Framework
Après une semaine précédente très calme, l'équipe était occupée la semaine dernière à fournir un certain nombre de releases ponctuelles et milestones sur certains de leurs projets.
Spring Framework 5.3.16 a été publié avec 33 corrections de bugs et améliorations. Les nouvelles fonctionnalités incluent : une méthode fabrique pratique pour les classes ManagedList
, ManagedSet
et ManagedMap
; la prise en charge de la comparaison JSON stricte dans WebTestClient
; et une implémentation de l'interface CacheErrorHandler
qui journalise les exceptions au lieu de les relancer. Cette version rend également dépréciée la classe SocketUtils
et la méthode execute(Runnable,long)
définie dans l'interface AsyncTaskExecutor
.
Spring Cloud 2021.0.1, une version de maintenance, propose des correctifs pour les sous-projets : Config, Sleuth, Contract, Gateway et OpenFeign. Plus de détails peuvent être trouvés dans les release notes.
L'équipe Spring Data a fourni des versions ponctuelles et milestones pour les trains de versions 2021.1 et 2021.0 et 2021.2.0-M3. Les deux premiers sont principalement des corrections de bugs et peuvent être utilisés avec les prochaines versions ponctuelles de Spring Boot 2.6.4 et 2.5.10, respectivement. La release milestone, dont le nom de code est Raj, propose des mises à niveau de dépendances. Plus de détails peuvent être trouvés dans les release notes de la version 2021.2.0-M3.
Spring LDAP 2.3.6.RELEASE et 2.4.0-M2 ont été mises à disposition la semaine dernière. La version 2.3.6.RELEASE corrige un échec de lecture du schéma spring-repository.xsd
et la version 2.4.0-M2 propose des mises à niveau de dépendances et inclut : une mise à niveau de Gradle 3.1 à 6.9 ; une migration des exemples LDAP vers UnboundID LDAP SDK for Java pour prendre en charge JDK 9+ ; et le problème spring-repository.xsd
mentionné ci-dessus.
Payara
Une semaine après l'annonce de sa feuille de route 2022, Payara a publié son édition de février 2022 de Payara Platform. L'édition Payara Platform Community 5.2022.1 comprend trois améliorations et 10 corrections de bugs. L'édition Payara Platform Enterprise 5.36.0 comprend trois améliorations et quatre corrections de bugs. Les deux versions comportent un correctif dans le Payara TrustStore pour l'outil CLI Asadmin dans lequel il y avait une corruption dans le répertoire .gfclient
. Il y a également eu une amélioration du temps de déploiement avec l'édition communautaire qui limite le temps d'analyse des annotations CDI.
La seconde version alpha de Payara Platform 6 a également été mise à disposition, avec prise en charge de MicroProfile 5.0 et Jakarta EE 9.1.
Open Liberty
IBM a promu Open Liberty 22.0.0.2 depuis sa version bêta pour apporter des améliorations de configuration aux propriétés de persistance JPA pour les contextes gérés par le conteneur. Plus de détails peuvent être trouvés dans la liste des problèmes.
Open Liberty 22.0.0.3-beta a également été publiée avec la prise en charge de la spécification Jakarta Concurrency 3.0 pour Jakarta EE 10.
Micronaut
La Fondation Micronaut a publié Micronaut 3.3.3 qui corrige un problème avec la construction d'images native avec Netty.
GraalVM Native Build Tools
En route vers la version 1.0, Oracle Labs a publié la version 0.9.10 de Native Build Tools, un projet GraalVM composé de plugins pour l'interopérabilité avec GraalVM Native Image. Cette dernière version fournit : une option skipNativeTests
dans le plug-in Maven qui désactive uniquement les tests natifs ; une mise à niveau vers Gradle 7.4 ; un correctif pour une race condition si les tests sont exécutés en parallèle ; et la prise en charge d'un fichier @arg
pour transmettre des arguments à l'outil native-image
si la longueur du classpath dépasse ce qui est pris en charge sous Windows. De plus amples détails peuvent être trouvés dans les release notes.
JReleaser
En route vers la version 1.0.0, une seconde milestone et une mise à jour early-access releases de JReleaser ont été mises à disposition la semaine dernière avec : un template simplifié pour l'image native et une propriété packageVersion
dans Chocolatey ; le répertoire des ressources doit être spécifique à la plate-forme dans jpackage ; et la désactivation des vérifications SSL dans le client Feign.
Piranha
Piranha 22.2.0 a été publiée. Surnommée l'édition "Light at the end of the tunnel", cette version inclut : la prise en charge de la spécification MicroProfile JWT, y compris le passage du JWT TCK ; et des améliorations du code d'autorisation. De plus amples détails peuvent être trouvés dans leur documentation et dans le suivi des problèmes.
JobRunr
JobRunr, un utilitaire pour effectuer des traitements en arrière-plan en Java, a publié sa version 4.0.9 la semaine dernière pour inclure : un correctif pour une incohérence dans l'analyse des expressions CRON pour les tâches planifiées annuellement ; et une méthode statique pour créer un AmazonDocumentDBStorageProvider
comme paramètre par défaut.
Micrometer
En route vers Micrometer Metrics 2.0.0, la seconde version milestone propose des mises à niveau de dépendances et le déplacement d'une partie des classes existantes dans micrometer-core
à un nouveau module micrometer-api
pour que micrometer-core
ne contienne que l'instrumentation.
De même, la seconde release milstone de Micrometer Tracing 1.0.0 a été mise à disposition avec : un SampleTestRunner
amélioré pour les tests d'intégration ; les extensions AssertJ pour affirmer une FinishedSpan
et un Collection<FinishedSpan>
; une mise à jour de DocumentedSpan
; et de meilleurs mécanismes de tests unitaires pour Tracer
. De plus amples détails peuvent être trouvés dans leur documentation.
JDKMon
La dernière version de JDKMon, un nouvel outil qui surveille et met à jour les JDK installés, a été mis à la disposition de la communauté Java. Créée par Gerrit Grunwald, ingénieur principal chez Azul, la version 17.0.22 est livrée avec des cosmétiques visuels sur l'interface utilisateur.
Failsafe
Failsafe, une bibliothèque légère et sans dépendance pour la gestion des défaillances dans Java 8+, a publié la version 3.2.2 comprenant : de nouveaux modules prenant en charge OkHttp
et Retrofit
; une nouvelle interface Call
pour prendre en charge la classe FailsafeExecutor
pour annuler les appels synchrones ; et une méthode de callback onCancel()
de l'interface ExecutionContext
pour propager les annulations.