Have you tried listening for the APP_STARTUP_COMPLETE event? See http://www.eclipse.org/forums/index.php/m/1185799/ case 1.
Sopot On Sun, Dec 1, 2013 at 11:10 PM, Laurent PETIT <[email protected]>wrote: > Current status : > > I think I may not be hooking user code at the right moment in the > lifecycle: I myself keep fighting against exceptions caused because I > inadvertently transitively start code that touches the Workbench, > which has not yet been created when called from the Model Processor > extension point. > > So I can imagine constant pain when my users will to start developing > their own contributions. > > That's when I need your help: what would you suggest then ? Is there > an easy way to only call code when everything else ("everything" being > the workbench ?) is in place ? > > For instance, here's the kind of stack trace I'm getting: > > Root exception: > > java.lang.IllegalStateException: Workbench has not been created yet. > > at org.eclipse.ui.PlatformUI.getWorkbench(PlatformUI.java:93) > > at > org.eclipse.debug.internal.ui.contextlaunching.LaunchingResourceManager.startup(LaunchingResourceManager.java:546) > > at > org.eclipse.debug.internal.ui.DebugUIPlugin.getLaunchingResourceManager(DebugUIPlugin.java:335) > > at > org.eclipse.debug.internal.ui.DebugUIPlugin.start(DebugUIPlugin.java:544) > > at > org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711) > > at java.security.AccessController.doPrivileged(Native Method) > > at > org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702) > > at > org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683) > > at > org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381) > > at > org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:300) > > at > org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:478) > > at > org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:263) > > at > org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:109) > > at > org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:469) > > at > org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216) > > at > org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:395) > > at > org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:35) > > at > org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:461) > > at > org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421) > > at > org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412) > > at > org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) > > at java.lang.ClassLoader.loadClass(ClassLoader.java:356) > > at > org.eclipse.core.runtime.internal.adaptor.ContextFinder.loadClass(ContextFinder.java:126) > > at java.lang.ClassLoader.loadClass(ClassLoader.java:410) > > at java.lang.ClassLoader.loadClass(ClassLoader.java:410) > > at java.lang.ClassLoader.loadClass(ClassLoader.java:410) > > at java.lang.ClassLoader.loadClass(ClassLoader.java:410) > > at java.lang.ClassLoader.loadClass(ClassLoader.java:410) > > at java.lang.ClassLoader.loadClass(ClassLoader.java:410) > > at java.lang.ClassLoader.loadClass(ClassLoader.java:410) > > at java.lang.ClassLoader.loadClass(ClassLoader.java:410) > > at java.lang.ClassLoader.loadClass(ClassLoader.java:410) > > at java.lang.ClassLoader.loadClass(ClassLoader.java:410) > > at java.lang.ClassLoader.loadClass(ClassLoader.java:410) > > at java.lang.ClassLoader.loadClass(ClassLoader.java:410) > > at java.lang.ClassLoader.loadClass(ClassLoader.java:356) > > at java.lang.Class.forName0(Native Method) > > at java.lang.Class.forName(Class.java:188) > > at ccw.util.launch$eval721$loading__4910__auto____722.invoke(launch.clj:1) > > > 2013/11/28 Paul Webster <[email protected]>: > > On Thu, Nov 28, 2013 at 11:43 AM, Laurent PETIT <[email protected] > > > > wrote: > >> > >> == Prospective questions > >> > >> I'm trying to start thinking about user contributions to my plugin. > >> Some may want to use dependencies (jars) that are not declared in > >> counterclockwise's bundle. > >> If I follow this route, a "clean" solution would be to dynamically > >> create an OSGi bundle per user contribution, and then install/start > >> this bundle. > >> > >> But .. the bundle would be started after the workbench has been > >> started. Would it be too late for the extension points for e.g. the > >> Model Processors to take place, etc. ? > > > > > > Yes, I think it would be too late. Some of our extension points react > > dynamically to bundles being installed or removed, but the model > processor > > extension point isn't one of them. > > > > PW > > > > -- > > Paul Webster > > Hi floor. Make me a sammich! - GIR > > > > _______________________________________________ > > e4-dev mailing list > > [email protected] > > https://dev.eclipse.org/mailman/listinfo/e4-dev > > > _______________________________________________ > e4-dev mailing list > [email protected] > https://dev.eclipse.org/mailman/listinfo/e4-dev >
_______________________________________________ e4-dev mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/e4-dev
