Java 近期新闻综述,内容主要涉及 OpenJDK、JDK 19、JDK 20、Spring 点版本、GlassFish 7.0.0-M6、GraalVM Native Build Tools 0.9.12、Micronaut 3.5.2、Quarkus 2.10.0、Reactor 2022.0.0-M3、Apache Camel Quarkus 2.10.0 及 Apache Tika 2.4.1 版本和 1.28.4 版本。
最近,甲骨文公司 Java 语言架构师 Brian Goetz 更新 了 JEP 草案 828039,即 Classfile API ,提供了一些背景信息,关于该草案将如何发展并最终取代 Java 字节码操作和分析框架 ASM ,Goetz 将其描述为“一个有大量遗留问题的旧代码库”。该 JEP 提议提供一个 API,用于解析、生成和转换 Java 类文件。它最初将在 JDK 中作为 ASM 的内部替代品,并计划作为一个公共 API 开放。
JDK 19 早期访问构建 的 Build 28 在上周发布,它是 Build 27 的 升级 ,修复了各种 问题 。要了解更多细节信息,请查看 发布说明 。
JDK 20 早期访问构建 的 Build 3 在上周发布,它是 Build 2 的 升级 ,修复了各种 问题 。发布说明尚未提供。
对于 JDK 19 和 JDK 20 ,我们鼓励开发者通过 Java Bug数据库 报告缺陷。
Spring Boot 2.7.1 发布 ,其中包括 66 项 Bug 修复、文档改进和依赖升级,比如:Spring Framework 5.3.21、Spring Data 2021.2.1、Spring Security 5.7.2、Reactive Streams 1.0.4、Groovy 3.0.11、Hazelcast 5.1.2 和 Kotlin Coroutines 1.6.3。要了解关于这个版本的更多细节,请查看 发布说明 。
Spring Boot 2.6.9 发布,其中包括 44 项 Bug 修复、文档改进以及与 Spring Boot 2.7.1 类似的依赖升级。要了解关于这个版本的更多细节,请查看 发布说明 。
VMware 发布 了 CVE-2022-22980: Spring Data MongoDB SpEL表达式注入漏洞 。由于这个漏洞的存在,“Spring Data MongoDB 应用程序在使用 @Query
或 @Aggregation
标注的查询方法时,如果没有对输入做无害化处理,那么含有查询参数占位符的 SpEL 表达式就容易发生 SpEL 注入”。Spring Data MongoDB 3.4.1 和 3.3.5 版本已经修复了这个漏洞。
Spring Data 2021.2.1 和 2021.1.5 版本 发布 ,对所有 Spring Data 子项目进行了升级,如 Spring Data MongoDB、Spring Data Cassandra、Spring Data JDBC 和 Spring Data Commons。Spring Boot 2.7.1 和 2.6.9 将使用相应的版本,并解决上述漏洞 CVE-2022-22980。
Spring Authorization Server 0.3.1 发布 ,提供了一些功能增强和 Bug 修复。然而,团队决定从 JDK 11 降级到 JDK 8,以保持与 Spring Framework、Spring Security 5.x 和 Spring Boot 2.x 的兼容性和一致性。因此, HyperSQL (HSQLDB)依赖也被降级到 2.5.2 版本,因为 HSQLDB 2.6.0 及以上版本需要 JDK 11。要了解关于这个版本的更多细节,请查看 发布说明 。
Spring Security 5.7.2 和 5.6.6 版本 发布 ,提供了 Bug 修复和依赖升级。这两个版本有一个共同的新特性,即测试示例已经更新为使用 JUnit Jupiter(它是 JUnit 5 的一部分)。要了解关于这两个版本的更多细节,请查看 5.7.2 和 5.6.6 版本的发布说明。
在通往 GlassFish 7.0.0 的道路上,Eclipse 基金会发布了 第六个里程碑版本 ,它提供了一些变更,为的是通过 Jakarta Contexts Dependency Injection 4.0 以及 Jakarta Concurrency 3.0 规范的技术兼容工具包(TCK)测试。不过,这个里程碑版本还没有完全通过 Jakarta EE 10 TCK。GlassFish 7.0.0-M6 还是一个 Beta 测试版本,可在 JDK 11 至 JDK 18 上编译和运行。要了解关于这个版本的更多细节,可以查看 发布说明 。
在通往 1.0 版本的道路上, Oracle实验室 发布了 Native Build Tools 的 0.9.12版本 。这是一个 GralVM 项目,提供可以与 GralVM Native Image 互操作的插件。这个最新版本提供了:Mockito 和 Byte Buddy 的支持文档;防止在没有提供测试列表的情况下构建失败;在 Gradle 插件 native-image
中支持不同的代理模式,这是一个破坏性的变化;支持 Maven 中的 JVM Reachability Metadata。要了解关于这个版本的更多细节,请查看 发布说明 。
Micronaut 基金会 发布 了 Micronaut 3.5.2,带来了 Bug 修复以及 Micronaut Oracle Cloud 2.1.4 、 Micronaut Email 1.2.3 和 Micronaut Spring 4.1.1 项目的点版本。 ApplicationContextConfigurer
接口的文档也进行了更新,提供了如何定义 默认Micronaut环境 的建议。要了解关于这个版本的更多细节,请查看 发布说明 。
红帽公司 发布 了 Quarkus 2.10.0.Final,新特性包括:来自 Loom 项目的有关虚拟线程( JEP 425 )的初步工作;在 GraphQL 扩展中支持非阻塞工作负载;依赖升级到 SmallRye Reactive Messaging 3.16.0;增加 Reactive SQL Clients 扩展 Kubernetes 服务绑定支持;新契约 CacheKeyGenerator
,允许自定义从方法参数生成的缓存密钥。
在 Reactor 项目通往 2022.0.0 版本的道路上, 第三个里程碑版本 发布。它主要是将依赖项升级到 reactor-core 3.5.0-M3
、 reactor-pool 1.0.0-M3
、 reactor-netty 1.1.0-M3
、 reactor-addons 3.5.0-M3
和 reactor-kotlin-extensions 1.2.0-M3
。
为了与 Quarkus 保持一致,Apache 软件基金会 发布 了 Camel Quarkus 2.10.0,其中包含 Camel 3.17.0 和 Quarkus 2.10.0.Final。新特性包括:新增扩展 Azure Key Vault 和 DataSonnet ;删除 Camel 3.17.0 中被废弃的扩展。要了解关于这个版本的更多细节,请查看 问题列表 。
Apache Tika 团队 发布 了其元数据提取工具包的 2.4.1 版本。它以前是 Apache Lucene 的一个子项目,这个最新版本提升了定制和配置能力,例如:给 TikaServerCli
类增加一个 stop()
方法,这样它就可以和 Apache Commons Daemon 一起执行;允许在 TikaResource
类中把 Content-Length
头传递给元数据;支持用户把系统属性从分叉进程扩展到分叉的 tika-server
进程。
Apache Tika 1.28.4 也已 发布 ,提供了安全修复和依赖升级。要了解关于这个版本的更多细节,请查看 更新日志 。1.x 版本序列将在 2022 年 9 月 30 日到达生命周期的终点。