Class MutableMessage<T>

Type Parameters:
T - the payload type.
All Implemented Interfaces:
Serializable, Message<T>

public class MutableMessage<T> extends Object implements Message<T>, Serializable
An implementation of Message with a generic payload. Unlike GenericMessage, this message (or its headers) can be modified after creation. Great care must be taken, when mutating messages, that some other element/thread is not concurrently using the message. Also note that any in-memory stores (such as SimpleMessageStore) may have a reference to the message and changes will be reflected there too.

IMPORTANT: Mutable messages may share state (such as message headers); such messages should never be exposed to other components or undesirable side-effects may result.

It is generally recommended that messages transferred between components should always be immutable unless great care is taken with their use.

Gary Russell, Artem Bilan, Stuart Williams, David Turanski
See Also: