Class CloudMembershipProvider

    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      boolean accept​(java.io.Serializable msg, Member sender)
      Invoked by the channel to determine if the listener will process this message or not.
      protected static byte[] digest​(byte[] input)
      Thread safe MD5 digest.
      protected abstract Member[] fetchMembers()
      Fetch current cluster members from the cloud orchestration.
      protected static java.lang.String getEnv​(java.lang.String... keys)
      Get value of environment variable.
      protected java.lang.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​(java.util.Properties properties)
      Initialize the membership provider with the specified configuration.
      void messageReceived​(java.io.Serializable msg, Member sender)
      Receive a message from the channel
      void start​(int level)
      Start the membership provider.
      boolean stop​(int level)
      Stop the membership provider.
      protected void updateMember​(Member member, boolean add)
      Add or remove specified member.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • sm

        protected static final StringManager sm
        String manager for this class.
      • CUSTOM_ENV_PREFIX

        protected static final java.lang.String CUSTOM_ENV_PREFIX
        Prefix for custom environment variables.
        See Also:
        Constant Field Values
      • url

        protected java.lang.String url
        The URL for the cloud membership service.
      • streamProvider

        protected StreamProvider streamProvider
        The provider for cloud API streams.
      • connectionTimeout

        protected int connectionTimeout
        Connection timeout in milliseconds.
      • readTimeout

        protected int readTimeout
        Read timeout in milliseconds.
      • startTime

        protected java.time.Instant startTime
        The time when this provider started.
      • headers

        protected java.util.Map<java.lang.String,​java.lang.String> headers
        HTTP headers for cloud API requests.
      • localIp

        protected java.lang.String localIp
        The local IP address.
      • port

        protected int port
        The local port number.
      • expirationTime

        protected long expirationTime
        Member expiration time in milliseconds.
    • Constructor Detail

      • CloudMembershipProvider

        public CloudMembershipProvider()
        Default constructor.
    • Method Detail

      • digest

        protected static byte[] digest​(byte[] input)
        Thread safe MD5 digest.
        Parameters:
        input - The bytes to digest
        Returns:
        The MD5 digest for the given input
      • getEnv

        protected static java.lang.String getEnv​(java.lang.String... keys)
        Get value of environment variable.
        Parameters:
        keys - the environment variables
        Returns:
        the env variables values, or null if not found
      • getNamespace

        protected java.lang.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​(java.util.Properties properties)
                  throws java.io.IOException
        Description copied from interface: MembershipProvider
        Initialize the membership provider with the specified configuration.
        Specified by:
        init in interface MembershipProvider
        Overrides:
        init in class MembershipProviderBase
        Parameters:
        properties - configuration
        Throws:
        java.io.IOException
      • start

        public void start​(int level)
                   throws java.lang.Exception
        Description copied from interface: MembershipProvider
        Start the membership provider.
        Specified by:
        start in interface MembershipProvider
        Parameters:
        level - the readiness level
        • Channel.DEFAULT - will start all services
        • Channel.MBR_RX_SEQ - starts the membership receiver
        • Channel.MBR_TX_SEQ - starts the membership broadcaster
        Throws:
        java.lang.Exception - if an error occurs
      • stop

        public boolean stop​(int level)
                     throws java.lang.Exception
        Description copied from interface: MembershipProvider
        Stop the membership provider.
        Specified by:
        stop in interface MembershipProvider
        Parameters:
        level - the readiness level
        • Channel.DEFAULT - will stop all services
        • Channel.MBR_RX_SEQ - stops the membership receiver
        • Channel.MBR_TX_SEQ - stops the membership broadcaster
        Returns:
        true if successful
        Throws:
        java.lang.Exception - if an error occurs
      • 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​(java.io.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​(java.io.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