今年初,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的核心么?
\\t我们并不打算发布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用户说些什么呢?
\\t激动的时刻就在眼前。我认为很快围绕着Seam的阴霾就将散去,进而迎来明媚的阳光。请访问 jboss.org/developer来了解更多信息!\
Apache DeltaSpike artifacts现已位于Maven Central中了,感兴趣的用户可以尝试。
\