private void exchangeLocalLocators(int port, DistributionConfigImpl config,
      LocatorMembershipListener locatorListener, final String hostnameForClients) {
    final String localLocator = config.getStartLocator();
    final String memberName = config.getName();

    final DistributionLocatorId locatorId;
    if (localLocator.equals(DistributionConfig.DEFAULT_START_LOCATOR)) {
      locatorId = new DistributionLocatorId(port, config.getBindAddress(), hostnameForClients,
          memberName);
    } else {
      locatorId = DistributionLocatorId.unmarshal(localLocator, memberName);
    }

    LocatorHelper.addLocator(config.getDistributedSystemId(), locatorId, locatorListener, null);

    RemoteLocatorJoinRequest request = buildRemoteDSJoinRequest(port, config, hostnameForClients);
    StringTokenizer locatorsOnThisVM = new StringTokenizer(config.getLocators(), ",");
    while (locatorsOnThisVM.hasMoreTokens()) {
      DistributionLocatorId localLocatorId =
          DistributionLocatorId.unmarshal(locatorsOnThisVM.nextToken());
      if (!locatorId.equals(localLocatorId)) {
        LocatorDiscovery localDiscovery =
            new LocatorDiscovery(this, localLocatorId, request, locatorListener);
        LocatorDiscovery.LocalLocatorDiscovery localLocatorDiscovery =
            localDiscovery.new LocalLocatorDiscovery();
        _executor.execute(localLocatorDiscovery);
      }
    }
  }
For WAN 70 Exchange the locator information within the distributed system
geode-wan/src/main/java/org/apache/geode/cache/wan/internal/client/locator/WanLocatorDiscovererImpl.java