mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-28 11:25:35 +02:00
[448400] [dstore] automatically fallback to exec(hostname) if no
hostname detected and print message if needed
This commit is contained in:
parent
d6a3c90c95
commit
0103923695
1 changed files with 119 additions and 119 deletions
|
@ -1,120 +1,120 @@
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2002, 2014 IBM Corporation and others.
|
* Copyright (c) 2002, 2014 IBM Corporation and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Eclipse Public License v1.0
|
* are made available under the terms of the Eclipse Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.eclipse.org/legal/epl-v10.html
|
* http://www.eclipse.org/legal/epl-v10.html
|
||||||
*
|
*
|
||||||
* Initial Contributors:
|
* Initial Contributors:
|
||||||
* The following IBM employees contributed to the Remote System Explorer
|
* The following IBM employees contributed to the Remote System Explorer
|
||||||
* component that contains this file: David McKnight, Kushal Munir,
|
* component that contains this file: David McKnight, Kushal Munir,
|
||||||
* Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
|
* Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
|
||||||
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
|
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
|
||||||
*
|
*
|
||||||
* Contributors:
|
* Contributors:
|
||||||
* David McKnight (IBM) - [283613] [dstore] Create a Constants File for all System Properties we support
|
* David McKnight (IBM) - [283613] [dstore] Create a Constants File for all System Properties we support
|
||||||
* David McKnight (IBM) - [388472] [dstore] need alternative option for getting at server hostname
|
* David McKnight (IBM) - [388472] [dstore] need alternative option for getting at server hostname
|
||||||
* David McKnight (IBM) - [448400] [dstore] automatically fallback to exec(hostname) if no hostname detected and print message if needed
|
* David McKnight (IBM) - [448400] [dstore] automatically fallback to exec(hostname) if no hostname detected and print message if needed
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.dstore.internal.core.server;
|
package org.eclipse.dstore.internal.core.server;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
import java.net.UnknownHostException;
|
import java.net.UnknownHostException;
|
||||||
|
|
||||||
import org.eclipse.dstore.core.model.DataStoreAttributes;
|
import org.eclipse.dstore.core.model.DataStoreAttributes;
|
||||||
import org.eclipse.dstore.internal.core.model.IDataStoreSystemProperties;
|
import org.eclipse.dstore.internal.core.model.IDataStoreSystemProperties;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class is used to store attributes that are required
|
* This class is used to store attributes that are required
|
||||||
* for configurating a remote connection.
|
* for configurating a remote connection.
|
||||||
*/
|
*/
|
||||||
public class ServerAttributes extends DataStoreAttributes
|
public class ServerAttributes extends DataStoreAttributes
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*/
|
*/
|
||||||
public ServerAttributes()
|
public ServerAttributes()
|
||||||
{
|
{
|
||||||
super();
|
super();
|
||||||
|
|
||||||
String pluginPath = System.getProperty(IDataStoreSystemProperties.A_PLUGIN_PATH);
|
String pluginPath = System.getProperty(IDataStoreSystemProperties.A_PLUGIN_PATH);
|
||||||
if (pluginPath != null) pluginPath = pluginPath.trim();
|
if (pluginPath != null) pluginPath = pluginPath.trim();
|
||||||
if ((pluginPath != null) && (pluginPath.length() > 0))
|
if ((pluginPath != null) && (pluginPath.length() > 0))
|
||||||
{
|
{
|
||||||
File f = new File(pluginPath);
|
File f = new File(pluginPath);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
pluginPath = f.getCanonicalPath();
|
pluginPath = f.getCanonicalPath();
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
pluginPath = f.getAbsolutePath();
|
pluginPath = f.getAbsolutePath();
|
||||||
}
|
}
|
||||||
|
|
||||||
setAttribute(A_PLUGIN_PATH, pluginPath + File.separator);
|
setAttribute(A_PLUGIN_PATH, pluginPath + File.separator);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setAttribute(A_PLUGIN_PATH, "/home/"); //$NON-NLS-1$
|
setAttribute(A_PLUGIN_PATH, "/home/"); //$NON-NLS-1$
|
||||||
}
|
}
|
||||||
|
|
||||||
setAttribute(A_LOCAL_NAME, getHostName());
|
setAttribute(A_LOCAL_NAME, getHostName());
|
||||||
|
|
||||||
setAttribute(A_HOST_NAME, "server_host"); //$NON-NLS-1$
|
setAttribute(A_HOST_NAME, "server_host"); //$NON-NLS-1$
|
||||||
setAttribute(A_HOST_PATH, "/home/"); //$NON-NLS-1$
|
setAttribute(A_HOST_PATH, "/home/"); //$NON-NLS-1$
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the server hostname, avoiding use of InetAddress.getLocalHost().getHostName() if possible
|
* Returns the server hostname, avoiding use of InetAddress.getLocalHost().getHostName() if possible
|
||||||
* @return the hostname
|
* @return the hostname
|
||||||
*/
|
*/
|
||||||
public static String getHostName(){
|
public static String getHostName(){
|
||||||
String hostname = System.getProperty("hostname"); //$NON-NLS-1$
|
String hostname = System.getProperty("hostname"); //$NON-NLS-1$
|
||||||
if (hostname == null || hostname.length() == 0){
|
if (hostname == null || hostname.length() == 0){
|
||||||
String readHostname = System.getProperty("read.hostname"); //$NON-NLS-1$
|
String readHostname = System.getProperty("read.hostname"); //$NON-NLS-1$
|
||||||
if (readHostname != null && readHostname.equals("true")){ //$NON-NLS-1$
|
if (readHostname != null && readHostname.equals("true")){ //$NON-NLS-1$
|
||||||
try {
|
try {
|
||||||
Process p = Runtime.getRuntime().exec("hostname"); //$NON-NLS-1$
|
Process p = Runtime.getRuntime().exec("hostname"); //$NON-NLS-1$
|
||||||
InputStream inStream = p.getInputStream();
|
InputStream inStream = p.getInputStream();
|
||||||
BufferedReader reader = new BufferedReader(new InputStreamReader(inStream));
|
BufferedReader reader = new BufferedReader(new InputStreamReader(inStream));
|
||||||
hostname = reader.readLine();
|
hostname = reader.readLine();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (hostname == null || hostname.length() == 0){ // still no hostname
|
if (hostname == null || hostname.length() == 0){ // still no hostname
|
||||||
try {
|
try {
|
||||||
hostname = InetAddress.getLocalHost().getHostName();
|
hostname = InetAddress.getLocalHost().getHostName();
|
||||||
} catch (UnknownHostException e) {
|
} catch (UnknownHostException e) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (hostname == null){
|
if (hostname == null){
|
||||||
// fall back to reading hostname from shell
|
// fall back to reading hostname from shell
|
||||||
try {
|
try {
|
||||||
Process p = Runtime.getRuntime().exec("hostname"); //$NON-NLS-1$
|
Process p = Runtime.getRuntime().exec("hostname"); //$NON-NLS-1$
|
||||||
InputStream inStream = p.getInputStream();
|
InputStream inStream = p.getInputStream();
|
||||||
BufferedReader reader = new BufferedReader(new InputStreamReader(inStream));
|
BufferedReader reader = new BufferedReader(new InputStreamReader(inStream));
|
||||||
hostname = reader.readLine();
|
hostname = reader.readLine();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (hostname != null && hostname.length() > 0){
|
if (hostname != null && hostname.length() > 0){
|
||||||
// set this so we don't have to do it again
|
// set this so we don't have to do it again
|
||||||
System.setProperty("hostname", hostname); //$NON-NLS-1$
|
System.setProperty("hostname", hostname); //$NON-NLS-1$
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
System.err.println("The server can not resolve the hostname. There may be a problem with the host DNS settings. This can be worked around by using the following JVM option with the server: -Dhostname=<hostname>");
|
System.err.println("The server can not resolve the hostname. There may be a problem with the host DNS settings. This can be worked around by using the following JVM option with the server: -Dhostname=<hostname>");
|
||||||
hostname ="";
|
hostname ="";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return hostname;
|
return hostname;
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Add table
Reference in a new issue