mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-13 19:25:38 +02:00
Merge "Bug 463468 - provide set methods for host services"
This commit is contained in:
commit
4c45929aae
3 changed files with 238 additions and 4 deletions
|
@ -20,10 +20,31 @@ public interface IRemoteConnectionHostService extends IRemoteConnection.Service
|
||||||
/**
|
/**
|
||||||
* Obtain the hostname associated with this connection.
|
* Obtain the hostname associated with this connection.
|
||||||
*
|
*
|
||||||
* @return
|
* @return hostname
|
||||||
*/
|
*/
|
||||||
String getHostname();
|
String getHostname();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Obtain the port associated with this connection
|
||||||
|
*
|
||||||
|
* @return port
|
||||||
|
*/
|
||||||
|
int getPort();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Obtain the timeout used when establishing the connection.
|
||||||
|
*
|
||||||
|
* @return timeout
|
||||||
|
*/
|
||||||
|
int getTimeout();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Obtain the flag that indicates a login shell should be started once the connection is established
|
||||||
|
*
|
||||||
|
* @return login shell flag
|
||||||
|
*/
|
||||||
|
boolean useLoginShell();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Obtain the username associated with this connection.
|
* Obtain the username associated with this connection.
|
||||||
*
|
*
|
||||||
|
@ -32,9 +53,73 @@ public interface IRemoteConnectionHostService extends IRemoteConnection.Service
|
||||||
String getUsername();
|
String getUsername();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Obtain the port associated with this connection
|
* Set the hostname associated with this connection. Note, this method can only be used for an
|
||||||
|
* IRemoteConnectionWorkingCopy and will have no effect otherwise.
|
||||||
*
|
*
|
||||||
* @return
|
* @param hostname
|
||||||
|
* new hostname for connection
|
||||||
*/
|
*/
|
||||||
int getPort();
|
void setHostname(String hostname);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the pass phrase associated with this connection. Note, this method can only be used for an
|
||||||
|
* IRemoteConnectionWorkingCopy and will have no effect otherwise.
|
||||||
|
*
|
||||||
|
* @param passphrase
|
||||||
|
*/
|
||||||
|
void setPassphrase(String passphrase);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the password associated with this connection. Note, this method can only be used for an
|
||||||
|
* IRemoteConnectionWorkingCopy and will have no effect otherwise.
|
||||||
|
*
|
||||||
|
* @param password
|
||||||
|
* new password for connection
|
||||||
|
*/
|
||||||
|
void setPassword(String password);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the port used for the connection. Note, this method can only be used forh an
|
||||||
|
* IRemoteConnectionWorkingCopy and will have no effect otherwise.
|
||||||
|
*
|
||||||
|
* @param port
|
||||||
|
* new port for connection
|
||||||
|
*/
|
||||||
|
void setPort(int port);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the timeout used when establishing the connection. A timeout of 0 means infinite. Note, this method can only be used
|
||||||
|
* for an IRemoteConnectionWorkingCopy and will have no effect otherwise.
|
||||||
|
*
|
||||||
|
* @param timeout
|
||||||
|
* new timeout value
|
||||||
|
*/
|
||||||
|
void setTimeout(int timeout);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the flag indicating a login shell should be stated for this connection. Note, this method can only be used
|
||||||
|
* for an IRemoteConnectionWorkingCopy and will have no effect otherwise.
|
||||||
|
*
|
||||||
|
* @param useLogingShell
|
||||||
|
* true to start a login shell
|
||||||
|
*/
|
||||||
|
void setUseLoginShell(boolean useLogingShell);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the connection to try password authentication first. Note, this method can only be used for an
|
||||||
|
* IRemoteConnectionWorkingCopy and will have no effect otherwise.
|
||||||
|
*
|
||||||
|
* @param usePassword
|
||||||
|
* use password authentication
|
||||||
|
*/
|
||||||
|
void setUsePassword(boolean usePassword);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the username associated with this connection. Note, this method can only be used for an
|
||||||
|
* IRemoteConnectionWorkingCopy and will have no effect otherwise.
|
||||||
|
*
|
||||||
|
* @param username
|
||||||
|
* new username for connection
|
||||||
|
*/
|
||||||
|
void setUsername(String username);
|
||||||
}
|
}
|
||||||
|
|
|
@ -652,6 +652,7 @@ public class JSchConnection implements IRemoteConnectionControlService, IRemoteC
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public int getTimeout() {
|
public int getTimeout() {
|
||||||
String str = fRemoteConnection.getAttribute(TIMEOUT_ATTR);
|
String str = fRemoteConnection.getAttribute(TIMEOUT_ATTR);
|
||||||
return !str.isEmpty() ? Integer.parseInt(str) : DEFAULT_TIMEOUT;
|
return !str.isEmpty() ? Integer.parseInt(str) : DEFAULT_TIMEOUT;
|
||||||
|
@ -967,9 +968,74 @@ public class JSchConnection implements IRemoteConnectionControlService, IRemoteC
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public boolean useLoginShell() {
|
public boolean useLoginShell() {
|
||||||
String str = fRemoteConnection.getAttribute(USE_LOGIN_SHELL_ATTR);
|
String str = fRemoteConnection.getAttribute(USE_LOGIN_SHELL_ATTR);
|
||||||
return !str.isEmpty() ? Boolean.parseBoolean(str) : DEFAULT_USE_LOGIN_SHELL;
|
return !str.isEmpty() ? Boolean.parseBoolean(str) : DEFAULT_USE_LOGIN_SHELL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setHostname(String hostname) {
|
||||||
|
if (fRemoteConnection instanceof IRemoteConnectionWorkingCopy) {
|
||||||
|
IRemoteConnectionWorkingCopy wc = (IRemoteConnectionWorkingCopy) fRemoteConnection;
|
||||||
|
wc.setAttribute(ADDRESS_ATTR, hostname);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setPassphrase(String passphrase) {
|
||||||
|
if (fRemoteConnection instanceof IRemoteConnectionWorkingCopy) {
|
||||||
|
IRemoteConnectionWorkingCopy wc = (IRemoteConnectionWorkingCopy) fRemoteConnection;
|
||||||
|
wc.setSecureAttribute(PASSPHRASE_ATTR, passphrase);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setPassword(String password) {
|
||||||
|
if (fRemoteConnection instanceof IRemoteConnectionWorkingCopy) {
|
||||||
|
IRemoteConnectionWorkingCopy wc = (IRemoteConnectionWorkingCopy) fRemoteConnection;
|
||||||
|
wc.setSecureAttribute(PASSWORD_ATTR, password);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setPort(int port) {
|
||||||
|
if (fRemoteConnection instanceof IRemoteConnectionWorkingCopy) {
|
||||||
|
IRemoteConnectionWorkingCopy wc = (IRemoteConnectionWorkingCopy) fRemoteConnection;
|
||||||
|
wc.setAttribute(PORT_ATTR, Integer.toString(port));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setTimeout(int timeout) {
|
||||||
|
if (fRemoteConnection instanceof IRemoteConnectionWorkingCopy) {
|
||||||
|
IRemoteConnectionWorkingCopy wc = (IRemoteConnectionWorkingCopy) fRemoteConnection;
|
||||||
|
wc.setAttribute(TIMEOUT_ATTR, Integer.toString(timeout));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setUseLoginShell(boolean useLogingShell) {
|
||||||
|
if (fRemoteConnection instanceof IRemoteConnectionWorkingCopy) {
|
||||||
|
IRemoteConnectionWorkingCopy wc = (IRemoteConnectionWorkingCopy) fRemoteConnection;
|
||||||
|
wc.setAttribute(USE_LOGIN_SHELL_ATTR, Boolean.toString(useLogingShell));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setUsePassword(boolean usePassword) {
|
||||||
|
if (fRemoteConnection instanceof IRemoteConnectionWorkingCopy) {
|
||||||
|
IRemoteConnectionWorkingCopy wc = (IRemoteConnectionWorkingCopy) fRemoteConnection;
|
||||||
|
wc.setAttribute(IS_PASSWORD_ATTR, Boolean.toString(usePassword));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setUsername(String username) {
|
||||||
|
if (fRemoteConnection instanceof IRemoteConnectionWorkingCopy) {
|
||||||
|
IRemoteConnectionWorkingCopy wc = (IRemoteConnectionWorkingCopy) fRemoteConnection;
|
||||||
|
wc.setAttribute(USERNAME_ATTR, username);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,83 @@
|
||||||
|
package org.eclipse.remote.core.tests.internal;
|
||||||
|
|
||||||
|
import org.eclipse.core.runtime.NullProgressMonitor;
|
||||||
|
import org.eclipse.remote.core.IRemoteConnection;
|
||||||
|
import org.eclipse.remote.core.IRemoteConnectionHostService;
|
||||||
|
import org.eclipse.remote.core.IRemoteConnectionType;
|
||||||
|
import org.eclipse.remote.core.IRemoteConnectionWorkingCopy;
|
||||||
|
import org.eclipse.remote.core.IRemoteServicesManager;
|
||||||
|
import org.eclipse.remote.core.exception.RemoteConnectionException;
|
||||||
|
|
||||||
|
import junit.framework.TestCase;
|
||||||
|
|
||||||
|
public class ServiceTests extends TestCase {
|
||||||
|
private static final String USERNAME = "greg"; //$NON-NLS-1$
|
||||||
|
private static final String PASSWORD = ""; //$NON-NLS-1$
|
||||||
|
private static final String HOST = "localhost"; //$NON-NLS-1$
|
||||||
|
|
||||||
|
private IRemoteConnectionType fConnectionType;
|
||||||
|
private IRemoteConnection fRemoteConnection;
|
||||||
|
|
||||||
|
public void testHostService() {
|
||||||
|
IRemoteConnectionWorkingCopy wc = null;
|
||||||
|
try {
|
||||||
|
wc = fConnectionType.newConnection("test_connection");//$NON-NLS-1$
|
||||||
|
} catch (RemoteConnectionException e) {
|
||||||
|
fail(e.getLocalizedMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
IRemoteConnectionHostService hostService = wc.getService(IRemoteConnectionHostService.class);
|
||||||
|
assertNotNull(hostService);
|
||||||
|
|
||||||
|
String host = System.getenv("TEST_HOST");
|
||||||
|
if (host == null) {
|
||||||
|
host = HOST;
|
||||||
|
}
|
||||||
|
hostService.setHostname(host);
|
||||||
|
|
||||||
|
String username = System.getenv("TEST_USERNAME");
|
||||||
|
if (username == null) {
|
||||||
|
username = USERNAME;
|
||||||
|
}
|
||||||
|
hostService.setUsername(username);
|
||||||
|
|
||||||
|
String password = System.getenv("TEST_PASSWORD");
|
||||||
|
if (password == null) {
|
||||||
|
password = PASSWORD;
|
||||||
|
}
|
||||||
|
hostService.setPassword(password);
|
||||||
|
|
||||||
|
try {
|
||||||
|
fRemoteConnection = wc.save();
|
||||||
|
} catch (RemoteConnectionException e) {
|
||||||
|
fail(e.getLocalizedMessage());
|
||||||
|
}
|
||||||
|
assertNotNull(fRemoteConnection);
|
||||||
|
|
||||||
|
try {
|
||||||
|
fRemoteConnection.open(new NullProgressMonitor());
|
||||||
|
} catch (RemoteConnectionException e) {
|
||||||
|
fail(e.getLocalizedMessage());
|
||||||
|
}
|
||||||
|
assertTrue(fRemoteConnection.isOpen());
|
||||||
|
|
||||||
|
hostService = fRemoteConnection.getService(IRemoteConnectionHostService.class);
|
||||||
|
assertNotNull(hostService);
|
||||||
|
|
||||||
|
assertEquals(hostService.getHostname(), host);
|
||||||
|
assertEquals(hostService.getUsername(), username);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void setUp() throws Exception {
|
||||||
|
IRemoteServicesManager manager = Activator.getService(IRemoteServicesManager.class);
|
||||||
|
fConnectionType = manager.getConnectionType("org.eclipse.remote.JSch"); //$NON-NLS-1$
|
||||||
|
assertNotNull(fConnectionType);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void tearDown() throws Exception {
|
||||||
|
fConnectionType.removeConnection(fRemoteConnection);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue