什么是Apache Karaf?

Fri*_*izz 64 osgi apache-felix apache-karaf aries

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

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

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

She*_*rip 63

TLDR:Apache Karaf更加"包含电池".它也可以在任何OSGI运行时上运行.

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

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

Apache Aries(蓝图标准的实现)

再说一遍.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运行时.

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更多'包含电池'.


Pet*_*der 31

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

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

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

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