From 9166c5ce64710c0eb6a4f714d5b262616e2f648d Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 21 Jan 2015 10:38:03 +0000
Subject: [PATCH] OPENDJ-1749 dsconfig does not work anymore and always reports the same error (conflict on short options)

---
 opendj-cli/src/main/java/com/forgerock/opendj/cli/ConnectionFactoryProvider.java |   32 ++++++++--------
 opendj-cli/src/main/java/com/forgerock/opendj/cli/SubCommandArgumentParser.java  |   20 ++++++----
 opendj-cli/src/main/java/com/forgerock/opendj/cli/ArgumentParser.java            |   14 +++++++
 3 files changed, 42 insertions(+), 24 deletions(-)

diff --git a/opendj-cli/src/main/java/com/forgerock/opendj/cli/ArgumentParser.java b/opendj-cli/src/main/java/com/forgerock/opendj/cli/ArgumentParser.java
index aeb2d13..4133815 100644
--- a/opendj-cli/src/main/java/com/forgerock/opendj/cli/ArgumentParser.java
+++ b/opendj-cli/src/main/java/com/forgerock/opendj/cli/ArgumentParser.java
@@ -359,6 +359,20 @@
     }
 
     /**
+     * Adds the provided argument to the set of arguments handled by this parser
+     * and puts the argument in the LDAP connection group.
+     *
+     * @param argument
+     *            The argument to be added.
+     * @throws ArgumentException
+     *             If the provided argument conflicts with another argument that
+     *             has already been defined.
+     */
+    public void addLdapConnectionArgument(final Argument argument) throws ArgumentException {
+        addArgument(argument, ldapArgGroup);
+    }
+
+    /**
      * Indicates whether this parser will allow unnamed trailing arguments.
      * These will be arguments at the end of the list that are not preceded by
      * either a long or short identifier and will need to be manually parsed by
diff --git a/opendj-cli/src/main/java/com/forgerock/opendj/cli/ConnectionFactoryProvider.java b/opendj-cli/src/main/java/com/forgerock/opendj/cli/ConnectionFactoryProvider.java
index 9521e92..99611dd 100644
--- a/opendj-cli/src/main/java/com/forgerock/opendj/cli/ConnectionFactoryProvider.java
+++ b/opendj-cli/src/main/java/com/forgerock/opendj/cli/ConnectionFactoryProvider.java
@@ -185,7 +185,7 @@
 
         useSSLArg = CommonArguments.getUseSSL();
         if (!alwaysSSL) {
-            argumentParser.addArgument(useSSLArg);
+            argumentParser.addLdapConnectionArgument(useSSLArg);
         } else {
             // simulate that the useSSL arg has been given in the CLI
             useSSLArg.setPresent(true);
@@ -193,7 +193,7 @@
 
         useStartTLSArg = CommonArguments.getStartTLS();
         if (!alwaysSSL) {
-            argumentParser.addArgument(useStartTLSArg);
+            argumentParser.addLdapConnectionArgument(useStartTLSArg);
         }
 
         String defaultHostName;
@@ -203,7 +203,7 @@
             defaultHostName = "Unknown (" + e + ")";
         }
         hostNameArg = CommonArguments.getHostName(defaultHostName);
-        argumentParser.addArgument(hostNameArg);
+        argumentParser.addLdapConnectionArgument(hostNameArg);
 
         LocalizableMessage portDescription = INFO_DESCRIPTION_PORT.get();
         if (alwaysSSL) {
@@ -211,43 +211,43 @@
         }
 
         portArg = CommonArguments.getPort(defaultPort, portDescription);
-        argumentParser.addArgument(portArg);
+        argumentParser.addLdapConnectionArgument(portArg);
 
         bindNameArg = CommonArguments.getBindDN(defaultBindDN);
-        argumentParser.addArgument(bindNameArg);
+        argumentParser.addLdapConnectionArgument(bindNameArg);
 
         bindPasswordArg = CommonArguments.getBindPassword();
-        argumentParser.addArgument(bindPasswordArg);
+        argumentParser.addLdapConnectionArgument(bindPasswordArg);
 
         bindPasswordFileArg = CommonArguments.getBindPasswordFile();
-        argumentParser.addArgument(bindPasswordFileArg);
+        argumentParser.addLdapConnectionArgument(bindPasswordFileArg);
 
         saslOptionArg = CommonArguments.getSASL();
-        argumentParser.addArgument(saslOptionArg);
+        argumentParser.addLdapConnectionArgument(saslOptionArg);
 
         trustAllArg = CommonArguments.getTrustAll();
-        argumentParser.addArgument(trustAllArg);
+        argumentParser.addLdapConnectionArgument(trustAllArg);
 
         trustStorePathArg = CommonArguments.getTrustStorePath();
-        argumentParser.addArgument(trustStorePathArg);
+        argumentParser.addLdapConnectionArgument(trustStorePathArg);
 
         trustStorePasswordArg = CommonArguments.getTrustStorePassword();
-        argumentParser.addArgument(trustStorePasswordArg);
+        argumentParser.addLdapConnectionArgument(trustStorePasswordArg);
 
         trustStorePasswordFileArg = CommonArguments.getTrustStorePasswordFile();
-        argumentParser.addArgument(trustStorePasswordFileArg);
+        argumentParser.addLdapConnectionArgument(trustStorePasswordFileArg);
 
         keyStorePathArg = CommonArguments.getKeyStorePath();
-        argumentParser.addArgument(keyStorePathArg);
+        argumentParser.addLdapConnectionArgument(keyStorePathArg);
 
         keyStorePasswordArg = CommonArguments.getKeyStorePassword();
-        argumentParser.addArgument(keyStorePasswordArg);
+        argumentParser.addLdapConnectionArgument(keyStorePasswordArg);
 
         keyStorePasswordFileArg = CommonArguments.getKeyStorePasswordFile();
-        argumentParser.addArgument(keyStorePasswordFileArg);
+        argumentParser.addLdapConnectionArgument(keyStorePasswordFileArg);
 
         certNicknameArg = CommonArguments.getCertNickName();
-        argumentParser.addArgument(certNicknameArg);
+        argumentParser.addLdapConnectionArgument(certNicknameArg);
 
         reportAuthzIDArg = CommonArguments.getReportAuthzId();
         argumentParser.addArgument(reportAuthzIDArg);
diff --git a/opendj-cli/src/main/java/com/forgerock/opendj/cli/SubCommandArgumentParser.java b/opendj-cli/src/main/java/com/forgerock/opendj/cli/SubCommandArgumentParser.java
index b611a29..f403135 100644
--- a/opendj-cli/src/main/java/com/forgerock/opendj/cli/SubCommandArgumentParser.java
+++ b/opendj-cli/src/main/java/com/forgerock/opendj/cli/SubCommandArgumentParser.java
@@ -244,15 +244,19 @@
         addGlobalArgument(argument, null);
     }
 
-    /** {@inheritDoc} */
+    /**
+     * Adds the provided argument to the set of arguments handled by this parser and puts the argument in the LDAP
+     * connection group.
+     *
+     * @param argument
+     *            The argument to add to this sub command.
+     * @throws ArgumentException
+     *             If the provided argument conflicts with another global or subcommand argument that has already been
+     *             defined.
+     */
     @Override
-    public void addArgument(Argument argument) throws ArgumentException {
-        final ArgumentGroup group = getStandardGroup(argument);
-        if (group == ldapArgGroup) {
-            addGlobalArgument(argument);
-        } else {
-            super.addArgument(argument);
-        }
+    public void addLdapConnectionArgument(final Argument argument) throws ArgumentException {
+        addGlobalArgument(argument, null);
     }
 
     /**

--
Gitblit v1.10.0