Le tour d'horizon dans l'écosystème Java de cette semaine du 28 mars 2022 présente des nouvelles de JDK 19, Spring Boot, des CVE dans Spring, les versions ponctuelles d'Apache Tomcat, Quarkus Tools pour Visual Studio Code, Micronaut 3.4.1, JetBrains rejoint la Fondation Micronaut, Open Liberty Paketo Liberty Buildpack, Hibernate 6.0, JobRunr 5.0, des images WildFly 26.1 Beta S2I, JReleaser 1.0-RC2, MicroStream 7.0-M2, JHipster 7.8.0, JMH 1.35.
JDK 19
Le Build 16 du JDK 19 early-access builds ont été mises à disposition la semaine dernière, avec des mises à jour du Build 15 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 la Java Bug Database.
Spring Framework
Les versions 5.3.18 et 5.2.20 de Spring Framework ont été publiées en réponse à la CVE-2022-22965 : Spring Framework RCE via Data Binding on JDK 9+, où une application Spring MVC ou Spring WebFlux exécutée sur un JDK 9+ peut être vulnérable à une exécution de code à distance via la liaison de données. Cela a été surnommé Spring4Shell. InfoQ suivra avec une nouvelle plus détaillée.
Spring Framework 5.3.17 a été publié pour répondre à la CVE-2022-22950 : Spring Expression DoS Vulnerability, où il est possible pour un utilisateur de fournir une Spring Expression Language (SpEL) qui peut provoquer une condition de déni de service.
Les versions 3.1.7 et 3.2.3 Spring Cloud Function ont été publiées pour traiter la CVE-2022-22963 : Remote Code Execution in Spring Cloud Function by Malicious Spring Expression, où il est possible pour un utilisateur, tout en utilisant la fonctionnalité de routage, de fournir une expression de routage SpEL spécialement conçue qui peut entraîner une exécution de code à distance qui exposerait l'accès aux ressources locales.
Les versions 2.6.6 et 2.5.12 de Spring Boot ont été publiées avec des mises à niveau de dépendance vers Spring Framework 5.3.18 et Jackson BOM versions 2.13.2.20220328 et 2.12.6.20220326, respectivement. Ces deux versions ponctuelles contiennent les versions 5.3.18 et 5.2.20 de Spring Framework qui corrigent la CVE-2022-22965.
Spring Cloud Azure 4.0 a été publié qui comprend : une gestion simplifiée des dépendances ; la prise en charge étendue du module Azure Support ; et un modèle de dépendance de module Spring repensé pour fournir une approche plus flexible pour traiter différentes approches d'application.
Dans le prolongement de SpringOne 2021, Jürgen Höller, ingénieur senior et chef de projet Spring Framework chez VMware, a fourni une mise à jour sur l'adoption du JDK 17 et au-delà, en écrivant :
Nous avons établi la nouvelle ligne de base sur nos principales branches, avec déjà quelques jalons. Les retours ont été très positifs, non seulement en termes d'améliorations du framework mais aussi en termes de motivation pour une mise à niveau Java au niveau de l'application. Bien sûr, cela ne se termine pas avec le JDK 17 LTS : JDK 18 est déjà une option immédiate, JDK 19 sera la version actuelle lorsque nous passerons à la version finale plus tard cette année, avec le JDK 20 en accès anticipé d'ici là - et le JDK 21 LTS déjà à l'horizon.
Apache Tomcat
Ce fut une semaine chargée pour l'équipe Apache Tomcat car ils ont fourni des versions ponctuelles pour les trains de versions 8.5, 9.0 et 10.0.
Les versions 8.5.78, 9.062, 10.0.2 et 10.1.0-M14 alpha disposent toutes : d'une mise à jour à la version packagée de Tomcat Native Library 1.2.32 pour récupérer les binaires Windows construits avec OpenSSL 1.1.1n ; l'amélioration de la journalisation des frames de paramètres HTTP/2 inconnus ; des avertissements supplémentaires si des configurations TLS incompatibles sont utilisées (telles que HTTP/2 avec authentification CLIENT-CERT) ; et un durcissement du class loader pour fournir une atténuation pour la CVE-2022-22965, c'est-à-dire Spring4Shell.
Les séries de versions 8.5 et 9.0 servent d'implémentation logicielle open source des technologies Java Servlet, JavaServer Pages, Java Unified Expression Language, Java WebSocket et Java Authentication Service Provider Interface for Containers.
Les séries de versions milestone 10.0 et 10.1 servent d'implémentation logicielle open source des spécifications Jakarta Servlet, Jakarta Server Page, Jakarta Expression Language, Jakarta WebSocket, Jakarta Authentication et Jakarta Annotations.
Quarkus
Red Had a publié Quarkus Tools for Visual Studio Code 1.10.0 avec : une commande "Deploy to OpenShift" plus facile à découvrir ; un nouveau Qute Language Server pour prendre en charge l'achèvement, la validation, le survol, etc. ; les améliorations apportées au Qute Templating Engine ; la validation que l'annotation @ConfigMapping
ne peut être placée que sur les interfaces ; et la prise en charge de @ApplicationPath
pour gérer l'URL du projet comme alternative à l'extension de prise en charge des propriétés. Plus de détails sur cette version peuvent être trouvés dans la changelog.
Micronaut
La Fondation Micronaut a publié Micronaut 3.4.1 avec : la prise en charge des annotations @JsonNaming
et @JsonProperty
dans le BeanIntrospectionModule
classe ; autoriser la sérialisation de null
; une mise à jour de jackson-databind
2.13.2.2 ; et les mises à niveau des dépendances vers Micronaut Serialization 1.0.1 ; Micronaut AOT 1.0.1 ; Plug-in Micronaut Maven 3.2.1 ; et Micronaut Servlet 3.2.2. De plus amples détails sur cette version peuvent être trouvés dans la changelog.
La Fondation Micronaut a également annoncé que JetBrains s.r.o a rejoint la fondation en tant que Tools and Infrastructure Partner. JetBrains rejoint Gradle Inc., qui a rejoint début janvier 2022 en tant que tout premier partenaire. Créée en juin 2020 en tant qu'organisation à but non lucratif, la Fondation Micronaut, soutenu par le Technology Advisory Board, fait progresser l'innovation et l'adoption du Micronaut.
Open Liberty
IBM a présenté le Paketo Liberty Buildpack, un ensemble d'exécutables qui inspecte le code source de l'application et crée un plan de build. Basé sur Buildpacks Paketo qui implémente la spécification buildpack, Paketo Liberty Buildpacks est conçu pour transformer le code source de l'application en images de conteneurs et les maintenir.
WildFly
Les images Docker Source-to-Image (S2I) de WildFly 26.1 Beta ont été publiées sur quay.io, l'utilitaire de Red Hat pour créer, analyser et distribuer des images de conteneurs. Les images quay.io/wildfly/wildfly-centos7 et quay.io/wildfly/wildfly-runtime-centos7, obsolètes depuis WildFly 26, seront remplacées par une nouvelle architecture basée sur la version 3.0 du WildFly Application Server Maven Plugin.
Hibernate
Hibernate ORM 6.0 a été publié la semaine dernière avec de nouvelles fonctionnalités telles que : le support de la spécification Jakarta Persistence ; l'amélioration des performances via le passage de read-by-name à read-by-position à partir d'un ResultSet
; un nouveau Mapping Model SPI lié au nouveau paradigme de lecture par position ; les annotations repensées pour la sécurité de type ; et un modèle de requête sémantique mis à jour. InfoQ suivra avec une nouvelle plus détaillée.
JobRunr
JobRunr, un utilitaire pour effectuer des traitements en arrière-plan en Java, a publié la version 5.0 pour inclure un certain nombre de nouvelles fonctionnalités telles que : la prise en charge de Spring Native et le Mapped Diagnostics Context fourni par SLF4J ; planifier des tâches récurrentes avec un intervalle défini ; l'intégration avec MicroMeter ; l'intégration plus facile avec plusieurs bases de données ; et une assistance pour exécuter des tâches le dernier jour de la semaine ou le dernier jour du mois. InfoQ fera le suivi avec un reportage plus détaillé.
JReleaser
En route vers la version 1.0.0, la seconde version candidate et mise à jour early-access builds de JReleaser ont été mises à disposition la semaine dernière avec : des mises à niveau de dépendances vers aws-java-sdk 1.12.191, jsonschema 4.24.1 et le plug-in Download de Gradle (downloadPluginVersion
) 5.0.4 ; un correctif du message de validation qui n'est pas correctement analysé sous Windows ; et un correctif pour résoudre le message d'erreur "Cannot parse version '2000.0.0[.A]' with 'YYYY.MINOR.MICRO[.MODIFIER]'".
JHipster
La version 7.8.0 de JHipster a été publiée pour inclure : une mise à niveau des dépendances vers Spring Boot 2.6.6 ; la prise en charge de Java 18 ; une implémentation de React Micro Frontend ; un correctif pour les demandes de pagination Couchbase pour les entités avec des relations ; et de nombreuses mises à niveau de bibliothèques. Plus de détails sur cette version peuvent être trouvés dans la changelog.
MicroStream
Une semaine après la première version bêta, la seconde version bêta de MicroStream 7.0 a été mise à disposition avec un nouveau handler de type Android en raison des restrictions de réflexion dans les nouvelles versions d'Android.
Java Microbench Harness (JMH)
JMH 1.35 a été publié avec des correctifs tels que : le mode SingleShot
doit gérer plus d'une invocation de l'annotation @OperationsPerInvocations
; le profileur async
utilisant la mauvaise option pour la sortie du profileur ; le profileur perfasm
n'acceptant pas les valeurs freq=max
et showCounts=x
, ces dernières pour prendre en charge la normalisation configurable du nombre d'événements ; et une amélioration des métadonnées perfasm
dans lesquelles le numéro de version réel, et non compilationID
, est affiché.