Class GzipInterceptor

java.lang.Object
org.apache.catalina.tribes.group.ChannelInterceptorBase
org.apache.catalina.tribes.group.interceptors.GzipInterceptor
All Implemented Interfaces:
ChannelInterceptor, GzipInterceptorMBean, Heartbeat, MembershipListener

public class GzipInterceptor extends ChannelInterceptorBase implements GzipInterceptorMBean
  • Field Details

  • Constructor Details

    • GzipInterceptor

      public GzipInterceptor()
  • Method Details

    • sendMessage

      public void sendMessage(Member[] destination, ChannelMessage msg, InterceptorPayload payload) throws ChannelException
      Description copied from interface: ChannelInterceptor
      The sendMessage method is called when a message is being sent to one more destinations. The interceptor can modify any of the parameters and then pass on the message down the stack by invoking getNext().sendMessage(destination,msg,payload).

      Alternatively the interceptor can stop the message from being sent by not invoking getNext().sendMessage(destination,msg,payload).

      If the message is to be sent asynchronous the application can be notified of completion and errors by passing in an error handler attached to a payload object.

      The ChannelMessage.getAddress contains Channel.getLocalMember, and can be overwritten to simulate a message sent from another node.

      Specified by:
      sendMessage in interface ChannelInterceptor
      Overrides:
      sendMessage in class ChannelInterceptorBase
      Parameters:
      destination - Member[] - the destination for this message
      msg - ChannelMessage - the message to be sent
      payload - InterceptorPayload - the payload, carrying an error handler and future useful data, can be null
      Throws:
      ChannelException - if a serialization error happens.
      See Also:
    • messageReceived

      public void messageReceived(ChannelMessage msg)
      Description copied from interface: ChannelInterceptor
      The messageReceived is invoked when a message is received. ChannelMessage.getAddress() is the sender, or the reply-to address if it has been overwritten.
      Specified by:
      messageReceived in interface ChannelInterceptor
      Overrides:
      messageReceived in class ChannelInterceptorBase
      Parameters:
      msg - ChannelMessage
    • compress

      public static byte[] compress(byte[] data) throws IOException
      Throws:
      IOException
    • decompress

      public static byte[] decompress(byte[] data) throws IOException
      Parameters:
      data - Data to decompress
      Returns:
      Decompressed data
      Throws:
      IOException - Compression error
    • report

      public void report()
      Specified by:
      report in interface GzipInterceptorMBean
    • getCompressionMinSize

      public int getCompressionMinSize()
      Specified by:
      getCompressionMinSize in interface GzipInterceptorMBean
      Returns:
      the minimum payload size for compression to be enabled.
    • setCompressionMinSize

      public void setCompressionMinSize(int compressionMinSize)
      Description copied from interface: GzipInterceptorMBean
      Set the minimum payload size for compression to be enabled. A value of zero or less means compression will always be used. If not explicitly configured, a default of zero will be used.
      Specified by:
      setCompressionMinSize in interface GzipInterceptorMBean
      Parameters:
      compressionMinSize - The new minimum payload size
    • getStatsEnabled

      public boolean getStatsEnabled()
      Specified by:
      getStatsEnabled in interface GzipInterceptorMBean
      Returns:
      true if the interceptor is configured to collect statistics, otherwise false
    • setStatsEnabled

      public void setStatsEnabled(boolean statsEnabled)
      Description copied from interface: GzipInterceptorMBean
      Configure whether the interceptor collects statistics.
      Specified by:
      setStatsEnabled in interface GzipInterceptorMBean
      Parameters:
      statsEnabled - true to enable statistics collections, otherwise false
    • getInterval

      public int getInterval()
      Specified by:
      getInterval in interface GzipInterceptorMBean
      Returns:
      If statistics collection is enabled, the number of messages between statistics reports being written to the log.
    • setInterval

      public void setInterval(int interval)
      Description copied from interface: GzipInterceptorMBean
      If statistics collection is enabled, set the number of messages between statistics reports being written to the log. A value of zero or less means no statistics reports are written.
      Specified by:
      setInterval in interface GzipInterceptorMBean
      Parameters:
      interval - The new interval between reports
    • getCount

      public int getCount()
      Specified by:
      getCount in interface GzipInterceptorMBean
    • getCountCompressedTX

      public int getCountCompressedTX()
      Specified by:
      getCountCompressedTX in interface GzipInterceptorMBean
    • getCountUncompressedTX

      public int getCountUncompressedTX()
      Specified by:
      getCountUncompressedTX in interface GzipInterceptorMBean
    • getCountCompressedRX

      public int getCountCompressedRX()
      Specified by:
      getCountCompressedRX in interface GzipInterceptorMBean
    • getCountUncompressedRX

      public int getCountUncompressedRX()
      Specified by:
      getCountUncompressedRX in interface GzipInterceptorMBean
    • getSizeTX

      public long getSizeTX()
      Specified by:
      getSizeTX in interface GzipInterceptorMBean
    • getCompressedSizeTX

      public long getCompressedSizeTX()
      Specified by:
      getCompressedSizeTX in interface GzipInterceptorMBean
    • getUncompressedSizeTX

      public long getUncompressedSizeTX()
      Specified by:
      getUncompressedSizeTX in interface GzipInterceptorMBean
    • getSizeRX

      public long getSizeRX()
      Specified by:
      getSizeRX in interface GzipInterceptorMBean
    • getCompressedSizeRX

      public long getCompressedSizeRX()
      Specified by:
      getCompressedSizeRX in interface GzipInterceptorMBean
    • getUncompressedSizeRX

      public long getUncompressedSizeRX()
      Specified by:
      getUncompressedSizeRX in interface GzipInterceptorMBean
    • reset

      public void reset()
      Specified by:
      reset in interface GzipInterceptorMBean