Author: kfujino
Date: Wed Feb  6 07:46:54 2019
New Revision: 1853051

URL: http://svn.apache.org/viewvc?rev=1853051&view=rev
Log:
Add feature that discover local member from the static member list.
This makes the same static member configuration available on all cluster nodes.

Modified:
    
tomcat/trunk/java/org/apache/catalina/tribes/membership/LocalStrings.properties
    
tomcat/trunk/java/org/apache/catalina/tribes/membership/StaticMembershipService.java
    tomcat/trunk/webapps/docs/changelog.xml

Modified: 
tomcat/trunk/java/org/apache/catalina/tribes/membership/LocalStrings.properties
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/membership/LocalStrings.properties?rev=1853051&r1=1853050&r2=1853051&view=diff
==============================================================================
--- 
tomcat/trunk/java/org/apache/catalina/tribes/membership/LocalStrings.properties 
[UTF-8] (original)
+++ 
tomcat/trunk/java/org/apache/catalina/tribes/membership/LocalStrings.properties 
[UTF-8] Wed Feb  6 07:46:54 2019
@@ -61,5 +61,5 @@ staticMembershipProvider.pingThread.fail
 staticMembershipProvider.replyRequest.ignored=Message[{0}] is ignored.
 staticMembershipProvider.startMembership.noReplies=Received 0 replies, 
probably a timeout.
 staticMembershipProvider.stopMembership.sendFailed=Unable to send stop 
membership message.
-
+staticMembershipService.noLocalMember=There is no localMember in static member 
list.
 staticMembershipService.stopFail=Unable to stop the static membership service, 
level: [{0}]

Modified: 
tomcat/trunk/java/org/apache/catalina/tribes/membership/StaticMembershipService.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/membership/StaticMembershipService.java?rev=1853051&r1=1853050&r2=1853051&view=diff
==============================================================================
--- 
tomcat/trunk/java/org/apache/catalina/tribes/membership/StaticMembershipService.java
 (original)
+++ 
tomcat/trunk/java/org/apache/catalina/tribes/membership/StaticMembershipService.java
 Wed Feb  6 07:46:54 2019
@@ -18,7 +18,9 @@
 package org.apache.catalina.tribes.membership;
 
 import java.io.IOException;
+import java.net.InetAddress;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Properties;
 
 import javax.management.ObjectName;
@@ -107,7 +109,10 @@ public class StaticMembershipService ext
     @Override
     public void setLocalMemberProperties(String listenHost, int listenPort,
             int securePort, int udpPort) {
+        properties.setProperty("tcpListenHost", listenHost);
+        properties.setProperty("tcpListenPort", String.valueOf(listenPort));
         try {
+            findLocalMember();
             localMember.setHostname(listenHost);
             localMember.setPort(listenPort);
             localMember.setSecurePort(securePort);
@@ -223,4 +228,21 @@ public class StaticMembershipService ext
     private String getMembershipName() {
         return channel.getName()+"-"+"StaticMembership";
     }
+
+    private void findLocalMember() throws IOException {
+        if (this.localMember != null) return;
+        String listenHost = properties.getProperty("tcpListenHost");
+        String listenPort = properties.getProperty("tcpListenPort");
+
+        // find local member from static members
+        for (StaticMember staticMember : this.staticMembers) {
+            if (Arrays.equals(InetAddress.getByName(listenHost).getAddress(), 
staticMember.getHost())
+                    && Integer.valueOf(listenPort) == staticMember.getPort()) {
+                this.localMember = staticMember;
+                break;
+            }
+        }
+        if (this.localMember == null)  throw new 
IllegalStateException(sm.getString("staticMembershipService.noLocalMember"));
+        staticMembers.remove(this.localMember);
+    }
 }
\ No newline at end of file

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1853051&r1=1853050&r2=1853051&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Wed Feb  6 07:46:54 2019
@@ -45,6 +45,14 @@
   issues do not "pop up" wrt. others).
 -->
 <section name="Tomcat 9.0.17 (markt)" rtext="in development">
+  <subsection name="Tribes">
+    <changelog>
+      <add>
+        Add feature that discover local member from the static member list.
+        (kfujino)
+      </add>
+    </changelog>
+  </subsection>
   <subsection name="Other">
     <changelog>
       <add>



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to