OSGi: What are the differences between Apache Felix and Apache Karaf?

Apache Karaf is a sub project of Apache Felix. It is defined as "a lightweight OSGi container".

I don't understand when should I use the heavyweight and when to use the lightweight. Their site doesn't explain this too much.

44577 次浏览

“轻量级 OSGi 容器”标签将 卡拉夫与更多功能丰富的 OSGi 容器、 没有费里斯进行了对比。

引用 Guillaume Nodet (Karaf 的作者)的话:

Felix 只是 OSGi 核心运行时。Karaf 通过添加控制台、 SSH 远程处理机制、文件部署程序等其他特性,提供了一个基于 Felix 的“发行版”。

在这张 Karaf 架构图中,Felix (或者其他 OSGi 实现——目前也支持 春分)是 OSGi 框,其他框是 Karaf 添加的特性:

Karaf Architecture 因此,除非您有 Karaf 无法满足的特定需求(需要访问底层实现) ,否则使用它通常是有意义的,因为它提供了更多的“开箱即用”。

@ Marcel Karaf 不像 JavaEE 服务器那样庞大。这是一个非常简洁的实现。它是一个核心产品,除了基本的控制台、文件加载以便实际读取配置文件等功能外,没有其他功能。它的最新 zip 文件是19.1 MB。是的。很小。它可以很容易地运行在小型设备和工作在嵌入式。

您可能想到的是更像 ServiceMix 的东西,它使用 Karaf 作为核心/内核。但是它包括完整配置的 CXF、 ActiveMQ、 Camel 和其他库。即使这样,他们也有最小、中等和全尺寸的。

实际上,对于99% 的项目来说,直接从 Felix 开始而不使用 Karaf 是没有意义的。

目前,有三种流行的开源 OSGi 容器:

  - Equinox. It is the modular Java runtime at the heart of the Eclipse IDE,
- Knopflerfish, Is an open source implementation of the OSGi R3 and OSGi R4 specifications.
- Apache Felix. Is the open source OSGi container from the Apache Software Foundation.

Http://www.javaworld.com/article/2077837/java-se/java-se-hello-osgi-part-1-bundles-for-beginners.html

Apache 项目维护一个名为 Felix 的通用 OSGi 容器。 这里用作 ServiceMix 和

ServiceMix 和 Karaf 的主要区别在于 ServiceMix 捆绑了许多其他集成组件ーー ActiveMQ 消息代理、 Camel 路由引擎和其他一些东西

根据: http://kevinboone.net/osgitest.html