本期 Java 近期新闻主要涉及 OpenJDK、JDK 19、JDK 20、Spring 项目升级、Helidon 3.0、GraalVM 22.2、Quarkus 2.11.1 和 2.10.4、Micronaut 3.5.4、Eclipse Vert.x 虚拟线程孵化器、Jakarta EE 10 升级、IntelliJ IDEA 2022.2、JUnit 5.9.0、Apache 软件基金会项目升级和 Multik 0.2.0。
JEP 草案 8285724—— 弃用JMX M-Lets(管理小程序)以备删除 ——是一份特性 JEP。它提议弃用 Java Management eXtension(JMX) “M-Let”特性,以备在将来的版本中删除,因为它已经过时,不符合现代应用程序开发的潮流了。删除 M-Lets(最初受小程序启发)以及 javax.management.loading
API 不会影响 JMX 及其相关技术。
JDK 19 早期访问构建 的 Build 33 在上周发布,它是 Build 32 的 升级 ,修复了各种 问题 。要了解更多细节信息,请查看 发布说明 。
JDK 20 早期访问构建 的 Build 8 在上周发布,它是 Build 7 的 升级 ,修复了各种 问题 。发布说明尚未提供。
对于 JDK 19 和 JDK 20 ,我们鼓励开发者通过 Java Bug数据库 报告缺陷。
Spring Shell 2.1.0 发布 ,特性包括:新增接口 CommandRegistration
,提供了一种通过编程方式定义命令的新方法;改造 Spring Shell 内部构件,为即将发布的 Spring Framework 6.0 GA 及 Spring Boot 3.0 GA 提供初始支持;重新评估 @ShellMethod
和 @ShellOption
注解,要想更好地匹配 CommandRegistration
接口可能需要新的注解。要了解关于这个版本的详细信息,请查看 发布说明 。
Spring Cloud OpenFeign 3.0.8 发布 ,主要是 Bug 修复和文档发布,其中修复补丁是从 3.1.x 发布序列反向移植过来的。最值得注意的反向移植和 Spring Data 接口 Page
中的 级联反序列化 有关。
自 2020 年 4 月 首次亮相 以来, Spring Authorization Server 团队已经 宣布 ,他们正在准备按计划将于 2022 年 11 月发布的 1.0 版本。该版本将以 Spring Security 6.0 和 Spring Framework 6.0 为基础,所需的最低软件版本为 JDK 17、Tomcat 10 和 Jetty 11。该团队还将发布一个 0.4.0 版本,以支持 Spring Security 5.x 发布序列和 JDK 8。如果想了解从现在起到 2022 年 11 月期间,该团队将为开发人员带来什么,可以查看 发布计划 和 特性清单 。InfoQ 后续将带来更详细的报道。
在 Helidon 2.0 发布两年之后,Oracle 发布 了 Helidon 3.0,特性包括:最低支持 JDK 17;一个 MicroProfile 5.0 实现和精选的 Jakarta EE 9.1 规范;支持 JEP 290( 过滤传入的序列化数据 ),这样,反序列化就默认禁用了;升级 Helidon SE 路由 API;一个新的 项目启动器 ;经过升级的 CLI。要了解关于这个版本的详细信息,请查看 发布说明 。InfoQ 后续将带来更详细的报道。
Oracle 实验室 发布 了 GraalVM 22.2,特性包括:一个更小的 GraalVM JDK 分发,更加模块化,也不再包含 JavaScript 运行时 LLVM 或 VisualVM;改进 Native Image 使用第三方库的方式,减少内存占用和堆转储; GraalPython 的快速启动和扩展库支持;改进与 GraalJS 的互操作性。GraalVM 22.2 随 JDK 11 和 JDK 17 构建提供。要了解关于这个版本的详细信息,请观看这个 YouTube 视频 。InfoQ 后续将带来更详细的报道。
红帽公司 发布 了 Quarkus 2.11.1.Final 和 2.10.4.Final。两个版本都已经解决了 CVE-2022-2466 ,这是在服务器扩展 SmallRye GraphQL 中发现的一个漏洞,服务器请求在其中没有正确终止。发布公告这样写道:
遗憾的是,之前在 2.10.3.Final 和未发布版本 2.11.0.Final 中引入的修复并不彻底,问题依然以另外一种形式存在。
其他新特性包括:新的 Redis 客户端 API;依赖项升级到 Vert.x 4.3.2 和 Netty 4.1.78;GraphQL 端点经修改后默认为单例;原生可执行文件生成默认采用基于 JDK 17 的构建器镜像。要了解关于这些版本的详细信息,请查看 2.11.1 和 2.10.4 版本的发布说明。
Micronaut 基金会 发布 了 Micronaut 3.5.4,提供了 Bug 修复和多个 Micronaut 模块的补丁版本,包括: Micronaut Security 3.6.3 、 Micronaut AWS 3.5.3 、 Micronaut RxJava 2 1.2.2 、 Micronaut GCP 4.2.1 和 Micronaut Reactor 2.2.3 。要了解关于这个版本的详细信息,请查看 发布说明 。
由于即将发布的 JDK 19 将支持虚拟线程,所以 Vert.x 团队 创建 了一个 虚拟线程孵化器 项目,供开发人员试用虚拟线程并提供必要的反馈。目前,该孵化器项目包含一个 async/await 实现 ,其基础是 Axoni 软件工程师 August Nagro 的概念验证。该项目旨在提供一个中心化社区,让人们可以试验虚拟线程,而且也可以托管任何其他基于虚拟线程的项目。
在通往 Jakarta EE 10 的道路上, Jakarta EE 规范委员会上周 发起了一项投票 ,为的是使 Jakarta EE 10 平台 配置文件获得正式批准。该投票计划于 2022 年 8 月 9 日关闭。 Web 和 Core 配置文件会安排单独的投票。
JetBrains 发布 了 IntelliJ IDEA 2022.2,新特性包括:从 JetBrains Runtime (JBR)11 迁移到 JBR17;远程开发 改进 ;支持 Spring Framework 6.0 和 Spring Boot 3.0;一个实验性的 GraalVM Java 原生调试器;JSON、YAML 及 .properties
字符串值中的可点击 URL。
JetBrains 还 发布 了 Multik 的 0.2 版本,一个用于 Kotlin 的多维数组库。这是自 2021 年 11 月 0.1.1版本 以来的第一次发布,这个新版本中的新特性包括:一个新的多平台结构;支持 Android 和 Apple Silicon 处理器;改进随机数、范数矩阵、复数等的操作。要了解关于这个版本的详细信息,请查看 发布说明 。
JUnit 5.9.0 发布 ,新特性包括:支持 Open Test Reporting 格式; ConfigurationParameters
接口新增方法 keySet()
,可检索所有的配置参数键; @Suite
注解接口新增 failIfNoTests
属性,如果没有发现测试程序,则测试套件失败。要了解关于这个版本的详细信息,请查看 发布说明 。InfoQ 后续将带来更详细的报道。
Apache 软件基金会发布了 Camel Quarkus 、 Tomcat 和 Groovy 的点版本。
为了与 Quarkus 保持一致,Camel Quarkus 2.11.0(包括 Camel 3.18.0 和 Quarkus 2.11.1.Final)的 新特性包括 :支持 Camel Hashicorp Vault 和 DataSet 扩展;JAXB 扩展测试覆盖率提升;修复了 bean 内省在 @Singleton
作用域 bean 中不起作用的问题。要了解关于这个版本的详细信息,请查看 问题列表 。
Tomcat 10.0.23 的 新特性 包括:修复 CVE-2022-34305 ,这是表单验证示例中的一个低风险 XSS 漏洞;支持可重复构建; Tomcat Native Library 软件包的版本升级到 1.2.35,其中包括使用 OpenSSL 1.1.1q 构建的 Windows 二进制文件。要了解关于这个版本的详细信息,请查看 变更日志 。
Apache Groovy 4.0.4 、 3.0.12 及 2.5.18 版本的新特性包括 Bug 修复、改进和依赖项升级,如 Spotbugs 4.7.1、log4j2 2.18.0 和 Ant 1.9.16。要了解关于这些版本的详细信息,请查看 4.0.4 、 3.0.12 和 2.5.18 的发布说明。