2013-05-30 26 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(尽管它可以工作)。