mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

jvergara
21.03.2007 0af5344500b0f427af6b215820d9de078277c868
Update the messages in admin_tool.properties to use the proper severity and not only the INFO severity.

Add some methods in the SecureConnectionCliParser that will be used by the replication CLI utilities.
17 files modified
525 ■■■■■ changed files
opends/src/guitools/org/opends/guitools/statuspanel/ConfigFromFile.java 6 ●●●● patch | view | raw | blame | history
opends/src/guitools/org/opends/guitools/statuspanel/ConfigFromLDAP.java 24 ●●●● patch | view | raw | blame | history
opends/src/guitools/org/opends/guitools/statuspanel/StatusCli.java 14 ●●●●● patch | view | raw | blame | history
opends/src/guitools/org/opends/guitools/statuspanel/StatusPanelController.java 15 ●●●●● patch | view | raw | blame | history
opends/src/guitools/org/opends/guitools/statuspanel/StatusPanelLauncher.java 4 ●●●● patch | view | raw | blame | history
opends/src/guitools/org/opends/guitools/statuspanel/ui/LoginDialog.java 14 ●●●● patch | view | raw | blame | history
opends/src/guitools/org/opends/guitools/uninstaller/UninstallCliHelper.java 12 ●●●● patch | view | raw | blame | history
opends/src/guitools/org/opends/guitools/uninstaller/UninstallLauncher.java 6 ●●●● patch | view | raw | blame | history
opends/src/guitools/org/opends/guitools/uninstaller/Uninstaller.java 2 ●●● patch | view | raw | blame | history
opends/src/guitools/org/opends/guitools/uninstaller/UninstallerArgumentParser.java 71 ●●●●● patch | view | raw | blame | history
opends/src/guitools/org/opends/guitools/uninstaller/ui/LoginDialog.java 6 ●●●● patch | view | raw | blame | history
opends/src/messages/messages/admin_tool.properties 151 ●●●● patch | view | raw | blame | history
opends/src/quicksetup/org/opends/quicksetup/CliApplicationHelper.java 21 ●●●● patch | view | raw | blame | history
opends/src/quicksetup/org/opends/quicksetup/upgrader/UpgradeLauncher.java 14 ●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/admin/client/cli/DsFrameworkCliMain.java 2 ●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/admin/client/cli/DsFrameworkCliParser.java 2 ●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/admin/client/cli/SecureConnectionCliParser.java 161 ●●●● patch | view | raw | blame | history
opends/src/guitools/org/opends/guitools/statuspanel/ConfigFromFile.java
@@ -128,13 +128,13 @@
    {
      LOG.log(Level.SEVERE, "Error reading config file: "+ioe, ioe);
      errorMessage = Utils.getThrowableMsg(
          INFO_ERROR_READING_CONFIG_FILE.get(), ioe);
          ERR_READING_CONFIG_FILE.get(), ioe);
    }
    catch (LDIFException le)
    {
      LOG.log(Level.SEVERE, "Error reading config file: "+le, le);
      errorMessage = Utils.getThrowableMsg(
          INFO_ERROR_READING_CONFIG_FILE.get(), le);
          ERR_READING_CONFIG_FILE.get(), le);
    }
    catch (Throwable t)
    {
@@ -142,7 +142,7 @@
      // Bug
      t.printStackTrace();
      errorMessage = Utils.getThrowableMsg(
          INFO_ERROR_READING_CONFIG_FILE.get(), t);
          ERR_READING_CONFIG_FILE.get(), t);
    }
    finally
    {
opends/src/guitools/org/opends/guitools/statuspanel/ConfigFromLDAP.java
@@ -218,14 +218,14 @@
      }
      else
      {
        errorMessage = INFO_ERROR_READING_CONFIG_LDAP.get(detail);
        errorMessage = ERR_READING_CONFIG_LDAP.get(detail);
      }
    }
    catch (Throwable t)
    {
      // Bug
      t.printStackTrace();
      errorMessage = INFO_ERROR_READING_CONFIG_LDAP.get(t.toString());
      errorMessage = ERR_READING_CONFIG_LDAP.get(t.toString());
    }
  }
@@ -337,7 +337,7 @@
        }
        else
        {
          throw new ConfigException(INFO_COULD_NOT_FIND_VALID_LDAPURL.get());
          throw new ConfigException(ERR_COULD_NOT_FIND_VALID_LDAPURL.get());
        }
        break;
      case USE_LDAPS:
@@ -348,7 +348,7 @@
        }
        else
        {
          throw new ConfigException(INFO_COULD_NOT_FIND_VALID_LDAPURL.get());
          throw new ConfigException(ERR_COULD_NOT_FIND_VALID_LDAPURL.get());
        }
        break;
      case USE_LDAP:
@@ -359,7 +359,7 @@
        }
        else
        {
          throw new ConfigException(INFO_COULD_NOT_FIND_VALID_LDAPURL.get());
          throw new ConfigException(ERR_COULD_NOT_FIND_VALID_LDAPURL.get());
        }
        break;
      case USE_MOST_SECURE_AVAILABLE:
@@ -381,7 +381,7 @@
        }
        else
        {
          throw new ConfigException(INFO_COULD_NOT_FIND_VALID_LDAPURL.get());
          throw new ConfigException(ERR_COULD_NOT_FIND_VALID_LDAPURL.get());
        }
        break;
      case USE_LESS_SECURE_AVAILABLE:
@@ -397,7 +397,7 @@
        }
        else
        {
          throw new ConfigException(INFO_COULD_NOT_FIND_VALID_LDAPURL.get());
          throw new ConfigException(ERR_COULD_NOT_FIND_VALID_LDAPURL.get());
        }
        break;
        default:
@@ -1020,7 +1020,7 @@
      }
      else
      {
        throw new ConfigException(INFO_COULD_NOT_FIND_VALID_LDAPURL.get());
        throw new ConfigException(ERR_COULD_NOT_FIND_VALID_LDAPURL.get());
      }
      break;
    case USE_LDAPS:
@@ -1030,7 +1030,7 @@
      }
      else
      {
        throw new ConfigException(INFO_COULD_NOT_FIND_VALID_LDAPURL.get());
        throw new ConfigException(ERR_COULD_NOT_FIND_VALID_LDAPURL.get());
      }
      break;
    case USE_LDAP:
@@ -1040,7 +1040,7 @@
      }
      else
      {
        throw new ConfigException(INFO_COULD_NOT_FIND_VALID_LDAPURL.get());
        throw new ConfigException(ERR_COULD_NOT_FIND_VALID_LDAPURL.get());
      }
      break;
    case USE_MOST_SECURE_AVAILABLE:
@@ -1058,7 +1058,7 @@
      }
      else
      {
        throw new ConfigException(INFO_COULD_NOT_FIND_VALID_LDAPURL.get());
        throw new ConfigException(ERR_COULD_NOT_FIND_VALID_LDAPURL.get());
      }
      break;
    case USE_LESS_SECURE_AVAILABLE:
@@ -1072,7 +1072,7 @@
      }
      else
      {
        throw new ConfigException(INFO_COULD_NOT_FIND_VALID_LDAPURL.get());
        throw new ConfigException(ERR_COULD_NOT_FIND_VALID_LDAPURL.get());
      }
      break;
      default:
opends/src/guitools/org/opends/guitools/statuspanel/StatusCli.java
@@ -28,6 +28,7 @@
package org.opends.guitools.statuspanel;
import java.io.File;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
@@ -52,6 +53,7 @@
import static org.opends.messages.AdminToolMessages.*;
import static org.opends.messages.QuickSetupMessages.*;
import org.opends.server.util.args.Argument;
import org.opends.server.util.args.ArgumentException;
/**
@@ -106,10 +108,12 @@
  {
    try
    {
      initializeGlobalOption(System.err);
      removeGlobalArgument(portArg);
      removeGlobalArgument(hostNameArg);
      removeGlobalArgument(verboseArg);
      ArrayList<Argument> defaultArgs =
        new ArrayList<Argument>(createGlobalArguments(System.err));
      defaultArgs.remove(portArg);
      defaultArgs.remove(hostNameArg);
      defaultArgs.remove(verboseArg);
      initializeGlobalArguments(defaultArgs);
    }
    catch (ArgumentException ae)
    {
@@ -138,7 +142,7 @@
    {
      return DsFrameworkCliReturnCode.SUCCESSFUL_NOP.getReturnCode();
    }
    int v = validateGlobalOption(System.err);
    int v = validateGlobalOptions(System.err);
    if (v != DsFrameworkCliReturnCode.SUCCESSFUL_NOP.getReturnCode())
    {
opends/src/guitools/org/opends/guitools/statuspanel/StatusPanelController.java
@@ -619,7 +619,7 @@
        if (!running)
        {
          updateProgress(getFormattedError(INFO_SUMMARY_START_ERROR.get()),
                getFormattedError(INFO_ERROR_STARTING_SERVER_GENERIC.get(),
                getFormattedError(ERR_STARTING_SERVER_GENERIC.get(),
                    true));
        }
        else
@@ -997,19 +997,6 @@
  /**
   * Returns the formatted representation of a progress message for a given
   * text.
   * @param text the source text from which we want to get the formatted
   * representation
   * @return the formatted representation of a progress message for the given
   * text.
   */
  private Message getFormattedProgress(Message text)
  {
    return formatter.getFormattedProgress(text);
  }
  /**
   * Returns the formatted representation of a progress message for a given
   * text with a line feed at the end.
   * @param text the source text from which we want to get the formatted
   * representation
opends/src/guitools/org/opends/guitools/statuspanel/StatusPanelLauncher.java
@@ -127,14 +127,14 @@
        if (logFileName != null)
        {
          System.err.println(StaticUtils.wrapText(
                  INFO_STATUS_PANEL_LAUNCHER_GUI_LAUNCH_FAILED_DETAILS.get(
                  ERR_STATUS_PANEL_LAUNCHER_GUI_LAUNCH_FAILED_DETAILS.get(
                          logFileName),
                  Utils.getCommandLineMaxLineWidth()));
        }
        else
        {
          System.err.println(StaticUtils.wrapText(
                  INFO_STATUS_PANEL_LAUNCHER_GUI_LAUNCH_FAILED.get(),
                  ERR_STATUS_PANEL_LAUNCHER_GUI_LAUNCH_FAILED.get(),
                  Utils.getCommandLineMaxLineWidth()));
        }
        System.exit(exitCode);
opends/src/guitools/org/opends/guitools/statuspanel/ui/LoginDialog.java
@@ -381,7 +381,7 @@
            else
            {
              throw new ConfigException(
                      INFO_COULD_NOT_FIND_VALID_LDAPURL.get());
                  ERR_COULD_NOT_FIND_VALID_LDAPURL.get());
            }
            break;
          case USE_LDAPS:
@@ -395,7 +395,7 @@
            else
            {
              throw new ConfigException(
                      INFO_COULD_NOT_FIND_VALID_LDAPURL.get());
                  ERR_COULD_NOT_FIND_VALID_LDAPURL.get());
            }
            break;
          case USE_LDAP:
@@ -408,7 +408,7 @@
            else
            {
              throw new ConfigException(
                      INFO_COULD_NOT_FIND_VALID_LDAPURL.get());
                  ERR_COULD_NOT_FIND_VALID_LDAPURL.get());
            }
            break;
          case USE_MOST_SECURE_AVAILABLE:
@@ -435,7 +435,7 @@
            else
            {
              throw new ConfigException(
                      INFO_COULD_NOT_FIND_VALID_LDAPURL.get());
                  ERR_COULD_NOT_FIND_VALID_LDAPURL.get());
            }
            break;
          case USE_LESS_SECURE_AVAILABLE:
@@ -455,7 +455,7 @@
            else
            {
              throw new ConfigException(
                      INFO_COULD_NOT_FIND_VALID_LDAPURL.get());
                  ERR_COULD_NOT_FIND_VALID_LDAPURL.get());
            }
            break;
            default:
@@ -624,7 +624,7 @@
            if (possibleCauses.size() > 0)
            {
              displayError(
                  INFO_CANNOT_CONNECT_TO_LOGIN_WITH_CAUSE.get(
                  ERR_CANNOT_CONNECT_TO_LOGIN_WITH_CAUSE.get(
                          Utils.getMessageFromCollection(possibleCauses, "\n")),
                  INFO_ERROR_TITLE.get());
            }
@@ -632,7 +632,7 @@
            {
              // Generic message
              displayError(
                  INFO_CANNOT_CONNECT_WITH_ADS_CREDENTIALS_WITHOUT_CAUSE.get(),
                  ERR_CANNOT_CONNECT_WITH_ADS_CREDENTIALS_WITHOUT_CAUSE.get(),
                  INFO_ERROR_TITLE.get());
            }
          }
opends/src/guitools/org/opends/guitools/uninstaller/UninstallCliHelper.java
@@ -122,7 +122,7 @@
    /* Step 2: check that the provided parameters are compatible.
     */
    MessageBuilder buf = new MessageBuilder();
    int v = args.validateGlobalOption(buf);
    int v = args.validateGlobalOptions(buf);
    if (v != DsFrameworkCliReturnCode.SUCCESSFUL_NOP.getReturnCode())
    {
      throw new UserDataException(null, buf.toMessage());
@@ -179,7 +179,7 @@
      if (!isInteractive)
      {
        throw new UserDataException(null,
            INFO_CLI_UNINSTALL_NOTHING_TO_BE_UNINSTALLED_NON_INTERACTIVE.get());
            ERR_CLI_UNINSTALL_NOTHING_TO_BE_UNINSTALLED_NON_INTERACTIVE.get());
      }
      else
      {
@@ -366,7 +366,7 @@
        {
          somethingSelected = false;
          printLineBreak();
          printErrorMessage(INFO_CLI_UNINSTALL_NOTHING_TO_BE_UNINSTALLED.get());
          printErrorMessage(ERR_CLI_UNINSTALL_NOTHING_TO_BE_UNINSTALLED.get());
        }
        else
        {
@@ -664,7 +664,7 @@
          LOG.log(Level.WARNING,
              "Error retrieving a valid LDAP URL in conf file");
          printErrorMessage(INFO_COULD_NOT_FIND_VALID_LDAPURL.get());
          printErrorMessage(ERR_COULD_NOT_FIND_VALID_LDAPURL.get());
        }
        if (usedUrl != null)
        {
@@ -889,7 +889,7 @@
      {
        LOG.log(Level.WARNING,
            "Error retrieving a valid LDAP URL in conf file");
        printErrorMessage(INFO_COULD_NOT_FIND_VALID_LDAPURL.get());
        printErrorMessage(ERR_COULD_NOT_FIND_VALID_LDAPURL.get());
      }
      ADSContext adsContext = new ADSContext(ctx);
      TopologyCache cache = new TopologyCache(adsContext,
@@ -1029,7 +1029,7 @@
      if (!stopProcessing && (exceptionMsgs.size() > 0))
      {
        returnValue = confirm(
            INFO_ERROR_READING_REGISTERED_SERVERS_CONFIRM_UPDATE_REMOTE.get(
            ERR_READING_REGISTERED_SERVERS_CONFIRM_UPDATE_REMOTE.get(
                Utils.getStringFromCollection(exceptionMsgs,
                  Constants.LINE_SEPARATOR)));
      }
opends/src/guitools/org/opends/guitools/uninstaller/UninstallLauncher.java
@@ -109,7 +109,7 @@
        INFO_UNINSTALL_LAUNCHER_USAGE_DESCRIPTION.get(), false);
    try
    {
      argParser.initializeGlobalOption(System.err);
      argParser.initializeGlobalArguments(System.err);
    }
    catch (ArgumentException ae)
    {
@@ -133,12 +133,12 @@
  protected void guiLaunchFailed(String logFilePath) {
    if (logFilePath != null)
    {
      System.err.println(INFO_UNINSTALL_LAUNCHER_GUI_LAUNCHED_FAILED_DETAILS
      System.err.println(ERR_UNINSTALL_LAUNCHER_GUI_LAUNCHED_FAILED_DETAILS
              .get(logFilePath));
    }
    else
    {
      System.err.println(INFO_UNINSTALL_LAUNCHER_GUI_LAUNCHED_FAILED.get());
      System.err.println(ERR_UNINSTALL_LAUNCHER_GUI_LAUNCHED_FAILED.get());
    }
  }
opends/src/guitools/org/opends/guitools/uninstaller/Uninstaller.java
@@ -1509,7 +1509,7 @@
    if (!stopProcessing && (exceptionMsgs.size() > 0))
    {
      Message confirmationMsg =
        INFO_ERROR_READING_REGISTERED_SERVERS_CONFIRM_UPDATE_REMOTE.get(
        ERR_READING_REGISTERED_SERVERS_CONFIRM_UPDATE_REMOTE.get(
                getStringFromCollection(exceptionMsgs, "n"));
      stopProcessing = !qs.displayConfirmation(confirmationMsg,
          INFO_CONFIRMATION_TITLE.get());
opends/src/guitools/org/opends/guitools/uninstaller/UninstallerArgumentParser.java
@@ -32,14 +32,16 @@
import static org.opends.server.admin.client.cli.DsFrameworkCliReturnCode.*;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.LinkedHashSet;
import org.opends.messages.Message;
import org.opends.messages.MessageBuilder;
import org.opends.quicksetup.CliApplicationHelper;
import org.opends.quicksetup.Constants;
import org.opends.quicksetup.UserData;
import org.opends.server.admin.client.cli.SecureConnectionCliParser;
import org.opends.server.tools.ToolConstants;
import org.opends.server.util.args.Argument;
import org.opends.server.util.args.ArgumentException;
import org.opends.server.util.args.BooleanArgument;
import org.opends.server.util.args.StringArgument;
@@ -96,92 +98,107 @@
   *           If there is a problem with any of the parameters used
   *           to create this argument.
   */
  public void initializeGlobalOption(OutputStream outStream)
  public void initializeGlobalArguments(OutputStream outStream)
  throws ArgumentException
  {
    LinkedHashSet<Argument> args = new LinkedHashSet<Argument>();
    removeAll = new BooleanArgument(
        "remove-all",
        'a',
        "remove-all",
        INFO_UNINSTALLDS_DESCRIPTION_REMOVE_ALL.get()
        );
    addGlobalArgument(removeAll);
    args.add(removeAll);
    removeServerLibraries = new BooleanArgument(
        "server-libraries",
        'l',
        "server-libraries",
        INFO_UNINSTALLDS_DESCRIPTION_REMOVE_SERVER_LIBRARIES.get()
        );
    addGlobalArgument(removeServerLibraries);
    args.add(removeServerLibraries);
    removeDatabases = new BooleanArgument(
        "databases",
        'd',
        "databases",
        INFO_UNINSTALLDS_DESCRIPTION_REMOVE_DATABASES.get()
        );
    addGlobalArgument(removeDatabases);
    args.add(removeDatabases);
    removeLogFiles = new BooleanArgument(
        "log-files",
        'L',
        "log-files",
        INFO_UNINSTALLDS_DESCRIPTION_REMOVE_LOG_FILES.get()
        );
    addGlobalArgument(removeLogFiles);
    args.add(removeLogFiles);
    removeConfigurationFiles = new BooleanArgument(
        "configuration-files",
        'c',
        "configuration-files",
        INFO_UNINSTALLDS_DESCRIPTION_REMOVE_CONFIGURATION_FILES.get()
        );
    addGlobalArgument(removeConfigurationFiles);
    args.add(removeConfigurationFiles);
    removeBackupFiles = new BooleanArgument(
        "backup-files",
        'b',
        "backup-files",
        INFO_UNINSTALLDS_DESCRIPTION_REMOVE_BACKUP_FILES.get()
        );
    addGlobalArgument(removeBackupFiles);
    args.add(removeBackupFiles);
    removeLDIFFiles = new BooleanArgument(
        "ldif-files",
        'e',
        "ldif-files",
        INFO_UNINSTALLDS_DESCRIPTION_REMOVE_LDIF_FILES.get()
        );
    addGlobalArgument(removeLDIFFiles);
    args.add(removeLDIFFiles);
    interactive = new BooleanArgument(
        CliApplicationHelper.INTERACTIVE_OPTION_LONG,
        CliApplicationHelper.INTERACTIVE_OPTION_SHORT,
        CliApplicationHelper.INTERACTIVE_OPTION_LONG,
        INTERACTIVE_OPTION_LONG,
        INTERACTIVE_OPTION_SHORT,
        INTERACTIVE_OPTION_LONG,
        INFO_DESCRIPTION_INTERACTIVE.get());
    addGlobalArgument(interactive);
    args.add(interactive);
    forceOnError = new BooleanArgument(
        "forceOnError",
        'f',
        "forceOnError",
        INFO_UNINSTALLDS_DESCRIPTION_FORCE.get());
    addGlobalArgument(forceOnError);
    args.add(forceOnError);
    silent = new BooleanArgument(
        CliApplicationHelper.SILENT_OPTION_LONG,
        CliApplicationHelper.SILENT_OPTION_SHORT,
        CliApplicationHelper.SILENT_OPTION_LONG,
        SecureConnectionCliParser.SILENT_OPTION_LONG,
        SecureConnectionCliParser.SILENT_OPTION_SHORT,
        SecureConnectionCliParser.SILENT_OPTION_LONG,
        INFO_UNINSTALLDS_DESCRIPTION_SILENT.get());
    addGlobalArgument(silent);
    args.add(silent);
    adminUidArg = new StringArgument("adminUID", 'I',
        "adminUID", false, false, true, "adminUID",
        Constants.GLOBAL_ADMIN_UID, null, INFO_DESCRIPTION_ADMINUID.get());
    addGlobalArgument(adminUidArg);
    super.initializeGlobalOption(outStream);
    removeGlobalArgument(bindDnArg);
    removeGlobalArgument(hostNameArg);
    removeGlobalArgument(portArg);
    removeGlobalArgument(verboseArg);
        Constants.GLOBAL_ADMIN_UID, null, INFO_DESCRIPTION_ADMIN_UID.get());
    ArrayList<Argument> defaultArgs =
      new ArrayList<Argument>(createGlobalArguments(System.err));
    int index = defaultArgs.indexOf(bindDnArg);
    if (index != -1)
    {
      defaultArgs.add(index, adminUidArg);
      defaultArgs.remove(bindDnArg);
    }
    else
    {
      defaultArgs.add(adminUidArg);
    }
    defaultArgs.remove(hostNameArg);
    defaultArgs.remove(portArg);
    defaultArgs.remove(verboseArg);
    UserData uData = new UserData();
    referencedHostNameArg = new StringArgument("referencedHostName",
        ToolConstants.OPTION_SHORT_HOST,
        "referencedHostName", false, false, true,
        ToolConstants.OPTION_VALUE_HOST,
        uData.getHostName(), null, INFO_DESCRIPTION_REFERENCED_HOST.get());
    addGlobalArgument(referencedHostNameArg);
    defaultArgs.add(referencedHostNameArg);
    args.addAll(defaultArgs);
    initializeGlobalArguments(args);
  }
  /**
@@ -350,7 +367,7 @@
   * @param buf the MessageBuilder to write the error messages.
   * @return return code.
   */
  public int validateGlobalOption(MessageBuilder buf)
  public int validateGlobalOptions(MessageBuilder buf)
  {
    int returnValue;
    if (interactive.isPresent() && forceOnError.isPresent())
opends/src/guitools/org/opends/guitools/uninstaller/ui/LoginDialog.java
@@ -410,7 +410,7 @@
          else
          {
            throw new ApplicationException(ReturnCode.APPLICATION_ERROR,
                INFO_COULD_NOT_FIND_VALID_LDAPURL.get(), null);
                ERR_COULD_NOT_FIND_VALID_LDAPURL.get(), null);
          }
        } catch (NamingException ne)
        {
@@ -532,7 +532,7 @@
            {
              // Message with causes
              displayError(
                  INFO_CANNOT_CONNECT_TO_LOGIN_WITH_CAUSE.get(
                  ERR_CANNOT_CONNECT_TO_LOGIN_WITH_CAUSE.get(
                          Utils.getMessageFromCollection(possibleCauses, "\n")),
                  INFO_ERROR_TITLE.get());
            }
@@ -540,7 +540,7 @@
            {
              // Generic message
              displayError(
                  INFO_CANNOT_CONNECT_TO_LOGIN_WITHOUT_CAUSE.get(),
                  ERR_CANNOT_CONNECT_TO_LOGIN_WITHOUT_CAUSE.get(),
                  INFO_ERROR_TITLE.get());
            }
          }
opends/src/messages/messages/admin_tool.properties
@@ -58,12 +58,12 @@
INFO_BACKENDID_COLUMN=Backend ID
INFO_BASEDN_COLUMN=Base DN
INFO_CANCEL_BUTTON_UNINSTALL_TOOLTIP=Cancel Uninstall
INFO_CANNOT_CONNECT_TO_LOGIN_WITH_CAUSE=Could not connect to the Directory \
MILD_ERR_CANNOT_CONNECT_TO_LOGIN_WITH_CAUSE=Could not connect to the Directory \
 Server with the provided credentials.  The possible causes for this are:%n%s
INFO_CANNOT_CONNECT_TO_LOGIN_WITHOUT_CAUSE=Could not connect to the Directory \
MILD_ERR_CANNOT_CONNECT_TO_LOGIN_WITHOUT_CAUSE=Could not connect to the Directory \
 Server with the provided credentials.%nCheck that the Administrative User DN \
 and password are valid.
INFO_CANNOT_CONNECT_WITH_ADS_CREDENTIALS_WITHOUT_CAUSE=Could not connect to \
MILD_ERR_CANNOT_CONNECT_WITH_ADS_CREDENTIALS_WITHOUT_CAUSE=Could not connect to \
 the Directory Server with the provided credentials.%nCheck that the \
 Administrative User ID and password are valid.
INFO_CLI_UNINSTALL_CONFIRM_BACKUPS=Remove Backup Files Contained in bak \
@@ -88,11 +88,11 @@
INFO_CLI_UNINSTALL_CONFIRM_STOP=The OpenDS server is currently running and \
 must be stopped before uninstallation can continue.%nStop the Server and \
 permanently delete the files?
INFO_CLI_UNINSTALL_NOTHING_TO_BE_UNINSTALLED_NON_INTERACTIVE=You must select \
 the elements to uninstall.  Use the options described in the usage to specify \
 what must be uninstalled.
INFO_CLI_UNINSTALL_NOTHING_TO_BE_UNINSTALLED=You must select something to be \
 uninstalled.
SEVERE_ERR_CLI_UNINSTALL_NOTHING_TO_BE_UNINSTALLED_NON_INTERACTIVE=You must \
 select the elements to uninstall.  Use the options described in the usage to \
 specify what must be uninstalled.
SEVERE_ERR_CLI_UNINSTALL_NOTHING_TO_BE_UNINSTALLED=You must select something \
 to be uninstalled.
INFO_CLI_UNINSTALL_SERVER_STOPPED=The Server is Stopped.
INFO_CLI_UNINSTALL_CONFIRM_UPDATE_REMOTE=This server is configured \
to do replication.  In order to remove references to this server in other \
@@ -159,15 +159,15 @@
 continue. Do you want the uninstaller to stop the server for you and continue \
 with the uninstall? If you click No, you will need to stop the server \
 manually to continue.
INFO_ERROR_READING_REGISTERED_SERVERS_CONFIRM_UPDATE_REMOTE=The following \
MILD_ERR_READING_REGISTERED_SERVERS_CONFIRM_UPDATE_REMOTE=The following \
 errors were encountered reading the configuration of the existing \
 servers:\n%s\nDo you want the uninstaller to try to remove the references to \
 this server in a best-effort mode?
INFO_CONFIRM_UNINSTALL_SERVER_RUNNING_TITLE=Server is Running
INFO_CONNECTIONS_LABEL=Open Connections:
INFO_COULD_NOT_FIND_VALID_LDAPURL=Error reading the configuration file.%nThis \
 could be caused because there is not an enabled LDAP port for the specified \
 connection parameters or because you do not have read rights on the \
MILD_ERR_COULD_NOT_FIND_VALID_LDAPURL=Error reading the configuration file.%n\
 This could be caused because there is not an enabled LDAP port for the \
 specified connection parameters or because you do not have read rights on the \
 configuration file.
INFO_DATABASES_TITLE=Data Sources
INFO_DELETE_OUTSIDE_DBS_LABEL=Delete these Database Files
@@ -182,10 +182,10 @@
 located outside the install directory
INFO_DISABLED_LABEL=Disabled
INFO_ENABLED_LABEL=Enabled
INFO_ERROR_READING_CONFIG_FILE=Error reading the configuration file.
INFO_ERROR_READING_CONFIG_LDAP=Error reading data from server.  Verify the \
MILD_ERR_READING_CONFIG_FILE=Error reading the configuration file.
MILD_ERR_READING_CONFIG_LDAP=Error reading data from server.  Verify the \
 authentication information provided.%nDetails: %s
INFO_ERROR_STARTING_SERVER_GENERIC=Could not Start server.
SEVERE_ERR_STARTING_SERVER_GENERIC=Could not Start server.
INFO_FINISH_BUTTON_UNINSTALL_LABEL=Uninstall
INFO_FINISH_BUTTON_UNINSTALL_TOOLTIP=Finish Uninstall
INFO_FRAME_UNINSTALL_TITLE=OpenDS Uninstall
@@ -268,10 +268,10 @@
INFO_STATE_COLUMN=State
INFO_STATUS_CLI_USAGE_DESCRIPTION=This utility may be used to display basic \
 server information
INFO_STATUS_PANEL_LAUNCHER_GUI_LAUNCH_FAILED=Could not launch Status Panel. \
 Check that you have access to the display.
INFO_STATUS_PANEL_LAUNCHER_GUI_LAUNCH_FAILED_DETAILS=Could not launch Status \
 Panel.  Check that you have access to the display.   Check file %s for \
SEVERE_ERR_STATUS_PANEL_LAUNCHER_GUI_LAUNCH_FAILED=Could not launch Status \
Panel.  Check that you have access to the display.
SEVERE_ERR_STATUS_PANEL_LAUNCHER_GUI_LAUNCH_FAILED_DETAILS=Could not launch \
Status Panel.  Check that you have access to the display.   Check file %s for \
 details.
INFO_STATUS_PANEL_LAUNCHER_USAGE_DESCRIPTION=This utility may be used to \
 display the Status Panel window which displays basic server information and \
@@ -312,9 +312,9 @@
 updating remote servers.
INFO_SUMMARY_UNINSTALL_NOT_STARTED=Starting Uninstallation...
INFO_UNDEFINED_PROTOCOL_LABEL=-Unknown-
INFO_UNINSTALL_LAUNCHER_GUI_LAUNCHED_FAILED=%n%nThe graphical Uninstall \
SEVERE_ERR_UNINSTALL_LAUNCHER_GUI_LAUNCHED_FAILED=%n%nThe graphical Uninstall \
 launch failed.%n%nLaunching command line Uninstall...
INFO_UNINSTALL_LAUNCHER_GUI_LAUNCHED_FAILED_DETAILS=%n%nThe graphical \
SEVERE_ERR_UNINSTALL_LAUNCHER_GUI_LAUNCHED_FAILED_DETAILS=%n%nThe graphical \
 Uninstall launch failed.  Check file %s for more details.%n%nLaunching \
 command line Uninstall...
INFO_UNINSTALL_LAUNCHER_LAUNCHING_CLI=Launching command line uninstall...
@@ -348,16 +348,115 @@
 rest of the options (excluding help and version) will only be taken into \
 account if this option is specified
INFO_UNINSTALLDS_DESCRIPTION_SILENT=Perform a silent uninstall (no \
progress information is written to the standard output)
 progress information is written to the standard output)
INFO_UNINSTALLDS_DESCRIPTION_REMOVE_ALL=Remove all components of \
 OpenDS (this option is not compatible with the rest of remove options)
INFO_UNINSTALLDS_DESCRIPTION_REMOVE_SERVER_LIBRARIES=Remove Server Libraries \
and Administrative Tools
 and Administrative Tools
INFO_UNINSTALLDS_DESCRIPTION_REMOVE_DATABASES=Remove database contents
INFO_UNINSTALLDS_DESCRIPTION_REMOVE_LOG_FILES=Remove log files
INFO_UNINSTALLDS_DESCRIPTION_REMOVE_CONFIGURATION_FILES=Remove configuration \
files
 files
INFO_UNINSTALLDS_DESCRIPTION_REMOVE_BACKUP_FILES=Remove backup files
INFO_UNINSTALLDS_DESCRIPTION_REMOVE_LDIF_FILES=Remove LDIF files
INFO_DESCRIPTION_ADMINUID=Specifies the User ID of the Global Administrator to \
use to bind to the server
INFO_DESCRIPTION_ADMIN_UID=Specifies the User ID of the Global Administrator \
 to use to bind to the server
INFO_DESCRIPTION_ENABLE_REPLICATION_HOST1=Directory server hostname or IP \
 address of the first server whose contents will be replicated
INFO_DESCRIPTION_ENABLE_REPLICATION_SERVER_PORT1=Directory server port \
 number of the first server whose contents will be replicated
INFO_DESCRIPTION_ENABLE_REPLICATION_BINDDN1=Specifies the DN to use to \
 bind to the first server whose contents will be replicated.  If not specified \
 the global administrator will be used to bind
INFO_DESCRIPTION_ENABLE_REPLICATION_BINDPASSWORD1=Specifies the password \
 to use to bind to the first server whose contents will be replicated.  If no \
 bind DN was specified for the first server the password of the global \
 administrator will be used to bind
INFO_DESCRIPTION_ENABLE_REPLICATION_BINDPASSWORDFILE1=Specifies the file \
 containing the password to use to bind to the first server whose contents \
 will be replicated.  If no bind DN was specified for the first server the \
 password of the global administrator will be used to bind
INFO_DESCRIPTION_ENABLE_REPLICATION_USE_SSL1=Use SSL for secure \
 communication with the first server
INFO_DESCRIPTION_ENABLE_REPLICATION_STARTTLS1=Use StartTLS to secure \
 communication with the first server
INFO_DESCRIPTION_ENABLE_REPLICATION_PORT1=Specifies the port that will be used by \
 the replication mechanism in the first server to communicate with the other \
 servers.  You have to specify this option only if replication was not \
 previously configured in the first server.
INFO_DESCRIPTION_ENABLE_REPLICATION_HOST2=Directory server hostname or IP \
 address of the second server whose contents will be replicated
INFO_DESCRIPTION_ENABLE_REPLICATION_SERVER_PORT2=Directory server port \
 number of the first server whose contents will be replicated
INFO_DESCRIPTION_ENABLE_REPLICATION_BINDDN2=Specifies the DN to use to \
 bind to the second server whose contents will be replicated.  If not \
 specified the global administrator will be used to bind
INFO_DESCRIPTION_ENABLE_REPLICATION_BINDPASSWORD2=Specifies the password \
 to use to bind to the second server whose contents will be replicated.  If no \
 bind DN was specified for the first server the password of the global \
 administrator will be used to bind
INFO_DESCRIPTION_ENABLE_REPLICATION_BINDPASSWORDFILE2=Specifies the file \
 containing the password to use to bind to the second server whose contents \
 will be replicated.  If no bind DN was specified for the first server the \
 password of the global administrator will be used to bind
INFO_DESCRIPTION_ENABLE_REPLICATION_USE_SSL2=Use SSL for secure \
 communication with the second server
INFO_DESCRIPTION_ENABLE_REPLICATION_PORT2=Specifies the port that will be used by \
 the replication mechanism in the second server to communicate with the other \
 servers.  You have to specify this option only if replication was not \
 previously configured in the second server.
INFO_DESCRIPTION_ENABLE_REPLICATION_STARTTLS2=Use StartTLS to secure \
 communication with the second server
INFO_DESCRIPTION_REPLICATION_BASEDNS=Specifies the Base DN of \
 the data to be replicated, initialized or for which we want to disable \
 replication.  Multiple base DNs may be provided by using this option multiple \
 times
INFO_DESCRIPTION_REPLICATION_ADMIN_UID=Specifies the User ID of the \
 Global Administrator to use to bind to the server.  For the {%s} subcommand \
 if no Global Administrator was defined previously for none of the server one \
 will be created using the provided data.
INFO_DESCRIPTION_REPLICATION_ADMIN_BINDPASSWORD=The global \
 administrator password
INFO_DESCRIPTION_REPLICATION_ADMIN_BINDPASSWORDFILE=The file \
 containing the password of the global administrator
INFO_DESCRIPTION_INITIALIZE_REPLICATION_HOST_SOURCE=Directory server \
 hostname or IP address of the source server whose contents will be used to \
 initialize the destination server.
INFO_DESCRIPTION_INITIALIZE_REPLICATION_SERVER_PORT_SOURCE=Directory \
 server port number of the source server whose contents will be used to \
 initialize the destination server.
INFO_DESCRIPTION_INITIALIZE_REPLICATION_USE_SSL_SOURCE=Use SSL for secure \
 communication with the source server
INFO_DESCRIPTION_INITIALIZE_REPLICATION_STARTTLS_SOURCE=Use StartTLS to \
 secure communication with the source server
INFO_DESCRIPTION_INITIALIZE_REPLICATION_HOST_DESTINATION=Directory server \
 hostname or IP address of the source server whose contents will be used to \
 initialize the destination server.
INFO_DESCRIPTION_INITIALIZE_REPLICATION_SERVER_PORT_DESTINATION=Directory \
 server port number of the source server whose contents will be used to \
 initialize the destination server.
INFO_DESCRIPTION_INITIALIZE_REPLICATION_USE_SSL_DESTINATION=Use SSL for \
 secure communication with the source server
INFO_DESCRIPTION_INITIALIZE_REPLICATION_STARTTLS_DESTINATION=Use \
 StartTLS to secure communication with the source server
INFO_REPLICATION_TOOL_DESCRIPTION=This utility may be used to configure \
 replication between servers so that the data of the servers is synchronized.\
 In order replication to work you have first to enable replication between two \
 servers using the {%s} subcommand and then initialize the contents of one of \
 servers with the contents of the other using the {%s} subcommand.
INFO_DESCRIPTION_SUBCMD_INITIALIZE_REPLICATION=Initialize the contents of the \
 data under the specified Bind DN on the destination server with the contents \
 on the source server.  This operation is required after enabling replication \
 in order replication to work.
INFO_DESCRIPTION_SUBCMD_ENABLE_REPLICATION=Configures the two specified \
 servers to replicate the data under the specified Bind DN.
INFO_DESCRIPTION_SUBCMD_DISABLE_REPLICATION=Disables replication on the \
 specified server for the provided Base DN and removes references in the other \
 servers with which it is replicating data.
SEVERE_ERR_REPLICATION_NO_BASE_DN_PROVIDED=You must provide at least one base \
 DN in no interactive mode.
SEVERE_ERR_REPLICATION_NO_ADMINISTRATOR_PASSWORD_PROVIDED=You must provide the \
 password of the global administrator in non interactive mode.  You can \
 provide it using the {%s} or the {%s} options.
SEVERE_ERR_REPLICATION_NOT_A_VALID_BASEDN=The provided value %s is not a valid \
 base DN.
opends/src/quicksetup/org/opends/quicksetup/CliApplicationHelper.java
@@ -36,6 +36,7 @@
import static org.opends.messages.QuickSetupMessages.*;
import org.opends.quicksetup.util.Utils;
import org.opends.server.admin.client.cli.SecureConnectionCliParser;
import org.opends.server.util.args.ArgumentParser;
import org.opends.server.util.args.ArgumentException;
import org.opends.server.util.args.BooleanArgument;
@@ -64,18 +65,6 @@
  /** Format string used for deriving the console prompt. */
  static public final String PROMPT_FORMAT = "%s%n[%s]:";
  /** Short form of the option for specifying a noninteractive session. */
  static public final Character SILENT_OPTION_SHORT = 's';
  /** Long form of the option for specifying a noninteractive session. */
  static public final String SILENT_OPTION_LONG = "silent";
  /** Short form of the option for specifying a noninteractive session. */
  static public final Character INTERACTIVE_OPTION_SHORT = 'i';
  /** Long form of the option for specifying a noninteractive session. */
  static public final String INTERACTIVE_OPTION_LONG = "interactive";
  private BooleanArgument interactiveArg = null;
  private BooleanArgument silentArg = null;
@@ -368,15 +357,15 @@
    try {
      interactiveArg =
           new BooleanArgument("noninteractive session",
                   INTERACTIVE_OPTION_SHORT,
                   INTERACTIVE_OPTION_LONG,
                   SecureConnectionCliParser.INTERACTIVE_OPTION_SHORT,
                   SecureConnectionCliParser.INTERACTIVE_OPTION_LONG,
                   null);
      argParser.addArgument(interactiveArg);
      silentArg =
           new BooleanArgument("silent session",
                   SILENT_OPTION_SHORT,
                   SILENT_OPTION_LONG,
                   SecureConnectionCliParser.SILENT_OPTION_SHORT,
                   SecureConnectionCliParser.SILENT_OPTION_LONG,
                   null);
      argParser.addArgument(silentArg);
opends/src/quicksetup/org/opends/quicksetup/upgrader/UpgradeLauncher.java
@@ -33,13 +33,13 @@
import static org.opends.messages.ToolMessages.*;
import static org.opends.server.tools.ToolConstants.*;
import org.opends.quicksetup.CliApplicationHelper;
import org.opends.quicksetup.Launcher;
import org.opends.quicksetup.CliApplication;
import org.opends.quicksetup.Installation;
import org.opends.quicksetup.QuickSetupLog;
import org.opends.quicksetup.util.Utils;
import org.opends.server.admin.client.cli.SecureConnectionCliParser;
import org.opends.server.util.ServerConstants;
import org.opends.server.util.args.ArgumentParser;
import org.opends.server.util.args.BooleanArgument;
@@ -191,15 +191,15 @@
              null, null, INFO_UPGRADE_DESCRIPTION_FILE.get());
      argParser.addArgument(file);
      interactive = new BooleanArgument(
          CliApplicationHelper.INTERACTIVE_OPTION_LONG,
          CliApplicationHelper.INTERACTIVE_OPTION_SHORT,
          CliApplicationHelper.INTERACTIVE_OPTION_LONG,
          SecureConnectionCliParser.INTERACTIVE_OPTION_LONG,
          SecureConnectionCliParser.INTERACTIVE_OPTION_SHORT,
          SecureConnectionCliParser.INTERACTIVE_OPTION_LONG,
          INFO_UPGRADE_DESCRIPTION_INTERACTIVE.get());
      argParser.addArgument(interactive);
      silent = new BooleanArgument(
          CliApplicationHelper.SILENT_OPTION_LONG,
          CliApplicationHelper.SILENT_OPTION_SHORT,
          CliApplicationHelper.SILENT_OPTION_LONG,
          SecureConnectionCliParser.SILENT_OPTION_LONG,
          SecureConnectionCliParser.SILENT_OPTION_SHORT,
          SecureConnectionCliParser.SILENT_OPTION_LONG,
          INFO_UPGRADE_DESCRIPTION_SILENT.get());
      argParser.addArgument(silent);
      showUsage = new BooleanArgument("showusage", OPTION_SHORT_HELP,
opends/src/server/org/opends/server/admin/client/cli/DsFrameworkCliMain.java
@@ -211,7 +211,7 @@
    }
    // Validate args
    int ret = argParser.validateGlobalOption(err);
    int ret = argParser.validateGlobalOptions(err);
    if (ret != SUCCESSFUL_NOP.getReturnCode())
    {
      return ret;
opends/src/server/org/opends/server/admin/client/cli/DsFrameworkCliParser.java
@@ -114,7 +114,7 @@
      throws ArgumentException
  {
    // Global parameters
    initializeGlobalOption(outStream);
    initializeGlobalArguments(createGlobalArguments(outStream));
    // ads  Group cli
    cliGroup.add(new DsFrameworkCliAds());
opends/src/server/org/opends/server/admin/client/cli/SecureConnectionCliParser.java
@@ -46,6 +46,8 @@
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedHashSet;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -57,6 +59,7 @@
import org.opends.server.types.DebugLogLevel;
import org.opends.server.util.PasswordReader;
import org.opends.server.util.SelectableCertificateKeyManager;
import org.opends.server.util.args.Argument;
import org.opends.server.util.args.ArgumentException;
import org.opends.server.util.args.BooleanArgument;
import org.opends.server.util.args.FileBasedArgument;
@@ -158,6 +161,18 @@
   */
  protected BooleanArgument startTLSArg = null;
  /** Short form of the option for specifying a noninteractive session. */
  static public final Character INTERACTIVE_OPTION_SHORT = 'i';
  /** Long form of the option for specifying a noninteractive session. */
  static public final String SILENT_OPTION_LONG = "silent";
  /** Long form of the option for specifying a noninteractive session. */
  static public final String INTERACTIVE_OPTION_LONG = "interactive";
  /** Short form of the option for specifying a noninteractive session. */
  static public final Character SILENT_OPTION_SHORT = 's';
  /**
   * The tracer object for the debug logger.
   */
@@ -212,7 +227,6 @@
    }
  }
  /**
   * Get the password which has to be used for the command.
   *
@@ -224,14 +238,20 @@
   * @param err
   *          The error stream to used if we have to prompt to the
   *          user.
   * @param clearArg
   *          The password StringArgument argument.
   * @param fileArg
   *          The password FileBased argument.
   * @return The password stored into the specified file on by the
   *         command line argument, or prompts it if not specified.
   */
  public String getBindPassword(String dn, OutputStream out, OutputStream err)
  protected String getBindPassword(String dn,
      OutputStream out, OutputStream err, StringArgument clearArg,
      FileBasedArgument fileArg)
  {
    if (bindPasswordArg.isPresent())
    if (clearArg.isPresent())
    {
      String bindPasswordValue = bindPasswordArg.getValue();
      String bindPasswordValue = clearArg.getValue();
      if(bindPasswordValue != null && bindPasswordValue.equals("-"))
      {
        // read the password from the stdin.
@@ -260,9 +280,9 @@
      return bindPasswordValue;
    }
    else
    if (bindPasswordFileArg.isPresent())
    if (fileArg.isPresent())
    {
      return bindPasswordFileArg.getValue();
      return fileArg.getValue();
    }
    else
    {
@@ -291,6 +311,57 @@
        return null;
      }
    }
  }
  /**
   * Get the password which has to be used for the command.
   *
   * @param dn
   *          The user DN for which to password could be asked.
   * @param out
   *          The input stream to used if we have to prompt to the
   *          user.
   * @param err
   *          The error stream to used if we have to prompt to the
   *          user.
   * @return The password stored into the specified file on by the
   *         command line argument, or prompts it if not specified.
   */
  public String getBindPassword(String dn, OutputStream out, OutputStream err)
  {
    return getBindPassword(dn, out, err, bindPasswordArg, bindPasswordFileArg);
  }
  /**
   * Get the password which has to be used for the command without prompting
   * the user.  If no password was specified, return null.
   *
   * @param clearArg
   *          The password StringArgument argument.
   * @param fileArg
   *          The password FileBased argument.
   * @return The password stored into the specified file on by the
   *         command line argument, or null it if not specified.
   */
  public String getBindPassword(StringArgument clearArg,
      FileBasedArgument fileArg)
  {
    String pwd;
    if (clearArg.isPresent())
    {
      pwd = clearArg.getValue();
    }
    else
    if (fileArg.isPresent())
    {
      pwd = fileArg.getValue();
    }
    else
    {
      pwd = null;
    }
    return pwd;
  }
  /**
@@ -302,21 +373,7 @@
   */
  public String getBindPassword()
  {
    String pwd;
    if (bindPasswordArg.isPresent())
    {
      pwd = bindPasswordArg.getValue();
    }
    else
    if (bindPasswordFileArg.isPresent())
    {
      pwd = bindPasswordFileArg.getValue();
    }
    else
    {
      pwd = null;
    }
    return pwd;
    return getBindPassword(bindPasswordArg, bindPasswordFileArg);
  }
  /**
@@ -327,98 +384,118 @@
   * @throws ArgumentException
   *           If there is a problem with any of the parameters used
   *           to create this argument.
   * @return a ArrayList with the options created.
   */
  protected void initializeGlobalOption(OutputStream outStream)
  protected LinkedHashSet<Argument> createGlobalArguments(
      OutputStream outStream)
  throws ArgumentException
  {
    LinkedHashSet<Argument> set = new LinkedHashSet<Argument>();
    showUsageArg = new BooleanArgument("showUsage", OPTION_SHORT_HELP,
        OPTION_LONG_HELP, INFO_DESCRIPTION_SHOWUSAGE.get());
    addGlobalArgument(showUsageArg);
    setUsageArgument(showUsageArg, outStream);
    set.add(showUsageArg);
    useSSLArg = new BooleanArgument("useSSL", OPTION_SHORT_USE_SSL,
        OPTION_LONG_USE_SSL, INFO_DESCRIPTION_USE_SSL.get());
    addGlobalArgument(useSSLArg);
    set.add(useSSLArg);
    startTLSArg = new BooleanArgument("startTLS", OPTION_SHORT_START_TLS,
        OPTION_LONG_START_TLS,
        INFO_DESCRIPTION_START_TLS.get());
    addGlobalArgument(startTLSArg);
    set.add(startTLSArg);
    hostNameArg = new StringArgument("host", OPTION_SHORT_HOST,
        OPTION_LONG_HOST, false, false, true, OPTION_VALUE_HOST, "localhost",
        null, INFO_DESCRIPTION_HOST.get());
    addGlobalArgument(hostNameArg);
    set.add(hostNameArg);
    portArg = new IntegerArgument("port", OPTION_SHORT_PORT, OPTION_LONG_PORT,
        false, false, true, OPTION_VALUE_PORT, 389, null,
        INFO_DESCRIPTION_PORT.get());
    addGlobalArgument(portArg);
    set.add(portArg);
    bindDnArg = new StringArgument("bindDN", OPTION_SHORT_BINDDN,
        OPTION_LONG_BINDDN, false, false, true, OPTION_VALUE_BINDDN,
        "cn=Directory Manager", null, INFO_DESCRIPTION_BINDDN.get());
    addGlobalArgument(bindDnArg);
    set.add(bindDnArg);
    bindPasswordArg = new StringArgument("bindPassword",
        OPTION_SHORT_BINDPWD, OPTION_LONG_BINDPWD, false, false, true,
        OPTION_VALUE_BINDPWD, null, null, INFO_DESCRIPTION_BINDPASSWORD.get());
    addGlobalArgument(bindPasswordArg);
    set.add(bindPasswordArg);
    bindPasswordFileArg = new FileBasedArgument("bindPasswordFile",
        OPTION_SHORT_BINDPWD_FILE, OPTION_LONG_BINDPWD_FILE, false, false,
        OPTION_VALUE_BINDPWD_FILE, null, null,
        INFO_DESCRIPTION_BINDPASSWORDFILE.get());
    addGlobalArgument(bindPasswordFileArg);
    set.add(bindPasswordFileArg);
    trustAllArg = new BooleanArgument("trustAll", 'X', "trustAll",
        INFO_DESCRIPTION_TRUSTALL.get());
    addGlobalArgument(trustAllArg);
    set.add(trustAllArg);
    trustStorePathArg = new StringArgument("trustStorePath",
        OPTION_SHORT_TRUSTSTOREPATH, OPTION_LONG_TRUSTSTOREPATH, false,
        false, true, OPTION_VALUE_TRUSTSTOREPATH, null, null,
        INFO_DESCRIPTION_TRUSTSTOREPATH.get());
    addGlobalArgument(trustStorePathArg);
    set.add(trustStorePathArg);
    trustStorePasswordArg = new StringArgument("trustStorePassword", null,
        OPTION_LONG_TRUSTSTORE_PWD, false, false, true,
        OPTION_VALUE_TRUSTSTORE_PWD, null, null,
        INFO_DESCRIPTION_TRUSTSTOREPASSWORD.get());
    addGlobalArgument(trustStorePasswordArg);
    set.add(trustStorePasswordArg);
    trustStorePasswordFileArg = new FileBasedArgument("truststorepasswordfile",
        OPTION_SHORT_TRUSTSTORE_PWD_FILE, OPTION_LONG_TRUSTSTORE_PWD_FILE,
        false, false, OPTION_VALUE_TRUSTSTORE_PWD_FILE, null, null,
        INFO_DESCRIPTION_TRUSTSTOREPASSWORD_FILE.get());
    addGlobalArgument(trustStorePasswordFileArg);
    set.add(trustStorePasswordFileArg);
    keyStorePathArg = new StringArgument("keyStorePath",
        OPTION_SHORT_KEYSTOREPATH, OPTION_LONG_KEYSTOREPATH, false, false,
        true, OPTION_VALUE_KEYSTOREPATH, null, null,
        INFO_DESCRIPTION_KEYSTOREPATH.get());
    addGlobalArgument(keyStorePathArg);
    set.add(keyStorePathArg);
    keyStorePasswordArg = new StringArgument("keyStorePassword", null,
        OPTION_LONG_KEYSTORE_PWD, false, false, true,
        OPTION_VALUE_KEYSTORE_PWD, null, null,
        INFO_DESCRIPTION_KEYSTOREPASSWORD.get());
    addGlobalArgument(keyStorePasswordArg);
    set.add(keyStorePasswordArg);
    keyStorePasswordFileArg = new FileBasedArgument("keystorepasswordfile",
        OPTION_SHORT_KEYSTORE_PWD_FILE, OPTION_LONG_KEYSTORE_PWD_FILE, false,
        false, OPTION_VALUE_KEYSTORE_PWD_FILE, null, null,
        INFO_DESCRIPTION_KEYSTOREPASSWORD_FILE.get());
    addGlobalArgument(keyStorePasswordFileArg);
    set.add(keyStorePasswordFileArg);
    certNicknameArg = new StringArgument("certnickname", 'N', "certNickname",
        false, false, true, "{nickname}", null, null,
        INFO_DESCRIPTION_CERT_NICKNAME.get());
    addGlobalArgument(certNicknameArg);
    set.add(certNicknameArg);
    verboseArg = new BooleanArgument("verbose", 'v', "verbose",
        INFO_DESCRIPTION_VERBOSE.get());
    addGlobalArgument(verboseArg);
    set.add(verboseArg);
    return set;
  }
  /**
   * Initialize the global options with the provided set of arguments.
   * @param args the arguments to use to initialize the global options.
   * @throws ArgumentException if there is a conflict with the provided
   * arguments.
   */
  protected void initializeGlobalArguments(Collection<Argument> args)
  throws ArgumentException
  {
    for (Argument arg : args)
    {
      addGlobalArgument(arg);
    }
  }
  /**
@@ -463,7 +540,7 @@
   * @param buf the MessageBuilder to write the error messages.
   * @return return code.
   */
  public int validateGlobalOption(MessageBuilder buf)
  public int validateGlobalOptions(MessageBuilder buf)
  {
    ArrayList<Message> errors = new ArrayList<Message>();
    // Couldn't have at the same time bindPassword and bindPasswordFile
@@ -536,10 +613,10 @@
   * @param err the stream to be used to print error message.
   * @return return code.
   */
  public int validateGlobalOption(PrintStream err)
  public int validateGlobalOptions(PrintStream err)
  {
    MessageBuilder buf = new MessageBuilder();
    int returnValue = validateGlobalOption(buf);
    int returnValue = validateGlobalOptions(buf);
    if (buf.length() > 0)
    {
      err.println(wrapText(buf.toString(), MAX_LINE_WIDTH));