You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by az...@apache.org on 2008/05/25 12:21:05 UTC

svn commit: r659951 - in /webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering: control/wka/MemberListCommand.java tribes/TribesClusterManager.java

Author: azeez
Date: Sun May 25 03:21:04 2008
New Revision: 659951

URL: http://svn.apache.org/viewvc?rev=659951&view=rev
Log:
Need to add the sender to the member list


Modified:
    webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/control/wka/MemberListCommand.java
    webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java

Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/control/wka/MemberListCommand.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/control/wka/MemberListCommand.java?rev=659951&r1=659950&r2=659951&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/control/wka/MemberListCommand.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/control/wka/MemberListCommand.java Sun May 25 03:21:04 2008
@@ -37,6 +37,7 @@
     private static final Log log = LogFactory.getLog(MemberListCommand.class);
 
     private Member[] members;
+    private Member sender;
     private MembershipManager membershipManager;
     private StaticMembershipInterceptor staticMembershipInterceptor;
 
@@ -52,17 +53,26 @@
         this.members = members;
     }
 
+    public void setSender(Member sender) {
+        this.sender = sender;
+    }
+
     public void execute(ConfigurationContext configurationContext) throws ClusteringFault {
         log.info("Received MEMBER_LIST message");
+        Member localMember = membershipManager.getLocalMember();
         for (Member member : members) {
-            log.info("Trying to add member " + TribesUtil.getHost(member) + "...");
-            Member localMember = membershipManager.getLocalMember();
-            if (!(Arrays.equals(localMember.getHost(), member.getHost()) &&
-                  localMember.getPort() == member.getPort())) {
-                log.info("Added member " + TribesUtil.getHost(member));
-                membershipManager.memberAdded(member);
-                staticMembershipInterceptor.memberAdded(member);
-            }
+            addMember(localMember, member);
+        }
+        addMember(localMember, sender);
+    }
+
+    private void addMember(Member localMember, Member member) {
+        log.info("Trying to add member " + TribesUtil.getHost(member) + "...");
+        if (!(Arrays.equals(localMember.getHost(), member.getHost()) &&
+              localMember.getPort() == member.getPort())) {
+            log.info("Added member " + TribesUtil.getHost(member));
+            membershipManager.memberAdded(member);
+            staticMembershipInterceptor.memberAdded(member);
         }
     }
 }

Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java?rev=659951&r1=659950&r2=659951&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java Sun May 25 03:21:04 2008
@@ -188,19 +188,22 @@
                     MemberListCommand command = (MemberListCommand) response.getMessage();
                     command.setMembershipManager(membershipManager);
                     command.setStaticMembershipInterceptor(staticMembershipInterceptor);
+                    command.setSender(response.getSource());
                     command.execute(configurationContext);
                 }
 
-                log.info("Sending MEMBER_JOINED to group...");
-                MemberJoinedCommand memberJoinedCommand = new MemberJoinedCommand();
-                memberJoinedCommand.setMember(membershipManager.getLocalMember());
-                try {
-                    rpcChannel.send(membershipManager.getMembers(), memberJoinedCommand,
-                                    RpcChannel.ALL_REPLY, Channel.SEND_OPTIONS_ASYNCHRONOUS, 10000);
-                } catch (ChannelException e) {
-                    String msg = "Could not send MEMBER_JOINED message to group";
-                    log.error(msg, e);
-                    throw new ClusteringFault(msg, e);
+                if (membershipManager.getMembers().length > 0) {
+                    log.info("Sending MEMBER_JOINED to group...");
+                    MemberJoinedCommand memberJoinedCommand = new MemberJoinedCommand();
+                    memberJoinedCommand.setMember(membershipManager.getLocalMember());
+                    try {
+                        rpcChannel.send(membershipManager.getMembers(), memberJoinedCommand,
+                                        RpcChannel.ALL_REPLY, Channel.SEND_OPTIONS_ASYNCHRONOUS, 10000);
+                    } catch (ChannelException e) {
+                        String msg = "Could not send MEMBER_JOINED message to group";
+                        log.error(msg, e);
+                        throw new ClusteringFault(msg, e);
+                    }
                 }
             } catch (ChannelException e) {
                 String msg = "Could not JOIN group";