diff --git a/org.eclipse.remote.core/src/org/eclipse/internal/remote/core/RemoteServicesImpl.java b/org.eclipse.remote.core/src/org/eclipse/internal/remote/core/RemoteServicesImpl.java index 6d283189687..0ea07834c92 100644 --- a/org.eclipse.remote.core/src/org/eclipse/internal/remote/core/RemoteServicesImpl.java +++ b/org.eclipse.remote.core/src/org/eclipse/internal/remote/core/RemoteServicesImpl.java @@ -22,6 +22,8 @@ import org.eclipse.core.runtime.IExtension; import org.eclipse.core.runtime.IExtensionPoint; import org.eclipse.core.runtime.IExtensionRegistry; import org.eclipse.core.runtime.Platform; +import org.eclipse.internal.remote.core.services.local.LocalServices; +import org.eclipse.remote.core.RemoteServices; /** * Main entry point for remote services @@ -56,7 +58,8 @@ public class RemoteServicesImpl { } /** - * Retrieve a sorted list of remote service descriptors. + * Retrieve a sorted list of remote service descriptors. Does not return the local service provider. This must be obtained + * using the {@link RemoteServices#getLocalServices()} method. * * @return remote service descriptors */ @@ -64,7 +67,9 @@ public class RemoteServicesImpl { retrieveRemoteServices(); List descriptors = new ArrayList(); for (RemoteServicesDescriptor descriptor : fRemoteServicesById.values()) { - descriptors.add(descriptor); + if (!descriptor.getId().equals(LocalServices.LocalServicesId)) { + descriptors.add(descriptor); + } } Collections.sort(descriptors); return descriptors; diff --git a/org.eclipse.remote.core/src/org/eclipse/remote/core/IRemoteServices.java b/org.eclipse.remote.core/src/org/eclipse/remote/core/IRemoteServices.java index 19b46fdeea0..7a2343bd9c2 100644 --- a/org.eclipse.remote.core/src/org/eclipse/remote/core/IRemoteServices.java +++ b/org.eclipse.remote.core/src/org/eclipse/remote/core/IRemoteServices.java @@ -22,6 +22,7 @@ public interface IRemoteServices extends IRemoteServicesDescriptor { public static final int CAPABILITY_REMOVE_CONNECTIONS = 0x04; public static final int CAPABILITY_SUPPORTS_TCP_PORT_FORWARDING = 0x08; public static final int CAPABILITY_SUPPORTS_X11_FORWARDING = 0x10; + public static final int CAPABILITY_SUPPORTS_COMMAND_SHELL = 0x20; /** * Get a connection manager for managing remote connections. diff --git a/org.eclipse.remote.core/src/org/eclipse/remote/core/RemoteServices.java b/org.eclipse.remote.core/src/org/eclipse/remote/core/RemoteServices.java index 5acc1c672ae..64eea6a17c9 100644 --- a/org.eclipse.remote.core/src/org/eclipse/remote/core/RemoteServices.java +++ b/org.eclipse.remote.core/src/org/eclipse/remote/core/RemoteServices.java @@ -13,8 +13,8 @@ package org.eclipse.remote.core; import java.net.URI; import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.internal.remote.core.RemoteServicesImpl; import org.eclipse.internal.remote.core.RemoteServicesDescriptor; +import org.eclipse.internal.remote.core.RemoteServicesImpl; import org.eclipse.internal.remote.core.services.local.LocalServices; /** @@ -23,19 +23,13 @@ import org.eclipse.internal.remote.core.services.local.LocalServices; * @since 7.0 */ public class RemoteServices { - // Local services - private static IRemoteServices fLocalServices; - /** * Retrieve the local services provider. Guaranteed to exist and be initialized. * * @return local services provider */ public static IRemoteServices getLocalServices() { - if (fLocalServices == null) { - fLocalServices = getRemoteServices(LocalServices.LocalServicesId); - } - return fLocalServices; + return getRemoteServices(LocalServices.LocalServicesId); } /** diff --git a/org.eclipse.remote.jsch.core/plugin.xml b/org.eclipse.remote.jsch.core/plugin.xml index 0ff64312250..f898778794d 100644 --- a/org.eclipse.remote.jsch.core/plugin.xml +++ b/org.eclipse.remote.jsch.core/plugin.xml @@ -6,7 +6,7 @@