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) {


Reply via email to