在 OSGi/iPOJO 世界中,如何获取实现接口的 类 实例列表?

In the OSGi/iPOJO world, how to get a list of instances of classes implementing an interface?

在 JavaEE/CDI 世界中,我知道如何获得实现给定接口的 类 的实例列表:通过结合使用 Instance<MyInterface>reflections 库。

但是在OSGI/iPOJO的世界里,怎么做呢?

我知道我使用 @Requires MyInterface anInstance 获得了一个实例。但是我怎样才能以编程方式访问所有这些 类 呢?

只需使用 BundleContext:

@Context BundleContext context;

public List<ServiceReference> getInstancesImplementingX() {
    return context.getServiceReferences(X.class);   
}