本期 Java 近期新闻综述内容主要涉及 Oracle、JDK 18、JDK 19、JDK 20、Spring Boot 和 Spring Security 里程碑版本和点版本、Spring for GraphQL 1.0.1、Liberica JDK 更新、Quarkus 2.10.3、CVE in Grails、JobRunr 5.1.6、JReleaser 维护版本、Apache Tomcat 9.0.65 和 10.1.0-M17、Tornado VM on Apple M1 和 JBNC 大会。

Oracle

作为 2022 年 7 月 关键补丁更新 的一部分,Oracle 发布了 Oracle Java SE 的 18.0.1.1、17.0.3.1、11.0.15.1、8u333 和 7u343 版本。要了解更多细节信息,请分别查看 JDK 18 、 JDK 17 、 JDK 11 、 JDK 8 和 JDK 7 的发布说明。

JDK 18

JDK 18.0.2 与 Oracle 的关键补丁更新同时 发布 ,带来了小幅升级,并删除了 Subject 类中 current() 和 callAs() 方法的备用 ThreadLocal 类实现。不过,默认实现支持得以保留。要了解更多细节信息,请查看 发布说明 。

JDK 19

根据 JDK 19发布计划 ,Oracle Java 平台组首席架构师 Mark Reinhold 正式 宣布 ,JDK 19 进入 Rampdown 第二阶段,这标志着将于 9 月份发布的 GA 版本越来越稳定。重大 Bug,如回归或严重的功能问题,多半还会得到解决,但必须通过 Fix-Request 流程批准。

JDK 19 版本最终将包含以下 7 个特性:

  • JEP 405: 记录模式(预览)
  • JEP 422: Linux/RISC-V移植
  • JEP 424: 外部函数&内存API(预览)
  • JEP 425: 虚拟线程(预览)
  • JEP 426: Vector API(第四个孵化阶段)
  • JEP 427: Switch模式匹配(第三个预览版)
  • JEP 428: 结构化并发(孵化器阶段)

JDK 19 早期访问构建 的 Build 32 在上周发布,它是 Build 31 的 升级 ,修复了各种 问题 。要了解更多细节信息,请查看 发布说明 。

JDK 20

JDK 20 早期访问构建 的 Build 7 在上周发布,它是 Build 6 的 升级 ,修复了各种 问题 。发布说明尚未提供。

对于 JDK 19 和 JDK 20 ,我们鼓励开发者通过 Java Bug数据库 报告缺陷。

Spring Framework

Spring Boot 2.7.2 发布 ,带来了 Bug 修复、文档改进和依赖项升级,如 Spring Framework 5.3.22、Spring Data 2021.2.2、Spring GraphQL 1.0.1、Tomcat 9.0.65、Micrometer 1.9.2、Reactor 2020.0.21 和 MariaDB 3.0.6。要了解关于这个版本的详细信息,请查看 发布说明 。

Spring Boot 2.6.10 发布 ,带来了 Bug 修复、文档改进和依赖项升级,如 Spring Framework 5.3.22、Spring Data 2021.1.6、Jetty Reactive HTTPClient 1.1.12、Hibernate 5.6.10.Final、Micrometer 1.8.8、Netty 4.1.79.Final 和 Reactor 2020.0.21。要了解关于这个版本的详细信息,请查看 发布说明 。

在通往 Spring Boot 3.0 的道路上, 第四个里程碑版本 正式发布,支持:新的 Elasticsearch Java客户端 ;Flyway 9;Hibernate 6.1。要了解关于这个版本的详细信息,请查看 发布说明 。

Spring Security 5.8.0-M1 和 6.0.0-M6 发布 ,特性包括: SecurityContextHolder 类新增 setDeferredContext() 方法,支持 SecurityContext 查找惰性访问;支持 SecurityContextHolderStrategy 接口,消除存在多个应用程序上下文时的条件竞争;支持 AuthorizationManager 接口,延迟 Authentication (如 Supplier<Authentication> )查找以及直接 Authentication 查找;在 Remember-Me token 中提供一个 MD5 哈希的替代方案。6.0.0-M6 版本有许多破坏性的更改。要了解关于这些版本的详细信息,请查看  5.8.0-M1 和 6.0.0-M6 的发布说明。

Spring for GraphQL 1.0.1 发布 ,特性包括:改进需要 source/parent 但其为 null 时的处理方式;支持解析来自 GraphQL 订阅 的异常; DataBinder 类的 DEFAULT_AUTO_GROW_COLLECTION_LIMIT 字段新增默认限制。这个版本也是随 Spring Boot 2.7.2 发布的,有个依赖项升级到了 GraphQL Java 18.2。要了解关于这个版本的详细信息,请查看 发布说明 。

Liberica JDK

与 Oracle 2022 年 7 月的 关键补丁更新 (CPU)同时,BellSoft 发布 了 Liberica JDK (OpenJDK 的一个下游分发版) 17.0.3.1.1、11.0.15.1.1 和 8u341 版本的 CPU 补丁。此外,补丁集更新(PSU)版本 18.0.2、17.0.4、11.0.16 和 8u342,包含 CPU 和非关键补丁,也已经发布。

Quarkus

Quarkus 2.10.3.Final 发布 ,解决了 CVE-2022-2466 ,这是在服务器扩展 SmallRye GraphQL 中发现的一个漏洞,其中的服务器请求没有正确终止。这个漏洞只影响到 2.10.x 版本序列。我们鼓励开发者升级到这个最新版本。要了解关于这个版本的详细信息,请查看 发布说明 。

Grails 框架

Micronaut 基金会在 Grails 框架中 发现 了一个远程代码执行漏洞。该漏洞已被记录为 CVE-2022-35912 。它让攻击者可以“通过发出一个专门构造作的 Web 请求,获得类加载器访问授权,从而在 Grails 应用程序运行时中远程执行恶意代码”。

该攻击利用了 Grails 中的一部分 数据绑定 能力。为了防范这个漏洞,5.2.1、5.1.9、4.1.1 和 3.3.15 版本已经打了补丁。

JobRunr

JobRunr 是一个 Java 后台处理工具,其创始人和主要开发者 Ronald Dehuysser 发布 了支持 Micrometer Metrics(现在可以暴露定时作业和后台作业服务器的数量)的 5.1.6 版本。

JReleaser

JReleaser (一个简化项目发布的 Java 实用程序)的一个 早期访问版本 发布,修复了 Gradle 中一个属性在访问之前没做适当检查的问题。

Apache Tomcat

Apache 软件基金会发布了 Apache Tomcat 的里程碑版本和点版本。

Tomcat 9.0.65 发布, 特性 包括:修复了 CVE-2022-34305 ,这是表单认证示例中的一个低风险漏洞;支持可重复构建;将 Tomcat Native Library 软件包的版本升级到 1.2.35,其中包括使用 OpenSSL 1.1.1q 构建的 Windows 二进制文件。要了解关于这个版本的详细信息,请查看 变更日志 。

Apache Tomcat 10.1.0-M17(Beta)发布, 特性 包括:将 Tomcat Native Library 软件包的版本升级到 2.0.1,其中包括使用 OpenSSL 3.0.5 构建的 Windows 二进制文件;支持可重复构建;升级实验性模块 Panama,支持 OpenSSL 3.0+。Apache Tomcat 10.1.0-M17 是一个 Alpha 里程碑版本,开发人员可以借此提前试用 Apache Tomcat 10.1 发布序列的新特性。要了解关于这个版本的详细信息,请查看 变更日志 。