Class NextMemberBuddyLocator

  extended by org.jboss.cache.buddyreplication.NextMemberBuddyLocator
All Implemented Interfaces:

public class NextMemberBuddyLocator
extends java.lang.Object
implements BuddyLocator

This buddy locator uses a next-in-line algorithm to select buddies for a buddy group. This algorithm allows for the following properties, all of which are optional.

Manik Surtani (

Constructor Summary
Method Summary
 BuddyReplicationConfig.BuddyLocatorConfig getConfig()
          Gets the configuration for this BuddyLocator.
 void init(BuddyReplicationConfig.BuddyLocatorConfig buddyLocatorConfig)
          Initialize this BuddyLocator.
 java.util.List<org.jgroups.Address> locateBuddies(java.util.Map<org.jgroups.Address,java.lang.String> buddyPoolMap, java.util.List<org.jgroups.Address> currentMembership, org.jgroups.Address dataOwner)
          Choose a set of buddies for the given node.
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail


public NextMemberBuddyLocator()
Method Detail


public BuddyReplicationConfig.BuddyLocatorConfig getConfig()
Description copied from interface: BuddyLocator
Gets the configuration for this BuddyLocator.

Specified by:
getConfig in interface BuddyLocator
object encapsulating this object's configuration. Should not return null. If BuddyLocator.init(org.jboss.cache.config.BuddyReplicationConfig.BuddyLocatorConfig) has not been called or null was passed to it, the returned value should be the default config for the given BuddyLocator implementation.


public void init(BuddyReplicationConfig.BuddyLocatorConfig buddyLocatorConfig)
Description copied from interface: BuddyLocator
Initialize this BuddyLocator.

Specified by:
init in interface BuddyLocator
buddyLocatorConfig - configuration for this BuddyLocator. May be null, in which case the implementation should use its default configuration.


public java.util.List<org.jgroups.Address> locateBuddies(java.util.Map<org.jgroups.Address,java.lang.String> buddyPoolMap,
                                                         java.util.List<org.jgroups.Address> currentMembership,
                                                         org.jgroups.Address dataOwner)
Description copied from interface: BuddyLocator
Choose a set of buddies for the given node. Invoked when a change in cluster membership is detected.

Specified by:
locateBuddies in interface BuddyLocator
buddyPoolMap - Map mapping nodes in the cluster to the "buddy pool" they have identified themselves as belonging too. A BuddyLocator implementation can use this information to preferentially assign buddies from the same buddy pool as dataOwner. May be null if buddy pools aren't configured.
currentMembership - List
of the current cluster members
dataOwner - Address of the node for which buddies should be selected
of the nodes that should serve as buddies for dataOwner. Will not be null, may be empty.