Le tour d'horizon dans l'écosystème Java de cette semaine du 25 juillet 2022 présente des nouvelles d'OpenJDK, JDK 19, JDK 20, les mises à jour du projet Spring, Helidon 3.0, GraalVM 22.2, Quarkus 2.11.1 et 2.10.4, Micronaut 3.5.4, Eclipse Vert.x virtual threads incubator, mises à jour Jakarta EE 10, IntelliJ IDEA 2022.2, JUnit 5.9.0, mises à jour de projets Apache Software Foundation et Multik 0.2.0.
OpenJDK
La JEP Draft 8285724, Deprecate JMX M-Lets (Management Applets) for Removal, propose de déprécier la fonctionnalité Java Management eXtension (JMX) "M-Let" for removal dans une future version car elle est devenue obsolète et non pertinente pour le développement d'applications modernes. La suppression des M-Lets, inspirés à l'origine des applets, et de l'API javax.management.loading
n'aura aucun effet sur JMX et ses technologies associées.
JDK 19
La version 33 du JDK 19 early-access builds a été mise à disposition la semaine dernière, avec des mises à jour du Build 32 qui incluent des correctifs pour divers problèmes. Plus de détails peuvent être trouvés dans les release notes.
JDK 20
Le Build 8 du JDK 20 des early-access builds a également été mis à disposition la semaine dernière, avec des mises à jour du Build 7 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 Shell 2.1.0 a été publié avec : une nouvelle interface, CommandRegistration
, comme nouvelle façon de définir des commandes par programmation ; une refonte des composants internes de Spring Shell pour la prise en charge initiale des prochaines versions GA de Spring Framework 6.0 et Spring Boot 3.0 ; et une réévaluation des annotations @ShellMethod
et @ShellOption
telles que de nouvelles annotations peuvent être nécessaires pour mieux s'aligner sur l'interface CommandRegistration
. De plus amples détails sur cette version peuvent être trouvés dans les release notes.
Spring Cloud OpenFeign 3.0.8 a été mis à disposition sous la forme d'une correction de bugs et d'une version de documentation qui rétroporte les correctifs de la série de versions 3.1.x. Le backport le plus notable est lié à la désérialisation en cascade dans l'interface Page
de Spring Data.
Depuis son début en avril 2020, Spring Authorization Server a annoncé qu'ils se préparent pour une version 1.0 prévue pour novembre 2022. La version 1.0 sera basée sur Spring Security 6.0 et Spring Framework 6.0 et nécessitera en version minimale de JDK 17, Tomcat 10 et Jetty 11. L'équipe publiera également une version 0.4.0 pour prendre en charge le train de release Spring Security 5. x et JDK 8. Plus de détails sur ce à quoi les développeurs peuvent s'attendre d'ici novembre 2022 peuvent être trouvés dans le calendrier de publication et la liste des fonctionnalités. InfoQ suivra avec une nouvelle plus détaillée.
Helidon
Deux ans après la sortie d'Helidon 2.0, Oracle a publié Helidon 3.0 qui est livré avec : JDK 17 en version minimale ; une implémentation de MicroProfile 5.0 et de certaines spécifications Jakarta EE 9.1. ; la prise en charge de la JEP 290, Filter Incoming Serialization Data, de sorte que la désérialisation est désactivée par défaut ; une API de routage Helidon SE mise à jour ; un nouveau démarreur de projet ; et une CLI mise à jour. De plus amples détails sur cette version peuvent être trouvés dans les release notes. InfoQ suivra avec une nouvelle plus détaillée.
GraalVM
Oracle Labs a publié GraalVM 22.2 avec : une distribution du JDK GraalVM plus petite qui est plus modulaire et n'inclut plus le runtime JavaScript, le runtime LLVM ou VisualVM ; l'amélioration de l'utilisation de Native Image avec des bibliothèques tierces, la réduction de l'empreinte mémoire et des heap dumps ; le démarrage plus rapide et la prise en charge étendue de la bibliothèque pour GraalPython ; et une meilleure interopérabilité dans GraalJS. GraalVM 22.2 est livré avec les versions JDK 11 et JDK 17. Vous trouverez plus de détails sur cette version dans cette vidéo sur YouTube. InfoQ suivra avec une nouvelle plus détaillée.
Quarkus
Red Hat a publié Quarkus 2.11.1.Final et 2.10.4.Final. Les deux versions corrigent la CVE-2022-2466, une vulnérabilité découverte dans l'extension de serveur SmallRye GraphQL dans laquelle les requêtes du serveur n'étaient pas correctement terminées. Comme expliqué dans le billet de blog :
Malheureusement, le correctif précédent introduit dans la version 2.10.3.Final et la version 2.11.0.Final non publiée était incomplet et le problème était toujours présent sous une autre forme.
Les autres nouvelles fonctionnalités incluent : la nouvelle API client Redis ; des mises à niveau des dépendances vers Vert.x 4.3.2 et Netty 4.1.78 ; un changement dans les endpoints GraphQL pour être un Singleton par défaut ; et une valeur par défaut pour les images de générateur basées sur JDK 17 pour la génération d'exécutables natifs. De plus amples détails sur ces versions peuvent être trouvés dans les release notes pour version 2.11.1 et version 2.10.4.
Micronaut
Micronaut 3.5.4 a été mis à disposition par la Fondation Micronaut avec une correction de bug et une version de correctif de plusieurs modules Micronaut qui incluent : Micronaut Security 3.6.3,Micronaut AWS 3.5.3, Micronaut RxJava 2 1.2.2, Micronaut GCP 4.2.1 et Micronaut Reactor 2.2.3. Plus de détails sur cette version peuvent être trouvés dans les release notes.
Eclipse Vert.x
Avec la prochaine version du JDK 19 qui prendra en charge les threads virtuels, l'équipe Vert.x a créé un projet virtual threads incubator permettant aux développeurs d'expérimenter les threads virtuels et de fournir des commentaires si nécessaire. Le projet d'incubateur contient actuellement une implémentation de async/await basé sur un proof of concept par August Nagro, ingénieur logiciel chez Axoni. Ce projet est destiné à fournir des expériences communautaires centrales avec des threads virtuels et peut donc héberger tout autre projet basé sur des threads virtuels.
Jakarta EE 10
En route vers Jakarta EE 10, le comité de spécification de Jakarta EE a publié un scrutin la semaine dernière pour ratifier le profile Platform de Jakarta EE 10. Ce scrutin doit se clôturer le 9 août 2022 et des scrutins séparés seront programmés pour les profiles Web et Core.
JetBrains
JetBrains a publié IntelliJ IDEA 2022.2 avec de nouvelles fonctionnalités telles que : une migration de JetBrains Runtime (JBR) 11 à JBR17 ; des améliorations du développement à distance ; la prise en charge de Spring Framework 6.0 et Spring Boot 3.0 ; un débogueur expérimental GraalVM Native pour Java ; et des URL cliquables dans les valeurs de chaîne JSON, YAML et .properties
.
JetBrains a également publié la version 0.2 de Multik, une bibliothèque de tableaux multidimensionnels pour Kotlin. Dans cette première version depuis la version 0.1.1 en novembre 2021, les nouvelles fonctionnalités de cette nouvelle version incluent : une nouvelle structure multiplateforme ; la prise en charge des processeurs Android et Apple Silicon ; et des améliorations aux opérations telles que les nombres aléatoires, la matrice de normes et les nombres complexes. De plus amples détails sur cette version peuvent être trouvés dans les release notes.
JUnit
JUnit 5.9.0 a été publié avec de nouvelles fonctionnalités telles que : la prise en charge de l'Open Test Reporting ; une nouvelle méthode keySet()
pour l'interface ConfigurationParameters
qui permet de récupérer toutes les clés des paramètres de configuration ; et un nouvel attribut failIfNoTests
ajouté à l'annotation @Suite
qui fera échouer une suite si aucun test n'est découvert. Vous trouverez plus de détails sur cette version dans les release notes. InfoQ suivra avec une nouvelle plus détaillée.
Apache Software Foundation
L'Apache Software Foundation a fourni des versions ponctuelles pour Camel Quarkus, Tomcat et Groovy.
Pour maintenir l'alignement avec Quarkus, Camel Quarkus 2.11.0, contenant Camel 3.18.0 et Quarkus 2.11.1.Final, propose plusieurs fonctionnalités : les extensions pour prendre en charge Camel Hashicorp Vault et DataSet ; l'augmentation de la couverture des tests d'extension JAXB ; et un correctif pour l'introspection de bean sur les beans de portée @Singleton
qui ne fonctionnaient pas. Plus de détails sur cette version peuvent être trouvés dans la liste des problèmes.
Tomcat 10.0.23 comprend : un correctif pour la CVE-2022-34305, une vulnérabilité XSS de faible gravité dans l'exemple d'authentification par formulaire ; la prise en charge des versions 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.
Les versions d'Apache Groovy 4.0.4, 3.0.12 et 2.5.18 propose des corrections de bugs, des améliorations et des mises à niveau de dépendance telles que : Spotbugs 4.7.1, log4j2 2.18. 0 et Ant 1.9.16. Plus de détails peuvent être trouvés dans les release notes pour les versions 4.0.4, 3.0.12 et 2.5.18.