Java 近期新聞:JDK 19 與 Jakarta EE 10 的更新以及 Amazon Corretto 的異步、緩衝日誌
本期的 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
- 那些 Go 語言發展歷史上的重大決策
- 從趨勢到挑戰,一站式解讀操作系統運維和可觀測性
- 百萬級 Topic,騰訊雲的 Apache Pulsar 穩定性實踐
- Apache Doris 在思必馳的應用優化實踐:海量語音通話數據下,實時、離線一體的數倉架構設計實踐
- 愛數正式開源認知智能開發框架 KWeaver
- 運維智能化的三大關鍵技術
- “抄我的還‘反捅’我一刀”,Gary Marcus 發文駁斥圖靈獎得主 Yann LeCun
- 當出海成為必選項,企業如何構建全場景全生態技術底座?
- 數智底座必備能力三:快速構建創新應用
- Docker 多階段構建實戰 (multi-stage builds)
- 工作筆記之 SELECT 語句在 SAP ABAP 中的用法總結(上)
- 經久不衰的設計定律是不要讓我思考的設計
- 不要指望下一個像 GPT 這樣的大型語言模型會民主化
- Java 近期新聞:Helidon Níma、Spring Framework、MicroProfile、MicroStream、Kotlin 和 Piranha
- 一文入門 jQuery
- C 學習 ---__libc_open 函數的原理
- 監控系統工作原理
- 甲骨文新微服務框架 Helidon Níma:使用虛擬線程實現高性能
- 【雲原生 | 從零開始學 Kubernetes】二、使用 kubeadm 搭建 K8S 集羣
- Elasticsearch 聚合學習之四:結果排序