Bug 269058 [UI] Remove product specific code
The current implementation of org.eclipse.e4.workbench.ui.internal.Workbench currently contains code (based on the availability of the LegacyHook) that is specific to running either the compatibility layer (LH == true) or the photo demo (PH == false). We should make the base Workbench logic work whichever of the two 'applications' are running (i.e. based -only- on the difference in their 'default' model XMI).
bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/workbench/ui/internal/Workbench.java
resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap()
				.put(Resource.Factory.Registry.DEFAULT_EXTENSION,
						new XMIResourceFactoryImpl());
		
		
		resourceSet.getPackageRegistry().put(WorkbenchPackage.eNS_URI,
				WorkbenchPackage.eINSTANCE);
		globalContext = createContext(applicationContext);
		if (workbenchData != null && workbenchData.exists() && saveAndRestore) {
			createWorkbenchModel(URI.createFileURI(workbenchData
					.getAbsolutePath()), workbenchXmiURI);
		} else {
			createWorkbenchModel(null, workbenchXmiURI);
		}
	}
	private IEclipseContext createContext(IEclipseContext applicationContext) {
		final IEclipseContext mainContext = EclipseContextFactory.create(
				applicationContext, UIContextScheduler.instance);
		mainContext.set(IContextConstants.DEBUG_STRING, "globalContext"); 
		IConfigurationElement[] contributions = registry
				.getConfigurationElementsFor("org.eclipse.e4.services"); 
		for (IConfigurationElement contribution : contributions) {
			try {
				for (IConfigurationElement serviceElement : contribution
						.getChildren("service")) { 
					Object factory = contribution
							.createExecutableExtension("class"); 
					String apiClassname = serviceElement.getAttribute("api");