I think some of our plugins are getting loaded before the workbench, yes. They are all set to start at the default level, but I think our plugins are getting loaded before the workbench application because they are OSGi services. Most of them depend on the ResourcePlugin and I imagine that when the framework stages the services it is triggering the configuration of the ResourcePlugin. I tried changing the start level of our bundles to be one greater than the default so that the would start later, but that didn't fix it. I also tried to start the workbench earlier at a lower start level, but that failed as well.
The Eclipse runtime has a few locations that can only be set once.
The workspace location (-data or osgi.instance.area) is one of
them. Also included in this set are the configuration location
(-configuration or osgi.configuration.area) is another, the user
location (-user or osgi.user.area), and the state location. See
org.eclipse.core.internal.runtime.InternalPlatform for gory details.
When a value is provided for one of these locations, it cannot be
changed. Setting the instance location can prevent the
ChooseWorkspaceDialog from opening -- if -data (osgi.instance.area)
has been set, then the dialog will not open.
Further, some locations are linked. Setting a value for one of them
will cause a value to be set in the others (the default value if one
was not provided). For example, the state location is usually
within the workspace (the instance location).
Are you setting any other areas (e.g., the state location) from the
command line? Are any of your customizations running before the
org.eclipse.ui.ide.workbench application -- perhaps they are
triggering a load of the state location?
Eclipse ICE (www.eclipse.org/ice)
uses a custom product to include our feature and some other
things in our binary. Our product actually uses
org.eclipse.platform.ide as the product it launches and
org.eclipse.ui.ide.workbench as the application.
ICE is currently configured to use a dedicated workspace by
passing the osgi.instance.area flag in the VM args, but I am
trying to change that so that the workspace dialog will pop up
at the beginning and users can pick their workspace. Does
anyone know what I need to do for this to work? I've spent two
days looking at this and nothing I try will cause the
workspace dialog to pop up, except adding -data @noDefault,
which only messes up the ResourcePlugin completely and
prevents ICE from starting.
I'm not sure if this is the best place for this email, but it
seemed like a good start. I would greatly appreciate your
thoughts (even if they are just "Go away!" ;-)).