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: [email protected]
For additional commands, e-mail: [email protected]