如何在jboss中使用OSI和CDI?

时间:2013-05-30 06:44:19

标签: osgi cdi jboss-weld jboss-eap-6

我正在尝试OSGI和CDI。我想使用CDI注释注册我的OSGI服务,并使用CDI检索已注册的OSGI服务。

我发现了以下内容:https://github.com/mathieuancelin/weld-osgi,它似乎已集成到焊接核心中。但是当我依赖于焊接核心1.2.0.Beta1或2.0.0.Final版本时,我没有找到https://github.com/mathieuancelin/weld-osgi文档中指定的任何注释。

当您想要将OSGI与CDI一起使用时,这种焊接方式是什么?或者我应该使用弹簧? (我更喜欢焊接,因为我的AS目前是jboss EAP 6.1)

我可以在哪个依赖项中找到文档中指定的注释?

谢谢!

2 个答案:

答案 0 :(得分:3)

目前我不建议使用CDI来处理OSGi服务。 Weld-OSGi库仍然是非常实验性的,并且很可能在OSGi-CDI规范发布时发生变化。

目前,在企业OSGi专家组中编写了一个新规范OSGi-CDI(RFC 193)(我是编写此规范的成员之一)。 OSGi-CDI计划于明年初成为Enterprise OSGi R6的一部分。不幸的是,现在开始使用它还为时尚早,参考实现还远未完成。关于即将出台的规范的更多细节可以在我今年在EclipseCon上发表的演示文稿中找到:https://speakerdeck.com/paulbakker/rfc-193-osgi-cdi

我强烈建议使用可用于OSGi服务的其他依赖注入解决方案之一,最好是Apache Felix Dependency Manager或Dynamic Services。因为这两个库都是直接在OSGi服务API上构建的,所以您不必拖入其他依赖项。编程模型明显不同于CDI,但概念非常相似,因此应该很容易上手。

不要使用Spring,因为它不太适合OSGi(尽管它可以工作)。

答案 1 :(得分:0)

我还没有参与其中,而且我对weld-osgi知之甚少,但是如果你想要OSGi和CDI很好地玩,你应该使用它。我很确定它们是单独的jar,你需要将weld-osgi依赖项添加到你的项目中。