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