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
- Version:
- 1.0
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.catalina.tribes.ChannelInterceptor
ChannelInterceptor.InterceptorEvent
-
-
Field Summary
Fields Modifier and Type Field Description 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 Constructor Description GzipInterceptor()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description 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)
themessageReceived
is invoked when a message is received.void
report()
void
reset()
void
sendMessage(Member[] destination, ChannelMessage msg, InterceptorPayload payload)
ThesendMessage
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
-
-
Method Detail
-
sendMessage
public void sendMessage(Member[] destination, ChannelMessage msg, InterceptorPayload payload) throws ChannelException
Description copied from interface:ChannelInterceptor
ThesendMessage
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 invokinggetNext().sendMessage(destination,msg,payload)
Alternatively the interceptor can stop the message from being sent by not invokinggetNext().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 interfaceChannelInterceptor
- Overrides:
sendMessage
in classChannelInterceptorBase
- Parameters:
destination
- Member[] - the destination for this messagemsg
- ChannelMessage - the message to be sentpayload
- 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
themessageReceived
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 interfaceChannelInterceptor
- Overrides:
messageReceived
in classChannelInterceptorBase
- Parameters:
msg
- ChannelMessage
-
compress
public static byte[] compress(byte[] data) throws java.io.IOException
- Throws:
java.io.IOException
-
decompress
public static byte[] decompress(byte[] data) throws java.io.IOException
- Parameters:
data
- Data to decompress- Returns:
- Decompressed data
- Throws:
java.io.IOException
- Compression error
-
report
public void report()
- Specified by:
report
in interfaceGzipInterceptorMBean
-
getCompressionMinSize
public int getCompressionMinSize()
- Specified by:
getCompressionMinSize
in interfaceGzipInterceptorMBean
- 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 interfaceGzipInterceptorMBean
- Parameters:
compressionMinSize
- The new minimum payload size
-
getStatsEnabled
public boolean getStatsEnabled()
- Specified by:
getStatsEnabled
in interfaceGzipInterceptorMBean
- Returns:
true
if the interceptor is configured to collect statistics, otherwisefalse
-
setStatsEnabled
public void setStatsEnabled(boolean statsEnabled)
Description copied from interface:GzipInterceptorMBean
Configure whether the interceptor collects statistics.- Specified by:
setStatsEnabled
in interfaceGzipInterceptorMBean
- Parameters:
statsEnabled
-true
to enable statistics collections, otherwisefalse
-
getInterval
public int getInterval()
- Specified by:
getInterval
in interfaceGzipInterceptorMBean
- 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 interfaceGzipInterceptorMBean
- Parameters:
interval
- The new interval between reports
-
getCount
public int getCount()
- Specified by:
getCount
in interfaceGzipInterceptorMBean
-
getCountCompressedTX
public int getCountCompressedTX()
- Specified by:
getCountCompressedTX
in interfaceGzipInterceptorMBean
-
getCountUncompressedTX
public int getCountUncompressedTX()
- Specified by:
getCountUncompressedTX
in interfaceGzipInterceptorMBean
-
getCountCompressedRX
public int getCountCompressedRX()
- Specified by:
getCountCompressedRX
in interfaceGzipInterceptorMBean
-
getCountUncompressedRX
public int getCountUncompressedRX()
- Specified by:
getCountUncompressedRX
in interfaceGzipInterceptorMBean
-
getSizeTX
public long getSizeTX()
- Specified by:
getSizeTX
in interfaceGzipInterceptorMBean
-
getCompressedSizeTX
public long getCompressedSizeTX()
- Specified by:
getCompressedSizeTX
in interfaceGzipInterceptorMBean
-
getUncompressedSizeTX
public long getUncompressedSizeTX()
- Specified by:
getUncompressedSizeTX
in interfaceGzipInterceptorMBean
-
getSizeRX
public long getSizeRX()
- Specified by:
getSizeRX
in interfaceGzipInterceptorMBean
-
getCompressedSizeRX
public long getCompressedSizeRX()
- Specified by:
getCompressedSizeRX
in interfaceGzipInterceptorMBean
-
getUncompressedSizeRX
public long getUncompressedSizeRX()
- Specified by:
getUncompressedSizeRX
in interfaceGzipInterceptorMBean
-
reset
public void reset()
- Specified by:
reset
in interfaceGzipInterceptorMBean
-
-