Java 近期更新:OpenJDK JDK Jakarta EE Spring等
OpenJDK
JEP 485流收集器已从候选提升为提议,并成为 JDK 24 的目标。此 JEP 提议在两轮预览之后完成此功能,即:JEP 473:流收集器(第二预览),在 JDK 23 中交付;以及 JEP 461,流收集器(预览),在 JDK 22 中交付。此功能旨在增强 Stream API 以支持自定义中间操作,这将“允许流管道以现有内置中间操作不易实现的方式转换数据”。有关此 JEP 的更多详细信息,请参阅原始设计文档和此 InfoQ新闻报道。审查预计将于 2024 年 10 月 23 日结束。
Oracle 已发布JDK 23.0.1、21.0.5、17.0.13、11.0.25 和 8u431 版本,作为 2024 年 10 月季度重要补丁更新公告的一部分。有关此版本的更多详细信息,请参阅版本23.0.1 、版本21.0.5 、版本17.0.13 、版本 11.0.25和版本 8u431的发行说明。
JDK 回归测试工具 7.5.0 版jtreg已发布,可集成到 JDK 中。最重要的变化包括:jtdiff工具的恢复;以及支持LIBRARY.properties位于标记中指定目录中的文件@library,并在jtreg编译该库中的类时读取。依赖项也升级到 JUnit 5.11.0。有关此版本的更多详细信息,请参阅发行说明。
JDK 24
JDK 24早期版本Build 20已于上周发布,其中包含Build 19 的更新,包括对各种问题的修复。有关此版本的更多详细信息,请参阅发行说明。
对于JDK 24,鼓励开发人员通过Java Bug 数据库报告错误。
Jakarta EE 11
Eclipse 基金会的 Jakarta EE 开发倡导者Ivar Grimstad在其每周的Hashtag Jakarta EE博客中提供了Jakarta EE 11 的最新消息,他写道:
GlassFish 现在通过了 Jakarta EE 11 重构 TCK 中的 84% 测试。其余测试主要与应用程序客户端容器有关。Jakarta EE 平台项目提议在 Jakarta EE 12 中弃用应用程序容器。关于这些测试应该在多大程度上赋予 Jakarta EE 11 以重要性,目前正在进行讨论。
Jakarta EE 11 Core Profile TCK 已准备就绪,Open Liberty 和 WildFly 都已通过(或接近通过)该标准。因此,看起来我们将能够先于Jakarta EE 11 Platform和Jakarta EE 11 Web Profile发布Jakarta EE 11 Core Profile。
Jakarta EE 11 之路包括四个里程碑版本,在 2024 年第四季度 GA 版本发布之前,可能会根据需要发布候选版本。
Spring Framework
Spring Framework 6.2.0的第二个候选版本提供了错误修复、文档改进、依赖项升级以及许多新功能,例如:重命名类以与包中定义的其他类、接口和注释的现有命名约定保持一致;以及向接口添加方法以允许设置接口的转换器而无需初始化默认转换器。此版本将包含在即将发布的 Spring Boot 3.4.0-RC1 中。有关此版本的更多详细信息,请参阅发行说明。OverrideMetadataBeanOverrideHandlerorg.springframework.test.context.bean.overridemessageConverters()RestClient.BuilderRestClient
同样,Spring Framework 6.1.14 版本的发布ResourceHandlerUtils也提供了错误修复、文档改进、依赖项升级和新功能,例如:删除类中对相对路径的支持,从而消除安全问题;并确保在遇到格式错误的标头时,从类isCorsRequest()中定义的方法正确处理异常。此版本将包含在即将发布的 Spring Boot 和 3.3.5 和 3.2.11 版本中。有关此版本的更多详细信息,请参阅发行说明。CorsUtilsOrigin
Spring Framework 团队还披露了两个常见漏洞和暴露(CVE):
- CVE-2024-38819是Spring Web MVC和Spring WebFlux功能性 Web 框架中的一个路径遍历漏洞,攻击者可以利用该漏洞创建恶意 HTTP 请求,以获取文件系统上的任何文件,而运行中的 Spring 应用程序上的进程也可以访问该文件。此 CVE 是 CVE-2024-38816 (功能性 Web 框架中的路径遍历漏洞)的后续漏洞,使用了不同的恶意输入。
- CVE-2024-38820:toLowerCase()JavaString类中定义的方法存在一些Locale与类相关的异常,可能导致字段无法按预期受到保护。这是CVE-2022-22968解决方案的结果,该解决方案使类disallowedFields中定义的字段的模式DataBinder不区分大小写。
这些 CVE 影响 Spring Framework 版本 5.3.0 - 5.3.40、6.0.0 - 6.0.24 和 6.1.0 - 6.1.13。
Spring Data 2024.1.0的第一个候选版本提供了对Spring Data Value Expressions的扩展支持,其中可以在使用 注释的存储库查询方法中利用属性占位符。还更新了以下子项目:Spring Data Commons 3.4.0-RC1、Spring Data MongoDB 4.4.0-RC1、Spring Data Elasticsearch 5.4.0-RC1 和 Spring Data Neo4j 7.4.0-RC1。有关此版本的更多详细信息,请参阅发行说明。@Query
同样, Spring Data 2024.0.5 和 2023.1.11 的发布也附带了错误修复和对子项目的相应依赖项升级,例如:Spring Data Commons 3.3.5 和 3.2.11;Spring Data MongoDB 4.3.5 和 4.2.11;Spring Data Elasticsearch 5.3.5 和 5.2.11;以及 Spring Data Neo4j 7.3.5 和 7.2.11。这些版本将包含在即将发布的 Spring Boot 和 3.3.5 和 3.2.11 版本中。
Project Reactor
Project Reactor 2024.0.0的第一个候选版本提供了对、、、和 的依赖项升级。根据Spring Calendar,预计 Project 2024.0.0 的 GA 版本将于 2024 年 11 月发布。有关此版本的更多详细信息,请参阅变更日志。reactor-core 3.7.0-RC1reactor-netty 1.2.0-RC1reactor-pool 1.1.0-RC1reactor-addons 3.6.0-RC1reactor-kotlin-extensions 1.3.0-RC1reactor-kafka 1.4.0-RC1
接下来,Project Reactor 2023.0.11(第 11 个维护版本)提供了对reactor-core 3.6.11和 的依赖项升级reactor-netty 1.1.23。版本 2023.0.11 也进行了重新调整,其中reactor-pool 1.0.8、reactor-addons 3.5.2和工件保持不变。有关此版本的更多详细信息reactor-kotlin-extensions 1.2.3,reactor-kafka 1.3.23请参阅变更日志。
Apache TomEE
Apache TomEE 10.0.0的第三个里程碑版本提供了错误修复、依赖项升级和新功能,例如:改进了数据源和实体管理器的导入,从而淘汰了类的使用;以及一个新类,当在没有活动 servlet 请求的线程上调用Jakarta Servlet 实例时,该类取代了抛出。有关此版本的更多详细信息,请参阅发行说明。ImportSqlRequestNotActiveExceptionNullPointerExceptionHttpServletRequest
JDKUpdater
JDKUpdater 14.0.59+79 版是一款新实用程序,它使开发人员能够跟踪与 OpenJDK 和 GraalVM 版本相关的更新。该版本由Azul 首席工程师Gerrit Grunwald于 3 月中旬推出,解决了计算 JDK 的下一次更新和下一次发布日期的问题。有关此版本的更多详细信息,请参阅发行说明。
Gradle
Gradle 8.11.0的第一个候选版本提供了一些新功能,例如:通过选择并行加载和存储缓存条目来提高配置缓存的性能;C++和Swift插件现在与配置缓存兼容;以及改进的错误和警告报告,其中Java 编译错误现在显示在构建输出的末尾。有关此版本的更多详细信息,请参阅发行说明。