Apache Karaf

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

Karafとは

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バンドル詳細の一覧を表示する。

インストール

Apache Karafは次の手順でインストールする。

  1. ウェブブラウザを開き、Apache Karafの公式サイトにアクセスする。
  2. 使用するOSに合ったKarafランタイムのバイナリーディストリビューションをダウンロードする。
  3. zip または tar.gz を新しいフォルダに展開する。

開始と接続

  1. コマンドラインコンソールを開き、ディレクトリを $KARAF_HOME に変更する。
  2. サーバーを起動する。

    Linuxの場合

    $KARAF_HOME/bin/karaf

    Microsoft Windowsの場合

    $KARAF_HOME\bin\karaf.bat
  3. Karafシェルに接続される。

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バンドルに関する情報を取得する。

Apache Karaf Decanter

Apache Karaf Decanterは、Apache Karafで動作する監視ソリューションである。

Apache Camel Karaf

Apache Camelは、Apache Karaf OSGiコンテナで動作するよう設計されている。

参考文献

Apache Software Foundation (2020) Apache Karaf - The Modulith Runtime