我对 Apache Karaf 到底是什么感到有些困惑。
你能说 Apache Karaf 包括,除其他外:
- Apache Felix(它是 OSGi 4.2 框架的实现)
- Apache Aries(蓝图标准的实现)
我对 Apache Karaf 到底是什么感到有些困惑。
你能说 Apache Karaf 包括,除其他外:
TLDR:Apache Karaf 更“包含电池”。它还可以在任何 OSGI 运行时上运行。
Apache Felix(它是 OSGi 4.2 框架的实现)
有点。Apache Karaf 可以使用 Apache Felix。Apache Karaf 还可以使用 Equinox 或其他 OSGi 运行时。默认情况下,Apache Karaf 标准下载确实随 Apache Felix 提供。
Apache Aries(蓝图标准的实现)
再一次,有点。默认情况下,Apache Karaf 的标准下载确实带有 Apache Aries。
现在我们来谈谈什么是 OSGI(Apache Felix,Equinox)和 Apache Karaf 是什么:
OSGI 非常简单。您可以在应用程序中启动 OSGI 运行时,甚至不会注意到它。shell、从文件夹热部署、从 maven repo 安装等的能力。这些都是 OSGI 不需要做的额外功能,由 Karaf、GOGO 或 Pax 等其他项目提供
现在到 Apache Karaf:
它基本上是一个 OSGI 环境,在标准 OSGI 实现的基础上提供了一些额外的好处。因为 Apache Karaf 只是建立在标准 OSGI 之上,所以理论上它可以在任何 OSGI 运行时上运行。这为您提供了使用 OSGI 运行时的统一接口。
Apache Karaf 提供的一些好东西,如果没有一些额外的工作,你不会在 Apache Felix 中看到:
这里几乎所有东西:
http://mvnrepository.com/search.html?query=org.apache.karaf *
我提到 Karaf 有自己的方式来配置包和启动级别。Apache Karaf 还附带了一堆预定义的开始使用。我知道 Apache Felix 也通过 OBR 提供了一些,但 Apache Karaf 提供了更多的“包含电池”。
Apache Karaf 是一把瑞士军刀,可以运行 OSGi“东西”和捆绑为 OSGi 的非 OSGi 东西。
Felix 和 Aries 是默认的,但框架是可插拔的,所以 equinox 也可以工作。
附带说明的是,Karaf 是 ServiceMix 的一部分(最初的名称是 ServiceMix 内核),因此它与 Apache Camel、Apache CXF 和 Apache ActiveMQ 紧密集成。将 Karaf 变成具有这些特性的 ESB 是微不足道的。