Bug 290964 Factor out model loading from Workbench so that it is plugable
We want to support different workbench restoreing possibilities and for this we need to delegate the loading to an external instance
bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/workbench/ui/internal/Workbench.java
Object timestamp = attributes.get(URIConverter.ATTRIBUTE_TIME_STAMP);
		if (timestamp instanceof Long) {
			appLastModified = ((Long) timestamp).longValue();
		} else if (applicationDefinitionInstance.isPlatformPlugin()) {
			try {
				java.net.URL url = new java.net.URL(applicationDefinitionInstance.toString());
				Object[] obj = PlatformURLPluginConnection.parse(url.getFile().trim(), url);
				Bundle b = (Bundle) obj[0];
				URLConnection openConnection = b.getResource((String) obj[1]).openConnection();
				appLastModified = openConnection.getLastModified();
			} catch (Exception e) {
				
			}
		}
		
		boolean restore = restoreLastModified > appLastModified;
		if (restore) {
			Activator
					.trace(Policy.DEBUG_WORKBENCH, "Restoring workbench: " + restoreLocation, null); 
			workbench = (MApplication) resourceSetImpl.getResource(restoreLocation, true)
					.getContents().get(0);
		} else {
			Activator.trace(Policy.DEBUG_WORKBENCH,
					"Initializing workbench: " + applicationDefinitionInstance, null); 
			Resource resource = new XMIResourceImpl();
			workbench = loadDefaultModel(applicationDefinitionInstance);
			resource.getContents().add((EObject) workbench);
			resource.setURI(restoreLocation);
		}
		init();