From 0b7ce981041f545596271bdcd7a2cf2831f066bc Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Tue, 15 Dec 2015 13:59:12 +0000
Subject: [PATCH] OPENDJ-2311 Option -V/--version don't work for SDK tools

---
 opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/ArgumentParser.java           |   23 ++++++++++++-----------
 opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/SubCommandArgumentParser.java |    6 +++---
 2 files changed, 15 insertions(+), 14 deletions(-)

diff --git a/opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/ArgumentParser.java b/opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/ArgumentParser.java
index 5264d89..f38e603 100644
--- a/opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/ArgumentParser.java
+++ b/opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/ArgumentParser.java
@@ -124,7 +124,17 @@
     /** Indicates whether the version argument was provided. */
     private boolean versionPresent;
     /** The handler to call to print the product version. */
-    private VersionHandler versionHandler;
+    private VersionHandler versionHandler = new VersionHandler() {
+        @Override
+        public void printVersion() {
+            // display nothing at all
+        }
+
+        @Override
+        public String toString() {
+            return "<no version displayed>";
+        }
+    };
 
     /** The set of arguments defined for this parser, referenced by short ID. */
     private final HashMap<Character, Argument> shortIDMap = new HashMap<>();
@@ -1068,15 +1078,6 @@
         return LocalizableMessage.raw(getUsage());
     }
 
-    /**
-     * Returns the version handler.
-     *
-     * @return the version handler
-     */
-    VersionHandler getVersionHandler() {
-        return versionHandler;
-    }
-
     /** Prints the version. */
     void printVersion() {
         versionPresent = true;
@@ -1208,7 +1209,7 @@
                         // usage information.
                         writeToUsageOutputStream(getUsage());
                         return;
-                    } else if (versionHandler != null && OPTION_LONG_PRODUCT_VERSION.equals(argName)) {
+                    } else if (OPTION_LONG_PRODUCT_VERSION.equals(argName)) {
                         // "--version" will always be interpreted as requesting version information.
                         printVersion();
                         return;
diff --git a/opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/SubCommandArgumentParser.java b/opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/SubCommandArgumentParser.java
index 3423a51..29467ca 100644
--- a/opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/SubCommandArgumentParser.java
+++ b/opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/SubCommandArgumentParser.java
@@ -514,7 +514,7 @@
                             // information.
                             writeToUsageOutputStream(getUsage());
                             return;
-                        } else if (OPTION_LONG_PRODUCT_VERSION.equals(argName) && getVersionHandler() != null) {
+                        } else if (OPTION_LONG_PRODUCT_VERSION.equals(argName)) {
                             // "--version" will always be interpreted as requesting usage information.
                             printVersion();
                             return;
@@ -595,7 +595,7 @@
                                 getUsageArgument().setPresent(true);
                             }
                             return;
-                        } else if (argCharacter == OPTION_SHORT_PRODUCT_VERSION && getVersionHandler() != null) {
+                        } else if (argCharacter == OPTION_SHORT_PRODUCT_VERSION) {
                             // "-V" will always be interpreted as requesting
                             // version information except if it's already defined.
                             if (dashVAccepted()) {
@@ -619,7 +619,7 @@
                                 // "-?" will always be interpreted as requesting usage.
                                 writeToUsageOutputStream(getUsage());
                                 return;
-                            } else if (argCharacter == OPTION_SHORT_PRODUCT_VERSION && getVersionHandler() != null) {
+                            } else if (argCharacter == OPTION_SHORT_PRODUCT_VERSION) {
                                 if (dashVAccepted()) {
                                     printVersion();
                                     return;

--
Gitblit v1.10.0