org.apache.catalina.tribes.membership

## Class Membership

- java.lang.Object
- - org.apache.catalina.tribes.membership.Membership

- All Implemented Interfaces:
    Cloneable

      public class Membership
      extends Object
      implements Cloneable

  A membership implementation using simple multicast. This is the representation of a multicast membership. This class is responsible for maintaining a list of active cluster nodes in the cluster. If a node fails to send out a heartbeat, the node will be dismissed.
  Author:
    Filip Hanik, Peter Rossbach

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected static class` | `Membership.MbrEntry` Inner class that represents a member entry

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected static MemberImpl[]` | `EMPTY_MEMBERS`
    `protected MemberImpl` | `local` The name of this membership, has to be the same as the name for the local member
    `protected HashMap<MemberImpl,Membership.MbrEntry>` | `map` A map of all the members in the cluster.
    `protected Comparator<Member>` | `memberComparator` sort members by alive time
    `protected MemberImpl[]` | `members` A list of all the members in the cluster.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Membership(MemberImpl local)`
    `Membership(MemberImpl local, boolean includeLocal)` Constructs a new membership
    `Membership(MemberImpl local, Comparator<Member> comp)`
    `Membership(MemberImpl local, Comparator<Member> comp, boolean includeLocal)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Membership.MbrEntry` | `addMember(MemberImpl member)` Add a member to this component and sort array with memberComparator
    `Object` | `clone()`
    `boolean` | `contains(Member mbr)`
    `MemberImpl[]` | `expire(long maxtime)` Runs a refresh cycle and returns a list of members that has expired.
    `MemberImpl` | `getMember(Member mbr)`
    `protected Membership.MbrEntry[]` | `getMemberEntries()` get a copy from all member entries
    `MemberImpl[]` | `getMembers()` Returning a list of all the members in the membership We not need a copy: add and remove generate new arrays.
    `boolean` | `hasMembers()` Returning that service has members or not
    `boolean` | `memberAlive(MemberImpl member)` Notify the membership that this member has announced itself.
    `void` | `removeMember(MemberImpl member)` Remove a member from this component.
    `void` | `reset()` Reset the membership and start over fresh.

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### EMPTY_MEMBERS

          protected static final MemberImpl[] EMPTY_MEMBERS

    - #### local

          protected MemberImpl local

      The name of this membership, has to be the same as the name for the local member

    - #### map

          protected HashMap<MemberImpl,Membership.MbrEntry> map

      A map of all the members in the cluster.

    - #### members

          protected MemberImpl[] members

      A list of all the members in the cluster.

    - #### memberComparator

          protected Comparator<Member> memberComparator

      sort members by alive time

  - ### Constructor Detail

    - #### Membership

          public Membership(MemberImpl local,
                    boolean includeLocal)

      Constructs a new membership
      Parameters:
        `local` - - has to be the name of the local member. Used to filter the local member from the cluster membership
        `includeLocal` - - TBA

    - #### Membership

          public Membership(MemberImpl local)

    - #### Membership

          public Membership(MemberImpl local,
                    Comparator<Member> comp)

    - #### Membership

          public Membership(MemberImpl local,
                    Comparator<Member> comp,
                    boolean includeLocal)

  - ### Method Detail

    - #### clone

          public Object clone()

      Overrides:
        `clone` in class `Object`

    - #### reset

          public void reset()

      Reset the membership and start over fresh. Ie, delete all the members and wait for them to ping again and join this membership

    - #### memberAlive

          public boolean memberAlive(MemberImpl member)

      Notify the membership that this member has announced itself.
      Parameters:
        `member` - - the member that just pinged us
      Returns:
        - true if this member is new to the cluster, false otherwise.
        - false if this member is the local member or updated.

    - #### addMember

          public Membership.MbrEntry addMember(MemberImpl member)

      Add a member to this component and sort array with memberComparator
      Parameters:
        `member` - The member to add

    - #### removeMember

          public void removeMember(MemberImpl member)

      Remove a member from this component.
      Parameters:
        `member` - The member to remove

    - #### expire

          public MemberImpl[] expire(long maxtime)

      Runs a refresh cycle and returns a list of members that has expired. This also removes the members from the membership, in such a way that getMembers() = getMembers() - expire()
      Parameters:
        `maxtime` - - the max time a member can remain unannounced before it is considered dead.
      Returns:
        the list of expired members

    - #### hasMembers

          public boolean hasMembers()

      Returning that service has members or not

    - #### getMember

          public MemberImpl getMember(Member mbr)

    - #### contains

          public boolean contains(Member mbr)

    - #### getMembers

          public MemberImpl[] getMembers()

      Returning a list of all the members in the membership We not need a copy: add and remove generate new arrays.

    - #### getMemberEntries

          protected Membership.MbrEntry[] getMemberEntries()

      get a copy from all member entries

Copyright © 2000-2017 Apache Software Foundation. All Rights Reserved.