这合法吗?
清单。org.fragment1
的MF (org.host
是一个正常束,而不是一个片段):
Bundle-SymbolicName: org.fragment1
Fragment-Host: org.host
清单。org.fragment2
的MF:
Bundle-SymbolicName: org.fragment2
Fragment-Host: org.fragment1
或者org.fragment2
应该改为
Fragment-Host: org.host
?
Fragment bundles不能有其他的Fragment bundles作为宿主。只有正常的bundle可以作为fragment-host。所以你的第三个例子是正确的:
或者
org.fragment2
应该改为
Fragment-Host: org.host
您可以在OSGi Service Platform Release 4 Version 4.3 Core Specification第70页找到此限制。它说:
Fragment bundle不能被另一个带有Require-Bundle头的bundle所要求。
片段附加到主机。它们不能附着在其他片段上。你可以构造功能和要求(Core 4.3新功能)来防止一个片段连接到主机,除非另一个片段也被连接。例如,片段1可以提供片段2需要的功能。这可以提供您所需要的控制级别。