今年初,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中了,感興趣的用戶可以嘗試。
查看英文原文:The Future Of JBoss Seam And Apache DeltaSpike
本文原址:http://www.infoq.com/cn/news/2012/05/seam-deltaspike?utm_source=infoq&utm_medium=related_content_link&utm_campaign=relatedContent_articles_clk