我确定它非常简单,但我无法理解所需的XML架构,以使我的组件在OSGi框架中监听多个事件主题。
我想处理以下2个事件,甚至更多:
basm/event/IAM
basm/event/COV
我试过这样的东西
<properties name="event.topics">
<entry>basm/event/IAM</entry>
<entry>basm/event/COV</entry>
</properties>
或
<property name="event.topics" type="String" value="basm/event/IAM,basm/event/COV" />
或
<property name="event.topics" type="String" value="basm/event/IAM" />
<property name="event.topics" type="String" value="basm/event/COV" />
不幸的是,我的OSGi书只使用了一个事件主题,而且令人惊讶的是我无法在网上找到任何东西。我尝试使用XML模式进行DS组件描述但未能理解它:http://www.osgi.org/xmlns/scr/v1.2.0/scr.xsd
答案 0 :(得分:2)
尝试
<property name="event.topics">
basm/event/IAM
basm/event/COV
</property>
参见OSGi规范中的112.4.6。
答案 1 :(得分:0)
您可以使用以下值列表:
<service ref="beanRef" interface="org.osgi.service.event.EventHandler">
<service-properties>
<entry key="event.topics">
<list>
<value type="java.lang.String">com/company/topic/name1</value>
<value type="java.lang.String">com/company/topic/name2</value>
</list>
</entry>
</service-properties>
</service>