diff --git a/admin/pom-config.xml b/admin/pom-config.xml
index 40e45c5ed6a..2fc3d98dcef 100644
--- a/admin/pom-config.xml
+++ b/admin/pom-config.xml
@@ -62,7 +62,7 @@
http://download.eclipse.org/eclipse/updates/${sdk-version}milestones
http://download.eclipse.org/tools/orbit/downloads/drops/R20150124073747/repository/
http://download.eclipse.org/tools/cdt/releases/8.5
- http://download.eclipse.org/tools/ptp/updates/remote/1.1.0
+ http://download.eclipse.org/tools/ptp/builds/remote/mars/milestones
http://download.eclipse.org/technology/swtbot/releases/latest/
http://archive.eclipse.org/tm/updates/rxtx
diff --git a/terminal/plugins/org.eclipse.tm.terminal.remote/src/org/eclipse/tm/internal/terminal/remote/Activator.java b/terminal/plugins/org.eclipse.tm.terminal.remote/src/org/eclipse/tm/internal/terminal/remote/Activator.java
index 577abd3410d..2e5ecad2515 100644
--- a/terminal/plugins/org.eclipse.tm.terminal.remote/src/org/eclipse/tm/internal/terminal/remote/Activator.java
+++ b/terminal/plugins/org.eclipse.tm.terminal.remote/src/org/eclipse/tm/internal/terminal/remote/Activator.java
@@ -14,6 +14,7 @@ import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.tm.internal.terminal.remote.messages.Messages;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
/**
* The activator class controls the plug-in life cycle
@@ -108,4 +109,17 @@ public class Activator extends Plugin {
}
return getDefault().getBundle().getSymbolicName();
}
+
+ /**
+ * Return the OSGi service with the given service interface.
+ *
+ * @param service
+ * service interface
+ * @return the specified service or null if it's not registered
+ */
+ public static T getService(Class service) {
+ final BundleContext context = plugin.getBundle().getBundleContext();
+ final ServiceReference ref = context.getServiceReference(service);
+ return ref != null ? context.getService(ref) : null;
+ }
}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.remote/src/org/eclipse/tm/internal/terminal/remote/RemoteConnectionManager.java b/terminal/plugins/org.eclipse.tm.terminal.remote/src/org/eclipse/tm/internal/terminal/remote/RemoteConnectionManager.java
index 74ac4835e66..5b3a7e30480 100644
--- a/terminal/plugins/org.eclipse.tm.terminal.remote/src/org/eclipse/tm/internal/terminal/remote/RemoteConnectionManager.java
+++ b/terminal/plugins/org.eclipse.tm.terminal.remote/src/org/eclipse/tm/internal/terminal/remote/RemoteConnectionManager.java
@@ -22,12 +22,13 @@ import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.core.runtime.preferences.InstanceScope;
import org.eclipse.osgi.util.NLS;
+import org.eclipse.remote.core.IRemoteCommandShellService;
import org.eclipse.remote.core.IRemoteConnection;
-import org.eclipse.remote.core.IRemoteConnectionManager;
+import org.eclipse.remote.core.IRemoteConnectionType;
import org.eclipse.remote.core.IRemoteProcess;
import org.eclipse.remote.core.IRemoteProcessBuilder;
-import org.eclipse.remote.core.IRemoteServices;
-import org.eclipse.remote.core.RemoteServices;
+import org.eclipse.remote.core.IRemoteProcessService;
+import org.eclipse.remote.core.IRemoteServicesManager;
import org.eclipse.remote.core.exception.RemoteConnectionException;
import org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl;
import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
@@ -65,13 +66,11 @@ public class RemoteConnectionManager extends Job {
IRemoteConnection remoteConnection = null;
try {
- String remoteServices = connector.getSshSettings().getRemoteServices();
- IRemoteServices services = RemoteServices.getRemoteServices(remoteServices);
- if (services != null) {
- IRemoteConnectionManager connMgr = services.getConnectionManager();
- if (connMgr != null) {
- remoteConnection = connMgr.getConnection(connector.getSshSettings().getConnectionName());
- }
+ IRemoteServicesManager svcMgr = Activator.getService(IRemoteServicesManager.class);
+ String connTypeId = connector.getSshSettings().getRemoteServices();
+ IRemoteConnectionType connType = svcMgr.getConnectionType(connTypeId);
+ if (connType != null) {
+ remoteConnection = connType.getConnection(connector.getSshSettings().getConnectionName());
}
if (remoteConnection == null) {
throw new RemoteConnectionException(NLS.bind(Messages.RemoteConnectionManager_0, connector.getSshSettings()
@@ -96,14 +95,16 @@ public class RemoteConnectionManager extends Job {
IEclipsePreferences prefs = InstanceScope.INSTANCE.getNode(Activator.getUniqueIdentifier());
String terminalShellCommand = prefs.get(IRemoteTerminalConstants.PREF_TERMINAL_SHELL_COMMAND, ""); //$NON-NLS-1$
if (!("".equals(terminalShellCommand)) //$NON-NLS-1$
- && (remoteConnection.getRemoteServices().getCapabilities() & IRemoteServices.CAPABILITY_SUPPORTS_COMMAND_SHELL) != 0) {
- remoteProcess = remoteConnection.getCommandShell(IRemoteProcessBuilder.ALLOCATE_PTY);
+ && remoteConnection.hasService(IRemoteCommandShellService.class)) {
+ IRemoteCommandShellService cmdShellSvc = remoteConnection.getService(IRemoteCommandShellService.class);
+ remoteProcess = cmdShellSvc.getCommandShell(IRemoteProcessBuilder.ALLOCATE_PTY);
} else {
if ("".equals(terminalShellCommand)) { //$NON-NLS-1$
terminalShellCommand = "/bin/bash -l"; //$NON-NLS-1$
}
- IRemoteProcessBuilder processBuilder = remoteConnection.getProcessBuilder(new ArgumentParser(
- terminalShellCommand).getTokenList());
+ IRemoteProcessService procSvc = remoteConnection.getService(IRemoteProcessService.class);
+ IRemoteProcessBuilder processBuilder = procSvc.getProcessBuilder(new ArgumentParser(terminalShellCommand)
+ .getTokenList());
remoteProcess = processBuilder.start(IRemoteProcessBuilder.ALLOCATE_PTY);
}
}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.remote/src/org/eclipse/tm/internal/terminal/remote/RemoteSettingsPage.java b/terminal/plugins/org.eclipse.tm.terminal.remote/src/org/eclipse/tm/internal/terminal/remote/RemoteSettingsPage.java
index e49d8097e47..646274136e0 100644
--- a/terminal/plugins/org.eclipse.tm.terminal.remote/src/org/eclipse/tm/internal/terminal/remote/RemoteSettingsPage.java
+++ b/terminal/plugins/org.eclipse.tm.terminal.remote/src/org/eclipse/tm/internal/terminal/remote/RemoteSettingsPage.java
@@ -23,11 +23,13 @@ public class RemoteSettingsPage extends AbstractSettingsPage {
fTerminalSettings = settings;
}
+ @Override
public void saveSettings() {
- fTerminalSettings.setRemoteServices(fRemoteConnectionWidget.getConnection().getRemoteServices().getId());
+ fTerminalSettings.setRemoteServices(fRemoteConnectionWidget.getConnection().getConnectionType().getId());
fTerminalSettings.setConnectionName(fRemoteConnectionWidget.getConnection().getName());
}
+ @Override
public void loadSettings() {
if (fTerminalSettings != null) {
fRemoteConnectionWidget.setConnection(fTerminalSettings.getRemoteServices(), fTerminalSettings.getConnectionName());
@@ -41,6 +43,7 @@ public class RemoteSettingsPage extends AbstractSettingsPage {
return value;
}
+ @Override
public boolean validateSettings() {
if (fRemoteConnectionWidget.getConnection() == null) {
return false;
@@ -48,6 +51,7 @@ public class RemoteSettingsPage extends AbstractSettingsPage {
return true;
}
+ @Override
public void createControl(Composite parent) {
Composite composite = new Composite(parent, SWT.NONE);
GridLayout gridLayout = new GridLayout(2, false);