我对Java EE 6和OSGI概念很陌生,我对此感到非常兴奋......
最令人兴奋的功能是执行时的动态依赖注入。
我已经看到了一些非常棒的演示文稿,当激活或取消激活软件包时,应用程序会被更新,我喜欢在模块中解耦应用程序并在运行时更新它的方式......
其次,我对XML配置文件很无聊,我认为带有javax.inject
的Java EE 6和其他注释是一件非常好的事情......
所以,我已经准备好开始将OSGI用于我的webapp,但首先我需要一些信息..
我无法找到OSGI进展的明确状态 - Java EE Containter中的CDI集成。
(gf-cdi-osgi-integration / osgi-cdi / osgi-cdi-api)
我认为这个问题也会调用weld-osgi。
(我看过使用@OsgiService和maven依赖项的示例似乎启用了这个注释,但现在没有关于@Publish的内容......)
1bis - Jboss AS是否支持该功能?哪个Java EE容器与OSGI的集成度最好?
什么是fighterfish(Oracle),它与glassfish osgi有关吗?
所以基本上如果我想用cdi和osgi开发战争现在我需要的是什么
(服务器 - 版本 - 插件)
此外,哪个maven依赖需要能够使用@publish和@osgiservice
为了澄清一些事情,我可以在我的项目中使用hibernate与OSGI,如果我接受hibernate lib包含在我的war / wab中并且不会作为bundle提供
其他任何人的同样问题......
感谢您的时间和解释,顺便说一句,我已经阅读了很多论坛和博客https://github.com/tangyong/gf-cdi-osgi-integration 例如,我只需要回答我的问题:)
答案 0 :(得分:2)
Glassfish已经支持在OSGi包中使用Java EE注释。下面的文件显示了我认为已经完成的工作令人印象深刻。其中包括@OsgiService。
答案 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版本:(