Java近期新闻:JDK 26的OpenJDK JEP、Spring RC、Quarkus、JReleaser、Seed4J和Gradle
来源: InfoQ - 后端
OpenJDK
JEP 525,结构化并发(Structured Concurrency,第六轮预览)",已从JDK 26的Candidate提升"为Proposed to Target。这个JEP提出了在JDK 19至JDK 25中经过五轮预览后的第六次预览。这个特性通过引入结构化并发的概念来简化并发编程,将“在不同线程中运行的一组相关任务视为一个工作单元,从而简化错误处理和取消,以提高可靠性,并增强可观测性”。唯一的重大变化是向StructuredTaskScope.Joiner接口添加了一个onTimeout()方法,允许该接口的实现在超时后返回结果。审查会在2025年11月7日结束。
JEP 529,向量API(Vector API,第十一轮孵化)",已从JDK 26的Candidate提升"为Proposed to Target。这个JEP提出了第十一轮孵化,自JDK 25以来没有实质性的实现变化,经过从JDK 16至JDK 25的十轮孵化。这个特性引入了一个API来“表达向量计算,这些计算在支持的CPU架构上能够可靠地在运行时编译为最优的向量指令,从而实现比等效标量计算更优越的性能”。向量API将继续孵化,直到Project Valhalla"的必要特性作为预览特性可用。到时候,向量API团队将适应向量API及其实现以使用它们,并将向量API从孵化提升为预览。
JEP 516,使用任意GC的Ahead-of-Time对象缓存(Ahead-of-Time Object Caching with Any GC)",已从JDK 26的Candidate提升"为Proposed to Target。这个JEP提议增强JDK 24中交付的JEP 483,Ahead-of-Time类加载和链接(Ahead-of-Time Class Loading & Linking)",以改善启动和预热时间,使其可以与任何垃圾收集器一起使用,包括低延迟的Z垃圾收集器(ZGC)。
JEP 500,为Final名副其实做好准备(Prepare to Make Final Mean Final)",已从JDK 26的Candidate提升"为Proposed to Target。这个JEP提议让Java生态系统做好准备,将不允许使用深度反射(通常使用AccessibleObject类中定义的setAccessible()方法)来改变声明为final的字段。
JEP 529、JEP 516和JEP 500的审查会在2025年11月6日结束。
JEP 530,模式、instanceof和switch中的原始类型(Primitive Types in Patterns, instanceof, and switch,第四次预览)",已从JEP Draft 8359136提升"为候选状态。这个JEP提出了在JDK 25至JDK 23中经过三轮预览后的第四轮预览,其中有两个变化:增强无条件精确性"的定义,以及在switch构造中应用更严格的支配性"检查。
JDK 26
JDK 26的早期访问构建"版本Build 22"发布,包括对Build 21的更新",修复了各种问题"。有关此版本的更多详细信息,可在发布说明"中找到。
对于JDK 26",鼓励开发者通过Java Bug数据库"报告缺陷。
Jakarta EE
在每周的Hashtag Jakarta EE"博客中,Eclipse基金会的Jakarta EE开发者倡导者Ivar Grimstad"介绍了Jakarta EE 12的更新",他这样写到:
Jakarta EE Platform项目为Jakarta EE 12"的第二个里程碑设定了日期,即12月9日。这个里程碑将包含所有正在讨论的任务,并且很可能在未来几周内确定。这些任务以前没有添加到交付M1规范的Milestone 1中。 Jakarta Agentic人工智能"规范的提议"目前正在Jakarta EE规范委员会"中进行创建审查"。审查会在11月5日结束,但到目前为止,看起来它将能够通过。根据投下非约束性社区投票的社区成员数量来看,这是一个热门话题,也是社区真正想要的东西。就我而言,我不记得有任何Jakarta EE规范会在社区获得如此多的支持。
根据发布计划",开发者可以期待Jakarta EE 12的最终版本在2026年7月发布。
Spring Framework
Spring Framework" 7.0.0的第三个发布候选版本"提供了缺陷修复、文档改进、依赖关系升级和新功能,例如,对RestTestClient接口的增强,包括对AssertJ"的支持,以及移除Hamcrest"依赖,转而使用MockMvcTester类;在CRaC恢复应用程序后解决潜在的挂起问题。团队表示,这应该是在2025年11月底GA版本之前的最后一个发布候选版本。有关该版本的更多信息,可以参阅发布说明"和wiki页面"。
Spring Data" 2025.1.0的第二个发布候选版本"包括以下内容,对子项目(如Spring Data Commons、Spring Data JPA、Spring Data MongoDB、Spring Data LDAP、Spring Data Cassandra、Spring Data KeyValue、Spring Data Elasticsearch)的JSpecify"支持;使用Spring AOT"框架在构建时优化Spring Data仓库的能力。更多关于此版本的详细信息可以在发布说明"中找到。
Quarkus
Quarkus" 3.29.0发布",提供了缺陷修复、依赖关系升级和新特性,例如,支持同时使用多种缓存类型(后端)以允许使用不同的缓存来利用内存或分布式提供者;在Qute"扩展中支持Debug Adapter Protocol (DAP)"。关于此版本的更多详细信息可以在发布说明"中找到。
JReleaser
JReleaser" 1.21.0版本发布",这是一个简化创建项目发布的Java工具,功能包括,通过Reddit API"在Reddit上发布公告的能力;支持在GitHub上启用不可变发布";将JReleaser配置属性signing.mode设置为COMMAND解决PGP签名问题。更多关于此版本的详细信息可以在发布说明"中找到。
Seed4J
Seed4J" 2.1.0发布,包括缺陷修复、文档改进、依赖关系升级和新功能,例如,对JDK 25的支持;与Angular组件相关的健康类型定义的改进;添加了与Angular一起使用的Tailwind CSS"。
Seed4J,原名JHipster Lite",是一个“模块化代码生成器,帮助开发人员以清晰、结构化和有目的的方式引导他们的应用程序。”
更多详细信息可以在发布说明"和InfoQ关于Seed4J 2.0最新发布的新闻报道"中找到。
Gradle
Gradle" 9.2.0发布",提供了以下内容,支持在运行Windows ARM(ARM64)的设备上执行Gradle构建;通过PublishingExtension接口公开
SoftwareComponentFactory接口,改进自定义组件"的创建和发布;改进错误和警告的报告"。更多关于此版本的详细信息可以在发布说明"中找到。
原文链接:
Java News Roundup: OpenJDK JEPs for JDK 26, Spring RCs, Quarkus, JReleaser, Seed4J, Gradle"