如何使用IEventBroker

时间:2017-05-03 09:34:47

标签: eclipse-plugin e4

简单问题:我正在再次评估E4,并希望使用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 个答案:

答案 0 :(得分:1)

您不必注册活动主题。

事件主题名称由OSGi规范定义(IEventBroker是OSGI EventAdmin的简化接口)。

这里的问题是只有&#39; A-Z&#39;,&#39; a-z&#39;,&#39; 0-9&#39;,&#39; _&#39;和&#39; - &#39;允许在主题名称的部分中。零件使用&#39; /&#39;不是&#39;。所以&#39; org / acme / event&#39;没关系。