作者 | Michael Redlich
译者 | 张卫滨
策划 | 丁晓昀
本期的 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 接口的实现时,在某些条件下无法触发。关于这个版本的更多细节,可以在更新日志中找到。
原文链接:
https://www.infoq.com/news/2022/03/java-news-roundup-mar07-2022/