Le résumé de Java de cette semaine pour le 9 octobre 2023 présente des nouvelles d’OpenJDK, de JDK 22, d’Apache Tomcat CVEs, de Devoxx Morocco, ainsi que des étapes, des points et des candidats à la publication de : Spring Framework; Spring Data; Micronaut; Quarkus et bien d’autres…
JEP & JDK
Après son examen, JEP 454, Foreign Function & Memory API, a été promu de Proposé à Cible à Ciblé pour JDK 22. Cette JEP propose de finaliser cette fonctionnalité après deux tours d’incubation et trois tours de prévisualisation : JEP 412, Foreign Function & Memory API (incubateur), livré en JDK 17; JEP 419, Foreign Function & Memory API (deuxième incubateur), livré en JDK 18; JEP 424, Foreign Function & Memory API (Preview), livré en JDK 19; JEP 434, Foreign Function & Memory API (Second Preview), livré en JDK 20; et JEP 442, Foreign Function & Memory API (Third Preview), à livrer dans la prochaine version GA de JDK 21. Les améliorations apportées depuis la dernière version incluent : un nouvel attribut manifeste Enable-Native-Access qui permet au code dans les JAR exécutables d’appeler des méthodes restreintes sans l’utilisation de l’indicateur –enable-native-access; permettre aux clients de construire par programmation des descripteurs de fonction C, éviter les constantes spécifiques à la plate-forme; améliorer la prise en charge des tableaux de longueur variable dans la mémoire native; et la prise en charge de plusieurs jeux de caractères dans les chaînes natives. InfoQ fera un suivi avec un article plus détaillé.
JEP 460 : Vector API (septième incubateur), a été promu de son projet JEP 8315945 au statut de candidat. Ce PEC, sous les auspices du projet Panama, intègre des améliorations en réponse aux commentaires des six derniers cycles d’incubation : JEP 448, Vector API (sixième incubateur), à livrer dans la prochaine version GA de JDK 21; JEP 438, Vector API (cinquième incubateur), livré en JDK 20; JEP 426, Vector API (quatrième incubateur), livré en JDK 19; JEP 417, Vector API (troisième incubateur), livré en JDK 18; JEP 414, Vector API (deuxième incubateur), livré en JDK 17; et JEP 338, Vector API (incubateur), livré sous forme de module incubateur dans JDK 16. Le changement le plus significatif de JEP 448 inclut une amélioration de l’interface de compilation JVM (JVMCI) pour prendre en charge les valeurs de l’API Vector.
JEP Draft 8315398, Implicitly Declared Classes and Instance Main Methods (Second Preview), anciennement connu sous le nom Unnamed Classes and Instance Main Methods (Preview), Flexible Main Methods and Anonymous Main Classes (Preview) and Implicit Classes and Enhanced Main Methods (Preview), intègre des améliorations en réponse aux commentaires de la précédente série de prévisualisation, à savoir JEP 445, Classes sans nom et Méthodes principales d’instance (Preview). Ce JEP propose de « faire évoluer le langage Java afin que les étudiants puissent écrire leurs premiers programmes sans avoir besoin de comprendre les fonctionnalités de langage conçues pour les grands programmes. » Ce JEP fait avancer le billet de septembre 2022, Paving the on-ramp, de Brian Goetz, architecte du langage Java chez Oracle. Gavin Bierman, membre consultant du personnel technique d’Oracle, a publié la première ébauche du document de spécification pour examen par la communauté Java. Vous trouverez plus de détails sur le JEP 445 dans ce reportage d’InfoQ.
Gavin Bierman, membre consultant du personnel technique d’Oracle, a fourni un document de spécification mis à jour pour JEP 447, Déclarations avant super() (Preview), un JEP qui propose de : permettre aux déclarations qui ne font pas référence à une instance en cours de création d’apparaître avant this() ou super() fait appel à un constructeur et préserve les garanties de sécurité et d’initialisation existantes pour les constructeurs.
JDK 22
La version 19 des versions JDK 22 en accès anticipé a été mise à disposition la semaine dernière avec des mises à jour de la version 18 qui incluent des correctifs à divers problèmes. Vous trouverez plus de détails sur cette version dans les notes de publication.
Pour le JDK 22, les développeurs sont encouragés à signaler les bogues via la base de données Java Bug.
Cadre du printemps
Spring FrameWork
La première version candidate de Spring Framework 6.1.0 propose des corrections de bugs, des améliorations de la documentation, des mises à niveau de dépendances et de nouvelles fonctionnalités telles que : un déplacement de la classe ReactorResourceFactory de l’org.springframework.http.client.reactive vers le package org.springframework.http.client pour une meilleure prise en charge de CRaC ; permettre des implémentations personnalisées de l’interface ClientRequestObservationConvention pour l’interface RestClient ; et exposez la méthode shouldHandle(ApplicationEvent) dans la classe ApplicationListenerMethodAdapter pour vérifier si un auditeur est réellement intéressé par une instance d’événement. Vous trouverez plus de détails sur cette version dans les notes de publication.
De même, Spring Framework 6.0.13 a été publié avec des corrections de bogues, une amélioration de la documentation, des mises à niveau des dépendances et de nouvelles fonctionnalités telles que : des diagnostics améliorés pour les cas où le calcul répété de la taille du texte entraîne un débordement dans le langage d’expression Spring ; et réintroduire la classe FastClass dans les noms de classe proxy CGLIB annotés avec @Configuration. Vous trouverez plus de détails sur cette version dans les notes de publication.
La première version candidate de Spring Data 2023.1.0, nom de code Vaughn, fournit : le support de JDK 21; l’utilisation de threads virtuels via la configuration de l’interface Java Executor; le support des classes de valeur Kotlin; une exploration initiale des optimisations avec CRaC; et une migration de la documentation vers Antora. Vous trouverez plus de détails sur cette version dans les notes de publication.
Versions 2023.0.5, 2022.0.11 et 2021.2.17, toutes les versions de service de Spring Data, les corrections de bugs et les mises à niveau de dépendances respectives aux sous-projets tels que : Spring Data Commons ; Spring Data MongoDB ; Spring Data Elasticsearch; et Spring Data Neo4j. Ces versions peuvent être consommées par les prochaines versions de Spring Boot respectivement.
Spring Shell
La deuxième version de Spring Shell 3.2.0 fournit un support expérimental pour une nouvelle interface utilisateur de terminal et d’autres changements notables tels que : une nouvelle classe ViewCommand pour fournir une instruction de niveau supérieur pour l’interface View; et des implémentations améliorées des classes ButtonView et DialogView. Vous trouverez plus de détails sur cette version, y compris une démonstration de la nouvelle interface utilisateur du terminal, dans les notes de publication.
Micronaut
The Micronaut Foundation a été relaté en version 4.1.4 par Micronaut Framework featuring Micronaut Core 4.1.9 et à mis à jour les modules : Micronaut Serialization, Micronaut AWS, Micronaut Email, Micronaut Data, Micronaut Maven Plugin, Micronaut SQL Libraries, et Micronaut Discovery Client. Vous trouverez plus de détails sur cette version dans les notes de publication.
Quarkus
Installation Mise à jour Java 8
L’installation de cette mise à jour garantit que les applications Java continuent de fonctionner avec autant de sécurité et d’efficacité.
Principales nouveautés de cette version
- JDK 8u391 contient des données de fuseau horaire IANA 2023c.
Pour plus d’informations, reportez-vous à Versions de données de fuseau horaire dans le logiciel JRE. - Nouvelle fonctionnalité : nouvel événement JFR : jdk.SecurityProviderService
Un nouvel événement JFR (Java Flight Recorder) a été ajouté aux détails d’enregistrement des appelsjava.security.Provider.getService(String type, String algorithm)
.
Reportez-vous à JDK-8254711 - Fonctionnalité enlevée : suppression du certificat racine RootCA1 de SECOM Trust System
Le certificat racine suivant de SECOM Trust System a été enlevé du fichier de clés d’accèscacerts
:+ alias name 'secomscrootca1 [jdk]'
Nom distinctif : OU=Security Communication RootCA1, O=SECOM Trust.net, C=JP
Reportez-vous à JDK-8295894 - Fonctionnalité enlevée : suppression de la prise en charge de Linux ARM 32 pour JDK 8
La prise en charge de la plate-forme pour Linux ARM 32 dans JDK 8 a été enlevée. Par conséquent, le téléchargement ARM 32 Hard Float ABI ne sera pas disponibe. Les systèmes d’exploitation qui prenaient en charge ARM 32 sont arrivés en fin de vie. Il n’existe donc plus de prise en charge de système d’exploitation connue.
JDK-8305927 (non public)
//PS rajouter photo et exemple de l’installation de la mise à jour jdk et approfondir le Spring Shell