Le tour d'horizon dans l'écosystème Java de cette semaine du 7 mars 2022 présente des nouvelles d'OpenJDK, du JDK 19, de Jakarta EE 10, des mises à jour des sous-projets Spring Cloud, d'Amazon Corretto fournissant une journalisation asynchrone et tamponnée pour OpenJDK 17, Quarkus 2.7.4.Final, Hibernate ORM 6.0.0.CR2, Apache Groovy 3.0.10 et 2.5.16, Apache Camel 3.14.2, JReleaser accès anticipé, JobRunr 4.0.10, JDKMon 17.0.23 et FailSafe 3.2.3.
OpenJDK
La JEP 422, Linux/RISC-V Port, a été promue de Candidate à Proposed to Target pour le JDK 19. Cette JEP propose de porter le JDK sur Linux/RISC-V, une architecture de jeu d'instructions RISC libre et open-source. L'interpréteur de template, les compilateurs C1 et C2 du JIT et tous les GC principaux actuels, y compris ZGC et Shenandoah, seront pris en charge. L'objectif principal de cette JEP est d'intégrer le portage dans le référentiel principal du JDK. L'examen devrait se terminer le 17 mars 2022.
JDK 18
Le JDK 18 reste dans sa phase release candidate avec la sortie GA prévue le 22 mars 2022. Les release notes incluent des liens vers des documents tels que la spécification complète de l'API et une spécification d'API annotée comparant les différences entre le JDK 17 (Build 35) et le JDK 18 (Build 37). InfoQ fera un suivi avec une nouvelle plus détaillée.
JDK 19
Le Build 13 du JDK 19 early-access builds ont été mises à disposition la semaine dernière, avec des mises à jour du Build 12 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 le Java Bug Database.
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 initiales pour les spécifications ciblées pour Jakarta EE 10 ont été achevées avec succès avant la date limite du 28 février 2022. Cela signifie que Jakarta EE 10 est sur la bonne voie pour être livré d'ici la fin mai 2022.
L'enquête auprès des développeurs Jakarta EE de 2022 a également été mise à disposition la semaine dernière dans laquelle l'enquête de cette année sera axée sur le développement d'applications cloud natives.
Spring Framework
La semaine de Spring a été relativement calme, car l'équipe Spring Cloud a fourni des versions ponctuelles sur deux sous-projets, tous deux basés sur Spring Boot 2.6.3 et Spring Cloud 2021.0.1.
La version 2021.1.1 de Spring Cloud Stream Applications, un projet qui fournit des applications prêtes à l'emploi prêt à fonctionner en tant qu'applications Spring Boot autonomes, a été publié avec des améliorations et des corrections de bugs. Vous trouverez plus de détails sur cette version dans les release notes.
La version 2021.0.1.0 de Spring Cloud Alibaba, un projet communautaire maintenu par Alibaba Cloud, a été publié avec des mises à niveau de dépendances vers Nacos 1.4.2, Apache RocketMQ 4.9.2 et Sentinel 1.8.3. Plus de détails sur cette version peuvent être trouvés dans les release notes.
Amazon Corretto
L'équipe d'Amazon Corretto, après avoir découvert que les applications étaient limitées par le blocage des E/S lors de l'écriture des journaux sur disque, ont contribué à Support for Optional Asynchronous/Buffered Logging (JDK-8229517) d'OpenJDK 17. Les développeurs peuvent désormais éviter les pauses prolongées du GC dues aux E/S en utilisant le flag -Xlog:sync
et le framework Unified Logging (UL). Leurs expériences ont démontré que la journalisation asynchrone réduisait le temps CPU réel de 34,5 % et que l'utilisation globale du CPU passait de 102,7 % à 171,6 %.
Quarkus
Quarkus 2.7.4.Final, la quatrième version de maintenance, a été mise à disposition pour inclure des changements tels que : une mise à niveau vers JReleaser 1.0.0-M3 ; éviter une NullPointerException
lorsque RESTEasy Reactive est utilisé avec un client REST classique ; et enregistrer un message INFO
dans OpenApiRecorder
pour utiliser le quarkus.http.cors
en mode production et mettre à jour la section HTTP CORS de l'en-tête HTTP. De plus amples détails sur cette version peuvent être trouvés dans la changelog.
Red Hat a également publié Quarkus Tools pour IntelliJ 1.10.0 avec des correctifs de sécurité et une prise en charge des configurations run/debug de Quarkus.
Hibernate
En route vers Hibernate ORM 6.0, la seconde version candidate a été mise à disposition pour inclure : les artefacts publiés sur Maven Central sont désormais signés ; résoudre les problèmes de synchronisation CDI dans lesquels une implémentation de l'interface BeanManager
n'était pas disponible ; et corriger et améliorer le comportement des mappings de l'annotation @NotFound
. Cette version est également conforme à la spécification TCK Jakarta Persistence 3.1. L'équipe prévoit de fournir la version officielle GA dans les deux à quatre prochaines semaines.
Apache Groovy
Apache Groovy 3.0.10 a été publié avec 91 corrections de bugs, des mises à niveau de dépendances ainsi que des améliorations tels que : la vérification des arguments de type ; une instance de la classe TraitComposer
doit marquer les méthodes générées avec l'annotation @Generated
; et les valeurs d'énumération doivent être chargées dans les attributs d'annotation. Plus de détails peuvent être trouvés dans les release notes.
Apache Groovy 2.5.16 a été publié avec 108 corrections de bugs, des mises à niveau de dépendances avec les mêmes améliorations mentionnées ci-dessus plus : l'annotation @Delegate
doit vérifier les noms de propriété/méthode sur les attributs d'annotation tels que includes
et excludes
; une erreur de compilation requise si une variable final
est également déclarée comme volatile
; et une transformation AST ne devrait fournir une méthode getter que pour les champs immuables. Vous trouverez plus de détails dans les release notes.
Apache Camel
L'Apache Software Foundation a fourni une nouvelle version intermédiaire LTS dans le train de versions Camel 3.14. La version 3.14.2 propose 27 corrections de bugs, des améliorations et des mises à niveau des dépendances vers les versions 2.6.4 et 2.5.10 de Spring Boot et Apache Commons Pool (org.apache.commons:commons-pool2). Plus de détails peuvent être trouvés dans les releases notes.
JReleaser
En route vers la version 1.0.0, une mise à jour de la version early-access de JReleaser a été mise à disposition pour fournir : une nouvelle option pour exécuter la commande jpackage
en mode verbeux ; et la suppression de tout le code source déprécié.
JobRunr
JobRunr, un utilitaire pour effectuer un traitement en arrière-plan en Java, a publié la version 4.0.10 incluant des correctifs pour : un échec de désérialisation d'une instance de la classe JobDetails
à partir d'une Enum
contenant un membre abstrait ; et une instance d'une classe CronExpression
qui ne pouvait pas gérer les dates des 30 et 31 décembre.
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.23 est livrée avec : des dépendances mises à jour ; des liens de vulnérabilité colorés par leur score ; et des correctifs pour les problèmes mineurs de l'interface utilisateur.
Failsafe
Failsafe, une bibliothèque légère et sans dépendance pour la gestion des pannes en Java 8+, a publié la version 3.2.3 avec un correctif pour un problème où une implémentation d'un Timeout
ne se déclenche pas dans certaines conditions lorsqu'elle est utilisée en dehors d'un RetryPolicy
. Plus de détails sur cette version peuvent être trouvés dans la changelog.