Apache KarafはOSGiに基づいた実行環境であり、さまざまなコンポーネントやアプリケーションを配備できるコンテナを提供している。KarafはApacheソフトウェア財団が開発しているオープンソースソフトウェアで、Apache Felixのサブプロジェクトである。

Karafは HOME /deploy ディレクトリ内のJARファイルを監視することにより、OSGiバンドルのホットデプロイをサポートしている。このディレクトリにJARファイルがコピーされるたびに、それが実行環境の内部にインストールされる。また、JARファイルを更新又は削除したときも、変更が自動的に処理される。

通常、サービスは ConfigurationAdmin OSGiサービスを通じで構成されている。このような構成は、 HOME /etc ディレクトリ内のプロパティファイルを使用したKarafによって定義される。これらの構成は監視されていて、プロパティファイルの変更はサービスに反映される。

サービスを管理したり、新しいアプリケーションやライブラリをインストールしたり、それらの状態を管理することができるテキストコンソールをKarafは備えている。このシェルは新しい機能を配備することで拡張可能である。Karafコマンドを次の表に示す。

Karafのコマンド
Command Description
admin:list 存在するすべてのコンテナインスタンスの一覧を表示する。
config:list 存在する設定の一覧を表示する。
features:addUrl リポジトリURLのリストをfeatures serviceに追加する。
features:install 指定した名前とバージョンの機能をインストールする。
features:list 定義済みリポジトリから使用可能な機能の一覧を表示する。
features:listRepositories 定義済みリポジトリの一覧を表示する。
features:listUrl 定義済みリポジトリURLの一覧を表示する。
features:listVersions 現在使用可能なリポジトリの機能のバージョンの一覧を表示する。
features:refreshUrl リポジトリから入手可能な機能のリストをリロードする。
osgi:list インストール済みバンドルの一覧を表示する。
shell:logout 現在のセッションからシェルを切断する。
shell:source スクリプトを実行する。
web:list warバンドル詳細の一覧を表示する。

Karaf Archive

KarafはKaraf Archive (KAR)という名前のアーカイブ形式を提供している。KARファイルの拡張子は .kar である。KAR形式はfeature descriptionとバンドルのJARファイルを含むJARファイルである。

JMXを使用した監視と管理

KarafはMBeanのセットを提供しており、(JConsoleのような)任意のJMXクライアントを使用してKarafを監視及び管理できる。

Karafは、以下のMBeanを監視及び管理できる。

Karaf JMX
MBean Description
org.apache.karaf:type=bundles OSGiバンドルを操作する。
org.apache.karaf:type=obr obr機能としてインストールされたOBR層を操作する。
org.apache.karaf:type=services OSGiサービスに関する情報を取得する。
org.apache.karaf:type=web war機能としてインストールされたWebバンドルに関する情報を取得する。