@Override
  public void locatorJoined(final int distributedSystemId, final DistributionLocatorId locator,
      final DistributionLocatorId sourceLocator) {
    // DistributionLocatorId for local locator.
    DistributionLocatorId localLocatorId;

    String memberName = config.getName();
    String localLocator = config.getStartLocator();
    if (localLocator.equals(DistributionConfig.DEFAULT_START_LOCATOR)) {
      localLocatorId =
          new DistributionLocatorId(port, config.getBindAddress(), null, memberName);
    } else {
      localLocatorId = DistributionLocatorId.unmarshal(localLocator, memberName);
    }

    // Make a local copy of the current list of known locators.
    ConcurrentMap<Integer, Set<DistributionLocatorId>> remoteLocators = getAllLocatorsInfo();
    Map<Integer, Set<DistributionLocatorId>> localCopy = new HashMap<>();
    for (Map.Entry<Integer, Set<DistributionLocatorId>> entry : remoteLocators.entrySet()) {
      Set<DistributionLocatorId> value = new CopyOnWriteHashSet<>(entry.getValue());
      localCopy.put(entry.getKey(), value);
    }

    // Remove locators that don't need to be notified (myself, the joining one and the one that
    // notified myself).
    List<DistributionLocatorId> ignoreList = Arrays.asList(locator, localLocatorId, sourceLocator);
    for (Map.Entry<Integer, Set<DistributionLocatorId>> entry : localCopy.entrySet()) {
      for (DistributionLocatorId removeLocId : ignoreList) {
        entry.getValue().remove(removeLocId);
      }
    }

    buildLocatorsDistributorThread(localLocatorId, localCopy, locator, distributedSystemId);
  }
When the new locator is added to remote locator metadata, inform all other locators in remote
locator metadata about the new locator so that they can update their remote locator metadata.

@param distributedSystemId Id of the joining locator.
@param locator Id of the joining locator.
@param sourceLocator Id of the locator that notified this locator about the new one.
geode-wan/src/main/java/org/apache/geode/cache/wan/internal/client/locator/LocatorMembershipListenerImpl.java