mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

jvergara
23.50.2009 e28cc1961ce7b02aef1cb20aeb0346def9c49754
Follow up to fix issue 4414 (It would be nice to have the equivalent command-line displayed in setup)
Include the stop-ds command-line when the user chooses to configure replication and not to run the server when setup is complete.
Make the displayed command-line to be dynamically updated when the user clicks on the check boxes (start server and configure windows service) in the review panel.
3 files modified
169 ■■■■ changed files
opends/src/messages/messages/quicksetup.properties 2 ●●●●● patch | view | raw | blame | history
opends/src/quicksetup/org/opends/quicksetup/installer/ui/InstallReviewPanel.java 54 ●●●● patch | view | raw | blame | history
opends/src/quicksetup/org/opends/quicksetup/util/Utils.java 113 ●●●● patch | view | raw | blame | history
opends/src/messages/messages/quicksetup.properties
@@ -895,6 +895,8 @@
 non-interactive command-lines to enable replication:
INFO_INSTALL_INITIALIZE_REPLICATION_EQUIVALENT_COMMAND_LINES=Equivalent \
 non-interactive command-lines to initialize replication:
INFO_INSTALL_STOP_SERVER_EQUIVALENT_COMMAND_LINE=Equivalent command-line to \
 stop the server:
INFO_SECURITY_OPTIONS_CANCEL_BUTTON_TOOLTIP=Close this dialog and discard \
 configuration.
INFO_SECURITY_OPTIONS_DIALOG_TITLE=Security Options
opends/src/quicksetup/org/opends/quicksetup/installer/ui/InstallReviewPanel.java
@@ -32,6 +32,7 @@
import static org.opends.messages.QuickSetupMessages.*;
import org.opends.admin.ads.ServerDescriptor;
import org.opends.quicksetup.Installation;
import org.opends.quicksetup.UserData;
import org.opends.quicksetup.installer.AuthenticationData;
import org.opends.quicksetup.installer.DataReplicationOptions;
@@ -42,7 +43,6 @@
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import javax.swing.text.BadLocationException;
import javax.swing.text.JTextComponent;
import java.awt.*;
import java.awt.event.ActionEvent;
@@ -81,6 +81,8 @@
  private JEditorPane equivalentCommandPane;
  private UserData lastUserData;
  /**
   * Constructor of the panel.
   * @param application Application represented by this panel
@@ -141,6 +143,8 @@
    }
    checkStartWarningLabel();
    updateEquivalentCommand(userData);
    lastUserData = userData;
  }
  /**
@@ -476,8 +480,9 @@
        UIFactory.LEFT_INSET_SECONDARY_FIELD));
    cardLayoutPanel.add(new JScrollPane(p), DISPLAY_TEXT.toString());
    cardLayoutPanel.add(new JScrollPane(createEquivalentCommandPanel()),
        DISPLAY_EQUIVALENT_COMMAND.toString());
    JScrollPane scroll = new JScrollPane();
    createEquivalentCommandPanel(scroll);
    cardLayoutPanel.add(scroll, DISPLAY_EQUIVALENT_COMMAND.toString());
    gbc.gridx = 0;
    gbc.gridy = 0;
@@ -559,10 +564,11 @@
    return panel;
  }
  private Component createEquivalentCommandPanel()
  private Component createEquivalentCommandPanel(JScrollPane scroll)
  {
    equivalentCommandPane = UIFactory.makeHtmlPane(Message.EMPTY,
        UIFactory.INSTRUCTIONS_FONT);
    equivalentCommandPane = UIFactory.makeProgressPane(scroll);
    equivalentCommandPane.setAutoscrolls(true);
    scroll.setViewportView(equivalentCommandPane);
    return equivalentCommandPane;
  }
@@ -623,6 +629,8 @@
        public void actionPerformed(ActionEvent ev)
        {
          checkStartWarningLabel();
          lastUserData.setStartServer(startCheckBox.isSelected());
          updateEquivalentCommand(lastUserData);
        }
      });
    }
@@ -639,6 +647,18 @@
              UIFactory.TextStyle.CHECKBOX);
      enableWindowsServiceCheckBox.setSelected(
          getApplication().getUserData().getEnableWindowsService());
      enableWindowsServiceCheckBox.addActionListener(new ActionListener()
      {
        public void actionPerformed(ActionEvent ev)
        {
          if (Utils.isWindows())
          {
            lastUserData.setEnableWindowsService(
                enableWindowsServiceCheckBox.isSelected());
            updateEquivalentCommand(lastUserData);
          }
        }
      });
    }
    return enableWindowsServiceCheckBox;
  }
@@ -664,15 +684,6 @@
    HtmlProgressMessageFormatter formatter =
      new HtmlProgressMessageFormatter();
    StringBuilder sb = new StringBuilder();
    try
    {
      equivalentCommandPane.getDocument().remove(0,
          equivalentCommandPane.getDocument().getLength());
    }
    catch (BadLocationException ble)
    {
      throw new RuntimeException("Unexpected error: "+ble, ble);
    }
    sb.append(formatter.getFormattedProgress(
        INFO_INSTALL_SETUP_EQUIVALENT_COMMAND_LINE.get()));
    sb.append(formatter.getLineBreak());
@@ -742,6 +753,19 @@
            "</b>");
      }
    }
    if (userData.getReplicationOptions().getType() !=
      DataReplicationOptions.Type.STANDALONE &&
      !userData.getStartServer())
    {
      sb.append(formatter.getTaskSeparator());
      String cmd =
        Utils.getPath(Installation.getLocal().getServerStopCommandFile());
      sb.append(formatter.getFormattedProgress(
          INFO_INSTALL_STOP_SERVER_EQUIVALENT_COMMAND_LINE.get()));
      sb.append(formatter.getLineBreak());
      sb.append("<b>"+formatter.getFormattedProgress(Message.raw(cmd))+"</b>");
    }
    equivalentCommandPane.setText(sb.toString());
  }
}
opends/src/quicksetup/org/opends/quicksetup/util/Utils.java
@@ -2221,7 +2221,7 @@
    for (int i=initialIndex ; i<cmd.size(); i++)
    {
      String s = cmd.get(i);
      if (s.startsWith("-") && i > initialIndex)
      if (s.startsWith("-"))
      {
        builder.append(lineSeparator);
        builder.append(formatter.getFormattedProgress(Message.raw(s)));
@@ -2296,7 +2296,7 @@
    {
      setupFile = Installation.UNIX_SETUP_FILE_NAME;
    }
    cmdLine.add(setupFile);
    cmdLine.add(getInstallDir() + setupFile);
    cmdLine.add("--cli");
    for (String baseDN : getBaseDNs(userData))
@@ -2350,6 +2350,10 @@
    cmdLine.add("--rootUserPassword");
    cmdLine.add(OBFUSCATED_VALUE);
    if (Utils.isWindows() && userData.getEnableWindowsService())
    {
      cmdLine.add("--enableWindowsService");
    }
    if (userData.getReplicationOptions().getType() ==
      DataReplicationOptions.Type.STANDALONE &&
      !userData.getStartServer())
@@ -2483,15 +2487,7 @@
      UserData userData, Set<String> baseDNs, ServerDescriptor server)
  {
    ArrayList<String> cmdLine = new ArrayList<String>();
    String cmdName;
    if (Utils.isWindows())
    {
      cmdName = "dsreplication.bat";
    }
    else
    {
      cmdName = "dsreplication";
    }
    String cmdName = getCommandLinePath("dsreplication");
    cmdLine.add(cmdName);
    cmdLine.add("enable");
@@ -2564,20 +2560,87 @@
    return cmdLine;
  }
  /**
   * Returns the full path of the command-line for a given script name.
   * @param scriptBasicName the script basic name (with no extension).
   * @return the full path of the command-line for a given script name.
   */
  private static String getCommandLinePath(String scriptBasicName)
  {
    String cmdLineName;
    if (isWindows())
    {
      cmdLineName = getBinaryDir()+scriptBasicName+".bat";
    }
    else
    {
      cmdLineName = getBinaryDir()+scriptBasicName;
    }
    return cmdLineName;
  }
  private static String binDir;
  /**
   * Returns the binary/script directory.
   * @return the binary/script directory.
   */
  private static String getBinaryDir()
  {
    if (binDir == null)
    {
      File f = Installation.getLocal().getBinariesDirectory();
      try
      {
        binDir = f.getCanonicalPath();
      }
      catch (Throwable t)
      {
        binDir = f.getAbsolutePath();
      }
      if (binDir.lastIndexOf(File.separatorChar) != (binDir.length() - 1))
      {
        binDir += File.separatorChar;
      }
    }
    return binDir;
  }
  private static String installDir;
  /**
   * Returns the installation directory.
   * @return the installation directory.
   */
  private static String getInstallDir()
  {
    if (installDir == null)
    {
      File f =
        org.opends.quicksetup.Installation.getLocal().getRootDirectory();
      try
      {
        installDir = f.getCanonicalPath();
      }
      catch (Throwable t)
      {
        installDir = f.getAbsolutePath();
      }
      if (installDir.lastIndexOf(File.separatorChar) !=
        (installDir.length() - 1))
      {
        installDir += File.separatorChar;
      }
    }
    return installDir;
  }
  private static ArrayList<String>
  getDsReplicationInitializeEquivalentCommandLine(
      UserData userData, Set<String> baseDNs, ServerDescriptor server)
  {
    ArrayList<String> cmdLine = new ArrayList<String>();
    String cmdName;
    if (Utils.isWindows())
    {
      cmdName = "dsreplication.bat";
    }
    else
    {
      cmdName = "dsreplication";
    }
    String cmdName = getCommandLinePath("dsreplication");
    cmdLine.add(cmdName);
    cmdLine.add("initialize");
@@ -2706,15 +2769,7 @@
  {
    ArrayList<ArrayList<String>> cmdLines = new ArrayList<ArrayList<String>>();
    String cmdName;
    if (Utils.isWindows())
    {
      cmdName = "dsconfig.bat";
    }
    else
    {
      cmdName = "dsconfig";
    }
    String cmdName = getCommandLinePath("dsconfig");
    ArrayList<String> connectionArgs = new ArrayList<String>();
    connectionArgs.add("--hostName");