9.3. カスタム機能リポジトリーへの機能追加
カスタム features リポジトリーに機能を追加するには、新しい feature
要素をルート features
要素の子として挿入します。機能に名前を付ける必要があります。bundle
子要素を挿入することで、機能に属するバンドルをいくつでもリストできます。たとえば、単一のバンドル C:\Projects\camel-bundle\target\camel-bundle-1.0-SNAPSHOT.jar
を含む example-camel-bundle
という名前の機能を追加するには、次のように feature
要素を追加します。
<?xml version="1.0" encoding="UTF-8"?>
<features name="MyFeaturesRepo">
<feature name="example-camel-bundle">
<bundle>file:C:/Projects/camel-bundle/target/camel-bundle-1.0-SNAPSHOT.jar</bundle>
</feature>
</features>
bundle
要素の内容は有効な URL で、バンドルの場所を示す任意の有効な URL にすることができます (15章URL ハンドラー を参照) 。必要に応じて、機能要素で version
属性を指定して、機能にゼロ以外のバージョンを割り当てることができます (これにより、バージョンを features:install
コマンドに任意の引数として指定できます)。
機能サービスが新しい機能エントリーを正しく解析するかどうかを確認するには、以下のコンソールコマンドのペアを入力します。
JBossFuse:karaf@root> features:refreshurl JBossFuse:karaf@root> features:list ... [uninstalled] [0.0.0 ] example-camel-bundle MyFeaturesRepo ...
features:list
コマンドは、機能のかなり長いリストを生成しますが、リストをスクロールして、新しい機能のエントリーを見つけることができるはずです (ここでは example-camel-bundle
)。features:refreshurl
コマンドは、カーネルにすべての features リポジトリーの再読み取りを強制します。このコマンドを実行しないと、カーネルは、リポジトリーに最近加えた変更を認識しません (特に、新しい機能はリストに表示されません)。
機能の長いリストでスクロールしないようにするには、以下のように example-camel-bundle
機能の grep
を使用します。
JBossFuse:karaf@root> features:list | grep example-camel-bundle [uninstalled] [0.0.0 ] example-camel-bundle MyFeaturesRepo
grep
コマンド (標準の UNIX パターン一致ユーティリティー) がシェルに組み込まれるため、このコマンドは Windows プラットフォームでも機能します。