osgi - Apache Karaf 到底是什么?

标签 osgi apache-felix apache-karaf aries

我对 Apache Karaf 到底是什么有点困惑。

您能否说 Apache Karaf 包括以下内容:

  • Apache Felix(OSGi 4.2 框架的实现)
  • Apache Aries(Blueprint 标准的实现)

最佳答案

TLDR:Apache Karaf 更加“包含电池”。它还可以在任何 OSGI 运行时上运行。

Apache Felix (which is an implementation of the OSGi 4.2 framework)

有点。 Apache Karaf 可以使用 Apache Felix。 Apache Karaf 还可以使用 Equinox 或其他 OSGi 运行时。默认情况下,Apache Karaf 标准下载附带 Apache Felix。

Apache Aries (which is an implementation of the Blueprint standard)

再一次,有点。默认情况下,Apache Karaf 的标准下载确实附带 Apache Aries。

现在我们来谈谈什么是 OSGI(Apache Felix、Equinox)以及 Apache Karaf 是什么:

OSGI 非常简单。您可以在应用程序中启动 OSGI 运行时,甚至不会注意到它。 shell、从文件夹热部署的能力、从 Maven 存储库安装等。这些都是 OSGI 不需要做的额外功能,而是由 Karaf、GOGO 或 Pax 等其他项目提供的。

现在介绍 Apache Karaf:

它基本上是一个 OSGI 环境,在标准 OSGI 实现之上提供了一些额外的好处。由于 Apache Karaf 是基于标准 OSGI 构建的,因此理论上它可以在任何 OSGI 运行时上运行。这为您提供了使用 OSGI 运行时的统一接口(interface)。

Apache Karaf 提供的一些好东西是您在不做一些额外工作的情况下在 Apache Felix 中看不到的:

  • 基于文件夹的热部署
  • (恕我直言)比 gogo 更好的默认控制台。 (org.apache.karaf.shell)
  • 通过 SSH 远程访问该控制台。 (org.apache.karaf.shell.ssh)
  • 集中日志系统。 (org.apache.karaf.log)
  • 它有自己的方式来配置 bundle 和启动级别。 (org.apache.karaf.features)
  • Karaf 也有自己的 Maven 插件。

这里几乎有任何东西:

http://mvnrepository.com/search.html?query=org.apache.karaf *

我提到 Karaf 有自己的方式来配置 bundle 和启动级别。 Apache Karaf 还附带了一堆预定义的供入门使用。我知道 Apache Felix 也通过 OBR 提供了一些功能,但 Apache Karaf 提供了更多“包含电池”的功能。

关于osgi - Apache Karaf 到底是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17350281/

相关文章:

eclipse - 如何在 Eclipse 中集成 Karaf

java - 如何从命令行停止 OSGI 应用程序

java - 您能否在不同的 OSGi 包中包含 JSF 自定义组件?

java - 在 Equinox OSGi 包缓存中提取的类文件?

java - CXF:java.lang.NoClassDefFoundError:javax/xml/ws/BindingProvider

linux - 使用 Ansible 执行 Karaf 客户端命令

java - 如何使用 OSGi 模块化 JSF/Facelets/Spring 应用程序?

java - OSGi JAR 一旦运行,是否可以要求其容器从另一个位置加载另一个 OSGi JAR?

unit-testing - 在引用 Felix OSGI 捆绑 JUnit 代码的 Adob​​e CQ5 CRXDE 中编译单元测试

eclipse - 在 Karaf 中调试 OSGI 包的最佳方法