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是微不足道的。