From 3549450f14b417a5ff2fccc8f06650587308caf8 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Wed, 20 Feb 2008 13:32:35 +0000
Subject: [PATCH] Fix for issue 2972 (The usage of stop-ds.bat shows the class name)

---
 opends/src/quicksetup/org/opends/quicksetup/upgrader/UpgradeLauncher.java    |    6 +
 opends/resource/bin/stop-ds.bat                                              |    2 
 opends/src/guitools/org/opends/guitools/statuspanel/StatusPanelLauncher.java |  118 +++++++++++++++------------------------
 opends/src/guitools/org/opends/guitools/uninstaller/UninstallLauncher.java   |    5 +
 opends/src/quicksetup/org/opends/quicksetup/installer/SetupLauncher.java     |    5 +
 opends/resource/bin/start-ds.bat                                             |   10 +-
 6 files changed, 64 insertions(+), 82 deletions(-)

diff --git a/opends/resource/bin/start-ds.bat b/opends/resource/bin/start-ds.bat
index 618f518..cc6fd24 100644
--- a/opends/resource/bin/start-ds.bat
+++ b/opends/resource/bin/start-ds.bat
@@ -49,7 +49,7 @@
 
 echo %SCRIPT%: PATH=%PATH% >> %LOG%
 
-"%OPENDS_JAVA_BIN%" -Xms8M -Xmx8M org.opends.server.core.DirectoryServer --configClass org.opends.server.extensions.ConfigFileHandler --configFile "%DIR_HOME%\config\config.ldif" --checkStartability %*
+"%OPENDS_JAVA_BIN%" -Xms8M -Xmx8M %SCRIPT_NAME_ARG% org.opends.server.core.DirectoryServer --configClass org.opends.server.extensions.ConfigFileHandler --configFile "%DIR_HOME%\config\config.ldif" --checkStartability %*
 
 if %errorlevel% == 98 goto serverAlreadyStarted
 if %errorlevel% == 99 goto runDetach
@@ -67,7 +67,7 @@
 if not exist "%DIR_HOME%\logs\server.out" echo. > "%DIR_HOME%\logs\server.out"
 if not exist "%DIR_HOME%\logs\server.starting" echo. > "%DIR_HOME%\logs\server.starting"
 if exist "%DIR_HOME%\lib\set-java-args.bat %SCRIPT%" DO call "%DIR_HOME%\lib\set-java-args.bat"
-"%OPENDS_JAVA_BIN%" %OPENDS_SERVER_JAVA_ARGS% org.opends.server.core.DirectoryServer --configClass org.opends.server.extensions.ConfigFileHandler --configFile "%DIR_HOME%\config\config.ldif" %*
+"%OPENDS_JAVA_BIN%" %OPENDS_SERVER_JAVA_ARGS% %SCRIPT_NAME_ARG% org.opends.server.core.DirectoryServer --configClass org.opends.server.extensions.ConfigFileHandler --configFile "%DIR_HOME%\config\config.ldif" %*
 goto end
 
 
@@ -76,7 +76,7 @@
 if not exist "%DIR_HOME%\logs\server.out" echo. > "%DIR_HOME%\logs\server.out"
 if not exist "%DIR_HOME%\logs\server.starting" echo. > "%DIR_HOME%\logs\server.starting"
 if exist "%DIR_HOME%\lib\set-java-args.bat" DO call "%DIR_HOME%\lib\set-java-args.bat"
-"%DIR_HOME%\lib\winlauncher.exe" start "%DIR_HOME%" "%OPENDS_JAVA_BIN%" %OPENDS_SERVER_JAVA_ARGS%  org.opends.server.core.DirectoryServer --configClass org.opends.server.extensions.ConfigFileHandler --configFile "%DIR_HOME%\config\config.ldif" %*
+"%DIR_HOME%\lib\winlauncher.exe" start "%DIR_HOME%" "%OPENDS_JAVA_BIN%" %OPENDS_SERVER_JAVA_ARGS%  %SCRIPT_NAME_ARG% org.opends.server.core.DirectoryServer --configClass org.opends.server.extensions.ConfigFileHandler --configFile "%DIR_HOME%\config\config.ldif" %*
 echo %SCRIPT%: Waiting for "%DIR_HOME%\logs\server.out" to be deleted >> %LOG%
 "%OPENDS_JAVA_BIN%" -Xms8M -Xmx8M org.opends.server.tools.WaitForFileDelete --targetFile "%DIR_HOME%\logs\server.starting" --logFile "%DIR_HOME%\logs\server.out"
 goto checkStarted
@@ -89,7 +89,7 @@
 echo. > "%DIR_HOME%\logs\server.startingservice"
 echo. > "%DIR_HOME%\logs\winservice.out"
 if exist "%DIR_HOME%\lib\set-java-args.bat" DO call "%DIR_HOME%\lib\set-java-args.bat"
-"%DIR_HOME%\lib\winlauncher.exe" start "%DIR_HOME%" "%OPENDS_JAVA_BIN%" -Xrs %OPENDS_SERVER_JAVA_ARGS%  org.opends.server.core.DirectoryServer --configClass org.opends.server.extensions.ConfigFileHandler --configFile "%DIR_HOME%\config\config.ldif" %*
+"%DIR_HOME%\lib\winlauncher.exe" start "%DIR_HOME%" "%OPENDS_JAVA_BIN%" -Xrs %OPENDS_SERVER_JAVA_ARGS% %SCRIPT_NAME_ARG% org.opends.server.core.DirectoryServer --configClass org.opends.server.extensions.ConfigFileHandler --configFile "%DIR_HOME%\config\config.ldif" %*
 echo %SCRIPT%: Waiting for "%DIR_HOME%\logs\server.out" to be deleted >> %LOG%
 "%OPENDS_JAVA_BIN%" -Xms8M -Xmx8M org.opends.server.tools.WaitForFileDelete --targetFile "%DIR_HOME%\logs\server.starting" --logFile "%DIR_HOME%\logs\server.out" --outputFile "%DIR_HOME%\logs\winservice.out"
 erase "%DIR_HOME%\logs\server.startingservice"
@@ -106,7 +106,7 @@
 goto end
 
 :checkStarted
-"%OPENDS_JAVA_BIN%" -Xms8M -Xmx8M org.opends.server.core.DirectoryServer --configClass org.opends.server.extensions.ConfigFileHandler --configFile "%DIR_HOME%\config\config.ldif" --checkStartability > NUL 2>&1
+"%OPENDS_JAVA_BIN%" -Xms8M -Xmx8M %SCRIPT_NAME_ARG% org.opends.server.core.DirectoryServer --configClass org.opends.server.extensions.ConfigFileHandler --configFile "%DIR_HOME%\config\config.ldif" --checkStartability > NUL 2>&1
 if %errorlevel% == 98 goto serverStarted
 goto serverNotStarted
 
diff --git a/opends/resource/bin/stop-ds.bat b/opends/resource/bin/stop-ds.bat
index 46598a4..12a26e7 100644
--- a/opends/resource/bin/stop-ds.bat
+++ b/opends/resource/bin/stop-ds.bat
@@ -30,7 +30,7 @@
 set PATH=%SystemRoot%
 
 set OPENDS_INVOKE_CLASS="org.opends.server.tools.StopDS"
-set SCRIPT_NAME_ARG="-Dorg.opends.server.scriptName=stop-ds"
+set SCRIPT_NAME=stop-ds
 for %%i in (%~sf0) do set DIR_HOME=%%~dPsi..
 
 rem We keep this values to reset the environment before calling start-ds.
diff --git a/opends/src/guitools/org/opends/guitools/statuspanel/StatusPanelLauncher.java b/opends/src/guitools/org/opends/guitools/statuspanel/StatusPanelLauncher.java
index 92c5722..1375b89 100644
--- a/opends/src/guitools/org/opends/guitools/statuspanel/StatusPanelLauncher.java
+++ b/opends/src/guitools/org/opends/guitools/statuspanel/StatusPanelLauncher.java
@@ -28,17 +28,17 @@
 
 import java.io.ByteArrayOutputStream;
 import java.io.File;
-import java.io.IOException;
 import java.io.PrintStream;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
 import org.opends.guitools.statuspanel.StatusCli.ErrorReturnCode;
+import org.opends.messages.Message;
 import org.opends.quicksetup.util.Utils;
 import org.opends.quicksetup.Installation;
-import org.opends.server.core.DirectoryServer;
 import org.opends.server.util.ServerConstants;
 import org.opends.server.util.StaticUtils;
+import org.opends.server.util.args.ArgumentException;
 import org.opends.server.util.args.ArgumentParser;
 import org.opends.server.util.args.BooleanArgument;
 
@@ -53,6 +53,8 @@
  */
 public class StatusPanelLauncher
 {
+  static private ArgumentParser argParser;
+
   /** Prefix for log files. */
   static public final String LOG_FILE_PREFIX = "opends-status-";
 
@@ -75,47 +77,48 @@
       System.err.println("Unable to initialize log");
       t.printStackTrace();
     }
-    boolean printUsage = false;
-    boolean printVersion = false;
-    if ((args != null) && (args.length > 4))
-    {
-      printUsage = true;
-    }
-    for (int i=0; i<args.length; i++)
-    {
-      if (args[i].equalsIgnoreCase("-H") ||
-          args[i].equalsIgnoreCase("--help") ||
-          args[i].equalsIgnoreCase("-?"))
-      {
-        printUsage = true;
-      }
-      else
-      if (args[i].equalsIgnoreCase("-" + OPTION_SHORT_PRODUCT_VERSION) ||
-          args[i].equalsIgnoreCase("--" + OPTION_LONG_PRODUCT_VERSION))
-      {
-        printVersion = true;
-      }
-    }
-    // We first check if we have to print the version
-    if(printVersion)
-    {
-      try
-      {
-        DirectoryServer.printVersion(System.out);
-      }
-      catch (IOException e)
-      {
-        // TODO Auto-generated catch block
-      }
-      System.exit(ErrorReturnCode.SUCCESSFUL_NOP.getReturnCode());
-    }
-    else
-    if (printUsage)
-    {
-      printUsage(System.out);
-      System.exit(ErrorReturnCode.SUCCESSFUL_NOP.getReturnCode());
 
-    } else
+    argParser = new ArgumentParser(StatusPanelLauncher.class.getName(),
+        INFO_STATUS_PANEL_LAUNCHER_USAGE_DESCRIPTION.get(), false);
+    BooleanArgument showUsage;
+    String scriptName;
+    if (Utils.isWindows()) {
+      scriptName = Installation.WINDOWS_STATUSPANEL_FILE_NAME;
+    } else {
+      scriptName = Installation.UNIX_STATUSPANEL_FILE_NAME;
+    }
+    if (System.getProperty(ServerConstants.PROPERTY_SCRIPT_NAME) == null)
+    {
+      System.setProperty(ServerConstants.PROPERTY_SCRIPT_NAME, scriptName);
+    }
+    try
+    {
+      showUsage = new BooleanArgument("showusage", OPTION_SHORT_HELP,
+          OPTION_LONG_HELP,
+          INFO_DESCRIPTION_USAGE.get());
+      argParser.addArgument(showUsage);
+      argParser.setUsageArgument(showUsage);
+    }
+    catch (Throwable t)
+    {
+      System.err.println("ERROR: "+t);
+      t.printStackTrace();
+    }
+
+//  Validate user provided data
+    try
+    {
+      argParser.parseArguments(args);
+    }
+    catch (ArgumentException ae)
+    {
+      Message message = ERR_ERROR_PARSING_ARGS.get(ae.getMessage());
+      System.err.println(message);
+      System.out.println(Message.raw(argParser.getUsage()));
+
+      System.exit(ErrorReturnCode.ERROR_PARSING_ARGS.getReturnCode());
+    }
+    if (!argParser.usageOrVersionDisplayed())
     {
       int exitCode = launchGuiStatusPanel(args);
       if (exitCode != 0)
@@ -218,37 +221,6 @@
     return returnValue[0];
   }
 
-  private static void printUsage(PrintStream stream)
-  {
-    ArgumentParser argParser =
-      new ArgumentParser(StatusPanelLauncher.class.getName(),
-        INFO_STATUS_PANEL_LAUNCHER_USAGE_DESCRIPTION.get(), false);
-    BooleanArgument showUsage;
-    String scriptName;
-    if (Utils.isWindows()) {
-      scriptName = Installation.WINDOWS_STATUSPANEL_FILE_NAME;
-    } else {
-      scriptName = Installation.UNIX_STATUSPANEL_FILE_NAME;
-    }
-    System.setProperty(ServerConstants.PROPERTY_SCRIPT_NAME, scriptName);
-    try
-    {
-      showUsage = new BooleanArgument("showusage", OPTION_SHORT_HELP,
-        OPTION_LONG_HELP,
-        INFO_DESCRIPTION_USAGE.get());
-      argParser.addArgument(showUsage);
-      argParser.setUsageArgument(showUsage);
-
-      String msg = argParser.getUsage();
-      stream.println(msg);
-    }
-    catch (Throwable t)
-    {
-      System.err.println("ERROR: "+t);
-      t.printStackTrace();
-    }
-  }
-
   /**
    * This class is used to avoid displaying the error message related to display
    * problems that we might have when trying to display the SplashWindow.
diff --git a/opends/src/guitools/org/opends/guitools/uninstaller/UninstallLauncher.java b/opends/src/guitools/org/opends/guitools/uninstaller/UninstallLauncher.java
index 24b089d..522e7c8 100644
--- a/opends/src/guitools/org/opends/guitools/uninstaller/UninstallLauncher.java
+++ b/opends/src/guitools/org/opends/guitools/uninstaller/UninstallLauncher.java
@@ -98,7 +98,10 @@
     } else {
       scriptName = Installation.UNIX_UNINSTALL_FILE_NAME;
     }
-    System.setProperty(ServerConstants.PROPERTY_SCRIPT_NAME, scriptName);
+    if (System.getProperty(ServerConstants.PROPERTY_SCRIPT_NAME) == null)
+    {
+      System.setProperty(ServerConstants.PROPERTY_SCRIPT_NAME, scriptName);
+    }
 
     initializeParser();
   }
diff --git a/opends/src/quicksetup/org/opends/quicksetup/installer/SetupLauncher.java b/opends/src/quicksetup/org/opends/quicksetup/installer/SetupLauncher.java
index fe180ad..6ba1ca0 100644
--- a/opends/src/quicksetup/org/opends/quicksetup/installer/SetupLauncher.java
+++ b/opends/src/quicksetup/org/opends/quicksetup/installer/SetupLauncher.java
@@ -100,7 +100,10 @@
     } else {
       scriptName = Installation.UNIX_SETUP_FILE_NAME;
     }
-    System.setProperty(ServerConstants.PROPERTY_SCRIPT_NAME, scriptName);
+    if (System.getProperty(ServerConstants.PROPERTY_SCRIPT_NAME) == null)
+    {
+      System.setProperty(ServerConstants.PROPERTY_SCRIPT_NAME, scriptName);
+    }
     initializeParser();
   }
 
diff --git a/opends/src/quicksetup/org/opends/quicksetup/upgrader/UpgradeLauncher.java b/opends/src/quicksetup/org/opends/quicksetup/upgrader/UpgradeLauncher.java
index b230815..2381550 100644
--- a/opends/src/quicksetup/org/opends/quicksetup/upgrader/UpgradeLauncher.java
+++ b/opends/src/quicksetup/org/opends/quicksetup/upgrader/UpgradeLauncher.java
@@ -305,7 +305,10 @@
     } else {
       scriptName = Installation.UNIX_UPGRADE_FILE_NAME;
     }
-    System.setProperty(ServerConstants.PROPERTY_SCRIPT_NAME, scriptName);
+    if (System.getProperty(ServerConstants.PROPERTY_SCRIPT_NAME) == null)
+    {
+      System.setProperty(ServerConstants.PROPERTY_SCRIPT_NAME, scriptName);
+    }
 
     argParser = new ArgumentParser(getClass().getName(),
         INFO_UPGRADE_LAUNCHER_USAGE_DESCRIPTION.get(), false);
@@ -389,6 +392,7 @@
         }
       } catch (ArgumentException ae) {
         System.err.println(ae.getMessageObject());
+        printUsage(false);
         System.exit(ReturnCode.
                 APPLICATION_ERROR.getReturnCode());
       }

--
Gitblit v1.10.0