Bug 265164 Consolidate all interface access under the appropriate context
At the moment the various 'Legacy<xxx>' implementations maintain discreet fields to store a variety of interface implementations (IWorkbench, IWorkbenchWindow, IPartSite...). With the new Context menchanism in place these should be placed in to the context structure at the appropriate location in the context tree and all the access methods (getService, getAdapter and a variety of 'direct' access API's like 'IWorkbecnh#getWorkingSetManager') should use the context to gain access to the API interface.
bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/workbench/ui/internal/Workbench.java
Collections.sort(toSort, new Comparator<Constructor<?>>() {
				public int compare(Constructor<?> c1, Constructor<?> c2) {
					int l1 = c1.getParameterTypes().length;
					int l2 = c2.getParameterTypes().length;
					return l1 - l2;
				}
			});
			
			for (Constructor<?> next : toSort) {
				boolean satisfiable = true;
				Class<?>[] params = next.getParameterTypes();
				for (int i = 0; i < params.length && satisfiable; i++) {
					Class<?> clazz = params[i];
					if (!context.containsKey(clazz.getName())) {
						satisfiable = false;
					}
				}
				if (satisfiable) {
					targetConstructor = next;
				}
			}
		}
		if (targetConstructor == null) {
			throw new RuntimeException(
					"could not find satisfiable constructor in class " + targetClass); 
		}
		Class<?>[] paramKeys = targetConstructor.getParameterTypes();
		try {
			Object[] params = new Object[paramKeys.length];
			for (int i = 0; i < params.length; i++) {