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

Reply via email to