2024 年 12 月 2 日这一周的 Java 新闻综述要点:JDK 24 进入 Rampdown 第一阶段;JDK 25 专家组成立;Jakarta EE 11 Core Profile 和 Spring Cloud 2024.0.0 发布;以及 GlassFish、Open Liberty、Quarkus 和 Apache Camel 的新版发布。
JDK 24 早期版本的 Build 27 已于上周发布,其中包含 Build 26 以来的更新和对各种问题的修复。有关此版本的更多细节,请参阅发行说明。
根据 JDK 24 的发布时间表,Oracle Java 平台组首席架构师 Mark Reinhold 正式宣布 JDK 24 已进入 Rampdown 第一阶段。这意味着主线源代码存储库已分叉到 JDK 稳定存储库,并且不会为 JDK 24 添加任何额外的 JEP。因此,2025 年 3 月 GA 版本的最终 24 个特性集将包括:
JEP 404:分代 Shenandoah(实验性)
JEP 450:紧凑对象标头(实验性)
JEP 472:准备限制 JNI 的使用
JEP 475:G1 的后期屏障扩展
JEP 478:密钥派生函数 API(预览)
JEP 479:删除 Windows 32 位 x86 端口
JEP 483:提前类加载和链接
JEP 484:类 - 文件 API
JEP 485:流收集器
JEP 486:永久禁用安全管理器
JEP 487:范围值(第四个预览)
JEP 488:模式、instanceof 和 switch 中的原始类型(第二个预览)
JEP 489:矢量 API(第九个孵化器)
JEP 490:ZGC:删除非生成模式
JEP 491:同步虚拟线程而不固定
JEP 492:灵活的构造函数主体(第三个预览)
JEP 493:链接运行时映像而不使用 JMOD
JEP 494:模块导入声明(第二个预览)
JEP 495:简单源文件和实例主方法(第四个预览)
JEP 496:基于量子抗性模块格的密钥封装机制
JEP 497:基于量子抗性模块格的数字签名算法
JEP 498:在 sun.misc.Unsafe 中使用内存访问方法时发出警告
JEP 499:结构化并发(第四个预览版)
JEP 501:弃用 32 位 x86 端口以移除
JSR 400(Java SE 25)于上周获得批准,正式宣布了 JDK 25 的四人专家组,即 Simon Ritter(Azul Systems)、Iris Clark(Oracle)、Andrew Haley(Red Hat)和 Christoph Langer(SAP SE)。Clark 将担任规范负责人。当前的其他关键日期包括 2025 年 6 月至 8 月的公开审查和 2025 年 9 月的 GA 版本。
JDK 25 早期访问版本的 Build 0 和 Build 1 也于上周发布,其中包含解决一些初始问题的更新。
对于 JDK 24 和 JDK 25,鼓励开发人员通过 Java Bug 数据库报告错误。
Eclipse 基金会 Jakarta EE 开发倡导者 Ivar Grimstad 在其每周的 Hashtag Jakarta EE 博客中提供了 Jakarta EE 11 的最新进展,他写道:
Jakarta EE 11 Core Profile 的投票已经完成!这意味着该规范已获得批准并可以发布。这在多个层面上都是一个里程碑。首先,我们在 2024 年发布了 Jakarta EE 11(至少是部分)。其次,我们独立于 Platform 和 Web Profile 规范发布了 Core Profile 规范。这是我们一直想做的事情,也验证了我们能够充分解耦依赖关系以使其成行。 Jakarta EE 11 Platform 和 Jakarta EE 11 Web Profile 规范的投票仍有一丝希望,投票将在年底前开始。
Jakarta EE 11 之路包括四个里程碑版本、核心配置文件的发布,以及在 2025 年 1 季度平台和 Web 配置文件的 GA 发布之前根据需要发布的候选版本。
GlassFish 7.0.20 是第二十个维护版本,它提供了依赖项升级和对一些值得注意的问题的解决方案,例如:由于 Jakarta Faces ViewExpiredException,在管理控制台中会话超时后无法重定向到主页或登录页面;以及在更新 logging.properties 文件时创建无限数量的日志泵线程。有关此版本的更多细节,请参阅发行说明。
Oracle Labs 发布了 Native Build Tools 0.10.4 版,这是一个 GraalVM 项目,由用于与 GraalVM 原生映像互操作的插件组成。最新版本提供了一些值得注意的变化,例如:确保在 AgentConfiguration 类中定义的 accessFilter 输入流是线程安全的;以及对原生映像 SBOM 生成的改进。有关此版本的更多细节,请参阅变更日志。
Oracle 实验室还发布了 Graal Development Kit for Micronaut 4.6.0.6 版本,与 Micronaut 4.6.0 保持一致。Graal Development Kit for Micronaut 以前称为 Graal Cloud Native,它提供了一组精选的 Micronaut 框架模块,可简化云应用程序开发。其发行说明仅涵盖了针对特定操作系统的下载、Oracle Maven 中的 GDK 工件列表以及使用 macOS Catalina 及更高版本的开发人员如何删除隔离属性的说明。
在 Spring Cloud 2023.0.4(代号为 Leyton)发布后不到一周,Spring Cloud 2024.0.0(代号为 Moorgate)已发布,其中包含错误修复和对一些子项目的重要更新:Spring Cloud Kubernetes 3.2.0;Spring Cloud Function 4.2.0;Spring Cloud OpenFeign 4.2.0;Spring Cloud Stream 4.2.0 和 Spring Cloud Gateway 4.2.0。此版本基于 Spring Boot 3.4.0。有关此版本的更多细节,请参阅发行说明。
Spring Tools 4.27.0 版已发布,其中包含错误修复、Eclipse 2024-12 更新以及新特性,例如:支持 Spring Boot @ConditionalOnProperty 注释,包括完成、导航到定义和查找引用;以及支持在 Spring Data JPA @Query 注释内连接字符串以进行数据查询。有关此版本的更多细节,请参阅发行说明。
IBM 发布 了 Open Liberty 24.0.0.12 版,其特点是:支持 MicroProfile 7.0;持续改进 SameSite 并改进处理 SameSite=None cookie 值,而无需担心破坏某些客户端版本;以及对 CVE-2024-7254 的解决方案,该漏洞影响 IBM 的 grpc-1.0 和 grpcClient-1.0 特性,攻击者可能会在解析不受信任的协议缓冲区数据时破坏嵌套组 / 一系列 SGROUP 标签。有关 MicroProfile 7.0 和 Open Liberty 的更多细节,请参阅 IBM Liberty Cloud Native 架构师 Emily Jiang 的这篇博客文章。
Quarkus 3.17.3 是第二个维护版本(由于回落而跳过了 3.17.1),包含了依赖项升级和对以下重要问题的解决方案:由 SmallRye Config PropertyName 类引起的,来自 BuildTimeConfigurationReader 类中定义的 mappingToNames() 方法的 NullPointerException;使用 JDK 23 和 JDK 24 的 JLine 控制台启动时间的回归,通过添加 -Djdk.console=java.base 标志解决了该问题。有关此版本的更多细节,请参阅变更日志。
Apache Camel 4.9.0 的发布提供了错误修复、依赖项升级和新特性,例如:支持 OAuth2 在 Camel HTTP 组件中缓存和刷新令牌;以及将 Smooks Camel Cartridge 迁移到主代码库。有关此版本的更多细节,请参阅发行说明和新特性页面。
Java Operator SDK 5.0.0 的第一个测试版附带一些新特性,例如:Kubernetes 服务器端应用已提升为一等公民,并采用默认方法修补状态资源;以及 EventSource 接口的职责发生变化,以监控资源并处理访问缓存资源、过滤和曾经由 ResourceEventSource 子接口维护的其他特性。有关此版本的更多细节,请参阅变更日志。
Keycloak 26.0.7 是第七个维护版本,它修复了大量错误,改进了文档,并将依赖项升级到 Infinispan 15.0.11。有关此版本的更多细节,请参阅发行说明。
Ktor 3.0.2 是第二个维护版本,它解决了一些值得注意的问题,例如:当服务器发送无效标头 cache-control: max-age: 120(其中应在 max-age 后使用等号)时,使用 HttpClient 的 HttpCache 插件时出现 IndexOutOfBoundsException;以及使用 FileItem 类中定义的已弃用的 streamProvider() 方法(该方法没有实现)时应用程序会崩溃。有关此版本的更多细节,请参阅发行说明和新特性页面。
原文链接:
Java News Roundup: JDK 24 in Rampdown, JDK 25 Expert Group, Jakarta EE 11 Core Profile, Spring Cloud (https://www.infoq.com/news/2024/12/java-news-roundup-dec02-2024/)
声明:本文为 InfoQ 翻译,未经许可禁止转载。
700 多亿打水漂后,这家巨头突然舍弃了无人驾驶出租车业务!新老员工炸锅:刚还在加班、“一群傻瓜”