Add id field
This commit is contained in:
@ -41,20 +41,20 @@ public abstract class GossipManager extends Thread implements NotificationListen
|
||||
|
||||
private Class<? extends ActiveGossipThread> _activeGossipThreadClass;
|
||||
|
||||
public GossipManager(Class<? extends PassiveGossipThread> passiveGossipThreadClass, Class<? extends ActiveGossipThread> activeGossipThreadClass, String address, int port, GossipSettings settings, ArrayList<GossipMember> gossipMembers) {
|
||||
public GossipManager(Class<? extends PassiveGossipThread> passiveGossipThreadClass,
|
||||
Class<? extends ActiveGossipThread> activeGossipThreadClass, String address, int port,
|
||||
String id, GossipSettings settings, ArrayList<GossipMember> gossipMembers) {
|
||||
_passiveGossipThreadClass = passiveGossipThreadClass;
|
||||
_activeGossipThreadClass = activeGossipThreadClass;
|
||||
_settings = settings;
|
||||
_me = new LocalGossipMember(address, port, 0, this, settings.getCleanupInterval());
|
||||
_me = new LocalGossipMember(address, port, id, 0, this, settings.getCleanupInterval());
|
||||
_memberList = new ArrayList<LocalGossipMember>();
|
||||
_deadList = new ArrayList<LocalGossipMember>();
|
||||
GossipService.LOGGER.debug("Startup member list:");
|
||||
GossipService.LOGGER.debug("---------------------");
|
||||
GossipService.LOGGER.debug(_me);
|
||||
|
||||
for (GossipMember startupMember : gossipMembers) {
|
||||
if (!startupMember.equals(_me)) {
|
||||
LocalGossipMember member = new LocalGossipMember(startupMember.getHost(), startupMember.getPort(), 0, this, settings.getCleanupInterval());
|
||||
LocalGossipMember member = new LocalGossipMember(startupMember.getHost(),
|
||||
startupMember.getPort(), startupMember.getId(), 0, this,
|
||||
settings.getCleanupInterval());
|
||||
_memberList.add(member);
|
||||
GossipService.LOGGER.debug(member);
|
||||
}
|
||||
|
@ -86,10 +86,11 @@ abstract public class PassiveGossipThread implements Runnable {
|
||||
JSONArray jsonArray = new JSONArray(receivedMessage);
|
||||
for (int i = 0; i < jsonArray.length(); i++) {
|
||||
JSONObject memberJSONObject = jsonArray.getJSONObject(i);
|
||||
if (memberJSONObject.length() == 3) {
|
||||
if (memberJSONObject.length() == 4) {
|
||||
RemoteGossipMember member = new RemoteGossipMember(
|
||||
memberJSONObject.getString(GossipMember.JSON_HOST),
|
||||
memberJSONObject.getInt(GossipMember.JSON_PORT),
|
||||
memberJSONObject.getString(GossipMember.JSON_PORT),
|
||||
memberJSONObject.getInt(GossipMember.JSON_HEARTBEAT));
|
||||
GossipService.LOGGER.debug(member.toString());
|
||||
// This is the first member found, so this should be the member who is communicating
|
||||
@ -100,7 +101,7 @@ abstract public class PassiveGossipThread implements Runnable {
|
||||
remoteGossipMembers.add(member);
|
||||
} else {
|
||||
GossipService.LOGGER
|
||||
.error("The received member object does not contain 3 objects:\n"
|
||||
.error("The received member object does not contain 4 objects:\n"
|
||||
+ memberJSONObject.toString());
|
||||
}
|
||||
|
||||
|
@ -71,14 +71,14 @@ public class OnlyProcessReceivedPassiveGossipThread extends PassiveGossipThread
|
||||
// Remove it from the dead list.
|
||||
gossipManager.getDeadList().remove(localDeadMember);
|
||||
// Add it as a new member and add it to the member list.
|
||||
LocalGossipMember newLocalMember = new LocalGossipMember(remoteMember.getHost(), remoteMember.getPort(), remoteMember.getHeartbeat(), gossipManager, gossipManager.getSettings().getCleanupInterval());
|
||||
LocalGossipMember newLocalMember = new LocalGossipMember(remoteMember.getHost(), remoteMember.getPort(), remoteMember.getId(), remoteMember.getHeartbeat(), gossipManager, gossipManager.getSettings().getCleanupInterval());
|
||||
gossipManager.getMemberList().add(newLocalMember);
|
||||
newLocalMember.startTimeoutTimer();
|
||||
GossipService.LOGGER.info("Removed remote member " + remoteMember.getAddress() + " from dead list and added to local member list.");
|
||||
}
|
||||
} else {
|
||||
// Brand spanking new member - welcome.
|
||||
LocalGossipMember newLocalMember = new LocalGossipMember(remoteMember.getHost(), remoteMember.getPort(), remoteMember.getHeartbeat(), gossipManager, gossipManager.getSettings().getCleanupInterval());
|
||||
LocalGossipMember newLocalMember = new LocalGossipMember(remoteMember.getHost(), remoteMember.getPort(), remoteMember.getId(), remoteMember.getHeartbeat(), gossipManager, gossipManager.getSettings().getCleanupInterval());
|
||||
gossipManager.getMemberList().add(newLocalMember);
|
||||
newLocalMember.startTimeoutTimer();
|
||||
GossipService.LOGGER.info("Added new remote member " + remoteMember.getAddress() + " to local member list.");
|
||||
|
@ -8,7 +8,7 @@ import com.google.code.gossip.manager.GossipManager;
|
||||
import com.google.code.gossip.manager.impl.OnlyProcessReceivedPassiveGossipThread;
|
||||
|
||||
public class RandomGossipManager extends GossipManager {
|
||||
public RandomGossipManager(String address, int port, GossipSettings settings, ArrayList<GossipMember> gossipMembers) {
|
||||
super(OnlyProcessReceivedPassiveGossipThread.class, RandomActiveGossipThread.class, address, port, settings, gossipMembers);
|
||||
public RandomGossipManager(String address, int port, String id, GossipSettings settings, ArrayList<GossipMember> gossipMembers) {
|
||||
super(OnlyProcessReceivedPassiveGossipThread.class, RandomActiveGossipThread.class, address, port, id, settings, gossipMembers);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user