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

Gaetan Boismal
09.41.2015 60ffb9a7138362d45f6d3f0c2aebb123d5ee3b1d
OPENDJ-1714 (CR-6595) UI setup backend type choice

* Installer.java
** Remove temparary OPENDJ-1927 fix

* DataOptionsPanel.java
** Add a combo box to allow user to select a backend type (default value is JE)

* Utils.java
** Update UI installation review and equivalent setup command

* FieldName.java
** Add the backend type field name
5 files modified
93 ■■■■ changed files
opendj-sdk/opendj-server-legacy/src/main/java/org/opends/quicksetup/installer/Installer.java 9 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj-server-legacy/src/main/java/org/opends/quicksetup/installer/ui/DataOptionsPanel.java 57 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj-server-legacy/src/main/java/org/opends/quicksetup/ui/FieldName.java 3 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj-server-legacy/src/main/java/org/opends/quicksetup/util/Utils.java 17 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj-server-legacy/src/messages/org/opends/messages/quickSetup.properties 7 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj-server-legacy/src/main/java/org/opends/quicksetup/installer/Installer.java
@@ -122,7 +122,6 @@
import org.opends.quicksetup.util.FileManager;
import org.opends.quicksetup.util.IncompatibleVersionException;
import org.opends.quicksetup.util.Utils;
import org.opends.server.tools.BackendTypeHelper;
import org.opends.server.util.CertificateManager;
import org.opends.server.util.DynamicConstants;
import org.opends.server.util.SetupUtils;
@@ -873,13 +872,6 @@
    argList.add("-w");
    argList.add(getUserData().getDirectoryManagerPwd());
    //FIXME Remove once graphical setup will allow backend type choice
    if (getUserData().getBackendType() == null)
    {
      BackendTypeHelper helper = new BackendTypeHelper();
      getUserData().setBackendType(helper.getBackendTypeNames().get(0));
    }
    argList.add("--" + OPTION_LONG_BACKEND_TYPE);
    argList.add(getUserData().getBackendType());
@@ -3748,6 +3740,7 @@
    if (dataOptions != null)
    {
      getUserData().setBackendType(ui.getFieldStringValue(FieldName.BACKEND_TYPE));
      getUserData().setNewSuffixOptions(dataOptions);
    }
opendj-sdk/opendj-server-legacy/src/main/java/org/opends/quicksetup/installer/ui/DataOptionsPanel.java
@@ -40,7 +40,9 @@
import javax.swing.Box;
import javax.swing.ButtonGroup;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
@@ -58,6 +60,7 @@
import org.opends.quicksetup.ui.QuickSetupStepPanel;
import org.opends.quicksetup.ui.UIFactory;
import org.opends.quicksetup.ui.Utilities;
import org.opends.server.tools.BackendTypeHelper;
/**
 * This is the panel that contains the Data Options: the suffix dn, whether to
@@ -80,6 +83,8 @@
  private JButton ldifBrowseButton;
  private JComboBox backendTypeComboBox;
  /**
   * Constructor of the panel.
   *
@@ -91,6 +96,7 @@
    super(application);
    this.defaultUserData = application.getUserData();
    populateComponentMaps();
    createBackendTypeComboBox();
    addDocumentListeners();
    addFocusListeners();
    addActionListeners();
@@ -108,7 +114,10 @@
          return type;
        }
      }
    }
    else if (FieldName.BACKEND_TYPE == fieldName)
    {
      return backendTypeComboBox.getSelectedItem().toString();
    }
    else
    {
@@ -151,6 +160,7 @@
    GridBagConstraints gbc = new GridBagConstraints();
    // Add the server location widgets
    addBackendTypeSection(panel, gbc);
    addBaseDNSection(panel, gbc);
    int h1 = getLabel(FieldName.DATA_OPTIONS).getPreferredSize().height;
@@ -175,14 +185,14 @@
    return panel;
  }
  private void addBaseDNSection(final JPanel panel, final GridBagConstraints gbc)
  private void addBackendTypeSection(final JPanel panel, final GridBagConstraints gbc)
  {
    gbc.gridwidth = GridBagConstraints.RELATIVE;
    gbc.weightx = 0.0;
    gbc.insets.top = 0;
    gbc.insets.left = 0;
    gbc.anchor = GridBagConstraints.WEST;
    panel.add(getLabel(FieldName.DIRECTORY_BASE_DN), gbc);
    panel.add(getLabel(FieldName.BACKEND_TYPE), gbc);
    JPanel auxPanel = new JPanel(new GridBagLayout());
    auxPanel.setOpaque(false);
@@ -190,7 +200,7 @@
    gbc.insets = UIFactory.getEmptyInsets();
    gbc.fill = GridBagConstraints.HORIZONTAL;
    gbc.weightx = 0.0;
    auxPanel.add(getField(FieldName.DIRECTORY_BASE_DN), gbc);
    auxPanel.add(backendTypeComboBox, gbc);
    gbc.gridwidth = GridBagConstraints.REMAINDER;
    gbc.insets.left = UIFactory.LEFT_INSET_BROWSE;
@@ -203,6 +213,35 @@
    gbc.insets.left = UIFactory.LEFT_INSET_PRIMARY_FIELD;
    gbc.gridwidth = GridBagConstraints.REMAINDER;
    panel.add(auxPanel, gbc);
  }
  private void addBaseDNSection(final JPanel panel, final GridBagConstraints gbc)
  {
    gbc.gridwidth = GridBagConstraints.RELATIVE;
    gbc.weightx = 0.0;
    gbc.insets.top = UIFactory.TOP_INSET_PRIMARY_FIELD;
    gbc.insets.left = 0;
    gbc.anchor = GridBagConstraints.WEST;
    panel.add(getLabel(FieldName.DIRECTORY_BASE_DN), gbc);
    final JPanel auxPanel = new JPanel(new GridBagLayout());
    auxPanel.setOpaque(false);
    gbc.weightx = 1.0;
    gbc.fill = GridBagConstraints.HORIZONTAL;
    gbc.insets.top = UIFactory.TOP_INSET_PRIMARY_FIELD;
    gbc.insets.left = UIFactory.LEFT_INSET_PRIMARY_FIELD;
    gbc.gridwidth = GridBagConstraints.REMAINDER;
    panel.add(auxPanel, gbc);
    gbc.gridwidth = GridBagConstraints.RELATIVE;
    gbc.insets = UIFactory.getEmptyInsets();
    gbc.weightx = 0.0;
    auxPanel.add(getField(FieldName.DIRECTORY_BASE_DN), gbc);
    gbc.gridwidth = GridBagConstraints.REMAINDER;
    gbc.weightx = 1.0;
    gbc.fill = GridBagConstraints.HORIZONTAL;
    auxPanel.add(Box.createHorizontalGlue(), gbc);
    gbc.gridwidth = GridBagConstraints.RELATIVE;
    gbc.weightx = 0.0;
@@ -394,10 +433,20 @@
    final JLabel dataLabel = UIFactory.makeJLabel(UIFactory.IconType.NO_ICON, INFO_DIRECTORY_DATA_LABEL.get(),
                                                  UIFactory.TextStyle.PRIMARY_FIELD_VALID);
    hmLabels.put(FieldName.DATA_OPTIONS, dataLabel);
    final JLabel backendTypeLabel = UIFactory.makeJLabel(UIFactory.IconType.NO_ICON, INFO_BACKEND_TYPE_LABEL.get(),
                                                         UIFactory.TextStyle.PRIMARY_FIELD_VALID);
    hmLabels.put(FieldName.BACKEND_TYPE, backendTypeLabel);
    createDirectoryDataChoiceRadioButton(dataLabel);
    checkEnablingState();
  }
  private void createBackendTypeComboBox()
  {
    final BackendTypeHelper backendTypeHelper = new BackendTypeHelper();
    backendTypeComboBox = new JComboBox(new DefaultComboBoxModel(backendTypeHelper.getBackendTypeNames().toArray()));
  }
  private void createDirectoryDataChoiceRadioButton(final JLabel dataLabel)
  {
    final JRadioButton createBaseEntryRB = UIFactory.makeJRadioButton(
opendj-sdk/opendj-server-legacy/src/main/java/org/opends/quicksetup/ui/FieldName.java
@@ -45,6 +45,9 @@
  /** The value associated with this is a data options.Type. */
  DATA_OPTIONS,
  /** The value associated with this is a String. **/
  BACKEND_TYPE,
  /** The value associated with this is a String. */
  DIRECTORY_BASE_DN,
opendj-sdk/opendj-server-legacy/src/main/java/org/opends/quicksetup/util/Utils.java
@@ -60,6 +60,8 @@
import org.opends.server.util.SetupUtils;
import org.opends.server.util.StaticUtils;
import com.forgerock.opendj.cli.ArgumentConstants;
import static com.forgerock.opendj.cli.Utils.*;
import static com.forgerock.opendj.util.OperatingSystem.*;
@@ -1379,6 +1381,7 @@
    final DataReplicationOptions repl = userInstallData.getReplicationOptions();
    final SuffixesToReplicateOptions suf = userInstallData.getSuffixesToReplicateOptions();
    final String backendType = userInstallData.getBackendType();
    boolean createSuffix = repl.getType() == DataReplicationOptions.Type.FIRST_IN_TOPOLOGY
        || repl.getType() == DataReplicationOptions.Type.STANDALONE
@@ -1417,11 +1420,12 @@
      }
      else if (options.getBaseDns().size() > 1)
      {
        msg = INFO_REVIEW_CREATE_SUFFIX.get(joinAsString(Constants.LINE_SEPARATOR, options.getBaseDns()), arg2);
        msg = INFO_REVIEW_CREATE_SUFFIX.get(
            backendType, joinAsString(Constants.LINE_SEPARATOR, options.getBaseDns()), arg2);
      }
      else
      {
        msg = INFO_REVIEW_CREATE_SUFFIX.get(options.getBaseDns().getFirst(), arg2);
        msg = INFO_REVIEW_CREATE_SUFFIX.get(backendType, options.getBaseDns().getFirst(), arg2);
      }
    }
    else
@@ -1631,7 +1635,14 @@
    cmdLine.add(getInstallDir(userData) + getSetupFilename());
    cmdLine.add("--cli");
    for (final String baseDN : getBaseDNs(userData))
    final List<String> baseDNs = getBaseDNs(userData);
    if (!baseDNs.isEmpty())
    {
      cmdLine.add("--" + ArgumentConstants.OPTION_LONG_BACKEND_TYPE);
      cmdLine.add(userData.getBackendType());
    }
    for (final String baseDN : baseDNs)
    {
      cmdLine.add("--baseDN");
      cmdLine.add(baseDN);
opendj-sdk/opendj-server-legacy/src/messages/org/opends/messages/quickSetup.properties
@@ -20,7 +20,7 @@
# CDDL HEADER END
#
#      Copyright 2006-2010 Sun Microsystems, Inc.
#      Portions Copyright 2010-2014 ForgeRock AS
#      Portions Copyright 2010-2015 ForgeRock AS
@@ -670,7 +670,7 @@
 replication updates between this server and the other servers.
INFO_RUNTIME_OPTIONS_LABEL=Runtime Options:
INFO_REVIEW_CREATE_BASE_ENTRY_LABEL=Only Create Base Entry (%s)
INFO_REVIEW_CREATE_SUFFIX=Create New Base DN %s.%nBase DN Data: %s
INFO_REVIEW_CREATE_SUFFIX=Backend Type: %s%nCreate New Base DN %s%nBase DN Data: %s
INFO_REVIEW_CREATE_NO_SUFFIX=Do not Create a Base DN
INFO_REVIEW_IMPORT_AUTOMATICALLY_GENERATED=Import Automatically-Generated \
 Data (%s Entries)
@@ -984,3 +984,6 @@
 volume of data. It is recommended to increase the maximum memory allowed for \
 the server runtime.<br><br>Check the documentation for more information \
 about how to tune the server.
INFO_BACKEND_TYPE_LABEL=Backend Type:
INFO_BACKEND_TYPE_TOOLTIP=Select the type of backend in which you want to \
 store your data