20.10. Early StartupAs discussed in Section 3.4.2, Early plug-in startup, on page 114, use the org.eclipse.ui.startup extension point to ensure that your plug-in will be started when Eclipse starts. Doing so should not be done lightly because it defeats the Eclipse lazy-loading mechanism, causing Eclipse to always load and execute your plug-in thus consuming precious memory and startup time. If you must do this, then keep your early startup plug-in small so that it takes up less memory and executes quickly when it starts. 20.10.1. Managing early startupEclipse does not provide a mechanism for programmatically specifying whether a plug-in should be started immediately when it is launched. If you have one or more plug-ins that may need early startup, then consider creating a small plug-in that manages early startup (see Figure 20-6). For example, if you have a large plug-in that only needs early startup if the user has enabled some functionality, then create a small early startup plug-in that determines whether that functionality has been enabled, and if so, starts the larger plug-in. Figure 20-6. Plug-in for managing early startup of other plug-ins.20.10.2. Disabling early startupThe user can disable early plug-in startup using the General > Startup and Shutdown preference page. If you have added an early startup extension, then your plug-in will appear in this list, and the user can disable its startup. You can detect this situation and warn the user that some of your plug-in's functionality will be compromised. public static boolean isEarlyStartupDisabled() { String plugins = PlatformUI.getPreferenceStore().getString( /* * Copy constant out of internal Eclipse interface * IPreferenceConstants.PLUGINS_NOT_ACTIVATED_ON_STARTUP * so that we are not accessing internal type. */ "PLUGINS_NOT_ACTIVATED_ON_STARTUP"); return plugins.indexOf(FavortesPlugin.ID) != -1; } |