Java 近期新闻:JDK 22 的 JEP、Spring Shell、Quarkus、Apache Camel、JDKMon
在结束了审查之后,JEP 460,Vector API(第七轮孵化) 已从 JDK 22 的 Proposed to Target 状态提升为 Targeted 状态。该 JEP 由 Panama 项目赞助,整合了对前六轮孵化反馈的改进:JEP 448,Vector API (第六轮孵化),在 JDK 21 中交付;JEP 438,Vector API (第五轮孵化),在 JDK 20 中交付;JEP 426,Vector API (第四轮孵化),在 JDK 19 中交付;JEP 417,Vector API (第三轮孵化),在 JDK 18 中交付;JEP 414,Vector API (第二轮孵化),在 JDK 17 中交付;以及 JEP 338,Vector API (孵化器),在 JDK 16 中作为孵化器模块发布。JEP 448 最重要的变更包括对 JVM 编译器接口(JVMCI)的增强,以支持 Vector API 值。
JEP 459:字符串模板(第二次预览版),已从 JDK 22 的 Candidate 状态 提升 为 Proposed to Target 状态。这个 JEP 提供了第一轮预览的第二个预览版本:JEP 430,字符串模板(预览版),在 JDK 21 中交付。该特性通过字符串模板增强了 Java 编程语言,字符串模板包含嵌入式表达式,在运行时对嵌入式表达式进行求值和验证。有关 JEP 430 的更多详细信息可以在 InfoQ 的新闻报道中找到。其审查预计将于 2023 年 11 月 15 日结束。
甲骨文(Oracle)的技术人员顾问 Gavin Bierman发布 了 JEP 463,隐式类和实例主方法(第二次预览版) 的规范草案,以供 Java 社区审查。
JDK 22早期访问构建版本 中的第 23 版于上周发布,其中包括对第 22 版的更新以及各种问题的修复。有关该版本的更多详细信息,请参阅发布说明。
对于 JDK 22,鼓励开发人员通过 Java Bug Database 报告缺陷。
Spring Shell 的 3.2.0-M3、3.1.5、3.0.9 和 2.1.14 版本已经发布,并且包含一些值得注意的更改,例如:升级到 JLine 3.24.1,以解决 stdout
在非交互模式下重定向到 stderr
的问题;终端用户界面(Terminal UI)的改进,尤其是自动配置能力;并且解决了 tab 补全可能因延迟初始化而失败的问题。这些版本分别基于 Spring Boot 3.1.0-RC2、3.1.5、3.0.12 和 2.7.17 构建。有关这些版本的更多详细信息,请参阅版本 3.2.0-M3,、版本 3.1.5、版本 3.0.9 和版本 2.1.14 的发布说明。
Quarkus 3.5.1 的发布带来了一些值得注意的变更,例如:修复了 OIDC 作用域为空时权限映射的问题;改进了 Keycloak DevService 中的错误消息和文档;以及由于不稳定而临时禁用 Windows 操作系统上的 VertxMDCTest
类。有关该版本的更多详细信息,请参阅变更日志。
同样,Quarkus 3.2.8 的发布也带来了一些值得注意的变更,例如:修复了在 AccessTokenRequestReactiveFilter
类中定义的 propagateToken()
方法,该方法使用承载方案复制了授权标头;在 QuarkusSecurityTestExtension
类中定义的 afterEach()
方法不应在未使用 @TestSecurity
注释的情况下调用 CDI
类中指定的 current()
方法;以及修复了由于使用 ForwardedProxyHandler
类而导致的 NullPointerException
,该类在找不到记录时允许 null
值。有关该版本的更多详细信息,请参阅变更日志。
这两个版本都解决了 CVE-2023-5720 的问题,在这种漏洞情况下,攻击者可以通过应用程序访问构建系统中的潜在敏感信息,因为在 Quarkus 中发现了一个缺陷,它无法正确清理使用 Gradle 插件创建的构件。所以这样可以保留某些构建系统信息。
Apache Camel 3.14.10 的发布提供了漏洞修复、依赖项升级和一些改进:更改了 SFTP 组件选项 chmodDirectory
中的目录权限;以及在 Meter Registry 组件中收集授权数据。有关该版本的更多详细信息,请参阅发布说明。
为了与 Quarkus 保持一致,Camel Quarkus 3.2.2 也已发布,但没有任何记录在案的重大修复、依赖升级或改进。有关该版本的更多细节,请参阅发布说明。
JDKMon 是一个监视并更新已安装 JDK 的工具,其 17.0.81 版本已于上周发布。这个新版本由 Azul 的首席工程师 Gerrit Grunwald 创建,提供了依赖项升级、Gradle 8.4 的构建升级,以及一些新功能:能够从列表中选择 JEP、JSR 或 OpenJDK 项目,并在默认浏览器中打开该选择;JDK 发行版的工具提示现在也会显示磁盘上的模块数量和大小。
Arquillian 1.7.2.Final 已发布,其为参数化测试的失败提供了修复,尽管测试失败,仍能报告通过。有关该版本的更多详细信息,请参阅问题列表。
Gradle 8.5.0 发布了第一个候选版本,包括:完全支持在 JDK 21 上编译、测试和运行;对 Kotlin DSL 的改进,包括在预编译的 Kotlin 脚本插件中更快地首次使用和版本目录支持;改进了错误和警告的报告。有关该版本的更多详细信息,请参阅发布说明。
上周,2023 J-Fall 会议在荷兰 Ede 的 Pathé Ede 举行,庆祝其成立 20 周年,来自 Java 社区的演讲者 在会前研讨会、主题演讲、50 分钟的会议和 会议议程上发表了闪电演讲。有关 J-Fall 2023 的详细报告请参阅 Eclipse 基金会 Jakarta EE 开发人员倡导者 Ivar Grimstad 的博客文章。
原文链接:
https://www.infoq.com/news/2023/11/java-news-roundup-nov06-2023/
声明:本文由 InfoQ 翻译,未经许可禁止转载。
点击底部阅读原文访问 InfoQ 官网,获取更多精彩内容!
微信扫码关注该文公众号作者