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 intDEFAULT_BUFFER_SIZEstatic intDEFAULT_OPTION_COMPRESSION_ENABLEprotected static StringManagersm-
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)longgetCompressedSizeRX()longgetCompressedSizeTX()intgetCompressionMinSize()intgetCount()intgetCountCompressedRX()intgetCountCompressedTX()intgetCountUncompressedRX()intgetCountUncompressedTX()intgetInterval()longgetSizeRX()longgetSizeTX()booleangetStatsEnabled()longgetUncompressedSizeRX()longgetUncompressedSizeTX()voidmessageReceived(ChannelMessage msg)themessageReceivedis invoked when a message is received.voidreport()voidreset()voidsendMessage(Member[] destination, ChannelMessage msg, InterceptorPayload payload)ThesendMessagemethod is called when a message is being sent to one more destinations.voidsetCompressionMinSize(int compressionMinSize)Set the minimum payload size for compression to be enabled.voidsetInterval(int interval)If statistics collection is enabled, set the number of messages between statistics reports being written to the log.voidsetStatsEnabled(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:ChannelInterceptorThesendMessagemethod 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:
sendMessagein interfaceChannelInterceptor- Overrides:
sendMessagein 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:ChannelInterceptorthemessageReceivedis invoked when a message is received.ChannelMessage.getAddress()is the sender, or the reply-to address if it has been overwritten.- Specified by:
messageReceivedin interfaceChannelInterceptor- Overrides:
messageReceivedin classChannelInterceptorBase- 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:
reportin interfaceGzipInterceptorMBean
-
getCompressionMinSize
public int getCompressionMinSize()
- Specified by:
getCompressionMinSizein interfaceGzipInterceptorMBean- Returns:
- the minimum payload size for compression to be enabled.
-
setCompressionMinSize
public void setCompressionMinSize(int compressionMinSize)
Description copied from interface:GzipInterceptorMBeanSet 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:
setCompressionMinSizein interfaceGzipInterceptorMBean- Parameters:
compressionMinSize- The new minimum payload size
-
getStatsEnabled
public boolean getStatsEnabled()
- Specified by:
getStatsEnabledin interfaceGzipInterceptorMBean- Returns:
trueif the interceptor is configured to collect statistics, otherwisefalse
-
setStatsEnabled
public void setStatsEnabled(boolean statsEnabled)
Description copied from interface:GzipInterceptorMBeanConfigure whether the interceptor collects statistics.- Specified by:
setStatsEnabledin interfaceGzipInterceptorMBean- Parameters:
statsEnabled-trueto enable statistics collections, otherwisefalse
-
getInterval
public int getInterval()
- Specified by:
getIntervalin 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:GzipInterceptorMBeanIf 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:
setIntervalin interfaceGzipInterceptorMBean- Parameters:
interval- The new interval between reports
-
getCount
public int getCount()
- Specified by:
getCountin interfaceGzipInterceptorMBean
-
getCountCompressedTX
public int getCountCompressedTX()
- Specified by:
getCountCompressedTXin interfaceGzipInterceptorMBean
-
getCountUncompressedTX
public int getCountUncompressedTX()
- Specified by:
getCountUncompressedTXin interfaceGzipInterceptorMBean
-
getCountCompressedRX
public int getCountCompressedRX()
- Specified by:
getCountCompressedRXin interfaceGzipInterceptorMBean
-
getCountUncompressedRX
public int getCountUncompressedRX()
- Specified by:
getCountUncompressedRXin interfaceGzipInterceptorMBean
-
getSizeTX
public long getSizeTX()
- Specified by:
getSizeTXin interfaceGzipInterceptorMBean
-
getCompressedSizeTX
public long getCompressedSizeTX()
- Specified by:
getCompressedSizeTXin interfaceGzipInterceptorMBean
-
getUncompressedSizeTX
public long getUncompressedSizeTX()
- Specified by:
getUncompressedSizeTXin interfaceGzipInterceptorMBean
-
getSizeRX
public long getSizeRX()
- Specified by:
getSizeRXin interfaceGzipInterceptorMBean
-
getCompressedSizeRX
public long getCompressedSizeRX()
- Specified by:
getCompressedSizeRXin interfaceGzipInterceptorMBean
-
getUncompressedSizeRX
public long getUncompressedSizeRX()
- Specified by:
getUncompressedSizeRXin interfaceGzipInterceptorMBean
-
reset
public void reset()
- Specified by:
resetin interfaceGzipInterceptorMBean
-
-