2013-06-27 227 views
47

我對Apache Karaf究竟是什麼感到有點困惑。Apache Karaf究竟是什麼?

你能說的Apache Karaf包括,除其他外:

  • 阿帕奇菲利克斯(這是OSGi 4.2框架的實現)
  • 阿帕奇白羊座(這是藍圖標準的實現)
+15

我一直在使用OSGi近十年,我也沒有得到卡拉夫的觀點;-) –

+0

相關問題http://stackoverflow.com/questions/1612120/osgi-what-are-the -differences-斐和 - Apache的karaf之間的Apache –

回答

53

TLDR:Apache Karaf更「含電池」。它也可以在任何OSGI運行時運行。

阿帕奇菲利克斯(這是OSGi框架4.2的實施方案)

排序的。 Apache Karaf可以使用Apache Felix。 Apache Karaf也可以使用Equinox或其他OSGi運行時。默認情況下,Apache Karaf標準下載隨Apache FLEX提供。

阿帕奇白羊(這是標準藍圖的實施方案)

同樣,那種。默認情況下,Apache Karaf的標準下載確實帶有Apache Aries。

現在讓我們來談談什麼OSGI(Apache的菲利克斯,春分)是什麼阿帕奇Karaf是:

OSGi是非常簡單的。您可以在應用程序中啓動OSGI運行時,甚至不會注意到它。 shell,從文件夾進行熱部署的能力,從maven repo等安裝。這些都是OSGI無需做的所有額外功能,並且由諸如Karaf,GOGO或Pax等附加項目提供。

現在來看看Apache Karaf吧:

它基本上是一個OSGI環境,它在標準的OSGI實現上提供了一些額外的好處。由於Apache Karaf只是建立在標準的OSGI上,它理論上可以在任何OSGI運行時運行。這爲您提供了與OSGI運行時一起工作的統一界面。

一些好吃的東西的Apache Karaf提供你不會在Apache的菲利克斯看到一個沒有一些額外的工作:

  • 基於文件夾的熱部署
  • A(恕我直言),比GOGO更好的默認控制檯。 (org.apache.karaf.shell)
  • 遠程SSH訪問該控制檯。 (org.apache.karaf.shell.ssh)
  • 集中式日誌記錄系統。 (org.apache.karaf.log)
  • 它有自己的配置捆綁和啓動級別的方法。 (org.apache.karaf.features)
  • 卡拉夫也有它自己的maven插件。

幾乎任何位置:

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

我提到有它自己的供應包的方式Karaf並開始水平。 Apache Karaf還附帶一組預定義的開始。我知道阿帕奇菲利克斯也通過OBR帶來了一些,但阿帕奇卡拉夫來得更加'含電池'。

28

Apache Karaf是瑞士軍刀,用於運行OSGi「stuff」和非OSGi捆綁爲OSGi的東西。

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

  • 「類似Unix的」 殼從CLI或SSH
  • Hotdeploy束的可訪問
  • 可能部署幾乎任何東西作爲一個捆(純的.jar,彈簧XML,藍圖等)
  • WAR文件
  • 從maven部署 - 包括自動包裝非OSGi包。
  • Web控制檯
  • Karaf功能 - 「.kar文件」,其中包括捆綁和自定義karaf功能/命令。

另外需要注意的是,Karaf是ServiceMix的一部分(最初的名字是ServiceMix內核),所以它與Apache Camel,Apache CXF和Apache ActiveMQ緊密集成。將卡拉夫變成一個具有這些特徵的ESB是微不足道的。