2012-07-13 9 views
5

私はサードパーティ製のjarにいくつかの追加機能にアクセスするために作成した断片バンドルを持っています。私のフラグメントは、この新しい機能を公開するサービスを登録する必要があります。それは動作していないようです。私がトラブルシューティングに没頭する前に、これが許可されているかどうかを知りたいですか?つまり、Felix SCRのバンドルウォッチャーはフラグメントを見たり無視したりしますか?OSGiフラグメントバンドルは宣言型サービスを公開できますか?

答えて

8

Aha、私は仕様書、セクション112.4.2で答えを見つけました: "フラグメントに指定されたサービスコンポーネントマニフェストヘッダーはSCRによって無視されます。"これは3.14.3と一致しています。「次のリストには、フラグメントバンドルで使用してはいけないヘッダーが含まれています:バンドルアクティベータ」

+1

はなく、その付加情報と、あなたがちょうど言ったことが確認され、http://stackoverflow.com/questions/8592860/component-inside-a-fragment-never-activatedも参照してください。青写真は断片のために働く。 –

2

はい。しかし、ホストバンドルはこれに開放されていなければなりません。開いていると、ホストバンドルには、フラグメント内の記述子が見つかるようにService-Componentsヘッダーが設定されている必要があります。たとえば:

Service-Components: OSGI-INF/*.xml 

は、ホスト・バンドル接続されているすべてのフラグメントのOSGi-INF/フォルダ内のすべての.xmlファイルを検索します。

Eclipse SmartHomeプロジェクトでは、このソリューションを使用してUIをよりカスタマイズ可能にすることができました。

詳細情報:http://apache-felix.18485.x6.nabble.com/DS-amp-fragments-td5004610.html

関連する問題