OSGi宣言型サービスを使用してフラグメント内にコンポーネントを作成すると、このコンポーネントはアクティブ化されませんが、ホストバンドル内のコンポーネントはアクティブ化されます。私は何かが足りないのですか?私のフラグメントにはmeta-inf
、ホストバンドルのシンボリック名の適切なファイルエントリがあります。
私はこのようにコンポーネントを宣言します
@Component(immediate = true)
OSGi宣言型サービスを使用してフラグメント内にコンポーネントを作成すると、このコンポーネントはアクティブ化されませんが、ホストバンドル内のコンポーネントはアクティブ化されます。私は何かが足りないのですか?私のフラグメントにはmeta-inf
、ホストバンドルのシンボリック名の適切なファイルエントリがあります。
私はこのようにコンポーネントを宣言します
@Component(immediate = true)
バンドルフラグメントは開始されないため、解決されるだけで、その中の宣言型サービスコンポーネントがアクティブ化されることはありません。仕様では、フラグメント内のService-Componentヘッダー(アノテーションが変換されるもの)は無視されると具体的に規定されています。
宣言型サービスをフラグメントに対して機能させることができますが、これは、ホストのService-Componentヘッダーからフラグメント内のXMLファイルを参照することによってのみ可能です。残念ながら、ホストバンドルにフラグメントの内容を認識させることは、おそらくあなたが求めていたアーキテクチャパターンの逆です。SCRアノテーションを使用してそのような配置が可能かどうかさえわかりません。1つのオプションは、ブループリントを使用してフラグメントからサービスを宣言的に登録することです。これは機能します。http://aries.apache.org/documentation/tutorials/blueprinthelloworldtutorial.htmlで利用可能な青写真チュートリアルがあります。
-