OSGI:如何找出订阅我的服务参考字典中定义的特定属性的bundle?

时间:2017-04-06 08:09:49

标签: java osgi equinox knopflerfish

当我注册ServiceReference时,我定义了OSGi事件的主题,我在Dictionary类中发布,就像上下文方法定义所说:

registerService(班级,服务,词典

我的字典定义是:dictionary.put(EventConstants.EVENT_TOPIC,topics);

主题是一个String数组,其中包含一些字符串,可以非常清楚地定义每个可能的事件类型I' m publising,如下所示:

String [] topics = new String [] {" ONE"," TWO" };

我想知道哪些bundle订阅了Dictionary中主题中定义的特定属性。我的意思是捆绑包将处理" TWO"

的出版物

感谢。

1 个答案:

答案 0 :(得分:0)

要接收事件,bundle会注册一个EventHandler服务,其主题为event.topics属性。因此,要查找侦听某些主题的捆绑包,请搜索EventHandler类型的所有服务,并检查其服务属性event.topics。