Le tour d'horizon dans l'écosystème Java de cette semaine du 18 juillet 2022 présente des nouvelles d'Oracle, JDK 18, JDK 19, JDK 20, versions milestone et ponctuelles de Spring Boot et Spring Security jalon, Spring pour GraphQL 1.0.1, mises à jour Liberica JDK, Quarkus 2.10.3, CVE dans Grails, JobRunr 5.1.6, JReleaser, Apache Tomcat 9.0.65 et 10.1.0-M17, Tornado VM sur Apple M1 et la conférence JBNC.
Oracle
Dans le cadre du Critical Patch Update d'Oracle pour juillet 2022, Oracle a publié les versions 18.0.1.1, 17.0.3.1, 11.0.15.1, 8u333 et 7u343 d'Oracle Java SE. Plus de détails peuvent être trouvés dans les release notes pour les JDK 18, JDK 17, JDK 11, JDK 8 et JDK 7.
JDK 18
Parallèlement au Critical Patch Update d'Oracle, le JDK 18.0.2 a été publié avec des mises à jour mineures et la suppression de l'implémentation alternative de la classe ThreadLocal
des méthodes current()
et callAs()
dans la classe Subject
. Cependant, la prise en charge de l'implémentation par défaut a été maintenue. Vous trouverez plus de détails sur cette version dans les release notes.
JDK 19
Conformément au calendrier de publication du JDK 19, Mark Reinhold, architecte en chef, Java Platform Group chez Oracle, a officiellement déclaré que le JDK 19 est entré dans la phase 2 de Rampdown pour signaler la poursuite de la stabilisation de la version GA en septembre. 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.
L'ensemble final de sept (7) fonctionnalités pour la version 19 du JDK comprendra :
- JEP 405 : Record Patterns (Preview)
- JEP 422 : Linux/RISC-V Port
- JEP 424 : Foreign Function & Memory API (Preview)
- JEP 425 : Virtual Threads (Preview)
- JEP 426 : Vector API (Fourth Incubator)
- JEP 427 : Pattern Matching for switch (Third Preview)
- JEP 428 : Structured Concurrency (Incubator)
Le Build 32 du JDK 19 early-access builds a été mis à disposition la semaine dernière, avec des mises à jour du Build 31 qui incluent des correctifs pour divers problèmes. Plus de détails peuvent être trouvés dans les release notes.
JDK 20
Le Build 7 du JDK 20 early-access builds a également été mis à disposition la semaine dernière, avec des mises à jour du Build 6 qui incluent des correctifs pour divers problèmes. Les release notes ne sont pas encore disponibles.
Pour les JDK 19 et JDK 20, les développeurs sont encouragés à signaler les bugs via la Java Bug Database.
Spring Framework
Spring Boot 2.7.2 a été publié avec des correctifs de bugs, des améliorations de la documentation et des mises à niveau des dépendances telles que : Spring Framework 5.3.22, Spring Data 2021.2.2, Spring GraphQL 1.0.1, Tomcat 9.0.65, Micrometer 1.9.2, Reactor 2020.0.21 et MariaDB 3.0.6. De plus amples détails sur cette version peuvent être trouvés dans les release notes.
Spring Boot 2.6.10 a été publié avec des corrections de bugs, des améliorations de la documentation et des mises à niveau de dépendance telles que : Spring Framework 5.3.22, Spring Data 2021.1.6, Jetty Reactive HTTPClient 1.1.12, Hibernate 5.6.10.Final, Micrometer 1.8.8, Netty 4.1.79.Final et Reactor 2020.0.21. Plus de détails sur cette version peuvent être trouvés dans les release notes.
En route vers Spring Boot 3.0, la quatrième version milestone a été mise à disposition pour fournir un support pour : le nouveau Java Client dans Elasticsearch ; Flyway 9 ; et Hibernate 6.1. Vous trouverez plus de détails sur cette version dans les release notes.
Spring Security 5.8.0-M1 et 6.0.0-M6 ont été publié avec : un nouveau setDeferredContext()
dans la méthode SecurityContextHolder
pour prendre en charge l'accès lazy à une recherche SecurityContext
; la prise en charge de l'interface SecurityContextHolderStrategy
pour éliminer les races conditions lorsqu'il existe plusieurs contextes d'application ; la prise en charge de AuthorizationManager
pour retarder la recherche d'une Authentification
(comme Supplier<Authentication>
) par rapport à une recherche directe d'une Authentication
; et fournir une alternative au hachage MD5 dans le jeton Remember-Me
. Il y a eu de nombreux changements avec rupture dans la version 6.0.0-M6. Plus de détails sur ces versions peuvent être trouvés dans les release notes pour la version 5.8.0- M1 et la version 6.0.0-M6.
Spring pour GraphQL 1.0.1 a été publié avec : la gestion améliorée lorsqu'une source/parent est attendue et est null
; la prise en charge de la résolution des exceptions à partir d'une subscription GraphQL ; et une nouvelle limite par défaut sur le champ DEFAULT_AUTO_GROW_COLLECTION_LIMIT
dans la classe DataBinder
. Cette version est également livrée avec Spring Boot 2.7.2 et une mise à niveau de dépendance vers GraphQL Java 18.2. Vous trouverez plus de détails sur cette version dans les release notes.
Liberica JDK
Parallèlement au Critical Patch Update d'Oracle pour juillet 2022, BellSoft a publié des correctifs pour les versions 17.0.3.1.1, 11.0.15.1.1 et 8u341 de Liberica JDK, leur distribution downstream d'OpenJDK. De plus, les versions PSU 18.0.2, 17.0.4, 11.0.16 et 8u342 contenant des correctifs non critiques ont également été publiées.
Quarkus
Quarkus 2.10.3.Final a été publié pour répondre à la CVE-2022-2466, une vulnérabilité découverte dans l'extension serveur SmallRye GraphQL dans laquelle les requêtes du serveur n'ont pas été correctement terminées. Cette vulnérabilité n'affecte que la série de versions 2.10.x. Les développeurs sont encouragés à mettre à niveau vers cette dernière version. Plus de détails sur cette version peuvent être trouvés dans les release notes.
Framework Grails
La Fondation Micronaut a identifié une vulnérabilité d'exécution de code à distance dans le Framework Grails qui a été documentée comme CVE-2022-35912. Cela permet à un attaquant "d'exécuter à distance un code malveillant dans l'environnement d'exécution d'une application Grails en émettant une requête Web spécialement conçue qui accorde à l'attaquant l'accès au class loader".
Cette attaque exploite une partie de la capacité de liaison de données dans Grails. Les versions 5.2.1, 5.1.9, 4.1.1 et 3.3.15 ont été corrigées pour se protéger contre cette vulnérabilité.
JobRunr
Ronald Dehuysser, fondateur et développeur principal de JobRunr, un utilitaire permettant d'effectuer un traitement en arrière-plan en Java, a publié la version 5.1. 6 avec prise en charge des métriques Micrometer qui exposent désormais les tâches récurrentes et le nombre de serveurs de tâches en arrière-plan.
JReleaser
Une version early-access de JReleaser, un utilitaire Java qui rationalise la création de versions de projet, a été mis à disposition avec un correctif à un problème dans Gradle où une propriété n'était pas correctement vérifiée avant d'y accéder.
Apache Tomcat
L'Apache Software Foundation a fourni des versions milestone et ponctuelles pour Apache Tomcat.
Tomcat 9.0.65 propose plusieurs fonctionnalités : un correctif pour CVE-2022-34305, une vulnérabilité XSS de faible gravité dans l'exemple d'authentification par formulaire ; le support des builds reproductibles ; et une mise à jour de la version packagée de la Tomcat Native Library vers 1.2.35 qui inclut les binaires Windows construits avec OpenSSL 1.1. 1q. De plus amples détails sur cette version peuvent être trouvés dans la changelog.
Apache Tomcat 10.1.0-M17 (bêta) propose plusieurs fonctionnalités : une mise à jour des packages version de la bibliothèque native Tomcat vers 2.0.1 qui inclut les binaires Windows construits avec OpenSSL 3.0.5 ; la prise en charge des builds reproductibles ; et une mise à jour des modules Panama expérimentaux avec prise en charge d'OpenSSL 3.0+. Apache Tomcat 10.1.0-M17 est une version milestone alpha pour fournir aux développeurs un accès anticipé aux nouvelles fonctionnalités de la série de versions d'Apache Tomcat 10.1. Plus de détails sur cette version peuvent être trouvés dans la changelog.
TornadoVM
TornadoVM, une société de technologie logicielle open source, a annoncé que les développeurs peuvent toujours installer TornadoVM sur Apple M1 bien qu'Apple ait déprécié OpenCL.
JBCNConf
JBCNConf 2022 s'est tenue à l'International Barcelona Convention Center à Barcelone, en Espagne, la semaine dernière, avec de nombreux orateurs de la communauté Java qui ont présenté des sujets et des workshops.