From cebfcded1cf186360aa8a3c2a581fa56af7881e4 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Thu, 28 Jun 2007 14:40:51 +0000
Subject: [PATCH] Fix for issue 1613.

---
 opends/src/quicksetup/org/opends/quicksetup/installer/InstallLauncher.java |  141 ++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 126 insertions(+), 15 deletions(-)

diff --git a/opends/src/quicksetup/org/opends/quicksetup/installer/InstallLauncher.java b/opends/src/quicksetup/org/opends/quicksetup/installer/InstallLauncher.java
index 2202c6d..c4eb6af 100644
--- a/opends/src/quicksetup/org/opends/quicksetup/installer/InstallLauncher.java
+++ b/opends/src/quicksetup/org/opends/quicksetup/installer/InstallLauncher.java
@@ -26,6 +26,9 @@
  */
 package org.opends.quicksetup.installer;
 
+import static org.opends.server.messages.ToolMessages.*;
+import static org.opends.server.tools.ToolConstants.*;
+
 import java.io.File;
 import java.util.ArrayList;
 import java.util.logging.Logger;
@@ -35,6 +38,13 @@
 import org.opends.quicksetup.Installation;
 import org.opends.quicksetup.QuickSetupLog;
 import org.opends.quicksetup.util.Utils;
+import org.opends.server.util.ServerConstants;
+import org.opends.server.util.SetupUtils;
+import org.opends.server.util.args.ArgumentParser;
+import org.opends.server.util.args.BooleanArgument;
+import org.opends.server.util.args.FileBasedArgument;
+import org.opends.server.util.args.IntegerArgument;
+import org.opends.server.util.args.StringArgument;
 
 /**
  * This class is called by the setup command lines to launch the installation of
@@ -134,32 +144,133 @@
    * {@inheritDoc}
    */
   protected String getFrameTitle() {
-    return getMsg("frame-install-title");
+    return getI18n().getMsg("frame-install-title");
   }
 
   /**
    * {@inheritDoc}
    */
   public void printUsage() {
-    String arg;
+    String scriptName;
     if (Utils.isWindows()) {
-      arg = Installation.WINDOWS_SETUP_FILE_NAME;
+      scriptName = Installation.WINDOWS_SETUP_FILE_NAME;
     } else {
-      arg = Installation.UNIX_SETUP_FILE_NAME;
+      scriptName = Installation.UNIX_SETUP_FILE_NAME;
     }
-    /*
-     * This is required because the usage message contains '{' characters that
-     * mess up the MessageFormat.format method.
-     */
-    String msg;
+    System.setProperty(ServerConstants.PROPERTY_SCRIPT_NAME, scriptName);
+    ArgumentParser argParser = new ArgumentParser(getClass().getName(),
+        getI18n().getMsg("setup-launcher-usage-description"),
+        false);
+    BooleanArgument   addBaseEntry;
+    BooleanArgument   cliMode;
+    BooleanArgument   showUsage;
+    BooleanArgument   silentInstall;
+    BooleanArgument   skipPortCheck;
+    BooleanArgument   noWindowsService;
+    FileBasedArgument rootPWFile;
+    IntegerArgument   ldapPort;
+    IntegerArgument   jmxPort;
+    IntegerArgument   sampleData;
+    StringArgument    baseDN;
+    StringArgument    importLDIF;
+    StringArgument    rootDN;
+    StringArgument    rootPWString;
 
-    if (Utils.isWindows()) {
-      msg = getMsg("setup-launcher-usage-windows");
-    } else {
-      msg = getMsg("setup-launcher-usage-unix");
+    try
+    {
+      cliMode = new BooleanArgument("cli", null, OPTION_LONG_CLI,
+          MSGID_INSTALLDS_DESCRIPTION_CLI);
+      argParser.addArgument(cliMode);
+
+      silentInstall = new BooleanArgument("silent", 's', "silentInstall",
+          MSGID_INSTALLDS_DESCRIPTION_SILENT);
+      argParser.addArgument(silentInstall);
+
+      baseDN = new StringArgument("basedn", OPTION_SHORT_BASEDN,
+          OPTION_LONG_BASEDN, false, true, true,
+          OPTION_VALUE_BASEDN,
+          "dc=example,dc=com", null,
+          MSGID_INSTALLDS_DESCRIPTION_BASEDN);
+      argParser.addArgument(baseDN);
+
+      addBaseEntry = new BooleanArgument("addbase", 'a', "addBaseEntry",
+          MSGID_INSTALLDS_DESCRIPTION_ADDBASE);
+      argParser.addArgument(addBaseEntry);
+
+      importLDIF = new StringArgument("importldif", OPTION_SHORT_LDIF_FILE,
+          OPTION_LONG_LDIF_FILE, false,
+          true, true, OPTION_VALUE_LDIF_FILE,
+          null, null,
+          MSGID_INSTALLDS_DESCRIPTION_IMPORTLDIF);
+      argParser.addArgument(importLDIF);
+
+      sampleData = new IntegerArgument("sampledata", 'd', "sampleData", false,
+          false, true, "{numEntries}", 0, null,
+          true, 0, false, 0,
+          MSGID_INSTALLDS_DESCRIPTION_SAMPLE_DATA);
+      argParser.addArgument(sampleData);
+
+      ldapPort = new IntegerArgument("ldapport", OPTION_SHORT_PORT,
+          "ldapPort", false, false,
+          true, OPTION_VALUE_PORT, 389,
+          null, true, 1, true, 65535,
+          MSGID_INSTALLDS_DESCRIPTION_LDAPPORT);
+      argParser.addArgument(ldapPort);
+
+      jmxPort = new IntegerArgument("jmxport", 'x', "jmxPort", false, false,
+          true, "{jmxPort}",
+          SetupUtils.getDefaultJMXPort(), null, true,
+          1, true, 65535,
+          MSGID_INSTALLDS_DESCRIPTION_JMXPORT);
+      argParser.addArgument(jmxPort);
+
+      skipPortCheck = new BooleanArgument("skipportcheck", 'S', "skipPortCheck",
+          MSGID_INSTALLDS_DESCRIPTION_SKIPPORT);
+      argParser.addArgument(skipPortCheck);
+
+      rootDN = new StringArgument("rootdn",OPTION_SHORT_ROOT_USER_DN,
+          OPTION_LONG_ROOT_USER_DN, false, true,
+          true, OPTION_VALUE_ROOT_USER_DN,
+          "cn=Directory Manager",
+          null, MSGID_INSTALLDS_DESCRIPTION_ROOTDN);
+      argParser.addArgument(rootDN);
+
+      rootPWString = new StringArgument("rootpwstring", OPTION_SHORT_BINDPWD,
+          "rootUserPassword",
+          false, false, true,
+          "{password}", null,
+          null,
+          MSGID_INSTALLDS_DESCRIPTION_ROOTPW);
+      argParser.addArgument(rootPWString);
+
+      rootPWFile = new FileBasedArgument("rootpwfile",
+          OPTION_SHORT_BINDPWD_FILE,
+          "rootUserPasswordFile", false, false,
+          OPTION_VALUE_BINDPWD_FILE,
+          null, null, MSGID_INSTALLDS_DESCRIPTION_ROOTPWFILE);
+      argParser.addArgument(rootPWFile);
+
+      noWindowsService = new BooleanArgument("nowindowsservice", 'n',
+          "noWindowsService",
+          MSGID_INSTALLDS_DESCRIPTION_NO_WINDOWS_SERVICE);
+      if (SetupUtils.isWindows())
+      {
+        argParser.addArgument(noWindowsService);
+      }
+
+      showUsage = new BooleanArgument("help", OPTION_SHORT_HELP,
+          OPTION_LONG_HELP,
+          MSGID_INSTALLDS_DESCRIPTION_HELP);
+      argParser.addArgument(showUsage);
+      argParser.setUsageArgument(showUsage);
+      String msg = argParser.getUsage();
+      printUsage(msg);
     }
-    msg = msg.replace("{0}", arg);
-    printUsage(msg);
+    catch (Throwable t)
+    {
+      System.out.println("ERROR: "+t);
+      t.printStackTrace();
+    }
   }
 
   /**

--
Gitblit v1.10.0