From 32c6de9ab11bbfbea1c05401abf73454961418c9 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Fri, 30 Oct 2009 22:51:47 +0000
Subject: [PATCH] Fix for issue 4326 (Allow setup of a Server without Data suffix)
---
opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/InstallerHelper.java | 26 ++
opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/Installer.java | 175 +++++++-----
opendj-sdk/opends/build.xml | 2
opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/ui/QuickSetupStepPanel.java | 93 -------
opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/offline/OfflineInstaller.java | 2
opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/ui/ServerSettingsPanel.java | 8
opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/ui/UIFactory.java | 21 +
opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/util/Utils.java | 190 ++++++++++++++
opendj-sdk/opends/src/server/org/opends/server/tools/InstallDSArgumentParser.java | 18 +
opendj-sdk/opends/src/messages/messages/admin_tool.properties | 16
opendj-sdk/opends/src/messages/messages/tools.properties | 17
opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/webstart/WebStartInstaller.java | 2
opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/ui/InstallReviewPanel.java | 90 ------
opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/ui/DataOptionsPanel.java | 16 +
opendj-sdk/opends/src/messages/messages/quicksetup.properties | 4
opendj-sdk/opends/src/server/org/opends/server/tools/InstallDS.java | 88 ++++--
16 files changed, 453 insertions(+), 315 deletions(-)
diff --git a/opendj-sdk/opends/build.xml b/opendj-sdk/opends/build.xml
index 9c1896e..cdb865f 100644
--- a/opendj-sdk/opends/build.xml
+++ b/opendj-sdk/opends/build.xml
@@ -32,7 +32,7 @@
</description>
<!-- Build JVM properties -->
- <property name="MEM" value="256M"/>
+ <property name="MEM" value="768M"/>
<!-- Build OpenDMK properties -->
<property file="build.properties"/>
diff --git a/opendj-sdk/opends/src/messages/messages/admin_tool.properties b/opendj-sdk/opends/src/messages/messages/admin_tool.properties
index 9170f10..e7e932b 100644
--- a/opendj-sdk/opends/src/messages/messages/admin_tool.properties
+++ b/opendj-sdk/opends/src/messages/messages/admin_tool.properties
@@ -370,8 +370,8 @@
INFO_UNKNOWN_LABEL=--
INFO_UNINSTALLDS_DESCRIPTION_FORCE=Specifies whether the uninstall should \
continue if there is an error updating references to this server in remote \
- server instances or not. This argument can only be used with the %s no \
- prompt argument.
+ server instances or not. This option can only be used with the %s no \
+ prompt option.
INFO_DESCRIPTION_REFERENCED_HOST=The name of this host (or IP address) as \
it is referenced in remote servers for replication
INFO_UNINSTALLDS_DESCRIPTION_CLI=Specifies to use the command line \
@@ -470,7 +470,7 @@
INFO_DESCRIPTION_REPLICATION_BASEDNS=Base DN of \
the data to be replicated, initialized or for which we want to disable \
replication. Multiple base DN's can be provided by using this option multiple \
- times
+ times. If this option is not provided no base DN will be created
INFO_DESCRIPTION_REPLICATION_ADMIN_UID=User ID of the \
Global Administrator to use to bind to the server. For the '%s' subcommand \
if no Global Administrator was defined previously for none of the server the \
@@ -569,13 +569,13 @@
SEVERE_ERR_REPLICATION_VALID_SUBCOMMAND_NOT_FOUND=Could not find a valid \
subcommand. You must specify a subcommand when using the option %s.
SEVERE_ERR_REPLICATION_STATUS_QUIET=The '%s' subcommand is not compatible with \
- the %s argument.
+ the %s option.
INFO_REPLICATION_SUCCESSFUL=The operation has been successfully completed
INFO_REPLICATION_SUCCESSFUL_NOP=The operation has been successfully completed, \
but no action was required
MILD_ERR_REPLICATION_USER_CANCELLED=User cancelled the operation
SEVERE_ERR_REPLICATION_NO_MESSAGE=
-SEVERE_ERR_UNINSTALL_FORCE_REQUIRES_NO_PROMPT=The %s argument only can be \
+SEVERE_ERR_UNINSTALL_FORCE_REQUIRES_NO_PROMPT=The %s option only can be \
used when %s has been specified
INFO_REPLICATION_ENABLE_ADMINISTRATOR_MUST_BE_CREATED=Global Administrator \
must be created.%nYou must provide the credentials of the Global \
@@ -679,7 +679,7 @@
INFO_REPLICATION_DISABLE_ALL_SUFFIXES_KEEP_REPLICATION_SERVER=You have chosen \
to disable replication on all the replicated base DN's of '%s'. If you want \
also the replication server (changelog and replication port) to be disabled \
- you must also specify the '--%s' or '--%s' argument.
+ you must also specify the '--%s' or '--%s' option.
INFO_REPLICATION_DISABLE_ALL_SUFFIXES_DISABLE_REPLICATION_SERVER=You have \
chosen to disable all the replicated base DN's on the server '%s'. Do you \
want to disable also the replication port '%d'?
@@ -946,12 +946,12 @@
INFO_REPLICATION_POST_ENABLE_INFO=Replication has been successfully enabled. \
Note that for replication to work you must initialize the contents of the \
base DN's that are being replicated (use %s %s to do so).
-SEVERE_ERR_REPLICATION_ERROR_MISSING_NON_INTERACTIVE_ARG=The argument \
+SEVERE_ERR_REPLICATION_ERROR_MISSING_NON_INTERACTIVE_ARG=The option \
"--%s" must be specified when this application is used non-interactively
INFO_REPLICATION_NON_INTERACTIVE=The equivalent non-interactive command-line \
is:%n%s
INFO_REPLICATION_DESCRIPTION_DISPLAY_EQUIVALENT=Display the equivalent \
- non-interactive argument in the standard output when this command is run in \
+ non-interactive option in the standard output when this command is run in \
interactive mode
INFO_REPLICATION_DESCRIPTION_EQUIVALENT_COMMAND_FILE_PATH=The full path to \
the file where the equivalent non-interactive commands will be written when \
diff --git a/opendj-sdk/opends/src/messages/messages/quicksetup.properties b/opendj-sdk/opends/src/messages/messages/quicksetup.properties
index c85a662..0c6f122 100644
--- a/opendj-sdk/opends/src/messages/messages/quicksetup.properties
+++ b/opendj-sdk/opends/src/messages/messages/quicksetup.properties
@@ -58,6 +58,7 @@
INFO_BASE_DN_IS_CONFIGURATION_DN=The provided Directory Base DN is used for \
storing the server configuration data. You must specify a different DN.
INFO_BASE_DN_LABEL=Directory Base DN:
+INFO_NO_BASE_DN_INLINE_HELP=Leave empty if you do not want to create a base DN.
INFO_BASE_DN_TOOLTIP=Enter the DN of the top entry where your data will be \
stored
INFO_BROWSE_BUTTON_LABEL=Browse...
@@ -596,6 +597,8 @@
INFO_INSTALLSTATUS_SERVERRUNNING=Is currently running on port %s
# Only translate if the color is specific to the local
INFO_INSTRUCTIONS_COLOR=000,000,000
+# Only translate if the color is specific to the local
+INFO_INLINE_HELP_COLOR=000,000,000
INFO_INVALID_CHAR_IN_PATH=The path contains the character "%s" which is not \
allowed to install the server.
INFO_INVALID_NUMBER_ENTRIES_RANGE=The number of user entries to generate \
@@ -866,6 +869,7 @@
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_SUFFIXES=Create New Base DNs:%n%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)
INFO_REVIEW_IMPORT_LDIF=Import Data from LDIF File (%s)
diff --git a/opendj-sdk/opends/src/messages/messages/tools.properties b/opendj-sdk/opends/src/messages/messages/tools.properties
index 88029ec..f1f2763 100644
--- a/opendj-sdk/opends/src/messages/messages/tools.properties
+++ b/opendj-sdk/opends/src/messages/messages/tools.properties
@@ -889,8 +889,7 @@
in configuration file %s: %s
SEVERE_ERR_INSTALLDS_CANNOT_PARSE_DN_503=An error occurred while attempting \
to parse the string "%s" as a valid DN: %s
-INFO_INSTALLDS_PROMPT_BASEDN_504=What do you wish to use as the base DN for \
- the directory data?
+INFO_INSTALLDS_PROMPT_BASEDN_504=Provide the base DN for the directory data:
INFO_INSTALLDS_PROMPT_IMPORT_505=Do you wish to populate the directory \
database with information from an existing LDIF file?
INFO_INSTALLDS_PROMPT_IMPORT_FILE_506=Please specify the path to the LDIF \
@@ -2522,9 +2521,9 @@
INFO_ENCPW_DESCRIPTION_INPUT_PW_1690=The password to encode or to compare \
against an encoded password is interactively asked to the user
-INFO_ENCPW_INPUT_PWD_1_1691=Please enter the password :
-INFO_ENCPW_INPUT_PWD_2_1692=Please renter the password:
-SEVERE_ERR_ENCPW_NOT_SAME_PW_1693=Provided passwords don't matched
+INFO_ENCPW_INPUT_PWD_1_1691=Please enter the password :
+INFO_ENCPW_INPUT_PWD_2_1692=Please renter the password:
+SEVERE_ERR_ENCPW_NOT_SAME_PW_1693=Provided passwords don't matched
SEVERE_ERR_ENCPW_CANNOT_READ_PW_1694=Cannot read password from the input: %s
INFO_REBUILDINDEX_DESCRIPTION_REBUILD_ALL_1695=Rebuild all indexes, including \
any DN2ID, DN2URI, VLV and extensible indexes. Cannot be used \
@@ -2534,5 +2533,11 @@
for index scratch files during index rebuilding
SEVERE_ERR_REBUILDINDEX_REBUILD_ALL_ERROR_1699=Index "-i" option cannot be \
specified with the "--rebuildAll" option
-INFO_DESCRIPTION_SUBENTRIES_1700=Use subentries control to specify that \
+INFO_INSTALLDS_PROVIDE_BASE_DN_PROMPT_1700=Do you want to create base DNs in \
+ the server?
+SEVERE_ERR_INSTALLDS_NO_BASE_DN_AND_CONFLICTING_ARG_1701=You have specified \
+ not to create a base DN. If no base DN is to be created you cannot specify \
+ argument '%s'
+INFO_DESCRIPTION_SUBENTRIES_1702=Use subentries control to specify that \
subentries are visible and normal entries are not
+
diff --git a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/Installer.java b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/Installer.java
index 6d5af6f..89b4b22 100644
--- a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/Installer.java
+++ b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/Installer.java
@@ -973,6 +973,13 @@
ReturnCode.CONFIGURATION_ERROR,
INFO_ERROR_CONFIGURING.get(), null);
}
+ else
+ {
+ if (getUserData().getNewSuffixOptions().getBaseDns().isEmpty())
+ {
+ helper.deleteBackend(getBackendName());
+ }
+ }
} catch (ApplicationException aex)
{
ae = aex;
@@ -1582,8 +1589,16 @@
* NOTE: this method assumes that the server is running.
* @throws ApplicationException if something goes wrong.
*/
- protected void createReplicatedBackends() throws ApplicationException
+ protected void createReplicatedBackendsIfRequired()
+ throws ApplicationException
{
+ if (getUserData().getReplicationOptions().getType()
+ == DataReplicationOptions.Type.FIRST_IN_TOPOLOGY &&
+ getUserData().getNewSuffixOptions().getBaseDns().isEmpty())
+ {
+ // There is nothing to do.
+ return;
+ }
notifyListeners(getFormattedWithPoints(
INFO_PROGRESS_CREATING_REPLICATED_BACKENDS.get()));
// The keys are the backend IDs and the values the list of base DNs.
@@ -3902,8 +3917,8 @@
String baseDn = qs.getFieldStringValue(FieldName.DIRECTORY_BASE_DN);
if ((baseDn == null) || (baseDn.trim().length() == 0))
{
- errorMsgs.add(INFO_EMPTY_BASE_DN.get());
- qs.displayFieldInvalid(FieldName.DIRECTORY_BASE_DN, true);
+ // Do nothing, the user does not want to provide a base DN.
+ baseDn = "";
} else if (!isDn(baseDn))
{
errorMsgs.add(INFO_NOT_A_BASE_DN.get());
@@ -3918,93 +3933,101 @@
validBaseDn = true;
}
- // Check the data options
- NewSuffixOptions.Type type =
+ if (baseDn.equals(""))
+ {
+ LinkedList<String> baseDns = new LinkedList<String>();
+ dataOptions = NewSuffixOptions.createEmpty(baseDns);
+ }
+ else
+ {
+ // Check the data options
+ NewSuffixOptions.Type type =
(NewSuffixOptions.Type) qs.getFieldValue(FieldName.DATA_OPTIONS);
- switch (type)
- {
- case IMPORT_FROM_LDIF_FILE:
- String ldifPath = qs.getFieldStringValue(FieldName.LDIF_PATH);
- if ((ldifPath == null) || (ldifPath.trim().equals("")))
+ switch (type)
{
- errorMsgs.add(INFO_NO_LDIF_PATH.get());
- qs.displayFieldInvalid(FieldName.LDIF_PATH, true);
- } else if (!fileExists(ldifPath))
- {
- errorMsgs.add(INFO_LDIF_FILE_DOES_NOT_EXIST.get());
- qs.displayFieldInvalid(FieldName.LDIF_PATH, true);
- } else if (validBaseDn)
- {
- LinkedList<String> baseDns = new LinkedList<String>();
- baseDns.add(baseDn);
- LinkedList<String> ldifPaths = new LinkedList<String>();
- ldifPaths.add(ldifPath);
-
- dataOptions = NewSuffixOptions.createImportFromLDIF(baseDns, ldifPaths,
- null, null);
- qs.displayFieldInvalid(FieldName.LDIF_PATH, false);
- }
- break;
-
- case IMPORT_AUTOMATICALLY_GENERATED_DATA:
- // variable used to know if everything went ok during these
- // checks
- int startErrors = errorMsgs.size();
-
- // Check the number of entries
- String nEntries = qs.getFieldStringValue(FieldName.NUMBER_ENTRIES);
- if ((nEntries == null) || (nEntries.trim().equals("")))
- {
- errorMsgs.add(INFO_NO_NUMBER_ENTRIES.get());
- qs.displayFieldInvalid(FieldName.NUMBER_ENTRIES, true);
- } else
- {
- boolean nEntriesValid = false;
- try
+ case IMPORT_FROM_LDIF_FILE:
+ String ldifPath = qs.getFieldStringValue(FieldName.LDIF_PATH);
+ if ((ldifPath == null) || (ldifPath.trim().equals("")))
{
- int n = Integer.parseInt(nEntries);
-
- nEntriesValid = n >= MIN_NUMBER_ENTRIES && n <= MAX_NUMBER_ENTRIES;
- } catch (NumberFormatException nfe)
+ errorMsgs.add(INFO_NO_LDIF_PATH.get());
+ qs.displayFieldInvalid(FieldName.LDIF_PATH, true);
+ } else if (!fileExists(ldifPath))
{
+ errorMsgs.add(INFO_LDIF_FILE_DOES_NOT_EXIST.get());
+ qs.displayFieldInvalid(FieldName.LDIF_PATH, true);
+ } else if (validBaseDn)
+ {
+ LinkedList<String> baseDns = new LinkedList<String>();
+ baseDns.add(baseDn);
+ LinkedList<String> ldifPaths = new LinkedList<String>();
+ ldifPaths.add(ldifPath);
+
+ dataOptions = NewSuffixOptions.createImportFromLDIF(
+ baseDns, ldifPaths, null, null);
+ qs.displayFieldInvalid(FieldName.LDIF_PATH, false);
}
+ break;
- if (!nEntriesValid)
+ case IMPORT_AUTOMATICALLY_GENERATED_DATA:
+ // variable used to know if everything went ok during these
+ // checks
+ int startErrors = errorMsgs.size();
+
+ // Check the number of entries
+ String nEntries = qs.getFieldStringValue(FieldName.NUMBER_ENTRIES);
+ if ((nEntries == null) || (nEntries.trim().equals("")))
{
- errorMsgs.add(INFO_INVALID_NUMBER_ENTRIES_RANGE.get(
- String.valueOf(MIN_NUMBER_ENTRIES),
- String.valueOf(MAX_NUMBER_ENTRIES)));
+ errorMsgs.add(INFO_NO_NUMBER_ENTRIES.get());
qs.displayFieldInvalid(FieldName.NUMBER_ENTRIES, true);
} else
{
- qs.displayFieldInvalid(FieldName.NUMBER_ENTRIES, false);
- }
- }
- if (startErrors == errorMsgs.size() && validBaseDn)
- {
- // No validation errors
- LinkedList<String> baseDns = new LinkedList<String>();
- baseDns.add(baseDn);
- dataOptions = NewSuffixOptions.createAutomaticallyGenerated(baseDns,
- Integer.parseInt(nEntries));
- }
- break;
+ boolean nEntriesValid = false;
+ try
+ {
+ int n = Integer.parseInt(nEntries);
- default:
- qs.displayFieldInvalid(FieldName.LDIF_PATH, false);
- qs.displayFieldInvalid(FieldName.NUMBER_ENTRIES, false);
- if (validBaseDn)
- {
- LinkedList<String> baseDns = new LinkedList<String>();
- baseDns.add(baseDn);
- if (type == NewSuffixOptions.Type.CREATE_BASE_ENTRY)
- {
- dataOptions = NewSuffixOptions.createBaseEntry(baseDns);
+ nEntriesValid = n >= MIN_NUMBER_ENTRIES && n <= MAX_NUMBER_ENTRIES;
+ } catch (NumberFormatException nfe)
+ {
+ }
+
+ if (!nEntriesValid)
+ {
+ errorMsgs.add(INFO_INVALID_NUMBER_ENTRIES_RANGE.get(
+ String.valueOf(MIN_NUMBER_ENTRIES),
+ String.valueOf(MAX_NUMBER_ENTRIES)));
+ qs.displayFieldInvalid(FieldName.NUMBER_ENTRIES, true);
+ } else
+ {
+ qs.displayFieldInvalid(FieldName.NUMBER_ENTRIES, false);
+ }
}
- else
+ if (startErrors == errorMsgs.size() && validBaseDn)
{
- dataOptions = NewSuffixOptions.createEmpty(baseDns);
+ // No validation errors
+ LinkedList<String> baseDns = new LinkedList<String>();
+ baseDns.add(baseDn);
+ dataOptions = NewSuffixOptions.createAutomaticallyGenerated(baseDns,
+ Integer.parseInt(nEntries));
+ }
+ break;
+
+ default:
+ qs.displayFieldInvalid(FieldName.LDIF_PATH, false);
+ qs.displayFieldInvalid(FieldName.NUMBER_ENTRIES, false);
+ if (validBaseDn)
+ {
+ LinkedList<String> baseDns = new LinkedList<String>();
+ baseDns.add(baseDn);
+ if (type == NewSuffixOptions.Type.CREATE_BASE_ENTRY)
+ {
+ dataOptions = NewSuffixOptions.createBaseEntry(baseDns);
+ }
+ else
+ {
+ dataOptions = NewSuffixOptions.createEmpty(baseDns);
+ }
}
}
}
diff --git a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/InstallerHelper.java b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/InstallerHelper.java
index 9c42752..ba0032c 100644
--- a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/InstallerHelper.java
+++ b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/InstallerHelper.java
@@ -63,6 +63,8 @@
import org.opends.server.admin.std.client.*;
import org.opends.server.admin.std.meta.*;
import org.opends.server.backends.task.TaskState;
+import org.opends.server.core.DirectoryServer;
+import org.opends.guitools.controlpanel.util.Utilities;
import org.opends.messages.CoreMessages;
import org.opends.messages.JebMessages;
import org.opends.messages.ReplicationMessages;
@@ -77,6 +79,7 @@
import org.opends.server.types.Entry;
import org.opends.server.types.ExistingFileBehavior;
import org.opends.server.types.LDIFExportConfig;
+import org.opends.server.types.OpenDsException;
import org.opends.server.util.LDIFException;
import org.opends.server.util.LDIFWriter;
import org.opends.server.util.SetupUtils;
@@ -337,6 +340,29 @@
}
}
+ /**
+ * Deletes a backend on the server. It assumes the server is stopped.
+ * @param backendName the name of the backend to be deleted.
+ * @throws ApplicationException if something goes wrong.
+ */
+ public void deleteBackend(String backendName)
+ throws ApplicationException
+ {
+ try
+ {
+ // Read the configuration file.
+ String dn = Utilities.getRDNString("ds-cfg-backend-id",
+ backendName)+",cn=Backends,cn=config";
+ Utilities.deleteConfigSubtree(
+ DirectoryServer.getConfigHandler(), DN.decode(dn));
+ }
+ catch (OpenDsException ode)
+ {
+ throw new ApplicationException(
+ ReturnCode.CONFIGURATION_ERROR, ode.getMessageObject(), ode);
+ }
+ }
+
/**
* Creates a local database backend on the server.
diff --git a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/offline/OfflineInstaller.java b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/offline/OfflineInstaller.java
index dcd0849..16d5bbd 100644
--- a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/offline/OfflineInstaller.java
+++ b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/offline/OfflineInstaller.java
@@ -181,7 +181,7 @@
notifyListeners(getTaskSeparator());
}
setCurrentProgressStep(InstallProgressStep.CONFIGURING_REPLICATION);
- createReplicatedBackends();
+ createReplicatedBackendsIfRequired();
configureReplication();
checkAbort();
}
diff --git a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/ui/DataOptionsPanel.java b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/ui/DataOptionsPanel.java
index eec21f4..a0e22a0 100644
--- a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/ui/DataOptionsPanel.java
+++ b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/ui/DataOptionsPanel.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Copyright 2006-2008 Sun Microsystems, Inc.
+ * Copyright 2006-2009 Sun Microsystems, Inc.
*/
package org.opends.quicksetup.installer.ui;
@@ -200,6 +200,20 @@
gbc.gridwidth = GridBagConstraints.REMAINDER;
panel.add(auxPanel, gbc);
+ gbc.gridwidth = GridBagConstraints.RELATIVE;
+ gbc.weightx = 0.0;
+ gbc.insets.top = 0;
+ gbc.insets.left = 0;
+ gbc.anchor = GridBagConstraints.WEST;
+ panel.add(Box.createHorizontalGlue(), gbc);
+
+ gbc.insets.top = 3;
+ gbc.insets.left = UIFactory.LEFT_INSET_PRIMARY_FIELD;
+ gbc.gridwidth = GridBagConstraints.REMAINDER;
+ panel.add(UIFactory.makeJLabel(UIFactory.IconType.NO_ICON,
+ INFO_NO_BASE_DN_INLINE_HELP.get(),
+ UIFactory.TextStyle.INLINE_HELP), gbc);
+
int h1 = getLabel(FieldName.DATA_OPTIONS).getPreferredSize().height;
int h2 = getRadioButton(NewSuffixOptions.Type.CREATE_BASE_ENTRY).
getPreferredSize().height;
diff --git a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/ui/InstallReviewPanel.java b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/ui/InstallReviewPanel.java
index 734cca7..0e246b4 100644
--- a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/ui/InstallReviewPanel.java
+++ b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/ui/InstallReviewPanel.java
@@ -32,12 +32,9 @@
import static org.opends.messages.QuickSetupMessages.*;
import org.opends.admin.ads.ServerDescriptor;
-import org.opends.admin.ads.SuffixDescriptor;
-import org.opends.quicksetup.Constants;
import org.opends.quicksetup.UserData;
import org.opends.quicksetup.installer.AuthenticationData;
import org.opends.quicksetup.installer.DataReplicationOptions;
-import org.opends.quicksetup.installer.NewSuffixOptions;
import org.opends.quicksetup.installer.SuffixesToReplicateOptions;
import org.opends.quicksetup.ui.*;
import org.opends.quicksetup.util.Utils;
@@ -49,7 +46,6 @@
import java.awt.event.ActionListener;
import java.util.HashMap;
import java.util.Map;
-import java.util.Set;
import java.util.TreeSet;
/**
@@ -100,10 +96,10 @@
setFieldValue(FieldName.ADMIN_CONNECTOR_PORT,
String.valueOf(userData.getAdminConnectorPort()));
setFieldValue(FieldName.SECURITY_OPTIONS,
- getSecurityOptionsString(userData.getSecurityOptions(), false));
+ Utils.getSecurityOptionsString(userData.getSecurityOptions(), false));
setFieldValue(FieldName.DIRECTORY_MANAGER_DN, userData
.getDirectoryManagerDn());
- setFieldValue(FieldName.DATA_OPTIONS, getDataDisplayString(userData));
+ setFieldValue(FieldName.DATA_OPTIONS, Utils.getDataDisplayString(userData));
if (userData.mustCreateAdministrator())
{
setFieldValue(FieldName.GLOBAL_ADMINISTRATOR_UID,
@@ -275,88 +271,6 @@
getField(fieldName).setText(value);
}
- /**
- * Returns the localized string describing the DataOptions chosen by the user.
- * @param userInstallData the DataOptions of the user.
- * @return the localized string describing the DataOptions chosen by the user.
- */
- public static String getDataDisplayString(UserData userInstallData)
- {
- Message msg;
-
- boolean createSuffix = false;
-
- DataReplicationOptions repl =
- userInstallData.getReplicationOptions();
-
- SuffixesToReplicateOptions suf =
- userInstallData.getSuffixesToReplicateOptions();
-
- createSuffix =
- repl.getType() == DataReplicationOptions.Type.FIRST_IN_TOPOLOGY ||
- repl.getType() == DataReplicationOptions.Type.STANDALONE ||
- suf.getType() == SuffixesToReplicateOptions.Type.NEW_SUFFIX_IN_TOPOLOGY;
-
- if (createSuffix)
- {
- Message arg2;
-
- NewSuffixOptions options = userInstallData.getNewSuffixOptions();
-
- switch (options.getType())
- {
- case CREATE_BASE_ENTRY:
- arg2 = INFO_REVIEW_CREATE_BASE_ENTRY_LABEL.get(
- options.getBaseDns().getFirst());
-
- break;
-
- case LEAVE_DATABASE_EMPTY:
- arg2 = INFO_REVIEW_LEAVE_DATABASE_EMPTY_LABEL.get();
- break;
-
- case IMPORT_FROM_LDIF_FILE:
- arg2 = INFO_REVIEW_IMPORT_LDIF.get(options.getLDIFPaths().getFirst());
- break;
-
- case IMPORT_AUTOMATICALLY_GENERATED_DATA:
- arg2 = INFO_REVIEW_IMPORT_AUTOMATICALLY_GENERATED.get(
- String.valueOf(options.getNumberEntries()));
- break;
-
- default:
- throw new IllegalArgumentException("Unknown type: "+options.getType());
- }
-
- if (options.getBaseDns().size() > 1)
- {
- msg = INFO_REVIEW_CREATE_SUFFIX.get(
- Utils.listToString(options.getBaseDns(), Constants.LINE_SEPARATOR),
- arg2);
- }
- else
- {
- msg = INFO_REVIEW_CREATE_SUFFIX.get(options.getBaseDns().getFirst(),
- arg2);
- }
- }
- else
- {
- StringBuilder buf = new StringBuilder();
- Set<SuffixDescriptor> suffixes = suf.getSuffixes();
- for (SuffixDescriptor suffix : suffixes)
- {
- if (buf.length() > 0)
- {
- buf.append("\n");
- }
- buf.append(suffix.getDN());
- }
- msg = INFO_REVIEW_REPLICATE_SUFFIX.get(buf.toString());
- }
- return msg.toString();
- }
-
/**
* Returns the String representing the replication port configuration.
* @param userInstallData the DataOptions of the user.
diff --git a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/ui/ServerSettingsPanel.java b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/ui/ServerSettingsPanel.java
index 94c5c86..5997c24 100644
--- a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/ui/ServerSettingsPanel.java
+++ b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/ui/ServerSettingsPanel.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Copyright 2006-2008 Sun Microsystems, Inc.
+ * Copyright 2006-2009 Sun Microsystems, Inc.
*/
package org.opends.quicksetup.installer.ui;
@@ -433,7 +433,8 @@
break;
case SECURITY_OPTIONS:
- value = getSecurityOptionsString(defaultUserData.getSecurityOptions(),
+ value = Utils.getSecurityOptionsString(
+ defaultUserData.getSecurityOptions(),
true);
break;
@@ -597,7 +598,8 @@
{
securityOptions =
getConfigureSecureAccessDialog().getSecurityOptions();
- lSecurity.setText(getSecurityOptionsString(securityOptions, true));
+ lSecurity.setText(
+ Utils.getSecurityOptionsString(securityOptions, true));
}
}
});
diff --git a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/webstart/WebStartInstaller.java b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/webstart/WebStartInstaller.java
index fc5cf61..f858842 100644
--- a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/webstart/WebStartInstaller.java
+++ b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/webstart/WebStartInstaller.java
@@ -224,7 +224,7 @@
notifyListeners(getTaskSeparator());
}
setCurrentProgressStep(InstallProgressStep.CONFIGURING_REPLICATION);
- createReplicatedBackends();
+ createReplicatedBackendsIfRequired();
configureReplication();
checkAbort();
}
diff --git a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/ui/QuickSetupStepPanel.java b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/ui/QuickSetupStepPanel.java
index 4eeeb49..4e3ed16 100644
--- a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/ui/QuickSetupStepPanel.java
+++ b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/ui/QuickSetupStepPanel.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Copyright 2006-2008 Sun Microsystems, Inc.
+ * Copyright 2006-2009 Sun Microsystems, Inc.
*/
package org.opends.quicksetup.ui;
@@ -44,9 +44,7 @@
import org.opends.quicksetup.event.ButtonActionListener;
import org.opends.quicksetup.event.ButtonEvent;
import org.opends.quicksetup.ProgressDescriptor;
-import org.opends.quicksetup.SecurityOptions;
import org.opends.quicksetup.UserData;
-import org.opends.quicksetup.Constants;
import org.opends.quicksetup.util.HtmlProgressMessageFormatter;
import org.opends.quicksetup.util.ProgressMessageFormatter;
import org.opends.quicksetup.util.URLWorker;
@@ -442,95 +440,6 @@
}
/**
- * Returns a localized String representation of the provided SecurityOptions
- * object.
- * @param ops the SecurityOptions object from which we want to obtain the
- * String representation.
- * @param html whether the resulting String must be in HTML or not.
- * @return a localized String representation of the provided SecurityOptions
- * object.
- */
- public static String getSecurityOptionsString(SecurityOptions ops,
- boolean html)
- {
- StringBuilder buf = new StringBuilder();
-
- if (ops.getCertificateType() ==
- SecurityOptions.CertificateType.NO_CERTIFICATE)
- {
- buf.append(INFO_NO_SECURITY.get());
- }
- else
- {
- if (ops.getEnableStartTLS())
- {
- buf.append(INFO_ENABLE_STARTTLS.get());
- }
- if (ops.getEnableSSL())
- {
- if (buf.length() > 0)
- {
- if (html)
- {
- buf.append(Constants.HTML_LINE_BREAK);
- }
- else
- {
- buf.append("\n");
- }
- }
- buf.append(INFO_ENABLE_SSL.get(String.valueOf(ops.getSslPort())));
- }
- if (html)
- {
- buf.append(Constants.HTML_LINE_BREAK);
- }
- else
- {
- buf.append("\n");
- }
- Message certMsg;
- switch (ops.getCertificateType())
- {
- case SELF_SIGNED_CERTIFICATE:
- certMsg = INFO_SELF_SIGNED_CERTIFICATE.get();
- break;
-
- case JKS:
- certMsg = INFO_JKS_CERTIFICATE.get();
- break;
-
- case JCEKS:
- certMsg = INFO_JCEKS_CERTIFICATE.get();
- break;
-
- case PKCS11:
- certMsg = INFO_PKCS11_CERTIFICATE.get();
- break;
-
- case PKCS12:
- certMsg = INFO_PKCS12_CERTIFICATE.get();
- break;
-
- default:
- throw new IllegalStateException("Unknown certificate options type: "+
- ops.getCertificateType());
- }
- buf.append(certMsg);
- }
-
- if (html)
- {
- return "<html>"+UIFactory.applyFontToHtml(buf.toString(),
- UIFactory.SECONDARY_FIELD_VALID_FONT);
- }
- else
- {
- return buf.toString();
- }
- }
-
- /**
* Creates and returns the title panel.
* @return the title panel.
*/
diff --git a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/ui/UIFactory.java b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/ui/UIFactory.java
index 346cd3d..773cf9d 100644
--- a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/ui/UIFactory.java
+++ b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/ui/UIFactory.java
@@ -336,6 +336,12 @@
getColor(INFO_PASSWORDFIELD_COLOR.get());
/**
+ * Specifies the in-line help text color.
+ */
+ public static final Color INLINE_HELP_COLOR =
+ getColor(INFO_INLINE_HELP_COLOR.get());
+
+ /**
* Specifies the panel border color.
*/
public static final Color PANEL_BORDER_COLOR =
@@ -504,6 +510,12 @@
*/
public static final Font ERROR_DIALOG_FONT = defaultFont;
+ /**
+ * Specifies the font for the text in the in-line help.
+ */
+ public static final Font INLINE_HELP_FONT = defaultFont.deriveFont(
+ (float)(defaultFont.getSize() - 2));
+
private static final String SPAN_CLOSE = "</span>";
private static final String DIV_CLOSE = "</div>";
@@ -709,6 +721,10 @@
*/
INSTRUCTIONS,
/**
+ * In-line help style.
+ */
+ INLINE_HELP,
+ /**
* No text style.
*/
NO_STYLE
@@ -1076,6 +1092,11 @@
l.setForeground(PASSWORDFIELD_COLOR);
break;
+ case INLINE_HELP:
+ l.setFont(INLINE_HELP_FONT);
+ l.setForeground(INLINE_HELP_COLOR);
+ break;
+
case NO_STYLE:
// Do nothing
break;
diff --git a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/util/Utils.java b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/util/Utils.java
index e1e2856..81feb79 100644
--- a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/util/Utils.java
+++ b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/util/Utils.java
@@ -61,9 +61,14 @@
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.TrustManager;
+import org.opends.admin.ads.SuffixDescriptor;
import org.opends.admin.ads.TopologyCacheException;
import org.opends.admin.ads.util.ConnectionUtils;
import org.opends.quicksetup.*;
+import org.opends.quicksetup.installer.DataReplicationOptions;
+import org.opends.quicksetup.installer.NewSuffixOptions;
+import org.opends.quicksetup.installer.SuffixesToReplicateOptions;
+import org.opends.quicksetup.ui.UIFactory;
import org.opends.server.util.SetupUtils;
import org.opends.messages.MessageBuilder;
@@ -1746,9 +1751,9 @@
try
{
LdapName jndiName = new LdapName("cn=monitor");
- NamingEnumeration listeners = ctx.search(jndiName, filter, ctls);
+ NamingEnumeration<?> listeners = ctx.search(jndiName, filter, ctls);
- while(listeners.hasMore())
+ while (listeners.hasMore())
{
SearchResult sr = (SearchResult)listeners.next();
@@ -1919,7 +1924,7 @@
{
try
{
- Class c = Class.forName(Utils.CUSTOMIZATION_CLASS_NAME);
+ Class<?> c = Class.forName(Utils.CUSTOMIZATION_CLASS_NAME);
Object obj = c.newInstance();
value = valueClass.cast(c.getField(fieldName).get(obj));
@@ -1969,6 +1974,185 @@
}
return sb.toString();
}
+
+
+
+ /**
+ * Returns the localized string describing the DataOptions chosen by the user.
+ * @param userInstallData the DataOptions of the user.
+ * @return the localized string describing the DataOptions chosen by the user.
+ */
+ public static String getDataDisplayString(UserData userInstallData)
+ {
+ Message msg;
+
+ boolean createSuffix = false;
+
+ DataReplicationOptions repl =
+ userInstallData.getReplicationOptions();
+
+ SuffixesToReplicateOptions suf =
+ userInstallData.getSuffixesToReplicateOptions();
+
+ createSuffix =
+ repl.getType() == DataReplicationOptions.Type.FIRST_IN_TOPOLOGY ||
+ repl.getType() == DataReplicationOptions.Type.STANDALONE ||
+ suf.getType() == SuffixesToReplicateOptions.Type.NEW_SUFFIX_IN_TOPOLOGY;
+
+ if (createSuffix)
+ {
+ Message arg2;
+
+ NewSuffixOptions options = userInstallData.getNewSuffixOptions();
+
+ switch (options.getType())
+ {
+ case CREATE_BASE_ENTRY:
+ arg2 = INFO_REVIEW_CREATE_BASE_ENTRY_LABEL.get(
+ options.getBaseDns().getFirst());
+
+ break;
+
+ case LEAVE_DATABASE_EMPTY:
+ arg2 = INFO_REVIEW_LEAVE_DATABASE_EMPTY_LABEL.get();
+ break;
+
+ case IMPORT_FROM_LDIF_FILE:
+ arg2 = INFO_REVIEW_IMPORT_LDIF.get(options.getLDIFPaths().getFirst());
+ break;
+
+ case IMPORT_AUTOMATICALLY_GENERATED_DATA:
+ arg2 = INFO_REVIEW_IMPORT_AUTOMATICALLY_GENERATED.get(
+ String.valueOf(options.getNumberEntries()));
+ break;
+
+ default:
+ throw new IllegalArgumentException("Unknown type: "+options.getType());
+ }
+
+ if (options.getBaseDns().isEmpty())
+ {
+ msg = INFO_REVIEW_CREATE_NO_SUFFIX.get();
+ }
+ else if (options.getBaseDns().size() > 1)
+ {
+ msg = INFO_REVIEW_CREATE_SUFFIX.get(
+ Utils.listToString(options.getBaseDns(), Constants.LINE_SEPARATOR),
+ arg2);
+ }
+ else
+ {
+ msg = INFO_REVIEW_CREATE_SUFFIX.get(options.getBaseDns().getFirst(),
+ arg2);
+ }
+ }
+ else
+ {
+ StringBuilder buf = new StringBuilder();
+ Set<SuffixDescriptor> suffixes = suf.getSuffixes();
+ for (SuffixDescriptor suffix : suffixes)
+ {
+ if (buf.length() > 0)
+ {
+ buf.append("\n");
+ }
+ buf.append(suffix.getDN());
+ }
+ msg = INFO_REVIEW_REPLICATE_SUFFIX.get(buf.toString());
+ }
+ return msg.toString();
+ }
+
+
+
+ /**
+ * Returns a localized String representation of the provided SecurityOptions
+ * object.
+ * @param ops the SecurityOptions object from which we want to obtain the
+ * String representation.
+ * @param html whether the resulting String must be in HTML or not.
+ * @return a localized String representation of the provided SecurityOptions
+ * object.
+ */
+ public static String getSecurityOptionsString(SecurityOptions ops,
+ boolean html)
+ {
+ StringBuilder buf = new StringBuilder();
+
+ if (ops.getCertificateType() ==
+ SecurityOptions.CertificateType.NO_CERTIFICATE)
+ {
+ buf.append(INFO_NO_SECURITY.get());
+ }
+ else
+ {
+ if (ops.getEnableStartTLS())
+ {
+ buf.append(INFO_ENABLE_STARTTLS.get());
+ }
+ if (ops.getEnableSSL())
+ {
+ if (buf.length() > 0)
+ {
+ if (html)
+ {
+ buf.append(Constants.HTML_LINE_BREAK);
+ }
+ else
+ {
+ buf.append("\n");
+ }
+ }
+ buf.append(INFO_ENABLE_SSL.get(String.valueOf(ops.getSslPort())));
+ }
+ if (html)
+ {
+ buf.append(Constants.HTML_LINE_BREAK);
+ }
+ else
+ {
+ buf.append("\n");
+ }
+ Message certMsg;
+ switch (ops.getCertificateType())
+ {
+ case SELF_SIGNED_CERTIFICATE:
+ certMsg = INFO_SELF_SIGNED_CERTIFICATE.get();
+ break;
+
+ case JKS:
+ certMsg = INFO_JKS_CERTIFICATE.get();
+ break;
+
+ case JCEKS:
+ certMsg = INFO_JCEKS_CERTIFICATE.get();
+ break;
+
+ case PKCS11:
+ certMsg = INFO_PKCS11_CERTIFICATE.get();
+ break;
+
+ case PKCS12:
+ certMsg = INFO_PKCS12_CERTIFICATE.get();
+ break;
+
+ default:
+ throw new IllegalStateException("Unknown certificate options type: "+
+ ops.getCertificateType());
+ }
+ buf.append(certMsg);
+ }
+
+ if (html)
+ {
+ return "<html>"+UIFactory.applyFontToHtml(buf.toString(),
+ UIFactory.SECONDARY_FIELD_VALID_FONT);
+ }
+ else
+ {
+ return buf.toString();
+ }
+ }
}
/**
diff --git a/opendj-sdk/opends/src/server/org/opends/server/tools/InstallDS.java b/opendj-sdk/opends/src/server/org/opends/server/tools/InstallDS.java
index 86a5a19..08fe1c8 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tools/InstallDS.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tools/InstallDS.java
@@ -59,8 +59,6 @@
import org.opends.quicksetup.event.ProgressUpdateListener;
import org.opends.quicksetup.installer.NewSuffixOptions;
import org.opends.quicksetup.installer.offline.OfflineInstaller;
-import org.opends.quicksetup.installer.ui.InstallReviewPanel;
-import org.opends.quicksetup.ui.QuickSetupStepPanel;
import org.opends.quicksetup.util.IncompatibleVersionException;
import org.opends.quicksetup.util.PlainTextProgressMessageFormatter;
import org.opends.quicksetup.util.Utils;
@@ -771,10 +769,6 @@
// Check the validity of the base DNs
LinkedList<String> baseDNs = argParser.baseDNArg.getValues();
- if (baseDNs.isEmpty())
- {
- baseDNs.add(argParser.baseDNArg.getDefaultValue());
- }
for (String baseDN : baseDNs)
{
try
@@ -1338,10 +1332,39 @@
private void promptIfRequiredForImportData(UserData uData)
throws UserDataException
{
- // Check the validity of the base DNs
- LinkedList<String> baseDNs = promptIfRequiredForDNs(
- argParser.baseDNArg, INFO_INSTALLDS_PROMPT_BASEDN.get(), true);
+ boolean prompt = true;
+ if (!argParser.baseDNArg.isPresent())
+ {
+ try
+ {
+ prompt = confirmAction(INFO_INSTALLDS_PROVIDE_BASE_DN_PROMPT.get(),
+ true);
+ }
+ catch (CLIException ce)
+ {
+ prompt = true;
+ LOG.log(Level.WARNING, "Error reading input: "+ce, ce);
+ }
+ }
+ NewSuffixOptions dataOptions;
+ if (!prompt)
+ {
+ LinkedList<String> baseDNs = new LinkedList<String>();
+ dataOptions = NewSuffixOptions.createEmpty(baseDNs);
+ }
+ else
+ {
+ // Check the validity of the base DNs
+ LinkedList<String>baseDNs = promptIfRequiredForDNs(
+ argParser.baseDNArg, INFO_INSTALLDS_PROMPT_BASEDN.get(), true);
+ dataOptions = promptIfRequiredForDataOptions(baseDNs);
+ }
+ uData.setNewSuffixOptions(dataOptions);
+ }
+ private NewSuffixOptions promptIfRequiredForDataOptions(
+ LinkedList<String> baseDNs)
+ {
NewSuffixOptions dataOptions;
if (argParser.importLDIFArg.isPresent())
{
@@ -1466,7 +1489,7 @@
INFO_INSTALLDS_POPULATE_OPTION_LEAVE_EMPTY.get(),
INFO_INSTALLDS_POPULATE_OPTION_IMPORT_LDIF.get(),
INFO_INSTALLDS_POPULATE_OPTION_GENERATE_SAMPLE.get()
- };
+ };
MenuBuilder<Integer> builder = new MenuBuilder<Integer>(this);
builder.setPrompt(INFO_INSTALLDS_HEADER_POPULATE_TYPE.get());
@@ -1479,32 +1502,32 @@
if (lastResetPopulateOption == null)
{
builder.setDefault(Message.raw(
- String.valueOf(POPULATE_TYPE_BASE_ONLY)),
- MenuResult.success(POPULATE_TYPE_BASE_ONLY));
+ String.valueOf(POPULATE_TYPE_BASE_ONLY)),
+ MenuResult.success(POPULATE_TYPE_BASE_ONLY));
}
else
{
switch (lastResetPopulateOption)
{
- case LEAVE_DATABASE_EMPTY:
- builder.setDefault(Message.raw(
+ case LEAVE_DATABASE_EMPTY:
+ builder.setDefault(Message.raw(
String.valueOf(POPULATE_TYPE_LEAVE_EMPTY)),
MenuResult.success(POPULATE_TYPE_LEAVE_EMPTY));
- break;
- case IMPORT_FROM_LDIF_FILE:
- builder.setDefault(Message.raw(
- String.valueOf(POPULATE_TYPE_IMPORT_FROM_LDIF)),
- MenuResult.success(POPULATE_TYPE_IMPORT_FROM_LDIF));
- break;
- case IMPORT_AUTOMATICALLY_GENERATED_DATA:
- builder.setDefault(Message.raw(
- String.valueOf(POPULATE_TYPE_GENERATE_SAMPLE_DATA)),
- MenuResult.success(POPULATE_TYPE_GENERATE_SAMPLE_DATA));
- break;
- default:
- builder.setDefault(Message.raw(
- String.valueOf(POPULATE_TYPE_BASE_ONLY)),
- MenuResult.success(POPULATE_TYPE_BASE_ONLY));
+ break;
+ case IMPORT_FROM_LDIF_FILE:
+ builder.setDefault(Message.raw(
+ String.valueOf(POPULATE_TYPE_IMPORT_FROM_LDIF)),
+ MenuResult.success(POPULATE_TYPE_IMPORT_FROM_LDIF));
+ break;
+ case IMPORT_AUTOMATICALLY_GENERATED_DATA:
+ builder.setDefault(Message.raw(
+ String.valueOf(POPULATE_TYPE_GENERATE_SAMPLE_DATA)),
+ MenuResult.success(POPULATE_TYPE_GENERATE_SAMPLE_DATA));
+ break;
+ default:
+ builder.setDefault(Message.raw(
+ String.valueOf(POPULATE_TYPE_BASE_ONLY)),
+ MenuResult.success(POPULATE_TYPE_BASE_ONLY));
}
}
@@ -1629,7 +1652,7 @@
populateType);
}
}
- uData.setNewSuffixOptions(dataOptions);
+ return dataOptions;
}
/**
@@ -2509,10 +2532,9 @@
Message.raw(String.valueOf(uData.getAdminConnectorPort())),
Message.raw(jmxPort != -1 ? String.valueOf(jmxPort) : null),
Message.raw(
- QuickSetupStepPanel.getSecurityOptionsString(
- uData.getSecurityOptions(), false)),
+ Utils.getSecurityOptionsString(uData.getSecurityOptions(), false)),
Message.raw(uData.getDirectoryManagerDn()),
- Message.raw(InstallReviewPanel.getDataDisplayString(uData)),
+ Message.raw(Utils.getDataDisplayString(uData)),
};
int maxWidth = 0;
for (Message l : labels)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/tools/InstallDSArgumentParser.java b/opendj-sdk/opends/src/server/org/opends/server/tools/InstallDSArgumentParser.java
index b01b300..694176e 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tools/InstallDSArgumentParser.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tools/InstallDSArgumentParser.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Copyright 2008 Sun Microsystems, Inc.
+ * Copyright 2008-2009 Sun Microsystems, Inc.
*/
package org.opends.server.tools;
@@ -43,6 +43,7 @@
import org.opends.quicksetup.util.Utils;
import org.opends.server.extensions.ConfigFileHandler;
import org.opends.server.util.SetupUtils;
+import org.opends.server.util.args.Argument;
import org.opends.server.util.args.ArgumentException;
import org.opends.server.util.args.ArgumentParser;
import org.opends.server.util.args.BooleanArgument;
@@ -203,7 +204,7 @@
OPTION_LONG_BASEDN.toLowerCase(), OPTION_SHORT_BASEDN,
OPTION_LONG_BASEDN, false, true, true,
INFO_BASEDN_PLACEHOLDER.get(),
- "dc=example,dc=com", OPTION_LONG_BASEDN,
+ null, OPTION_LONG_BASEDN,
INFO_INSTALLDS_DESCRIPTION_BASEDN.get());
addArgument(baseDNArg);
@@ -659,6 +660,19 @@
sampleDataArg.getLongIdentifier());
errorMessages.add(message);
}
+
+ if (noPromptArg.isPresent() && !baseDNArg.isPresent())
+ {
+ Argument[] args = {importLDIFArg, addBaseEntryArg, sampleDataArg};
+ for (Argument arg : args)
+ {
+ if (arg.isPresent())
+ {
+ errorMessages.add(ERR_INSTALLDS_NO_BASE_DN_AND_CONFLICTING_ARG.get(
+ "--"+arg.getLongIdentifier()));
+ }
+ }
+ }
}
/**
--
Gitblit v1.10.0