@ManagedResource public class SimpleMessageStore extends AbstractMessageGroupStore implements MessageStore, MessageGroupStore
MessageStore and MessageGroupStore. Enforces a maximum capacity for the
store.MessageGroupStore.MessageGroupCallbacklogger| Constructor and Description |
|---|
SimpleMessageStore()
Creates a SimpleMessageStore with unlimited capacity
|
SimpleMessageStore(int capacity)
Creates a SimpleMessageStore with the same capacity for individual and grouped messages.
|
SimpleMessageStore(int individualCapacity,
int groupCapacity)
Creates a SimpleMessageStore with a maximum size limited by the given capacity, or unlimited size if the given
capacity is less than 1.
|
SimpleMessageStore(int individualCapacity,
int groupCapacity,
LockRegistry lockRegistry)
|
| Modifier and Type | Method and Description |
|---|---|
<T> org.springframework.messaging.Message<T> |
addMessage(org.springframework.messaging.Message<T> message)
Put the provided Message into the MessageStore.
|
MessageGroup |
addMessageToGroup(java.lang.Object groupId,
org.springframework.messaging.Message<?> message)
Store a message with an association to a group id.
|
void |
completeGroup(java.lang.Object groupId)
Completes this MessageGroup.
|
org.springframework.messaging.Message<?> |
getMessage(java.util.UUID key)
Return the Message with the given id, or null if no Message with that id exists in the MessageStore.
|
long |
getMessageCount()
Optional attribute giving the number of messages in the store.
|
MessageGroup |
getMessageGroup(java.lang.Object groupId)
Return all Messages currently in the MessageStore that were stored using
MessageGroupStore.addMessageToGroup(Object, Message) with this group id. |
java.util.Iterator<MessageGroup> |
iterator()
Returns the iterator of currently accumulated
MessageGroups |
int |
messageGroupSize(java.lang.Object groupId)
Returns the size of this MessageGroup
|
org.springframework.messaging.Message<?> |
pollMessageFromGroup(java.lang.Object groupId)
Polls Message from this
MessageGroup (in FIFO style if supported by the implementation)
while also removing the polled Message |
org.springframework.messaging.Message<?> |
removeMessage(java.util.UUID key)
Remove the Message with the given id from the MessageStore, if present, and return it.
|
MessageGroup |
removeMessageFromGroup(java.lang.Object groupId,
org.springframework.messaging.Message<?> messageToRemove)
Persist a deletion on a single message from the group.
|
void |
removeMessageGroup(java.lang.Object groupId)
Remove the message group with this id.
|
void |
setLastReleasedSequenceNumberForGroup(java.lang.Object groupId,
int sequenceNumber)
Allows you to set the sequence number of the last released Message.
|
void |
setLockRegistry(LockRegistry lockRegistry) |
expireMessageGroups, getMessageCountForAllMessageGroups, getMessageGroupCount, isTimeoutOnIdle, registerMessageGroupExpiryCallback, setExpiryCallbacks, setTimeoutOnIdleclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitexpireMessageGroups, getMessageCountForAllMessageGroups, getMessageGroupCount, registerMessageGroupExpiryCallbackpublic SimpleMessageStore(int individualCapacity,
int groupCapacity)
addMessage(Message) and to those stored via addMessageToGroup(Object, Message). In both cases
the capacity applies to the number of messages that can be stored, and once that limit is reached attempting to
store another will result in an exception.public SimpleMessageStore(int individualCapacity,
int groupCapacity,
LockRegistry lockRegistry)
SimpleMessageStore(int, int).
Also allows the provision of a custom LockRegistry
rather than using the default.public SimpleMessageStore(int capacity)
public SimpleMessageStore()
public void setLockRegistry(LockRegistry lockRegistry)
@ManagedAttribute public long getMessageCount()
MessageStoregetMessageCount in interface MessageStorepublic <T> org.springframework.messaging.Message<T> addMessage(org.springframework.messaging.Message<T> message)
MessageStoreMessageStore.getMessage(UUID) and MessageStore.removeMessage(UUID) behave properly. Since messages are
immutable, putting the same message more than once is a no-op.addMessage in interface MessageStorepublic org.springframework.messaging.Message<?> getMessage(java.util.UUID key)
MessageStoregetMessage in interface MessageStorepublic org.springframework.messaging.Message<?> removeMessage(java.util.UUID key)
MessageStoreremoveMessage in interface MessageStorepublic MessageGroup getMessageGroup(java.lang.Object groupId)
MessageGroupStoreMessageGroupStore.addMessageToGroup(Object, Message) with this group id.getMessageGroup in interface MessageGroupStorepublic MessageGroup addMessageToGroup(java.lang.Object groupId, org.springframework.messaging.Message<?> message)
MessageGroupStoreaddMessageToGroup in interface MessageGroupStoregroupId - the group id to store the message undermessage - a messagepublic void removeMessageGroup(java.lang.Object groupId)
MessageGroupStoreremoveMessageGroup in interface MessageGroupStoregroupId - the id of the group to removepublic MessageGroup removeMessageFromGroup(java.lang.Object groupId, org.springframework.messaging.Message<?> messageToRemove)
MessageGroupStoreremoveMessageFromGroup in interface MessageGroupStoregroupId - the groupId for the group containing the messagemessageToRemove - the message to be removedpublic java.util.Iterator<MessageGroup> iterator()
MessageGroupStoreMessageGroupsiterator in interface java.lang.Iterable<MessageGroup>iterator in interface MessageGroupStorepublic void setLastReleasedSequenceNumberForGroup(java.lang.Object groupId,
int sequenceNumber)
MessageGroupStoresetLastReleasedSequenceNumberForGroup in interface MessageGroupStorepublic void completeGroup(java.lang.Object groupId)
MessageGroupStorecompleteGroup in interface MessageGroupStorepublic org.springframework.messaging.Message<?> pollMessageFromGroup(java.lang.Object groupId)
MessageGroupStoreMessageGroup (in FIFO style if supported by the implementation)
while also removing the polled MessagepollMessageFromGroup in interface MessageGroupStorepublic int messageGroupSize(java.lang.Object groupId)
MessageGroupStoremessageGroupSize in interface MessageGroupStore