OSGi碎片可以有其他碎片作为主机吗?



这合法吗?

清单。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需要的功能。这可以提供您所需要的控制级别。

最新更新