Bug 270989 Context refactoring
Based on discussions over the past weeks, I'm doing a refactoring of the context API. Major changes: - Renamed IComputedValue to IContextFunction - Renamed *Value to *Function - Renamed UIContextScheduler to UISchedulerStrategy - Added concept of ILookupStrategy to delegate lookup of keys that are not yet defined in a given context - Re-implemented OSGi service support using lookup strategy I also fixed a couple of NPE's I found while testing with the e4 photo demo (null realms, etc)
bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/workbench/ui/internal/Workbench.java
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) {
			System.err.println("Restoring workbench: " + restoreLocation); 
			workbench = (MApplication<MWindow>) resourceSetImpl.getResource(
					restoreLocation, true).getContents().get(0);
		} else {
			System.err
					.println("Initializing workbench: " + applicationDefinitionInstance); 
			Resource resource = new XMIResourceImpl();
			workbench = loadDefaultModel(applicationDefinitionInstance);
			resource.getContents().add((EObject) workbench);
			resource.setURI(URI.createFileURI(workbenchData.getAbsolutePath()));
		}