Package org.apache.catalina.tribes.group.interceptors

## 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

### Nested Class Summary

### Nested classes/interfaces inherited from interface org.apache.catalina.tribes.ChannelInterceptor

`ChannelInterceptor.InterceptorEvent`

### Field Summary

Fields
`static int` `DEFAULT_BUFFER_SIZE`
`static int` `DEFAULT_OPTION_COMPRESSION_ENABLE`
`protected static StringManager` `sm`

### Fields inherited from class org.apache.catalina.tribes.group.ChannelInterceptorBase

`optionFlag`

### Constructor Summary

Constructors
`GzipInterceptor()`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`static byte[]` `compress​(byte[] data)`
`static byte[]` `decompress​(byte[] data)`
`long` `getCompressedSizeRX()`
`long` `getCompressedSizeTX()`
`int` `getCompressionMinSize()`
`int` `getCount()`
`int` `getCountCompressedRX()`
`int` `getCountCompressedTX()`
`int` `getCountUncompressedRX()`
`int` `getCountUncompressedTX()`
`int` `getInterval()`
`long` `getSizeRX()`
`long` `getSizeTX()`
`boolean` `getStatsEnabled()`
`long` `getUncompressedSizeRX()`
`long` `getUncompressedSizeTX()`
`void` `messageReceived​(ChannelMessage msg)` the `messageReceived` is invoked when a message is received.
`void` `report()`
`void` `reset()`
`void` `sendMessage​(Member[] destination, ChannelMessage msg, InterceptorPayload payload)` The `sendMessage` method is called when a message is being sent to one more destinations.
`void` `setCompressionMinSize​(int compressionMinSize)` Set the minimum payload size for compression to be enabled.
`void` `setInterval​(int interval)` If statistics collection is enabled, set the number of messages between statistics reports being written to the log.
`void` `setStatsEnabled​(boolean statsEnabled)` Configure whether the interceptor collects statistics.

### Methods inherited from class org.apache.catalina.tribes.group.ChannelInterceptorBase

`fireInterceptorEvent, getChannel, getLocalMember, getMember, getMembers, getNext, getOptionFlag, getPrevious, hasMembers, heartbeat, memberAdded, memberDisappeared, okToProcess, setChannel, setNext, setOptionFlag, setPrevious, start, stop`

### 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.group.interceptors.GzipInterceptorMBean

`getOptionFlag, setOptionFlag`

### Field Detail

#### sm

    protected static final StringManager sm

#### DEFAULT_BUFFER_SIZE

    public static final int DEFAULT_BUFFER_SIZE

See Also:
  Constant Field Values

#### DEFAULT_OPTION_COMPRESSION_ENABLE

    public static final int DEFAULT_OPTION_COMPRESSION_ENABLE

See Also:
  Constant Field Values

### Constructor Detail

#### GzipInterceptor

    public GzipInterceptor()

### Method Detail

#### 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:
  `ErrorHandler`, `InterceptorPayload`

#### 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`