在JavaEE/CDI世界中,我知道如何拥有实现给定接口的类实例列表:通过使用Instance<MyInterface>
与反射库相结合。
但是在OSGI/iPOJO的世界里,怎么做呢?
我知道我通过使用@Requires MyInterface anInstance
得到一个实例。但是我怎样才能以编程的方式访问所有这些类呢?
就用BundleContext
:
@Context BundleContext context;
public List<ServiceReference> getInstancesImplementingX() {
return context.getServiceReferences(X.class);
}