From b1c65c2199dd72b77cb8bc61bd28441feb85362d Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Sat, 05 Dec 2009 10:12:14 +0000
Subject: [PATCH] Use timeout argument when launching start in the setup and control-panel code.

---
 opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/task/RestartServerTask.java |   30 ++++++++++----
 opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/task/StartServerTask.java   |   15 +++++++
 opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/util/ServerController.java           |   42 ++++++++++++---------
 3 files changed, 59 insertions(+), 28 deletions(-)

diff --git a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/task/RestartServerTask.java b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/task/RestartServerTask.java
index 8472a15..33c2a2a 100644
--- a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/task/RestartServerTask.java
+++ b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/task/RestartServerTask.java
@@ -47,6 +47,8 @@
 {
   private boolean starting;
 
+  private StartServerTask startTask;
+
   /**
    * Constructor of the task.
    * @param info the control panel information.
@@ -55,6 +57,7 @@
   public RestartServerTask(ControlPanelInfo info, ProgressDialog dlg)
   {
     super(info, dlg);
+    startTask = new StartServerTask(info, dlg);
   }
 
   /**
@@ -94,7 +97,16 @@
    */
   private String getStartCommandLineName()
   {
-    return getCommandLinePath("start-ds");
+    return startTask.getCommandLinePath();
+  }
+
+  /**
+   * Returns the arguments of the start command-line.
+   * @return the arguments of the start command-line.
+   */
+  private ArrayList<String> getStartCommandLineArguments()
+  {
+    return startTask.getCommandLineArguments();
   }
 
   /**
@@ -120,14 +132,12 @@
       public void run()
       {
         String cmdLine = getStopCommandLineName();
+        printEquivalentCommandLine(cmdLine, getCommandLineArguments(),
+            INFO_CTRL_PANEL_EQUIVALENT_CMD_TO_STOP_SERVER.get());
         dlg.setSummary(Message.raw(
             Utilities.applyFont(
             INFO_CTRL_PANEL_STOPPING_SERVER_SUMMARY.get().toString(),
             ColorAndFontConstants.defaultFont)));
-        dlg.appendProgressHtml(Utilities.applyFont(
-            INFO_CTRL_PANEL_EQUIVALENT_CMD_TO_STOP_SERVER.get()+"<br><b>"+
-              cmdLine+"</b><br><br>",
-              ColorAndFontConstants.progressFont));
       }
     });
     // To display new status
@@ -158,21 +168,23 @@
                 "<b>"+INFO_CTRL_PANEL_SERVER_STOPPED.get()+"</b><br><br>",
                 ColorAndFontConstants.progressFont));
             String cmdLine = getStartCommandLineName();
+            printEquivalentCommandLine(cmdLine, getStartCommandLineArguments(),
+                INFO_CTRL_PANEL_EQUIVALENT_CMD_TO_START_SERVER.get());
 
             dlg.setSummary(Message.raw(
                 Utilities.applyFont(
                 INFO_CTRL_PANEL_STARTING_SERVER_SUMMARY.get().toString(),
                 ColorAndFontConstants.defaultFont)));
-            dlg.appendProgressHtml(Utilities.applyFont(
-                INFO_CTRL_PANEL_EQUIVALENT_CMD_TO_START_SERVER.get()+"<br><b>"+
-                  cmdLine+"</b><br><br>",
-                  ColorAndFontConstants.progressFont));
           }
         });
 
         starting = true;
         // To display new status
         getInfo().regenerateDescriptor();
+        arguments = getStartCommandLineArguments();
+        args = new String[arguments.size()];
+        arguments.toArray(args);
+
         returnCode = executeCommandLine(getStartCommandLineName(), args);
         if (returnCode != 0)
         {
diff --git a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/task/StartServerTask.java b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/task/StartServerTask.java
index 1e0ca32..046a327 100644
--- a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/task/StartServerTask.java
+++ b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/task/StartServerTask.java
@@ -22,13 +22,15 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2008 Sun Microsystems, Inc.
+ *      Copyright 2008-2009 Sun Microsystems, Inc.
  */
 
 package org.opends.guitools.controlpanel.task;
 
 import static org.opends.messages.AdminToolMessages.*;
 
+import java.util.ArrayList;
+
 import org.opends.guitools.controlpanel.datamodel.ControlPanelInfo;
 import org.opends.guitools.controlpanel.ui.ProgressDialog;
 import org.opends.messages.Message;
@@ -73,4 +75,15 @@
   {
     return getCommandLinePath("start-ds");
   }
+
+  /**
+   * {@inheritDoc}
+   */
+  protected ArrayList<String> getCommandLineArguments()
+  {
+    ArrayList<String> args = new ArrayList<String>();
+    args.add("--timeout");
+    args.add("0");
+    return args;
+  }
 };
diff --git a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/util/ServerController.java b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/util/ServerController.java
index 0fe2d5d..b2c737a 100644
--- a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/util/ServerController.java
+++ b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/util/ServerController.java
@@ -329,6 +329,8 @@
       ArrayList<String> argList = new ArrayList<String>();
       argList.add(Utils.getScriptPath(
           Utils.getPath(installation.getServerStartCommandFile())));
+      argList.add("--timeout");
+      argList.add("0");
       String[] args = new String[argList.size()];
       argList.toArray(args);
       ProcessBuilder pb = new ProcessBuilder(args);
@@ -423,22 +425,11 @@
            * to connect or since the startup process is asynchronous we will
            * have to wait for the databases and the listeners to initialize.
            * Just check if we can connect to the server.
-           * Try 10 times with an interval of 5 seconds between try.
+           * Try 30 times with an interval of 3 seconds between try.
            */
           boolean connected = false;
           Configuration config = installation.getCurrentConfiguration();
           int port = config.getAdminConnectorPort();
-          String hostName = null;
-          if (application != null)
-          {
-            hostName = application.getUserData().getHostName();
-          }
-          if (hostName == null)
-          {
-            hostName = "localhost";
-          }
-          hostName = ConnectionUtils.getHostNameForLdapUrl(hostName);
-          String ldapUrl = "ldaps://"+hostName+":" + port;
 
           // See if the application has prompted for credentials.  If
           // not we'll just try to connect anonymously.
@@ -454,20 +445,35 @@
           }
 
           InitialLdapContext ctx = null;
-          for (int i=0; i<20 && !connected; i++)
+          for (int i=0; i<50 && !connected; i++)
           {
-            if ((i == 10) || (i == 11) && !"localhost".equals(hostName))
+            String hostName = null;
+            if (application != null)
+            {
+              hostName = application.getUserData().getHostName();
+            }
+            if (hostName == null)
+            {
+              hostName = "localhost";
+            }
+
+            int dig = i % 10;
+
+            if (((dig >= 3) || (dig <= 4)) &&
+            !"localhost".equals(hostName))
             {
               // Try with local host.  This might be necessary in certain
               // network configurations.
-              ldapUrl = "ldaps://localhost:" + port;
+              hostName = "localhost";
             }
-            if ((i == 15) || (i == 16))
+            if (((dig >= 5) || (dig <= 6)))
             {
               // Try with 0.0.0.0.  This might be necessary in certain
               // network configurations.
-              ldapUrl = "ldaps://0.0.0.0:" + port;
+              hostName = "0.0.0.0";
             }
+            hostName = ConnectionUtils.getHostNameForLdapUrl(hostName);
+            String ldapUrl = "ldaps://"+hostName+":" + port;
             try
             {
               ctx = Utils.createLdapsContext(
@@ -497,7 +503,7 @@
             {
               try
               {
-                Thread.sleep(7500);
+                Thread.sleep(3000);
               }
               catch (Throwable t)
               {

--
Gitblit v1.10.0