Il riepilogo Java di questa settimana include notizie da OpenJDK, JDK 18, numerosi aggiornamenti sui progetti Spring, MicroStream 6.0, Quarkus 2.4.0, Hibernate Reactive 1.0, Open Liberty 21.0.0.11, Eclipse Vert.x 4.2.0, Red Hat introduce Cryostat 2.0, GraalVM Native Build Tools 0.9.7.1, Liberica Native Image Kit 21.3 e JDKMon 17.0.7.
Dopo la conclusione della sua revisione, JEP 416, Reimplement Core Reflection with Method Handles, è stato promosso dallo stato Proposed a Target a Targeted per JDK 18. Questo JEP propone di reimplementare le java.lang.reflectclassi Method, Constructor<T> e Field, oltre agli handle di metodo definiti in java.lang.invoke. Questi handle di metodo serviranno ora come meccanismo di riflessione per ridurre il costo di manutenzione e sviluppo di entrambi i pacchetti.
JEP 418, Internet-Address Resolution SPI, è stato promosso da Candidate a Proposed to Target status per JDK 18. Questo JEP propone di definire un'interfaccia del fornitore di servizi per la risoluzione del nome host e dell'indirizzo, in modo che java.net.InetAddress possa trarre vantaggio da resolver diversi dal risolutore OpenJDK predefinito. La revisione per JEP 418 si conclude il 4 novembre 2021.
JDK 18
La build 21 delle build ad accesso anticipato JDK 18 è stata resa disponibile la scorsa settimana, con aggiornamenti dalla build 20 che includono correzioni a vari problemi. Maggiori dettagli possono essere trovati nelle note di rilascio.
Spring Framework
È stata un'altra settimana impegnativa a Spring, poiché il team ha fornito punti di rilascio su un certo numero di loro progetti.
In un recente rapporto, le correzioni di sicurezza, contenute nella recente versione di Spring Boot versioni 2.5.6 e 2.4.12, hanno affrontato le vulnerabilità all'interno di Spring Framework ( CVE-2021-22096 ), Spring Data REST ( CVE-2021-22047 ) e Spring AMQP ( CVE-2021-22097 ). Una quarta vulnerabilità, CVE-2021-22044 , è stata risolta con il rilascio delle versioni Spring Cloud OpenFeign 2.2.10.RELEASE, 3.0.5 e 3.1.0-M4.
Spring Tools 4.12.1 per Eclipse è stato rilasciato con supporto per JDK 17, build di accesso anticipato per Eclipse 2021-12 e Apple Silicon Platform (ARM M1). Maggiori dettagli possono essere trovati nelle note di rilascio.
Sulla strada per Spring GraphQL 1.0.0, è stata resa disponibile la terza release milestone. Questa nuova versione introduce l'annotazione @BatchMapping per un migliore supporto per il batch. Altre nuove funzionalità includono: supporto migliorato per Querydsl; un nuovo risolutore predefinito per l'interfaccia TypeResolver per le unioni e le interfacce GraphQL; e incorporando la DataBinderclasse Spring Framework per l'analisi degli argomenti di input. Maggiori dettagli possono essere trovati nell'elenco dei problemi.
Sulla base del recente sondaggio State of Spring 2021, le nuove funzionalità per Spring Cloud Kubernetes, aggiunte alla terza versione fondamentale di Spring Cloud 2021.0.0, includono un supporto migliorato per il rilevamento dei servizi e la gestione della configurazione che affrontano la barriera in cui è richiesta un'applicazione per fornire le autorizzazioni al server API Kubernetes. Spring Cloud 2021.0.0-M3 introduce un nuovo server di rilevamento che "usa l'API Kubernetes per recuperare i servizi e gli endpoint Kubernetes per fornire informazioni sui servizi alle app".
MicroStream
MicroStream ha rilasciato la versione 6.0 del loro framework con l'integrazione con Helidon, uno strato di configurazione di Spring Boot, specializzata tipo i gestori per JDK 17 collezioni create con il metodi List.of() e Set.of(), e una nuova utility, ObjectCopier per creare copie complete di grafi di oggetti.
Hibernate
Hibernate ha rilasciato Hibernate Reactive 1.0.0.Final con piena integrazione con Quarkus. Introdotto per la prima volta a dicembre 2020, Hibernate Reactive utilizza le librerie client SQL non-blocking Vert.x e supporta PostgreSQL, MySQL, MariaDB, Db2, SQL Server e CockroachDB. InfoQ seguirà con una notizia più dettagliata.
Open Liberty
IBM ha promosso Open Liberty 21.0.0.11 dalla sua versione beta con nuove funzionalità che includono: abilitazione dell'installazione delle funzionalità utente sul runtime di Open Liberty con lo strumento FeatureUtility della riga di comando; l'uso dei secrets Kubernetes come variabili di configurazione di Open Liberty; e una nuova opzione di formato del registro di accesso HTTP per la porta temporanea (un endpoint di comunicazione di un protocollo di livello di trasporto) di un client.
Quarkus
Red Hat ha rilasciato Quarkus 2.4.0.Final con: un aggiornamento delle dipendenze a Hibernate Reactive 1.0.0.Final; supporto per una topologia di flussi Kafka con Quarkus DevUI; continuous testing con progetti multimodulo; e una nuova estensione quarkus-awt da utilizzare con Abstract Window Toolkit (AWT) e Java2D.
Quarkus Tools for IntelliJ 1.8.0 è stato reso disponibile con il supporto per CodeLens per endpoint REST e miglioramenti con le specifiche MicroProfile Fault Tolerance e Metrics .
Eclipse Vert.x
Eclipse Vert.x 4.2.0 è stato rilasciato con supporto per JDK 17 insieme a miglioramenti ai loro client SQL reattivi, client Web e client di autorizzazione. Il Reactive Oracle Client è stato aggiunto alla suite Vert.x del client di database.
Cryostat
Red Hat ha introdotto una nuova applicazione JVM nativa per container, Cryostat 2.0 , che fornisce un'API sicura per la profilazione e il monitoraggio dei container con JDK Flight Recorder. Cryostat può recuperare, archiviare e analizzare le flight recordings da JVM containerizzate per valutare lo stato generale di un'applicazione. Le registrazioni JFR possono essere caricate su JDK Mission Control o Grafana per ulteriori analisi. Un'introduzione a Cryostat può essere trovata in questo post sul blog.
Strumenti di compilazione nativi GraalVM
Oracle Labs ha rilasciato la versione 0.9.7.1 di Native Build Tools , un progetto GraalVM costituito da plugin per l'interoperabilità con GraalVM Native Image. Si tratta di una versione di correzione di bug per affrontare l'esecuzione di test su una build multiprogetto con il plug-in Maven dichiarato in un pom.xml file padre.
Kit di immagini native della Liberica
BellSoft ha rilasciato Liberica Native Image Kit (NIK) 21.3, la distribuzione a valle di GraalVM. Basato su Liberica JDK 17 e JDK 11, le nuove funzionalità includono: supporto iniziale per JPMS; configurare i file di configurazione Reflection e JNI durante l'analisi per produrre immagini native più piccole; una nuova politica di raccolta dei rifiuti adattiva per migliori prestazioni del GC; e l'utilità dell'immagine nativa ora può leggere gli argomenti della riga di comando.
JDKMon
L' ultima versione di JDKMon , un nuovo strumento che monitora e aggiorna i JDK installati, è stata messa a disposizione della comunità Java. Creato da Gerrit Grunwald , ingegnere principale di Azul, la versione 17.0.7 presenta: aggiunto supporto per Bi Sheng JDK , Tencent Kona JDK e Semeru Certified. C'è anche un aggiornamento delle dipendenze a JavaFX 17.0.1 e aggiornamenti ad alcuni plugin e all'interfaccia utente.
Fonte: Michael Redlich su infoq.com