Apache Karaf究竟是什么?

我对Apache Karaf究竟是什么感到有点困惑。

你能否说Apache Karaf包含以下内容:

  • Apache Felix(这是OSGi 4.2框架的实现)
  • Apache白羊座(这是Blueprint标准的实现)

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

Apache Felix(这是OSGi 4.2框架的实现)

有点。 Apache Karaf可以使用Apache Felix。 Apache Karaf也可以使用Equinox或其他OSGi运行时。 默认情况下,Apache Karaf标准下载确实与Apache Felix一起提供。

Apache白羊座(这是Blueprint标准的实现)

再次,有点。 Apache Karaf的标准下载在默认情况下是由Apache Aries提供的。

现在让我们来谈谈OSGI(Apache Felix,Equinox)和Apache Karaf是什么:

OSGI非常简单。 您可以在您的应用程序中启动OSGI运行时,甚至没有注意到它。 shell,从一个文件夹进行热部署的能力,从maven仓库安装等等。这些都是OSGI不需要做的,并且由Karaf,GOGO或Pax等附加项目提供

现在到Apache Karaf:

它基本上是一个OSGI环境,在标准的OSGI实现的基础上提供了一些额外的好东西。 由于Apache Karaf只是build立在标准的OSGI上,理论上可以在任何OSGI运行时运行。 这为您提供了一个统一的OSGI运行时界面。

一些好吃的东西Apache Karaf提供了你不会看到一个Apache Felix没有一些额外的工作:

  • 基于文件夹的热部署
  • 一个(恕我直言)比gogo更好的默认控制台。 (org.apache.karaf.shell)
  • 远程SSH访问该控制台。 (org.apache.karaf.shell.ssh)
  • 集中logging系统。 (org.apache.karaf.log)
  • 它有自己的configuration捆绑和启动层次的方式。 (org.apache.karaf.features)
  • 卡拉夫也有自己的Maven插件。

这里几乎任何东西:

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

我提到卡拉夫有自己的configuration捆绑方式和开始的水平。 Apache Karaf也附带了一大堆预定义的开始。 我知道阿帕奇菲利克斯通过OBR也有一些,但阿帕奇卡拉夫来得更多'电池包括'。

Apache Karaf是瑞士军刀,用于运行OSGi的“东西”,而非OSGi的东西捆绑为OSGi。

费利克斯和白羊座是默认的,但框架是可插入的,所以春分也适用。

  • “Unix like”shell可从CLI或SSH访问
  • 捆绑的热部署
  • 可以部署几乎所有的东西(简单的.jar,spring xml,蓝图等)
  • WAR文件
  • 从maven部署 – 包括自动包装非OSGi包。
  • Web控制台
  • Karaffunction – “.kar文件”,包括捆绑和自定义karaffunction/命令。

值得一提的是,Karaf是ServiceMix的一部分(最初的名字是ServiceMix内核),所以它与Apache Camel,Apache CXF和Apache ActiveMQ紧密集成。 把Karaf变成一个ESB,这些function是微不足道的。