OSGI - CDI /它现在可用吗? [2012年10月]

时间:2012-10-15 01:51:17

标签: java-ee glassfish osgi cdi

我对Java EE 6和OSGI概念很陌生,我对此感到非常兴奋......

最令人兴奋的功能是执行时的动态依赖注入。

我已经看到了一些非常棒的演示文稿,当激活或取消激活软件包时,应用程序会被更新,我喜欢在模块中解耦应用程序并在运行时更新它的方式......

其次,我对XML配置文件很无聊,我认为带有javax.inject的Java EE 6和其他注释是一件非常好的事情......

所以,我已经准备好开始将OSGI用于我的webapp,但首先我需要一些信息..

我无法找到OSGI进展的明确状态 - Java EE Con​​tainter中的CDI集成。

(gf-cdi-osgi-integration / osgi-cdi / osgi-cdi-api)

我认为这个问题也会调用weld-osgi。

  1. 最新的glassfish 3.1.2.2是否支持OSGI的CDI注释 @OsgiService和@Publish? 或将在未来的版本中发布?
  2. (我看过使用@OsgiService和maven依赖项的示例似乎启用了这个注释,但现在没有关于@Publish的内容......)

    1bis - Jboss AS是否支持该功能?哪个Java EE容器与OSGI的集成度最好?

    1. 什么是fighterfish(Oracle),它与glassfish osgi有关吗?

    2. 所以基本上如果我想用cdi和osgi开发战争现在我需要的是什么

      (服务器 - 版本 - 插件)

    3. 此外,哪个maven依赖需要能够使用@publish和@osgiservice

    4. 为了澄清一些事情,我可以在我的项目中使用hibernate与OSGI,如果我接受hibernate lib包含在我的war / wab中并且不会作为bundle提供

      其他任何人的同样问题......

    5. 感谢您的时间和解释,顺便说一句,我已经阅读了很多论坛和博客https://github.com/tangyong/gf-cdi-osgi-integration 例如,我只需要回答我的问题:)

3 个答案:

答案 0 :(得分:2)

Glassfish已经支持在OSGi包中使用Java EE注释。下面的文件显示了我认为已经完成的工作令人印象深刻。其中包括@OsgiService。

http://glassfish.java.net/public/GF-OSGi-Features.pdf

答案 1 :(得分:2)

Apache Karaf现在也使用pax-cdi项目支持CDI。

In a mailing list thread on ops4j Harald Wellman描述了如何在karaf上使用pax cdi。 这对我来说很好。即将推出的karaf 3.0.0将在企业版功能中包含pax cdi,因此安装将只是“功能:安装cdi”。

启动Apache Karaf 3.0.0.RC1

feature:repo-add mvn:org.ops4j.pax.cdi/pax-cdi-features/0.4.0/xml/features
install mvn:org.apache.xbean/xbean-bundleutils/3.12
feature:install pax-cdi-openwebbeans
install mvn:org.ops4j.pax.cdi.samples/pax-cdi-sample1/0.4.0
start org.ops4j.pax.cdi.sample1

因此我们可以检查示例是否有效:

services org.ops4j.pax.cdi.sample1

OPS4J Pax CDI Sample1 (153) provides:
------------------------------------
[org.ops4j.pax.cdi.sample1.impl.VanillaService,
org.ops4j.pax.cdi.sample1.IceCreamService]
[org.ops4j.pax.cdi.sample1.IceCreamService]
[org.ops4j.pax.cdi.spi.CdiContainer]

答案 2 :(得分:1)

JBoss AS7的未来版本(遗憾的是我没有日期)将包括新的焊接osgi(http://in.relation.to/Bloggers/NotOneTwoWeldReleases1110FinalAnd120Beta1),它可能会做你想要的。至于GlassFish,我不希望很快就会看到焊接1.2.x版本:(