如何以编程方式发现 OSGi 中未满足的声明性服务引用

How to discover unsatisfied declarative services references in OSGi programmatically

如何以编程方式获取通过 OSGi 控制台中的 "ls" 和 "comp [id]" 命令可用的信息,以便我可以记录有关未满足引用的信息?

您可以通过注册到ServiceComponentRuntime接口的OSGi服务获取所有信息。

在 Equinox 中 org.apache.felix.scr.ScrService 的用途类似于上面提到的 SerivceComponentRuntime,我在 Eclipse Mars 2 中找不到它。

org.apache.felix.scr.ScrService 位于 org.eclipse.equinox.ds 包中。

样本参考定义:

 <reference 
    bind="setScrService" 
    cardinality="0..1" 
    interface="org.apache.felix.scr.ScrService" 
    name="ScrService" 
    policy="static"/>