Bug 264899 Replace context name with computable debug string
Contexts currently are required to have a name, but this string is only used for debugging purposes. We should instead store this "debug string" in the context itself, allowing clients to use a computed value to add additional debug information. We can make this name optional by supplying a default value, which simplifies life for clients that don't care about the name (much as toString() is optional and a default is provided for those who don't care to implement it).
bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/workbench/ui/internal/WorkbenchApplication.java
import org.osgi.framework.InvalidSyntaxException;
import org.osgi.service.packageadmin.PackageAdmin;
import org.osgi.util.tracker.ServiceTracker;
/**
 *
 */
public class WorkbenchApplication implements IApplication {
	
	
	public static Workbench workbench;
	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];
		} else if (product != null) {
			String path = product.getProperty("applicationXMI"); 
			if (path != null) {
				appURI = path;