Bug 565340 - Use ServiceCaller for org.eclipse.pde.ui
Replace uses of ServiceReference.get/unget with ServiceCaller, and
specific cases of looking up the TargetPlatformService with
TargetPlatformService.getDefault()
Change-Id: I4206f515014f0294082462259d0a39098cb9a4f9
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/core/project/IBundleProjectService.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/core/project/IBundleProjectService.java
index 45caa14..faca684 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/core/project/IBundleProjectService.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/core/project/IBundleProjectService.java
@@ -16,23 +16,19 @@
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.ServiceCaller;
import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.BundleContext;
import org.osgi.framework.Version;
/**
* Service used to create and configure bundle project descriptions.
* <p>
- * An instance of this service can be obtained from a {@link BundleContext} as
+ * An instance of this service can be obtained from a {@link ServiceCaller} as
* follows
* </p>
*
* <pre>
- * BundleContext context = ...
- * ServiceReference<IBundleContextService> ref = context.getServiceReference(IBundleContextService.class);
- * IBundleContextService service = context.getService(ref);
- * ...
- * context.ungetService(ref);
+ * ServiceCaller.callOnce(getClass(), IBundleContextService.class, (service) -> ...);
* </pre>
*
* @since 3.6
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/core/target/LoadTargetDefinitionJob.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/core/target/LoadTargetDefinitionJob.java
index 651316a..1bacd6d 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/core/target/LoadTargetDefinitionJob.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/core/target/LoadTargetDefinitionJob.java
@@ -101,7 +101,7 @@
fTarget = target;
if (target == null) {
fNone = true;
- ITargetPlatformService service = PDECore.getDefault().acquireService(ITargetPlatformService.class);
+ ITargetPlatformService service = TargetPlatformService.getDefault();
fTarget = service.newTarget();
}
}
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/P2TargetUtils.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/P2TargetUtils.java
index 2236fb0..4e80e7a 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/P2TargetUtils.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/P2TargetUtils.java
@@ -229,7 +229,7 @@
public static List<String> cleanOrphanedTargetDefinitionProfiles() throws CoreException {
List<String> list = new ArrayList<>();
IProfileRegistry registry = getProfileRegistry();
- ITargetPlatformService tps = PDECore.getDefault().acquireService(ITargetPlatformService.class);
+ ITargetPlatformService tps = TargetPlatformService.getDefault();
if (registry != null && tps != null) {
IProfile[] profiles = registry.getProfiles();
for (IProfile profile : profiles) {
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/preferences/MainPreferencePage.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/preferences/MainPreferencePage.java
index 17d6aa6..144632d 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/preferences/MainPreferencePage.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/preferences/MainPreferencePage.java
@@ -31,6 +31,7 @@
import org.eclipse.jface.window.Window;
import org.eclipse.pde.core.target.ITargetPlatformService;
import org.eclipse.pde.internal.core.*;
+import org.eclipse.pde.internal.core.target.TargetPlatformService;
import org.eclipse.pde.internal.launching.ILaunchingPreferenceConstants;
import org.eclipse.pde.internal.launching.PDELaunchingPlugin;
import org.eclipse.pde.internal.ui.*;
@@ -318,10 +319,8 @@
store.setValue(IPreferenceConstants.ADD_TO_JAVA_SEARCH, synchJavaSearch);
try {
if (synchJavaSearch) {
- ITargetPlatformService service = PDECore.getDefault().acquireService(ITargetPlatformService.class);
- if (service != null) {
- AddToJavaSearchJob.synchWithTarget(service.getWorkspaceTargetDefinition());
- }
+ ITargetPlatformService service = TargetPlatformService.getDefault();
+ AddToJavaSearchJob.synchWithTarget(service.getWorkspaceTargetDefinition());
} else {
AddToJavaSearchJob.clearAll();
}
diff --git a/ui/org.eclipse.pde.ui/src_samples/org/eclipse/pde/internal/ui/samples/ShowSampleAction.java b/ui/org.eclipse.pde.ui/src_samples/org/eclipse/pde/internal/ui/samples/ShowSampleAction.java
index 1cabd8f..0bb6a36 100644
--- a/ui/org.eclipse.pde.ui/src_samples/org/eclipse/pde/internal/ui/samples/ShowSampleAction.java
+++ b/ui/org.eclipse.pde.ui/src_samples/org/eclipse/pde/internal/ui/samples/ShowSampleAction.java
@@ -43,6 +43,7 @@
import org.eclipse.ui.intro.IIntroSite;
import org.eclipse.ui.intro.config.*;
import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
import org.osgi.framework.ServiceReference;
public class ShowSampleAction extends Action implements IIntroAction {
@@ -240,7 +241,7 @@
* Apply the profile changes to the currently running configuration.
*/
void applyConfiguration() throws CoreException {
- BundleContext context = PDEPlugin.getDefault().getBundle().getBundleContext();
+ BundleContext context = FrameworkUtil.getBundle(getClass()).getBundleContext();
ServiceReference<Configurator> reference = context.getServiceReference(Configurator.class);
Configurator configurator = context.getService(reference);
try {