Eclipse 基金会最近发布了 MicroProfile 的 1.4 及 2.0,对 API 进行了更新,为每个 API 添加了全面测试兼容性套件、 Maven 坐标、Javadocs 和 Git 标签。这些版本和 Java EE 7 及 Java EE 8 是完全一致的。
MicroProfile 1.4
1.4 是 1.3 的更新,将是 1.x 系列的最后一个版本,包括安全性和其他对以下 API 的增强性能:
- 开放追踪(给服务器添加组件标签)。
- Rest 客户端(添加异步方法并与其他 MicroProfile 更好地集成)。
- JWT 传播(添加对公钥配置的支持)。
- 配置(对隐式转换器和安全更新的改进)。
MicroProfile 1.4 完全匹配 Java EE 7,代码示例可以在 GitHub 上找到。
MicroProfile 2.0
在其诞生两年之后,MicroProfile 1.4 的升级版 2.0 是最新的发布,包括对 CDI 、 JSON-P 和 JAX-RS API 的更新。另外,2.0 中添加了新的 API、 JSON-B 。
MicroProfile 2.0 完全匹配 Java EE 8。新功能包括:
- Java EE 8 API 的新功能。
- 改进了易用性。
- 基于 CDI 和程序化的易用界面。
- API 之间的集成点更多。
MicroProfile 2.0 将作为未来更新的基础。正如发布中所述:
Eclipse 的 MicroProfile 继续为每个版本提供额外价值,并在其社区成员的动态帮助下成功发展。未来的版本将更新现有的 API 及添加新的 API。比如,社区已经开始讨论以下主题:
长期行动
响应式流
响应式事件
数据访问
事件数据
MicroProfile 和 Jakarta EE
MicroProfile 和 Jakarta EE 之间的协同效应引发了一些猜测,认为这两个平台可能合并。
IBM 的 MicroProfile 架构师 Kevin Sutter 在最近的一篇博文中说:
这是我在论坛、会议中(甚至在 IBM 内部)被问及最多的问题之一。Eclipse MicroProfile 相当完善的,拥有若干关键功能和版本,并且目前正在用 Eclipse Jakarta EE 建立 Java EE 的未来。这两股力量何时会结合在一起?这很难说。
这两个 Eclipse 项目都有其优点,并正在各自的领域内取得进展,其中 MicroProfiles 技术建立于为 Jakarta EE 提供贡献的基础之上。但是,这些项目本身是否准备好合并?恕我直言,不,还没有。MicroProfile 已经有了巨大的进步,起初它并不起眼。我们有几个新的组件功能和版本,可扩展用于微服务开发的企业 Java 编程模型。并且,我们在相对较短的时间里已经完成了这项工作:在不到两年的时间里发布了 6 个主要 MicroProfile 版本和 16 个主要组件。
由于这一举措的艰巨性和复杂性,Jakarta EE 还没有准备好配合这个进展速度。同时,由于 Jakarta EE 还没有完成其规范流程的定义,因此,还没有准备好接受 MicroProfile 所要求的快节奏发布周期。最大的区别在于,MicroProfile 从未尝试成为标准机构。MicroProfile 产生了业界认可的规范,而不是标准。Jakarta EE 正在试图用更现代、开放和轻量级的实现优先的流程替代 JCP 标准机构。
响应式编程模型的努力最终以 Jakarta EE 为目标。来自 Lightbend 的团队寻找最好的方式以将一些他们的响应式编程想法融入企业 Java 领域。他们确定,立即取得进展的最快方法是开发 MicroProfile 组件。
Lightbend 是一个相对较新的 Jakarta EE 参与成员,最近任命 James Roper 作为首个贡献者,在 MicroProfile 团队中代表 Lightbend。James Roper 是 Lightbend 的 Lagom 微服务框架的高级开发员和共同创建者。在最近 InfoQ 对其的采访中,被问及计划如何为 MicroProfile 做出贡献时,Roper 说:
我的贡献(以及 Lightbend 更广泛的贡献)将主要围绕新 Reactive 规范。我们已经完成了第一件事,那就是帮忙勾勒出在 MicroProfile 中编写 Reactive API 和采用 Reactive 功能的方法。作为编写这种方法的一个产品,我们发现,MicroProfile 需要 Reactive Stream 操作 API,使 MicroProfile 开发人员可以和 Reactive Stream 进行交互。
该 API 的规范即将完成。这将导致下一个被称为 MicroProfile Reactive Messaging 的规范,该规范允许基于 Reactive Stream 的服务之间消息流的使用、发布和处理。这是目前我们关注的重点。
一旦完成这些规范,下一步我们将继续寻找 MicroProfile 能够从 Reactive 方式中获益的方法,并期待在这些领域继续做出贡献。今天,大家已经在探讨 MicroProfiles 的持久性主题了,在 Lightbend,我们有很多解决持久性困难上的经验,由于使用 ACID 交易的单个数据库,这些困难没有出现在单体大型应用中,因为它使用的是具有 ACID 交易的单个数据库。因此,我加入了讨论并将寻求把我们的经验带进来。
IT 咨询顾问、软件开发员和架构师 Sebastian Daschner 在最近的博文中说:
自 MicroProfile 诞生以来,它已经获得了很多关注,并产生了各种各样的规范。最初,它的创建是为了推进企业 Java 到微服务世界,在多个供应商的推动下,实现了更快的进展。现在,在 Eclipse 基金会,随着 Java EE 转换到 Jakarta EE,MicroProfile 如何合理地适应企业级 Java 世界的环境呢?
一般来说,Java 企业社区分享一个通用的、清晰的全貌是至关重要的,即将来 MicroProfile 的位置在哪里。为实现 MicroProfile 作为 Jakarta EE 孵化器的想法,下一步将是定义并达成以下共识:
Jakarta EE 和 MicroProfile 共享的技术设计原则。
用于孵化 MicroProfile 的命名、标记和命名空间。
一个用于未来 MicroProfile 和孵化到 Jakarta EE 的通用过程。
阅读英文原文: Eclipse Releases Versions 1.4 and 2.0 of MicroProfile
感谢冬雨对本文的审校。
评论