web-dev-qa-db-ja.com

Apache Karafとは正確には何ですか?

私は、Apache Karafが正確に何であるかについて少し混乱しています。

Apache Karafには、とりわけ以下が含まれていると言えますか?

  • Apache Felix(OSGi 4.2フレームワークの実装)
  • Apache Aries(ブループリント標準の実装)
60
Frizz

TLDR:Apache Karafははるかに「バッテリーに含まれています」。また、どのOSGIランタイムでも実行できます。

Apache Felix(OSGi 4.2フレームワークの実装)

並べ替え。 Apache KarafはApache Felixを使用できます。 Apache Karafは、Equinoxまたは別のOSGiランタイムも使用できます。デフォルトでは、Apache Karaf標準ダウンロードにはApache Felixが付属しています。

Apache Aries(ブループリント標準の実装)

繰り返しますがApache Karafの標準ダウンロードには、デフォルトでApache Ariesが付属しています。

次に、OSGI(Apache Felix、Equinox)とは何か、Apache Karafとは何かを説明します。

OSGIは非常に単純です。アプリケーションでOSGIランタイムを起動しても、気づかないこともあります。シェル、フォルダーからのホットデプロイ、mavenリポジトリからのインストールなど。これらはすべてOSGIが行う必要のない追加機能であり、Karaf、GOGO、またはPaxなどの追加プロジェクトによって提供されます。

次に、Apache Karafについて説明します。

これは基本的にOSGI環境であり、標準のOSGI実装の上にいくつかの追加の利点を提供します。 Apache Karafは標準のOSGIで構築されているため、理論上はどのOSGIランタイムでも実行できます。これにより、OSGIランタイムを操作するための統一されたインターフェイスが提供されます。

Apache Karafには、追加の作業を行わないとApache Felixには表示されないという利点があります。

  • フォルダーベースのホットデプロイメント
  • A (IMHO) better default console than 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にはもっと多くの「バッテリーが含まれています」。

60
Sheena Artrip

Apache Karafは、OSGiの「もの」とOSGiとしてバンドルされているOSGi以外のものを実行するスイスアーミーナイフです。

FelixとAriesはデフォルトですが、フレームワークはプラグイン可能なため、equinoxも機能します。

  • CLIまたはSSHからアクセス可能な「Unixのような」シェル
  • バンドルのホットデプロイ
  • ほぼすべてをバンドルとしてデプロイできます(プレーンな.jar、spring xml、blueprintなど)
  • WARファイル
  • Mavenからデプロイ-非OSGiバンドルの自動ラップを含む。
  • Webコンソール
  • Karaf機能-バンドルおよびカスタムkaraf機能/コマンドを含む「.karファイル」。

補足説明として、KarafはServiceMix(最初の名前はServiceMixカーネル)の一部であるため、Apache Camel、Apache CXF、Apache ActiveMQと非常に緊密に統合されています。 Karafをこれらの機能を備えたESBに変えるのは簡単です。

29