OSGi声明性服务组件描述中的多个事件主题

时间:2014-07-29 18:11:49

标签: xml events osgi apache-karaf declarative-services

我确定它非常简单,但我无法理解所需的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

2 个答案:

答案 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>