2017-05-03 20 views
0

簡単な質問:私はE4をもう一度評価しており、IEventBrokerで簡単なイベントを送信したいと考えています。複数のチュートリアルでは、それが移動するための方法の状態は:IEventBrokerでイベントを送信する方法

@Inject 
private IEventBroker eventBroker; 

this.eventBroker.send("org.acme.event", myEventObject); 

しかし、すべてのトピックとして「org.acme.event」を登録する方法を確認するために、私はこの例外を取得することはありません失敗の:

Caused by: java.lang.IllegalArgumentException: invalid topic: org.acme.event 
at org.osgi.service.event.Event.validateTopicName(Event.java:236) 
at org.osgi.service.event.Event.<init>(Event.java:78) 
at org.eclipse.e4.ui.services.internal.events.EventBroker.constructEvent(EventBroker.java:153) 
at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:79) 

IEventBrokerを使用してイベントを送信する完全な方法は何ですか?

答えて

1

イベントトピックを登録する必要はありません。

イベントトピック名はOSGi仕様で定義されています(IEventBrokerはOSGI EventAdminの簡略化されたインターフェイスです)。

トピック名の部分には、 'A-Z'、 'a-z'、 '0-9'、 '_'、 ' - 'しか使用できないという問題があります。部品は '/'ではなく '/'で区切られています。したがって、 'org/acme/event'はOKです。

関連する問題