Le tour d'horizon dans l'écosystème Java de cette semaine du 18 octobre 2021 présente des nouvelles des JEP OpenJDK, la mise à jour des correctifs critiques d'Oracle pour octobre 2021, JDK 18, de nombreuses mises à jour de Spring Projects, Quakus 2.3.1, la plate-forme Payara, Hibernate Search 6.0.7, GraalVM 21.3, Java pour VS Code 1.0 et Apache Camel pour VS Code 0.1.0. Le programme de la conférence JakartaOne Livestream 2021 a été finalisé.
OpenJDK
La JEP 416, Reimplement Core Reflection with Method Handles, a été promue de Candidate à Proposed to Target pour le JDK 18. Cette JEP propose de réimplémenter les classes du package java.lang.reflect
, Method
, Constructor
et Field
, en utilisant les method handles définis dans java.lang.invoke
. Ces method handles serviront désormais de mécanisme de réflexion pour réduire les coûts de maintenance et de développement des deux packages. L'examen de la JEP 416 se termine le 26 octobre 2021.
La JEP 420, Pattern Matching for switch (Second Preview), a été promue de Draft au statut Candidate. Cette JEP permet à une expression switch
d'être testée par rapport à un certain nombre de patterns, chacun avec une action spécifique, ce qui permet d'exprimer de manière concise et sûre des requêtes complexes orientées données. Il s'agit de la deuxième preview après la JEP 406, Pattern Matching for switch (Preview), qui a été fournie dans JDK 17. Les améliorations incluent : une amélioration du dominance checking qui force une étiquette case
à apparaître avant un guarded pattern du même type ; et une vérification de l'exhaustivité du bloc switch est désormais plus précise avec des hiérarchies scellées.
Brian Goetz, architecte Java chez Oracle, s'était entretenu avec InfoQ en septembre 2017 lorsque le pattern matching était encore dans sa phase de validation de principe. Le pattern matching pour l'opérateur instanceof
, JEP 394, a été fournie dans JDK 16.
JDK 17
Les versions de mise à jour pour JDK 17.0.1, 11.0.13, 8u311 et 7u321 ont été mises à disposition dans le cadre de la publication de mises à jour des correctifs critiques d'Oracle pour octobre 2021. Plus de détails peuvent être trouvés dans les release notes pour JDK 17, JDK 11, JDK 8 et JDK 7.
JDK 18
Le Build 20 du JDK 18 early-access builds a été rendue disponible la semaine dernière, avec des mises à jour du Build 19 qui incluent des correctifs pour divers problèmes. Plus de détails peuvent être trouvés dans les release notes.
L'ensemble de fonctionnalités pour JDK 18 se présente actuellement comme suit :
- JEP 400: UTF-8 by Default
- JEP 408: Simple Web Server
- JEP 413: Code Snippets in Java API Documentation
- JEP 416: Reimplement Core Reflection with Method Handles (proposed to target)
- JEP 417: Vector API (Third Incubator)
Les développeurs sont encouragés à signaler les bugs via la Java Bug Database.
Spring Framework
Ce fut une semaine très chargée chez Spring car un certain nombre de versions ponctuelles ont été mises à disposition sur certains de leurs projets.
En préparation des récentes versions de Spring Boot, Spring Framework 5.3.12 est une version qui suit la version 5.3.11 dans laquelle deux régressions ont été adressées.
Spring Boot 2.5.6 a été publié avec 43 corrections de bugs, améliorations de la documentation et mises à niveau des dépendances.
Spring Boot 2.4.12 a été publié avec 36 corrections de bugs, améliorations de la documentation et mises à niveau des dépendances.
En route vers Spring Boot 2.6.0, la première version candidate a été rendue disponible avec 85 corrections de bugs, améliorations de la documentation et les mises à niveau des dépendances. Plus de détails peuvent être trouvés dans les release notes.
En route vers Spring Cloud 2021.0.0, la troisième release milestone, nom de code Jubilee, a été rendue disponible avec des mises à niveau de dépendances et des correctifs sur divers sous-projets Spring Cloud tels que Spring Cloud Sleuth, Spring Cloud Gateway et Spring Cloud Kubernetes. Spring Cloud 21.0.0-M3 est compatible avec Spring Boot 2.6.0-M3.
Spring Data 2021.0.6 et 2020.0.14 ont été publiées avec des mises à niveau des dépendances et des corrections de bugs pour les deux versions qui sont basées sur Spring Framework 5.3.11. Ces versions peuvent être utilisées avec Spring Boot 2.5.6 et 2.4.12, respectivement.
En route vers Spring Data 2021.1, la première release candidate a été rendue disponible fournissant des changements notables tels que : la dépréciation de la prise en charge de RxJava 2 ; un DSL SQL raffiné pour Spring Data JDBC qui accepte les conditions et sous-sélections JOIN
complexes ; et la prise en charge des mots-clés exists
et not empty
dans Elasticsearch.
Spring Cloud Square 0.4.0-M2 a été publié avec : prise en charge de configurer différents beans WebClient.Builder
pour chaque instance de @RetrofitClient
; et la prise en charge de Spring Native liée aux cas d'utilisation non load-balanced.
Payara
Payara a publié son édition d'octobre 2021 de Payara Platform. La Community Edition 5.2021.8 propose sept améliorations et sept corrections de bugs. L'Enterprise Edition 5.32.0 propose huit améliorations et neuf corrections de bugs. Les deux éditions partagent un correctif de sécurité dans lequel une vérification supplémentaire est effectuée lors de l'utilisation de l'authentification via un certificat client pour s'assurer qu'un certificat est valide, et cinq mises à niveau de composants telles que Eclipse Mojarra 2.3.14, Apache Commons IO 2.11 et Hazelcast 4 qui est un changement radical dans l'édition Enterprise.
Vous trouverez plus de détails dans les release notes des éditions Community et Enterprise.
Hibernate
Les releases de maintenance pour Hibernate Search versions 6.0.7.Final, 5.11.10.Final et 5.10.12.Final ont été mises à disposition pour mettre à niveau Hibernate Search vers les dernières versions compatibles d'Hibernate ORM et déprécier un certain nombre de fonctionnalités dans les trains de versions 5.x qui ont été supprimées dans Hibernate Search 6.0.
Quarkus
Quarkus 2.3.1.Final, une version de maintenance, a été mise à disposition par Red Hat qui inclut une mise à niveau des dépendances vers Hibernate ORM 5.6.0.Final. De plus amples détails sont disponibles dans la changelog.
GraalVM
Oracle Labs a publié GraalVM 21.3 avec des versions basées sur JDK17, des améliorations de performances avec Native Image et des mises à jour d'autres outils. Plus de détails peuvent être trouvés dans cet article de blog. InfoQ suivra avec un reportage plus détaillé.
Liberica JDK
Parallèlement aux Releases Critical Patch Update d'Oracle pour octobre 2021, BellSoft a publié les versions 17.0.1, 11.0.13 et 8u312 de Liberica JDK, leur distribution downstream d'OpenJDK.
Conférence JakartaOne Livestream 2021
Le programme de la conférence JakartaOne Livestream 2021 a été finalisé. Les conférenciers sont Rudy De Busscher, Dmitry Alexandrov, Ruslan Synytsky, Bruno Baptista, Kevin Wittek, Arjan Tijms, Mike Milinkovich, Kevin Sutter, Adam Bien, Emily Jiang, Reza Rahman, Graham Charters et Mary Grygleski.
Prévue le 7 décembre 2021, le comité du programme comprend Tanja Obradovic, Jakarta EE program manager chez Eclipse, Ivar Grimstad, Jakarta EE developer advocate chez Eclipse, Otavio Santana, distinguished software engineer chez Zup Innovation, Ivan St. Ivanov, senior programmer chez VIDA Software, Dalia Abo Sheasha, Java developer advocate chez JetBrains, Jan Westerkamp, managing director chez Sensor Aktor GmbH, et Michael Redlich, senior research technician dans une entreprise de recherche pétrochimique.
Java for Visual Studio Code
La version 1.0 de Java pour Visual Studio Code a été diffusée avec la prise en charge du JDK 17, de nombreuses améliorations des performances et des fonctionnalités et des corrections de bugs. Les développeurs peuvent en apprendre davantage avec cette vidéo YouTube. InfoQ suivra avec une nouvelle plus détaillée.
Apache Camel for Visual Studio Code
La version 0.1.0 d'Apache Camel pour Visual Studio Code a été diffusée comprenant : la fin de vie du JDK 8 pour ouvrir la voie aux récentes mises à jour au sein du Camel Catalog ; et le mode connecté pour l'achèvement des composants Knative et Kubernetes.