private void exchangeLocalLocators(int port, DistributionConfigImpl config,
LocatorMembershipListener locatorListener, final String hostnameForClients) {
String localLocator = config.getStartLocator();
DistributionLocatorId locatorId = null;
if (localLocator.equals(DistributionConfig.DEFAULT_START_LOCATOR)) {
locatorId = new DistributionLocatorId(port, config.getBindAddress(), hostnameForClients);
} else {
locatorId = new DistributionLocatorId(localLocator);
}
LocatorHelper.addLocator(config.getDistributedSystemId(), locatorId, locatorListener, null);
RemoteLocatorJoinRequest request = buildRemoteDSJoinRequest(port, config, hostnameForClients);
StringTokenizer locatorsOnThisVM = new StringTokenizer(config.getLocators(), ",");
while (locatorsOnThisVM.hasMoreTokens()) {
DistributionLocatorId localLocatorId =
new DistributionLocatorId(locatorsOnThisVM.nextToken());
if (!locatorId.equals(localLocatorId)) {
LocatorDiscovery localDiscovery =
new LocatorDiscovery(this, localLocatorId, request, locatorListener);
LocatorDiscovery.LocalLocatorDiscovery localLocatorDiscovery =
localDiscovery.new LocalLocatorDiscovery();
this._executor.execute(localLocatorDiscovery);
}
}
}