今年初, JBoss 发布了 Seam Web Framework 3.1 版。然而,这并非仅仅是 Seam 的另一个小版本号升级,与之相反,该版本将是 Seam 的最后一个“打包”发布,也是一个重要的里程碑。未来的开发将会以不同的方式进行,因为现在JBoss 的精力已经开始放在了 Apache DeltaSpike 上。
Apache DeltaSpike(目前还处于孵化器中)是一套 Java CDI( Contexts and Dependency Injection )扩展的集合。该描述听起来会很熟悉,因为这也是 Seam 3 的最初目标:扩展CDI 的一套模块,提供超越Java EE 6 的诸多功能。
那么Seam 3 将会如何呢?Apache DeltaSpike 会成为Seam 4 么?为了得到这些问题的答案,InfoQ 有幸采访到了Red Hat/JBoss 的首席软件工程师 Pete Muir 以了解详情:
InfoQ:能否谈谈 DeltaSpike?它会成为 Seam 的延续么?
大约在 4、5 个月前,我们开始讨论 Seam 3 的未来,我们(来自内部的 JBoss/Red Hat 与社区孵化器的项目经理)想要实现它。但我们很快发现这并非一个好方向!为什么呢? 在 Java EE 6 发布后,各种各样的 Java EE 平台扩展(构建在 CDI 扩展 SPI 之上)涌现了出来。起初,我们觉得这很棒,因为这表明 CDI 与 Java EE 6 是非常流行的,并且为众多开发者提供了一个很棒的生态圈。然而,我们很快就发现虽然 Java EE 6 与 CDI 实现了核心编程模型的标准化,但在其上面的一个层次却出现了分裂——扩展。
在调研其他的 CDI 社区(如 Apache MyFaces CODI 与 CDISource )时,我们都有相同的感觉——从用户社区的投票结果中我们发现这些用户的感觉亦是如此——他们真正需要的只是一种方式而已、当然是一种优秀的方式来完成任务。我们据此想出了 DeltaSpike,它是个中间方,通过它可以将 Seam 3、Apache MyFaces CODI 等优秀的一面结合到一起。
头三个月证明这么做是正确的。 DeltaSpike 0.1 业已发布,它关注于 CDI 编程模型的核心扩展。每个人都认为它要比 Seam 3 与 CODI 都好。
因此从目标、思想与内涵上来说,DeltaSpike 是 Seam 的延续,即便在 API 上并非如此!
InfoQ:DeltaSpike 是 Seam 4 的核心么?
我们并不打算发布 Seam 4,但我这里要谈谈我们关于将 DeltaSpike 融合进 JBoss AS 的一些想法(因为它正是 Seam 3 的延续)。 我们希望 JBoss AS 能够成为 DeltaSpike 的最佳应用场所——优秀的工具、示例、指南、良好的兼容性以及出类拔萃的性能。我们希望通过对 Apache DeltaSpike 上游的源代码及二进制的兼容性来实现对 Java EE 其余部分的 100% 兼容。
这就是我们对下一代“Seam”的愿景。
InfoQ:与 MyFaces 的关系如何?Seam 会与 MyFaces 合并么?抑或说只有一些组件会合并而其他组件依然留在 Seam 3 中?
最终目标是将 Seam 3 与 MyFaces CODI 的全部内容都迁移到 DeltaSpike,充分吸收这两者的优势。我们还会借鉴 CDISource、Software Mill 及 Cambridge Technology Partners 等的想法。我们的态度是实用至上,应该从核心特性着手,然后再逐步展开。我觉得你会在接下来的几个月中看到更大的发展势头,因为核心已经快完成了,我们可以基于此开始构建更多的扩展。
InfoQ:Seam 3.x 呢?还会发布 Seam 3.2 么,抑或下一个版本会有些不同?
我们已经承诺在可预见的未来会继续支持 Seam 3 的 Bug 与安全修复,至少会持续到社区觉得 DeltaSpike 已经成为主流为止。我认为我们都希望发布的版本是 Seam 3.1.1 而非 3.2。 我们现在正在努力编写从 Seam 2 迁移至 Java EE 6 的指南,对 Seam 3 也会提供相应的指南,直到 DeltaSpike 完成为止。
InfoQ:你还想对 Seam 用户说些什么呢?
激动的时刻就在眼前。我认为很快围绕着 Seam 的阴霾就将散去,进而迎来明媚的阳光。请访问 jboss.org/developer 来了解更多信息!
Apache DeltaSpike artifacts 现已位于 Maven Central 中了,感兴趣的用户可以尝试。
评论