一:个人见解,认为一个成熟好用的产品,需要不断修正,日积月累,方能成高楼大厦。
最初计划在2024年7月发布完整的GA版本的Jakarta EE 11,但只有核心配置文件和Web配置文件分别在2024年12月和2025年4月交付。现在,自Jakarta EE 10发布以来已经过去了34个月,Eclipse基金会正式宣布发布包含Jakarta EE 11平台的Jakarta EE 11。虽然这可能使这被描述为"又一个重要的延误",但这是有实际原因的。
二:经过多方努力,最终不断迭代更新。
到2024年5月,所有针对Jakarta EE 11的16个更新规范经过各自的审查和TCKs后,Jakarta EE工作组决定专注于久已拖欠的对过时的技术兼容性工具包(TCK)的现代化和重组。这项工作主要集中在构建工具和测试套件的迁移,即:从Ant到Maven;以及从TestHarness到Arquillian。OpenRewrite,一个用于源代码的开源自动重构生态系统,被用于此目的。进行这项投资的好处包括改进的兼容性测试和随着Jakarta EE生态系统的增长和演变,降低增加更多测试的门槛。
雅加达 EE 11 平台 定义了一个托管所有 Jakarta EE 应用程序的标准平台。它为需要完整 Jakarta EE 规范集以开发企业应用程序的开发人员而设计。平台中包含的规范如下图所示。
雅加达 EE 11 Web 个人资料 定义了 Jakarta EE 平台的一个子集,该子集包含专门用于开发 Web 应用程序的 Web 技术。Web 个人资料中包含的规范如下图所示。
网络配置文件于2025年4月发布,Eclipse GlassFish 8.0.0-M11 作为批准的兼容实现。
Jakarta EE 11 核心配置,在 Jakarta EE 10 中引入,定义了 Jakarta EE 平台规范的一个子集,适用于微服务和提前编译的小型运行时。它专注于为云原生运行时提供最小的基础,包括支持构建时应用的运行时。核心配置中包含的规范如下图所示。
由于规格相对较少,核心配置文件是2024年12月发布的。WildFly预览版 34.0.0和Open Liberty 2024.0.0.11-beta在2024年10月底提交了兼容性认证请求,以证明他们是核心配置文件的兼容实现。
如上图所示,42个规范中的16个在Jakarta EE 11中已更新。请注意,其中有两个规范的名称发生了变化,即:Jakarta Validation(原名Jakarta Bean Validation);和Jakarta Pages(原名Jakarta Server Pages)。Jakarta Server Faces在Jakarta EE 10发布时重命名为Jakarta Faces。
Jakarta Data 1.0,是 Jakarta EE 11 平台和 Web 个人资料的新规范,提供了一个 API,可以轻松访问数据库技术。它可以通过一些功能将持久性与模型分离,例如可以在接口上组合自定义查询方法,框架将实现该接口。目前 Jakarta Data 的实现包括 Hibernate ORM 6.6.0,Eclipse JNoSQL 1.1.4 和 Open Liberty 24.0.0.6。Repository
雅加达 EE 11 中的其他重要更改包括:
- 在 Jakarta Expression Language、Jakarta Persistence和 Jakarta Validation 规范中对 Java Records 的支持。
- 对 Jakarta Concurrency 规范中虚拟线程的支持。
- CDI Lite,是一个新的规范文件,补充了 Jakarta Contexts 和依赖注入 规范,该规范将与解决循环依赖问题相关的规范文本分离出来。
- 从 Jakarta SOAP with Attachments、 Jakarta XML Web Services 和 Jakarta XML Binding 规范中删除了 Jakarta EE 10 最后更新的可选功能。
- 移除对Java的引用SecurityManager,该Java在JDK 17中已过时,在JDK 24中永久禁用。
- 移除遗留@MangedBean注释。
Ed Burns,微软Java首席架构师和Jakarta EE 11发布协调员,对Jakarta EE工作小组的努力进行反思,告诉InfoQ:
我们的企业软件开发领域正处于一个关键阶段。生成式AI已经创造了对产品开发速度显著加快的期望。这些期望直接挑战了我们所习惯的雅加达EE标准的、审慎的、是的,缓慢的开发节奏。
虽然雅加达 EE 11 的发布比我希望的要晚得多,但它确实展示了我们如何安排自己以更快移动的两种重要方式。
证明新的技术可以添加到标准中并带来价值。完成雅加达 EE 历史上最大的技术债务偿还。
对于1,雅加达数据是标准的最佳体现:从其他地方汲取经过验证的经验教训,并尽可能广泛的传播,而不将价值困在某个单一供应商手中。
对于2,雅加达 EE TCK 已经重新平台化在当前测试技术上,移除了一个自 JUnit 广泛使用以来就未维护的测试技术的关键依赖。
Jakarta EE 11 带来了许多其他价值,但这些是渐进式的,并且坦率地说,对于一种代表稳定性和 IT 投资保护的技术来说是非常合适的。
在2023年3月,Steve Millidge,Payara的首席执行官,描述了如何让Jakarta EE 11成为“Jakarta的第一大飞跃”,写道:
从最初的移植和迁移 [Jakarta EE 8],到 Jakarta EE 9 的新命名空间更改,再到 Jakarta EE 10 中的简化工作,为开源开发者构建 Jakarta EE 提供了坚实的基础。
完成这些工作后,现在有机会将 Jakarta EE 带入 Java EE 时代之外。随着 Java 21 即将到来,现在有机会确保 Jakarta EE 始终利用新 Java 版本的最新功能,构建新的规范,并进一步统一和简化平台。
对于 Jakarta EE 11,有一项新的规范和一个全新的 TCK,米利奇两年多前的想法似乎已经尘埃落定。
关于 Jakarta EE 11 新功能的更多详细信息,请参阅 Eclipse 基金会 的博客文章,作者是 Tanja Obradovic,Eclipse 基金会 Jakarta EE 项目管理经理。