附加新部署的片段包时,OSGi 框架如何处理主机包?

What does the OSGi Framework do with the Host bundle when attaching a newly-deployed Fragment bundle?

我有一个片段包,其中的组件具有 @Activate 注释的 activate 方法。我找不到任何关于应该不应该工作的确定信息。

一方面,它可能 应该 工作,因为框架将片段附加到主机,然后重新启动主机。组件的 activate 方法随后会启动,因为它现在是主机的一部分,主机会再次激活。

另一方面,它可能不应该工作,因为框架不会在附加片段时重新启动主机。在这种情况下,activate 方法永远不会触发。

我尝试自己修改我的包,但似乎不起作用,但我不确定这是否是因为我上面提到的后一种情况,或者因为别的什么。我试着查看 documentation,但没有提及框架如何在附件期间处理片段和宿主的生命周期,除了片段被解析的事实之外。

那么我的问题是,在附加新部署的片段时,OSGi 框架对主机做了什么?

声明式服务不支持片段清单中的 Service-Component header。因此,虽然组件的 类 和组件的 XML 组件描述可以来自片段,但不会处理片段清单中的任何 Service-Component header。

参见https://osgi.org/specification/osgi.cmpn/7.0.0/service.component.html#d0e38069