OSGi:Apache Felix和Apache Karaf有什么区别?

时间:2009-10-23 08:37:56

标签: osgi apache-felix apache-karaf

Apache KarafApache Felix的子项目。它被定义为“轻量级OSGi容器”。

我不明白我何时应该使用重量级以及何时使用轻量级。他们的网站没有解释太多。

3 个答案:

答案 0 :(得分:203)

'轻量级OSGi容器'标签与更多功能丰富的OSGi容器形成鲜明对比,Karaf

引用Guillaume Nodet(Karaf的作者)Felix

  

Felix只是OSGi的核心运行时。 Karaf通过添加其他功能(例如控制台,SSH远程处理机制,文件部署程序等)提供基于Felix的“分发”。

在这个Karaf架构图中,Felix(或其他OSGi实现 - 当前from here也支持)是OSGi框,其他框是Karaf添加的功能:

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

答案 1 :(得分:5)

@Marcel Karaf不像Java EE服务器那样单片或巨大。这是一个非常苗条和极简主义的实现。它是一个核心产品,除了基本控制台,文件加载以外,没有太多功能,因此您可以实际读取配置文件等。最新的zip文件是19.1 MB。是啊。小。它可以轻松地在小型设备上运行,并可以嵌入式工作。

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

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

答案 2 :(得分:-1)

  

目前,有三种流行的开源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