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

Jean-Noël Rouvignac
22.21.2016 97f7d39cf58d120fc84c99c20bdb36ae35476ab3
opendj-server-legacy/src/main/java/org/opends/admin/ads/ADSContext.java
@@ -1413,7 +1413,7 @@
    catch (ADSContextException ace)
    {
      ServerDescriptor s = ServerDescriptor.createStandalone(serverProperties);
      return makeDNFromServerUniqueId(s.getHostPort(true));
      return makeDNFromServerUniqueId(s.getHostPort(true).toString());
    }
  }
opendj-server-legacy/src/main/java/org/opends/admin/ads/ServerDescriptor.java
@@ -12,7 +12,7 @@
 * information: "Portions Copyright [year] [name of copyright owner]".
 *
 * Copyright 2007-2010 Sun Microsystems, Inc.
 * Portions Copyright 2013-2015 ForgeRock AS.
 * Portions Copyright 2013-2016 ForgeRock AS.
 */
package org.opends.admin.ads;
@@ -47,6 +47,7 @@
import org.opends.quicksetup.Constants;
import org.opends.server.config.ConfigConstants;
import org.opends.server.schema.SchemaConstants;
import org.opends.server.types.HostPort;
/** The object of this class represent an OpenDS server. */
public class ServerDescriptor
@@ -352,7 +353,7 @@
   * of the returning String or not.
   * @return a String of type host-name:port-number for the server.
   */
  public String getHostPort(boolean securePreferred)
  public HostPort getHostPort(boolean securePreferred)
  {
    int port = -1;
@@ -409,9 +410,7 @@
        }
      }
    }
    String host = getHostName();
    return host + ":" + port;
    return new HostPort(getHostName(), port);
  }
  private ADSContext.ServerProperty getPortProperty(ADSContext.ServerProperty prop)
@@ -1402,20 +1401,7 @@
   */
  public static String getReplicationServer(String hostName, int replicationPort)
  {
    return getServerRepresentation(hostName, replicationPort);
  }
  /**
   * Returns the normalized server representation for a given host name and
   * port.
   * @param hostName the host name.
   * @param port the port.
   * @return the normalized server representation for a given host name and
   * port.
   */
  public static String getServerRepresentation(String hostName, int port)
  {
    return hostName.toLowerCase() + ":" + port;
    return new HostPort(hostName, replicationPort).toString();
  }
  /**
opendj-server-legacy/src/main/java/org/opends/admin/ads/util/ConnectionUtils.java
@@ -12,9 +12,8 @@
 * information: "Portions Copyright [year] [name of copyright owner]".
 *
 * Copyright 2008-2010 Sun Microsystems, Inc.
 * Portions Copyright 2012-2015 ForgeRock AS.
 * Portions Copyright 2012-2016 ForgeRock AS.
 */
package org.opends.admin.ads.util;
import java.io.IOException;
@@ -44,6 +43,7 @@
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.opends.server.replication.plugin.EntryHistorical;
import org.opends.server.schema.SchemaConstants;
import org.opends.server.types.HostPort;
import com.forgerock.opendj.cli.Utils;
@@ -383,18 +383,7 @@
   */
  public static String getLdapUrl(InitialLdapContext ctx)
  {
    String s = null;
    try
    {
      s = (String)ctx.getEnvironment().get(Context.PROVIDER_URL);
    }
    catch (NamingException ne)
    {
      // This is really strange.  Seems like a bug somewhere.
      logger.warn(LocalizableMessage.raw("Naming exception getting environment of "+ctx,
          ne));
    }
    return s;
    return getEnvProperty(ctx, Context.PROVIDER_URL);
  }
  /**
@@ -404,18 +393,8 @@
   */
  public static String getHostName(InitialLdapContext ctx)
  {
    String s = null;
    try
    {
      URI ldapURL = new URI(getLdapUrl(ctx));
      s = ldapURL.getHost();
    }
    catch (Throwable t)
    {
      // This is really strange.  Seems like a bug somewhere.
      logger.warn(LocalizableMessage.raw("Error getting host: "+t, t));
    }
    return s;
    HostPort hp = getHostPort(ctx);
    return hp != null ? hp.getHost() : null;
  }
  /**
@@ -425,18 +404,8 @@
   */
  public static int getPort(InitialLdapContext ctx)
  {
    int port = -1;
    try
    {
      URI ldapURL = new URI(getLdapUrl(ctx));
      port = ldapURL.getPort();
    }
    catch (Throwable t)
    {
      // This is really strange.  Seems like a bug somewhere.
      logger.warn(LocalizableMessage.raw("Error getting port: "+t, t));
    }
    return port;
    HostPort hp = getHostPort(ctx);
    return hp != null ? hp.getPort() : -1;
  }
  /**
@@ -446,9 +415,19 @@
   * @return the host port representation of the server to which this
   * context is connected.
   */
  public static String getHostPort(InitialLdapContext ctx)
  public static HostPort getHostPort(InitialLdapContext ctx)
  {
    return getHostName(ctx)+":"+getPort(ctx);
    try
    {
      URI ldapURL = new URI(getLdapUrl(ctx));
      return new HostPort(ldapURL.getHost(), ldapURL.getPort());
    }
    catch (Throwable t)
    {
      // This is really strange.  Seems like a bug somewhere.
      logger.warn(LocalizableMessage.raw("Error getting host: "+t, t));
      return null;
    }
  }
  /**
@@ -458,18 +437,7 @@
   */
  public static String getBindDN(InitialLdapContext ctx)
  {
    String bindDN = null;
    try
    {
      bindDN = (String)ctx.getEnvironment().get(Context.SECURITY_PRINCIPAL);
    }
    catch (NamingException ne)
    {
      // This is really strange.  Seems like a bug somewhere.
      logger.warn(LocalizableMessage.raw("Naming exception getting environment of "+ctx,
          ne));
    }
    return bindDN;
    return getEnvProperty(ctx, Context.SECURITY_PRINCIPAL);
  }
  /**
@@ -479,18 +447,17 @@
   */
  public static String getBindPassword(InitialLdapContext ctx)
  {
    String bindPwd = null;
    try
    {
      bindPwd = (String)ctx.getEnvironment().get(Context.SECURITY_CREDENTIALS);
    }
    catch (NamingException ne)
    {
    return getEnvProperty(ctx, Context.SECURITY_CREDENTIALS);
  }
  private static String getEnvProperty(InitialLdapContext ctx, String property) {
    try {
      return (String) ctx.getEnvironment().get(property);
    } catch (NamingException ne) {
      // This is really strange.  Seems like a bug somewhere.
      logger.warn(LocalizableMessage.raw("Naming exception getting environment of "+ctx,
          ne));
      logger.warn(LocalizableMessage.raw("Naming exception getting environment of " + ctx, ne));
      return null;
    }
    return bindPwd;
  }
  /**
@@ -501,17 +468,16 @@
   */
  public static boolean isSSL(InitialLdapContext ctx)
  {
    boolean isSSL = false;
    try
    {
      isSSL = getLdapUrl(ctx).toLowerCase().startsWith("ldaps");
      return getLdapUrl(ctx).toLowerCase().startsWith("ldaps");
    }
    catch (Throwable t)
    {
      // This is really strange.  Seems like a bug somewhere.
      logger.warn(LocalizableMessage.raw("Error getting if is SSL "+t, t));
      return false;
    }
    return isSSL;
  }
  /**
@@ -522,19 +488,7 @@
   */
  public static boolean isStartTLS(InitialLdapContext ctx)
  {
    boolean isStartTLS = false;
    try
    {
      isStartTLS = "true".equalsIgnoreCase((String)ctx.getEnvironment().get(
            STARTTLS_PROPERTY));
    }
    catch (NamingException ne)
    {
      // This is really strange.  Seems like a bug somewhere.
      logger.warn(LocalizableMessage.raw("Naming exception getting environment of "+ctx,
          ne));
    }
    return isStartTLS;
    return "true".equalsIgnoreCase(getEnvProperty(ctx, STARTTLS_PROPERTY));
  }
  /**
@@ -551,7 +505,6 @@
  public static boolean canConnectAsAdministrativeUser(String ldapUrl,
      String dn, String pwd, int timeout)
  {
    boolean canConnectAsAdministrativeUser = false;
    try
    {
      InitialLdapContext ctx;
@@ -566,15 +519,15 @@
            null, null, null);
      }
      canConnectAsAdministrativeUser = connectedAsAdministrativeUser(ctx);
      return connectedAsAdministrativeUser(ctx);
    } catch (NamingException ne)
    {
      // Nothing to do.
      return false;
    } catch (Throwable t)
    {
      throw new IllegalStateException("Unexpected throwable.", t);
    }
    return canConnectAsAdministrativeUser;
  }
  /**
@@ -586,12 +539,9 @@
   */
  public static boolean connectedAsAdministrativeUser(InitialLdapContext ctx)
  {
    boolean connectedAsAdministrativeUser = false;
    try
    {
      /*
       * Search for the config to check that it is the directory manager.
       */
      // Search for the config to check that it is the directory manager.
      SearchControls searchControls = new SearchControls();
      searchControls.setSearchScope(
          SearchControls. OBJECT_SCOPE);
@@ -618,15 +568,15 @@
              "Unexpected error closing enumeration on cn=Config entry", ex));
        }
      }
      connectedAsAdministrativeUser = true;
      return true;
    } catch (NamingException ne)
    {
      // Nothing to do.
      return false;
    } catch (Throwable t)
    {
      throw new IllegalStateException("Unexpected throwable.", t);
    }
    return connectedAsAdministrativeUser;
  }
  /**
@@ -682,10 +632,8 @@
    if (throwException)
    {
      NamingException xx;
      ConnectException x = new ConnectException("Connection timed out");
      xx = new CommunicationException("Connection timed out");
      xx.initCause(x);
      NamingException xx = new CommunicationException("Connection timed out");
      xx.initCause(new ConnectException("Connection timed out"));
      throw xx;
    }
@@ -710,6 +658,17 @@
  /**
   * Returns the LDAP URL for the provided parameters.
   * @param hostPort the host name and LDAP port.
   * @param useSSL whether to use SSL or not.
   * @return the LDAP URL for the provided parameters.
   */
  public static String getLDAPUrl(HostPort hostPort, boolean useSSL)
  {
    return getLDAPUrl(hostPort.getHost(), hostPort.getPort(), useSSL);
  }
  /**
   * Returns the LDAP URL for the provided parameters.
   * @param host the host name.
   * @param port the LDAP port.
   * @param useSSL whether to use SSL or not.
opendj-server-legacy/src/main/java/org/opends/admin/ads/util/ConnectionWrapper.java
@@ -21,8 +21,7 @@
import static org.forgerock.opendj.ldap.LDAPConnectionFactory.SSL_USE_STARTTLS;
import static org.opends.admin.ads.util.ConnectionUtils.getBindDN;
import static org.opends.admin.ads.util.ConnectionUtils.getBindPassword;
import static org.opends.admin.ads.util.ConnectionUtils.getHostName;
import static org.opends.admin.ads.util.ConnectionUtils.getPort;
import static org.opends.admin.ads.util.ConnectionUtils.getHostPort;
import static org.opends.admin.ads.util.ConnectionUtils.isSSL;
import static org.opends.admin.ads.util.ConnectionUtils.isStartTLS;
@@ -46,6 +45,7 @@
import org.forgerock.opendj.server.config.client.RootCfgClient;
import org.forgerock.util.Options;
import org.forgerock.util.time.Duration;
import org.opends.server.types.HostPort;
import org.opends.server.util.StaticUtils;
/**
@@ -87,7 +87,8 @@
      options.set(SSL_CONTEXT, getSSLContext(trustManager)).set(SSL_USE_STARTTLS, isStartTLS(ctx));
    }
    options.set(AUTHN_BIND_REQUEST, Requests.newSimpleBindRequest(getBindDN(ctx), getBindPassword(ctx).toCharArray()));
    connectionFactory = new LDAPConnectionFactory(getHostName(ctx), getPort(ctx), options);
    HostPort hostPort = getHostPort(ctx);
    connectionFactory = new LDAPConnectionFactory(hostPort.getHost(), hostPort.getPort(), options);
    try
    {
      connection = connectionFactory.getConnection();
opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/browser/BrowserController.java
@@ -12,7 +12,7 @@
 * information: "Portions Copyright [year] [name of copyright owner]".
 *
 * Copyright 2008-2010 Sun Microsystems, Inc.
 * Portions Copyright 2014-2015 ForgeRock AS.
 * Portions Copyright 2014-2016 ForgeRock AS.
 */
package org.opends.guitools.controlpanel.browser;
@@ -62,8 +62,10 @@
import org.opends.guitools.controlpanel.util.NumSubordinateHacker;
import org.opends.guitools.controlpanel.util.Utilities;
import org.opends.server.config.ConfigConstants;
import org.opends.server.types.HostPort;
import org.opends.server.types.LDAPURL;
import static org.opends.admin.ads.util.ConnectionUtils.getPort;
import static org.opends.server.util.ServerConstants.*;
/**
@@ -195,11 +197,9 @@
      this.ctxConfiguration = ctxConfiguration;
      this.ctxUserData = ctxUserData;
      this.ctxConfiguration.setRequestControls(
          getConfigurationRequestControls());
      this.ctxConfiguration.setRequestControls(getConfigurationRequestControls());
      this.ctxUserData.setRequestControls(getRequestControls());
      rootNodeName = server.getHostname() + ":" +
      ConnectionUtils.getPort(ctxConfiguration);
      rootNodeName = new HostPort(server.getHostname(), getPort(ctxConfiguration)).toString();
    }
    else {
      rootNodeName = "";
opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/browser/LDAPConnectionPool.java
@@ -28,6 +28,7 @@
import org.opends.admin.ads.util.ConnectionUtils;
import org.opends.guitools.controlpanel.event.ReferralAuthenticationListener;
import org.forgerock.opendj.ldap.DN;
import org.opends.server.types.HostPort;
import org.opends.server.types.LDAPURL;
import org.forgerock.opendj.ldap.SearchScope;
@@ -84,9 +85,10 @@
    for (String key : connectionTable.keySet())
    {
      ConnectionRecord cr = connectionTable.get(key);
      HostPort hostPort = getHostPort(ctx);
      HostPort crHostPort = getHostPort(cr.ctx);
      if (cr.ctx != null
          && getHostName(cr.ctx).equals(getHostName(ctx))
          && getPort(cr.ctx) == getPort(ctx)
          && hostPort.equals(crHostPort)
          && getBindDN(cr.ctx).equals(getBindDN(ctx))
          && getBindPassword(cr.ctx).equals(getBindPassword(ctx))
          && isSSL(cr.ctx) == isSSL(ctx)
@@ -389,7 +391,7 @@
   */
  private static String makeKeyFromRecord(ConnectionRecord rec) {
    String protocol = ConnectionUtils.isSSL(rec.ctx) ? "LDAPS" : "LDAP";
    return protocol + ":" + getHostName(rec.ctx) + ":" + getPort(rec.ctx);
    return protocol + ":" + getHostPort(rec.ctx);
  }
  /**
@@ -476,18 +478,9 @@
  }
  private LDAPURL makeLDAPUrl(InitialLdapContext ctx) {
    return new LDAPURL(
        isSSL(ctx) ? "ldaps" : LDAPURL.DEFAULT_SCHEME,
            getHostName(ctx),
            getPort(ctx),
            "",
            null, // no attributes
            SearchScope.BASE_OBJECT,
            null, // No filter
            null); // No extensions
    return makeLDAPUrl(ctx, "");
  }
  /**
   * Make an url from the specified arguments.
   * @param ctx the connection to the server.
@@ -495,15 +488,16 @@
   * @return an LDAP URL from the specified arguments.
   */
  public static LDAPURL makeLDAPUrl(InitialLdapContext ctx, String dn) {
    HostPort hostPort = ConnectionUtils.getHostPort(ctx);
    return new LDAPURL(
        ConnectionUtils.isSSL(ctx) ? "ldaps" : LDAPURL.DEFAULT_SCHEME,
               ConnectionUtils.getHostName(ctx),
               ConnectionUtils.getPort(ctx),
        isSSL(ctx) ? "ldaps" : LDAPURL.DEFAULT_SCHEME,
               hostPort.getHost(),
               hostPort.getPort(),
               dn,
               null, // No attributes
               SearchScope.BASE_OBJECT,
               null,
               null); // No filter
               null, // No filter
               null); // No extensions
  }
opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/browser/NodeRefresher.java
@@ -16,6 +16,8 @@
 */
package org.opends.guitools.controlpanel.browser;
import static org.opends.admin.ads.util.ConnectionUtils.getHostPort;
import static org.opends.admin.ads.util.ConnectionUtils.isSSL;
import static org.opends.messages.AdminToolMessages.*;
import java.util.ArrayList;
@@ -42,6 +44,7 @@
import org.opends.messages.AdminToolMessages;
import org.opends.server.schema.SchemaConstants;
import org.opends.server.types.DirectoryException;
import org.opends.server.types.HostPort;
import org.opends.server.types.LDAPURL;
import org.opends.server.types.OpenDsException;
@@ -486,9 +489,10 @@
        {
          // Use the local server connection.
          ctx = controller.getUserDataConnection();
          url.setHost(ConnectionUtils.getHostName(ctx));
          url.setPort(ConnectionUtils.getPort(ctx));
          url.setScheme(ConnectionUtils.isSSL(ctx)?"ldaps":"ldap");
          HostPort hostPort = getHostPort(ctx);
          url.setHost(hostPort.getHost());
          url.setPort(hostPort.getPort());
          url.setScheme(isSSL(ctx) ? "ldaps" : "ldap");
        }
        ctx = connectionPool.getConnection(url);
        remoteDn = url.getRawBaseDN();
@@ -1120,23 +1124,11 @@
      DN dn2 = url.getBaseDN();
      if (dn2.isSuperiorOrEqualTo(dn1))
      {
        String host = url.getHost();
        int port = url.getPort();
        String adminHost = ConnectionUtils.getHostName(
            controller.getConfigurationConnection());
        int adminPort =
          ConnectionUtils.getPort(controller.getConfigurationConnection());
        checkSucceeded = port != adminPort ||
        !adminHost.equalsIgnoreCase(host);
        HostPort urlHostPort = new HostPort(url.getHost(), url.getPort());
        checkSucceeded = urlHostPort.equals(getHostPort(controller.getConfigurationConnection()));
        if (checkSucceeded)
        {
          String hostUserData = ConnectionUtils.getHostName(
              controller.getUserDataConnection());
          int portUserData =
            ConnectionUtils.getPort(controller.getUserDataConnection());
          checkSucceeded = port != portUserData ||
          !hostUserData.equalsIgnoreCase(host);
          checkSucceeded = urlHostPort.equals(getHostPort(controller.getUserDataConnection()));
        }
      }
    }
opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/Task.java
@@ -52,6 +52,7 @@
import org.opends.quicksetup.Installation;
import org.opends.quicksetup.UserData;
import org.forgerock.opendj.ldap.DN;
import org.opends.server.types.HostPort;
import org.opends.server.types.Schema;
import org.opends.server.util.Base64;
import org.opends.server.util.SetupUtils;
@@ -766,12 +767,12 @@
    }
    if (isServerRunning() && ctx != null)
    {
      HostPort hostPort = ConnectionUtils.getHostPort(ctx);
      String hostName = localHostName;
      if (hostName == null || !getInfo().getServerDescriptor().isLocal())
      {
        hostName = ConnectionUtils.getHostName(ctx);
        hostName = hostPort.getHost();
      }
      int port = ConnectionUtils.getPort(ctx);
      boolean isSSL = ConnectionUtils.isSSL(ctx);
      boolean isStartTLS = ConnectionUtils.isStartTLS(ctx);
      String bindDN = ConnectionUtils.getBindDN(ctx);
@@ -779,7 +780,7 @@
      args.add("--hostName");
      args.add(hostName);
      args.add("--port");
      args.add(String.valueOf(port));
      args.add(String.valueOf(hostPort.getPort()));
      args.add("--bindDN");
      args.add(bindDN);
      args.add("--bindPassword");
opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/LocalOrRemotePanel.java
@@ -14,7 +14,6 @@
 * Copyright 2009-2010 Sun Microsystems, Inc.
 * Portions Copyright 2011-2016 ForgeRock AS.
 */
package org.opends.guitools.controlpanel.ui;
import java.awt.Component;
@@ -45,7 +44,6 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.opends.admin.ads.ServerDescriptor;
import org.opends.admin.ads.util.ApplicationTrustManager;
import org.opends.admin.ads.util.ConnectionUtils;
import org.opends.admin.ads.util.ConnectionWrapper;
@@ -64,6 +62,7 @@
import org.opends.quicksetup.util.Utils;
import org.opends.server.monitors.VersionMonitorProvider;
import org.forgerock.opendj.ldap.DN;
import org.opends.server.types.HostPort;
import org.opends.server.types.OpenDsException;
import org.opends.server.util.DynamicConstants;
import org.opends.server.util.StaticUtils;
@@ -84,7 +83,7 @@
  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
  private static final long serialVersionUID = 5051556513294844797L;
  private JComboBox combo;
  private JComboBox<LocalizableMessage> combo;
  private JLabel portLabel;
  private JTextField hostName;
  private JTextField port;
@@ -267,8 +266,8 @@
      localServerInstallPath = instancePath.getAbsolutePath();
    }
    combo = Utilities.createComboBox();
    combo.setModel(new DefaultComboBoxModel(
        new Object[] {INFO_CTRL_PANEL_LOCAL_SERVER.get(),
    combo.setModel(new DefaultComboBoxModel<LocalizableMessage>(
        new LocalizableMessage[] {INFO_CTRL_PANEL_LOCAL_SERVER.get(),
            INFO_CTRL_PANEL_REMOTE_SERVER.get()}));
    combo.setSelectedIndex(0);
    gbc.gridwidth = 2;
@@ -687,11 +686,11 @@
              }
              else
              {
                String hostPort = ServerDescriptor.getServerRepresentation(
                HostPort hostPort = new HostPort(
                    hostName.getText().trim(),
                    Integer.valueOf(port.getText().trim()));
                NamingException ne = (NamingException)throwable;
                errors.add(getMessageForException(ne, hostPort));
                errors.add(getMessageForException(ne, hostPort.toString()));
                setPrimaryInvalid(portLabel);
              }
              setPrimaryInvalid(dnLabel);
opendj-server-legacy/src/main/java/org/opends/guitools/uninstaller/Uninstaller.java
@@ -58,6 +58,7 @@
import org.forgerock.opendj.server.config.client.ReplicationSynchronizationProviderCfgClient;
import org.forgerock.opendj.server.config.client.RootCfgClient;
import org.opends.server.core.DirectoryServer;
import org.opends.server.types.HostPort;
import org.opends.server.util.DynamicConstants;
import org.opends.server.util.StaticUtils;
@@ -1974,7 +1975,7 @@
   * @throws ApplicationException if an error occurs while updating the remote
   * OpenDS server configuration.
   */
  private void removeReferences(ConnectionWrapper connWrapper, String serverDisplay,
  private void removeReferences(ConnectionWrapper connWrapper, HostPort serverDisplay,
      Map<ADSContext.ServerProperty, Object> serverADSProperties)
  throws ApplicationException
  {
opendj-server-legacy/src/main/java/org/opends/quicksetup/UserData.java
@@ -12,7 +12,7 @@
 * information: "Portions Copyright [year] [name of copyright owner]".
 *
 * Copyright 2008-2010 Sun Microsystems, Inc.
 * Portions Copyright 2011-2015 ForgeRock AS.
 * Portions Copyright 2011-2016 ForgeRock AS.
 */
package org.opends.quicksetup;
@@ -31,6 +31,7 @@
import org.opends.quicksetup.installer.NewSuffixOptions;
import org.opends.quicksetup.installer.SuffixesToReplicateOptions;
import org.opends.quicksetup.util.Utils;
import org.opends.server.types.HostPort;
import org.opends.server.util.CollectionUtils;
import com.forgerock.opendj.cli.CliConstants;
@@ -42,8 +43,7 @@
public class UserData
{
  private String serverLocation;
  private String hostName;
  private int serverPort;
  private HostPort hostPort = new HostPort(null, 0);
  private int adminConnectorPort;
  private String directoryManagerDn;
  private String directoryManagerPwd;
@@ -161,7 +161,7 @@
   */
  public void setHostName(String hostName)
  {
    this.hostName = hostName;
    hostPort = new HostPort(hostName, hostPort.getPort());
  }
  /**
@@ -170,7 +170,16 @@
   */
  public String getHostName()
  {
    return hostName;
    return hostPort.getHost();
  }
  /**
   * Returns the server host name and LDAP port.
   * @return the server host name and LDAP port.
   */
  public HostPort getHostPort()
  {
    return hostPort;
  }
  /**
@@ -179,7 +188,7 @@
   */
  public void setServerPort(int serverPort)
  {
    this.serverPort = serverPort;
    hostPort = new HostPort(hostPort.getHost(), serverPort);
  }
  /**
@@ -188,7 +197,7 @@
   */
  public int getServerPort()
  {
    return serverPort;
    return hostPort.getPort();
  }
  /**
opendj-server-legacy/src/main/java/org/opends/quicksetup/installer/AuthenticationData.java
@@ -12,27 +12,23 @@
 * information: "Portions Copyright [year] [name of copyright owner]".
 *
 * Copyright 2006-2008 Sun Microsystems, Inc.
 * Portions Copyright 2016 ForgeRock AS.
 */
package org.opends.quicksetup.installer;
import org.opends.server.types.HostPort;
/**
 * This class is used to provide a data model for the different parameters used
 * to connect to a server that we want to replicate contents with.
 *
 * @see DataReplicationOptions
 *
 */
public class AuthenticationData
{
  private String hostName;
  private int port;
  private HostPort hostPort = new HostPort(null, 0);
  private String dn;
  private String pwd;
  private boolean useSecureConnection;
  /**
@@ -41,7 +37,7 @@
   */
  public void setPort(int port)
  {
    this.port = port;
    hostPort = new HostPort(hostPort.getHost(), port);
  }
  /**
@@ -50,7 +46,7 @@
   */
  public int getPort()
  {
    return port;
    return getHostPort().getPort();
  }
  /**
@@ -90,21 +86,21 @@
  }
  /**
   * Returns the host name to connect to.
   * @return the host name to connect to.
   * Returns the host name and port to connect to.
   * @return the host name and port to connect to.
   */
  public String getHostName()
  public HostPort getHostPort()
  {
    return hostName;
    return hostPort;
  }
  /**
   * Sets the host name to connect to.
   * @param hostName the host name to connect to.
   * @param hostport the host name and port to connect to.
   */
  public void setHostName(String hostName)
  public void setHostPort(HostPort hostport)
  {
    this.hostName = hostName;
    this.hostPort = hostport;
  }
  /**
@@ -125,4 +121,11 @@
  {
    this.useSecureConnection = useSecureConnection;
  }
  String getLdapUrl()
  {
    HostPort hostPort = getHostPort();
    String scheme = useSecureConnection() ? "ldaps" : "ldap";
    return scheme + "://" + hostPort.getHost() + ":" + hostPort.getPort();
  }
}
opendj-server-legacy/src/main/java/org/opends/quicksetup/installer/Installer.java
@@ -121,6 +121,7 @@
import org.opends.quicksetup.util.Utils;
import org.opends.server.tools.BackendTypeHelper;
import org.opends.server.tools.BackendTypeHelper.BackendTypeUIAdapter;
import org.opends.server.types.HostPort;
import org.opends.server.util.CertificateManager;
import org.opends.server.util.DynamicConstants;
import org.opends.server.util.SetupUtils;
@@ -1422,7 +1423,7 @@
      AuthenticationData auth = repl.getAuthenticationData();
      if (isVerbose())
      {
        notifyListeners(getFormattedWithPoints(INFO_PROGRESS_UNCONFIGURING_ADS_ON_REMOTE.get(getHostDisplay(auth))));
        notifyListeners(getFormattedWithPoints(INFO_PROGRESS_UNCONFIGURING_ADS_ON_REMOTE.get(auth.getHostPort())));
      }
      try
      {
@@ -1674,7 +1675,7 @@
      adsServers.add(getLocalReplicationServer());
      for (String dn : baseDns)
      {
        replicationServers.put(dn, new HashSet<String>(h));
        replicationServers.put(dn, h);
      }
    }
    else
@@ -1692,8 +1693,9 @@
          AuthenticationData repPort = getUserData().getRemoteWithNoReplicationPort().get(server);
          if (repPort != null)
          {
            h.add(server.getHostName() + ":" + repPort.getPort());
            adsServers.add(server.getHostName() + ":" + repPort.getPort());
            String serverDisplay = server.getHostName() + ":" + repPort.getPort();
            h.add(serverDisplay);
            adsServers.add(serverDisplay);
          }
        }
        replicationServers.put(suffix.getDN(), h);
@@ -1705,14 +1707,14 @@
    ConnectionWrapper connWrapper = null;
    long localTime = -1;
    long localTimeMeasureTime = -1;
    String localServerDisplay = null;
    HostPort localServerDisplay = null;
    try
    {
      connWrapper = createLocalConnection();
      helper.configureReplication(connWrapper, replicationServers,
          getUserData().getReplicationOptions().getReplicationPort(),
          getUserData().getReplicationOptions().useSecureReplication(),
          getLocalHostPort(),
          getUserData().getHostPort(),
          knownReplicationServerIds, knownServerIds);
      localTimeMeasureTime = System.currentTimeMillis();
      localTime = Utils.getServerClock(connWrapper.getLdapContext());
@@ -2177,7 +2179,7 @@
      ReplicaDescriptor replica = suffix.getReplicas().iterator().next();
      ServerDescriptor server = replica.getServer();
      String hostPort = getHostPort(server);
      HostPort hostPort = getHostPort(server);
      boolean isADS = areDnsEqual(dn, ADSContext.getAdministrationSuffixDN());
      boolean isSchema = areDnsEqual(dn, Constants.SCHEMA_DN);
@@ -2323,7 +2325,7 @@
        {
          if (isVerbose())
          {
            notifyListeners(getFormattedWithPoints(INFO_PROGRESS_CREATING_ADS_ON_REMOTE.get(getHostDisplay(auth))));
            notifyListeners(getFormattedWithPoints(INFO_PROGRESS_CREATING_ADS_ON_REMOTE.get(auth.getHostPort())));
          }
          adsContext.createAdminData(null);
@@ -2427,7 +2429,7 @@
      LocalizableMessage msg;
      if (isRemoteServer)
      {
        msg = getMessageForException(ne, getHostDisplay(auth));
        msg = getMessageForException(ne, auth.getHostPort().toString());
      }
      else
      {
@@ -2438,7 +2440,7 @@
    catch (ADSContextException ace)
    {
      throw new ApplicationException(ReturnCode.CONFIGURATION_ERROR, (isRemoteServer ? INFO_REMOTE_ADS_EXCEPTION.get(
          getHostDisplay(auth), ace.getMessageObject()) : INFO_ADS_EXCEPTION.get(ace)), ace);
          auth.getHostPort(), ace.getMessageObject()) : INFO_ADS_EXCEPTION.get(ace)), ace);
    }
    finally
    {
@@ -2448,16 +2450,15 @@
  private ConnectionWrapper createConnection(AuthenticationData auth) throws NamingException
  {
    String ldapUrl = getLdapUrl(auth);
    String ldapUrl = auth.getLdapUrl();
    String dn = auth.getDn();
    String pwd = auth.getPwd();
    InitialLdapContext context = null;
    InitialLdapContext context;
    if (auth.useSecureConnection())
    {
      ApplicationTrustManager trustManager = getTrustManager();
      trustManager.setHost(auth.getHostName());
      trustManager.setHost(auth.getHostPort().getHost());
      context = createLdapsContext(ldapUrl, dn, pwd, getConnectTimeout(), null, trustManager, null);
    }
    else
@@ -2619,26 +2620,12 @@
        {
          type = PreferredConnection.Type.LDAP;
        }
        cnx.add(new PreferredConnection(getLdapUrl(auth), type));
        cnx.add(new PreferredConnection(auth.getLdapUrl(), type));
      }
    }
    return cnx;
  }
  private String getLdapUrl(AuthenticationData auth)
  {
    if (auth.useSecureConnection())
    {
      return "ldaps://" + auth.getHostName() + ":" + auth.getPort();
    }
    return "ldap://" + auth.getHostName() + ":" + auth.getPort();
  }
  private String getHostDisplay(AuthenticationData auth)
  {
    return auth.getHostName() + ":" + auth.getPort();
  }
  private Map<ADSContext.ServerProperty, Object> getNewServerAdsProperties(UserData userData)
  {
    Map<ADSContext.ServerProperty, Object> serverProperties = new HashMap<>();
@@ -2979,11 +2966,7 @@
    if (errorMsgs.isEmpty())
    {
      AuthenticationData auth = new AuthenticationData();
      auth.setHostName(host);
      if (port != null)
      {
        auth.setPort(port);
      }
      auth.setHostPort(new HostPort(host, port != null ? port : 0));
      auth.setDn(dn);
      auth.setPwd(pwd);
      auth.setUseSecureConnection(true);
@@ -3635,19 +3618,6 @@
    getUserData().setEnableWindowsService(b);
  }
  /**
   * Returns the number of free disk space in bytes required to install Open DS
   * For the moment we just return 20 Megabytes. TODO we might want to have
   * something dynamic to calculate the required free disk space for the
   * installation.
   *
   * @return the number of free disk space required to install Open DS.
   */
  private long getRequiredInstallSpace()
  {
    return 20 * 1024 * 1024;
  }
  /** Update the UserInstallData with the contents we discover in the ADS. */
  private Set<TopologyCacheException> updateUserDataWithSuffixesInADS(ADSContext adsContext,
      ApplicationTrustManager trustManager) throws TopologyCacheException
@@ -3919,7 +3889,7 @@
   *           if the replication mechanism cannot find a peer.
   */
  public void initializeSuffix(InitialLdapContext ctx, int replicaId, String suffixDn, boolean displayProgress,
      String sourceServerDisplay) throws ApplicationException, PeerNotFoundException
      HostPort sourceServerDisplay) throws ApplicationException, PeerNotFoundException
  {
    boolean taskCreated = false;
    int i = 1;
@@ -4190,12 +4160,7 @@
    return getUserData().getHostName() + ":" + getUserData().getReplicationOptions().getReplicationPort();
  }
  private String getLocalHostPort()
  {
    return getUserData().getHostName() + ":" + getUserData().getServerPort();
  }
  private void resetGenerationId(InitialLdapContext ctx, String suffixDn, String sourceServerDisplay)
  private void resetGenerationId(InitialLdapContext ctx, String suffixDn, HostPort sourceServerDisplay)
      throws ApplicationException
  {
    boolean taskCreated = false;
@@ -4368,9 +4333,9 @@
   *          the ServerDescriptor.
   * @return the host port string representation of the provided server.
   */
  protected String getHostPort(ServerDescriptor server)
  protected HostPort getHostPort(ServerDescriptor server)
  {
    String hostPort = null;
    HostPort hostPort = null;
    for (PreferredConnection connection : getPreferredConnections())
    {
opendj-server-legacy/src/main/java/org/opends/quicksetup/installer/InstallerHelper.java
@@ -81,6 +81,7 @@
import org.opends.server.tools.JavaPropertiesTool;
import org.forgerock.opendj.ldap.DN;
import org.opends.server.types.DirectoryException;
import org.opends.server.types.HostPort;
import org.opends.server.types.LDIFExportConfig;
import org.opends.server.types.OpenDsException;
import org.opends.server.util.LDIFException;
@@ -361,7 +362,7 @@
   *           if something goes wrong.
   */
  public void createBackend(ConnectionWrapper connWrapper, String backendName, Set<String> baseDNs,
      String serverDisplay, ManagedObjectDefinition<? extends BackendCfgClient, ? extends BackendCfg> backendType)
      HostPort serverDisplay, ManagedObjectDefinition<? extends BackendCfgClient, ? extends BackendCfg> backendType)
      throws ApplicationException
  {
    try
@@ -438,7 +439,7 @@
   */
  public ConfiguredReplication configureReplication(
      ConnectionWrapper connWrapper, Map<String,Set<String>> replicationServers,
      int replicationPort, boolean useSecureReplication, String serverDisplay,
      int replicationPort, boolean useSecureReplication, HostPort serverDisplay,
      Set<Integer> usedReplicationServerIds, Set<Integer> usedServerIds)
  throws ApplicationException
  {
@@ -647,7 +648,7 @@
   *           if something goes wrong.
   */
  public void unconfigureReplication(ConnectionWrapper connWrapper, ConfiguredReplication replConf,
      String serverDisplay) throws ApplicationException
      HostPort serverDisplay) throws ApplicationException
  {
    try
    {
opendj-server-legacy/src/main/java/org/opends/quicksetup/installer/ui/DataReplicationPanel.java
@@ -12,7 +12,7 @@
 * information: "Portions Copyright [year] [name of copyright owner]".
 *
 * Copyright 2008-2009 Sun Microsystems, Inc.
 * Portions Copyright 2013-2015 ForgeRock AS.
 * Portions Copyright 2013-2016 ForgeRock AS.
 */
package org.opends.quicksetup.installer.ui;
@@ -303,9 +303,9 @@
    case REMOTE_SERVER_PWD:
      return auth.getPwd();
    case REMOTE_SERVER_HOST:
      return auth.getHostName();
      return auth.getHostPort().getHost();
    case REMOTE_SERVER_PORT:
      return auth.getPort();
      return auth.getHostPort().getPort();
    case REPLICATION_OPTIONS:
      return defaultUserData.getReplicationOptions().getType();
    default:
opendj-server-legacy/src/main/java/org/opends/quicksetup/installer/ui/InstallReviewPanel.java
@@ -12,7 +12,7 @@
 * information: "Portions Copyright [year] [name of copyright owner]".
 *
 * Copyright 2006-2010 Sun Microsystems, Inc.
 * Portions Copyright 2013-2015 ForgeRock AS.
 * Portions Copyright 2013-2016 ForgeRock AS.
 */
package org.opends.quicksetup.installer.ui;
@@ -37,6 +37,7 @@
import org.opends.quicksetup.util.HtmlProgressMessageFormatter;
import org.opends.quicksetup.util.ProgressMessageFormatter;
import org.opends.quicksetup.util.Utils;
import org.opends.server.types.HostPort;
import javax.swing.Box;
import javax.swing.DefaultComboBoxModel;
@@ -79,7 +80,7 @@
  private JCheckBox enableWindowsServiceCheckBox;
  private JLabel warningLabel;
  private JComboBox viewCombo;
  private JComboBox<LocalizableMessage> viewCombo;
  private final LocalizableMessage DISPLAY_TEXT = INFO_REVIEW_DISPLAY_TEXT.get();
  private final LocalizableMessage DISPLAY_EQUIVALENT_COMMAND = INFO_REVIEW_DISPLAY_EQUIVALENT_COMMAND.get();
@@ -150,14 +151,11 @@
    final JLabel l = new JLabel(instructions.toString());
    l.setFont(UIFactory.INSTRUCTIONS_FONT);
    final LocalizableMessage[] values = {
    viewCombo = new JComboBox<LocalizableMessage>();
    viewCombo.setModel(new DefaultComboBoxModel<>(new LocalizableMessage[] {
      DISPLAY_TEXT,
      DISPLAY_EQUIVALENT_COMMAND
    };
    final DefaultComboBoxModel model = new DefaultComboBoxModel(values);
    viewCombo = new JComboBox();
    viewCombo.setModel(model);
    }));
    viewCombo.setSelectedIndex(0);
    viewCombo.addActionListener(new ActionListener()
@@ -351,7 +349,7 @@
        && !remotePorts.isEmpty())
    {
      final AuthenticationData authData = userInstallData.getReplicationOptions().getAuthenticationData();
      final String serverToConnectDisplay = authData == null ? "" : authData.getHostName() + ":" + authData.getPort();
      final HostPort serverToConnectDisplay = authData != null ? authData.getHostPort() : new HostPort(null, 0);
      String s;
      if (userInstallData.getReplicationOptions().useSecureReplication())
      {
@@ -367,8 +365,8 @@
      final TreeSet<LocalizableMessage> remoteServerLines = new TreeSet<>();
      for (final ServerDescriptor server : remotePorts.keySet())
      {
        String serverDisplay;
        if (server.getHostPort(false).equalsIgnoreCase(serverToConnectDisplay))
        HostPort serverDisplay;
        if (server.getHostPort(false).equals(serverToConnectDisplay))
        {
          serverDisplay = serverToConnectDisplay;
        }
opendj-server-legacy/src/main/java/org/opends/quicksetup/installer/ui/RemoteReplicationPortsPanel.java
@@ -12,9 +12,8 @@
 * information: "Portions Copyright [year] [name of copyright owner]".
 *
 * Copyright 2008-2009 Sun Microsystems, Inc.
 * Portions Copyright 2014-2015 ForgeRock AS.
 * Portions Copyright 2014-2016 ForgeRock AS.
 */
package org.opends.quicksetup.installer.ui;
import org.forgerock.i18n.LocalizableMessage;
@@ -47,6 +46,7 @@
import org.opends.quicksetup.ui.LabelFieldDescriptor;
import org.opends.quicksetup.ui.QuickSetupStepPanel;
import org.opends.quicksetup.ui.UIFactory;
import org.opends.server.types.HostPort;
/**
 * This class is used to provide a data model for the list of servers for which
@@ -62,9 +62,9 @@
  private HashMap<String, JCheckBox> hmCbs = new HashMap<>();
  private JScrollPane scroll;
  private JPanel fieldsPanel;
  private TreeSet<ServerDescriptor> orderedServers = new TreeSet<>(this);
  private TreeSet<ServerDescriptor> orderedServers = new TreeSet<>();
  /** The display of the server the user provided in the replication options panel. */
  private String serverToConnectDisplay;
  private HostPort serverToConnectDisplay;
  /**
   * Constructor of the panel.
@@ -152,7 +152,7 @@
  /** {@inheritDoc} */
  public int compare(ServerDescriptor desc1, ServerDescriptor desc2)
  {
    return desc1.getHostPort(true).compareTo(desc2.getHostPort(true));
    return desc1.getHostPort(true).toString().compareTo(desc2.getHostPort(true).toString());
  }
  /** {@inheritDoc} */
@@ -197,15 +197,7 @@
        data.getRemoteWithNoReplicationPort().keySet());
    AuthenticationData authData =
      data.getReplicationOptions().getAuthenticationData();
    String newServerDisplay;
    if (authData != null)
    {
      newServerDisplay = authData.getHostName()+":"+authData.getPort();
    }
    else
    {
      newServerDisplay = "";
    }
    HostPort newServerDisplay = authData != null ? authData.getHostPort() : new HostPort(null, 0);
    if (!array.equals(orderedServers) ||
        !newServerDisplay.equals(serverToConnectDisplay))
    {
@@ -240,8 +232,8 @@
      hmLabels.clear();
      for (ServerDescriptor server : orderedServers)
      {
        String serverDisplay;
        if (server.getHostPort(false).equalsIgnoreCase(serverToConnectDisplay))
        HostPort serverDisplay;
        if (server.getHostPort(false).equals(serverToConnectDisplay))
        {
          serverDisplay = serverToConnectDisplay;
        }
@@ -250,7 +242,7 @@
          serverDisplay = server.getHostPort(true);
        }
        LabelFieldDescriptor desc = new LabelFieldDescriptor(
                LocalizableMessage.raw(serverDisplay),
                LocalizableMessage.raw(serverDisplay.toString()),
                INFO_REPLICATION_PORT_TOOLTIP.get(),
                LabelFieldDescriptor.FieldType.TEXTFIELD,
                LabelFieldDescriptor.LabelType.PRIMARY,
opendj-server-legacy/src/main/java/org/opends/quicksetup/installer/ui/SuffixesToReplicatePanel.java
@@ -12,7 +12,7 @@
 * information: "Portions Copyright [year] [name of copyright owner]".
 *
 * Copyright 2008-2010 Sun Microsystems, Inc.
 * Portions Copyright 2013-2015 ForgeRock AS.
 * Portions Copyright 2013-2016 ForgeRock AS.
 */
package org.opends.quicksetup.installer.ui;
@@ -59,6 +59,7 @@
import org.opends.server.config.ConfigConstants;
import org.opends.server.tools.BackendTypeHelper;
import org.opends.server.tools.BackendTypeHelper.BackendTypeUIAdapter;
import org.opends.server.types.HostPort;
/**
 * This class is used to provide a data model for the list of suffixes that we
@@ -73,11 +74,8 @@
  private final Set<SuffixDescriptor> orderedSuffixes = new TreeSet<>(this);
  private final Map<String, JCheckBox> hmCheckBoxes = new HashMap<>();
  private final Map<String, JComboBox<BackendTypeUIAdapter>> backendTypeComboBoxes = new HashMap<>();
  /**
   * The display of the server the user provided in the replication options
   * panel.
   */
  private String serverToConnectDisplay;
  /** The display of the server the user provided in the replication options panel. */
  private HostPort serverToConnectDisplay;
  private JLabel noSuffixLabel;
  private Component labelGlue;
@@ -216,8 +214,7 @@
  {
    Set<SuffixDescriptor> array = orderSuffixes(data.getSuffixesToReplicateOptions().getAvailableSuffixes());
    AuthenticationData authData = data.getReplicationOptions().getAuthenticationData();
    String newServerDisplay;
    newServerDisplay = authData != null ? authData.getHostName() + ":" + authData.getPort() : "";
    HostPort newServerDisplay = authData != null ? authData.getHostPort() : new HostPort(null, 0);
    if (!array.equals(orderedSuffixes) || !newServerDisplay.equals(serverToConnectDisplay))
    {
@@ -422,14 +419,14 @@
    Set<String> replicaDisplays = new TreeSet<>();
    for (ReplicaDescriptor rep : desc.getReplicas())
    {
      replicaDisplays.add(getServerDisplay(rep));
      replicaDisplays.add(getServerDisplay(rep).toString());
    }
    return joinAsString("\n", replicaDisplays);
  }
  private String getServerDisplay(ReplicaDescriptor replica)
  private HostPort getServerDisplay(ReplicaDescriptor replica)
  {
    final boolean isServerToConnect = replica.getServer().getHostPort(false).equalsIgnoreCase(serverToConnectDisplay);
    final boolean isServerToConnect = replica.getServer().getHostPort(false).equals(serverToConnectDisplay);
    return isServerToConnect ? serverToConnectDisplay : replica.getServer().getHostPort(true);
  }
@@ -450,5 +447,4 @@
  {
    return getSuffixString(desc1).compareTo(getSuffixString(desc2));
  }
}
opendj-server-legacy/src/main/java/org/opends/quicksetup/util/Utils.java
@@ -1854,10 +1854,9 @@
      if (s.getAdminConnectorURL().equals(server.getAdminConnectorURL()))
      {
        AuthenticationData remoteRepl = userData.getRemoteWithNoReplicationPort().get(server);
        int remoteReplicationPort = remoteRepl.getPort();
        cmdLine.add("--replicationPort1");
        cmdLine.add(String.valueOf(remoteReplicationPort));
        cmdLine.add(String.valueOf(remoteRepl.getPort()));
        if (remoteRepl.useSecureConnection())
        {
          cmdLine.add("--secureReplication1");
@@ -2029,8 +2028,7 @@
    Set<SuffixDescriptor> suffixes = userData.getSuffixesToReplicateOptions().getSuffixes();
    AuthenticationData authData = userData.getReplicationOptions().getAuthenticationData();
    String ldapURL =
        ConnectionUtils.getLDAPUrl(authData.getHostName(), authData.getPort(), authData.useSecureConnection());
    String ldapURL = ConnectionUtils.getLDAPUrl(authData.getHostPort(), authData.useSecureConnection());
    for (SuffixDescriptor suffix : suffixes)
    {
      boolean found = false;
opendj-server-legacy/src/main/java/org/opends/server/tools/dsreplication/EnableReplicationUserData.java
@@ -12,10 +12,12 @@
 * information: "Portions Copyright [year] [name of copyright owner]".
 *
 * Copyright 2008-2009 Sun Microsystems, Inc.
 * Portions Copyright 2015 ForgeRock AS.
 * Portions Copyright 2015-2016 ForgeRock AS.
 */
package org.opends.server.tools.dsreplication;
import org.opends.server.types.HostPort;
/**
 * This class is used to store the information provided by the user to enable
 * replication.  It is required because when we are in interactive mode the
@@ -26,8 +28,7 @@
  /** Data for enabling replication on a server. */
  static final class EnableReplicationServerData
  {
    private String hostName;
    private int port;
    private HostPort hostPort = new HostPort(null, 0);
    private String bindDn;
    private String pwd;
    private int replicationPort;
@@ -36,24 +37,34 @@
    private boolean configureReplicationDomain = true;
    /**
     * Returns the host name and port of this server.
     *
     * @return the host name and port of this server.
     */
    HostPort getHostPort()
    {
      return hostPort;
    }
    /**
     * Sets the host name and port of this server.
     *
     * @param hostPort
     *          the host name and port of this server
     */
    void setHostPort(HostPort hostPort)
    {
      this.hostPort = hostPort;
    }
    /**
     * Returns the host name of this server.
     *
     * @return the host name of this server.
     */
    String getHostName()
    {
      return hostName;
    }
    /**
     * Sets the host name of this server.
     *
     * @param hostName
     *          the host name of this server
     */
    void setHostName(String hostName)
    {
      this.hostName = hostName;
      return hostPort.getHost();
    }
    /**
@@ -63,18 +74,7 @@
     */
    int getPort()
    {
      return port;
    }
    /**
     * Sets the port of this server.
     *
     * @param port
     *          the port of this server
     */
    void setPort(int port)
    {
      this.port = port;
      return hostPort.getPort();
    }
    /**
opendj-server-legacy/src/main/java/org/opends/server/tools/dsreplication/MonoServerReplicationUserData.java
@@ -12,57 +12,38 @@
 * information: "Portions Copyright [year] [name of copyright owner]".
 *
 * Copyright 2008-2009 Sun Microsystems, Inc.
 * Portions Copyright 2016 ForgeRock AS.
 */
package org.opends.server.tools.dsreplication;
/**
 * This is an abstract class used for code refactorization.
 *
 */
import org.opends.server.types.HostPort;
/** This is an abstract class used for code factorization. */
abstract class MonoServerReplicationUserData extends ReplicationUserData
{
  private String hostName;
  private int port;
  private HostPort hostPort = new HostPort(null, 0);
  private boolean useStartTLS;
  private boolean useSSL;
  /**
   * Returns the host name of the server.
   * @return the host name of the server.
   * Returns the host name and port of the server.
   * @return the host name and port of the server.
   */
  public String getHostName()
  public HostPort getHostPort()
  {
    return hostName;
    return hostPort;
  }
  /**
   * Sets the host name of the server.
   * @param hostName the host name of the server.
   * Sets the host name and port of the server.
   * @param hostPort the host name and port of the server.
   */
  public void setHostName(String hostName)
  public void setHostPort(HostPort hostPort)
  {
    this.hostName = hostName;
    this.hostPort = hostPort;
  }
  /**
   * Returns the port of the server.
   * @return the port of the server.
   */
  public int getPort()
  {
    return port;
  }
  /**
   * Sets the port of the server.
   * @param port the port of the server.
   */
  public void setPort(int port)
  {
    this.port = port;
  }
  /**
   * Returns <CODE>true</CODE> if we must use SSL to connect to the server and
   * <CODE>false</CODE> otherwise.
   * @return <CODE>true</CODE> if we must use SSL to connect to the server and
@@ -102,5 +83,3 @@
    this.useStartTLS = useStartTLS;
  }
}
opendj-server-legacy/src/main/java/org/opends/server/tools/dsreplication/PurgeHistoricalUserData.java
@@ -12,7 +12,7 @@
 * information: "Portions Copyright [year] [name of copyright owner]".
 *
 * Copyright 2010 Sun Microsystems, Inc.
 * Portions Copyright 2014-2015 ForgeRock AS.
 * Portions Copyright 2014-2016 ForgeRock AS.
 */
package org.opends.server.tools.dsreplication;
@@ -29,6 +29,7 @@
import org.opends.server.admin.client.cli.TaskScheduleArgs;
import org.opends.server.tools.tasks.TaskClient;
import org.opends.server.tools.tasks.TaskScheduleUserData;
import org.opends.server.types.HostPort;
import org.opends.server.types.RawAttribute;
/** This class is used to store the information provided by the user to purge historical data. */
@@ -121,8 +122,8 @@
    {
      uData.setAdminUid(argParser.getAdministratorUIDOrDefault());
      uData.setAdminPwd(argParser.getBindPasswordAdmin());
      uData.setHostName(argParser.getHostNameToStatusOrDefault());
      uData.setPort(argParser.getPortToStatusOrDefault());
      uData.setHostPort(new HostPort(
          argParser.getHostNameToStatusOrDefault(), argParser.getPortToStatusOrDefault()));
      uData.setOnline(true);
      TaskScheduleUserData taskSchedule = new TaskScheduleUserData();
      TaskScheduleArgs taskArgs = argParser.getTaskArgsList();
opendj-server-legacy/src/main/java/org/opends/server/tools/dsreplication/ReplicationCliMain.java
@@ -142,7 +142,6 @@
import static org.opends.admin.ads.util.ConnectionUtils.*;
import static org.opends.admin.ads.util.PreferredConnection.*;
import static org.opends.admin.ads.ServerDescriptor.getReplicationServer;
import static org.opends.admin.ads.ServerDescriptor.getServerRepresentation;
import static org.opends.admin.ads.ServerDescriptor.getSuffixDisplay;
import static org.opends.messages.AdminToolMessages.*;
import static org.opends.messages.QuickSetupMessages.*;
@@ -1042,10 +1041,8 @@
   * Returns an InitialLdapContext using the provided parameters. We try to
   * guarantee that the connection is able to read the configuration.
   *
   * @param host
   *          the host name.
   * @param port
   *          the port to connect.
   * @param hostPort
   *          the host name and port to connect.
   * @param useSSL
   *          whether to use SSL or not.
   * @param useStartTLS
@@ -1062,13 +1059,13 @@
   * @throws NamingException
   *           if there was an error establishing the connection.
   */
  private InitialLdapContext createAdministrativeContext(String host,
      int port, boolean useSSL, boolean useStartTLS, String bindDn, String pwd,
  private InitialLdapContext createAdministrativeContext(HostPort hostPort,
      boolean useSSL, boolean useStartTLS, String bindDn, String pwd,
      int connectTimeout, ApplicationTrustManager trustManager)
      throws NamingException
  {
    InitialLdapContext ctx;
    String ldapUrl = getLDAPUrl(host, port, useSSL);
    String ldapUrl = getLDAPUrl(hostPort, useSSL);
    if (useSSL)
    {
      ctx = createLdapsContext(ldapUrl, bindDn, pwd, connectTimeout, null, trustManager, null);
@@ -1229,9 +1226,8 @@
                  ReturnCode.CLIENT_SIDE_CONNECT_ERROR, message);
            }
          }
          String hostPort =
              ServerDescriptor.getServerRepresentation(hostName, portNumber);
          LocalizableMessage message = getMessageForException(e, hostPort);
          HostPort hostPort = new HostPort(hostName, portNumber);
          LocalizableMessage message = getMessageForException(e, hostPort.toString());
          throw new ClientException(ReturnCode.CLIENT_SIDE_CONNECT_ERROR, message);
        }
      }
@@ -1361,7 +1357,6 @@
  private ReplicationCliReturnCode resetChangeNumber()
  {
    final String changeNumber;
    final SourceDestinationServerUserData uData = new SourceDestinationServerUserData();
    if (!argParser.isInteractive())
@@ -1593,8 +1588,7 @@
    }
    catch (NamingException e)
    {
      String hostPort = getServerRepresentation(uData.getHostName(), uData.getPort());
      logger.error(LocalizableMessage.raw("Error when creating connection for:" + hostPort));
      logger.error(LocalizableMessage.raw("Error when creating connection for:" + uData.getHostPort()));
      return null;
    }
  }
@@ -1603,15 +1597,13 @@
  {
    try
    {
      return createAdministrativeContext(uData.getHostName(), uData.getPort(),
          useSSL, useStartTLS, bindDn,
      return createAdministrativeContext(uData.getHostPort(), useSSL, useStartTLS, bindDn,
          uData.getAdminPwd(), getConnectTimeout(), getTrustManager(sourceServerCI));
    }
    catch (NamingException ne)
    {
      String hostPort = getServerRepresentation(uData.getHostName(), uData.getPort());
      errPrintln();
      errPrintln(getMessageForException(ne, hostPort));
      errPrintln(getMessageForException(ne, uData.getHostPort().toString()));
      logger.error(LocalizableMessage.raw("Complete error stack:"), ne);
      return null;
    }
@@ -1773,7 +1765,7 @@
  private LocalizableMessage getPurgeErrorMsg(String lastLogMsg, String state, InitialLdapContext ctx)
  {
    String server = getHostPort(ctx);
    HostPort server = getHostPort(ctx);
    if (lastLogMsg != null)
    {
      return ERR_UNEXPECTED_DURING_TASK_WITH_LOG.get(lastLogMsg, state, server);
@@ -2122,8 +2114,7 @@
        if (ctx != null)
        {
          uData.setOnline(true);
          uData.setHostName(sourceServerCI.getHostName());
          uData.setPort(sourceServerCI.getPortNumber());
          uData.setHostPort(new HostPort(sourceServerCI.getHostName(), sourceServerCI.getPortNumber()));
          uData.setAdminUid(sourceServerCI.getAdministratorUID());
          uData.setAdminPwd(sourceServerCI.getBindPassword());
        }
@@ -2263,8 +2254,7 @@
    if (!cancelled)
    {
      uData.getServer1().setHostName(host1);
      uData.getServer1().setPort(port1);
      uData.getServer1().setHostPort(new HostPort(host1, port1));
      uData.getServer1().setBindDn(bindDn1);
      uData.getServer1().setPwd(pwd1);
    }
@@ -2531,8 +2521,7 @@
    if (!cancelled)
    {
      uData.getServer2().setHostName(host2);
      uData.getServer2().setPort(port2);
      uData.getServer2().setHostPort(new HostPort(host2, port2));
      uData.getServer2().setBindDn(bindDn2);
      uData.getServer2().setPwd(pwd2);
    }
@@ -2834,8 +2823,7 @@
    if (!cancelled)
    {
      uData.setHostName(host);
      uData.setPort(port);
      uData.setHostPort(new HostPort(host, port));
      uData.setAdminUid(adminUid);
      uData.setBindDn(bindDn);
      uData.setAdminPwd(adminPwd);
@@ -3027,7 +3015,7 @@
  private LocalizableMessage getPrompt(InitializeAllReplicationUserData uData, InitialLdapContext ctx)
  {
    String hostPortSource = getHostPort(ctx);
    HostPort hostPortSource = getHostPort(ctx);
    if (initializeADS(uData.getBaseDNs()))
    {
      return INFO_REPLICATION_CONFIRM_INITIALIZE_ALL_ADS.get(ADSContext.getAdministrationSuffixDN(), hostPortSource);
@@ -3108,8 +3096,7 @@
        InitialLdapContext ctx = createInitialLdapContextInteracting(sourceServerCI);
        if (ctx != null)
        {
          uData.setHostName(sourceServerCI.getHostName());
          uData.setPort(sourceServerCI.getPortNumber());
          uData.setHostPort(new HostPort(sourceServerCI.getHostName(), sourceServerCI.getPortNumber()));
          uData.setAdminUid(sourceServerCI.getAdministratorUID());
          uData.setAdminPwd(sourceServerCI.getBindPassword());
          if (uData instanceof StatusReplicationUserData)
@@ -3357,8 +3344,8 @@
  private LocalizableMessage getInitializeReplicationPrompt(SourceDestinationServerUserData uData,
      InitialLdapContext ctxSource, InitialLdapContext ctxDestination)
  {
    String hostPortSource = getHostPort(ctxSource);
    String hostPortDestination = getHostPort(ctxDestination);
    HostPort hostPortSource = getHostPort(ctxSource);
    HostPort hostPortDestination = getHostPort(ctxDestination);
    if (initializeADS(uData.getBaseDNs()))
    {
      final String adminSuffixDN = ADSContext.getAdministrationSuffixDN();
@@ -3413,8 +3400,8 @@
  private void setConnectionDetails(
      EnableReplicationServerData server, ServerArgs args, String adminDN, String adminPwd)
  {
    server.setHostName(getValueOrDefault(args.hostNameArg));
    server.setPort(getValueOrDefault(args.portArg));
    server.setHostPort(new HostPort(
        getValueOrDefault(args.hostNameArg), getValueOrDefault(args.portArg)));
    String pwd = args.getBindPassword();
    if (pwd == null)
@@ -3427,7 +3414,7 @@
      // Best-effort: try to use admin, if it does not work, use bind DN.
      try
      {
        InitialLdapContext ctx = createAdministrativeContext(server.getHostName(), server.getPort(),
        InitialLdapContext ctx = createAdministrativeContext(server.getHostPort(),
            useSSL, useStartTLS, adminDN, adminPwd, getConnectTimeout(), getTrustManager(sourceServerCI));
        server.setBindDn(adminDN);
        server.setPwd(adminPwd);
@@ -3488,8 +3475,8 @@
    uData.setBindDn(bindDn);
    uData.setAdminPwd(argParser.getBindPasswordAdmin());
    uData.setHostName(argParser.getHostNameToDisableOrDefault());
    uData.setPort(argParser.getPortToDisableOrDefault());
    uData.setHostPort(new HostPort(
        argParser.getHostNameToDisableOrDefault(), argParser.getPortToDisableOrDefault()));
    uData.setDisableAll(argParser.disableAllArg.isPresent());
    uData.setDisableReplicationServer(argParser.disableReplicationServerArg.isPresent());
@@ -3504,8 +3491,8 @@
  {
    initialize(uData);
    uData.setHostName(argParser.getHostNameToInitializeAllOrDefault());
    uData.setPort(argParser.getPortToInitializeAllOrDefault());
    uData.setHostPort(new HostPort(
        argParser.getHostNameToInitializeAllOrDefault(), argParser.getPortToInitializeAllOrDefault()));
  }
  /**
@@ -3518,8 +3505,7 @@
  {
    initialize(uData);
    uData.setHostName(argParser.getHostNameToStatusOrDefault());
    uData.setPort(argParser.getPortToStatusOrDefault());
    uData.setHostPort(new HostPort(argParser.getHostNameToStatusOrDefault(), argParser.getPortToStatusOrDefault()));
    uData.setScriptFriendly(argParser.isScriptFriendly());
  }
@@ -3602,8 +3588,7 @@
    boolean triedWithUserProvidedAdmin = false;
    final ConnectionWrapper connWrapper1 = connWrapper.get();
    final InitialLdapContext ctx1 = connWrapper1.getLdapContext();
    String host = getHostName(ctx1);
    int port = getPort(ctx1);
    HostPort hostPort = getHostPort(ctx1);
    boolean isSSL = isSSL(ctx1);
    boolean isStartTLS = isStartTLS(ctx1);
    if (getTrustManager(ci) == null)
@@ -3695,9 +3680,8 @@
                  close(ctx1);
                  try
                  {
                    final InitialLdapContext ctx2 = createAdministrativeContext(host, port, isSSL,
                        isStartTLS, getAdministratorDN(adminUid),
                        adminPwd, getConnectTimeout(), getTrustManager(ci));
                    final InitialLdapContext ctx2 = createAdministrativeContext(hostPort, isSSL, isStartTLS,
                        getAdministratorDN(adminUid), adminPwd, getConnectTimeout(), getTrustManager(ci));
                    final ConnectionWrapper connWrapper2 =
                        new ConnectionWrapper(ctx2, getConnectTimeout(), getTrustManager(ci));
                    connWrapper.set(connWrapper2);
@@ -3712,9 +3696,7 @@
                  catch (Throwable t)
                  {
                    errPrintln();
                    errPrintln(
                        ERR_ERROR_CONNECTING_TO_SERVER_PROMPT_AGAIN.get(
                          getServerRepresentation(host, port), t.getMessage()));
                    errPrintln(ERR_ERROR_CONNECTING_TO_SERVER_PROMPT_AGAIN.get(hostPort, t.getMessage()));
                    logger.warn(LocalizableMessage.raw("Complete error stack:", t));
                    errPrintln();
                  }
@@ -4188,8 +4170,7 @@
    }
    catch (NamingException e)
    {
      String hostPort = getServerRepresentation(server.getHostName(), server.getPort());
      logger.error(LocalizableMessage.raw("Error when creating connection for:" + hostPort));
      logger.error(LocalizableMessage.raw("Error when creating connection for:" + server.getHostPort()));
      return null;
    }
  }
@@ -4201,13 +4182,12 @@
    try
    {
      return createAdministrativeContext(
          server.getHostName(), server.getPort(), useSSL, useStartTLS, server.getBindDn(), server.getPwd(),
          server.getHostPort(), useSSL, useStartTLS, server.getBindDn(), server.getPwd(),
          getConnectTimeout(), getTrustManager(sourceServerCI));
    }
    catch (NamingException ne)
    {
      String hostPort = getServerRepresentation(server.getHostName(), server.getPort());
      errorMessages.add(getMessageForException(ne, hostPort));
      errorMessages.add(getMessageForException(ne, server.getHostPort().toString()));
      logger.error(LocalizableMessage.raw("Complete error stack:"), ne);
      return null;
    }
@@ -4401,7 +4381,7 @@
    try
    {
      return createAdministrativeContext(
          server.getHost(), server.getPort(), useSSL, useStartTLS,
          server, useSSL, useStartTLS,
          getAdministratorDN(uData.getAdminUid()), uData.getAdminPwd(),
          getConnectTimeout(), getTrustManager(sourceServerCI));
    }
@@ -5706,7 +5686,7 @@
    catch (NamingException ne)
    {
      throw new ReplicationCliException(
          getMessageForException(ne, getHostPort(ctx)),
          getMessageForException(ne, getHostPort(ctx).toString()),
          ERROR_READING_CONFIGURATION, ne);
    }
  }
@@ -6332,7 +6312,7 @@
      Set<ServerDescriptor> serversWithNoReplica)
  {
    Set<ReplicaDescriptor> orderedReplicas = new LinkedHashSet<>();
    Set<String> hostPorts = new TreeSet<>();
    Set<HostPort> hostPorts = new TreeSet<>();
    Set<ServerDescriptor> notAddedReplicationServers = new TreeSet<>(new ReplicationServerComparator());
    for (Set<ReplicaDescriptor> replicas : orderedReplicaLists)
    {
@@ -6340,7 +6320,7 @@
      {
        hostPorts.add(getHostPort2(replica.getServer(), cnx));
      }
      for (String hostPort : hostPorts)
      for (HostPort hostPort : hostPorts)
      {
        for (ReplicaDescriptor replica : replicas)
        {
@@ -6401,8 +6381,7 @@
      // Suffix DN
      tableBuilder.appendCell(LocalizableMessage.raw(replica.getSuffix().getDN()));
      // Server port
      tableBuilder.appendCell(
          LocalizableMessage.raw(getHostPort2(replica.getServer(), cnx)));
      tableBuilder.appendCell(LocalizableMessage.raw("%s", getHostPort2(replica.getServer(), cnx)));
      // Number of entries
      int nEntries = replica.getEntries();
      if (nEntries >= 0)
@@ -6496,7 +6475,7 @@
      // Suffix DN
      tableBuilder.appendCell(EMPTY_MSG);
      // Server port
      tableBuilder.appendCell(LocalizableMessage.raw(getHostPort2(server, cnx)));
      tableBuilder.appendCell(LocalizableMessage.raw("%s", getHostPort2(server, cnx)));
      // Number of entries
      if (scriptFriendly)
      {
@@ -6600,7 +6579,7 @@
    {
      tableBuilder.startRow();
      // Server port
      tableBuilder.appendCell(LocalizableMessage.raw(getHostPort2(server, cnx)));
      tableBuilder.appendCell(LocalizableMessage.raw("%s", getHostPort2(server, cnx)));
      // Replication port
      int replicationPort = server.getReplicationServerPort();
      if (replicationPort >= 0)
@@ -7143,16 +7122,15 @@
      }
      catch (NamingException ne)
      {
        String hostPort = getHostPort2(s, cache.getPreferredConnections());
        LocalizableMessage msg = getMessageForException(ne, hostPort);
        HostPort hostPort = getHostPort2(s, cache.getPreferredConnections());
        LocalizableMessage msg = getMessageForException(ne, hostPort.toString());
        throw new ReplicationCliException(msg, ERROR_CONNECTING, ne);
      }
      catch (Exception ode)
      {
        String hostPort = getHostPort2(s, cache.getPreferredConnections());
        HostPort hostPort = getHostPort2(s, cache.getPreferredConnections());
        LocalizableMessage msg = getMessageForEnableException(hostPort, baseDN);
        throw new ReplicationCliException(msg,
            ERROR_ENABLING_REPLICATION_ON_BASEDN, ode);
        throw new ReplicationCliException(msg, ERROR_ENABLING_REPLICATION_ON_BASEDN, ode);
      }
      finally
      {
@@ -7203,8 +7181,7 @@
    }
    catch (NamingException ne)
    {
      String hostPort = getHostPort(ctxSource);
      LocalizableMessage msg = getMessageForException(ne, hostPort);
      LocalizableMessage msg = getMessageForException(ne, getHostPort(ctxSource).toString());
      throw new ReplicationCliException(msg, ERROR_READING_CONFIGURATION, ne);
    }
@@ -7425,7 +7402,7 @@
  private LocalizableMessage getPrePostErrorMsg(String lastLogMsg, String state, InitialLdapContext ctx)
  {
    String server = getHostPort(ctx);
    HostPort server = getHostPort(ctx);
    if (lastLogMsg != null)
    {
      return ERR_UNEXPECTED_DURING_TASK_WITH_LOG.get(lastLogMsg, state, server);
@@ -7461,7 +7438,7 @@
  {
    boolean isOver = false;
    String dn = null;
    String serverDisplay = getHostPort(ctx);
    HostPort serverDisplay = getHostPort(ctx);
    Map<String, String> attrsMap = new TreeMap<>();
    attrsMap.put("ds-task-initialize-domain-dn", baseDN);
    attrsMap.put("ds-task-initialize-replica-server-id", "all");
@@ -7667,7 +7644,7 @@
    }
  }
  private LocalizableMessage getInitializeAllErrorMsg(String serverDisplay, String lastLogMsg, String state)
  private LocalizableMessage getInitializeAllErrorMsg(HostPort serverDisplay, String lastLogMsg, String state)
  {
    if (lastLogMsg != null)
    {
@@ -7752,7 +7729,7 @@
        pwd, getTrustManager(sourceServerCI), getConnectTimeout(), cnx, filter);
    ConnectionWrapper ctx = null;
    String lastBaseDN = null;
    String hostPort = null;
    HostPort hostPort = null;
    try
    {
@@ -7842,7 +7819,7 @@
    catch (NamingException ne)
    {
      hostPort = getHostPort2(server, cnx);
      LocalizableMessage msg = getMessageForException(ne, hostPort);
      LocalizableMessage msg = getMessageForException(ne, hostPort.toString());
      throw new ReplicationCliException(msg, ERROR_CONNECTING, ne);
    }
    catch (Exception ode)
@@ -7877,7 +7854,7 @@
   */
  private void deleteReplicationDomain(ConnectionWrapper ctx, String baseDN) throws ReplicationCliException
  {
    String hostPort = getHostPort(ctx.getLdapContext());
    HostPort hostPort = getHostPort(ctx.getLdapContext());
    try
    {
      RootCfgClient root = ctx.getRootConfiguration();
@@ -7933,7 +7910,7 @@
  private void disableReplicationServer(ConnectionWrapper connWrapper)
  throws ReplicationCliException
  {
    String hostPort = getHostPort(connWrapper.getLdapContext());
    HostPort hostPort = getHostPort(connWrapper.getLdapContext());
    try
    {
      RootCfgClient root = connWrapper.getRootConfiguration();
@@ -7990,7 +7967,7 @@
   * the replication domain or updating the list of replication servers of
   * the replication domain).
   */
  private LocalizableMessage getMessageForEnableException(String hostPort, String baseDN)
  private LocalizableMessage getMessageForEnableException(HostPort hostPort, String baseDN)
  {
    return ERR_REPLICATION_CONFIGURING_BASEDN.get(baseDN, hostPort);
  }
@@ -8009,7 +7986,7 @@
   * the replication domain or updating the list of replication servers of
   * the replication domain).
   */
  private LocalizableMessage getMessageForDisableException(String hostPort, String baseDN)
  private LocalizableMessage getMessageForDisableException(HostPort hostPort, String baseDN)
  {
    return ERR_REPLICATION_CONFIGURING_BASEDN.get(baseDN, hostPort);
  }
@@ -8352,10 +8329,9 @@
   * @param cnx the preferred connections list.
   * @return the host port string representation of the provided server.
   */
  private String getHostPort2(ServerDescriptor server,
      Collection<PreferredConnection> cnx)
  private HostPort getHostPort2(ServerDescriptor server, Collection<PreferredConnection> cnx)
  {
    String hostPort = null;
    HostPort hostPort = null;
    for (PreferredConnection connection : cnx)
    {
      String url = connection.getLDAPURL();
@@ -9495,8 +9471,8 @@
        ctxDestination = adsCtx1.getDirContext();
      }
      String hostPortSource = getHostPort(ctxSource);
      String hostPortDestination = getHostPort(ctxDestination);
      HostPort hostPortSource = getHostPort(ctxSource);
      HostPort hostPortDestination = getHostPort(ctxDestination);
      if (isInteractive())
      {
        LocalizableMessage msg = INFO_REPLICATION_MERGING_REGISTRIES_CONFIRMATION.get(hostPortSource,
opendj-server-legacy/src/main/java/org/opends/server/types/HostPort.java
@@ -12,13 +12,14 @@
 * information: "Portions Copyright [year] [name of copyright owner]".
 *
 * Copyright 2006-2008 Sun Microsystems, Inc.
 * Portions Copyright 2013-2015 ForgeRock AS.
 * Portions Copyright 2013-2016 ForgeRock AS.
 */
package org.opends.server.types;
import java.net.*;
import java.util.Enumeration;
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
import org.forgerock.i18n.slf4j.LocalizedLogger;
@@ -385,17 +386,6 @@
  }
  /**
   * Returns a normalized string representation of this {@code HostPort} object.
   *
   * @return A string representation of this {@code HostPort} object.
   * @see #normalizedHost what host normalization covers
   */
  private String toNormalizedString()
  {
    return toString(normalizedHost);
  }
  /**
   * Inner computation for #toString() and {@link #toNormalizedString()}.
   *
   * @param hostName
@@ -501,19 +491,7 @@
    }
    HostPort other = (HostPort) obj;
    if (normalizedHost == null)
    {
      if (other.normalizedHost != null)
      {
        return false;
      }
    }
    else if (!normalizedHost.equals(other.normalizedHost))
    {
      return false;
    }
    return port == other.port;
    return port == other.port && Objects.equals(normalizedHost, other.normalizedHost);
  }
  /**
@@ -531,5 +509,4 @@
    result = prime * result + port;
    return result;
  }
}