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;
}