new LongOpt("version", LongOpt.REQUIRED_ARGUMENT, null, 'v'),
new LongOpt("class", LongOpt.REQUIRED_ARGUMENT, null, 'l'),
new LongOpt("uri", LongOpt.REQUIRED_ARGUMENT, null, 'u'),
new LongOpt("subsystem", LongOpt.REQUIRED_ARGUMENT, null, 's'), };
Getopt getopt = new Getopt(programName, args, sopts, lopts);
int code;
String arg;
while ((code = getopt.getopt()) != -1) {
switch (code) {
case ':':
case '?': {
// for now both of these should exit with error status
return 1;
}
case 1: {
// this will catch non-option arguments (which will be command params for a particular command)
arg = getopt.getOptarg();
String paramName;
String paramValue;
int i = arg.indexOf("=");
if (i == -1) {
paramName = arg;
paramValue = "true";
} else {
paramName = arg.substring(0, i);
paramValue = arg.substring(i + 1, arg.length());
}
// add the parameter to the returned map
m_params.put(paramName, paramValue);
LOG.debug(CommI18NResourceKeys.CMDLINE_CLIENT_CMDLINE_PARAM, programName, paramName, ((!"password"
.equalsIgnoreCase(paramName)) ? paramValue : "*"));
break;
}
case 'h': {
// show command line help
System.out.println(programName + " " + getUsage());
System.out.println();
return 0;
}
case 'v': {
arg = getopt.getOptarg();
try {
m_commandVersion = new Integer(arg).intValue();
} catch (NumberFormatException nfe) {
LOG.error(CommI18NResourceKeys.CMDLINE_CLIENT_INVALID_CMD_VERSION, arg, nfe);
return 1;
}
break;
}
case 'p': {
arg = getopt.getOptarg();
LOG.debug(CommI18NResourceKeys.CMDLINE_CLIENT_PACKAGES, programName, arg);
ArrayList<String> packageList = new ArrayList<String>();
StringTokenizer strtok = new StringTokenizer(arg, ":");
while (strtok.hasMoreTokens()) {
packageList.add(strtok.nextToken());
}
m_packages = packageList.toArray(new String[packageList.size()]);
break;
}
case 'l': {
m_classname = getopt.getOptarg();
LOG.debug(CommI18NResourceKeys.CMDLINE_CLIENT_CLASSNAME, programName, m_classname);
break;
}
case 'c': {
m_commandName = getopt.getOptarg();
LOG.debug(CommI18NResourceKeys.CMDLINE_CLIENT_COMMAND, programName, m_commandName);
break;
}
case 'u': {
m_locatorUri = getopt.getOptarg();
LOG.debug(CommI18NResourceKeys.CMDLINE_CLIENT_LOCATOR_URI, programName, m_locatorUri);
break;
}
case 's': {
m_subsystem = getopt.getOptarg();
LOG.debug(CommI18NResourceKeys.CMDLINE_CLIENT_SUBSYSTEM, programName, m_subsystem);
break;
}