Le tour d'horizon dans l'écosystème Java de cette semaine du 20 juin 2022 présente des actualités d'OpenJDK, JDK 19, JDK 20, releases Spring, GlassFish 7.0.0-M6, GraalVM Native Build Tools 0.9.12, Micronaut 3.5.2, Quarkus 2.10.0, Projet Reactor 2022.0.0-M3, Apache Camel Quarkus 2.10.0 et Apache Tika versions 2.4.1 et 1.28.4.
OpenJDK
Brian Goetz, architecte du langage Java chez Oracle, a récemment mis à jour la JEP Draft 828039, Classfile API, pour fournir des informations de base sur la manière dont ce projet évoluera et remplacera à terme le framework de manipulation et d'analyse de bytecode Java, ASM, que Brian Goetz caractérise comme "une ancienne base de code avec beaucoup de bagages hérités." Cette JEP propose de fournir une API pour analyser, générer et transformer des fichiers de classe Java. Cette JEP servira initialement de remplacement interne pour ASM dans le JDK avec des plans pour l'ouvrir en tant qu'API publique.
JDK 19
le Build 28 du JDK 19 des early-access builds a été mis à disposition la semaine dernière, avec des mises à jour du Build 27 qui incluent des correctifs pour divers problèmes. Plus de détails peuvent être trouvés dans les release notes.
JDK 20
Le Build 3 du JDK 20 des early-access builds a également été mis à disposition la semaine dernière, avec des mises à jour du Build 2 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.1 a été publié avec 66 corrections de bugs, des améliorations de la documentation et des mises à niveau des dépendances telles que : Spring Framework 5.3.21, Spring Data 2021.2.1, Spring Security 5.7.2, Reactive Streams 1.0.4, Groovy 3.0.11, Hazelcast 5.1.2 et Kotlin Coroutines 1.6. 3. Plus de détails sur cette version peuvent être trouvés dans les release notes.
Spring Boot 2.6.9 a été publié avec 44 corrections de bugs, des améliorations de la documentation et des mises à niveau des dépendances similaires à Spring Boot 2.7.1. De plus amples détails sur cette version peuvent être trouvés dans les release notes.
VMware a publié la CVE -2022-22980, Spring Data MongoDB SpEL Expression Injection Vulnerability, une vulnérabilité dans laquelle une application "Spring Data MongoDB est vulnérable à l'injection SpEL lors de l'utilisation de méthodes de requête annotées @Query
ou @Aggregation
avec des expressions SpEL contenant des placeholders de paramètre de requête pour la liaison de valeur si l'entrée n'est pas filtrée." Les versions 3.4.1 et 3.3.5 de Spring Data MongoDB ont résolu cette vulnérabilité.
Les versions 2021.2.1 et 2021.1.5 de Spring Data ont été publiées avec des mises à niveau de tous les sous-projets Spring Data tels que : Spring Data MongoDB, Spring Data Cassandra, Spring Data JDBC et Spring Data Commons. Ces versions seront également utilisées par Spring Boot 2.7.1 et 2.6.9, respectivement, et traiteront le CVE-2022-22980 susmentionné.
Spring Authorization Server 0.3.1 a été publié avec quelques améliorations et corrections de bugs. Cependant, l'équipe a décidé de rétrograder de JDK 11 à JDK 8 pour maintenir la compatibilité et la cohérence avec Spring Framework, Spring Security 5.x et Spring Boot 2.x. Par conséquent, la dépendance HyperSQL (HSQLDB) a également été rétrogradée vers la version 2.5.2 car HSQLDB 2.6.0 et supérieur nécessitent JDK 11. Plus de détails sur cette version se trouvent dans les release notes.
Les versions 5.7.2 et 5.6.6 de Spring Security ont été publiées avec des corrections de bugs et des mises à niveau de dépendance. Les deux versions partagent une nouvelle fonctionnalité dans laquelle les exemples de test ont été mis à jour pour utiliser JUnit Jupiter, une partie intégrante de JUnit 5. Vous trouverez plus de détails sur ces versions dans les release notes de la version 5.7.2 et de la version 5.6.6.
Eclipse GlassFish
Sur la route de GlassFish 7.0.0, la sixième version milestone a été mise à disposition par la Fondation Eclipse qui apporte un certain nombre de modifications liées à la réussite du kit de compatibilité technologique (TCK) pour Jakarta Contexts and Dependency Injection 4.0 et Spécifications Jakarta Concurrency 3.0. Cependant, cette version milestone n'a pas encore passé le Jakarta EE 10 TCK complet. GlassFish 7.0.0-M6, considérée comme une version bêta, compile et s'exécute sur JDK 11 à JDK 18. Plus de détails sur cette version peuvent être trouvés dans les release notes.
Outils de build GraalVM Native
En route vers la version 1.0, Oracle Labs a publié la version 0.9.12 de Native Build Tools, un projet GraalVM composé de plugins pour l'interopérabilité avec GraalVM Native Image. Cette dernière version fournit : une documentation de support pour Mockito et Byte Buddy ; empêcher les builds d'échouer si aucune liste de test n'a été fournie ; prendre en charge différents modes d'agent dans le plug-in Gradle native-image
, un changement radical ; et la prise en charge des métadonnées d'accessibilité JVM dans Maven. De plus amples détails sur cette version peuvent être trouvés dans les release notes.
Micronaut
La Fondation Micronaut a publié Micronaut 3.5.2 avec des corrections de bugs et versions ponctuelles des projets Micronaut Oracle Cloud 2.1.4, Micronaut Email 1.2.3 et Micronaut Spring 4.1.1. La documentation pour l'interface ApplicationContextConfigurer
a également été mise à jour pour inclure une recommandation sur la façon de définir un environnement Micronaut par défaut. Plus de détails sur cette version peuvent être trouvés dans les release notes.
Quarkus
Red Hat a publié Quarkus 2.10.0.Final avec : des travaux préliminaires sur les threads virtuels (JEP 425) du projet Loom ; prendre en charge les workloads non bloquants dans les extensions GraphQL ; une mise à niveau de dépendance vers SmallRye Reactive Messaging 3.16.0 ; la prise en charge du service de binding de Kubernetes pour les extensions Reactive SQL Clients ; et un nouveau contrat CacheKeyGenerator
pour permettre la personnalisation des clés de cache générées à partir des paramètres de méthode.
Projet Reactor
Sur la route du projet Reactor 2022.0.0, la troisième version milestone a été mise à disposition avec des mises à niveau de dépendance vers reactor-core 3.5.0-M3
, reactor-pool 1.0.0-M3
, reactor-netty 1.1.0-M3
, reactor-addons 3.5.0-M3
et reactor-kotlin-extensions 1.2.0-M3
.
Apache Camel Quarkus
En maintenant l'alignement avec Quarkus, l'Apache Software Foundation a publié Camel Quarkus 2.10.0 contenant Camel 3.17.0 et Quarkus 2.10.0.Final. Les nouvelles fonctionnalités incluent : de nouvelles extensions, Azure Key Vault et DataSonnet ; et la suppression des extensions obsolètes dans Camel 3.17.0. De plus amples détails sur cette version peuvent être trouvés dans la liste des problèmes.
Apache Tika
L'équipe Apache Tika a publié la version 2.4.1 de leur boîte à outils d'extraction de métadonnées. Anciennement un sous-projet de Apache Lucene, cette dernière version est livrée avec une personnalisation et une configuration améliorées telles que : l'ajout de la méthode stop( )
à TikaServerCli
pour qu'il puisse être exécuté avec Apache Commons Daemon ; autoriser le passage de l'en-tête Content-Length
aux métadonnées dans la classe TikaResource
; et la prise en charge des utilisateurs pour étendre les propriétés système du processus de fork aux processus tika-server
forkés.
Apache Tika 1.28.4 a également été publié avec des correctifs de sécurité et des mises à niveau de dépendance. Plus de détails sur cette version peuvent être trouvés dans la changelog. Le train de versions 1.x arrivera en fin de vie le 30 septembre 2022.