From d7527cb0c55d3e89e89ab1d532dc511521c5a264 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Sun, 10 Aug 2008 23:43:10 +0000
Subject: [PATCH] Fix for 3475 (Java Web Start setup is broken in Mac OS).

---
 opends/src/quicksetup/org/opends/quicksetup/ui/GuiApplication.java                     |   21 +++++++++-
 opends/src/quicksetup/org/opends/quicksetup/Constants.java                             |    6 +++
 opends/src/quicksetup/org/opends/quicksetup/installer/SetupLauncher.java               |   10 +---
 opends/src/quicksetup/org/opends/quicksetup/installer/Installer.java                   |   20 ++++++++--
 opends/src/quicksetup/org/opends/quicksetup/installandupgrader/InstallAndUpgrader.java |    9 ++--
 5 files changed, 48 insertions(+), 18 deletions(-)

diff --git a/opends/src/quicksetup/org/opends/quicksetup/Constants.java b/opends/src/quicksetup/org/opends/quicksetup/Constants.java
index 22e2e1f..a6725fe 100644
--- a/opends/src/quicksetup/org/opends/quicksetup/Constants.java
+++ b/opends/src/quicksetup/org/opends/quicksetup/Constants.java
@@ -96,4 +96,10 @@
 
   /** The maximum chars we show in a line of a dialog. */
   public static final int MAX_CHARS_PER_LINE_IN_DIALOG = 100;
+
+  /** Prefix for log files. */
+  public static final String LOG_FILE_PREFIX = "opends-setup-";
+
+  /** Suffix for log files. */
+  public static final String LOG_FILE_SUFFIX = ".log";
 }
diff --git a/opends/src/quicksetup/org/opends/quicksetup/installandupgrader/InstallAndUpgrader.java b/opends/src/quicksetup/org/opends/quicksetup/installandupgrader/InstallAndUpgrader.java
index ff016c2..5d14717 100644
--- a/opends/src/quicksetup/org/opends/quicksetup/installandupgrader/InstallAndUpgrader.java
+++ b/opends/src/quicksetup/org/opends/quicksetup/installandupgrader/InstallAndUpgrader.java
@@ -40,6 +40,7 @@
 import java.util.logging.Logger;
 
 import org.opends.quicksetup.ButtonName;
+import org.opends.quicksetup.Constants;
 import org.opends.quicksetup.CurrentInstallStatus;
 import org.opends.quicksetup.ProgressStep;
 import org.opends.quicksetup.QuickSetupLog;
@@ -49,8 +50,6 @@
 import org.opends.quicksetup.WizardStep;
 import org.opends.quicksetup.event.ProgressUpdateListener;
 import org.opends.quicksetup.installandupgrader.ui.WelcomePanel;
-import org.opends.quicksetup.installer.Installer;
-import org.opends.quicksetup.installer.SetupLauncher;
 import org.opends.quicksetup.installer.offline.OfflineInstaller;
 import org.opends.quicksetup.installer.webstart.WebStartInstaller;
 import org.opends.quicksetup.ui.FieldName;
@@ -70,8 +69,8 @@
 {
   static private final Logger LOG =
     Logger.getLogger(InstallAndUpgrader.class.getName());
-  private Installer installer;
-  private Upgrader upgrader;
+  private GuiApplication installer;
+  private GuiApplication upgrader;
   private InstallAndUpgradeUserData userData;
 
   /**
@@ -84,7 +83,7 @@
       if (!QuickSetupLog.isInitialized())
         QuickSetupLog.initLogFileHandler(
                 File.createTempFile(
-                        SetupLauncher.LOG_FILE_PREFIX,
+                        Constants.LOG_FILE_PREFIX,
                         QuickSetupLog.LOG_FILE_SUFFIX));
     } catch (IOException e) {
       System.err.println(INFO_ERROR_INITIALIZING_LOG.get());
diff --git a/opends/src/quicksetup/org/opends/quicksetup/installer/Installer.java b/opends/src/quicksetup/org/opends/quicksetup/installer/Installer.java
index 56b1d89..9481c96 100644
--- a/opends/src/quicksetup/org/opends/quicksetup/installer/Installer.java
+++ b/opends/src/quicksetup/org/opends/quicksetup/installer/Installer.java
@@ -63,13 +63,26 @@
 import org.opends.admin.ads.util.ApplicationTrustManager;
 import org.opends.admin.ads.util.ConnectionUtils;
 import org.opends.admin.ads.util.PreferredConnection;
+import org.opends.quicksetup.ApplicationException;
+import org.opends.quicksetup.ButtonName;
+import org.opends.quicksetup.Constants;
+import org.opends.quicksetup.Installation;
+import org.opends.quicksetup.ProgressStep;
+import org.opends.quicksetup.QuickSetupLog;
+import org.opends.quicksetup.ReturnCode;
+import org.opends.quicksetup.SecurityOptions;
+import org.opends.quicksetup.Step;
+import org.opends.quicksetup.UserData;
+import org.opends.quicksetup.UserDataCertificateException;
+import org.opends.quicksetup.UserDataConfirmationException;
+import org.opends.quicksetup.UserDataException;
+import org.opends.quicksetup.WizardStep;
 import org.opends.quicksetup.ui.*;
 import org.opends.quicksetup.util.IncompatibleVersionException;
 import org.opends.quicksetup.util.Utils;
 
 import static org.opends.quicksetup.util.Utils.*;
 import static org.opends.quicksetup.Step.*;
-import org.opends.quicksetup.*;
 import org.opends.server.util.CertificateManager;
 import org.opends.quicksetup.event.ButtonActionListener;
 import org.opends.quicksetup.event.ButtonEvent;
@@ -196,8 +209,8 @@
       if (!QuickSetupLog.isInitialized())
         QuickSetupLog.initLogFileHandler(
                 File.createTempFile(
-                    SetupLauncher.LOG_FILE_PREFIX,
-                    SetupLauncher.LOG_FILE_SUFFIX));
+                    Constants.LOG_FILE_PREFIX,
+                    Constants.LOG_FILE_SUFFIX));
     } catch (IOException e) {
       System.err.println("Failed to initialize log");
     }
@@ -3942,7 +3955,6 @@
     {
       suffixes.add(replica.getSuffix());
     }
-    // BUG: suf can be null here below
     getUserData().setSuffixesToReplicateOptions(
         new SuffixesToReplicateOptions(type, suffixes, suf.getSuffixes()));
   }
diff --git a/opends/src/quicksetup/org/opends/quicksetup/installer/SetupLauncher.java b/opends/src/quicksetup/org/opends/quicksetup/installer/SetupLauncher.java
index e6a7d7a..3d1036c 100644
--- a/opends/src/quicksetup/org/opends/quicksetup/installer/SetupLauncher.java
+++ b/opends/src/quicksetup/org/opends/quicksetup/installer/SetupLauncher.java
@@ -33,6 +33,7 @@
 import java.io.File;
 import java.util.logging.Logger;
 
+import org.opends.quicksetup.Constants;
 import org.opends.quicksetup.ReturnCode;
 import org.opends.quicksetup.CliApplication;
 import org.opends.quicksetup.Installation;
@@ -56,12 +57,6 @@
  */
 public class SetupLauncher extends Launcher {
 
-  /** Prefix for log files. */
-  static public final String LOG_FILE_PREFIX = "opends-setup-";
-
-  /** Suffix for log files. */
-  static public final String LOG_FILE_SUFFIX = ".log";
-
   static private final Logger LOG =
           Logger.getLogger(SetupLauncher.class.getName());
 
@@ -75,7 +70,8 @@
   public static void main(String[] args) {
     try {
       QuickSetupLog.initLogFileHandler(
-              File.createTempFile(LOG_FILE_PREFIX, LOG_FILE_SUFFIX),
+              File.createTempFile(Constants.LOG_FILE_PREFIX,
+                  Constants.LOG_FILE_SUFFIX),
               "org.opends.quicksetup.installer");
       QuickSetupLog.disableConsoleLogging();
 
diff --git a/opends/src/quicksetup/org/opends/quicksetup/ui/GuiApplication.java b/opends/src/quicksetup/org/opends/quicksetup/ui/GuiApplication.java
index d91826f..25ecab2 100644
--- a/opends/src/quicksetup/org/opends/quicksetup/ui/GuiApplication.java
+++ b/opends/src/quicksetup/org/opends/quicksetup/ui/GuiApplication.java
@@ -27,12 +27,19 @@
 
 package org.opends.quicksetup.ui;
 
-import org.opends.quicksetup.*;
 import org.opends.quicksetup.util.ServerController;
 import org.opends.quicksetup.util.InProcessServerController;
 import org.opends.quicksetup.util.UIKeyStore;
 import org.opends.quicksetup.util.Utils;
+import org.opends.quicksetup.Application;
+import org.opends.quicksetup.ApplicationException;
+import org.opends.quicksetup.ButtonName;
+import org.opends.quicksetup.ReturnCode;
+import org.opends.quicksetup.UserData;
+import org.opends.quicksetup.UserDataCertificateException;
+import org.opends.quicksetup.UserDataException;
 import org.opends.quicksetup.UserInteraction;
+import org.opends.quicksetup.WizardStep;
 import org.opends.quicksetup.webstart.WebStartDownloader;
 import org.opends.messages.Message;
 import static org.opends.messages.QuickSetupMessages.*;
@@ -600,7 +607,17 @@
     UserInteraction ui = null;
     if (getUserData().isInteractive()) {
       if (Utils.isCli()) {
-        ui = new CliUserInteraction();
+        // Use reflection to avoid breaking the java web start in some
+        // platforms.
+        try
+        {
+          Class cl = Class.forName("org.opends.quicksetup.CliUserInteraction");
+          ui = (UserInteraction) cl.newInstance();
+        }
+        catch (Throwable t)
+        {
+          throw new IllegalStateException("Unexpected error: "+t, t);
+        }
       } else {
         ui = new GuiUserInteraction(qs.getFrame());
       }

--
Gitblit v1.10.0