2011-08-11 5 views
2

これは法的ですか?OSGiフラグメントはホストとして他のフラグメントを持つことができますか?

org.fragment1ためMANIFEST.MF(org.hostは通常バンドルではなく断片である):org.fragment2ため

Bundle-SymbolicName: org.fragment1 
Fragment-Host: org.host 

がMANIFEST.MF:

Bundle-SymbolicName: org.fragment2 
Fragment-Host: org.fragment1 

またはorg.fragment2代わり

Fragment-Host: org.host 
を有するべきです

答えて

5

フラグメントバンドルは、ホストとして他のフラグメントバンドルを持つことはできません。通常のバンドルだけがフラグメントホストとして動作できます。 だからあなたの第三の例は正しいです:

org.fragment2代わりにあなたが70ページにOSGi Service Platform Release 4 Version 4.3 Core Specificationでこの制限を見つける

Fragment-Host: org.host

を持つべきであることは言う:

フラグメントバンドルは、Require-Bundleヘッダーを持つ別のバンドルでは必要ありません。

+0

ありがとうございます!これを確認する引用がありますか?私はプロジェクトの最初の例を実行し、これをバグとして報告したいと思います。 OSGi仕様の段落3.14はそれについて何も言わないようです... –

+0

@Alexey Romanov:私は私の答えを編集しました! – Tim

+0

しかしここには 'Require-Bundle'ヘッダーはなく、' Fragment-Host'だけです。 –

2

フラグメントがホストにアタッチされます。彼らは他の断片に付着することはできません。他のフラグメントも添付されていない限り、フラグメントがホストにアタッチされないように、機能と要件(コア4.3で新機能)を構築することができます。例えば、フラグメント1は、フラグメント2が必要とする能力を提供することができる。これはあなたが求めるコントロールのレベルを提供するかもしれません。