weld-osgi、pax-cdi和fighterfish有什么区别

What is the difference between weld-osgi, pax-cdi and fighterfish

据我了解,这 3 个项目是 CDI 和 OSGI 之间的链接,但它们之间有什么区别?

FighterFish 允许您将 OSGi 服务注入 CDI bean,但它不允许您将 CDI bean 发布为 OSGi 服务。

Weld OSGi 是 Weld for OSGi 的一个(现已过时的)扩展,它需要 Weld 1.x 的修改版本。 (1.2.0.Beta1)

Weld 2.1 及更高版本包括一些源自 Weld OSGi 的修改,这些修改通过并行支持多个 CDI 容器,独立于线程上下文 class 加载器,使 Weld 核心对 OSGi 更加友好。

Weld Reference 手册现在建议在 OSGi 环境中使用 Pax CDI。

Pax CDI 支持注入 OSGi 服务注册。它不依赖于任何给定的 CDI 实现(与 Weld OSGi 不同)并且当前支持 Weld 2.2.x 和 OpenWebBeans 1.5.0.

从概念上讲,Pax CDI 或多或少是 FighterFish CDI 和 Weld OSGi 的超集,即对于大多数 FighterFish 和 Weld OSGi 功能,您会在 Pax CDI 中找到等效的解决方案。

曾有一段时间,Pax CDI 计划成为 OSGi 企业专家组指定的 CDI 服务的官方参考实现。由于此规范工作目前停滞不前(据我们所知),情况已不再如此,Pax CDI 项目现在遵循自己的路线图。

免责声明:我是 Pax CDI 项目负责人。