From 26cba063b15bd0d0925e2290800d9a661961530b Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Thu, 09 Apr 2009 08:27:35 +0000
Subject: [PATCH] Fix for issue 2017 (tools usage should disclose default value for options)

---
 opends/src/server/org/opends/server/util/cli/LDAPConnectionConsoleInteraction.java |  106 ++++++++---------------------------------------------
 1 files changed, 16 insertions(+), 90 deletions(-)

diff --git a/opends/src/server/org/opends/server/util/cli/LDAPConnectionConsoleInteraction.java b/opends/src/server/org/opends/server/util/cli/LDAPConnectionConsoleInteraction.java
index 7364f7a..5433283 100644
--- a/opends/src/server/org/opends/server/util/cli/LDAPConnectionConsoleInteraction.java
+++ b/opends/src/server/org/opends/server/util/cli/LDAPConnectionConsoleInteraction.java
@@ -35,7 +35,6 @@
 import org.opends.quicksetup.Step;
 import org.opends.quicksetup.UserDataCertificateException;
 import org.opends.quicksetup.util.Utils;
-import org.opends.server.config.ConfigException;
 import org.opends.server.tools.dsconfig.ArgumentExceptionFactory;
 import org.opends.server.tools.LDAPConnectionOptions;
 import org.opends.server.tools.SSLConnectionFactory;
@@ -61,13 +60,6 @@
 import java.util.Enumeration;
 import java.util.logging.Level;
 import java.util.logging.Logger;
-import org.opends.server.admin.AdministrationConnector;
-import org.opends.server.admin.server.ServerManagementContext;
-import org.opends.server.admin.std.server.AdministrationConnectorCfg;
-import org.opends.server.admin.std.server.FileBasedTrustManagerProviderCfg;
-import org.opends.server.admin.std.server.RootCfg;
-import org.opends.server.admin.std.server.TrustManagerProviderCfg;
-import org.opends.server.core.DirectoryServer;
 
 /**
  * Supports interacting with a user through the command line to
@@ -128,8 +120,6 @@
   // The command builder that we can return with the connection information.
   private CommandBuilder commandBuilder;
 
-  private boolean configurationInitialized = false;
-
 
   /**
    * Enumeration description protocols for interactive CLI choices.
@@ -513,18 +503,7 @@
       }
       else
       {
-        if (secureArgsList.alwaysSSL()) {
-          portNumber =
-            AdministrationConnector.DEFAULT_ADMINISTRATION_CONNECTOR_PORT;
-          // Try to get the port from the config file
-          try {
-            portNumber = getAdminPortFromConfig();
-          } catch (ConfigException ex) {
-            // nothing to do
-            }
-        } else {
-          portNumber = 636;
-        }
+        portNumber = secureArgsList.getPortFromConfig();
       }
     }
     final int tmpPortNumber = portNumber;
@@ -1992,86 +1971,33 @@
   *
   *  @return true if the local trustore has been added.
   */
-  private boolean addLocalTrustStore() {
-    TrustManagerProviderCfg trustManagerCfg = null;
-    AdministrationConnectorCfg administrationConnectorCfg = null;
+  private boolean addLocalTrustStore()
+  {
     try {
       // If remote host, return
       if (!InetAddress.getLocalHost().getHostName().equals(hostName)) {
         return false;
       }
-      // Initialization for admin framework
-      if (!configurationInitialized) {
-        initializeConfiguration();
-      }
-      // Get the Directory Server configuration handler and use it.
-      RootCfg root =
-        ServerManagementContext.getInstance().getRootConfiguration();
-      administrationConnectorCfg =
-        root.getAdministrationConnector();
       // check if we are in a local instance. Already checked the host,
       // now check the port
-
-      if (administrationConnectorCfg.getListenPort() != portNumber) {
+      if (secureArgsList.getAdminPortFromConfig() != portNumber) {
         return false;
       }
-      String trustManagerStr = administrationConnectorCfg.
-        getTrustManagerProvider();
-      trustManagerCfg = root.getTrustManagerProvider(trustManagerStr);
+
+      String truststoreFileAbsolute =
+        secureArgsList.getTruststoreFileFromConfig();
+      if (truststoreFileAbsolute != null)
+      {
+        secureArgsList.trustStorePathArg.addValue(truststoreFileAbsolute);
+        return true;
+      }
+      else
+      {
+        return false;
+      }
     } catch (Exception ex) {
       // do nothing
       return false;
     }
-    if (trustManagerCfg instanceof FileBasedTrustManagerProviderCfg) {
-      FileBasedTrustManagerProviderCfg fileBasedTrustManagerCfg =
-        (FileBasedTrustManagerProviderCfg) trustManagerCfg;
-      String truststoreFile = fileBasedTrustManagerCfg.getTrustStoreFile();
-      // Check the file
-      String truststoreFileAbsolute = null;
-      if (truststoreFile.startsWith(File.separator)) {
-        truststoreFileAbsolute = truststoreFile;
-      } else {
-        truststoreFileAbsolute =
-          DirectoryServer.getInstanceRoot() + File.separator + truststoreFile;
-      }
-      File f = new File(truststoreFileAbsolute);
-      if (f.exists() && f.canRead() && !f.isDirectory()) {
-        secureArgsList.trustStorePathArg.addValue(truststoreFileAbsolute);
-        return true;
-      } else {
-        return false;
-      }
-    } else {
-      return false;
-    }
-  }
-
-  private int getAdminPortFromConfig() throws ConfigException {
-    // Initialization for admin framework
-    if (!configurationInitialized) {
-      initializeConfiguration();
-    }
-    RootCfg root =
-      ServerManagementContext.getInstance().getRootConfiguration();
-    return root.getAdministrationConnector().getListenPort();
-  }
-
-  private boolean initializeConfiguration() {
-    // check if the initialization is required
-    try {
-      ServerManagementContext.getInstance().getRootConfiguration().
-        getAdministrationConnector();
-    } catch (java.lang.Throwable th) {
-      try {
-        DirectoryServer.bootstrapClient();
-        DirectoryServer.initializeJMX();
-        DirectoryServer.getInstance().initializeConfiguration();
-      } catch (Exception ex) {
-        // do nothing
-        return false;
-      }
-    }
-    configurationInitialized = true;
-    return true;
   }
 }

--
Gitblit v1.10.0