Apache KarafはOSGiに基づいた実行環境であり、さまざまなコンポーネントやアプリケーションを配備できるコンテナを提供している。KarafはApacheソフトウェア財団が開発しているオープンソースソフトウェアで、Apache Felixのサブプロジェクトである。
Karafは
HOME
/deploy
ディレクトリ内のJARファイルを監視することにより、OSGiバンドルのホットデプロイをサポートしている。このディレクトリにJARファイルがコピーされるたびに、それが実行環境の内部にインストールされる。また、JARファイルを更新又は削除したときも、変更が自動的に処理される。
通常、サービスは
ConfigurationAdmin
OSGiサービスを通じで構成されている。このような構成は、
HOME
/etc
ディレクトリ内のプロパティファイルを使用した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は次の手順でインストールする。
Linuxの場合
$KARAF_HOME/bin/karaf
$KARAF_HOME\bin\karaf.bat
KarafはKaraf Archive (KAR)という名前のアーカイブ形式を提供している。KARファイルの拡張子は
.kar
である。KAR形式はfeature descriptionとバンドルのJARファイルを含むJARファイルである。
KarafはMBeanのセットを提供しており、(JConsoleのような)任意のJMXクライアントを使用してKarafを監視及び管理できる。
Karafは、以下のMBeanを監視及び管理できる。
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で動作する監視ソリューションである。
Apache Camelは、Apache Karaf OSGiコンテナで動作するよう設計されている。
Apache Software Foundation (2020) Apache Karaf - The Modulith Runtime