Author: azeez Date: Tue Apr 24 08:34:47 2012 New Revision: 1329591 URL: http://svn.apache.org/viewvc?rev=1329591&view=rev Log: Ability to elect a coordinator for the cluster
Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/ClusteringAgent.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/Member.java Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java?rev=1329591&r1=1329590&r2=1329591&view=diff ============================================================================== --- axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java (original) +++ axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java Tue Apr 24 08:34:47 2012 @@ -56,6 +56,7 @@ import org.apache.catalina.tribes.Member import org.apache.catalina.tribes.UniqueId; import org.apache.catalina.tribes.group.Response; import org.apache.catalina.tribes.group.RpcChannel; +import org.apache.catalina.tribes.group.interceptors.NonBlockingCoordinator; import org.apache.catalina.tribes.transport.MultiPointSender; import org.apache.catalina.tribes.transport.ReplicationTransmitter; import org.apache.commons.logging.Log; @@ -101,6 +102,8 @@ public class TribesClusteringAgent imple private RpcInitializationRequestHandler rpcInitRequestHandler; private MembershipScheme membershipScheme; + private NonBlockingCoordinator coordinator; + /** * The mode in which this member operates such as "loadBalance" or "application" */ @@ -152,6 +155,10 @@ public class TribesClusteringAgent imple return configurationManager; } + public boolean isCoordinator(){ + return coordinator.isCoordinator(); + } + /** * Initialize the cluster. * @@ -163,6 +170,8 @@ public class TribesClusteringAgent imple primaryMembershipManager = new MembershipManager(configurationContext); channel = new Axis2GroupChannel(); + coordinator = new NonBlockingCoordinator(); + channel.addInterceptor(coordinator); channel.setHeartbeat(true); channelSender = new ChannelSender(channel, primaryMembershipManager, synchronizeAllMembers()); axis2ChannelListener = Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/ClusteringAgent.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/ClusteringAgent.java?rev=1329591&r1=1329590&r2=1329591&view=diff ============================================================================== --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/ClusteringAgent.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/ClusteringAgent.java Tue Apr 24 08:34:47 2012 @@ -185,6 +185,12 @@ public interface ClusteringAgent extends */ Set<String> getDomains(); + /** + * Checks whether this member is the coordinator for the cluster + * + * @return true if this member is the coordinator, and false otherwise + */ + boolean isCoordinator(); /** * Send a message to all members in this member's primary cluster Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/Member.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/Member.java?rev=1329591&r1=1329590&r2=1329591&view=diff ============================================================================== --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/Member.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/Member.java Tue Apr 24 08:34:47 2012 @@ -83,7 +83,7 @@ public class Member { /** * Check whether this member is suspended - * @return true if this member is still suspended, false oterwise + * @return true if this member is still suspended, false otherwise */ public boolean isSuspended() { if (suspendedTime == -1) {