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/ReflectionContributionFactory.java
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++) {
				params[i] = context.get(paramKeys[i].getName());
			}
			Object newInstance = targetConstructor.newInstance(params);
			ContextInjectionFactory.inject(newInstance, context, " ", " "); 
			return newInstance;
		} catch (Exception e) {
			throw new RuntimeException(e);
		}
	}
	private Bundle getBundle(URI platformURI) {
		return Activator.getDefault().getBundleForName(platformURI.segment(1));
	}
}