public class MongoDbMessageStore extends AbstractMessageGroupStore implements MessageStore, org.springframework.beans.factory.BeanClassLoaderAware, org.springframework.context.ApplicationContextAware, org.springframework.beans.factory.InitializingBean
MessageStore and MessageGroupStore
strategies that relies upon MongoDB for persistence.MessageGroupStore.MessageGroupCallback| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
CREATED_DATE_KEY
Deprecated.
since 5.0. This constant isn't used any more.
|
static java.lang.String |
SAVED_KEY
Deprecated.
since 5.0. This constant isn't used any more.
|
static java.lang.String |
SEQUENCE_NAME |
logger| 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.
|
void |
addMessagesToGroup(java.lang.Object groupId,
org.springframework.messaging.Message<?>... messages)
Store messages with an association to a group id.
|
void |
addWhiteListPatterns(java.lang.String... patterns)
Add patterns for packages/classes that are allowed to be deserialized.
|
void |
afterPropertiesSet() |
void |
completeGroup(java.lang.Object groupId)
Completes this MessageGroup.
|
org.springframework.messaging.Message<?> |
getMessage(java.util.UUID id) |
long |
getMessageCount()
Optional attribute giving the number of messages in the store.
|
int |
getMessageCountForAllMessageGroups()
Optional attribute giving the number of messages in the store over all groups.
|
MessageGroup |
getMessageGroup(java.lang.Object groupId)
Return all Messages currently in the MessageStore that were stored using
BasicMessageGroupStore.addMessageToGroup(Object, Message) with this group id. |
int |
getMessageGroupCount()
Optional attribute giving the number of message groups.
|
MessageMetadata |
getMessageMetadata(java.util.UUID id)
|
java.util.Collection<org.springframework.messaging.Message<?>> |
getMessagesForGroup(java.lang.Object groupId)
Retrieve messages for the provided group id.
|
org.springframework.messaging.Message<?> |
getOneMessageFromGroup(java.lang.Object groupId)
Return the one
Message from MessageGroup. |
java.util.Iterator<MessageGroup> |
iterator() |
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.
|
void |
removeMessageGroup(java.lang.Object groupId)
Remove the message group with this id.
|
void |
removeMessagesFromGroup(java.lang.Object groupId,
java.util.Collection<org.springframework.messaging.Message<?>> messages)
Persist the deletion of messages from the group.
|
void |
setApplicationContext(org.springframework.context.ApplicationContext applicationContext) |
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.
|
addMessageToGroup, copy, expireMessageGroups, getGroupMetadata, getMessageGroupFactory, isTimeoutOnIdle, registerMessageGroupExpiryCallback, removeMessagesFromGroup, setExpiryCallbacks, setLazyLoadMessageGroups, setTimeoutOnIdlegetRemoveBatchSize, setMessageGroupFactory, setRemoveBatchSizepublic static final java.lang.String SEQUENCE_NAME
@Deprecated public static final java.lang.String SAVED_KEY
@Deprecated public static final java.lang.String CREATED_DATE_KEY
public MongoDbMessageStore(org.springframework.data.mongodb.MongoDbFactory mongoDbFactory)
MongoDbFactory.and the default collection name.mongoDbFactory - The mongodb factory.public MongoDbMessageStore(org.springframework.data.mongodb.MongoDbFactory mongoDbFactory,
java.lang.String collectionName)
MongoDbFactory and collection name.mongoDbFactory - The mongodb factory.collectionName - The collection name.public void setBeanClassLoader(java.lang.ClassLoader classLoader)
setBeanClassLoader in interface org.springframework.beans.factory.BeanClassLoaderAwarepublic void setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
throws org.springframework.beans.BeansException
setApplicationContext in interface org.springframework.context.ApplicationContextAwareorg.springframework.beans.BeansExceptionpublic void addWhiteListPatterns(java.lang.String... patterns)
com.foo.*, *.MyClass.patterns - the patterns.public void afterPropertiesSet()
throws java.lang.Exception
afterPropertiesSet in interface org.springframework.beans.factory.InitializingBeanjava.lang.Exceptionpublic <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 MessageStoreT - The payload type.message - The message.public org.springframework.messaging.Message<?> getMessage(java.util.UUID id)
getMessage in interface MessageStoreid - The message identifier.public MessageMetadata getMessageMetadata(java.util.UUID id)
MessageStoregetMessageMetadata in interface MessageStoreid - The message identifier.@ManagedAttribute public long getMessageCount()
MessageStoregetMessageCount in interface MessageStorepublic org.springframework.messaging.Message<?> removeMessage(java.util.UUID id)
MessageStoreremoveMessage in interface MessageStoreid - THe message identifier.public MessageGroup getMessageGroup(java.lang.Object groupId)
BasicMessageGroupStoreBasicMessageGroupStore.addMessageToGroup(Object, Message) with this group id.getMessageGroup in interface BasicMessageGroupStoregroupId - The group identifier.public void addMessagesToGroup(java.lang.Object groupId,
org.springframework.messaging.Message<?>... messages)
MessageGroupStoreaddMessagesToGroup in interface MessageGroupStoregroupId - The group id to store messages under.messages - The messages to add.public void removeMessagesFromGroup(java.lang.Object groupId,
java.util.Collection<org.springframework.messaging.Message<?>> messages)
MessageGroupStoreremoveMessagesFromGroup in interface MessageGroupStoregroupId - The groupId for the group containing the message(s).messages - The messages to be removed.public void removeMessageGroup(java.lang.Object groupId)
BasicMessageGroupStoreremoveMessageGroup in interface BasicMessageGroupStoregroupId - The id of the group to remove.public java.util.Iterator<MessageGroup> iterator()
iterator in interface java.lang.Iterable<MessageGroup>iterator in interface MessageGroupStoreMessageGroups.public org.springframework.messaging.Message<?> pollMessageFromGroup(java.lang.Object groupId)
BasicMessageGroupStoreMessageGroup (in FIFO style if supported by the implementation)
while also removing the polled MessagepollMessageFromGroup in interface BasicMessageGroupStoregroupId - The group identifier.public int messageGroupSize(java.lang.Object groupId)
BasicMessageGroupStoremessageGroupSize in interface BasicMessageGroupStoregroupId - The group identifier.public void setLastReleasedSequenceNumberForGroup(java.lang.Object groupId,
int sequenceNumber)
MessageGroupStoresetLastReleasedSequenceNumberForGroup in interface MessageGroupStoregroupId - The group identifier.sequenceNumber - The sequence number.public void completeGroup(java.lang.Object groupId)
MessageGroupStorecompleteGroup in interface MessageGroupStoregroupId - The group identifier.public org.springframework.messaging.Message<?> getOneMessageFromGroup(java.lang.Object groupId)
MessageGroupStoreMessage from MessageGroup.getOneMessageFromGroup in interface MessageGroupStoregroupId - The group identifier.Message.public java.util.Collection<org.springframework.messaging.Message<?>> getMessagesForGroup(java.lang.Object groupId)
MessageGroupStoregetMessagesForGroup in interface MessageGroupStoregroupId - The group id to retrieve messages for.@ManagedAttribute public int getMessageCountForAllMessageGroups()
MessageGroupStoregetMessageCountForAllMessageGroups in interface MessageGroupStoregetMessageCountForAllMessageGroups in class AbstractMessageGroupStore@ManagedAttribute public int getMessageGroupCount()
MessageGroupStoregetMessageGroupCount in interface MessageGroupStoregetMessageGroupCount in class AbstractMessageGroupStore