Author: kfujino Date: Wed May 9 04:55:08 2018 New Revision: 1831227 URL: http://svn.apache.org/viewvc?rev=1831227&view=rev Log: -Implements the base class of MembershipServiceBase. -Add getMembershipProvider method in MembershipService. -Make McastService subclass of MembershipServiceBase.
Added: tomcat/trunk/java/org/apache/catalina/tribes/membership/MembershipServiceBase.java (with props) Modified: tomcat/trunk/java/org/apache/catalina/tribes/MembershipService.java tomcat/trunk/java/org/apache/catalina/tribes/membership/McastService.java Modified: tomcat/trunk/java/org/apache/catalina/tribes/MembershipService.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/MembershipService.java?rev=1831227&r1=1831226&r2=1831227&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/tribes/MembershipService.java (original) +++ tomcat/trunk/java/org/apache/catalina/tribes/MembershipService.java Wed May 9 04:55:08 2018 @@ -18,6 +18,7 @@ package org.apache.catalina.tribes; + /** * MembershipService Interface<br> * The <code>MembershipService</code> interface is the membership component @@ -156,4 +157,9 @@ public interface MembershipService { */ public void setChannel(Channel channel); + /** + * Get the MembershipProvider + * @return MembershipProvider + */ + public MembershipProvider getMembershipProvider(); } Modified: tomcat/trunk/java/org/apache/catalina/tribes/membership/McastService.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/membership/McastService.java?rev=1831227&r1=1831226&r2=1831227&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/tribes/membership/McastService.java (original) +++ tomcat/trunk/java/org/apache/catalina/tribes/membership/McastService.java Wed May 9 04:55:08 2018 @@ -28,6 +28,7 @@ import org.apache.catalina.tribes.Channe import org.apache.catalina.tribes.ChannelMessage; import org.apache.catalina.tribes.Member; import org.apache.catalina.tribes.MembershipListener; +import org.apache.catalina.tribes.MembershipProvider; import org.apache.catalina.tribes.MembershipService; import org.apache.catalina.tribes.MessageListener; import org.apache.catalina.tribes.io.ChannelData; @@ -46,7 +47,7 @@ import org.apache.juli.logging.LogFactor * If a node fails to send out a heartbeat, the node will be dismissed. */ public class McastService - implements MembershipService,MembershipListener,MessageListener, McastServiceMBean { + extends MembershipServiceBase implements MessageListener, McastServiceMBean { private static final Log log = LogFactory.getLog(McastService.class); @@ -56,17 +57,10 @@ public class McastService protected static final StringManager sm = StringManager.getManager(Constants.Package); /** - * The implementation specific properties - */ - protected Properties properties = new Properties(); - /** * A handle to the actual low level implementation */ protected McastServiceImpl impl; - /** - * A membership listener delegate (should be the cluster :) - */ - protected volatile MembershipListener listener; + /** * A message listener delegate for broadcasts */ @@ -82,8 +76,6 @@ public class McastService protected byte[] domain; - private Channel channel; - /** * the ObjectName of this McastService. */ @@ -123,14 +115,6 @@ public class McastService } /** - * {@inheritDoc} - */ - @Override - public Properties getProperties() { - return properties; - } - - /** * @return the local member name */ @Override @@ -291,16 +275,6 @@ public class McastService if ( properties.getProperty(name)==null) throw new IllegalArgumentException(sm.getString("mcastService.missing.property", name)); } - /** - * Start broadcasting and listening to membership pings - * @throws java.lang.Exception if a IO error occurs - */ - @Override - public void start() throws java.lang.Exception { - start(MembershipService.MBR_RX); - start(MembershipService.MBR_TX); - } - @Override public void start(int level) throws java.lang.Exception { hasProperty(properties,"mcastPort"); @@ -409,71 +383,6 @@ public class McastService } } - - /** - * Return all the members by name - */ - @Override - public String[] getMembersByName() { - Member[] currentMembers = getMembers(); - String [] membernames ; - if(currentMembers != null) { - membernames = new String[currentMembers.length]; - for (int i = 0; i < currentMembers.length; i++) { - membernames[i] = currentMembers[i].toString() ; - } - } else - membernames = new String[0] ; - return membernames ; - } - - /** - * Return the member by name - */ - @Override - public Member findMemberByName(String name) { - Member[] currentMembers = getMembers(); - for (int i = 0; i < currentMembers.length; i++) { - if (name.equals(currentMembers[i].toString())) - return currentMembers[i]; - } - return null; - } - - /** - * has members? - */ - @Override - public boolean hasMembers() { - if ( impl == null || impl.membership == null ) return false; - return impl.membership.hasMembers(); - } - - @Override - public Member getMember(Member mbr) { - if ( impl == null || impl.membership == null ) return null; - return impl.membership.getMember(mbr); - } - - /** - * Return all the members - */ - protected static final Member[]EMPTY_MEMBERS = new Member[0]; - @Override - public Member[] getMembers() { - if ( impl == null || impl.membership == null ) return EMPTY_MEMBERS; - return impl.membership.getMembers(); - } - /** - * Add a membership listener, this version only supports one listener per service, - * so calling this method twice will result in only the second listener being active. - * @param listener The listener - */ - @Override - public void setMembershipListener(MembershipListener listener) { - this.listener = listener; - } - public void setMessageListener(MessageListener listener) { this.msglistener = listener; } @@ -481,33 +390,6 @@ public class McastService public void removeMessageListener() { this.msglistener = null; } - /** - * Remove the membership listener - */ - @Override - public void removeMembershipListener(){ - listener = null; - } - - @Override - public void memberAdded(Member member) { - MembershipListener listener = this.listener; - if (listener != null) { - listener.memberAdded(member); - } - } - - /** - * Callback from the impl when a new member has been received - * @param member The member - */ - @Override - public void memberDisappeared(Member member) { - MembershipListener listener = this.listener; - if (listener != null) { - listener.memberDisappeared(member); - } - } @Override public void messageReceived(ChannelMessage msg) { @@ -599,13 +481,8 @@ public class McastService } @Override - public Channel getChannel() { - return channel; - } - - @Override - public void setChannel(Channel channel) { - this.channel = channel; + public MembershipProvider getMembershipProvider() { + return impl; } protected void setDefaults(Properties properties) { Added: tomcat/trunk/java/org/apache/catalina/tribes/membership/MembershipServiceBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/membership/MembershipServiceBase.java?rev=1831227&view=auto ============================================================================== --- tomcat/trunk/java/org/apache/catalina/tribes/membership/MembershipServiceBase.java (added) +++ tomcat/trunk/java/org/apache/catalina/tribes/membership/MembershipServiceBase.java Wed May 9 04:55:08 2018 @@ -0,0 +1,138 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.catalina.tribes.membership; + +import java.util.Properties; + +import org.apache.catalina.tribes.Channel; +import org.apache.catalina.tribes.ChannelException; +import org.apache.catalina.tribes.ChannelMessage; +import org.apache.catalina.tribes.Member; +import org.apache.catalina.tribes.MembershipListener; +import org.apache.catalina.tribes.MembershipService; + +public abstract class MembershipServiceBase implements MembershipService, MembershipListener { + + /** + * The implementation specific properties + */ + protected Properties properties = new Properties(); + protected volatile MembershipListener listener; + protected Channel channel; + + /** + * {@inheritDoc} + */ + @Override + public void setProperties(Properties properties) { + this.properties = properties; + } + + /** + * {@inheritDoc} + */ + @Override + public Properties getProperties() { + return properties; + } + + @Override + public boolean hasMembers() { + if (getMembershipProvider() == null ) return false; + return getMembershipProvider().hasMembers(); + } + + @Override + public Member getMember(Member mbr) { + if (getMembershipProvider() == null) return null; + return getMembershipProvider().getMember(mbr); + } + + @Override + public Member[] getMembers() { + if (getMembershipProvider() == null) return Membership.EMPTY_MEMBERS; + return getMembershipProvider().getMembers(); + } + + @Override + public String[] getMembersByName() { + Member[] currentMembers = getMembers(); + String [] membernames ; + if(currentMembers != null) { + membernames = new String[currentMembers.length]; + for (int i = 0; i < currentMembers.length; i++) { + membernames[i] = currentMembers[i].toString() ; + } + } else + membernames = new String[0] ; + return membernames ; + } + + @Override + public Member findMemberByName(String name) { + Member[] currentMembers = getMembers(); + for (int i = 0; i < currentMembers.length; i++) { + if (name.equals(currentMembers[i].toString())) + return currentMembers[i]; + } + return null; + } + + @Override + public void setMembershipListener(MembershipListener listener) { + this.listener = listener; + } + + @Override + public void removeMembershipListener(){ + listener = null; + } + + @Override + public void memberAdded(Member member) { + MembershipListener listener = this.listener; + if (listener != null) listener.memberAdded(member); + } + + @Override + public void memberDisappeared(Member member) { + MembershipListener listener = this.listener; + if (listener != null) listener.memberDisappeared(member); + } + + @Override + public void broadcast(ChannelMessage message) throws ChannelException { + // no-op + } + + @Override + public Channel getChannel() { + return channel; + } + + @Override + public void setChannel(Channel channel) { + this.channel = channel; + } + + @Override + public void start() throws Exception { + start(MembershipService.MBR_RX); + start(MembershipService.MBR_TX); + } +} \ No newline at end of file Propchange: tomcat/trunk/java/org/apache/catalina/tribes/membership/MembershipServiceBase.java ------------------------------------------------------------------------------ svn:eol-style = native --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org