From 8c323f960b774edfc8c197fb784ab045816884a7 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 21 Jan 2015 11:09:28 +0000
Subject: [PATCH] OPENDJ-1734 (CR-5811) V/-version option does not work for some tools
---
opendj3-server-dev/src/server/org/opends/server/tools/InstallDSArgumentParser.java | 158 ++++++++++++++++++++--------------------------------
1 files changed, 61 insertions(+), 97 deletions(-)
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/InstallDSArgumentParser.java b/opendj3-server-dev/src/server/org/opends/server/tools/InstallDSArgumentParser.java
index 8926b3b..096824d 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/InstallDSArgumentParser.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/InstallDSArgumentParser.java
@@ -22,13 +22,14 @@
*
*
* Copyright 2008-2010 Sun Microsystems, Inc.
- * Portions Copyright 2011-2014 ForgeRock AS.
+ * Portions Copyright 2011-2015 ForgeRock AS.
*/
package org.opends.server.tools;
-import static org.opends.messages.ToolMessages.*;
import static com.forgerock.opendj.cli.ArgumentConstants.*;
-import static com.forgerock.opendj.util.OperatingSystem.isWindows;
+import static com.forgerock.opendj.util.OperatingSystem.*;
+
+import static org.opends.messages.ToolMessages.*;
import java.util.Collection;
import java.util.HashSet;
@@ -36,12 +37,14 @@
import java.util.Set;
import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizableMessageDescriptor.Arg1;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.opends.quicksetup.Constants;
import org.opends.quicksetup.Installation;
import org.opends.quicksetup.UserData;
import org.opends.quicksetup.util.Utils;
import org.opends.server.admin.AdministrationConnector;
+import org.opends.server.core.DirectoryServer.DirectoryServerVersionHandler;
import com.forgerock.opendj.cli.Argument;
import com.forgerock.opendj.cli.ArgumentException;
@@ -63,6 +66,8 @@
*/
public class InstallDSArgumentParser extends ArgumentParser
{
+ private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
+
BooleanArgument testOnlyArg;
BooleanArgument cliArg;
BooleanArgument addBaseEntryArg;
@@ -98,11 +103,9 @@
StringArgument keyStorePasswordArg;
StringArgument certNicknameArg;
StringArgument progNameArg;
- IntegerArgument connectTimeoutArg = null;
+ IntegerArgument connectTimeoutArg;
BooleanArgument acceptLicense;
- private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
-
/**
* The default constructor for this class.
* @param mainClassName the class name of the main class for the command-line
@@ -111,6 +114,7 @@
public InstallDSArgumentParser(String mainClassName)
{
super(mainClassName, INFO_INSTALLDS_TOOL_DESCRIPTION.get(), false);
+ setVersionHandler(new DirectoryServerVersionHandler());
}
/**
@@ -394,10 +398,8 @@
return cliArg.isPresent();
}
- /**
- * {@inheritDoc}
- */
- @Override()
+ /** {@inheritDoc} */
+ @Override
public void parseArguments(String[] args) throws ArgumentException
{
LinkedHashSet<LocalizableMessage> errorMessages = new LinkedHashSet<LocalizableMessage>();
@@ -420,10 +422,8 @@
if (errorMessages.size() > 0)
{
- LocalizableMessage message = ERR_CANNOT_INITIALIZE_ARGS.get(
- Utils.getMessageFromCollection(errorMessages,
- Constants.LINE_SEPARATOR));
- throw new ArgumentException(message);
+ throw new ArgumentException(ERR_CANNOT_INITIALIZE_ARGS.get(
+ Utils.getMessageFromCollection(errorMessages, Constants.LINE_SEPARATOR)));
}
}
}
@@ -435,16 +435,15 @@
*/
public String getDirectoryManagerPassword()
{
- String pwd = null;
if (directoryManagerPwdStringArg.isPresent())
{
- pwd = directoryManagerPwdStringArg.getValue();
+ return directoryManagerPwdStringArg.getValue();
}
else if (directoryManagerPwdFileArg.isPresent())
{
- pwd = directoryManagerPwdFileArg.getValue();
+ return directoryManagerPwdFileArg.getValue();
}
- return pwd;
+ return null;
}
/**
@@ -454,16 +453,15 @@
*/
public String getKeyStorePassword()
{
- String pwd = null;
if (keyStorePasswordArg.isPresent())
{
- pwd = keyStorePasswordArg.getValue();
+ return keyStorePasswordArg.getValue();
}
else if (keyStorePasswordFileArg.isPresent())
{
- pwd = keyStorePasswordFileArg.getValue();
+ return keyStorePasswordFileArg.getValue();
}
- return pwd;
+ return null;
}
/**
@@ -478,19 +476,17 @@
if (directoryManagerPwdStringArg.isPresent() &&
directoryManagerPwdFileArg.isPresent())
{
- LocalizableMessage message = ERR_INSTALLDS_TWO_CONFLICTING_ARGUMENTS.get(
+ errorMessages.add(ERR_INSTALLDS_TWO_CONFLICTING_ARGUMENTS.get(
directoryManagerPwdStringArg.getLongIdentifier(),
- directoryManagerPwdFileArg.getLongIdentifier());
- errorMessages.add(message);
+ directoryManagerPwdFileArg.getLongIdentifier()));
}
if (noPromptArg.isPresent() && !directoryManagerPwdStringArg.isPresent() &&
!directoryManagerPwdFileArg.isPresent())
{
- LocalizableMessage message = ERR_INSTALLDS_NO_ROOT_PASSWORD.get(
+ errorMessages.add(ERR_INSTALLDS_NO_ROOT_PASSWORD.get(
directoryManagerPwdStringArg.getLongIdentifier(),
- directoryManagerPwdFileArg.getLongIdentifier());
- errorMessages.add(message);
+ directoryManagerPwdFileArg.getLongIdentifier()));
}
}
@@ -503,44 +499,20 @@
*/
private void checkProvidedPorts(Collection<LocalizableMessage> errorMessages)
{
- /**
- * Check that the provided ports do not match.
- */
try
{
Set<Integer> ports = new HashSet<Integer>();
ports.add(ldapPortArg.getIntValue());
- if (ports.contains(adminConnectorPortArg.getIntValue()))
- {
- errorMessages.add(ERR_CONFIGDS_PORT_ALREADY_SPECIFIED.get(adminConnectorPortArg.getIntValue()));
- }
- else
- {
- ports.add(adminConnectorPortArg.getIntValue());
- }
-
+ checkPortAlreadyUsed(ports, adminConnectorPortArg.getIntValue(), errorMessages,
+ ERR_CONFIGDS_PORT_ALREADY_SPECIFIED);
if (jmxPortArg.isPresent())
{
- if (ports.contains(jmxPortArg.getIntValue()))
- {
- errorMessages.add(ERR_CONFIGDS_PORT_ALREADY_SPECIFIED.get(jmxPortArg.getIntValue()));
- }
- else
- {
- ports.add(jmxPortArg.getIntValue());
- }
+ checkPortAlreadyUsed(ports, jmxPortArg.getIntValue(), errorMessages, ERR_CONFIGDS_PORT_ALREADY_SPECIFIED);
}
if (ldapsPortArg.isPresent())
{
- if (ports.contains(ldapsPortArg.getIntValue()))
- {
- errorMessages.add(ERR_CONFIGDS_PORT_ALREADY_SPECIFIED.get(ldapsPortArg.getIntValue()));
- }
- else
- {
- ports.add(ldapsPortArg.getIntValue());
- }
+ checkPortAlreadyUsed(ports, ldapsPortArg.getIntValue(), errorMessages, ERR_CONFIGDS_PORT_ALREADY_SPECIFIED);
}
}
catch (ArgumentException ae)
@@ -550,6 +522,19 @@
}
}
+ private void checkPortAlreadyUsed(Set<Integer> ports, int port, Collection<LocalizableMessage> errorMessages,
+ Arg1<Object> errorMsg)
+ {
+ if (ports.contains(port))
+ {
+ errorMessages.add(errorMsg.get(port));
+ }
+ else
+ {
+ ports.add(port);
+ }
+ }
+
/**
* Checks that there are no conflicts with the import data arguments.
* @param errorMessages the list of messages to which we add the error
@@ -563,55 +548,34 @@
{
if (importLDIFArg.isPresent())
{
- LocalizableMessage message = ERR_TOOL_CONFLICTING_ARGS.get(
- addBaseEntryArg.getLongIdentifier(),
- importLDIFArg.getLongIdentifier());
- errorMessages.add(message);
+ errorMessages.add(conflictingArgs(addBaseEntryArg, importLDIFArg));
}
else if (sampleDataArg.isPresent())
{
- LocalizableMessage message = ERR_TOOL_CONFLICTING_ARGS.get(
- addBaseEntryArg.getLongIdentifier(),
- sampleDataArg.getLongIdentifier());
- errorMessages.add(message);
+ errorMessages.add(conflictingArgs(addBaseEntryArg, sampleDataArg));
}
}
else if (importLDIFArg.isPresent() && sampleDataArg.isPresent())
{
- LocalizableMessage message = ERR_TOOL_CONFLICTING_ARGS.get(
- importLDIFArg.getLongIdentifier(),
- sampleDataArg.getLongIdentifier());
- errorMessages.add(message);
+ errorMessages.add(conflictingArgs(importLDIFArg, sampleDataArg));
}
if (rejectedImportFileArg.isPresent() && addBaseEntryArg.isPresent())
{
- LocalizableMessage message = ERR_TOOL_CONFLICTING_ARGS.get(
- addBaseEntryArg.getLongIdentifier(),
- rejectedImportFileArg.getLongIdentifier());
- errorMessages.add(message);
+ errorMessages.add(conflictingArgs(addBaseEntryArg, rejectedImportFileArg));
}
else if (rejectedImportFileArg.isPresent() && sampleDataArg.isPresent())
{
- LocalizableMessage message = ERR_TOOL_CONFLICTING_ARGS.get(
- rejectedImportFileArg.getLongIdentifier(),
- sampleDataArg.getLongIdentifier());
- errorMessages.add(message);
+ errorMessages.add(conflictingArgs(rejectedImportFileArg, sampleDataArg));
}
if (skippedImportFileArg.isPresent() && addBaseEntryArg.isPresent())
{
- LocalizableMessage message = ERR_TOOL_CONFLICTING_ARGS.get(
- addBaseEntryArg.getLongIdentifier(),
- skippedImportFileArg.getLongIdentifier());
- errorMessages.add(message);
+ errorMessages.add(conflictingArgs(addBaseEntryArg, skippedImportFileArg));
}
else if (skippedImportFileArg.isPresent() && sampleDataArg.isPresent())
{
- LocalizableMessage message = ERR_TOOL_CONFLICTING_ARGS.get(
- skippedImportFileArg.getLongIdentifier(),
- sampleDataArg.getLongIdentifier());
- errorMessages.add(message);
+ errorMessages.add(conflictingArgs(skippedImportFileArg, sampleDataArg));
}
if (noPromptArg.isPresent() && !baseDNArg.isPresent() &&
@@ -629,6 +593,11 @@
}
}
+ private LocalizableMessage conflictingArgs(Argument arg1, Argument arg2)
+ {
+ return ERR_TOOL_CONFLICTING_ARGS.get(arg1.getLongIdentifier(), arg2.getLongIdentifier());
+ }
+
/**
* Checks that there are no conflicts with the security arguments.
* If we are in no prompt mode, check that all the information required has
@@ -640,8 +609,7 @@
*/
private void checkSecurityArguments(Collection<LocalizableMessage> errorMessages)
{
- boolean certificateRequired = ldapsPortArg.isPresent() ||
- enableStartTLSArg.isPresent();
+ boolean certificateRequired = ldapsPortArg.isPresent() || enableStartTLSArg.isPresent();
int certificateType = 0;
if (generateSelfSignedCertificateArg.isPresent())
@@ -670,8 +638,7 @@
errorMessages.add(ERR_INSTALLDS_SEVERAL_CERTIFICATE_TYPE_SPECIFIED.get());
}
- if (certificateRequired && noPromptArg.isPresent() &&
- (certificateType == 0))
+ if (certificateRequired && noPromptArg.isPresent() && certificateType == 0)
{
errorMessages.add(
ERR_INSTALLDS_CERTIFICATE_REQUIRED_FOR_SSL_OR_STARTTLS.get());
@@ -685,29 +652,26 @@
if (keyStorePasswordArg.isPresent() &&
keyStorePasswordFileArg.isPresent())
{
- LocalizableMessage message = ERR_INSTALLDS_TWO_CONFLICTING_ARGUMENTS.get(
+ errorMessages.add(ERR_INSTALLDS_TWO_CONFLICTING_ARGUMENTS.get(
keyStorePasswordArg.getLongIdentifier(),
- keyStorePasswordFileArg.getLongIdentifier());
- errorMessages.add(message);
+ keyStorePasswordFileArg.getLongIdentifier()));
}
// Check that we have one password in no prompt mode.
if (noPromptArg.isPresent() && !keyStorePasswordArg.isPresent() &&
!keyStorePasswordFileArg.isPresent())
{
- LocalizableMessage message = ERR_INSTALLDS_NO_KEYSTORE_PASSWORD.get(
+ errorMessages.add(ERR_INSTALLDS_NO_KEYSTORE_PASSWORD.get(
keyStorePasswordArg.getLongIdentifier(),
- keyStorePasswordFileArg.getLongIdentifier());
- errorMessages.add(message);
+ keyStorePasswordFileArg.getLongIdentifier()));
}
}
if (noPromptArg.isPresent() && !ldapsPortArg.isPresent() &&
!enableStartTLSArg.isPresent())
{
- LocalizableMessage message = ERR_INSTALLDS_SSL_OR_STARTTLS_REQUIRED.get(
+ errorMessages.add(ERR_INSTALLDS_SSL_OR_STARTTLS_REQUIRED.get(
ldapsPortArg.getLongIdentifier(),
- enableStartTLSArg.getLongIdentifier());
- errorMessages.add(message);
+ enableStartTLSArg.getLongIdentifier()));
}
}
}
--
Gitblit v1.10.0