Java近期新闻:WildFly 34、Stream Gatherers、Oracle CPU、Quarkiverse 发布流程

图片

作者 | Michael Redlich
译者 | 明知山
策划 | 丁晓昀
OpenJDK

JEP 485(Stream Gatherers) 已从 Candidate 进入到 Proposed to Target 状态,目标版本为 JDK 24。这个 JEP 提议在经过两轮预览之后完成这个特效:在 JDK 23 中交付的 JEP 473(Stream Gatherers (第二轮预览) 和, 在 JDK 22 中交付的 JEP 461(Stream Gatherers (预览))。该功能旨在增强 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 回归测试工具 jtreg 的 7.5.0 版本已发布,并准备集成到 JDK 中。最重要的变化包括:恢复 jtdiff 工具;支持在 @library 标签指定的目录中的 LIBRARY.properties 文件,这些文件将在 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 Core Profile 之前发布 Jakarta EE 11 Platform 和 Jakarta EE 11 Web Profile。

Jakarta EE 11 将经理四个里程碑版本,必要时可能会发布候选版本,然后在 2024 年第四季度发布 GA 版本。

BellSoft

与 Oracle 发布的 2024 年 10 月关键补丁更新同步,BellSoft 也发布了关键补丁更新,分别针对 Liberica JDK(OpenJDK 下游发行版) 的 21.0.4.0.1、17.0.12.0.1、11.0.24.0.1、8u431、7u441 和 6u441 版本,解决了这些 CVE 问题。此外还发布了包含关键布丁更新和非关键修复的 Patch Set Update (PSU) 版本 23.0.1、21.0.5、17.0.13、11.0.25 和 8u432。

BellSoft 表示,他们总共参与了 1169 个修复和回溯,解决了所有发布版本中的 18 个问题。

Spring Framework

类似的,Spring Framework 6.1.14 也已发布,包含了错误修复、文档改进、依赖项升级和新特性,例如:在 ResourceHandlerUtils 类中移除了对相对路径的支持,消除了潜在的安全问题;确保在遇到格式错误的 Origin 表头时,CorsUtils 类中定义的 isCorsRequest() 方法能够正确处理异常。这个版本将包含在即将发布的 Spring Boot 3.3.5 和 3.2.11 中。有关该版本的更多细节,可在发布说明中找到。

Spring Framework 团队还披露了两个常见的 CVE:

  • CVE-2024-38819,影响 Spring Web MVC 和 Spring WebFlux 的路径遍历漏洞。攻击者可以通过创建恶意 HTTP 请求来获取对运行 Spring 应用程序的服务器文件系统的访问权限。这个 CVE 是 CVE-2024-38816(功能性 Web 框架中的路径遍历漏洞的延续,只是后者使用的是不同的恶意输入。

  • CVE-2024-38820:Java String 类中定义的 toLowerCase() 方法对 Locale 类存在依赖异常,有可能导致字段未能受到预期的保护。这是解决 CVE-2022-22968 所带来的副作用,该解决方案将 DataBinder 类中定义的 disallowedFields 字段的模式变成不区分大小写。

这些 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 的扩展支持,属性占位符现在可以在用 @Query 注解的仓库查询方法中使用。还更新了子项目,如: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。有关该版本的更多细节,可在发布说明中找到。

同样,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 中。

WildFly

WildFly 34 发布,主要关注 WildFly Preview,即 WildFly 服务器的技术预览版本。新功能包括:支持 Jakarta Data 1.0、MicroProfile Rest Client 4.0 和 MicroProfile Telemetry 2.0;WildFly Preview 新的 Bill of Materials;以及 HTTP 管理界面配置中的四个新系统属性(backlog、connection-high-water、connection-low-water 和 no-request-timeout)。有关该版本的更多细节,可在发布说明中找到。InfoQ 将跟进更详细的报道。

Quarkus

Quarkus 团队披露,他们最近发现 Quarkiverse 和 SmallRye 的发布过程中可能存在漏洞,但并没有造成任何损害。

Red Hat 杰出工程师 Clement Escoffier 总结了这个问题,写道:

我们发现在 Quarkiverse 和 SmallRye 的发布流程中存在一个安全漏洞,该漏洞可能被恶意行为者利用,冒充项目发布者并上传恶意篡改的构件。

我们已经采用一个新的、更安全的发布流程来解决这个问题。如果你是维护者,可能已经收到了一个迁移到新流程的拉取请求。Quarkus 本身不受这个问题的影响,问题仅涉及 SmallRye 和 Quarkiverse。

他们采用了更安全的发布流程,并希望与 Java 社区分享这些细节。InfoQ 将跟进更详细的报道。

Micrometer

Micrometer Metrics 1.14.0 首个发布候选版本包含了错误修复、文档改进、依赖项升级和一些新功能,例如:通过 AssertJ 的 assertThat() 方法在 Assertions 类中暴露 TestObservationRegistry 类的实例;增加指标,包含了虚拟线程数据;用排序的唯一标签数组初始化 Tags 类,提高了性能。有关该版本的更多细节,可在发布说明中找到。

同样,Micrometer Metrics 的 1.13.6 和 1.12.11 版本也包含了错误修复、文档改进和一项新特性,即通过移除可以从 FixedBoundaryHistogram 实例访问内部字段来优化 StepBucketHistogram 的内存使用。有关这些版本的更多细节,可在 1.13.6 和 1.12.11 的发布说明中找到。

Micrometer Tracing 1.4.0 首个发布候选版本带来了依赖项升级和新功能:在 Span 和 SpanCustomizer 接口中支持标签中的列表值;将 OtelSpan 类从私有改为公共,避免使用底层的 OpenTelemetrySpan 接口。有关该版本的更多细节,可在发布说明中找到。

Micrometer Tracing 1.3.5 和 1.2.11 仅包含了依赖项升级。有关这些版本的更多细节,可在 1.3.5 和 1.2.11 的发布说明中找到。

Project Reactor

Project Reactor 2024.0.0 首个发布候选版本包含这些依赖项升级:reactor-core 3.7.0-RC1、reactor-netty 1.2.0-RC1、reactor-pool 1.1.0-RC1、reactor-addons 3.6.0-RC1、reactor-kotlin-extensions 1.3.0-RC1 和 reactor-kafka 1.4.0-RC1。从 Spring Calendar 来看,预计 Project 2024.0.0 的 GA 版本将在 2024 年 11 月发布。有关该版本的更多细节,可在更新日志中找到。

Project Reactor 2023.0.11,即第十一个维护版本,包含了 reactor-core 3.6.11 和 reactor-netty 1.1.23 依赖项升级,reactor-pool 1.0.8、reactor-addons 3.5.2、reactor-kotlin-extensions 1.2.3 和 reactor-kafka 1.3.23 保持不变。有关该版本的更多细节,可在更新日志中找到。

Piranha Cloud

Piranha 24.10.0发布,包含了错误修复和一些显著的变化,例如:确保在必要时安装 Eclipse Jersey 的 InjecteeSkippingAnalyzer 实例;在 DefaultServletRequestDispatcher 类中使用 Java 的 PrintStream 类或在 DefaultWebApplicationResponse 类中定义的 isWriterAcquired() 方法,作为对顶级异常的响应。有关该版本的更多细节,可在其文档和问题追踪器中找到。

Apache 软件基金会

Apache TomEE 10.0.0 第三个里程碑版本包含了错误修复、依赖项升级和一些新功能,例如:改进了数据源和实体管理器的导入,不再必要使用 ImportSql 类;新的 RequestNotActiveException 类,替代在没有活动的 Servlet 请求的线程上调用 Jakarta ServletHttpServletRequest 实例时抛出的 NullPointerException。有关该版本的更多细节,可在发布说明中找到。

JobRunr

JobRunr 7.3.1 带来了一些新功能,例如:作为接口而不是实现注入时,JobDetails 的实例是可缓存的;增强的 JobRunr 仪表盘,包含了诊断严重 JobRunr 异常的提示,提高了通知的清晰度。有关该版本的更多细节,可在发布说明中找到。

Keycloak

Keycloak 26.0.1 发布,包含错误修复和一些功能增强:对在同一集群操作符中安装多个 Keycloak Operator 版本的明确说明;改进事务提交期间的错误日志记录。有关该版本的更多细节,可在发布说明中找到。

JDKUpdater

JDKUpdater 14.0.59+79 发布,这是一个新的实用工具,旨在帮助开发者跟踪与 OpenJDK 和 GraalVM 构建相关的更新,由 Azul 首席工程师 Gerrit Grunwald 在 3 月中旬推出,这个版本解决了计算 JDK 下一个更新和下一个发布日期的问题。有关该版本的更多细节,可在发布说明中找到。

Gradle

Gradle 8.11.0 首个发布候选版本带来了一些新功能,例如:通过在配置缓存中引入选择性并行加载和存储缓存条目来提升性能;C++ 和 Swift 插件现在与配置缓存兼容;改进了错误和警告报告,其中 Java 编译错误显示在构建输出的末尾。有关该版本的更多细节,可在发布说明中找到。

查看英文原文:

https://www.infoq.com/news/2024/10/java-news-roundup-oct14-2024/

声明:本文为 InfoQ 翻译,未经许可禁止转载。