Eclipse e4 : IStartup extension not working

99封情书 提交于 2019-12-24 20:46:53

问题


I am trying to extending "org.eclipse.ui.startup" extendion point. but it seems in eclipse e4 ,it does not even getting called. is this extension is broken in eclipse e4(Juno)


回答1:


I had the same problem and couldn't find an answer, but in the process I discovered the LifeCycleHandler which is even better for my purpose. It might be a good alternative for you as well.

Just as with the startup-extension you can reference a handler from your plugin.xml:

<property name="lifeCycleURI" value="platform:/plugin/<plug-in-id>/<path-to-handler-class>" />

In the handler you can use annotations to mark the method that is to be invoked as well as dependency injection:

public class StartupHandler {
    @Inject
    Foo bar;

    @PostContextCreate
    public void startup(IEclipseContext context) {
       // do something
    }
}

You can find a detailed example here: https://marcteufel.wordpress.com/2011/05/05/231/




回答2:


IStartup#earlyStartup() needs the compatibility layer, so it does not work in a pure E4 Application. (see #1)

To launch a process in a pure E4 Application you should use a lifecycle hook. So:

Reference your ApplicationLifecycle handler class from plugin.xml

<property name="lifeCycleURI" value="platform:/plugin/<plug-in-id>/<path-to-handler-class>" />

write your lifecycle handler class

public class ApplicationLifecycleHandler {

    @PostContextCreate
    public void startup(IEclipseContext context) {
       // do initialization 
    }
}

Add an hook to handle events at Application Startup Complete

@PostContextCreate
public void postContextCreate(final IEventBroker eventBroker, etc .. ) {

    // 
    eventBroker.subscribe(UIEvents.UILifeCycle.APP_STARTUP_COMPLETE,
            new EventHandler() {
                @Override
                public void handleEvent(Event event) {
                    // Your code executed at startup,
                    // after application startup is completed
                }
            });

}

(#1) org.eclipse.ui.startup extension doc



来源:https://stackoverflow.com/questions/14061491/eclipse-e4-istartup-extension-not-working

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!