0

我确信它真的很简单,但是我无法理解使我的组件在 OSGi 框架中侦听多个事件主题所需的 XML 模式。

我想处理以下两个事件,有时甚至更多:

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 书只使用了一个事件主题,令人惊讶的是,我在网上找不到任何东西。我试图通过 DS 组件描述的 XML 模式但未能理解它:http ://www.osgi.org/xmlns/scr/v1.2.0/scr.xsd

4

2 回答 2

2

尝试

<property name="event.topics"> basm/event/IAM basm/event/COV </property>

请参阅 OSGi 规范中的 112.4.6。

于 2014-07-29T22:50:23.667 回答
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>
于 2016-10-06T14:44:17.213 回答