Java 近期新聞:JDK 19 與 Jakarta EE 10 的更新以及 Amazon Corretto 的異步、緩衝日誌

語言: CN / TW / HK

本期的 Java 新聞主要會介紹 OpenJDK、JDK 19、Jakarta EE 10 的新特性,對 Spring Cloud 子項目的更新,Amazon Corretto 為 OpenJDK 17 所提供的異步、緩衝日誌,Quarkus 2.7.4.Final,Hibernate ORM 6.0.0.CR2,Apache Groovy 3.0.10 與 2.5.16,Apache Camel 3.14.2,JReleaser 早期訪問版本,JobRunr 4.0.10,JDKMon 17.0.23 和 FailSafe 3.2.3。

OpenJDK

JEP 422,即 Linux/RISC-V移植 ,已經從 JDK 19 的 Candidate 狀態提升到了 Proposed to Target 狀態。這個 JEP 提議將 JDK 移植到 Linux/RISC-V,這是一個免費開源的 RISC 指令集架構。它將會支持模板解析器、C1 和 C2 JIT 編譯器,以及所有當前主流的 GC,包括 ZGC 和 Shenandoah。這個 JEP 的重點是將該移植集成到 JDK 主線代碼庫中。該審議過程計劃於 2022 年 3 月 17 日結束。

JDK 18

JDK 18 仍處於 候選發佈階段 ,預計將於 2022 年 3 月 22 日發佈 GA 版本。 發佈説明 中包含了一些文件的鏈接,比如 完整的API規範 和一個 帶註釋的API規範 ,它比較了 JDK 17( Build 35 )和 JDK 18( Build 37 )之間的差異。InfoQ 將以更詳細的新聞報道繼續跟進相關的消息。

JDK 19

JDK 19 早期訪問構建版本Build 13 已經發布,其特性是對 Build 12 的 更新 ,包括對各種問題的 修復 。更多細節可以在 發佈説明 中找到。

對於 JDK 18 和 JDK 19 ,我們鼓勵開發者通過 Java缺陷數據庫 報告錯誤。

Jakarta EE 10

Eclipse 基金會的 Jakarta EE 開發人員倡導者 Ivar Grimstad 在他的 Hashtag Jakarta EE 每週 博客宣佈 ,面向 Jakarta EE 10 規範 的初步發佈審議已經在 2022 年 2 月 28 日的最後期限前成功完成。這意味着 Jakarta EE 10 有望在 2022 年 5 月底前如期交付。

2022 年的 Jakarta EE開發者調查 也在上週 公佈 ,今年的調查將聚焦在在雲原生應用開發方面。

Spring 框架

最近,Spring 相對平靜, Spring Cloud 團隊提供了兩個子項目的小版本發佈,它們都是基於 Spring Boot 2.6.3 和 Spring Cloud 2021.0.1。

Spring Cloud Stream Applications 的 2021.1.1 版本已經 發佈 ,該項目提供開箱即用的應用程序,它可以作為獨立的 Spring Boot 應用程序運行,該版本的特性主要是改進和缺陷修復。該版本的進一步細節可在 發佈説明 中找到。

阿里雲 維護的社區項目 Spring Cloud Alibaba 的 2021.0.1.0 版本 發佈 ,特性是對 Nacos 1.4.2、 Apache RocketMQ 4.9.2 和 Sentinel 1.8.3 進行了依賴升級。關於這個版本的更多細節可以在 發佈説明 中找到。

Amazon Corretto

Amazon Corretto 團隊在發現應用程序在向磁盤寫入日誌時會被 I/O阻塞 後,為 OpenJDK 17 貢獻了對 可選的異步/緩衝日誌的支持 (JDK-8229517)。開發者現在可以通過應用 -Xlog:sync 開關和統一日誌(Unified Logging,UL)框架來避免因 I/O 導致的 GC 暫停延長。他們的實驗表明,異步日誌將實際的 CPU 時間減少了 34.5%,整體的 CPU 利用率從 102.7%增加到 171.6%。

Quarkus

Quarkus 2.7.4.Final 發佈,它是 第四個維護版本 ,包括以下變化:升級到 JReleaser 1.0.0-M3;當 RESTEasy Reactive 與傳統 REST 客户端一起使用時,避免出現 NullPointerException ;向 OpenApiRecorder 記錄 INFO 消息,以在生產模式下使用 quarkus.http.cors 屬性以及更新 HTTP 頭信息的 HTTP CORS 部分。關於這個版本的進一步細節可以在 更新日誌 中找到。

Red Hat 還 發佈 了 Quarkus Tools for IntelliJ 1.10.0,該版本的特性包括安全修復,並支持 Quarkus 的運行/調試配置。

Hibernate

在通往 Hibernate ORM 6.0 的道路上, 第二個候選版本 已經發布,特性包括:發佈到 Maven 中央倉庫的製件現在已被簽名;修復 CDI 相關的問題,這是由於 CDI 中一個 BeanManager 接口的實現已不可用;修正和改進 @NotFound 註解的映射行為。該版本還通過了 Jakarta Persistence 3.1規範 的 TCK。該團隊預計將在未來兩到四周內提供正式的 GA 版本。

Apache Groovy

Apache Groovy 3.0.10 已經 發佈 ,其中包括 91 個缺陷修復、依賴性升級以及以下改進:類型參數檢查; TraitComposer 類的實例應該用 @Generated 註解標記生成方法;枚舉值應該被加載到註解屬性中。更多細節可以在 發佈説明 中找到。

Apache Groovy 2.5.16 已經 發佈 ,它包括 108 個缺陷修復、依賴性升級以及與上文相同的改進,除此之外,還包括如下的特性: @Delegate 註解應檢查註解屬性上的屬性/方法名稱,如 includes excludes ;如果一個 final 變量也被聲明為 volatile ,則會產生編譯器錯誤;AST 轉換應只為不可變的字段提供 getter 方法。進一步的細節可以在 發佈説明 中找到。

Apache Camel

Apache 軟件基金會在 Camel 3.14 版本的發佈序列中 提供 了一個新的 LTS 小版本發佈。3.14.2 版本修復了 27 個缺陷和改進,並且對 Spring Boot 和 Apache Commons Pool( org.apache.commons:commons-pool2 )的 2.6.4 和 2.5.10 版本的依賴進行了升級。更多細節可以在 發佈説明 中找到。

JReleaser

在通往 1.0.0 版本的道路上, JReleaser 更新了一個 早期訪問 版本,提供瞭如下的功能:新的可選項,以便在 verbose 模式下運行 jpackage 命令,並刪除了所有廢棄的源代碼。

JobRunr

JobRunr 是一個在 Java 中執行後台處理的工具,它發佈了 4.0.10版本 ,包括對以下問題的修復:無法從包含抽象成員的 Enum 中反序列化 JobDetails 類的實例,以及 CronExpression 類的實例無法處理 12 月 30 日和 31 日的日期。

JDKMon

JDKMon 是一個監控和更新已安裝的 JDK 的新工具,它的 最新版本 已經提供給 Java 社區。它由 Azul 公司的首席工程師 Gerrit Grunwald 創建,17.0.23 版包括:更新的依賴關係,根據漏洞得分進行着色的安全漏洞鏈接,以及對 UI 小問題的修復。

Failsafe

Failsafe 是一個輕量級、零依賴性的庫,用於處理 Java 8+中的問題,它 發佈 了 3.2.3 版本,修正了一個問題,即在 RetryPolicy 之外使用 Timeout 接口的實現時,在某些條件下無法觸發。關於這個版本的更多細節,可以在 更新日誌 中找到。

原文鏈接:

Java News Roundup: JDK 19 and Jakarta EE 10 Updates, Ansynch and Buffered Logging by Amazon Corretto