opends/resource/README
@@ -5,7 +5,7 @@ To configure the server, run the setup script on UNIX-based platforms, or the setup.bat batch file on Windows. To start the server, run bin/start-ds.sh on UNIX-based platforms, or bin\start-ds.bat on Windows systems. UNIX-based platforms, or bat\start-ds.bat on Windows systems. This product is made available under the Common Development and Distribution License (CDDL). The complete text for this license, and for alternate licenses opends/resource/upgrade
New file @@ -0,0 +1,120 @@ #!/bin/sh # # CDDL HEADER START # # The contents of this file are subject to the terms of the # Common Development and Distribution License, Version 1.0 only # (the "License"). You may not use this file except in compliance # with the License. # # You can obtain a copy of the license at # trunk/opends/resource/legal-notices/OpenDS.LICENSE # or https://OpenDS.dev.java.net/OpenDS.LICENSE. # See the License for the specific language governing permissions # and limitations under the License. # # When distributing Covered Code, include this CDDL HEADER in each # file and include the License file at # trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, # add the following below this CDDL HEADER, with the fields enclosed # by brackets "[]" replaced with your own identifying information: # Portions Copyright [yyyy] [name of copyright owner] # # CDDL HEADER END # # # Portions Copyright 2006-2007 Sun Microsystems, Inc. # See if JAVA_HOME is set. If not, then see if there is a java executable in # the path and try to figure it out. if test -z "${JAVA_BIN}" then if test -z "${JAVA_HOME}" then if test -f "${INSTANCE_ROOT}/bin/set-java-home" then . "${INSTANCE_ROOT}/bin/set-java-home" JAVA_BIN="${JAVA_HOME}/bin/java" export JAVA_BIN else JAVA_BIN=`which java 2> /dev/null` if test ${?} -eq 0 then export JAVA_BIN else echo "Please set JAVA_HOME to the root of a Java 5.0 installation." exit 1 fi fi else JAVA_BIN="${JAVA_HOME}/bin/java" export JAVA_BIN fi fi # Explicitly set the PATH, LD_LIBRARY_PATH, LD_PRELOAD, and other important # system environment variables for security and compatibility reasons. PATH=/bin:/usr/bin LD_LIBRARY_PATH= LD_LIBRARY_PATH_32= LD_LIBRARY_PATH_64= LD_PRELOAD= LD_PRELOAD_32= LD_PRELOAD_64= export PATH LD_LIBRARY_PATH LD_LIBRARY_PATH_32 LD_LIBRARY_PATH_64 \ LD_PRELOAD LD_PRELOAD_32 LD_PRELOAD_34 # Capture the current working directory so that we can change to it later. # Then capture the location of this script and the Directory Server instance # root so that we can use them to create appropriate paths. WORKING_DIR=`pwd` cd `dirname "${0}"` SCRIPT_DIR=`pwd` INSTANCE_ROOT=${SCRIPT_DIR} export INSTANCE_ROOT cd "${WORKING_DIR}" # Configure the appropriate CLASSPATH to test. CLASSPATH=${INSTANCE_ROOT}/classes for JAR in ${INSTANCE_ROOT}/lib/*.jar do CLASSPATH=${CLASSPATH}:${JAR} done export CLASSPATH # Determine whether the detected Java environment is acceptable for use. if test -z "${JAVA_ARGS}" then "${JAVA_BIN}" -client org.opends.server.tools.InstallDS -t 2> /dev/null if test ${?} -eq 0 then JAVA_ARGS="-client" else "${JAVA_BIN}" org.opends.server.tools.InstallDS -t 2> /dev/null if test ${?} -ne 0 then echo "ERROR: The detected Java version could not be used. Please set " echo " JAVA_HOME to the root of a Java 5.0 installation." exit 1 fi fi else "${JAVA_BIN}" ${JAVA_ARGS} org.opends.server.tools.InstallDS -t 2> /dev/null if test ${?} -ne 0 then echo "ERROR: The detected Java version could not be used. Please set " echo " JAVA_HOME to the root of a Java 5.0 installation." exit 1 fi fi # Launch the uninstall process. "${JAVA_BIN}" org.opends.quicksetup.upgrader.UpgradeLauncher "${@}" opends/resource/upgrade.bat
New file @@ -0,0 +1,70 @@ @echo off rem CDDL HEADER START rem rem The contents of this file are subject to the terms of the rem Common Development and Distribution License, Version 1.0 only rem (the "License"). You may not use this file except in compliance rem with the License. rem rem You can obtain a copy of the license at rem trunk/opends/resource/legal-notices/OpenDS.LICENSE rem or https://OpenDS.dev.java.net/OpenDS.LICENSE. rem See the License for the specific language governing permissions rem and limitations under the License. rem rem When distributing Covered Code, include this CDDL HEADER in each rem file and include the License file at rem trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, rem add the following below this CDDL HEADER, with the fields enclosed rem by brackets "[]" replaced with your own identifying information: rem Portions Copyright [yyyy] [name of copyright owner] rem rem CDDL HEADER END rem rem rem Portions Copyright 2006-2007 Sun Microsystems, Inc. setlocal set DIR_HOME=%~dP0. set INSTANCE_ROOT=%DIR_HOME% :checkJavaBin if "%JAVA_BIN%" == "" goto noJavaBin goto setClassPath :noJavaBin if "%JAVA_HOME%" == "" goto noJavaHome if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome set JAVA_BIN=%JAVA_HOME%\bin\java.exe goto setClassPath :noJavaHome if not exist "%DIR_HOME%\bat\set-java-home.bat" goto noSetJavaHome call "%DIR_HOME%\bat\set-java-home.bat" set JAVA_BIN=%JAVA_HOME%\bin\java.exe goto setClassPath :noSetJavaHome echo Error: JAVA_HOME environment variable is not set. echo Please set it to a valid Java 5 installation. goto end :setClassPath FOR %%x in ("%DIR_HOME%\lib\*.jar") DO call "%DIR_HOME%\bat\setcp.bat" %%x set PATH=%SystemRoot% if "%*" == "" goto callLaunch goto callJava :callLaunch "%DIR_HOME%\lib\winlauncher.exe" launch "%DIR_HOME%" "%JAVA_BIN%" %JAVA_ARGS% org.opends.quicksetup.uninstaller.UninstallLauncher goto end :callJava "%JAVA_BIN%" %JAVA_ARGS% org.opends.quicksetup.upgrader.UpgradeLauncher %* goto end :end opends/src/quicksetup/org/opends/quicksetup/Application.java
@@ -33,12 +33,16 @@ import org.opends.quicksetup.i18n.ResourceProvider; import org.opends.quicksetup.util.Utils; import org.opends.quicksetup.util.ProgressMessageFormatter; import org.opends.quicksetup.ui.QuickSetupDialog; import org.opends.quicksetup.ui.QuickSetupStepPanel; import javax.naming.NamingException; import javax.swing.*; import java.io.*; import java.util.*; import java.util.logging.Level; import java.util.logging.Logger; import java.awt.event.WindowEvent; /** * This class represents an application that can be run in the context @@ -56,6 +60,12 @@ static private final Logger LOG = Logger.getLogger(Application.class.getName()); /** The currently displayed wizard step. */ private Step displayedStep; /** Represents current install state. */ protected CurrentInstallStatus installStatus; /** * Creates an application by instantiating the Application class * denoted by the System property @@ -113,10 +123,17 @@ * of this application must have a default constructor. */ public Application() { // do nothing; this.displayedStep = getFirstWizardStep(); } /** * Gets the frame title of the GUI application that will be used * in some operating systems. * @return internationalized String representing the frame title */ abstract public String getFrameTitle(); /** * Sets this instances user data. * @param userData UserData this application will use * when executing @@ -588,6 +605,43 @@ } /** * Returns the initial wizard step. * @return Step representing the first step to show in the wizard */ public abstract Step getFirstWizardStep(); /** * Called by the quicksetup controller when the user advances to * a new step in the wizard. Applications are expected to manipulate * the QuickSetupDialog to reflect the current step. * * @param step Step indicating the new current step * @param userData UserData representing the data specified by the user * @param dlg QuickSetupDialog hosting the wizard */ protected void setDisplayedWizardStep(Step step, UserData userData, QuickSetupDialog dlg) { this.displayedStep = step; // First call the panels to do the required updates on their layout dlg.setDisplayedStep(step, userData); setWizardDialogState(dlg, userData, step); } /** * Called when the user advances to new step in the wizard. Applications * are expected to manipulate the QuickSetupDialog to reflect the current * step. * @param dlg QuickSetupDialog hosting the wizard * @param userData UserData representing the data specified by the user * @param step Step indicating the new current step */ protected abstract void setWizardDialogState(QuickSetupDialog dlg, UserData userData, Step step); /** * Returns the installation path. * @return the installation path. */ @@ -661,6 +715,68 @@ public abstract String getSummary(ProgressStep step); /** * Sets the current install status for this application. * @param installStatus for the current installation. */ public void setCurrentInstallStatus(CurrentInstallStatus installStatus) { this.installStatus = installStatus; } /** * Called by the controller when the window is closing. The application * can take application specific actions here. * @param dlg QuickSetupDialog that will be closing * @param evt The event from the Window indicating closing */ abstract public void windowClosing(QuickSetupDialog dlg, WindowEvent evt); /** * This method is called when we detected that there is something installed * we inform of this to the user and the user wants to proceed with the * installation destroying the contents of the data and the configuration * in the current installation. */ public void forceToDisplay() { // This is really only appropriate for Installer. // The default implementation is to do nothing. // The Installer application overrides this with // whatever it needs. } /** * Get the name of the button that will receive initial focus. * @return ButtonName of the button to receive initial focus */ abstract public ButtonName getInitialFocusButtonName(); /** * Creates the main panel for the wizard dialog. * @param dlg QuickSetupDialog used * @return JPanel frame panel */ abstract public JPanel createFramePanel(QuickSetupDialog dlg); /** * Returns the set of wizard steps used in this application's wizard. * @return Set of Step objects representing wizard steps */ abstract public Set<Step> getWizardSteps(); /** * Creates a wizard panel given a specific step. * @param step for which a panel representation should be created * @return QuickSetupStepPanel for representing the <code>step</code> */ abstract public QuickSetupStepPanel createWizardStepPanel(Step step); /** * Gets the next step in the wizard given a current step. * @param step Step the current step * @return Step the next step */ abstract public Step getNextWizardStep(Step step); /** * This class is used to read the standard error and standard output of the * Start process. * opends/src/quicksetup/org/opends/quicksetup/QuickSetup.java
@@ -40,7 +40,6 @@ import org.opends.quicksetup.util.ProgressMessageFormatter; import org.opends.quicksetup.util.Utils; import org.opends.quicksetup.util.HtmlProgressMessageFormatter; import org.opends.server.util.SetupUtils; import javax.swing.*; import java.io.File; @@ -117,22 +116,22 @@ { ProgressMessageFormatter formatter = new HtmlProgressMessageFormatter(); try { installStatus = new CurrentInstallStatus(); application = Application.create(); application.setProgressMessageFormatter(formatter); application.setCurrentInstallStatus(installStatus); initLookAndFeel(); /* In the calls to setCurrentStep the dialog will be created */ setCurrentStep(application.getFirstWizardStep()); } catch (ApplicationException e) { LOG.log(Level.INFO, "error", e); throw new RuntimeException("failed to create quicksetup application", e); } installStatus = new CurrentInstallStatus(); initLookAndFeel(); /* In the calls to setCurrentStep the dialog will be created */ if (Utils.isUninstall()) { setCurrentStep(Step.CONFIRM_UNINSTALL); } else { setCurrentStep(Step.WELCOME); } } /** @@ -496,7 +495,8 @@ switch (cStep) { case WELCOME: getDialog().forceToDisplaySetup(); application.forceToDisplay(); getDialog().forceToDisplay(); setCurrentStep(Step.WELCOME); break; default: @@ -815,7 +815,7 @@ displayFieldInvalid(FieldName.DIRECTORY_MANAGER_PWD_CONFIRM, false); } int defaultJMXPort = getDefaultJMXPort(); int defaultJMXPort = UserData.getDefaultJMXPort(); if (defaultJMXPort != -1) { application.getUserData().setServerJMXPort(defaultJMXPort); @@ -1056,37 +1056,6 @@ } /** * Provides an object representing the default data/install parameters that * will be proposed to the user in the Installation wizard. This data includes * elements such as the default dn of the directory manager or the default * install location. * * @return the userData representing the default data/parameters that * will be proposed to the user. */ private UserData getDefaultUserData() { UserData defaultUserData = application.createUserData(); DataOptions defaultDataOptions = new DefaultDataOptions(); defaultUserData.setServerLocation(Utils.getDefaultServerLocation()); // See what we can propose as port int defaultPort = getDefaultPort(); if (defaultPort != -1) { defaultUserData.setServerPort(defaultPort); } defaultUserData.setDirectoryManagerDn("cn=Directory Manager"); defaultUserData.setDataOptions(defaultDataOptions); defaultUserData.setStartServer(true); return defaultUserData; } /** * The following three methods are just commodity methods to get localized * messages. * @param key String key @@ -1211,7 +1180,8 @@ { if (dialog == null) { dialog = new QuickSetupDialog(getDefaultUserData(), installStatus); dialog = new QuickSetupDialog(application, installStatus); dialog.addButtonActionListener(this); } return dialog; @@ -1345,49 +1315,6 @@ } /** * Provides the port that will be proposed to the user in the second page of * the installation wizard. It will check whether we can use 389 and if not it * will return -1. * * @return the port 389 if it is available and we can use and -1 if not. */ private int getDefaultPort() { int defaultPort = -1; for (int i=0;i<10000 && (defaultPort == -1);i+=1000) { int port = i + 389; if (Utils.canUseAsPort(port)) { defaultPort = port; } } return defaultPort; } /** * Provides the port that will be used by default for JMX. * * @return the port X689 if it is available and we can use and -1 if not. */ private int getDefaultJMXPort() { int defaultJMXPort = -1; for (int i=0;i<65000 && (defaultJMXPort == -1);i+=1000) { int port = i + SetupUtils.getDefaultJMXPort(); if (Utils.canUseAsPort(port)) { defaultJMXPort = port; } } return defaultJMXPort; } /** * Returns the number of free disk space in bytes required to install Open DS * * For the moment we just return 15 Megabytes. TODO we might want to have opends/src/quicksetup/org/opends/quicksetup/Step.java
@@ -38,25 +38,45 @@ /** * Welcome step for the installation. */ WELCOME, WELCOME("welcome-step"), /** * Server Settings step (path, port, etc.). */ SERVER_SETTINGS, SERVER_SETTINGS("server-settings-step"), /** * Data Options panel (suffix dn, LDIF path, etc.). */ DATA_OPTIONS, DATA_OPTIONS("data-options-step"), /** * Review panel for the install. */ REVIEW, REVIEW("review-step"), /** * Progress panel. */ PROGRESS, PROGRESS("progress-step"), /** * Confirmation panel for the uninstallation. */ CONFIRM_UNINSTALL CONFIRM_UNINSTALL("confirm-uninstall-step"); private String msgKey; /** * Creates a step. * @param msgKey the message key used to access a message catalog to * retreive this step's display name */ Step(String msgKey) { this.msgKey = msgKey; } /** * Gets this steps message key. * @return String message key used to access a message catalog to * retreive this step's display name */ public String getMessageKey() { return msgKey; } } opends/src/quicksetup/org/opends/quicksetup/UserData.java
@@ -27,6 +27,9 @@ package org.opends.quicksetup; import org.opends.quicksetup.util.Utils; import org.opends.server.util.SetupUtils; /** * Represents user specified input data to an application. */ @@ -42,6 +45,25 @@ private boolean stopServer; /** * Creates a user data object with default values. */ public UserData() { DataOptions defaultDataOptions = new DefaultDataOptions(); setServerLocation(Utils.getDefaultServerLocation()); // See what we can propose as port int defaultPort = getDefaultPort(); if (defaultPort != -1) { setServerPort(defaultPort); } setDirectoryManagerDn("cn=Directory Manager"); setDataOptions(defaultDataOptions); } /** * Sets the location of the server (installation path). * @param serverLocation the new server location (installation path). */ @@ -193,4 +215,47 @@ { return stopServer; } /** * Provides the port that will be proposed to the user in the second page of * the installation wizard. It will check whether we can use 389 and if not it * will return -1. * * @return the port 389 if it is available and we can use and -1 if not. */ static public int getDefaultPort() { int defaultPort = -1; for (int i=0;i<10000 && (defaultPort == -1);i+=1000) { int port = i + 389; if (Utils.canUseAsPort(port)) { defaultPort = port; } } return defaultPort; } /** * Provides the port that will be used by default for JMX. * * @return the port X689 if it is available and we can use and -1 if not. */ static public int getDefaultJMXPort() { int defaultJMXPort = -1; for (int i=0;i<65000 && (defaultJMXPort == -1);i+=1000) { int port = i + SetupUtils.getDefaultJMXPort(); if (Utils.canUseAsPort(port)) { defaultJMXPort = port; } } return defaultJMXPort; } } opends/src/quicksetup/org/opends/quicksetup/installer/Installer.java
@@ -26,16 +26,23 @@ */ package org.opends.quicksetup.installer; import static org.opends.quicksetup.Step.WELCOME; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Map; import java.util.Set; import java.util.EnumSet; import java.awt.event.WindowEvent; import org.opends.quicksetup.ui.UIFactory; import org.opends.quicksetup.ui.*; import org.opends.quicksetup.util.Utils; import org.opends.quicksetup.*; import org.opends.server.util.SetupUtils; import javax.swing.*; /** * This is an abstract class that is in charge of actually performing the @@ -55,12 +62,121 @@ */ public abstract class Installer extends Application { /* Indicates that we've detected that there is something installed */ boolean forceToDisplaySetup = false; /** * An static String that contains the class name of ConfigFileHandler. */ protected static final String CONFIG_CLASS_NAME = "org.opends.server.extensions.ConfigFileHandler"; /** * {@inheritDoc} */ public void forceToDisplay() { forceToDisplaySetup = true; } /** * {@inheritDoc} */ public ButtonName getInitialFocusButtonName() { ButtonName name = null; if (!installStatus.isInstalled() || forceToDisplaySetup) { name = ButtonName.NEXT; } else { if (installStatus.canOverwriteCurrentInstall()) { name = ButtonName.CONTINUE_INSTALL; } else { name = ButtonName.QUIT; } } return name; } /** * {@inheritDoc} */ public JPanel createFramePanel(QuickSetupDialog dlg) { JPanel p; if (installStatus.isInstalled() && !forceToDisplaySetup) { p = dlg.getInstalledPanel(); } else { p = new FramePanel(dlg.getStepsPanel(), dlg.getCurrentStepPanel(), dlg.getButtonsPanel()); } return p; } /** * {@inheritDoc} */ public Set<Step> getWizardSteps() { return EnumSet.of(WELCOME, Step.SERVER_SETTINGS, Step.DATA_OPTIONS, Step.REVIEW, Step.PROGRESS); } /** * {@inheritDoc} */ public QuickSetupStepPanel createWizardStepPanel(Step step) { QuickSetupStepPanel p = null; switch (step) { case WELCOME: p = new InstallWelcomePanel(); break; case SERVER_SETTINGS: p = new ServerSettingsPanel(getUserData()); break; case DATA_OPTIONS: p = new DataOptionsPanel(getUserData()); break; case REVIEW: p = new ReviewPanel(getUserData()); break; case PROGRESS: p = new ProgressPanel(); break; } return p; } /** * {@inheritDoc} */ public void windowClosing(QuickSetupDialog dlg, WindowEvent evt) { if (installStatus.isInstalled() && forceToDisplaySetup) { // Simulate a close button event dlg.notifyButtonEvent(ButtonName.QUIT); } else { if (dlg.getDisplayedStep() == Step.PROGRESS) { // Simulate a close button event dlg.notifyButtonEvent(ButtonName.CLOSE); } else { // Simulate a quit button event dlg.notifyButtonEvent(ButtonName.QUIT); } } } /** * {@inheritDoc} */ public String getFrameTitle() { return getMsg("frame-install-title"); } /** Indicates the current progress step. */ protected InstallProgressStep status = InstallProgressStep.NOT_STARTED; @@ -68,12 +184,86 @@ /** * {@inheritDoc} */ protected void setWizardDialogState(QuickSetupDialog dlg, UserData userData, Step step) { if (!installStatus.isInstalled() || forceToDisplaySetup) { // Set the default button for the frame switch (step) { case REVIEW: dlg.setDefaultButton(ButtonName.FINISH); break; case PROGRESS: dlg.setDefaultButton(ButtonName.CLOSE); break; default: dlg.setDefaultButton(ButtonName.NEXT); } // Set the focus for the current step switch (step) { case WELCOME: dlg.setFocusOnButton(ButtonName.NEXT); break; case SERVER_SETTINGS: // The focus is set by the panel itself break; case DATA_OPTIONS: // The focus is set by the panel itself break; case REVIEW: dlg.setFocusOnButton(ButtonName.FINISH); break; case PROGRESS: dlg.setFocusOnButton(ButtonName.CLOSE); dlg.setButtonEnabled(ButtonName.CLOSE, false); break; } } } /** * {@inheritDoc} */ public ProgressStep getStatus() { return status; } /** * {@inheritDoc} */ public Step getFirstWizardStep() { return WELCOME; } /** * {@inheritDoc} */ public Step getNextWizardStep(Step step) { Step nextStep = null; if (step != null) { if (step.equals(Step.WELCOME)) { nextStep = Step.SERVER_SETTINGS; } else if (step.equals(Step.SERVER_SETTINGS)) { nextStep = Step.DATA_OPTIONS; } else if (step.equals(Step.DATA_OPTIONS)) { nextStep = Step.REVIEW; } else if (step.equals(Step.REVIEW)) { nextStep = Step.PROGRESS; } } return nextStep; } /** * Creates a template file based in the contents of the UserData object. * This template file is used to generate automatically data. To generate * the template file the code will basically take into account the value of opends/src/quicksetup/org/opends/quicksetup/resources/Resources.properties
@@ -155,10 +155,30 @@ cli-uninstall-server-stopped=The Server is Stopped. # # Upgrade command line messages # upgrade-launcher-usage=This utility may be used to upgrade the \ Directory Server to a newer version.\n\ Usage: {0} {options}\n where {options} include:\n\ --cli\n\ Specifies to use the command line upgrade. If not specified the \ graphical\n\ interface will be launched.\n\ -H or --help\n Displays usage information for this program.\n\n\ The following options will only be taken into account if the option --cli \n\ (command line) is specified\n\ -s or --silentUpgrade\n Perform a silent upgrade. upgrade-launcher-launching-gui=Launching graphical upgrade... upgrade-launcher-launching-cli=Launching command line upgrade... upgrade-launcher-gui-launched-failed=\n\nThe graphical upgrade launch \ failed.\n\nLaunching command line upgrade... cli-upgrade-unknown-argument=Unknown argument {0} # # Dialog titles # frame-install-title=OpenDS QuickSetup frame-uninstall-title=OpenDS Uninstall frame-upgrade-title=OpenDS Upgrade # # Wizard buttons (labels and tooltips) opends/src/quicksetup/org/opends/quicksetup/ui/CurrentStepPanel.java
@@ -31,13 +31,11 @@ import java.awt.Dimension; import java.util.HashMap; import java.util.Set; import org.opends.quicksetup.CurrentInstallStatus; import org.opends.quicksetup.Step; import org.opends.quicksetup.event.ButtonActionListener; import org.opends.quicksetup.installer.FieldName; import org.opends.quicksetup.ProgressDescriptor; import org.opends.quicksetup.UserData; import org.opends.quicksetup.*; import org.opends.quicksetup.util.Utils; /** @@ -53,12 +51,8 @@ * CardLayout). * */ class CurrentStepPanel extends QuickSetupPanel public class CurrentStepPanel extends QuickSetupPanel { private UserData defaultUserData; private CurrentInstallStatus installStatus; private static final long serialVersionUID = 5474803491510999334L; private HashMap<Step, QuickSetupStepPanel> hmPanels = @@ -66,17 +60,11 @@ /** * The constructor of this class. * @param defaultUserData the default data that is used to initialize the * contents of the panels (the proposed values). * @param installStatus the object describing the current installation status. * @param isUninstall boolean telling whether we are uninstalling or not. * @param app Application used to create panels for populating the layout */ public CurrentStepPanel(UserData defaultUserData, CurrentInstallStatus installStatus, boolean isUninstall) public CurrentStepPanel(Application app) { this.defaultUserData = defaultUserData; this.installStatus = installStatus; createLayout(isUninstall); createLayout(app); } /** @@ -126,24 +114,19 @@ /** * Create the layout of the panel. * @param isUninstall whether this is an install or uninstall panel. * @param app Application used to create panels for populating the layout */ private void createLayout(boolean isUninstall) private void createLayout(Application app) { if (isUninstall) { hmPanels.put(Step.CONFIRM_UNINSTALL, new ConfirmUninstallPanel(installStatus)); hmPanels.put(Step.PROGRESS, new ProgressPanel()); } else { hmPanels.put(Step.WELCOME, new InstallWelcomePanel()); hmPanels.put(Step.SERVER_SETTINGS, new ServerSettingsPanel( defaultUserData)); hmPanels.put(Step.DATA_OPTIONS, new DataOptionsPanel(defaultUserData)); hmPanels.put(Step.REVIEW, new ReviewPanel(defaultUserData)); hmPanels.put(Step.PROGRESS, new ProgressPanel()); Set<Step> steps = app.getWizardSteps(); if (steps != null) { for (Step step : steps) { QuickSetupStepPanel panel = app.createWizardStepPanel(step); if (panel != null) { hmPanels.put(step, panel); } } } int minWidth = 0; opends/src/quicksetup/org/opends/quicksetup/ui/DataOptionsPanel.java
@@ -54,7 +54,7 @@ * to import data to the suffix or not, etc. * */ class DataOptionsPanel extends QuickSetupStepPanel public class DataOptionsPanel extends QuickSetupStepPanel { private Component lastFocusComponent; opends/src/quicksetup/org/opends/quicksetup/ui/FramePanel.java
@@ -50,7 +50,7 @@ * transparency effects. * */ class FramePanel extends JPanel public class FramePanel extends JPanel { private static final long serialVersionUID = 7733658951410876078L; opends/src/quicksetup/org/opends/quicksetup/ui/InstallWelcomePanel.java
@@ -35,7 +35,7 @@ * This panel is used to show a welcome message. * */ class InstallWelcomePanel extends QuickSetupStepPanel public class InstallWelcomePanel extends QuickSetupStepPanel { private static final long serialVersionUID = 6209217138897900860L; opends/src/quicksetup/org/opends/quicksetup/ui/QuickSetupDialog.java
@@ -49,15 +49,14 @@ import org.opends.quicksetup.util.Utils; /** * This class represents the dialog used by installer and the uninstaller. * This class represents the dialog used by quicksetup applications. * * In its constructor it gets as parameters an object describing the current * installation status and the default values to be proposed to the user * in the panels. * * If we are installing Open DS and the server has already been installed it * will display an error message. In the other cases it will display a wizard * (that is different depending on whether we are installing or uninstalling). * will display an error message. In the other cases it will display a wizard. * */ public class QuickSetupDialog @@ -76,67 +75,34 @@ private Step displayedStep; private UserData defaultUserData; private CurrentInstallStatus installStatus; private HashSet<ButtonActionListener> buttonListeners = new HashSet<ButtonActionListener>(); private boolean forceToDisplaySetup; private Application application; private boolean forceToDisplay; /** * Constructor of QuickSetupDialog. * @param defaultUserData the default values to be proposed to the user in * the wizard. * @param installStatus the current installation status. * @param app Application to run in as a wizard * @param installStatus of the current environment */ public QuickSetupDialog(UserData defaultUserData, public QuickSetupDialog(Application app, CurrentInstallStatus installStatus) { this.defaultUserData = defaultUserData; if (app == null) { throw new IllegalArgumentException("application cannot be null"); } this.application = app; this.installStatus = installStatus; if (isUninstall()) { frame = new JFrame(getMsg("frame-uninstall-title")); } else { frame = new JFrame(getMsg("frame-install-title")); } frame = new JFrame(application.getFrameTitle()); frame.getContentPane().add(getFramePanel()); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { if (isUninstall()) { if (getDisplayedStep() == Step.PROGRESS) { // Simulate a close button event notifyButtonEvent(ButtonName.CLOSE); } else { // Simulate a quit button event notifyButtonEvent(ButtonName.QUIT); } } else if (isInstalled() && !forceToDisplaySetup) { // Simulate a close button event notifyButtonEvent(ButtonName.QUIT); } else { if (getDisplayedStep() == Step.PROGRESS) { // Simulate a close button event notifyButtonEvent(ButtonName.CLOSE); } else { // Simulate a quit button event notifyButtonEvent(ButtonName.QUIT); } } frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { application.windowClosing(QuickSetupDialog.this, e); } }); frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); @@ -161,24 +127,7 @@ int minWidth = (int) frame.getPreferredSize().getWidth(); int minHeight = (int) frame.getPreferredSize().getHeight(); Utils.centerOnScreen(frame); if (isUninstall()) { setFocusOnButton(ButtonName.FINISH); } else if (!isInstalled() || forceToDisplaySetup) { setFocusOnButton(ButtonName.NEXT); } else { if (installStatus.canOverwriteCurrentInstall()) { setFocusOnButton(ButtonName.CONTINUE_INSTALL); } else { setFocusOnButton(ButtonName.QUIT); } } setFocusOnButton(application.getInitialFocusButtonName()); frame.addComponentListener(new MinimumSizeComponentListener(frame, minWidth, minHeight)); @@ -190,11 +139,10 @@ * we inform of this to the user and the user wants to proceed with the * installation destroying the contents of the data and the configuration * in the current installation. * */ public void forceToDisplaySetup() public void forceToDisplay() { forceToDisplaySetup = true; this.forceToDisplay = true; frame.getContentPane().removeAll(); frame.getContentPane().add(getFramePanel()); frame.pack(); @@ -223,84 +171,11 @@ public void setDisplayedStep(Step step, UserData userData) { displayedStep = step; if (isUninstall()) { // First call the panels to do the required updates on their layout getButtonsPanel().setDisplayedStep(step); getStepsPanel().setDisplayedStep(step); getCurrentStepPanel().setDisplayedStep(step, userData); // Set the default button for the frame switch (step) { case CONFIRM_UNINSTALL: setDefaultButton(ButtonName.FINISH); break; case PROGRESS: setDefaultButton(ButtonName.CLOSE); break; } // Set the focus for the current step switch (step) { case CONFIRM_UNINSTALL: setFocusOnButton(ButtonName.FINISH); break; case PROGRESS: setFocusOnButton(ButtonName.CLOSE); setButtonEnabled(ButtonName.CLOSE, false); break; } } else if (!isInstalled() || forceToDisplaySetup) { // First call the panels to do the required updates on their layout getButtonsPanel().setDisplayedStep(step); getStepsPanel().setDisplayedStep(step); getCurrentStepPanel().setDisplayedStep(step, userData); // Set the default button for the frame switch (step) { case REVIEW: setDefaultButton(ButtonName.FINISH); break; case PROGRESS: setDefaultButton(ButtonName.CLOSE); break; default: setDefaultButton(ButtonName.NEXT); } // Set the focus for the current step switch (step) { case WELCOME: setFocusOnButton(ButtonName.NEXT); break; case SERVER_SETTINGS: // The focus is set by the panel itself break; case DATA_OPTIONS: // The focus is set by the panel itself break; case REVIEW: setFocusOnButton(ButtonName.FINISH); break; case PROGRESS: setFocusOnButton(ButtonName.CLOSE); setButtonEnabled(ButtonName.CLOSE, false); break; } } } /** @@ -404,25 +279,6 @@ } /** * Removes a button listener. * @param l the ButtonActionListener to be removed. */ public void removeButtonActionListener(ButtonActionListener l) { if (isUninstall()) { getButtonsPanel().removeButtonActionListener(l); } else if (isInstalled() && !forceToDisplaySetup) { getInstalledPanel().removeButtonActionListener(l); } else { getButtonsPanel().removeButtonActionListener(l); } buttonListeners.remove(l); } /** * This method is called to inform that a worker has started (the QuickSetup * is doing some data validation). The worker is doing its tasks outside * the event thread to avoid blocking of the painting and this class is @@ -508,7 +364,7 @@ * @param buttonName the button name of the button. * @param enable boolean indicating to enable or to disable the button. */ private void setButtonEnabled(ButtonName buttonName, boolean enable) public void setButtonEnabled(ButtonName buttonName, boolean enable) { getButton(buttonName).setEnabled(enable); } @@ -519,41 +375,21 @@ */ private JPanel getFramePanel() { JPanel p; if (isUninstall()) { if (framePanel == null) { framePanel = new FramePanel(getStepsPanel(), getCurrentStepPanel(), getButtonsPanel()); if (framePanel == null) { framePanel = application.createFramePanel(this); } p = framePanel; } else if (isInstalled() && !forceToDisplaySetup) { p = getInstalledPanel(); } else { if (framePanel == null) { framePanel = new FramePanel(getStepsPanel(), getCurrentStepPanel(), getButtonsPanel()); } p = framePanel; } return p; return framePanel; } /** * Returns the steps panel. * @return the steps panel. */ private StepsPanel getStepsPanel() public StepsPanel getStepsPanel() { if (stepsPanel == null) { stepsPanel = new StepsPanel(isUninstall()); stepsPanel = new StepsPanel(application); } return stepsPanel; } @@ -562,12 +398,11 @@ * Returns the current step panel. * @return the current step panel. */ private CurrentStepPanel getCurrentStepPanel() public CurrentStepPanel getCurrentStepPanel() { if (currentStepPanel == null) { currentStepPanel = new CurrentStepPanel(defaultUserData, installStatus, isUninstall()); currentStepPanel = new CurrentStepPanel(application); } return currentStepPanel; } @@ -577,7 +412,7 @@ * Returns the buttons panel. * @return the buttons panel. */ private ButtonsPanel getButtonsPanel() public ButtonsPanel getButtonsPanel() { if (buttonsPanel == null) { @@ -605,10 +440,7 @@ private JButton getButton(ButtonName buttonName) { JButton button; if (isUninstall()) { button = getButtonsPanel().getButton(buttonName); } else if (isInstalled() && !forceToDisplaySetup) if (isInstalled() && !forceToDisplay) { if (buttonName == ButtonName.QUIT) { @@ -618,8 +450,7 @@ button = getInstalledPanel().getContinueInstallButton(); } else { throw new IllegalStateException("Invalid button name " + buttonName + " if server is installed"); button = getButtonsPanel().getButton(buttonName); } } else { @@ -632,7 +463,7 @@ * Sets the focus in the button associated with the ButtonName. * @param buttonName the ButtonName associated with the button. */ private void setFocusOnButton(ButtonName buttonName) public void setFocusOnButton(ButtonName buttonName) { getButton(buttonName).requestFocusInWindow(); } @@ -641,7 +472,7 @@ * Sets the default button for the frame. * @param buttonName the ButtonName associated with the button. */ private void setDefaultButton(ButtonName buttonName) public void setDefaultButton(ButtonName buttonName) { getFrame().getRootPane().setDefaultButton(getButton(buttonName)); } @@ -665,18 +496,6 @@ } /** * Returns <CODE>true</CODE> if this is an uninstallation and * <CODE>false</CODE> otherwise. * @return <CODE>true</CODE> if this is an uninstallation and * <CODE>false</CODE> otherwise. */ private boolean isUninstall() { return Utils.isUninstall(); } /** * Returns <CODE>true</CODE> if the server is already installed and * <CODE>false</CODE> otherwise. * @return <CODE>true</CODE> if the server is already installed and @@ -695,7 +514,7 @@ * to inform the user that the server is already installed when the * installation has been launched. */ private QuickSetupErrorPanel getInstalledPanel() public QuickSetupErrorPanel getInstalledPanel() { if (installedPanel == null) { @@ -709,7 +528,7 @@ * in the button associated with buttonName. * @param buttonName the ButtonName associated with the button. */ private void notifyButtonEvent(ButtonName buttonName) public void notifyButtonEvent(ButtonName buttonName) { ButtonEvent be = new ButtonEvent(this, buttonName); for (ButtonActionListener li : buttonListeners) opends/src/quicksetup/org/opends/quicksetup/ui/QuickSetupPanel.java
@@ -85,7 +85,7 @@ * have something of type: * key=value * * @see ResourceProvider.getMsg(String key) * @see ResourceProvider#getMsg(String) * @param key the key in the properties file. * @return the value associated to the key in the properties file. * properties file. @@ -105,7 +105,7 @@ * mykey=value with argument {0}. * * This method will return "value with argument value1". * @see ResourceProvider.getMsg(String key, String[] args) * @see ResourceProvider#getMsg(String, String[]) * @param key the key in the properties file. * @param args the arguments to be passed to generate the resulting value. * @return the value associated to the key in the properties file. opends/src/quicksetup/org/opends/quicksetup/ui/ReviewPanel.java
@@ -45,7 +45,7 @@ * This is the panel that contains the Review Panel. * */ class ReviewPanel extends QuickSetupStepPanel public class ReviewPanel extends QuickSetupStepPanel { private static final long serialVersionUID = -7356174829193265699L; opends/src/quicksetup/org/opends/quicksetup/ui/ServerSettingsPanel.java
@@ -51,7 +51,7 @@ * Manager DN, etc. * */ class ServerSettingsPanel extends QuickSetupStepPanel public class ServerSettingsPanel extends QuickSetupStepPanel { private UserData defaultUserData; opends/src/quicksetup/org/opends/quicksetup/ui/StepsPanel.java
@@ -38,6 +38,7 @@ import javax.swing.JPanel; import org.opends.quicksetup.Step; import org.opends.quicksetup.Application; /** * This class displays the different steps of the wizard. It appears on the @@ -47,7 +48,7 @@ * The current displayed step can be changed calling the method setCurrentStep. * */ class StepsPanel extends QuickSetupPanel public class StepsPanel extends QuickSetupPanel { private static final long serialVersionUID = -2003945907121690657L; @@ -57,11 +58,11 @@ /** * Creates a StepsPanel. * @param isUninstall tells whether we are installing or uninstalling. * @param app Application whose steps this class represents */ public StepsPanel(boolean isUninstall) public StepsPanel(Application app) { createLayout(isUninstall); createLayout(app); } /** @@ -95,9 +96,9 @@ /** * Creates the layout of the panel. * @param isUninstall tells whether we are installing or uninstalling. * @param app Application whose steps this class represents */ private void createLayout(boolean isUninstall) private void createLayout(Application app) { setLayout(new GridBagLayout()); @@ -112,25 +113,15 @@ HashMap<Step, String> hmText = new HashMap<Step, String>(); ArrayList<Step> orderedSteps = new ArrayList<Step>(); if (isUninstall) { hmText.put(Step.CONFIRM_UNINSTALL, getMsg("confirm-uninstall-step")); hmText.put(Step.PROGRESS, getMsg("progress-step")); orderedSteps.add(Step.CONFIRM_UNINSTALL); orderedSteps.add(Step.PROGRESS); } else { hmText.put(Step.WELCOME, getMsg("welcome-step")); hmText.put(Step.SERVER_SETTINGS, getMsg("server-settings-step")); hmText.put(Step.DATA_OPTIONS, getMsg("data-options-step")); hmText.put(Step.REVIEW, getMsg("review-step")); hmText.put(Step.PROGRESS, getMsg("progress-step")); orderedSteps.add(Step.WELCOME); orderedSteps.add(Step.SERVER_SETTINGS); orderedSteps.add(Step.DATA_OPTIONS); orderedSteps.add(Step.REVIEW); orderedSteps.add(Step.PROGRESS); Step step = app.getFirstWizardStep(); hmText.put(step, getMsg(step.getMessageKey())); orderedSteps.add(step); while (null != (step = app.getNextWizardStep(step))) { hmText.put(step, getMsg(step.getMessageKey())); orderedSteps.add(step); } for (Step s : orderedSteps) { if (s != orderedSteps.get(0)) opends/src/quicksetup/org/opends/quicksetup/uninstaller/Uninstaller.java
@@ -28,11 +28,14 @@ package org.opends.quicksetup.uninstaller; import org.opends.quicksetup.*; import org.opends.quicksetup.ui.*; import org.opends.quicksetup.util.Utils; import org.opends.server.tools.ConfigureWindowsService; import javax.swing.*; import java.io.*; import java.util.*; import java.awt.event.WindowEvent; /** * This class is in charge of performing the uninstallation of Open DS. @@ -56,6 +59,13 @@ /** * {@inheritDoc} */ public String getFrameTitle() { return getMsg("frame-uninstall-title"); } /** * {@inheritDoc} */ public UserData createUserData() { return new UninstallUserData(); } @@ -63,6 +73,54 @@ /** * {@inheritDoc} */ public Step getFirstWizardStep() { return Step.CONFIRM_UNINSTALL; } /** * {@inheritDoc} */ public Step getNextWizardStep(Step step) { Step nextStep = null; if (step != null && step.equals(Step.CONFIRM_UNINSTALL)) { nextStep = Step.PROGRESS; } return nextStep; } /** * {@inheritDoc} */ protected void setWizardDialogState(QuickSetupDialog dlg, UserData userData, Step step) { // Set the default button for the frame switch (step) { case CONFIRM_UNINSTALL: dlg.setDefaultButton(ButtonName.FINISH); break; case PROGRESS: dlg.setDefaultButton(ButtonName.CLOSE); break; } // Set the focus for the current step switch (step) { case CONFIRM_UNINSTALL: dlg.setFocusOnButton(ButtonName.FINISH); break; case PROGRESS: dlg.setFocusOnButton(ButtonName.CLOSE); dlg.setButtonEnabled(ButtonName.CLOSE, false); break; } } /** * {@inheritDoc} */ public UserData createUserData(String[] args, CurrentInstallStatus status) throws UserDataException { @@ -359,6 +417,59 @@ } /** * {@inheritDoc} */ public void windowClosing(QuickSetupDialog dlg, WindowEvent evt) { if (dlg.getDisplayedStep() == Step.PROGRESS) { // Simulate a close button event dlg.notifyButtonEvent(ButtonName.CLOSE); } else { // Simulate a quit button event dlg.notifyButtonEvent(ButtonName.QUIT); } } /** * {@inheritDoc} */ public ButtonName getInitialFocusButtonName() { return ButtonName.FINISH; } /** * {@inheritDoc} */ public JPanel createFramePanel(QuickSetupDialog dlg) { return new FramePanel(dlg.getStepsPanel(), dlg.getCurrentStepPanel(), dlg.getButtonsPanel()); } /** * {@inheritDoc} */ public Set<Step> getWizardSteps() { return EnumSet.of(Step.CONFIRM_UNINSTALL, Step.PROGRESS); } /** * {@inheritDoc} */ public QuickSetupStepPanel createWizardStepPanel(Step step) { QuickSetupStepPanel p = null; switch (step) { case CONFIRM_UNINSTALL: p = new ConfirmUninstallPanel(installStatus); break; case PROGRESS: p = new ProgressPanel(); break; } return p; } /** * This methods stops the server. * @throws ApplicationException if something goes wrong. */ opends/src/quicksetup/org/opends/quicksetup/upgrader/UpgradeLauncher.java
New file @@ -0,0 +1,104 @@ /* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License, Version 1.0 only * (the "License"). You may not use this file except in compliance * with the License. * * You can obtain a copy of the license at * trunk/opends/resource/legal-notices/OpenDS.LICENSE * or https://OpenDS.dev.java.net/OpenDS.LICENSE. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, * add the following below this CDDL HEADER, with the fields enclosed * by brackets "[]" replaced with your own identifying information: * Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END * * * Portions Copyright 2007 Sun Microsystems, Inc. */ package org.opends.quicksetup.upgrader; import org.opends.quicksetup.Launcher; import org.opends.quicksetup.CliApplication; import org.opends.quicksetup.util.Utils; /** * This class is called by the upgrade and upgrade.bat * command line utilities to launch an upgrade process. */ public class UpgradeLauncher extends Launcher { /** * The main method which is called by the setup command lines. * * @param args the arguments passed by the command lines. In the case * we want to launch the cli setup they are basically the arguments that we * will pass to the org.opends.server.tools.InstallDS class. */ public static void main(String[] args) { new UpgradeLauncher(args).launch(); } /** * {@inheritDoc} */ protected String getFrameTitle() { return getMsg("frame-upgrade-title"); } /** * {@inheritDoc} */ protected void printUsage() { String arg; if (Utils.isWindows()) { arg = Utils.getWindowsUpgradeFileName(); } else { arg = Utils.getUnixUpgradeFileName(); } String msg = getMsg("upgrade-launcher-usage"); /* * This is required because the usage message contains '{' characters that * mess up the MessageFormat.format method. */ msg = msg.replace("{0}", arg); printUsage(msg); } /** * {@inheritDoc} */ protected CliApplication createCliApplication() { return new Upgrader(); } /** * {@inheritDoc} */ protected void willLaunchGui() { System.out.println(getMsg("upgrade-launcher-launching-gui")); System.setProperty("org.opends.quicksetup.Application.class", "org.opends.quicksetup.upgrader.Upgrader"); } /** * {@inheritDoc} */ protected void guiLaunchFailed() { System.err.println(getMsg("upgrade-launcher-gui-launched-failed")); } private UpgradeLauncher(String[] args) { super(args); } } opends/src/quicksetup/org/opends/quicksetup/upgrader/Upgrader.java
New file @@ -0,0 +1,165 @@ /* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License, Version 1.0 only * (the "License"). You may not use this file except in compliance * with the License. * * You can obtain a copy of the license at * trunk/opends/resource/legal-notices/OpenDS.LICENSE * or https://OpenDS.dev.java.net/OpenDS.LICENSE. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, * add the following below this CDDL HEADER, with the fields enclosed * by brackets "[]" replaced with your own identifying information: * Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END * * * Portions Copyright 2007 Sun Microsystems, Inc. */ package org.opends.quicksetup.upgrader; import org.opends.quicksetup.*; import org.opends.quicksetup.ui.QuickSetupDialog; import org.opends.quicksetup.ui.QuickSetupStepPanel; import javax.swing.*; import java.awt.event.WindowEvent; import java.util.Set; /** * QuickSetup application of ugrading the bits of an installation of * OpenDS. */ public class Upgrader extends Application implements CliApplication { /** * {@inheritDoc} */ public String getFrameTitle() { return null; } /** * {@inheritDoc} */ public Step getFirstWizardStep() { return Step.WELCOME; } /** * {@inheritDoc} */ protected void setWizardDialogState(QuickSetupDialog dlg, UserData userData, Step step) { } /** * {@inheritDoc} */ protected String getInstallationPath() { return null; } /** * {@inheritDoc} */ protected String getBinariesPath() { return null; } /** * {@inheritDoc} */ public ProgressStep getStatus() { return null; } /** * {@inheritDoc} */ public Integer getRatio(ProgressStep step) { return null; } /** * {@inheritDoc} */ public String getSummary(ProgressStep step) { return null; } /** * {@inheritDoc} */ public void windowClosing(QuickSetupDialog dlg, WindowEvent evt) { } /** * {@inheritDoc} */ public ButtonName getInitialFocusButtonName() { return null; } /** * {@inheritDoc} */ public JPanel createFramePanel(QuickSetupDialog dlg) { return null; } /** * {@inheritDoc} */ public Set<Step> getWizardSteps() { return null; } /** * {@inheritDoc} */ public QuickSetupStepPanel createWizardStepPanel(Step step) { return null; } /** * {@inheritDoc} */ public Step getNextWizardStep(Step step) { return null; } /** * {@inheritDoc} */ public void run() { } /** * {@inheritDoc} */ public UserData createUserData(String[] args, CurrentInstallStatus status) throws UserDataException { return null; } /** * {@inheritDoc} */ public ApplicationException getException() { return null; } } opends/src/quicksetup/org/opends/quicksetup/util/Utils.java
@@ -140,6 +140,16 @@ private static final String WINDOWS_UNINSTALL_FILE_NAME = "uninstall.bat"; /** * The UNIX uninstall script file name. */ private static final String UNIX_UPGRADE_FILE_NAME = "upgrade"; /** * The Windows uninstall batch file name. */ private static final String WINDOWS_UPGRADE_FILE_NAME = "upgrade.bat"; /** * The UNIX start script file name. */ private static final String UNIX_START_FILE_NAME = "start-ds"; @@ -1167,6 +1177,24 @@ } /** * Returns the name of the UNIX upgrade script file name. * @return the name of the UNIX upgrade script file name. */ public static String getUnixUpgradeFileName() { return UNIX_UPGRADE_FILE_NAME; } /** * Returns the name of the Windows upgrade batch file name. * @return the name of the Windows upgrade batch file name. */ public static String getWindowsUpgradeFileName() { return WINDOWS_UPGRADE_FILE_NAME; } /** * Returns the name of the UNIX start script file name. * @return the name of the UNIX start script file name. */ opends/src/quicksetup/org/opends/quicksetup/util/ZipExtractor.java
@@ -283,7 +283,8 @@ { perm = "755"; } else if (path.endsWith(Utils.getUnixSetupFileName()) || path.endsWith(Utils.getUnixUninstallFileName())) path.endsWith(Utils.getUnixUninstallFileName()) || path.endsWith(Utils.getUnixUpgradeFileName())) { perm = "755"; } else