Bug 264065 Add OSGi service context as root of workbench context chain
The parent of the root workbench context should be an OSGi service context. This will allow all contexts to access OSGi services through their context "for free".
bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/workbench/ui/internal/WorkbenchApplication.java
import org.eclipse.equinox.app.IApplication;
import org.eclipse.equinox.app.IApplicationContext;
import org.eclipse.jface.databinding.swt.SWTObservables;
import org.eclipse.osgi.service.datalocation.Location;
import org.eclipse.swt.widgets.Display;
import org.osgi.framework.BundleContext;
import org.osgi.framework.Filter;
import org.osgi.framework.InvalidSyntaxException;
import org.osgi.service.packageadmin.PackageAdmin;
import org.osgi.util.tracker.ServiceTracker;
/**
 *
 */
public class WorkbenchApplication implements IApplication {
	private ServiceTracker instanceLocation;
	private BundleContext context;
	private ServiceTracker bundleTracker;
	public Object start(IApplicationContext applicationContext)
			throws Exception {
		this.context = Activator.getContext();
		final Display display = new Display();
		final WorkbenchFactory workbenchFactory = new WorkbenchFactory(
				getInstanceLocation(), getBundleAdmin(), RegistryFactory
						.getRegistry());
		String appURI = null;
		String[] args = (String[]) applicationContext.getArguments().get(
				"application.args"); 
		IProduct product = Platform.getProduct();
		if (args.length > 0 && args[0].equals("-applicationXMI")) { 
			appURI = args[1];