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