Bug 501762 - Cleanup OSGi component implementations in runtime

Change-Id: I51bdb15618d1a70b042bc3b4762f388dd8472032
Signed-off-by: Dirk Fauth <dirk.fauth@googlemail.com>
diff --git a/bundles/org.eclipse.e4.core.di.extensions/META-INF/MANIFEST.MF b/bundles/org.eclipse.e4.core.di.extensions/META-INF/MANIFEST.MF
index eb0c141..bc1a624 100644
--- a/bundles/org.eclipse.e4.core.di.extensions/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.e4.core.di.extensions/META-INF/MANIFEST.MF
@@ -13,9 +13,9 @@
  org.osgi.framework;version="1.8.0",
  org.osgi.service.component.annotations;version="1.2.0";resolution:=optional,
  org.osgi.service.event;version="1.3.1"
-Service-Component: OSGI-INF/org.eclipse.e4.core.services.events.xml,
- OSGI-INF/org.eclipse.e4.core.services.preferences.xml,
- OSGI-INF/org.eclipse.e4.core.di.extensions.bundleContext.xml
+Service-Component: OSGI-INF/org.eclipse.e4.core.di.internal.extensions.OSGiObjectSupplier.xml,
+ OSGI-INF/org.eclipse.e4.core.di.internal.extensions.EventObjectSupplier.xml,
+ OSGI-INF/org.eclipse.e4.core.di.internal.extensions.PreferencesObjectSupplier.xml
 Export-Package: org.eclipse.e4.core.di.extensions;x-internal:=true,
  org.eclipse.e4.core.di.internal.extensions;x-friends:="org.eclipse.e4.ui.di"
 Bundle-Localization: fragment
diff --git a/bundles/org.eclipse.e4.core.di.extensions/OSGI-INF/org.eclipse.e4.core.services.events.xml b/bundles/org.eclipse.e4.core.di.extensions/OSGI-INF/org.eclipse.e4.core.di.internal.extensions.EventObjectSupplier.xml
similarity index 86%
rename from bundles/org.eclipse.e4.core.di.extensions/OSGI-INF/org.eclipse.e4.core.services.events.xml
rename to bundles/org.eclipse.e4.core.di.extensions/OSGI-INF/org.eclipse.e4.core.di.internal.extensions.EventObjectSupplier.xml
index 368c8f6..5ccf9ef 100644
--- a/bundles/org.eclipse.e4.core.di.extensions/OSGI-INF/org.eclipse.e4.core.services.events.xml
+++ b/bundles/org.eclipse.e4.core.di.extensions/OSGI-INF/org.eclipse.e4.core.di.internal.extensions.EventObjectSupplier.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" name="org.eclipse.e4.core.services.events">
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" name="org.eclipse.e4.core.di.internal.extensions.EventObjectSupplier">
    <property name="dependency.injection.annotation" value="org.eclipse.e4.core.di.extensions.EventTopic"/>
    <service>
       <provide interface="org.eclipse.e4.core.di.suppliers.ExtendedObjectSupplier"/>
diff --git a/bundles/org.eclipse.e4.core.di.extensions/OSGI-INF/org.eclipse.e4.core.di.extensions.bundleContext.xml b/bundles/org.eclipse.e4.core.di.extensions/OSGI-INF/org.eclipse.e4.core.di.internal.extensions.OSGiObjectSupplier.xml
similarity index 82%
rename from bundles/org.eclipse.e4.core.di.extensions/OSGI-INF/org.eclipse.e4.core.di.extensions.bundleContext.xml
rename to bundles/org.eclipse.e4.core.di.extensions/OSGI-INF/org.eclipse.e4.core.di.internal.extensions.OSGiObjectSupplier.xml
index 30adbe2..eb7903f 100644
--- a/bundles/org.eclipse.e4.core.di.extensions/OSGI-INF/org.eclipse.e4.core.di.extensions.bundleContext.xml
+++ b/bundles/org.eclipse.e4.core.di.extensions/OSGI-INF/org.eclipse.e4.core.di.internal.extensions.OSGiObjectSupplier.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.e4.core.di.extensions.bundleContext">
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="activate" name="org.eclipse.e4.core.di.internal.extensions.OSGiObjectSupplier">
    <property name="dependency.injection.annotation" value="org.eclipse.e4.core.di.extensions.OSGiBundle"/>
    <service>
       <provide interface="org.eclipse.e4.core.di.suppliers.ExtendedObjectSupplier"/>
diff --git a/bundles/org.eclipse.e4.core.di.extensions/OSGI-INF/org.eclipse.e4.core.services.preferences.xml b/bundles/org.eclipse.e4.core.di.extensions/OSGI-INF/org.eclipse.e4.core.di.internal.extensions.PreferencesObjectSupplier.xml
similarity index 84%
rename from bundles/org.eclipse.e4.core.di.extensions/OSGI-INF/org.eclipse.e4.core.services.preferences.xml
rename to bundles/org.eclipse.e4.core.di.extensions/OSGI-INF/org.eclipse.e4.core.di.internal.extensions.PreferencesObjectSupplier.xml
index 408e08f..e08a6d8 100644
--- a/bundles/org.eclipse.e4.core.di.extensions/OSGI-INF/org.eclipse.e4.core.services.preferences.xml
+++ b/bundles/org.eclipse.e4.core.di.extensions/OSGI-INF/org.eclipse.e4.core.di.internal.extensions.PreferencesObjectSupplier.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" deactivate="removeAllListeners" immediate="true" name="org.eclipse.e4.core.services.preferences">
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" deactivate="removeAllListeners" immediate="true" name="org.eclipse.e4.core.di.internal.extensions.PreferencesObjectSupplier">
    <property name="dependency.injection.annotation" value="org.eclipse.e4.core.di.extensions.Preference"/>
    <service>
       <provide interface="org.eclipse.e4.core.di.suppliers.ExtendedObjectSupplier"/>
    </service>
-   <reference bind="setPreferencesService" cardinality="1..1" interface="org.eclipse.core.runtime.preferences.IPreferencesService" name="IPreferencesService" policy="static"/>
+   <reference bind="setPreferencesService" cardinality="1..1" interface="org.eclipse.core.runtime.preferences.IPreferencesService" name="PreferencesService" policy="static"/>
    <implementation class="org.eclipse.e4.core.di.internal.extensions.PreferencesObjectSupplier"/>
 </scr:component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.e4.core.di.extensions/src/org/eclipse/e4/core/di/internal/extensions/EventObjectSupplier.java b/bundles/org.eclipse.e4.core.di.extensions/src/org/eclipse/e4/core/di/internal/extensions/EventObjectSupplier.java
index 6e63785..8ea26f0 100644
--- a/bundles/org.eclipse.e4.core.di.extensions/src/org/eclipse/e4/core/di/internal/extensions/EventObjectSupplier.java
+++ b/bundles/org.eclipse.e4.core.di.extensions/src/org/eclipse/e4/core/di/internal/extensions/EventObjectSupplier.java
@@ -43,7 +43,7 @@
 /**
  * This class is instantiated and wired by declarative services.
  */
-@Component(service = ExtendedObjectSupplier.class, immediate = true, name = "org.eclipse.e4.core.services.events", property = "dependency.injection.annotation=org.eclipse.e4.core.di.extensions.EventTopic")
+@Component(service = ExtendedObjectSupplier.class, immediate = true, property = "dependency.injection.annotation=org.eclipse.e4.core.di.extensions.EventTopic")
 public class EventObjectSupplier extends ExtendedObjectSupplier {
 
 	private EventAdmin eventAdmin;
diff --git a/bundles/org.eclipse.e4.core.di.extensions/src/org/eclipse/e4/core/di/internal/extensions/OSGiObjectSupplier.java b/bundles/org.eclipse.e4.core.di.extensions/src/org/eclipse/e4/core/di/internal/extensions/OSGiObjectSupplier.java
index 1b9b690..9fa15a0 100644
--- a/bundles/org.eclipse.e4.core.di.extensions/src/org/eclipse/e4/core/di/internal/extensions/OSGiObjectSupplier.java
+++ b/bundles/org.eclipse.e4.core.di.extensions/src/org/eclipse/e4/core/di/internal/extensions/OSGiObjectSupplier.java
@@ -24,9 +24,10 @@
 import org.osgi.framework.BundleListener;
 import org.osgi.framework.FrameworkUtil;
 import org.osgi.framework.SynchronousBundleListener;
+import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
 
-@Component(service = ExtendedObjectSupplier.class, name = "org.eclipse.e4.core.di.extensions.bundleContext", property = "dependency.injection.annotation=org.eclipse.e4.core.di.extensions.OSGiBundle")
+@Component(service = ExtendedObjectSupplier.class, property = "dependency.injection.annotation=org.eclipse.e4.core.di.extensions.OSGiBundle")
 public class OSGiObjectSupplier extends ExtendedObjectSupplier {
 
 	/**
@@ -34,7 +35,12 @@
 	 */
 	private final Map<IRequestor, BundleListener> requestor2listener = new HashMap<>();
 
-	private final BundleContext localBundleContext = FrameworkUtil.getBundle(OSGiObjectSupplier.class).getBundleContext();
+	private BundleContext localBundleContext;
+
+	@Activate
+	void activate(BundleContext context) {
+		this.localBundleContext = context;
+	}
 
 	@Override
 	public Object get(IObjectDescriptor descriptor, IRequestor requestor, boolean track, boolean group) {
diff --git a/bundles/org.eclipse.e4.core.di.extensions/src/org/eclipse/e4/core/di/internal/extensions/PreferencesObjectSupplier.java b/bundles/org.eclipse.e4.core.di.extensions/src/org/eclipse/e4/core/di/internal/extensions/PreferencesObjectSupplier.java
index 8b77e59..6cf2cdc 100644
--- a/bundles/org.eclipse.e4.core.di.extensions/src/org/eclipse/e4/core/di/internal/extensions/PreferencesObjectSupplier.java
+++ b/bundles/org.eclipse.e4.core.di.extensions/src/org/eclipse/e4/core/di/internal/extensions/PreferencesObjectSupplier.java
@@ -38,7 +38,7 @@
  * Note: we do not support byte arrays in preferences at this time. This class
  * is instantiated and wired by declarative services.
  */
-@Component(service = ExtendedObjectSupplier.class, immediate = true, name = "org.eclipse.e4.core.services.preferences", property = "dependency.injection.annotation=org.eclipse.e4.core.di.extensions.Preference")
+@Component(service = ExtendedObjectSupplier.class, immediate = true, property = "dependency.injection.annotation=org.eclipse.e4.core.di.extensions.Preference")
 public class PreferencesObjectSupplier extends ExtendedObjectSupplier {
 
 	private IPreferencesService preferencesService;
@@ -47,7 +47,7 @@
 		return preferencesService;
 	}
 
-	@Reference(name = "IPreferencesService")
+	@Reference
 	public void setPreferencesService(IPreferencesService preferenceService) {
 		this.preferencesService = preferenceService;
 	}