2013-05-30 28 views
3

我正在試驗OSGI和CDI。我想使用CDI註釋註冊我的OSGI服務,並使用CDI檢索註冊的OSGI服務。如何在jboss中使用OSGI和CDI?

我發現了以下幾種:https://github.com/mathieuancelin/weld-osgi,它似乎是集成在焊芯中。但是,當我依賴於焊芯1.2.0.Beta1或2.0.0.Final版本時,我找不到在https://github.com/mathieuancelin/weld-osgi文檔中指定的任何註釋。

當你想使用OSGI和CDI時,這種焊接-OSGI的路要走嗎?或者我應該使用彈簧? (我更喜歡焊接,因爲我的AS當前是jboss EAP 6.1)

在哪個依賴項中可以找到文檔中指定的註釋?

謝謝!

回答

0

我還沒有研究過它,而且我對焊接osgi知之甚少,但是如果你想讓OSGi和CDI發揮出色,你應該使用它。我很確定他們是單獨的罐子,你需要將weld-osgi依賴添加到你的項目中。

3

目前我不建議使用CDI來使用OSGi服務。 Weld-OSGi庫仍然是非常實驗性的,並且在OSGi-CDI規範發佈時很可能會改變。

這時一個新的規範,OSGi的CDI(RFC 193)被寫入企業的OSGi專家組(我寫這篇規範的成員之一)。 OSGi-CDI計劃於明年年初成爲Enterprise OSGi R6的一部分。不幸的是,現在開始使用它還爲時過早,但參考實現遠未完成。關於即將到來的規範的更多細節可以在我在EclipseCon今年給出的演示文稿中找到:https://speakerdeck.com/paulbakker/rfc-193-osgi-cdi

我強烈建議使用可用於OSGi服務的其他依賴項注入解決方案之一,最好是Apache Felix依賴關係管理器或動態服務。因爲這兩個庫都直接在OSGi服務API上構建,所以不必拖拽其他依賴項。編程模型明顯不同於CDI,但概念非常相似,所以應該很容易找到。

不要使用Spring,因爲它不能很好地適合OSGi(儘管它可以工作)。