9.5. 機能への依存機能の追加

この機能が他の機能に依存している場合は、feature 要素を元の feature 要素の子として追加することで、これらの依存関係を指定できます。各 feature 子要素には、現在の機能が依存する機能の名前が含まれます。依存機能などの機能をデプロイすると、依存メカニズムは、依存機能がコンテナーにインストールされているかどうかを確認します。そうでない場合には、依存関係メカニズムは、欠落している依存関係 (および再帰的な依存関係) を自動的にインストールします。

たとえば、カスタムの Apache Camel 機能 example-camel-bundle では、依存する標準の Apache Camel 機能を明示的に指定できます。これには、OSGi コンテナーに必要な機能が事前にデプロイされていない場合でも、アプリケーションを正常にデプロイして実行できるという利点があります。たとえば、以下のように Apache Camel 依存関係で example-camel-bundle 機能を定義できます。

<?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 version="7.11.1.fuse-7_11_1-00013-redhat-00003">camel-core</feature>
    <feature version="7.11.1.fuse-7_11_1-00013-redhat-00003">camel-spring-osgi</feature>
  </feature>
</features>

version 属性の指定は任意です。存在する場合、特定のバージョンの機能を選択できます。