📄 boot.java
字号:
}
}else if (theArg.equalsIgnoreCase("-owner")) {
if (++n == args.length) {
// "owner:password" not provided on command line
results.add("owner:" + ":");
} else {
results.add("owner:" + args[n]);
}
} else if (theArg.equalsIgnoreCase("-name")) {
if (++n == args.length) {
System.err.println("Missing platform name");
printUsageInfo = true;
} else {
results.add("name:" + args[n]);
}
} else if (theArg.equalsIgnoreCase("-imtp")) {
if (++n == args.length) {
System.err.println("Missing IMTP class");
printUsageInfo = true;
} else {
results.add("imtp:" + args[n]);
}
} else if (theArg.equalsIgnoreCase("-port")) {
if (++n == args.length) {
System.err.println("Missing port number");
printUsageInfo = true;
} else {
try {
Integer.parseInt(args[n]);
} catch (NumberFormatException nfe) {
System.err.println("Wrong int for the port number");
printUsageInfo = true;
}
results.add("port:" + args[n]);
}
} else if (theArg.equalsIgnoreCase("-container")) {
results.add(theArg);
} else if (theArg.equalsIgnoreCase("-backupmain")) {
results.add(theArg);
} else if (theArg.equalsIgnoreCase("-gui")) {
results.add(theArg);
} else if (theArg.equalsIgnoreCase("-version")
|| theArg.equalsIgnoreCase("-v")) {
results.add("-version");
} else if (theArg.equalsIgnoreCase("-help")
|| theArg.equalsIgnoreCase("-h")) {
results.add("-help");
} else if (theArg.equalsIgnoreCase("-nomtp")) {
results.add(theArg);
} else if(theArg.equalsIgnoreCase("-nomobility")){
results.add(theArg);
} else if (theArg.equalsIgnoreCase(
"-dump")) { // new form but useful for debugging
results.add(theArg);
} else if (theArg.equalsIgnoreCase("-mtp")) {
if (++n == args.length) {
System.err.println("Missing mtp specifiers");
printUsageInfo = true;
} else {
results.add("mtp:" + args[n]);
}
} else if (theArg.equalsIgnoreCase("-aclcodec")) {
if (++n == args.length) {
System.err.println("Missing aclcodec specifiers");
printUsageInfo = true;
} else {
results.add("aclcodec:" + args[n]);
}
} else if (theArg.startsWith("-") && n+1 < args.length) {
// Generic option
results.add(theArg.substring(1)+":"+args[++n]);
} else {
endCommand = true; //no more options on the command line
}
n++; // go to the next argument
} // end of while
// all options, but the list of Agents, have been parsed
if (endCommand) { // parse the list of agents, now
--n; // go to the previous argument
StringBuffer sb = new StringBuffer();
for (int i = n; i < args.length; i++) {
sb.append(args[i] + " ");
}
results.add("agents:" + sb.toString());
}
if (printUsageInfo) {
results.add("-help");
}
String[] newArgs = new String[results.size()];
for (int i = 0; i < newArgs.length; i++) {
newArgs[i] = (String) results.elementAt(i);
}
return newArgs;
}
/**
* Test if an argument actually references a file.
* @param arg The argument to test.
* @return True if it does, false otherwise.
*/
protected boolean isFileName(String arg) {
File testFile = new File(arg);
return testFile.exists();
}
/**
* Show usage information.
* @param out The print stream to output to.
*/
public void usage(PrintStream out) {
out.println("Usage: java jade.Boot [options] [agent specifiers]");
out.println("");
out.println("where options are:");
out.println(" -host <host name>\tHost where RMI registry for the platform is located");
out.println(" -port <port number>\tThe port where RMI registry for the platform resides");
out.println(" -gui\t\t\tIf specified, a new Remote Management Agent is created.");
out.println(" -container\t\tIf specified, a new Agent Container is added to an existing platform");
out.println(" \t\t\tOtherwise a new Agent Platform is created");
out.println(" -conf\t\t\tShows the gui to set the configuration properties to start JADE.");
out.println(" -conf <file name>\tStarts JADE using the configuration properties read in the specified file.");
out.println(" -dump\t\t\tIf specified, lists boot's current properties.");
out.println(" -version\t\tIf specified, current JADE version number and build date is printed.");
out.println(" -mtp\t\t\tSpecifies a list, separated by ';', of external Message Transport Protocols to be activated.");
out.println(" \t\t\tBy default the HTTP-MTP is activated on the main-container and no MTP is activated on the other containers.");
out.println(" -nomtp\t\tHas precedence over -mtp and overrides it.");
out.println(" \t\t\tIt should be used to override the default behaviour of the main-container (by default the -nomtp option unselected).");
out.println(" -aclcodec\t\tSpecifies a list, separated by ';', of ACLCodec to use. By default the string codec is used.");
out.println(" -name <platform name>\tThe symbolic platform name specified only for the main container.");
out.println(" -owner <username:password>\tThe owner of a container or platform.");
out.println(" -nomobility\t\tIf specified, disables the mobility and cloning support for the container.");
out.println(" -auth <Simple|Unix|NT|Kerberos>\tThe user authentication module to be used.");
out.println(" -help\t\t\tPrints out usage informations.");
out.println(" -<key> <value>\t\tApplication specific options.");
out.println("");
out.print("An agent specifier is composed of an agent name and an agent class, separated by \"");
out.println(NAME2CLASS_SEPARATOR + "\"");
out.println("");
out.println("Take care that the specified agent name represents only the local name of the agent.");
out.println("Its guid (globally unique identifier) is instead assigned by the AMS after concatenating");
out.println("the home agent platform identifier (e.g. john@foo.cselt.it:1099/JADE)");
out.println("");
out.println("Examples:");
out.println(" Connect to default platform, starting an agent named 'peter'");
out.println(" implemented in 'myAgent' class:");
out.println(" \tjava jade.Boot -container peter:myAgent");
out.println("");
out.println(" Connect to a platform on host zork.zot.za, on port 1100,");
out.println(" starting two agents");
out.println(" java jade.Boot -container -host zork.zot.za -port 1100 peter:heAgent paula:sheAgent");
out.println("");
out.println(" Create an Agent Platform and starts an agent on the local Agent Container");
out.println(" \tjava jade.Boot Willy:searchAgent");
out.println("");
System.exit(0);
}
/**
* List boot properties to provided print stream.
* @param out PrintStream to list properties to.
*/
public void listProperties(PrintStream out) {
out.println("---------- Jade Boot property values ----------");
for (Enumeration e = properties.sortedKeys(); e.hasMoreElements(); ) {
String key = (String) e.nextElement();
out.println(key + "=" + properties.getProperty(key));
}
out.println("-----------------------------------------------");
}
/**
* Get boot properties.
* @return BasicProperties Boot properties.
*/
public BasicProperties getProperties() {
return properties;
}
/**
* Set boot properties. Copies provided properties over existing ones.
* @param updates Properties to be copied.
*/
public void setProperties(BasicProperties updates) throws BootException {
properties.copyProperties(updates);
profile.setArgProperties(properties);
}
/**
* This method verifies the configuration properties and eventually correct them.
* It checks if the port number is a number greater than 0 otherwise it throws a BootException,
* and if the -nomtp has been set, then delete some other mtp wrongly set.
* If the user wants to start a platform the host
* must be the local host so if a different name is speficied it
* will be corrected and an exception will be thrown.
* @throws BootException if anything is found to be inconsistent.
*/
protected void check() throws BootException {
try {
Integer.parseInt(profile.getParameter(Profile.MAIN_PORT, Integer.toString(BootProfileImpl.DEFAULT_PORT)));
} catch (NumberFormatException nfe) {
throw new BootException("Malformed port number");
}
// Remove the MTP list if '-nomtp' is specified
if (profile.getBooleanProperty(BootProfileImpl.NOMTP_KEY, false)) {
if (profile.getParameter(BootProfileImpl.MTP_KEY, null) != null) {
throw new BootException("Error: If noMTP is set, you can't specify MTPs.");
}
}
// Check that the local-host is actually local
String localHost = profile.getParameter(Profile.LOCAL_HOST, null);
if (localHost != null && !Profile.isLocalHost(localHost)) {
throw new BootException("Error: Not possible to launch JADE a remote host ("+properties.getProperty(Profile.LOCAL_HOST)+"). Check the -host and -local-host options.");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -