Class ErrorGeneratingFilter
- java.lang.Object
-
- org.apache.mina.core.filterchain.IoFilterAdapter
-
- org.apache.mina.filter.errorgenerating.ErrorGeneratingFilter
-
- All Implemented Interfaces:
IoFilter
public class ErrorGeneratingFilter extends IoFilterAdapter
AnIoFilter
implementation generating random bytes and PDU modification in your communication streams. It's quite simple to use :ErrorGeneratingFilter egf = new ErrorGeneratingFilter();
For activate the change of some bytes in yourIoBuffer
, for a probability of 200 out of 1000IoBuffer
processed :egf.setChangeByteProbability(200);
For activate the insertion of some bytes in yourIoBuffer
, for a probability of 200 out of 1000 :egf.setInsertByteProbability(200);
And for the removing of some bytes :egf.setRemoveByteProbability(200);
You can activate the error generation for write or read with the following methods :egf.setManipulateReads(true); egf.setManipulateWrites(true);
- Author:
- Apache MINA Project
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.mina.core.filterchain.IoFilter
IoFilter.NextFilter
-
-
Constructor Summary
Constructors Constructor Description ErrorGeneratingFilter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
filterWrite(IoFilter.NextFilter nextFilter, IoSession session, WriteRequest writeRequest)
FiltersIoSession.write(Object)
method invocation.int
getChangeByteProbability()
int
getDuplicatePduProbability()
int
getInsertByteProbability()
int
getMaxInsertByte()
int
getRemoveByteProbability()
int
getRemovePduProbability()
int
getResendPduLasterProbability()
boolean
isManipulateReads()
boolean
isManipulateWrites()
void
messageReceived(IoFilter.NextFilter nextFilter, IoSession session, Object message)
FiltersIoHandler.messageReceived(IoSession,Object)
event.void
setChangeByteProbability(int changeByteProbability)
Set the probability for the change byte error.void
setDuplicatePduProbability(int duplicatePduProbability)
not functional ATMvoid
setInsertByteProbability(int insertByteProbability)
Set the probability for the insert byte error.void
setManipulateReads(boolean manipulateReads)
Set to true if you want to apply error to the readIoBuffer
void
setManipulateWrites(boolean manipulateWrites)
Set to true if you want to apply error to the writtenIoBuffer
void
setMaxInsertByte(int maxInsertByte)
Set the maximum number of byte the filter can insert in aIoBuffer
.void
setRemoveByteProbability(int removeByteProbability)
Set the probability for the remove byte error.void
setRemovePduProbability(int removePduProbability)
not functional ATMvoid
setResendPduLasterProbability(int resendPduLasterProbability)
not functional ATM-
Methods inherited from class org.apache.mina.core.filterchain.IoFilterAdapter
destroy, exceptionCaught, filterClose, init, inputClosed, messageSent, onPostAdd, onPostRemove, onPreAdd, onPreRemove, sessionClosed, sessionCreated, sessionIdle, sessionOpened, toString
-
-
-
-
Method Detail
-
filterWrite
public void filterWrite(IoFilter.NextFilter nextFilter, IoSession session, WriteRequest writeRequest) throws Exception
Description copied from class:IoFilterAdapter
FiltersIoSession.write(Object)
method invocation.- Specified by:
filterWrite
in interfaceIoFilter
- Overrides:
filterWrite
in classIoFilterAdapter
- Parameters:
nextFilter
- theIoFilter.NextFilter
for this filter. You can reuse this object until this filter is removed from the chain.session
- TheIoSession
which has to process this invocationwriteRequest
- TheWriteRequest
to process- Throws:
Exception
- If an error occurred while processing the event
-
messageReceived
public void messageReceived(IoFilter.NextFilter nextFilter, IoSession session, Object message) throws Exception
Description copied from class:IoFilterAdapter
FiltersIoHandler.messageReceived(IoSession,Object)
event.- Specified by:
messageReceived
in interfaceIoFilter
- Overrides:
messageReceived
in classIoFilterAdapter
- Parameters:
nextFilter
- theIoFilter.NextFilter
for this filter. You can reuse this object until this filter is removed from the chain.session
- TheIoSession
which has received this eventmessage
- The received message- Throws:
Exception
- If an error occurred while processing the event
-
getChangeByteProbability
public int getChangeByteProbability()
- Returns:
- The probably that a byte changes
-
setChangeByteProbability
public void setChangeByteProbability(int changeByteProbability)
Set the probability for the change byte error. If this probability is > 0 the filter will modify a random number of byte of the processedIoBuffer
.- Parameters:
changeByteProbability
- probability of modifying an IoBuffer out of 1000 processedIoBuffer
-
getDuplicatePduProbability
public int getDuplicatePduProbability()
- Returns:
- The probability for generating duplicated PDU
-
setDuplicatePduProbability
public void setDuplicatePduProbability(int duplicatePduProbability)
not functional ATM- Parameters:
duplicatePduProbability
- The probability for generating duplicated PDU
-
getInsertByteProbability
public int getInsertByteProbability()
- Returns:
- the probability for the insert byte error.
-
setInsertByteProbability
public void setInsertByteProbability(int insertByteProbability)
Set the probability for the insert byte error. If this probability is > 0 the filter will insert a random number of byte in the processedIoBuffer
.- Parameters:
insertByteProbability
- probability of inserting in IoBuffer out of 1000 processedIoBuffer
-
isManipulateReads
public boolean isManipulateReads()
- Returns:
- The number of manipulated reads
-
setManipulateReads
public void setManipulateReads(boolean manipulateReads)
Set to true if you want to apply error to the readIoBuffer
- Parameters:
manipulateReads
- The number of manipulated reads
-
isManipulateWrites
public boolean isManipulateWrites()
- Returns:
- If manipulated writes are expected or not
-
setManipulateWrites
public void setManipulateWrites(boolean manipulateWrites)
Set to true if you want to apply error to the writtenIoBuffer
- Parameters:
manipulateWrites
- If manipulated writes are expected or not
-
getRemoveByteProbability
public int getRemoveByteProbability()
- Returns:
- The probability for the remove byte error
-
setRemoveByteProbability
public void setRemoveByteProbability(int removeByteProbability)
Set the probability for the remove byte error. If this probability is > 0 the filter will remove a random number of byte in the processedIoBuffer
.- Parameters:
removeByteProbability
- probability of modifying anIoBuffer
out of 1000 processed IoBuffer
-
getRemovePduProbability
public int getRemovePduProbability()
- Returns:
- The PDU removal probability
-
setRemovePduProbability
public void setRemovePduProbability(int removePduProbability)
not functional ATM- Parameters:
removePduProbability
- The PDU removal probability
-
getResendPduLasterProbability
public int getResendPduLasterProbability()
- Returns:
- The delay before a resend
-
setResendPduLasterProbability
public void setResendPduLasterProbability(int resendPduLasterProbability)
not functional ATM- Parameters:
resendPduLasterProbability
- The delay before a resend
-
getMaxInsertByte
public int getMaxInsertByte()
- Returns:
- maximum bytes inserted in a
IoBuffer
-
-