You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by do...@apache.org on 2011/06/26 20:08:37 UTC
svn commit: r1139866 -
/ofbiz/trunk/framework/start/src/org/ofbiz/base/start/Start.java
Author: doogie
Date: Sun Jun 26 18:08:37 2011
New Revision: 1139866
URL: http://svn.apache.org/viewvc?rev=1139866&view=rev
Log:
FEATURE: Refactored to support -help/-? anywhere; also, cmdline parse errors now
send help to System.err, like a normal unix program.
Modified:
ofbiz/trunk/framework/start/src/org/ofbiz/base/start/Start.java
Modified: ofbiz/trunk/framework/start/src/org/ofbiz/base/start/Start.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/start/src/org/ofbiz/base/start/Start.java?rev=1139866&r1=1139865&r2=1139866&view=diff
==============================================================================
--- ofbiz/trunk/framework/start/src/org/ofbiz/base/start/Start.java (original)
+++ ofbiz/trunk/framework/start/src/org/ofbiz/base/start/Start.java Sun Jun 26 18:08:37 2011
@@ -30,6 +30,7 @@ import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.List;
/**
* Start - OFBiz Container(s) Startup Class
@@ -56,26 +57,67 @@ public class Start {
out.println("[no command] -> Start the server w/ default config");
}
- public static void main(String[] args) throws IOException {
- String firstArg = args.length > 0 ? args[0] : "";
- Start start = new Start();
+ private enum Command {
+ HELP, HELP_ERROR, STATUS, SHUTDOWN, COMMAND
+ }
- if (firstArg.equals("-help") || firstArg.equals("-?")) {
- help(System.out);
+ private static Command checkCommand(Command command, Command wanted) {
+ if (wanted == Command.HELP || wanted.equals(command)) {
+ return wanted;
+ } else if (command == null) {
+ return wanted;
} else {
- // hack for the status and shutdown commands
- if (firstArg.equals("-status")) {
- start.init(args, false);
- System.out.println("Current Status : " + start.status());
- } else if (firstArg.equals("-shutdown")) {
- start.init(args, false);
- System.out.println("Shutting down server : " + start.shutdown());
+ System.err.println("Duplicate command detected(was " + command + ", wanted " + wanted);
+ return Command.HELP_ERROR;
+ }
+ }
+
+ public static void main(String[] args) throws IOException {
+ Command command = null;
+ List<String> loaderArgs = new ArrayList<String>(args.length);
+ System.err.println("debug: args=" + java.util.Arrays.asList(args));
+ for (String arg: args) {
+ if (arg.equals("-help") || arg.equals("-?")) {
+ command = checkCommand(command, Command.HELP);
+ } else if (arg.equals("-status")) {
+ command = checkCommand(command, Command.STATUS);
+ } else if (arg.equals("-shutdown")) {
+ command = checkCommand(command, Command.SHUTDOWN);
+ } else if (arg.startsWith("-")) {
+ command = checkCommand(command, Command.COMMAND);
+ loaderArgs.add(arg.substring(1));
} else {
- // general start
- start.init(args, true);
- start.start();
+ command = checkCommand(command, Command.COMMAND);
+ if (command == Command.COMMAND) {
+ loaderArgs.add(arg);
+ } else {
+ command = Command.HELP_ERROR;
+ }
}
}
+ System.err.println("debug: command=" + command);
+ System.err.println("debug: loaderArgs=" + loaderArgs);
+ if (command == null) {
+ command = Command.COMMAND;
+ loaderArgs.add("start");
+ }
+ if (command == Command.HELP) {
+ help(System.out);
+ return;
+ } else if (command == Command.HELP_ERROR) {
+ help(System.err);
+ System.exit(1);
+ }
+ Start start = new Start();
+ start.init(args, command == Command.COMMAND);
+ if (command == Command.STATUS) {
+ System.out.println("Current Status : " + start.status());
+ } else if (command == Command.SHUTDOWN) {
+ System.out.println("Shutting down server : " + start.shutdown());
+ } else {
+ // general start
+ start.start();
+ }
}
private Config config = null;
@@ -118,11 +160,6 @@ public class Start {
}
this.config = Config.getInstance(args);
- // parse the startup arguments
- if (args.length > 1) {
- this.loaderArgs.addAll(Arrays.asList(args).subList(1, args.length));
- }
-
if (!fullInit) {
return;
}
@@ -262,15 +299,13 @@ public class Start {
}
public String status() throws IOException {
- String status = null;
try {
- status = sendSocketCommand(Start.STATUS_COMMAND);
+ return sendSocketCommand(Start.STATUS_COMMAND);
} catch (ConnectException e) {
return "Not Running";
} catch (IOException e) {
throw e;
}
- return status;
}
public void stopServer() {