Несколько разделов событий в описании компонента OSGi Declarative Service

Я уверен, что это действительно просто, но я не понимаю, какая XML-схема необходима, чтобы мой компонент прослушивал несколько тем событий в среде OSGi.

Я хочу обработать следующие 2 события, а в какой-то момент даже больше:

basm/event/IAM
basm/event/COV

Я пробовал такие штуки

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

or

<property name="event.topics" type="String" value="basm/event/IAM,basm/event/COV" />

or

<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


person Joern    schedule 29.07.2014    source источник


Ответы (2)


Пытаться

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

См. 112.4.6 в спецификации OSGi.

person BJ Hargrave    schedule 29.07.2014
comment
Большое спасибо, так и получилось! Просто одна из тех проблем, на которые вы ненавидите тратить много времени... - person Joern; 30.07.2014
comment
@bj-hargrave, как бы вы объявили это, если бы это была аннотация компонента BND? Спасибо - person Ilya Shinkarenko; 14.01.2015
comment
Вы можете сделать это, используя список свойств с несколькими свойствами с одинаковым именем: property={event.topics=some/topic,event.topics=another/topic} - person Frank Lee; 11.11.2015

Вы можете использовать список таких значений:

<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>
person Ali Ben Messaoud    schedule 06.10.2016