[jboss-cvs] JBossAS SVN: r101747 - trunk/main/src/main/java/org/jboss.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Mar 2 19:18:41 EST 2010
Author: david.lloyd at jboss.com
Date: 2010-03-02 19:18:40 -0500 (Tue, 02 Mar 2010)
New Revision: 101747
Modified:
trunk/main/src/main/java/org/jboss/Main.java
Log:
JBAS-7779: Auto-detect node name based on the server host name; also provide some options to override host and node name
Modified: trunk/main/src/main/java/org/jboss/Main.java
===================================================================
--- trunk/main/src/main/java/org/jboss/Main.java 2010-03-03 00:10:44 UTC (rev 101746)
+++ trunk/main/src/main/java/org/jboss/Main.java 2010-03-03 00:18:40 UTC (rev 101747)
@@ -181,9 +181,59 @@
// First process the command line to pickup custom props/settings
processCommandLine(args);
+ // Set up the host name before the logmanager config, so it can be referenced there
+ String hostName = System.getProperty("jboss.host.name");
+ String qualifiedHostName = System.getProperty("jboss.qualified.host.name");
+ if (qualifiedHostName == null)
+ {
+ // if host name is specified, don't pick a qualified host name that isn't related to it
+ qualifiedHostName = hostName;
+ if (qualifiedHostName == null)
+ {
+ // POSIX-like OSes including Mac should have this set
+ qualifiedHostName = System.getenv("HOSTNAME");
+ }
+ if (qualifiedHostName == null)
+ {
+ // Certain versions of Windows
+ qualifiedHostName = System.getenv("COMPUTERNAME");
+ }
+ if (qualifiedHostName == null)
+ {
+ qualifiedHostName = InetAddress.getLocalHost().getHostName();
+ }
+ if (qualifiedHostName.matches("^\\d+\\.\\d+\\.\\d+\\.\\d+$|:"))
+ {
+ // IP address is not acceptable
+ qualifiedHostName = null;
+ }
+ if (qualifiedHostName == null)
+ {
+ // Give up
+ qualifiedHostName = "unknown-host.unknown-domain";
+ }
+ qualifiedHostName = qualifiedHostName.trim().toLowerCase();
+ System.setProperty("jboss.qualified.host.name", qualifiedHostName);
+ }
+ if (hostName == null)
+ {
+ // Use the host part of the qualified host name
+ final int idx = qualifiedHostName.indexOf('.');
+ hostName = idx == -1 ? qualifiedHostName : qualifiedHostName.substring(0, idx);
+ System.setProperty("jboss.host.name", hostName);
+ }
+
+ // Set up the node name
+ String nodeName = System.getProperty("jboss.node.name");
+ if (nodeName == null)
+ {
+ nodeName = hostName;
+ System.setProperty("jboss.node.name", nodeName);
+ }
+
// Initialize the JDK logmanager
- String name = System.getProperty("java.util.logging.manager");
- if (name == null)
+ String logManagerClassName = System.getProperty("java.util.logging.manager");
+ if (logManagerClassName == null)
{
System.setProperty("java.util.logging.manager", "org.jboss.logmanager.LogManager");
String pluginClass = System.getProperty("org.jboss.logging.Logger.pluginClass");
@@ -455,9 +505,10 @@
{
// set this from a system property or default to jboss
String programName = System.getProperty("program.name", "jboss");
- String sopts = "-:hD:d:p:n:c:Vj::B:L:C:P:b:g:u:m:l:";
+ String sopts = "-:hD:d:p:n:c:Vj::B:L:C:P:b:g:u:m:l:H:N:";
LongOpt[] lopts =
- {new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h'),
+ {
+ new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h'),
new LongOpt("bootdir", LongOpt.REQUIRED_ARGUMENT, null, 'd'),
new LongOpt("patchdir", LongOpt.REQUIRED_ARGUMENT, null, 'p'),
new LongOpt("netboot", LongOpt.REQUIRED_ARGUMENT, null, 'n'),
@@ -472,7 +523,10 @@
new LongOpt("partition", LongOpt.REQUIRED_ARGUMENT, null, 'g'),
new LongOpt("udp", LongOpt.REQUIRED_ARGUMENT, null, 'u'),
new LongOpt("mcast_port", LongOpt.REQUIRED_ARGUMENT, null, 'm'),
- new LongOpt("log", LongOpt.REQUIRED_ARGUMENT, null, 'l'),};
+ new LongOpt("log", LongOpt.REQUIRED_ARGUMENT, null, 'l'),
+ new LongOpt("hostname", LongOpt.REQUIRED_ARGUMENT, null, 'H'),
+ new LongOpt("nodename", LongOpt.REQUIRED_ARGUMENT, null, 'N'),
+ };
Getopt getopt = new Getopt(programName, args, sopts, lopts);
int code;
@@ -516,6 +570,8 @@
System.out.println(" -m, --mcast_port=<ip> UDP multicast port; only used by JGroups");
System.out.println(" -u, --udp=<ip> UDP multicast address");
System.out.println(" -l, --log=<log4j|jdk> Specify the logger plugin type");
+ System.out.println(" -H, --hostname=<name> Set the host name");
+ System.out.println(" -N, --nodename=<name> Set the node name to use");
System.out.println();
System.exit(0);
break; // for completeness
@@ -681,6 +737,18 @@
break;
}
+ case 'H' : {
+ arg = getopt.getOptarg();
+ System.setProperty("jboss.qualified.host.name", arg.trim().toLowerCase());
+ break;
+ }
+
+ case 'N' : {
+ arg = getopt.getOptarg();
+ System.setProperty("jboss.node.name", arg.trim());
+ break;
+ }
+
default :
// this should not happen,
// if it does throw an error so we know about it
More information about the jboss-cvs-commits
mailing list