Bug 304586 Injected methods only react to changes to method arguments
bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/workbench/ui/internal/SelectionServiceImpl.java
void preDestroy() {
		IEclipseContext rootContext = serviceRoot.getContext();
		if (rootContext != context) {
			ESelectionService selectionService = (ESelectionService) rootContext
					.get(ESelectionService.class.getName());
			for (ISelectionListener listener : genericListeners) {
				selectionService.removeSelectionListener(listener);
			}
			for (Entry<String, Set<ISelectionListener>> entry : targetedListeners.entrySet()) {
				String partId = entry.getKey();
				for (ISelectionListener listener : entry.getValue()) {
					selectionService.removeSelectionListener(partId, listener);
				}
			}
		}
		genericListeners.clear();
		targetedListeners.clear();
		eventBroker.unsubscribe(eventHandler);
	}
	@PostConstruct
	void postConstruct() {
		eventBroker
				.subscribe(UIEvents.buildTopic(UIEvents.Context.TOPIC, UIEvents.Context.CONTEXT),
						eventHandler);
		for (MPart part : partService.getParts()) {
			track(part);
		}
	}
	@Inject
	void setPart(@Optional @Named(IServiceConstants.ACTIVE_PART) final MPart part) {