public class MongoDbMessageStore extends AbstractMessageGroupStore implements MessageStore, org.springframework.beans.factory.BeanClassLoaderAware
MessageStore and MessageGroupStore
strategies that relies upon MongoDB for persistence.MessageGroupStore.MessageGroupCallbacklogger| Constructor and Description |
|---|
MongoDbMessageStore(org.springframework.data.mongodb.MongoDbFactory mongoDbFactory)
Create a MongoDbMessageStore using the provided
MongoDbFactory.and the default collection name. |
MongoDbMessageStore(org.springframework.data.mongodb.MongoDbFactory mongoDbFactory,
java.lang.String collectionName)
Create a MongoDbMessageStore using the provided
MongoDbFactory and collection name. |
| 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 id)
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 id)
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 |
setBeanClassLoader(java.lang.ClassLoader classLoader) |
void |
setLastReleasedSequenceNumberForGroup(java.lang.Object groupId,
int sequenceNumber)
Allows you to set the sequence number of the last released Message.
|
expireMessageGroups, getMessageCountForAllMessageGroups, getMessageGroupCount, isTimeoutOnIdle, registerMessageGroupExpiryCallback, setExpiryCallbacks, setTimeoutOnIdlepublic MongoDbMessageStore(org.springframework.data.mongodb.MongoDbFactory mongoDbFactory)
MongoDbFactory.and the default collection name.public MongoDbMessageStore(org.springframework.data.mongodb.MongoDbFactory mongoDbFactory,
java.lang.String collectionName)
MongoDbFactory and collection name.public void setBeanClassLoader(java.lang.ClassLoader classLoader)
setBeanClassLoader in interface org.springframework.beans.factory.BeanClassLoaderAwarepublic <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 id)
MessageStoregetMessage in interface MessageStore@ManagedAttribute public long getMessageCount()
MessageStoregetMessageCount in interface MessageStorepublic org.springframework.messaging.Message<?> removeMessage(java.util.UUID id)
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 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 void removeMessageGroup(java.lang.Object groupId)
MessageGroupStoreremoveMessageGroup in interface MessageGroupStoregroupId - the id of the group to removepublic java.util.Iterator<MessageGroup> iterator()
MessageGroupStoreMessageGroupsiterator in interface java.lang.Iterable<MessageGroup>iterator in interface MessageGroupStorepublic void completeGroup(java.lang.Object groupId)
MessageGroupStorecompleteGroup in interface MessageGroupStorepublic void setLastReleasedSequenceNumberForGroup(java.lang.Object groupId,
int sequenceNumber)
MessageGroupStoresetLastReleasedSequenceNumberForGroup 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