
Java 30 岁生日
1995 年 5 月 23 日,在加利福尼亚旧金山的 Sun World 技术大会上,Sun Microsystems 正式推出了 Java 编程语言。为纪念这一里程碑事件,Oracle 举办了 30 周年纪念活动,该活动由 Java 开发者布道师 Ana-Maria Mihalceanu、Billy Korando 和 Nicolai Parlog 以及 Oracle 产品管理与开发者参与高级总监 Sharat Chander 主持。这场特别的六小时活动涵盖了众多主题和嘉宾。InfoQ 将后续发布更详细的新闻报道。
OpenJDK
随着 2025 年 6 月 5 日第一阶段减速期的到来,以下 JEP 已从 Proposed to Target 进入到 Targeted 状态,目标版本为 JDK 25:
JEP 514:提前命令行人体工程学(公告)
JEP 508:向量 API(第十个孵化器)(公告)
JEP 507:模式、instanceof 和 switch 中的原始类型(第三次预览)(公告)
同样,以下 JEP 已从 Candidate 进入到 提议目标 状态,目标版本为 JDK 25:
JEP 521:分代的 Shenandoah(公告)
JEP 520:JFR 方法计时与跟踪(公告)
JEP 470:密码学对象的 PEM 编码(预览)(公告)
对 Proposed to Target 状态 JEP 的评审于 2025 年 5 月 27 日星期二结束。
JDK 回归测试工具 jtreg 的 7.5.2 版本已发布,并已准备好集成到 JDK 中。最重要的变化包括:支持通过 ${test.main.class}
模板在测试动作中使用当前类名;能够通过属性文件在 jtreg
测试中配置默认超时值;为修补的 Java 模块中的 .jasm
和 .jcod
文件提供支持。有关此版本的更多详细信息,可在发行说明中找到。
JDK 25
JDK 25 早期访问版本 的 Build 24 已发布,其中包含自 Build 23 以来的更新,包括对各种问题的修复。有关此版本的更多详细信息,可在发行说明中找到。
对于 JDK 25,开发者可以通过 Java Bug Database 报告错误。
Jakarta EE
Eclipse 基金会 Jakarta EE 开发者布道师 Ivar Grimstad 在每周的 Hashtag Jakarta EE 博客中提供了有关 Jakarta EE 11 和 Jakarta EE 12 的更新 :
Jakarta EE 11 TCK 非常接近最终定稿,因此我们似乎有望在 6 月中旬发布 Jakarta EE 11 Platform。
Jakarta EE 12 的工作正按照 Jakarta EE 12 发布计划推进。计划评审已经完成,目前的讨论集中在是否向平台添加(如果有)某些规范,以及是否可能弃用某些规范。
Jakarta EE 11 的发布历程包括四个里程碑版本,2024 年 12 月发布的 Core Profile,2025 年 4 月发布的 Web Profile,以及在 2025 年 6 月预期 GA 发布之前平台的第一个候选版本。
Spring Framework
Spring 团队发布 Spring Boot、Spring Security、Spring Authorization Server、Spring Session、Spring Integration、Spring for GraphQL、Spring AI 和 Spring Web Services 的 GA 版本。更多详细信息可在 InfoQ 的新闻报道中找到。
Spring Data 团队介绍了他们降低应用启动时间相关技术(GraalVM、CRaC、CDS 等)入门门槛的计划。随着 Spring Data 2025.1(即 4.0 版本)即将发布,仓库将迁移到提前编译。这意味着他们将把“应用启动时完成的所有仓库准备工作转移到构建阶段”,这可以通过将 spring.aot.repositories.enabled
属性设置为 true
来实现。
Microsoft Azure
微软推出新的 Azure Java 命令启动器 jaz,用以解决“基于云的部署中资源利用效率低下,内存和 CPU 倾向于为应用工作负载(使用容器和虚拟机)预留,但仍需要智能管理以最大化效率和成本效益”的问题。这意味着,开发者不再需要这么写:
$ JAVA_OPTS="-XX:... several JVM tuning flags" $ java $JAVA_OPTS -jar myapp.jar"
现在可以这么写:
$ jaz -jar myapp.jar
jaz
目前处于私密预览阶段,可在这里提交访问请求。
Open Liberty
IBM 发布 Open Liberty 25.0.0.5 版本,包含了错误修复以及 MicroProfile Telemetry 2.0(mpTelemetry-2.0
)收集和发送 Open Liberty HTTP 访问日志的能力,例如导出跟踪、指标和日志到 OpenTelemetry。
Quarkus
Quarkus 团队宣布 Quarkus MCP Server 1.2.0 现在支持可流式传输的 HTTP,以及 stdio
和 SSE
传输,这使得移动应用和云服务能够连接到 MCP 服务器。尽管这被认为已经是一个完整的实现,但 Quarkus 团队仍然计划在未来版本中加入可恢复性和重新传递能力。
Hibernate
Hibernate ORM 7.0.0.Final 发布,包含了一些新特性,例如:新的 QuerySpecification 接口,为所有查询规范提供了一组通用方法,允许迭代、程序化地构建查询;从 Hibernate Commons Annotations(HCANN)迁移到新的 Hibernate Models 项目。它还支持 Jakarta Persistence 3.2 规范,这是针对 Jakarta EE 11 的最新版本。有关此版本的更多详细信息,可在发行说明和迁移指南中找到。
Hibernate Validator 9.0.0.Final 发布,包含了错误修复、依赖项升级和一些显著的变化,例如:新的约束,@KorRRN 和 @BitcoinAddress 注解分别检查有效的韩国居民登记号码和 BTC(比特币)主网地址;一个新的 BOM,为所有发布的构件提供依赖管理。此版本是 Jakarta Validation 3.1 规范的兼容实现。
有关这两个版本的更多详细信息,可在相关博文中找到,作者是 Gavin King,IBM 高级杰出工程师以及 Hibernate 的创建者。
Embabel Agent Framework
Rod Johnson,Atomist 前首席执行官以及 Spring Framework 之父,介绍了 为 JVM 编写的 Embabel Agent Framework。正如 Johnson 所描述的:
它引入了一些我认为新颖的想法:使用非 LLM AI 算法的规划步骤;以及一个丰富的领域模型,可以将行为暴露成 LLM 工具,而且可以在 Java 或 Kotlin 代码中使用。
Embabel 基于 Spring 构建,并提供与 Spring AI 的 MCP 集成。InfoQ 将后续发布更详细的新闻报道。
JobRunr
JobRunr 8.0.0 的 第一个 beta 版本 发布,特性包括:提前调度的重复作业,JobRunr 会在前一次运行完成后立即调度重复作业;对 Kotlin 序列化的支持,新增了 KotlinxSerializationJsonMapper 类,实现了 JsonMapper 接口,用于在 Kotlin 编写的 JobRunr 应用程序中提供更好的体验。有关此版本的更多详细信息,可在发行说明中找到。
Eclipse DataStore
Eclipse 基金会和 Microstream 推出了一个新的开源项目,Eclipse DataGrid,旨在为分布式 EclipseStore 应用程序提供一个纯 Java 的内存数据处理层。Microstream 将开源他们的内存数据平台,并将代码库转移到 Eclipse DataGrid。特性包括:分布式 Java 对象图模型;与 Java Streams API 的无缝集成;以及与 Apache Lucene 和 Kubernetes 的集成。
原文链接:
https://www.infoq.com/news/2025/05/java-news-roundup-may19-2025/
评论