ジョブに小さな変更を加えることができる場合は、OSGI イベントを使用してジョブ間で通信します。あなたがそのような仕事をしていると仮定します:
public class SomeJob extends Job {
public static final JOB_EVENT_NAME = "some distinct name";
private IEventBroker eventBroker;
public SomeJob(IEventBroker eventBroker) {
super("SomeJob");
this.eventBroker = eventBroker;
}
protected IStatus run(IProgressMonitor monitor) {
...
eventBroker.post(JOB_EVENT_NAME, some data);
...
}
}
イベント リスナーがアタッチされた RCP アプリケーションから開始します (eventBroker は IEventBroker であり、@Inject することができます)。
new CheckAccessLevelJob(eventBroker).schedule();
eventBroker.subscribe(SomeJob.JOB_EVENT_NAME, new EventHandler() {
public void handleEvent(Event event) {
event.getProperty(IEventBroker.DATA);
}
});