作者 | Michael Redlich
译者 | 平川
策划 | 丁晓昀
Java 近期新闻综述,内容主要涉及 OpenJDK、JDK 19 相关 JEP、JobRunr 5.1.0、Quarkus 2.8.3.Final、Hibernate ORM 6.0.1.Final、Kotlin 1.7.0 预览、 Apache Camel 3.14.3 和 3.11.7 版本、Apache Tika 2.4.0 和 1.28.2 版本、Micronaut 最小 JDK 版本调查和 JFokus 2022。
OpenJDK
经过一周的评审,JDK 19 相关 JEP 425(虚拟线程预览)已经从 Proposed to Target 状态提升到 Targeted 状态。在 Loom 项目的支持下,这个 JEP 引入了虚拟线程(轻量级线程),极大地减少了在 Java 平台上编写、维护和观测高吞吐量并发应用程序的工作量。
尽管为期一周的评审已于 2022 年 5 月 5 日结束,JDK 19 相关 JEP 427(Switch 模式匹配第三个预览版)仍处于 Proposed to Target 状态。在 Amber 项目的支持下,该 JEP 整合了基于前两个预览版的反馈所做的改进:JEP 406(Switch 模式匹配预览版,在 JDK 17 中交付)和 JEP 420(Switch 模式匹配第二个预览版,在 JDK 18 中交付)。JEP 420 的更改包括:switch 块中的守护模式(guarded patterns)被 when 子句替代;当选择器表达式的值为 null 时,模式切换的运行时语义与遗留切换语义更接近。
JDK 19 相关 JEP 424(外部函数和内存 API 预览版)已经从候选状态提升至 Proposed to Target 状态。在 Panama 项目的支持下,该 JEP 发展了 JEP 419(外部函数和内存 API 第二轮孵化,在 JDK 18 中交付)和 JEP 412(外部函数与内存 API 第一轮孵化,在 JDK 17 中交付),整合了基于 Java 社区反馈所做的改进。评审预计将于 2022 年 5 月 11 日结束。
JDK 19
JDK 19 早期访问构建的 Build 21 在上周发布,它是 Build 20 的升级,修复了各种问题。要了解更多细节信息,请查看发布说明。(https://jdk.java.net/19/release-notes)
对于 JDK 19,我们鼓励开发者通过 Java Bug 数据库报告缺陷。
JobRunr
Ronald Dehuysser 是 JobRunr(Java 中一个执行后台处理实用程序)的创始人和主要开发者。他发布了 5.1.0 版本。该版本支持 Kotlin 1.6.20,并修复了一些值得注意的 Bug,如:在 JobRunrConfiguration 类中定义的 useJsonMapper() 方法无法恰当地更新 JobMapper 类的实例;如果 JobDetails 类的实例不能反序列化,则后台服务器将停止;抛出 ClosedFileSystemException 异常的竞态条件。要了解关于这个版本的更多细节,请查阅发布说明。(https://github.com/jobrunr/jobrunr/releases/tag/v5.1.0)
Quarkus
红帽公司提供了 Quarkus 的第三个维护版本 Quarkus 2.8.3.Final,其特性包括:修复了多个 Bug,如 quarkus:dev 不支持 2.8.2.Final;将 PostgreSQL 驱动降至 42.3.3 版本,直到 Debezium 的 PostgreSQL 连接器支持 42.3.4 版本;新增一个 /tokens 端点, 可重定向到 Keycloak 身份验证服务器。这很可能是最后一次维护发布,因为红帽公司计划在 2022 年 5 月 9 日那一周发布 Quarkus 2.9.0。要了解关于这个版本的更多细节,请查阅变更日志。(https://github.com/quarkusio/quarkus/releases/tag/2.8.3.Final)
Hibernate
Hibernate ORM 6.0.1.Final 发布,提供了两种新类型支持:GEOGRAPHY,用于支持映射原生 SQL 类型 geography;SQLXML,用于支持映射原生 SQL 类型 xml。Antlr 库已经升级到 4.10 版本。
Kotlin
在通往 Kotlin 1.7.0 的道路上,JetBrains 提供了一个 beta 版本,其中包括一些新特性预览,如:继续改进编写泛型构建器时的构建器类型推断;返回类型非空的集合函数 min() 和 max() 回归;更稳定的绝非空(definitely non-nullable types)类型,这最初是在 Kotlin 1.6.20 中引入的,用于改进 Java 类和接口扩展时的互操作性;升级新增的 Kotlin/Native 内存管理器。InfoQ 后续将带来更详细的报道。
Apache Camel
Apache 软件基金会提供了 Camel 3.14.3 和 Camel 3.11.7 的 LTS 点发布。这两个版本的特点是:升级 Spring Boot 2.6.7 和其他 Spring 项目的依赖,以解决 Spring4Shell 漏洞;大量的 Bug 修复和改进。要了解关于这些版本的更多细节,请查看 3.11.7 和 3.14.3 版本的发布说明。
Apache Tika
Apache Tika 团队已经发布了他们元数据提取工具包的 2.4.0 版本。Tika 以前是 Apache Lucene 的一个子项目,这个最新版本对依赖项做了一些安全升级。然而,deeplearning4j 依赖不再打包到 JAR 文件 tika-dl 中,所以开发者必须自己提供。
该团队还发布了 Apache Tika 1.28.2,提供安全相关的升级和常规的依赖升级,并升级到 Apache POI 5.2.0(提供了更多来自 POI 解析器的日志)。1.x 发布序列将在 2022 年 9 月 30 日到达生命的终点。
Micronaut
在通往 Micronaut 4.0 的道路上,Micronaut 基金会正在征寻 Java 社区对 JDK 最小版本的意见。感兴趣的开发者可以通过填写此表来参与。(https://form.jotform.com/221245534652149)
JFokus Conference
JFokus 2022 于上周在瑞典斯德哥尔摩的斯德哥尔摩海滨会议中心举行,来自 Java 社区的许多演讲者发表了演讲并主持了研讨会。
原文链接:
https://www.infoq.com/news/2022/05/java-news-roundup-may02-2022