Menu Close

9.3. カスタム features リポジトリーへの機能の追加

機能をカスタム feature リポジトリーに追加するには、新機能 要素を ルート features 要素の子として挿入します。機能に名前を付け、bundle 子要素を挿入することで、機能に属するバンドル をいくつでも一覧表示する必要があります。たとえば、単一のバンドルを含む example-camel-bundle という名前の機能を C:\Projects\camel-bundle\target\camel-bundle-1.0-SNAPSHOT.jar に追加するには、以下のように 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 で、バンドルの場所を指定できます( 15章URL ハンドラーを参照)。オプションで feature 要素で 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 コマンドは、カーネルがすべての feature リポジトリーを再読み取りするように強制します。このコマンドを実行しなかった場合には、カーネルは、リポジトリーに対して行った最近の変更を認識しません(特に新機能はリストに表示されません)。

機能の長い一覧をスクロールしないようにするには、以下のように example-camel-bundle 機能の grep を行うことができます。

JBossFuse:karaf@root> features:list | grep example-camel-bundle
[uninstalled] [0.0.0                 ] example-camel-bundle                 MyFeaturesRepo

grep コマンド(標準の UNIX パターン一致ユーティリティー)がシェルに組み込まれている場合、このコマンドは Windows プラットフォームでも機能します。