什么是Apache Karaf?

时间:2013-06-27 18:07:52

标签: osgi apache-felix apache-karaf aries

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

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

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

3 个答案:

答案 0 :(得分:60)

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

  

Apache Felix(OSGi 4.2框架的实现)

排序。 Apache Karaf可以使用Apache Felix。 Apache Karaf也可以使用Equinox或其他OSGi运行时。默认情况下,Apache Karaix会附带Apache Karaf标准下载。

  

Apache Aries(蓝图标准的实现)

再次,有点。默认情况下,Apache Aries的标准下载确实附带了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运行时。

一些好东西Apache Karaf规定,如果没有额外的工作,你将无法在Apache Felix中看到:

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

这里几乎有什么:

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

我提到了Karaf有自己的方式来配置捆绑和启动级别。 Apache Karaf还附带了一系列预先定义的开始。我知道Apache Felix也有一些,通过OBR,但Apache Karaf更多的是“电池包含”。

答案 1 :(得分:29)

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

Felix和Aries是默认的,但框架是可插拔的,所以equinox也可以。

  • “Unix like”shell可从CLI或SSH访问
  • 捆绑的Hotdeploy
  • 可以将几乎所有内容部署为一个包(普通.jar,spring xml,blueprint等)
  • WAR文件
  • 从maven部署 - 包括自动包装非OSGi包。
  • Web控制台
  • Karaf功能 - “.kar文件”,包括捆绑包和自定义karaf功能/命令。

附注是Karaf是ServiceMix的一部分(初始名称是ServiceMix内核),因此它与Apache Camel,Apache CXF和Apache ActiveMQ紧密集成。将Karaf变成具有这些功能的ESB是微不足道的。

答案 2 :(得分:-1)

Apache Karaf只是一个OSGi框架(可以是Equinox,felix .etc),带有一堆预定义的模块。

Apache Karaf架构: apache karaf architecture