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

Violette Roche-Montane
11.38.2014 35f4c9400e583aa53856c929a5fbcb52f66cd96b
Checkpoint commit for OPENDJ-1306
- Added javadoc / unit tests.
- Replaced CLIException calls.

7 files modified
445 ■■■■ changed files
opendj-server/src/main/java/org/forgerock/opendj/server/setup/cli/SetupCli.java 59 ●●●● patch | view | raw | blame | history
opendj-server/src/main/java/org/forgerock/opendj/server/setup/cli/SetupLog.java 10 ●●●●● patch | view | raw | blame | history
opendj-server/src/main/java/org/forgerock/opendj/server/setup/model/ListenerSettings.java 211 ●●●●● patch | view | raw | blame | history
opendj-server/src/main/java/org/forgerock/opendj/server/setup/model/Model.java 119 ●●●● patch | view | raw | blame | history
opendj-server/src/test/java/org/forgerock/opendj/server/setup/cli/SetupCliTestCase.java 42 ●●●● patch | view | raw | blame | history
opendj-server/src/test/java/org/forgerock/opendj/server/setup/model/ListenerSettingsTestCase.java 2 ●●● patch | view | raw | blame | history
opendj-server/src/test/java/org/forgerock/opendj/server/setup/model/ModelTestCase.java 2 ●●● patch | view | raw | blame | history
opendj-server/src/main/java/org/forgerock/opendj/server/setup/cli/SetupCli.java
@@ -28,6 +28,7 @@
import static com.forgerock.opendj.cli.Utils.LINE_SEPARATOR;
import static com.forgerock.opendj.cli.Utils.checkJavaVersion;
import static com.forgerock.opendj.cli.CliMessages.*;
import static com.forgerock.opendj.cli.CliConstants.*;
import java.io.PrintStream;
import java.util.ArrayList;
@@ -43,8 +44,7 @@
import com.forgerock.opendj.cli.Argument;
import com.forgerock.opendj.cli.ArgumentException;
import com.forgerock.opendj.cli.BooleanArgument;
import com.forgerock.opendj.cli.CLIException;
import com.forgerock.opendj.cli.CliConstants;
import com.forgerock.opendj.cli.ClientException;
import com.forgerock.opendj.cli.CommonArguments;
import com.forgerock.opendj.cli.ConsoleApplication;
import com.forgerock.opendj.cli.FileBasedArgument;
@@ -113,7 +113,7 @@
    private StringArgument usePkcs12;
    private StringArgument keyStorePassword;
    private StringArgument certNickname;
    private IntegerArgument connectTimeout = null;
    private IntegerArgument connectTimeout;
    private BooleanArgument acceptLicense;
    // Sub-commands
@@ -155,7 +155,7 @@
        try {
            checkJavaVersion();
        } catch (CLIException e) {
        } catch (ClientException e) {
            errPrintln(e.getMessageObject());
            return ReturnCode.JAVA_VERSION_INCOMPATIBLE.get();
        }
@@ -200,11 +200,26 @@
        }
        // Starts setup process.
        try {
            fillSetupSettings();
            runSetupInstallation();
        } catch (ClientException ex) {
            return ex.getReturnCode();
        } catch (Exception ex) {
            // TODO
            //println(Style.ERROR, LocalizableMessage.raw("...?"));
            return ReturnCode.ERROR_UNEXPECTED.get();
        }
        return ReturnCode.SUCCESS.get();
    }
    /**
     * Initialize setup's arguments by default.
     *
     * @throws ArgumentException
     *             If an exception occurs during the initialization of the arguments.
     */
    private void initializeArguments() throws ArgumentException {
        // Options.
        acceptLicense = CommonArguments.getAcceptLicense();
        cli = CommonArguments.getCLI();
@@ -214,9 +229,9 @@
        rejectedImportFile = CommonArguments.getRejectedImportLdif();
        skippedImportFile = CommonArguments.getSkippedImportFile();
        sampleData = CommonArguments.getSampleData();
        ldapPort = CommonArguments.getLDAPPort(CliConstants.DEFAULT_LDAP_PORT);
        adminConnectorPort = CommonArguments.getAdminLDAPPort(CliConstants.DEFAULT_ADMIN_PORT);
        jmxPort = CommonArguments.getJMXPort(CliConstants.DEFAULT_JMX_PORT);
        ldapPort = CommonArguments.getLDAPPort(DEFAULT_LDAP_PORT);
        adminConnectorPort = CommonArguments.getAdminLDAPPort(DEFAULT_ADMIN_PORT);
        jmxPort = CommonArguments.getJMXPort(DEFAULT_JMX_PORT);
        skipPortCheck = CommonArguments.getSkipPortCheck();
        directoryManagerDN = CommonArguments.getRootDN();
        directoryManagerPwdString = CommonArguments.getRootDNPwd();
@@ -224,7 +239,7 @@
        enableWindowsService = CommonArguments.getEnableWindowsService();
        doNotStart = CommonArguments.getDoNotStart();
        enableStartTLS = CommonArguments.getEnableTLS();
        ldapsPort = CommonArguments.getLDAPSPort(CliConstants.DEFAULT_LDAPS_PORT);
        ldapsPort = CommonArguments.getLDAPSPort(DEFAULT_LDAPS_PORT);
        generateSelfSignedCertificate = CommonArguments.getGenerateSelfSigned();
        hostName = CommonArguments.getHostName(Utils.getDefaultHostName());
        usePkcs11 = CommonArguments.getUsePKCS11Keystore();
@@ -234,7 +249,7 @@
        keyStorePassword = CommonArguments.getKeyStorePassword();
        keyStorePasswordFile = CommonArguments.getKeyStorePasswordFile();
        certNickname = CommonArguments.getCertNickName();
        connectTimeout = CommonArguments.getConnectTimeOut(30000);
        connectTimeout = CommonArguments.getConnectTimeOut(DEFAULT_LDAP_CONNECT_TIMEOUT);
        // Utility Input Output Options.
        noPrompt = CommonArguments.getNoPrompt();
@@ -475,20 +490,20 @@
            if (!generateSelfSignedCertificate.isPresent()) {
                // Check that we have only a password.
                if (keyStorePassword.isPresent() && keyStorePasswordFile.isPresent()) {
                    LocalizableMessage message = ERR_TWO_CONFLICTING_ARGUMENTS.get(
                    final LocalizableMessage message = ERR_TWO_CONFLICTING_ARGUMENTS.get(
                            keyStorePassword.getLongIdentifier(), keyStorePasswordFile.getLongIdentifier());
                    errorMessages.add(message);
                }
                // Check that we have one password in no prompt mode.
                if (noPrompt.isPresent() && !keyStorePassword.isPresent() && !keyStorePasswordFile.isPresent()) {
                    LocalizableMessage message = ERR_NO_KEYSTORE_PASSWORD.get(keyStorePassword.getLongIdentifier(),
                            keyStorePasswordFile.getLongIdentifier());
                    final LocalizableMessage message = ERR_NO_KEYSTORE_PASSWORD.get(
                            keyStorePassword.getLongIdentifier(), keyStorePasswordFile.getLongIdentifier());
                    errorMessages.add(message);
                }
            }
            if (noPrompt.isPresent() && !ldapsPort.isPresent() && !enableStartTLS.isPresent()) {
                LocalizableMessage message = ERR_SSL_OR_STARTTLS_REQUIRED.get(ldapsPort.getLongIdentifier(),
                final LocalizableMessage message = ERR_SSL_OR_STARTTLS_REQUIRED.get(ldapsPort.getLongIdentifier(),
                        enableStartTLS.getLongIdentifier());
                errorMessages.add(message);
            }
@@ -543,4 +558,20 @@
            return mb.toMessage();
        }
    }
    /**
     * Fills the setup components according to the arguments provided by the user.
     * @throws ArgumentException
     */
    private void fillSetupSettings() throws ArgumentException {
        // TODO ...
    }
    /**
     * Launches the setup process.
     * @throws ClientException
     */
    private void runSetupInstallation() throws ClientException {
        // TODO move that function to another class.
    }
}
opendj-server/src/main/java/org/forgerock/opendj/server/setup/cli/SetupLog.java
@@ -38,8 +38,9 @@
import java.util.logging.LogRecord;
import java.util.logging.Logger;
import com.forgerock.opendj.cli.CLIException;
import com.forgerock.opendj.cli.ClientException;
import com.forgerock.opendj.cli.CliMessages;
import com.forgerock.opendj.cli.ReturnCode;
/**
 * Creates a historical log about the setup. If file does not exist an attempt will be made to create it.
@@ -100,14 +101,15 @@
     * Returns the print stream of the current logger.
     *
     * @return the print stream of the current logger.
     * @throws CLIException
     * @throws ClientException
     *             If the file defined by the logger is not found or invalid.
     */
    static PrintStream getPrintStream() throws CLIException {
    static PrintStream getPrintStream() throws ClientException {
        try {
            return new PrintStream(new FileOutputStream(logFile, true));
        } catch (FileNotFoundException e) {
            throw new CLIException(CliMessages.ERR_INVALID_LOG_FILE.get(e.getMessage()));
            throw new ClientException(ReturnCode.ERROR_UNEXPECTED,
                    CliMessages.ERR_INVALID_LOG_FILE.get(e.getMessage()));
        }
    }
opendj-server/src/main/java/org/forgerock/opendj/server/setup/model/ListenerSettings.java
@@ -34,13 +34,13 @@
/**
 * This class provides listener settings for the OpenDJ3 setup.
 */
class ListenerSettings {
public class ListenerSettings {
    private String hostName;
    private int ldapPort;
    private int ldapsPort;
    private int adminPort;
    private boolean isJMXConnectionHandlerEnbled;
    private boolean isJMXConnectionHandlerEnabled;
    private int jmxPort;
    private boolean isHTTPConnectionHandlerEnabled;
    private int httpPort;
@@ -54,13 +54,16 @@
    private int sslPortNumber;
    private Certificate certificate;
    ListenerSettings() {
    /**
     * Default constructor.
     */
    public ListenerSettings() {
        hostName = "";
        ldapPort = DEFAULT_LDAP_PORT;
        ldapsPort = DEFAULT_LDAPS_PORT;
        adminPort = DEFAULT_ADMIN_PORT;
        jmxPort = DEFAULT_JMX_PORT;
        isJMXConnectionHandlerEnbled = false;
        isJMXConnectionHandlerEnabled = false;
        httpPort = DEFAULT_HTTP_PORT;
        isHTTPConnectionHandlerEnabled = true;
        snmpPort = DEFAULT_SNMP_PORT;
@@ -72,94 +75,220 @@
        certificate = null;
    }
    /**
     * Returns the host name.
     *
     * @return The host name of the local machine.
     */
    public String getHostName() {
        return hostName;
    }
    /**
     * Sets the host name of the machine.
     *
     * @param hostName
     *            The host name of the current machine.
     */
    public void setHostName(String hostName) {
        this.hostName = hostName;
    }
    /**
     * Returns the value of the LDAP port.
     *
     * @return The value of the LDAP port.
     */
    public int getLdapPort() {
        return ldapPort;
    }
    /**
     * Sets the value of the LDAP port.
     *
     * @param ldapPort
     *            The LDAP port's value to set.
     */
    public void setLdapPort(int ldapPort) {
        this.ldapPort = ldapPort;
    }
    /**
     * Return the LDAPs port.
     *
     * @return The LDAPs port's value.
     */
    public int getLdapsPort() {
        return ldapsPort;
    }
    /**
     * Sets the LDAPs port value.
     *
     * @param ldapsPort
     *            The LDAPs port's value to set.
     */
    public void setLdapsPort(int ldapsPort) {
        this.ldapsPort = ldapsPort;
    }
    /**
     * Returns the administration connector port.
     *
     * @return The administration connector's port
     */
    public int getAdminPort() {
        return adminPort;
    }
    /**
     * Sets the administration connector 's port.
     *
     * @param adminPort
     *            The administration connector.
     */
    public void setAdminPort(int adminPort) {
        this.adminPort = adminPort;
    }
    /**
     * Returns the JMX's port value.
     *
     * @return The JMX's port value.
     */
    public int getJMXPort() {
        return jmxPort;
    }
    /**
     * Sets the JMX port's value.
     *
     * @param jmxPort
     *            The JMX port's value.
     */
    public void setJMXPort(int jmxPort) {
        this.jmxPort = jmxPort;
    }
    public boolean isJMXConnectionHandlerEnbled() {
        return isJMXConnectionHandlerEnbled;
    /**
     * Returns {@code true} if the JMX connection handler is enabled.
     *
     * @return {@code true} if the JMX connection handler is enabled.
     */
    public boolean isJMXConnectionHandlerEnabled() {
        return isJMXConnectionHandlerEnabled;
    }
    public void setJMXConnectionHandlerEnbled(boolean isJMXConnectionHandlerEnbled) {
        this.isJMXConnectionHandlerEnbled = isJMXConnectionHandlerEnbled;
    /**
     * Sets the status of the JMX connection handler.
     *
     * @param isJMXConnectionHandlerEnabled
     *            true} if the JMX connection handler is enabled.
     */
    public void setJMXConnectionHandlerEnabled(boolean isJMXConnectionHandlerEnabled) {
        this.isJMXConnectionHandlerEnabled = isJMXConnectionHandlerEnabled;
    }
    /**
     * Returns the value of the HTTP connection handler port.
     *
     * @return The value of the HTTP connection handler port.
     */
    public int getHTTPPort() {
        return httpPort;
    }
    /**
     * Sets the value of the port which is going to be used bu the HTTP connection handler.
     *
     * @param httpPort
     *            The value of the HTTP port.
     */
    public void setHTTPPort(int httpPort) {
        this.httpPort = httpPort;
    }
    /**
     * Returns {@code true} if the HTTP connection handler is enabled.
     *
     * @return {@code true} if the HTTP connection handler is enabled.
     */
    public boolean isHTTPConnectionHandlerEnabled() {
        return isHTTPConnectionHandlerEnabled;
    }
    /**
     * Sets the status of the HTTP connection handler.
     *
     * @param isHTTPConnectionHandlerEnabled
     *            true} if the HTTP connection handler is enabled.
     */
    public void setHTTPConnectionHandlerEnabled(boolean isHTTPConnectionHandlerEnabled) {
        this.isHTTPConnectionHandlerEnabled = isHTTPConnectionHandlerEnabled;
    }
    /**
     * Returns the value of the port used by SNMP.
     *
     * @return The value of the port used by SNMP.
     */
    public int getSNMPPort() {
        return snmpPort;
    }
    /**
     * Sets the value of the port used by SNMP.
     *
     * @param snmpPort
     *            The value of the port used by SNMP.
     */
    public void setSNMPPort(int snmpPort) {
        this.snmpPort = snmpPort;
    }
    /**
     * Returns {@code true} if the SNMP connection handler is enabled.
     *
     * @return {@code true} if the SNMP connection handler is enabled. {@code false} otherwise.
     */
    public boolean isSNMPConnectionHandlerEnabled() {
        return isSNMPConnectionHandlerEnabled;
    }
    /**
     * Sets the status of the HTTP connection handler.
     *
     * @param isSNMPConnectionHandlerEnabled
     *            {@code true} if the HTTP connection handler is enabled.
     */
    public void setSNMPConnectionHandlerEnabled(boolean isSNMPConnectionHandlerEnabled) {
        this.isSNMPConnectionHandlerEnabled = isSNMPConnectionHandlerEnabled;
    }
    /**
     * Returns the root user DN.
     *
     * @return The root user DN.
     */
    public String getRootUserDN() {
        return rootUserDN;
    }
    /**
     * Sets the root user DN.
     *
     * @param rootUserDN
     *            The root user DN.
     */
    public void setRootUserDN(String rootUserDN) {
        this.rootUserDN = rootUserDN;
    }
    /**
     * Returns the password linked to this root user DN.
     *
     * @return The password linked to this root user DN.
     */
    public String getPassword() {
        if (password == null) {
            return null;
@@ -167,50 +296,116 @@
        return String.valueOf(password);
    }
    /**
     * Sets the user root's password.
     *
     * @param password
     *            The password to set to this user root DN.
     */
    public void setPassword(String password) {
        this.password = password.toCharArray();
    }
    /**
     * The file containing the password for the initial root user for the directory server.
     *
     * @return The file containing the password for the initial root user.
     */
    public File getPasswordFile() {
        return passwordFile;
    }
    /**
     * Sets the file containing the password for the initial root user for the directory server.
     *
     * @param pwdFile
     *            The file containing the password for the initial root user for the directory server.
     */
    public void setPasswordFile(File pwdFile) {
        this.passwordFile = pwdFile;
    }
    /**
     * Returns {@code true} is SSL is enabled.
     *
     * @return {@code true} is SSL is enabled, {@code false} otherwise.
     */
    public boolean isSSLEnabled() {
        return isSSLEnabled;
    }
    /**
     * Sets a flag is SSL is enabled.
     *
     * @param isSSLEnabled
     *            {@code true} is SSL is enabled, {@code false} otherwise.
     */
    public void setSSLEnabled(boolean isSSLEnabled) {
        this.isSSLEnabled = isSSLEnabled;
    }
    /**
     * Returns {@code true} is TLS is enabled.
     *
     * @return {@code true} is TLS is enabled, {@code false} otherwise.
     */
    public boolean isTLSEnabled() {
        return isTLSEnabled;
    }
    /**
     * Sets a flag is TLS is enabled.
     *
     * @param isTLSEnabled
     *            {@code true} is TLS is enabled, {@code false} otherwise.
     */
    public void setTLSEnabled(boolean isTLSEnabled) {
        this.isTLSEnabled = isTLSEnabled;
    }
    /**
     * Returns the port number which is used with SSL.
     *
     * @return The SSL port's number.
     */
    public int getSSLPortNumber() {
        return sslPortNumber;
    }
    /**
     * Sets the SSL's port number.
     *
     * @param sslPortNumber
     *            The port number which should be used with SSL.
     */
    public void setSSLPortNumber(int sslPortNumber) {
        this.sslPortNumber = sslPortNumber;
    }
    /**
     * Returns the certificate linked to this setup.
     *
     * @return The certificate linked to this setup.
     */
    public Certificate getCertificate() {
        return certificate;
    }
    /**
     * Sets the certificate used in this setup.
     *
     * @param certificate
     *            The certificate used in this setup.
     */
    public void setCertificate(Certificate certificate) {
        this.certificate = certificate;
    }
    /**
     * Returns the port number which is currently free.
     * @param startPortNumber The port number to start with.
     * @return The port number which is currently free.
     */
    static int getFreeSocketPort(int startPortNumber) {
        return getFreeSocketPort(startPortNumber, new TestPortImpl());
    }
opendj-server/src/main/java/org/forgerock/opendj/server/setup/model/Model.java
@@ -32,7 +32,7 @@
/**
 * This class provides configuration's model for the OpenDJ3 setup.
 */
abstract class Model {
public abstract class Model {
    /**
     * This enumeration is used to know what kind of server we want to set up.
@@ -122,14 +122,13 @@
    }
    /**
     * Returns {@code true} if this configuration has a certificate linked to it.
     * That generally means SSL and/or SSL are activated.
     * Returns {@code true} if this configuration has a certificate linked to it. That generally means SSL and/or SSL
     * are activated.
     *
     * @return {@code true} if this configuration has a certificate linked to it.
     */
    boolean isSecure() {
        return (this.getListenerSettings() != null
                && this.getListenerSettings().getCertificate() != null);
        return (this.getListenerSettings() != null && this.getListenerSettings().getCertificate() != null);
    }
    /**
@@ -140,16 +139,14 @@
    }
    /**
     * Sets the type of this server as : replication activated
     * and this is the first server in topology.
     * Sets the type of this server as : replication activated and this is the first server in topology.
     */
    void setFirstInTopology() {
        this.setType(Type.FIRST_IN_TOPOLOGY);
    }
    /**
     * Sets the type of this server as : replication activated
     * and this is a server in an existing topology.
     * Sets the type of this server as : replication activated and this is a server in an existing topology.
     */
    void setInExistingTopology() {
        this.setType(Type.IN_EXISTING_TOPOLOGY);
@@ -193,68 +190,154 @@
        startingServerAfterSetup = startServerAfterSetup;
    }
    /**
     * Returns {@code true} if the directory server should start as a service.
     *
     * @return {@code true} if the directory server should start as a service, {@code false} otherwise.
     */
    public boolean isService() {
        return isService;
    }
    /**
     * Sets the directory server as a service.
     *
     * @param isAService
     *            {@code true} if the directory server should start as a service, {@code false} otherwise.
     */
    public void setService(boolean isAService) {
        isService = isAService;
    }
    /**
     * Returns the instance path.
     *
     * @return The instance path where the binaries are installed.
     */
    public String getInstancePath() {
        return instancePath;
    }
    /**
     * Sets the current instance path location.
     *
     * @param iPath
     *            The instance path.
     */
    public void setInstancePath(String iPath) {
        instancePath = iPath;
    }
    /**
     * Returns the license.
     *
     * @return The license.
     */
    public String getLicense() {
        return license;
    }
    /**
     * Sets the license linked to this installation.
     *
     * @param theLicense
     *            The license to set.
     */
    public void setLicense(String theLicense) {
        license = theLicense;
    }
    /**
     * Returns the runtime options that apply to this installation.
     *
     * @return The runtime options that apply to this installation.
     */
    public RuntimeOptions getServerRuntimeSettings() {
        return serverRuntimeSettings;
    }
    /**
     * Sets the runtime options that apply to this installation.
     *
     * @param settings
     *            The runtime options that apply to this installation.
     */
    public void setServerRuntimeOptions(RuntimeOptions settings) {
        serverRuntimeSettings = settings;
    }
    /**
     * Returns the runtime options that apply to the current import LDIF.
     *
     * @return The runtime options that apply to the current import LDIF.
     */
    public RuntimeOptions getImportLdifRuntimeOptions() {
        return importLdifRuntimeSettings;
    }
    /**
     * Sets the runtime options that apply to the current import LDIF.
     *
     * @param settings
     *            The runtime options that apply to the current import LDIF.
     */
    public void setImportLdifRuntimeOptions(RuntimeOptions settings) {
        importLdifRuntimeSettings = settings;
    }
    /**
     * Returns the data configuration of this model.
     *
     * @return The data configuration of this model.
     */
    public DataConfiguration getDataConfiguration() {
        return dataConfiguration;
    }
    /**
     * Sets the data configuration of this model.
     *
     * @param dConfiguration
     *            The data configuration to set for this model.
     */
    public void setDataConfiguration(DataConfiguration dConfiguration) {
        dataConfiguration = dConfiguration;
    }
    /**
     * Returns the replication configuration of this model.
     *
     * @return The replication configuration of this model.
     */
    public ReplicationConfiguration getReplicationConfiguration() {
        return replicationConfiguration;
    }
    /**
     * Sets the replication configuration of this model.
     *
     * @param replicationConfiguration
     *            The replication configuration to set for this model.
     */
    public void setReplicationConfiguration(ReplicationConfiguration replicationConfiguration) {
        this.replicationConfiguration = replicationConfiguration;
    }
    /**
     * Returns the installation path of this model.
     *
     * @return The installation path of this model.
     */
    public String getInstallationPath() {
        return installationPath;
    }
    /**
     * Sets the installation path of this model.
     *
     * @param installationPath
     *            The installation path of this model.
     */
    public void setInstallationPath(String installationPath) {
        this.installationPath = installationPath;
    }
@@ -262,8 +345,11 @@
    /**
     * Creates a basic data store model configuration for setup.
     */
    static class DataStoreModel extends Model {
        DataStoreModel() {
    public static class DataStoreModel extends Model {
        /**
         * The default data store model.
         */
        public DataStoreModel() {
            setStandAloneDS();
            setDataConfiguration(new DataConfiguration());
            setListenerSettings(new ListenerSettings());
@@ -287,8 +373,7 @@
            if (isPartOfReplicationTopology()) {
                Reject.ifNull(this.getReplicationConfiguration().getAdministrator(),
                        "Administrator name should not be null");
                Reject.ifNull(this.getReplicationConfiguration().getPassword(),
                        "Admin password should not be null");
                Reject.ifNull(this.getReplicationConfiguration().getPassword(), "Admin password should not be null");
                Reject.ifNull(this.getReplicationConfiguration().getGlobalAdministrator(),
                        "Global administrator should not be null");
                Reject.ifNull(this.getReplicationConfiguration().getGlobalAdministratorPassword(),
@@ -296,8 +381,8 @@
                if (getReplicationConfiguration().getSuffixes() == null
                        || getReplicationConfiguration().getSuffixes().size() == 0) {
                    throw new ConfigException(
                            LocalizableMessage.raw(
                                    "At least one base DN should be selected to replicate content with"));
                            LocalizableMessage.raw("At least one base DN should be selected "
                                    + "to replicate content with"));
                }
            }
        }
opendj-server/src/test/java/org/forgerock/opendj/server/setup/cli/SetupCliTestCase.java
@@ -58,6 +58,9 @@
                "--adminConnectorPort", "4444",
                "-D", "cn=Directory Manager", "-w", "password", "-b", "dc=example,dc=com",
                "-a"), expectedErrOutput(LocalizableMessage.EMPTY) },
            { args("--cli", "--doNotStart", "--ldapPort", "1389", "--adminConnectorPort", "4444",
                    "-D", "cn=Directory Manager", "-w", "password", "-b", "dc=example,dc=com",
                    "-a", "--ldapsPort", "1636", "--generateSelfSignedCertificate"), null },
        };
        return data;
    }
@@ -79,8 +82,13 @@
        Object[][] data = new Object[][] {
            { args("--cli", "--doNotStart", "--ldapPort", "1389", "--adminConnectorPort", "4444",
                    "-D", "cn=Directory Manager", "-w", "password", "-b", "dc=example,dc=com",
                    "-a"),
                null },
                    "-a"), null },
            { args("--cli", "--doNotStart", "--ldapPort", "1389", "--adminConnectorPort", "4444",
                    "-D", "cn=Directory Manager", "-w", "password", "-b", "dc=example,dc=com",
                    "-a", "--ldapsPort", "1636"), null },
            { args("--cli", "--doNotStart", "--ldapPort", "1389", "--adminConnectorPort", "4444",
                    "-D", "cn=Directory Manager", "-w", "password", "-b", "dc=example,dc=com",
                    "-a", "--jmxPort", "1689"), null },
        };
        return data;
    }
@@ -158,10 +166,21 @@
                assertThat(resultCode).isEqualTo(ReturnCode.SUCCESS.get());
            } else {
                assertThat(resultCode).isNotEqualTo(ReturnCode.SUCCESS.get());
                assertThat(err.size()).isGreaterThan(0);
                final String errorMsg = err.toString("UTF-8").replaceAll(Utils.LINE_SEPARATOR, " ");
                final String expectedMsg = expectedErrOutput.toString().replaceAll(Utils.LINE_SEPARATOR, " ");
                assertTrue(errorMsg.contains(expectedMsg), errorMsg + "\n >---< \n" + expectedMsg);
                String errMsg = null;
                String expectedMsg = getUnWrappedMessage(expectedErrOutput.toString());
                /**
                 * If an application is interactive, all messages should be redirect to the stdout. (info, warnings,
                 * errors). Otherwise, standard messages should be displayed in the stdout(info) and errors to the
                 * stderr (warnings, errors).
                 */
                if (setup.isInteractive()) {
                    assertThat(out.size()).isGreaterThan(0);
                    errMsg = getUnWrappedMessage(out.toString("UTF-8"));
                } else {
                    assertThat(err.size()).isGreaterThan(0);
                    errMsg = getUnWrappedMessage(err.toString("UTF-8"));
                }
                assertTrue(errMsg.contains(expectedMsg), errMsg + "\n >---< \n" + expectedMsg);
            }
        } finally {
            closeSilently(outStream, errStream);
@@ -177,4 +196,15 @@
    private LocalizableMessage expectedErrOutput(LocalizableMessage val) {
        return val;
    }
    /**
     * Returns the message to its unwrapped form.
     *
     * @param st
     *            The message which need to be unwrapped.
     * @return The unwrapped message.
     */
    private String getUnWrappedMessage(final String st) {
        return st.replaceAll(Utils.LINE_SEPARATOR, " ");
    }
}
opendj-server/src/test/java/org/forgerock/opendj/server/setup/model/ListenerSettingsTestCase.java
@@ -58,7 +58,7 @@
        assertFalse(dsSettings.isSSLEnabled());
        assertThat(dsSettings.getCertificate()).isNull();
        assertFalse(dsSettings.isTLSEnabled());
        assertFalse(dsSettings.isJMXConnectionHandlerEnbled());
        assertFalse(dsSettings.isJMXConnectionHandlerEnabled());
        assertFalse(dsSettings.isSNMPConnectionHandlerEnabled());
        assertTrue(dsSettings.isHTTPConnectionHandlerEnabled());
    }
opendj-server/src/test/java/org/forgerock/opendj/server/setup/model/ModelTestCase.java
@@ -63,7 +63,7 @@
        assertTrue(dsSettings.isHTTPConnectionHandlerEnabled());
        assertFalse(dsSettings.isSSLEnabled());
        assertFalse(dsSettings.isTLSEnabled());
        assertFalse(dsSettings.isJMXConnectionHandlerEnbled());
        assertFalse(dsSettings.isJMXConnectionHandlerEnabled());
        ds.getListenerSettings().setPassword("password");
        // Verify ports