From 4ca5d9b49494c88d4aa91a6ee1061bca547cd445 Mon Sep 17 00:00:00 2001 From: Greg Watson <g.watson@computer.org> Date: Thu, 14 May 2015 11:33:48 -0400 Subject: [PATCH] Add host service for local connection. Change-Id: I9ebf08e00839ec2d4e6affba5ccfeecadae9fc47 Signed-off-by: Greg Watson <g.watson@computer.org> --- bundles/org.eclipse.remote.core/plugin.xml | 5 + .../local/LocalConnectionHostService.java | 112 ++++++++++++++++++ 2 files changed, 117 insertions(+) create mode 100644 bundles/org.eclipse.remote.core/src/org/eclipse/remote/internal/core/services/local/LocalConnectionHostService.java diff --git a/bundles/org.eclipse.remote.core/plugin.xml b/bundles/org.eclipse.remote.core/plugin.xml index 85324367874..6d5154b1b81 100644 --- a/bundles/org.eclipse.remote.core/plugin.xml +++ b/bundles/org.eclipse.remote.core/plugin.xml @@ -40,6 +40,11 @@ factory="org.eclipse.remote.internal.core.services.local.LocalCommandShellService$Factory" service="org.eclipse.remote.core.IRemoteCommandShellService"> </connectionService> + <connectionService + connectionTypeId="org.eclipse.remote.LocalServices" + factory="org.eclipse.remote.internal.core.services.local.LocalConnectionHostService$Factory" + service="org.eclipse.remote.core.IRemoteConnectionHostService"> + </connectionService> <processService connectionTypeId="org.eclipse.remote.LocalServices" factory="org.eclipse.remote.internal.core.services.local.LocalProcess$Factory" diff --git a/bundles/org.eclipse.remote.core/src/org/eclipse/remote/internal/core/services/local/LocalConnectionHostService.java b/bundles/org.eclipse.remote.core/src/org/eclipse/remote/internal/core/services/local/LocalConnectionHostService.java new file mode 100644 index 00000000000..8afc56c3ec6 --- /dev/null +++ b/bundles/org.eclipse.remote.core/src/org/eclipse/remote/internal/core/services/local/LocalConnectionHostService.java @@ -0,0 +1,112 @@ +/******************************************************************************* + * Copyright (c) 2007 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - Initial API and implementation + *******************************************************************************/ +package org.eclipse.remote.internal.core.services.local; + +import java.net.InetAddress; +import java.net.UnknownHostException; + +import org.eclipse.remote.core.IRemoteConnection; +import org.eclipse.remote.core.IRemoteConnection.Service; +import org.eclipse.remote.core.IRemoteConnectionHostService; + +public class LocalConnectionHostService implements IRemoteConnectionHostService { + + private final IRemoteConnection connection; + + public LocalConnectionHostService(IRemoteConnection connection) { + this.connection = connection; + } + + public static class Factory implements IRemoteConnectionHostService.Factory { + @SuppressWarnings("unchecked") + @Override + public <T extends Service> T getService(IRemoteConnection remoteConnection, Class<T> service) { + if (service.equals(IRemoteConnectionHostService.class)) { + return (T) new LocalConnectionHostService(remoteConnection); + } + return null; + } + } + + @Override + public IRemoteConnection getRemoteConnection() { + return this.connection; + } + + @Override + public String getHostname() { + try { + return InetAddress.getLocalHost().getHostName(); + } catch (UnknownHostException e) { + return "unknown"; //$NON-NLS-1$ + } + } + + @Override + public int getPort() { + return 0; + } + + @Override + public int getTimeout() { + return 0; + } + + @Override + public boolean useLoginShell() { + return true; + } + + @Override + public String getUsername() { + return System.getProperty("user.name"); //$NON-NLS-1$ + } + + @Override + public void setHostname(String hostname) { + // Ignored + } + + @Override + public void setPassphrase(String passphrase) { + // Ignored + } + + @Override + public void setPassword(String password) { + // Ignored + } + + @Override + public void setPort(int port) { + // Ignored + } + + @Override + public void setTimeout(int timeout) { + // Ignored + } + + @Override + public void setUseLoginShell(boolean useLogingShell) { + // Ignored + } + + @Override + public void setUsePassword(boolean usePassword) { + // Ignored + } + + @Override + public void setUsername(String username) { + // Ignored + } +}