Eclipse plugin 如何使用IEventBroker发送事件

Eclipse plugin 如何使用IEventBroker发送事件,eclipse-plugin,e4,Eclipse Plugin,E4,简单问题:我正在再次评估E4,想用IEventBroker发送一个简单事件。多个教程说明了该方法: @Inject private IEventBroker eventBroker; this.eventBroker.send("org.acme.event", myEventObject); 然而,所有这些都未能确认如何将“org.acme.event”注册为主题,因此我不会遇到以下异常: Caused by: java.lang.IllegalArgumentException: inv

简单问题:我正在再次评估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)
原因:java.lang.IllegalArgumentException:无效主题:org.acme.event
位于org.osgi.service.event.event.validateTopicName(event.java:236)
位于org.osgi.service.event.event.(event.java:78)
位于org.eclipse.e4.ui.services.internal.events.EventBroker.constructEvent(EventBroker.java:153)
位于org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:79)

使用IEventBroker发送事件的完整方式是什么?

您不必注册事件主题

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


这里的问题是,在主题名称的部分中只允许使用“A-Z”、“A-Z”、“0-9”、“_u”和“-”。使用“/”而不是“.”分隔零件。所以“org/acme/event”就可以了。

您不必注册事件主题

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

这里的问题是,在主题名称的部分中只允许使用“A-Z”、“A-Z”、“0-9”、“_u”和“-”。使用“/”而不是“.”分隔零件。所以“org/acme/event”就可以了