org.apache.catalina.tribes.membership.cloud

## Class CloudMembershipProvider

- java.lang.Object
- - org.apache.catalina.tribes.membership.MembershipProviderBase
  - - org.apache.catalina.tribes.membership.cloud.CloudMembershipProvider

- All Implemented Interfaces:
    ChannelListener, Heartbeat, MembershipProvider
  Direct Known Subclasses:
    DNSMembershipProvider, KubernetesMembershipProvider

      public abstract class CloudMembershipProvider
      extends MembershipProviderBase
      implements Heartbeat, ChannelListener

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected int` | `connectionTimeout`
    `protected static String` | `CUSTOM_ENV_PREFIX`
    `protected long` | `expirationTime`
    `protected Map<String,String>` | `headers`
    `protected String` | `localIp`
    `protected MessageDigest` | `md5`
    `protected int` | `port`
    `protected int` | `readTimeout`
    `protected static StringManager` | `sm`
    `protected Instant` | `startTime`
    `protected StreamProvider` | `streamProvider`
    `protected String` | `url`

    - ### Fields inherited from class org.apache.catalina.tribes.membership.MembershipProviderBase

      `executor, membership, membershipListener, service`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CloudMembershipProvider()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `accept(Serializable msg, Member sender)` Invoked by the channel to determine if the listener will process this message or not.
    `protected abstract Member[]` | `fetchMembers()` Fetch current cluster members from the cloud orchestration.
    `protected static String` | `getEnv(String... keys)` Get value of environment variable.
    `protected String` | `getNamespace()` Get the Kubernetes namespace, or "tomcat" if the Kubernetes environment variable cannot be found (with a warning log about the missing namespace).
    `void` | `heartbeat()` Heartbeat invocation for resources cleanup etc
    `void` | `init(Properties properties)`
    `void` | `messageReceived(Serializable msg, Member sender)` Receive a message from the channel
    `void` | `start(int level)`
    `boolean` | `stop(int level)`
    `protected void` | `updateMember(Member member, boolean add)` Add or remove specified member.

    - ### Methods inherited from class org.apache.catalina.tribes.membership.MembershipProviderBase

      `getMember, getMembers, hasMembers, setMembershipListener, setMembershipService`

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

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

    - ### Methods inherited from interface org.apache.catalina.tribes.ChannelListener

      `equals, hashCode`

- - ### Field Detail

    - #### sm

          protected static final StringManager sm

    - #### CUSTOM_ENV_PREFIX

          protected static final String CUSTOM_ENV_PREFIX

      See Also:
        Constant Field Values

    - #### url

          protected String url

    - #### streamProvider

          protected StreamProvider streamProvider

    - #### connectionTimeout

          protected int connectionTimeout

    - #### readTimeout

          protected int readTimeout

    - #### startTime

          protected Instant startTime

    - #### md5

          protected MessageDigest md5

    - #### headers

          protected Map<String,String> headers

    - #### localIp

          protected String localIp

    - #### port

          protected int port

    - #### expirationTime

          protected long expirationTime

  - ### Constructor Detail

    - #### CloudMembershipProvider

          public CloudMembershipProvider()

  - ### Method Detail

    - #### getEnv

          protected static String getEnv(String... keys)

      Get value of environment variable.
      Parameters:
        `keys` - the environment variables
      Returns:
        the env variables values, or null if not found

    - #### getNamespace

          protected String getNamespace()

      Get the Kubernetes namespace, or "tomcat" if the Kubernetes environment variable cannot be found (with a warning log about the missing namespace).
      Returns:
        the namespace

    - #### init

          public void init(Properties properties)
                    throws IOException

      Specified by:
        `init` in interface `MembershipProvider`
      Overrides:
        `init` in class `MembershipProviderBase`
      Throws:
        `IOException`

    - #### start

          public void start(int level)
                     throws Exception

      Specified by:
        `start` in interface `MembershipProvider`
      Throws:
        `Exception`

    - #### stop

          public boolean stop(int level)
                       throws Exception

      Specified by:
        `stop` in interface `MembershipProvider`
      Throws:
        `Exception`

    - #### heartbeat

          public void heartbeat()

      Description copied from interface: `Heartbeat`
      Heartbeat invocation for resources cleanup etc
      Specified by:
        `heartbeat` in interface `Heartbeat`

    - #### fetchMembers

          protected abstract Member[] fetchMembers()

      Fetch current cluster members from the cloud orchestration.
      Returns:
        the member array

    - #### updateMember

          protected void updateMember(Member member,
                                      boolean add)

      Add or remove specified member.
      Parameters:
        `member` - the member to add
        `add` - true if the member is added, false otherwise

    - #### messageReceived

          public void messageReceived(Serializable msg,
                                      Member sender)

      Description copied from interface: `ChannelListener`
      Receive a message from the channel
      Specified by:
        `messageReceived` in interface `ChannelListener`
      Parameters:
        `msg` - Serializable
        `sender` - - the source of the message

    - #### accept

          public boolean accept(Serializable msg,
                                Member sender)

      Description copied from interface: `ChannelListener`
      Invoked by the channel to determine if the listener will process this message or not.
      Specified by:
        `accept` in interface `ChannelListener`
      Parameters:
        `msg` - Serializable
        `sender` - Member
      Returns:
        boolean

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