a37d24d06e3d85017b59997302b89bc2017b0970jvergara/*
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * CDDL HEADER START
a37d24d06e3d85017b59997302b89bc2017b0970jvergara *
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * The contents of this file are subject to the terms of the
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * Common Development and Distribution License, Version 1.0 only
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * (the "License"). You may not use this file except in compliance
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * with the License.
a37d24d06e3d85017b59997302b89bc2017b0970jvergara *
8cf870d281dc8c242f083d14dfef05f24aa5fceeJnRouvignac * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
8cf870d281dc8c242f083d14dfef05f24aa5fceeJnRouvignac * or http://forgerock.org/license/CDDLv1.0.html.
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * See the License for the specific language governing permissions
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * and limitations under the License.
a37d24d06e3d85017b59997302b89bc2017b0970jvergara *
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * When distributing Covered Code, include this CDDL HEADER in each
8cf870d281dc8c242f083d14dfef05f24aa5fceeJnRouvignac * file and include the License file at legal-notices/CDDLv1_0.txt.
8cf870d281dc8c242f083d14dfef05f24aa5fceeJnRouvignac * If applicable, add the following below this CDDL HEADER, with the
8cf870d281dc8c242f083d14dfef05f24aa5fceeJnRouvignac * fields enclosed by brackets "[]" replaced with your own identifying
8cf870d281dc8c242f083d14dfef05f24aa5fceeJnRouvignac * information:
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * Portions Copyright [yyyy] [name of copyright owner]
a37d24d06e3d85017b59997302b89bc2017b0970jvergara *
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * CDDL HEADER END
a37d24d06e3d85017b59997302b89bc2017b0970jvergara *
a37d24d06e3d85017b59997302b89bc2017b0970jvergara *
37867092eb9f5796a0dabbb51ff918585421eb01jvergara * Copyright 2008-2010 Sun Microsystems, Inc.
a5b9f8fb834b1b2208e59a2fa76714bd91a5f147violette * Portions copyright 2011-2013 ForgeRock AS.
a37d24d06e3d85017b59997302b89bc2017b0970jvergara */
a37d24d06e3d85017b59997302b89bc2017b0970jvergarapackage org.opends.server.tools;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergaraimport static org.opends.messages.ToolMessages.*;
a37d24d06e3d85017b59997302b89bc2017b0970jvergaraimport static org.opends.server.tools.ToolConstants.*;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergaraimport java.util.Collection;
a37d24d06e3d85017b59997302b89bc2017b0970jvergaraimport java.util.HashSet;
a37d24d06e3d85017b59997302b89bc2017b0970jvergaraimport java.util.LinkedHashSet;
a37d24d06e3d85017b59997302b89bc2017b0970jvergaraimport java.util.Set;
a37d24d06e3d85017b59997302b89bc2017b0970jvergaraimport java.util.logging.Level;
a37d24d06e3d85017b59997302b89bc2017b0970jvergaraimport java.util.logging.Logger;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
b138eb36479de1170a91322a845ad9e977c3af56ludovicpimport org.opends.admin.ads.util.ConnectionUtils;
a37d24d06e3d85017b59997302b89bc2017b0970jvergaraimport org.opends.messages.Message;
a37d24d06e3d85017b59997302b89bc2017b0970jvergaraimport org.opends.quicksetup.Constants;
a37d24d06e3d85017b59997302b89bc2017b0970jvergaraimport org.opends.quicksetup.Installation;
e2ad5d496df9ae6a822b25aed4cef9e3746a1658jvergaraimport org.opends.quicksetup.UserData;
a37d24d06e3d85017b59997302b89bc2017b0970jvergaraimport org.opends.quicksetup.util.Utils;
92bd137769a071d6992c3a01c14c0b2bf044b293ludovicpimport org.opends.server.admin.AdministrationConnector;
a37d24d06e3d85017b59997302b89bc2017b0970jvergaraimport org.opends.server.util.SetupUtils;
6af3eb301687826075597a054f455ce76f5349eejvergaraimport org.opends.server.util.args.Argument;
a37d24d06e3d85017b59997302b89bc2017b0970jvergaraimport org.opends.server.util.args.ArgumentException;
a37d24d06e3d85017b59997302b89bc2017b0970jvergaraimport org.opends.server.util.args.ArgumentParser;
a37d24d06e3d85017b59997302b89bc2017b0970jvergaraimport org.opends.server.util.args.BooleanArgument;
a37d24d06e3d85017b59997302b89bc2017b0970jvergaraimport org.opends.server.util.args.FileBasedArgument;
a37d24d06e3d85017b59997302b89bc2017b0970jvergaraimport org.opends.server.util.args.IntegerArgument;
a37d24d06e3d85017b59997302b89bc2017b0970jvergaraimport org.opends.server.util.args.StringArgument;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergara/**
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * Class used to parse the arguments of the setup command-line and to check
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * that there are not conflicting arguments (nor missing arguments in no prompt
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * mode).
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * Note that this class does not perform checks involving network (like if
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * a given port is free) nor the validity of the certificate information
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * provided.
a37d24d06e3d85017b59997302b89bc2017b0970jvergara */
b26e36d8a08a1c775531659c04abc3d4ed504139jvergarapublic class InstallDSArgumentParser extends ArgumentParser
a37d24d06e3d85017b59997302b89bc2017b0970jvergara{
a37d24d06e3d85017b59997302b89bc2017b0970jvergara BooleanArgument testOnlyArg;
b26e36d8a08a1c775531659c04abc3d4ed504139jvergara BooleanArgument cliArg;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara BooleanArgument addBaseEntryArg;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara BooleanArgument showUsageArg;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara BooleanArgument quietArg;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara BooleanArgument noPromptArg;
cdc00d2b7899dbd1d090f7f68d562b43fc944a90jvergara BooleanArgument verboseArg;
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara StringArgument propertiesFileArgument;
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara BooleanArgument noPropertiesFileArgument;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara BooleanArgument skipPortCheckArg;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara BooleanArgument enableWindowsServiceArg;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara BooleanArgument doNotStartArg;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara BooleanArgument enableStartTLSArg;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara BooleanArgument generateSelfSignedCertificateArg;
95c63d5c79b97d5f353c7512e6193c4dba66a6fcjvergara StringArgument hostNameArg;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara BooleanArgument usePkcs11Arg;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara FileBasedArgument directoryManagerPwdFileArg;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara FileBasedArgument keyStorePasswordFileArg;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara IntegerArgument ldapPortArg;
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff IntegerArgument adminConnectorPortArg;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara IntegerArgument ldapsPortArg;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara IntegerArgument jmxPortArg;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara IntegerArgument sampleDataArg;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara StringArgument baseDNArg;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara StringArgument importLDIFArg;
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara StringArgument rejectedImportFileArg;
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara StringArgument skippedImportFileArg;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara StringArgument directoryManagerDNArg;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara StringArgument directoryManagerPwdStringArg;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara StringArgument useJavaKeyStoreArg;
ddafbeb2ae1c18db9aea2af918290d3b06097f1fjvergara StringArgument useJCEKSArg;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara StringArgument usePkcs12Arg;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara StringArgument keyStorePasswordArg;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara StringArgument certNicknameArg;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara StringArgument progNameArg;
b138eb36479de1170a91322a845ad9e977c3af56ludovicp IntegerArgument connectTimeoutArg = null;
a201fb0f51e2e2d392d60b2dd96a21e16a324b88violette BooleanArgument acceptLicense;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergara private static final Logger LOG = Logger.getLogger(
a37d24d06e3d85017b59997302b89bc2017b0970jvergara InstallDSArgumentParser.class.getName());
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergara /**
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * The default constructor for this class.
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * @param mainClassName the class name of the main class for the command-line
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * that is being used.
a37d24d06e3d85017b59997302b89bc2017b0970jvergara */
a37d24d06e3d85017b59997302b89bc2017b0970jvergara public InstallDSArgumentParser(String mainClassName)
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara super(mainClassName, INFO_INSTALLDS_TOOL_DESCRIPTION.get(), false);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergara /**
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * Initializes the arguments without parsing them.
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * @throws ArgumentException if there was an error creating or adding the
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * arguments. If this occurs is likely to be a bug.
a37d24d06e3d85017b59997302b89bc2017b0970jvergara */
a37d24d06e3d85017b59997302b89bc2017b0970jvergara public void initializeArguments() throws ArgumentException
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara testOnlyArg = new BooleanArgument(
7855b07c34797e1650c83f4038ced2dade3a8109jvergara "testOnly".toLowerCase(), 't', "testOnly",
a37d24d06e3d85017b59997302b89bc2017b0970jvergara INFO_INSTALLDS_DESCRIPTION_TESTONLY.get());
a37d24d06e3d85017b59997302b89bc2017b0970jvergara testOnlyArg.setHidden(true);
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara testOnlyArg.setPropertyName("testOnly");
a37d24d06e3d85017b59997302b89bc2017b0970jvergara addArgument(testOnlyArg);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
b26e36d8a08a1c775531659c04abc3d4ed504139jvergara cliArg = new BooleanArgument(
7855b07c34797e1650c83f4038ced2dade3a8109jvergara OPTION_LONG_CLI.toLowerCase(),
b26e36d8a08a1c775531659c04abc3d4ed504139jvergara OPTION_SHORT_CLI,
b26e36d8a08a1c775531659c04abc3d4ed504139jvergara OPTION_LONG_CLI,
b26e36d8a08a1c775531659c04abc3d4ed504139jvergara INFO_INSTALLDS_DESCRIPTION_CLI.get());
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara cliArg.setPropertyName(OPTION_LONG_CLI);
b26e36d8a08a1c775531659c04abc3d4ed504139jvergara addArgument(cliArg);
b26e36d8a08a1c775531659c04abc3d4ed504139jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergara String defaultProgName;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara if (SetupUtils.isWindows())
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara defaultProgName = Installation.WINDOWS_SETUP_FILE_NAME;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara else
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara defaultProgName = Installation.UNIX_SETUP_FILE_NAME;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara progNameArg = new StringArgument(
7855b07c34797e1650c83f4038ced2dade3a8109jvergara "programName".toLowerCase(), 'P', "programName", false,
fbbcdae277f66a56a2e5450858b249f82470dc56jvergara false, true, INFO_PROGRAM_NAME_PLACEHOLDER.get(), defaultProgName,
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara "programName", INFO_INSTALLDS_DESCRIPTION_PROGNAME.get());
a37d24d06e3d85017b59997302b89bc2017b0970jvergara progNameArg.setHidden(true);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara addArgument(progNameArg);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergara noPromptArg = new BooleanArgument(
7855b07c34797e1650c83f4038ced2dade3a8109jvergara OPTION_LONG_NO_PROMPT.toLowerCase(),
a37d24d06e3d85017b59997302b89bc2017b0970jvergara OPTION_SHORT_NO_PROMPT,
a37d24d06e3d85017b59997302b89bc2017b0970jvergara OPTION_LONG_NO_PROMPT,
a37d24d06e3d85017b59997302b89bc2017b0970jvergara INFO_INSTALLDS_DESCRIPTION_NO_PROMPT.get());
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara noPromptArg.setPropertyName(OPTION_LONG_NO_PROMPT);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara addArgument(noPromptArg);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
ea01fb5b2270d39e0b705a30a5d633336e25faa0jvergara quietArg = new BooleanArgument(
7855b07c34797e1650c83f4038ced2dade3a8109jvergara OPTION_LONG_QUIET.toLowerCase(), OPTION_SHORT_QUIET,
ea01fb5b2270d39e0b705a30a5d633336e25faa0jvergara OPTION_LONG_QUIET,
ea01fb5b2270d39e0b705a30a5d633336e25faa0jvergara INFO_INSTALLDS_DESCRIPTION_SILENT.get());
ea01fb5b2270d39e0b705a30a5d633336e25faa0jvergara quietArg.setPropertyName(OPTION_LONG_QUIET);
ea01fb5b2270d39e0b705a30a5d633336e25faa0jvergara addArgument(quietArg);
ea01fb5b2270d39e0b705a30a5d633336e25faa0jvergara
7855b07c34797e1650c83f4038ced2dade3a8109jvergara verboseArg = new BooleanArgument(OPTION_LONG_VERBOSE.toLowerCase(),
7855b07c34797e1650c83f4038ced2dade3a8109jvergara OPTION_SHORT_VERBOSE,
cdc00d2b7899dbd1d090f7f68d562b43fc944a90jvergara OPTION_LONG_VERBOSE, INFO_DESCRIPTION_VERBOSE.get());
cdc00d2b7899dbd1d090f7f68d562b43fc944a90jvergara addArgument(verboseArg);
cdc00d2b7899dbd1d090f7f68d562b43fc944a90jvergara
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara propertiesFileArgument = new StringArgument(
7855b07c34797e1650c83f4038ced2dade3a8109jvergara OPTION_LONG_PROP_FILE_PATH.toLowerCase(), null,
7855b07c34797e1650c83f4038ced2dade3a8109jvergara OPTION_LONG_PROP_FILE_PATH, false,
7855b07c34797e1650c83f4038ced2dade3a8109jvergara false, true, INFO_PROP_FILE_PATH_PLACEHOLDER.get(), null, null,
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara INFO_DESCRIPTION_PROP_FILE_PATH.get());
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara addArgument(propertiesFileArgument);
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara setFilePropertiesArgument(propertiesFileArgument);
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara noPropertiesFileArgument = new BooleanArgument(
7855b07c34797e1650c83f4038ced2dade3a8109jvergara OPTION_LONG_NO_PROP_FILE.toLowerCase(), null, OPTION_LONG_NO_PROP_FILE,
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara INFO_DESCRIPTION_NO_PROP_FILE.get());
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara addArgument(noPropertiesFileArgument);
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara setNoPropertiesFileArgument(noPropertiesFileArgument);
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergara baseDNArg = new StringArgument(
7855b07c34797e1650c83f4038ced2dade3a8109jvergara OPTION_LONG_BASEDN.toLowerCase(), OPTION_SHORT_BASEDN,
a37d24d06e3d85017b59997302b89bc2017b0970jvergara OPTION_LONG_BASEDN, false, true, true,
fbbcdae277f66a56a2e5450858b249f82470dc56jvergara INFO_BASEDN_PLACEHOLDER.get(),
244d81e51f8c022982d4941603f72f3a3475175fmatthew null, OPTION_LONG_BASEDN,
a37d24d06e3d85017b59997302b89bc2017b0970jvergara INFO_INSTALLDS_DESCRIPTION_BASEDN.get());
a37d24d06e3d85017b59997302b89bc2017b0970jvergara addArgument(baseDNArg);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergara addBaseEntryArg = new BooleanArgument(
7855b07c34797e1650c83f4038ced2dade3a8109jvergara "addBaseEntry".toLowerCase(), 'a', "addBaseEntry",
a37d24d06e3d85017b59997302b89bc2017b0970jvergara INFO_INSTALLDS_DESCRIPTION_ADDBASE.get());
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara addBaseEntryArg.setPropertyName("addBaseEntry");
a37d24d06e3d85017b59997302b89bc2017b0970jvergara addArgument(addBaseEntryArg);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergara importLDIFArg = new StringArgument(
7855b07c34797e1650c83f4038ced2dade3a8109jvergara OPTION_LONG_LDIF_FILE.toLowerCase(), OPTION_SHORT_LDIF_FILE,
a37d24d06e3d85017b59997302b89bc2017b0970jvergara OPTION_LONG_LDIF_FILE, false,
fbbcdae277f66a56a2e5450858b249f82470dc56jvergara true, true, INFO_LDIFFILE_PLACEHOLDER.get(),
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara null, OPTION_LONG_LDIF_FILE,
a37d24d06e3d85017b59997302b89bc2017b0970jvergara INFO_INSTALLDS_DESCRIPTION_IMPORTLDIF.get());
a37d24d06e3d85017b59997302b89bc2017b0970jvergara addArgument(importLDIFArg);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara rejectedImportFileArg = new StringArgument(
7855b07c34797e1650c83f4038ced2dade3a8109jvergara "rejectFile".toLowerCase(), 'R', "rejectFile", false, false,
fbbcdae277f66a56a2e5450858b249f82470dc56jvergara true, INFO_REJECT_FILE_PLACEHOLDER.get(), null, "rejectFile",
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara INFO_INSTALLDS_DESCRIPTION_REJECTED_FILE.get());
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara addArgument(rejectedImportFileArg);
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara skippedImportFileArg = new StringArgument(
7855b07c34797e1650c83f4038ced2dade3a8109jvergara "skipFile".toLowerCase(), null, "skipFile", false, false,
fbbcdae277f66a56a2e5450858b249f82470dc56jvergara true, INFO_SKIP_FILE_PLACEHOLDER.get(), null, "skipFile",
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara INFO_INSTALLDS_DESCRIPTION_SKIPPED_FILE.get());
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara addArgument(skippedImportFileArg);
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergara sampleDataArg = new IntegerArgument(
7855b07c34797e1650c83f4038ced2dade3a8109jvergara "sampleData".toLowerCase(), 'd', "sampleData", false,
fbbcdae277f66a56a2e5450858b249f82470dc56jvergara false, true, INFO_NUM_ENTRIES_PLACEHOLDER.get(), 0, "sampleData",
a37d24d06e3d85017b59997302b89bc2017b0970jvergara true, 0, false, 0,
a37d24d06e3d85017b59997302b89bc2017b0970jvergara INFO_INSTALLDS_DESCRIPTION_SAMPLE_DATA.get());
a37d24d06e3d85017b59997302b89bc2017b0970jvergara addArgument(sampleDataArg);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
5a0b86da603b0b2fd3353e891464400af7ab5533jvergara int defaultLdapPort = UserData.getDefaultPort();
5a0b86da603b0b2fd3353e891464400af7ab5533jvergara if (defaultLdapPort == -1)
e2ad5d496df9ae6a822b25aed4cef9e3746a1658jvergara {
5a0b86da603b0b2fd3353e891464400af7ab5533jvergara defaultLdapPort = 389;
e2ad5d496df9ae6a822b25aed4cef9e3746a1658jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara ldapPortArg = new IntegerArgument(
7855b07c34797e1650c83f4038ced2dade3a8109jvergara "ldapPort".toLowerCase(), OPTION_SHORT_PORT,
a37d24d06e3d85017b59997302b89bc2017b0970jvergara "ldapPort", false, false,
5a0b86da603b0b2fd3353e891464400af7ab5533jvergara true, INFO_PORT_PLACEHOLDER.get(), defaultLdapPort,
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara "ldapPort", true, 1, true, 65535,
a37d24d06e3d85017b59997302b89bc2017b0970jvergara INFO_INSTALLDS_DESCRIPTION_LDAPPORT.get());
a37d24d06e3d85017b59997302b89bc2017b0970jvergara addArgument(ldapPortArg);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
5a0b86da603b0b2fd3353e891464400af7ab5533jvergara int defaultAdminPort = UserData.getDefaultAdminConnectorPort();
5a0b86da603b0b2fd3353e891464400af7ab5533jvergara if (defaultAdminPort == -1)
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff {
92bd137769a071d6992c3a01c14c0b2bf044b293ludovicp defaultAdminPort =
92bd137769a071d6992c3a01c14c0b2bf044b293ludovicp AdministrationConnector.DEFAULT_ADMINISTRATION_CONNECTOR_PORT;
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff }
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff adminConnectorPortArg = new IntegerArgument(
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff "adminConnectorPort".toLowerCase(), null,
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff "adminConnectorPort", false, false,
5a0b86da603b0b2fd3353e891464400af7ab5533jvergara true, INFO_PORT_PLACEHOLDER.get(), defaultAdminPort,
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff "adminConnectorPort", true, 1, true, 65535,
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff INFO_INSTALLDS_DESCRIPTION_ADMINCONNECTORPORT.get());
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff addArgument(adminConnectorPortArg);
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff
a37d24d06e3d85017b59997302b89bc2017b0970jvergara jmxPortArg = new IntegerArgument(
7855b07c34797e1650c83f4038ced2dade3a8109jvergara "jmxPort".toLowerCase(), 'x', "jmxPort", false, false,
fbbcdae277f66a56a2e5450858b249f82470dc56jvergara true, INFO_JMXPORT_PLACEHOLDER.get(),
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara SetupUtils.getDefaultJMXPort(), "jmxPort", true,
a37d24d06e3d85017b59997302b89bc2017b0970jvergara 1, true, 65535,
a37d24d06e3d85017b59997302b89bc2017b0970jvergara INFO_INSTALLDS_DESCRIPTION_JMXPORT.get());
a37d24d06e3d85017b59997302b89bc2017b0970jvergara addArgument(jmxPortArg);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergara skipPortCheckArg = new BooleanArgument(
7855b07c34797e1650c83f4038ced2dade3a8109jvergara "skipPortCheck".toLowerCase(), 'S', "skipPortCheck",
a37d24d06e3d85017b59997302b89bc2017b0970jvergara INFO_INSTALLDS_DESCRIPTION_SKIPPORT.get());
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara skipPortCheckArg.setPropertyName("skipPortCheck");
a37d24d06e3d85017b59997302b89bc2017b0970jvergara addArgument(skipPortCheckArg);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergara directoryManagerDNArg = new StringArgument(
7855b07c34797e1650c83f4038ced2dade3a8109jvergara OPTION_LONG_ROOT_USER_DN.toLowerCase(), OPTION_SHORT_ROOT_USER_DN,
a37d24d06e3d85017b59997302b89bc2017b0970jvergara OPTION_LONG_ROOT_USER_DN, false, false,
fbbcdae277f66a56a2e5450858b249f82470dc56jvergara true, INFO_ROOT_USER_DN_PLACEHOLDER.get(),
a37d24d06e3d85017b59997302b89bc2017b0970jvergara "cn=Directory Manager",
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara OPTION_LONG_ROOT_USER_DN, INFO_INSTALLDS_DESCRIPTION_ROOTDN.get());
a37d24d06e3d85017b59997302b89bc2017b0970jvergara addArgument(directoryManagerDNArg);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergara directoryManagerPwdStringArg = new StringArgument(
7855b07c34797e1650c83f4038ced2dade3a8109jvergara "rootUserPassword".toLowerCase(), OPTION_SHORT_BINDPWD,
a37d24d06e3d85017b59997302b89bc2017b0970jvergara "rootUserPassword",
a37d24d06e3d85017b59997302b89bc2017b0970jvergara false, false, true,
fbbcdae277f66a56a2e5450858b249f82470dc56jvergara INFO_ROOT_USER_PWD_PLACEHOLDER.get(), null,
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara "rootUserPassword",
a37d24d06e3d85017b59997302b89bc2017b0970jvergara INFO_INSTALLDS_DESCRIPTION_ROOTPW.get());
a37d24d06e3d85017b59997302b89bc2017b0970jvergara addArgument(directoryManagerPwdStringArg);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergara directoryManagerPwdFileArg = new FileBasedArgument(
7855b07c34797e1650c83f4038ced2dade3a8109jvergara "rootUserPasswordFile".toLowerCase(),
a37d24d06e3d85017b59997302b89bc2017b0970jvergara OPTION_SHORT_BINDPWD_FILE,
a37d24d06e3d85017b59997302b89bc2017b0970jvergara "rootUserPasswordFile", false, false,
fbbcdae277f66a56a2e5450858b249f82470dc56jvergara INFO_ROOT_USER_PWD_FILE_PLACEHOLDER.get(),
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara null, "rootUserPasswordFile",
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara INFO_INSTALLDS_DESCRIPTION_ROOTPWFILE.get());
a37d24d06e3d85017b59997302b89bc2017b0970jvergara addArgument(directoryManagerPwdFileArg);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergara enableWindowsServiceArg = new BooleanArgument(
7855b07c34797e1650c83f4038ced2dade3a8109jvergara "enableWindowsService".toLowerCase(), 'e',
a37d24d06e3d85017b59997302b89bc2017b0970jvergara "enableWindowsService",
a37d24d06e3d85017b59997302b89bc2017b0970jvergara INFO_INSTALLDS_DESCRIPTION_ENABLE_WINDOWS_SERVICE.get());
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara enableWindowsServiceArg.setPropertyName("enableWindowsService");
a37d24d06e3d85017b59997302b89bc2017b0970jvergara if (SetupUtils.isWindows())
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara addArgument(enableWindowsServiceArg);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergara doNotStartArg = new BooleanArgument(
7855b07c34797e1650c83f4038ced2dade3a8109jvergara "doNotStart".toLowerCase(), 'O', "doNotStart",
a37d24d06e3d85017b59997302b89bc2017b0970jvergara INFO_INSTALLDS_DESCRIPTION_DO_NOT_START.get());
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara doNotStartArg.setPropertyName("doNotStart");
a37d24d06e3d85017b59997302b89bc2017b0970jvergara addArgument(doNotStartArg);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergara enableStartTLSArg = new BooleanArgument(
7855b07c34797e1650c83f4038ced2dade3a8109jvergara "enableStartTLS".toLowerCase(), OPTION_SHORT_START_TLS,
7855b07c34797e1650c83f4038ced2dade3a8109jvergara "enableStartTLS",
a37d24d06e3d85017b59997302b89bc2017b0970jvergara INFO_INSTALLDS_DESCRIPTION_ENABLE_STARTTLS.get());
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara enableStartTLSArg.setPropertyName("enableStartTLS");
a37d24d06e3d85017b59997302b89bc2017b0970jvergara addArgument(enableStartTLSArg);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
5a0b86da603b0b2fd3353e891464400af7ab5533jvergara int defaultSecurePort = UserData.getDefaultSslPort(defaultLdapPort);
e2ad5d496df9ae6a822b25aed4cef9e3746a1658jvergara if (defaultSecurePort == -1)
e2ad5d496df9ae6a822b25aed4cef9e3746a1658jvergara {
e2ad5d496df9ae6a822b25aed4cef9e3746a1658jvergara defaultSecurePort = 636;
e2ad5d496df9ae6a822b25aed4cef9e3746a1658jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara ldapsPortArg = new IntegerArgument(
7855b07c34797e1650c83f4038ced2dade3a8109jvergara "ldapsPort".toLowerCase(), OPTION_SHORT_USE_SSL,
a37d24d06e3d85017b59997302b89bc2017b0970jvergara "ldapsPort", false, false,
fbbcdae277f66a56a2e5450858b249f82470dc56jvergara true, INFO_PORT_PLACEHOLDER.get(), defaultSecurePort,
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara "ldapsPort", true, 1, true, 65535,
a37d24d06e3d85017b59997302b89bc2017b0970jvergara INFO_INSTALLDS_DESCRIPTION_LDAPSPORT.get());
a37d24d06e3d85017b59997302b89bc2017b0970jvergara addArgument(ldapsPortArg);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergara generateSelfSignedCertificateArg = new BooleanArgument(
7855b07c34797e1650c83f4038ced2dade3a8109jvergara "generateSelfSignedCertificate".toLowerCase(),
a37d24d06e3d85017b59997302b89bc2017b0970jvergara null, "generateSelfSignedCertificate",
a37d24d06e3d85017b59997302b89bc2017b0970jvergara INFO_INSTALLDS_DESCRIPTION_USE_SELF_SIGNED.get());
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara generateSelfSignedCertificateArg.setPropertyName(
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara "generateSelfSignedCertificate");
a37d24d06e3d85017b59997302b89bc2017b0970jvergara addArgument(generateSelfSignedCertificateArg);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
95c63d5c79b97d5f353c7512e6193c4dba66a6fcjvergara hostNameArg = new StringArgument(OPTION_LONG_HOST.toLowerCase(),
95c63d5c79b97d5f353c7512e6193c4dba66a6fcjvergara OPTION_SHORT_HOST,
95c63d5c79b97d5f353c7512e6193c4dba66a6fcjvergara OPTION_LONG_HOST, false, false, true, INFO_HOST_PLACEHOLDER.get(),
95c63d5c79b97d5f353c7512e6193c4dba66a6fcjvergara UserData.getDefaultHostName(),
0289f29bebf82bfa159d36719268d7dd07bb6c11matthew null, INFO_INSTALLDS_DESCRIPTION_HOST_NAME.get());
95c63d5c79b97d5f353c7512e6193c4dba66a6fcjvergara hostNameArg.setPropertyName(OPTION_LONG_HOST);
330737586e411a650f21d75f1397dacc3091969ejvergara addDefaultArgument(hostNameArg);
95c63d5c79b97d5f353c7512e6193c4dba66a6fcjvergara
7855b07c34797e1650c83f4038ced2dade3a8109jvergara usePkcs11Arg = new BooleanArgument("usePkcs11Keystore".toLowerCase(),
a37d24d06e3d85017b59997302b89bc2017b0970jvergara null, "usePkcs11Keystore",
a37d24d06e3d85017b59997302b89bc2017b0970jvergara INFO_INSTALLDS_DESCRIPTION_USE_PKCS11.get());
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara usePkcs11Arg.setPropertyName("usePkcs11Keystore");
a37d24d06e3d85017b59997302b89bc2017b0970jvergara addArgument(usePkcs11Arg);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
7855b07c34797e1650c83f4038ced2dade3a8109jvergara useJavaKeyStoreArg = new StringArgument("useJavaKeystore".toLowerCase(),
a37d24d06e3d85017b59997302b89bc2017b0970jvergara null, "useJavaKeystore", false, false,
fbbcdae277f66a56a2e5450858b249f82470dc56jvergara true, INFO_KEYSTOREPATH_PLACEHOLDER.get(), null, "useJavaKeystore",
a37d24d06e3d85017b59997302b89bc2017b0970jvergara INFO_INSTALLDS_DESCRIPTION_USE_JAVAKEYSTORE.get());
a37d24d06e3d85017b59997302b89bc2017b0970jvergara addArgument(useJavaKeyStoreArg);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
ddafbeb2ae1c18db9aea2af918290d3b06097f1fjvergara useJCEKSArg = new StringArgument("useJCEKS".toLowerCase(),
ddafbeb2ae1c18db9aea2af918290d3b06097f1fjvergara null, "useJCEKS", false, false,
ddafbeb2ae1c18db9aea2af918290d3b06097f1fjvergara true, INFO_KEYSTOREPATH_PLACEHOLDER.get(), null, "useJCEKS",
ddafbeb2ae1c18db9aea2af918290d3b06097f1fjvergara INFO_INSTALLDS_DESCRIPTION_USE_JCEKS.get());
ddafbeb2ae1c18db9aea2af918290d3b06097f1fjvergara addArgument(useJCEKSArg);
ddafbeb2ae1c18db9aea2af918290d3b06097f1fjvergara
7855b07c34797e1650c83f4038ced2dade3a8109jvergara usePkcs12Arg = new StringArgument("usePkcs12keyStore".toLowerCase(),
a37d24d06e3d85017b59997302b89bc2017b0970jvergara null, "usePkcs12keyStore", false, false,
fbbcdae277f66a56a2e5450858b249f82470dc56jvergara true, INFO_KEYSTOREPATH_PLACEHOLDER.get(), null, "usePkcs12keyStore",
a37d24d06e3d85017b59997302b89bc2017b0970jvergara INFO_INSTALLDS_DESCRIPTION_USE_PKCS12.get());
a37d24d06e3d85017b59997302b89bc2017b0970jvergara addArgument(usePkcs12Arg);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
7855b07c34797e1650c83f4038ced2dade3a8109jvergara keyStorePasswordArg = new StringArgument(
7855b07c34797e1650c83f4038ced2dade3a8109jvergara OPTION_LONG_KEYSTORE_PWD.toLowerCase(),
a37d24d06e3d85017b59997302b89bc2017b0970jvergara OPTION_SHORT_KEYSTORE_PWD,
a37d24d06e3d85017b59997302b89bc2017b0970jvergara OPTION_LONG_KEYSTORE_PWD, false, false, true,
fbbcdae277f66a56a2e5450858b249f82470dc56jvergara INFO_KEYSTORE_PWD_PLACEHOLDER.get(), null, OPTION_LONG_KEYSTORE_PWD,
a37d24d06e3d85017b59997302b89bc2017b0970jvergara INFO_INSTALLDS_DESCRIPTION_KEYSTOREPASSWORD.get());
cddd676de138668ef547099bba407d8b302a1507kenneth_suter addDefaultArgument(keyStorePasswordArg);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
7855b07c34797e1650c83f4038ced2dade3a8109jvergara keyStorePasswordFileArg = new FileBasedArgument(
7855b07c34797e1650c83f4038ced2dade3a8109jvergara OPTION_LONG_KEYSTORE_PWD_FILE.toLowerCase(),
a37d24d06e3d85017b59997302b89bc2017b0970jvergara OPTION_SHORT_KEYSTORE_PWD_FILE, OPTION_LONG_KEYSTORE_PWD_FILE, false,
fbbcdae277f66a56a2e5450858b249f82470dc56jvergara false, INFO_KEYSTORE_PWD_FILE_PLACEHOLDER.get(), null,
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara OPTION_LONG_KEYSTORE_PWD_FILE,
a37d24d06e3d85017b59997302b89bc2017b0970jvergara INFO_INSTALLDS_DESCRIPTION_KEYSTOREPASSWORD_FILE.get());
cddd676de138668ef547099bba407d8b302a1507kenneth_suter addDefaultArgument(keyStorePasswordFileArg);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
7855b07c34797e1650c83f4038ced2dade3a8109jvergara certNicknameArg = new StringArgument(
7855b07c34797e1650c83f4038ced2dade3a8109jvergara OPTION_LONG_CERT_NICKNAME.toLowerCase(),
a37d24d06e3d85017b59997302b89bc2017b0970jvergara OPTION_SHORT_CERT_NICKNAME, OPTION_LONG_CERT_NICKNAME,
fbbcdae277f66a56a2e5450858b249f82470dc56jvergara false, false, true, INFO_NICKNAME_PLACEHOLDER.get(), null,
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara OPTION_LONG_CERT_NICKNAME,
a37d24d06e3d85017b59997302b89bc2017b0970jvergara INFO_INSTALLDS_DESCRIPTION_CERT_NICKNAME.get());
cddd676de138668ef547099bba407d8b302a1507kenneth_suter addDefaultArgument(certNicknameArg);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
b138eb36479de1170a91322a845ad9e977c3af56ludovicp int defaultTimeout = ConnectionUtils.getDefaultLDAPTimeout();
b138eb36479de1170a91322a845ad9e977c3af56ludovicp connectTimeoutArg = new IntegerArgument(OPTION_LONG_CONNECT_TIMEOUT,
b138eb36479de1170a91322a845ad9e977c3af56ludovicp null, OPTION_LONG_CONNECT_TIMEOUT,
b138eb36479de1170a91322a845ad9e977c3af56ludovicp false, false, true, INFO_TIMEOUT_PLACEHOLDER.get(),
b138eb36479de1170a91322a845ad9e977c3af56ludovicp defaultTimeout, null,
b138eb36479de1170a91322a845ad9e977c3af56ludovicp true, 1, true, 65535,
b138eb36479de1170a91322a845ad9e977c3af56ludovicp INFO_DESCRIPTION_CONNECTION_TIMEOUT.get());
b138eb36479de1170a91322a845ad9e977c3af56ludovicp connectTimeoutArg.setPropertyName(OPTION_LONG_CONNECT_TIMEOUT);
b138eb36479de1170a91322a845ad9e977c3af56ludovicp connectTimeoutArg.setHidden(true);
b138eb36479de1170a91322a845ad9e977c3af56ludovicp addArgument(connectTimeoutArg);
b138eb36479de1170a91322a845ad9e977c3af56ludovicp
a201fb0f51e2e2d392d60b2dd96a21e16a324b88violette acceptLicense = new BooleanArgument(OPTION_LONG_ACCEPT_LICENSE, null,
a201fb0f51e2e2d392d60b2dd96a21e16a324b88violette OPTION_LONG_ACCEPT_LICENSE, INFO_OPTION_ACCEPT_LICENSE.get());
a201fb0f51e2e2d392d60b2dd96a21e16a324b88violette addArgument(acceptLicense);
a201fb0f51e2e2d392d60b2dd96a21e16a324b88violette
7855b07c34797e1650c83f4038ced2dade3a8109jvergara showUsageArg = new BooleanArgument(
7855b07c34797e1650c83f4038ced2dade3a8109jvergara OPTION_LONG_HELP.toLowerCase(), OPTION_SHORT_HELP,
a37d24d06e3d85017b59997302b89bc2017b0970jvergara OPTION_LONG_HELP,
a37d24d06e3d85017b59997302b89bc2017b0970jvergara INFO_INSTALLDS_DESCRIPTION_HELP.get());
a37d24d06e3d85017b59997302b89bc2017b0970jvergara addArgument(showUsageArg);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara setUsageArgument(showUsageArg);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara /**
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara * Returns whether the command was launched in CLI mode or not.
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara * @return <CODE>true</CODE> if the command was launched to use CLI mode and
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara * <CODE>false</CODE> otherwise.
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara */
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara public boolean isCli()
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara {
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara return cliArg.isPresent();
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara }
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergara /**
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * {@inheritDoc}
a37d24d06e3d85017b59997302b89bc2017b0970jvergara */
a37d24d06e3d85017b59997302b89bc2017b0970jvergara @Override()
a37d24d06e3d85017b59997302b89bc2017b0970jvergara public void parseArguments(String[] args) throws ArgumentException
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara LinkedHashSet<Message> errorMessages = new LinkedHashSet<Message>();
a37d24d06e3d85017b59997302b89bc2017b0970jvergara try
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara super.parseArguments(args);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara catch (ArgumentException ae)
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara LOG.log(Level.SEVERE, "Error parsing arguments: "+ae, ae);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara errorMessages.add(ae.getMessageObject());
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara if (!isUsageArgumentPresent() && !isVersionArgumentPresent())
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara checkServerPassword(errorMessages);
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara checkProvidedPorts(errorMessages);
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara checkImportDataArguments(errorMessages);
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara checkSecurityArguments(errorMessages);
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara if (errorMessages.size() > 0)
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara {
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara Message message = ERR_CANNOT_INITIALIZE_ARGS.get(
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara Utils.getMessageFromCollection(errorMessages,
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara Constants.LINE_SEPARATOR));
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara throw new ArgumentException(message);
bf7236c96ba10b04b60169ee7c84327b4998ffc9jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergara /**
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * Returns the directory manager password provided by the user. This method
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * should be called after a call to parseArguments.
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * @return the directory manager password provided by the user.
a37d24d06e3d85017b59997302b89bc2017b0970jvergara */
a37d24d06e3d85017b59997302b89bc2017b0970jvergara public String getDirectoryManagerPassword()
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara String pwd = null;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara if (directoryManagerPwdStringArg.isPresent())
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara pwd = directoryManagerPwdStringArg.getValue();
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara else if (directoryManagerPwdFileArg.isPresent())
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara pwd = directoryManagerPwdFileArg.getValue();
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara return pwd;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergara /**
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * Returns the key store password provided by the user. This method should be
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * called after a call to parseArguments.
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * @return the key store password provided by the user.
a37d24d06e3d85017b59997302b89bc2017b0970jvergara */
a37d24d06e3d85017b59997302b89bc2017b0970jvergara public String getKeyStorePassword()
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara String pwd = null;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara if (keyStorePasswordArg.isPresent())
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara pwd = keyStorePasswordArg.getValue();
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
039c83380d220b49180fb88e6c39593a7f648a54jvergara else if (keyStorePasswordFileArg.isPresent())
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara pwd = keyStorePasswordFileArg.getValue();
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara return pwd;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergara /**
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * Checks that there are no conflicts with the directory manager passwords.
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * If we are in no prompt mode, check that the password was provided.
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * @param errorMessages the list of messages to which we add the error
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * messages describing the problems encountered during the execution of the
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * checking.
a37d24d06e3d85017b59997302b89bc2017b0970jvergara */
a37d24d06e3d85017b59997302b89bc2017b0970jvergara private void checkServerPassword(Collection<Message> errorMessages)
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara if (directoryManagerPwdStringArg.isPresent() &&
a37d24d06e3d85017b59997302b89bc2017b0970jvergara directoryManagerPwdFileArg.isPresent())
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara Message message = ERR_INSTALLDS_TWO_CONFLICTING_ARGUMENTS.get(
a37d24d06e3d85017b59997302b89bc2017b0970jvergara directoryManagerPwdStringArg.getLongIdentifier(),
a37d24d06e3d85017b59997302b89bc2017b0970jvergara directoryManagerPwdFileArg.getLongIdentifier());
a37d24d06e3d85017b59997302b89bc2017b0970jvergara errorMessages.add(message);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergara if (noPromptArg.isPresent() && !directoryManagerPwdStringArg.isPresent() &&
a37d24d06e3d85017b59997302b89bc2017b0970jvergara !directoryManagerPwdFileArg.isPresent())
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara Message message = ERR_INSTALLDS_NO_ROOT_PASSWORD.get(
a37d24d06e3d85017b59997302b89bc2017b0970jvergara directoryManagerPwdStringArg.getLongIdentifier(),
a37d24d06e3d85017b59997302b89bc2017b0970jvergara directoryManagerPwdFileArg.getLongIdentifier());
a37d24d06e3d85017b59997302b89bc2017b0970jvergara errorMessages.add(message);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergara /**
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * Checks that there are no conflicts with the provided ports (like if the
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * user provided the same port for different protocols).
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * @param errorMessages the list of messages to which we add the error
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * messages describing the problems encountered during the execution of the
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * checking.
a37d24d06e3d85017b59997302b89bc2017b0970jvergara */
a37d24d06e3d85017b59997302b89bc2017b0970jvergara private void checkProvidedPorts(Collection<Message> errorMessages)
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara /**
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * Check that the provided ports do not match.
a37d24d06e3d85017b59997302b89bc2017b0970jvergara */
a37d24d06e3d85017b59997302b89bc2017b0970jvergara try
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara Set<Integer> ports = new HashSet<Integer>();
a37d24d06e3d85017b59997302b89bc2017b0970jvergara ports.add(ldapPortArg.getIntValue());
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff if (ports.contains(adminConnectorPortArg.getIntValue()))
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff {
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff Message message = ERR_CONFIGDS_PORT_ALREADY_SPECIFIED.get(
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff String.valueOf(adminConnectorPortArg.getIntValue()));
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff errorMessages.add(message);
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff }
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff else
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff {
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff ports.add(adminConnectorPortArg.getIntValue());
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff }
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff
a37d24d06e3d85017b59997302b89bc2017b0970jvergara if (jmxPortArg.isPresent())
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara if (ports.contains(jmxPortArg.getIntValue()))
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara Message message = ERR_CONFIGDS_PORT_ALREADY_SPECIFIED.get(
a37d24d06e3d85017b59997302b89bc2017b0970jvergara String.valueOf(jmxPortArg.getIntValue()));
a37d24d06e3d85017b59997302b89bc2017b0970jvergara errorMessages.add(message);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara else
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara ports.add(jmxPortArg.getIntValue());
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara if (ldapsPortArg.isPresent())
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara if (ports.contains(ldapsPortArg.getIntValue()))
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara Message message = ERR_CONFIGDS_PORT_ALREADY_SPECIFIED.get(
a37d24d06e3d85017b59997302b89bc2017b0970jvergara String.valueOf(ldapsPortArg.getIntValue()));
a37d24d06e3d85017b59997302b89bc2017b0970jvergara errorMessages.add(message);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara else
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara ports.add(ldapsPortArg.getIntValue());
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara catch (ArgumentException ae)
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara LOG.log(Level.SEVERE, "Unexpected error. "+
a37d24d06e3d85017b59997302b89bc2017b0970jvergara "Assuming that it is caused by a previous parsing issue: "+ae, ae);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergara /**
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * Checks that there are no conflicts with the import data arguments.
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * @param errorMessages the list of messages to which we add the error
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * messages describing the problems encountered during the execution of the
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * checking.
a37d24d06e3d85017b59997302b89bc2017b0970jvergara */
a37d24d06e3d85017b59997302b89bc2017b0970jvergara private void checkImportDataArguments(Collection<Message> errorMessages)
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara // Make sure that the user didn't provide conflicting arguments.
a37d24d06e3d85017b59997302b89bc2017b0970jvergara if (addBaseEntryArg.isPresent())
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara if (importLDIFArg.isPresent())
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara Message message = ERR_TOOL_CONFLICTING_ARGS.get(
a37d24d06e3d85017b59997302b89bc2017b0970jvergara addBaseEntryArg.getLongIdentifier(),
a37d24d06e3d85017b59997302b89bc2017b0970jvergara importLDIFArg.getLongIdentifier());
a37d24d06e3d85017b59997302b89bc2017b0970jvergara errorMessages.add(message);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara else if (sampleDataArg.isPresent())
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara Message message = ERR_TOOL_CONFLICTING_ARGS.get(
a37d24d06e3d85017b59997302b89bc2017b0970jvergara addBaseEntryArg.getLongIdentifier(),
a37d24d06e3d85017b59997302b89bc2017b0970jvergara sampleDataArg.getLongIdentifier());
a37d24d06e3d85017b59997302b89bc2017b0970jvergara errorMessages.add(message);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara else if (importLDIFArg.isPresent() && sampleDataArg.isPresent())
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara Message message = ERR_TOOL_CONFLICTING_ARGS.get(
a37d24d06e3d85017b59997302b89bc2017b0970jvergara importLDIFArg.getLongIdentifier(),
a37d24d06e3d85017b59997302b89bc2017b0970jvergara sampleDataArg.getLongIdentifier());
a37d24d06e3d85017b59997302b89bc2017b0970jvergara errorMessages.add(message);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara if (rejectedImportFileArg.isPresent() && addBaseEntryArg.isPresent())
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara {
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara Message message = ERR_TOOL_CONFLICTING_ARGS.get(
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara addBaseEntryArg.getLongIdentifier(),
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara rejectedImportFileArg.getLongIdentifier());
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara errorMessages.add(message);
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara }
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara else if (rejectedImportFileArg.isPresent() && sampleDataArg.isPresent())
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara {
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara Message message = ERR_TOOL_CONFLICTING_ARGS.get(
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara rejectedImportFileArg.getLongIdentifier(),
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara sampleDataArg.getLongIdentifier());
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara errorMessages.add(message);
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara }
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara if (skippedImportFileArg.isPresent() && addBaseEntryArg.isPresent())
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara {
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara Message message = ERR_TOOL_CONFLICTING_ARGS.get(
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara addBaseEntryArg.getLongIdentifier(),
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara skippedImportFileArg.getLongIdentifier());
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara errorMessages.add(message);
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara }
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara else if (skippedImportFileArg.isPresent() && sampleDataArg.isPresent())
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara {
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara Message message = ERR_TOOL_CONFLICTING_ARGS.get(
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara skippedImportFileArg.getLongIdentifier(),
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara sampleDataArg.getLongIdentifier());
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara errorMessages.add(message);
665c725aa5d38e054c9816f9edf5c8253f3f093ejvergara }
6af3eb301687826075597a054f455ce76f5349eejvergara
f8ea2d869a77e63e54a80666bb47f0b2af03ee9fjvergara if (noPromptArg.isPresent() && !baseDNArg.isPresent() &&
f8ea2d869a77e63e54a80666bb47f0b2af03ee9fjvergara baseDNArg.getDefaultValue() == null)
6af3eb301687826075597a054f455ce76f5349eejvergara {
6af3eb301687826075597a054f455ce76f5349eejvergara Argument[] args = {importLDIFArg, addBaseEntryArg, sampleDataArg};
6af3eb301687826075597a054f455ce76f5349eejvergara for (Argument arg : args)
6af3eb301687826075597a054f455ce76f5349eejvergara {
6af3eb301687826075597a054f455ce76f5349eejvergara if (arg.isPresent())
6af3eb301687826075597a054f455ce76f5349eejvergara {
6af3eb301687826075597a054f455ce76f5349eejvergara errorMessages.add(ERR_INSTALLDS_NO_BASE_DN_AND_CONFLICTING_ARG.get(
6af3eb301687826075597a054f455ce76f5349eejvergara "--"+arg.getLongIdentifier()));
6af3eb301687826075597a054f455ce76f5349eejvergara }
6af3eb301687826075597a054f455ce76f5349eejvergara }
6af3eb301687826075597a054f455ce76f5349eejvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergara /**
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * Checks that there are no conflicts with the security arguments.
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * If we are in no prompt mode, check that all the information required has
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * been provided (but not if this information is valid: we do not try to
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * open the keystores or to check that the LDAPS port is in use).
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * @param errorMessages the list of messages to which we add the error
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * messages describing the problems encountered during the execution of the
a37d24d06e3d85017b59997302b89bc2017b0970jvergara * checking.
a37d24d06e3d85017b59997302b89bc2017b0970jvergara */
a37d24d06e3d85017b59997302b89bc2017b0970jvergara private void checkSecurityArguments(Collection<Message> errorMessages)
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara boolean certificateRequired = ldapsPortArg.isPresent() ||
a37d24d06e3d85017b59997302b89bc2017b0970jvergara enableStartTLSArg.isPresent();
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergara int certificateType = 0;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara if (generateSelfSignedCertificateArg.isPresent())
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara certificateType++;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara if (useJavaKeyStoreArg.isPresent())
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara certificateType++;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
ddafbeb2ae1c18db9aea2af918290d3b06097f1fjvergara if (useJCEKSArg.isPresent())
ddafbeb2ae1c18db9aea2af918290d3b06097f1fjvergara {
ddafbeb2ae1c18db9aea2af918290d3b06097f1fjvergara certificateType++;
ddafbeb2ae1c18db9aea2af918290d3b06097f1fjvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara if (usePkcs11Arg.isPresent())
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara certificateType++;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara if (usePkcs12Arg.isPresent())
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara certificateType++;
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergara if (certificateType > 1)
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara errorMessages.add(ERR_INSTALLDS_SEVERAL_CERTIFICATE_TYPE_SPECIFIED.get());
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergara if (certificateRequired && noPromptArg.isPresent() &&
a37d24d06e3d85017b59997302b89bc2017b0970jvergara (certificateType == 0))
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara errorMessages.add(
a37d24d06e3d85017b59997302b89bc2017b0970jvergara ERR_INSTALLDS_CERTIFICATE_REQUIRED_FOR_SSL_OR_STARTTLS.get());
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergara if (certificateType == 1)
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara if (!generateSelfSignedCertificateArg.isPresent())
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara // Check that we have only a password.
a37d24d06e3d85017b59997302b89bc2017b0970jvergara if (keyStorePasswordArg.isPresent() &&
a37d24d06e3d85017b59997302b89bc2017b0970jvergara keyStorePasswordFileArg.isPresent())
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara Message message = ERR_INSTALLDS_TWO_CONFLICTING_ARGUMENTS.get(
a37d24d06e3d85017b59997302b89bc2017b0970jvergara keyStorePasswordArg.getLongIdentifier(),
a37d24d06e3d85017b59997302b89bc2017b0970jvergara keyStorePasswordFileArg.getLongIdentifier());
a37d24d06e3d85017b59997302b89bc2017b0970jvergara errorMessages.add(message);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
a37d24d06e3d85017b59997302b89bc2017b0970jvergara // Check that we have one password in no prompt mode.
a37d24d06e3d85017b59997302b89bc2017b0970jvergara if (noPromptArg.isPresent() && !keyStorePasswordArg.isPresent() &&
a37d24d06e3d85017b59997302b89bc2017b0970jvergara !keyStorePasswordFileArg.isPresent())
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara Message message = ERR_INSTALLDS_NO_KEYSTORE_PASSWORD.get(
a37d24d06e3d85017b59997302b89bc2017b0970jvergara keyStorePasswordArg.getLongIdentifier(),
a37d24d06e3d85017b59997302b89bc2017b0970jvergara keyStorePasswordFileArg.getLongIdentifier());
a37d24d06e3d85017b59997302b89bc2017b0970jvergara errorMessages.add(message);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara if (noPromptArg.isPresent() && !ldapsPortArg.isPresent() &&
a37d24d06e3d85017b59997302b89bc2017b0970jvergara !enableStartTLSArg.isPresent())
a37d24d06e3d85017b59997302b89bc2017b0970jvergara {
a37d24d06e3d85017b59997302b89bc2017b0970jvergara Message message = ERR_INSTALLDS_SSL_OR_STARTTLS_REQUIRED.get(
a37d24d06e3d85017b59997302b89bc2017b0970jvergara ldapsPortArg.getLongIdentifier(),
a37d24d06e3d85017b59997302b89bc2017b0970jvergara enableStartTLSArg.getLongIdentifier());
a37d24d06e3d85017b59997302b89bc2017b0970jvergara errorMessages.add(message);
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara
b138eb36479de1170a91322a845ad9e977c3af56ludovicp /**
b138eb36479de1170a91322a845ad9e977c3af56ludovicp * Returns the timeout to be used to connect in milliseconds. The method
b138eb36479de1170a91322a845ad9e977c3af56ludovicp * must be called after parsing the arguments.
b138eb36479de1170a91322a845ad9e977c3af56ludovicp * @return the timeout to be used to connect in milliseconds. Returns
b138eb36479de1170a91322a845ad9e977c3af56ludovicp * {@code 0} if there is no timeout.
478bdb76ac1f981022ff6e54aec2045be9403ef0ludovicp * @throws IllegalStateException if the method is called before
b138eb36479de1170a91322a845ad9e977c3af56ludovicp * parsing the arguments.
b138eb36479de1170a91322a845ad9e977c3af56ludovicp */
478bdb76ac1f981022ff6e54aec2045be9403ef0ludovicp public int getConnectTimeout() throws IllegalStateException
b138eb36479de1170a91322a845ad9e977c3af56ludovicp {
b138eb36479de1170a91322a845ad9e977c3af56ludovicp try
b138eb36479de1170a91322a845ad9e977c3af56ludovicp {
b138eb36479de1170a91322a845ad9e977c3af56ludovicp return connectTimeoutArg.getIntValue();
b138eb36479de1170a91322a845ad9e977c3af56ludovicp }
b138eb36479de1170a91322a845ad9e977c3af56ludovicp catch (ArgumentException ae)
b138eb36479de1170a91322a845ad9e977c3af56ludovicp {
b138eb36479de1170a91322a845ad9e977c3af56ludovicp throw new IllegalStateException("Argument parser is not parsed: "+ae, ae);
b138eb36479de1170a91322a845ad9e977c3af56ludovicp }
b138eb36479de1170a91322a845ad9e977c3af56ludovicp }
a37d24d06e3d85017b59997302b89bc2017b0970jvergara}