public class ConfigurableMongoDbMessageStore extends AbstractConfigurableMongoDbMessageStore implements MessageStore
MessageStore
and
MessageGroupStore
which allows the user to
configure the instance of MongoTemplate
. The mechanism of storing the messages/group of messages
in the store is and is different from MongoDbMessageStore
. Since the store uses serialization of the
messages by default, all the headers, and the payload of the Message must implement Serializable
interfaceMessageGroupStore.MessageGroupCallback
Modifier and Type | Field and Description |
---|---|
static String |
DEFAULT_COLLECTION_NAME |
collectionName, logger, mongoDbFactory, SEQUENCE_NAME
Constructor and Description |
---|
ConfigurableMongoDbMessageStore(MongoDatabaseFactory mongoDbFactory) |
ConfigurableMongoDbMessageStore(MongoDatabaseFactory mongoDbFactory,
MappingMongoConverter mappingMongoConverter) |
ConfigurableMongoDbMessageStore(MongoDatabaseFactory mongoDbFactory,
MappingMongoConverter mappingMongoConverter,
String collectionName) |
ConfigurableMongoDbMessageStore(MongoDatabaseFactory mongoDbFactory,
String collectionName) |
ConfigurableMongoDbMessageStore(MongoTemplate mongoTemplate) |
ConfigurableMongoDbMessageStore(MongoTemplate mongoTemplate,
String collectionName) |
Modifier and Type | Method and Description |
---|---|
<T> Message<T> |
addMessage(Message<T> message)
Put the provided Message into the MessageStore.
|
void |
addMessagesToGroup(Object groupId,
Message<?>... messages)
Store messages with an association to a group id.
|
MessageGroup |
addMessageToGroup(Object groupId,
Message<?> message)
Store a message with an association to a group id.
|
void |
completeGroup(Object groupId)
Completes this MessageGroup.
|
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(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.
|
Collection<Message<?>> |
getMessagesForGroup(Object groupId)
Retrieve messages for the provided group id.
|
Message<?> |
getOneMessageFromGroup(Object groupId)
Return the one
Message from MessageGroup . |
Iterator<MessageGroup> |
iterator() |
Message<?> |
pollMessageFromGroup(Object groupId)
Polls Message from this
MessageGroup (in FIFO style if supported by the implementation)
while also removing the polled Message |
Message<?> |
removeMessage(UUID id)
Remove the Message with the given id from the MessageStore, if present, and return it.
|
void |
removeMessagesFromGroup(Object groupId,
Collection<Message<?>> messages)
Persist the deletion of messages from the group.
|
void |
setLastReleasedSequenceNumberForGroup(Object groupId,
int sequenceNumber)
Allows you to set the sequence number of the last released Message.
|
addMessageDocument, afterPropertiesSet, getApplicationContext, getMappingMongoConverter, getMessage, getMessageBuilderFactory, getMessageMetadata, getMongoTemplate, getNextId, groupIdQuery, messageGroupSize, removeMessageGroup, setApplicationContext
copy, expireMessageGroups, getGroupMetadata, getMessageGroupFactory, isTimeoutOnIdle, registerMessageGroupExpiryCallback, removeMessagesFromGroup, setExpiryCallbacks, setLazyLoadMessageGroups, setTimeoutOnIdle
getRemoveBatchSize, setMessageGroupFactory, setRemoveBatchSize
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getMessage, getMessageMetadata
forEach, spliterator
public static final String DEFAULT_COLLECTION_NAME
public ConfigurableMongoDbMessageStore(MongoTemplate mongoTemplate)
public ConfigurableMongoDbMessageStore(MongoTemplate mongoTemplate, String collectionName)
public ConfigurableMongoDbMessageStore(MongoDatabaseFactory mongoDbFactory)
public ConfigurableMongoDbMessageStore(MongoDatabaseFactory mongoDbFactory, MappingMongoConverter mappingMongoConverter)
public ConfigurableMongoDbMessageStore(MongoDatabaseFactory mongoDbFactory, String collectionName)
public ConfigurableMongoDbMessageStore(MongoDatabaseFactory mongoDbFactory, MappingMongoConverter mappingMongoConverter, String collectionName)
public <T> Message<T> addMessage(Message<T> message)
MessageStore
MessageStore.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 MessageStore
T
- The payload type.message
- The message.public Message<?> removeMessage(UUID id)
MessageStore
removeMessage
in interface MessageStore
id
- THe message identifier.public long getMessageCount()
MessageStore
getMessageCount
in interface MessageStore
public MessageGroup getMessageGroup(Object groupId)
BasicMessageGroupStore
BasicMessageGroupStore.addMessageToGroup(Object, Message)
with this group id.getMessageGroup
in interface BasicMessageGroupStore
groupId
- The group identifier.public MessageGroup addMessageToGroup(Object groupId, Message<?> message)
BasicMessageGroupStore
addMessageToGroup
in interface BasicMessageGroupStore
addMessageToGroup
in class AbstractMessageGroupStore
groupId
- The group id to store the message under.message
- A message.public void addMessagesToGroup(Object groupId, Message<?>... messages)
MessageGroupStore
addMessagesToGroup
in interface MessageGroupStore
addMessagesToGroup
in class AbstractConfigurableMongoDbMessageStore
groupId
- The group id to store messages under.messages
- The messages to add.public void removeMessagesFromGroup(Object groupId, Collection<Message<?>> messages)
MessageGroupStore
removeMessagesFromGroup
in interface MessageGroupStore
removeMessagesFromGroup
in class AbstractConfigurableMongoDbMessageStore
groupId
- The groupId for the group containing the message(s).messages
- The messages to be removed.public Message<?> pollMessageFromGroup(Object groupId)
BasicMessageGroupStore
MessageGroup
(in FIFO style if supported by the implementation)
while also removing the polled Message
pollMessageFromGroup
in interface BasicMessageGroupStore
groupId
- The group identifier.public void setLastReleasedSequenceNumberForGroup(Object groupId, int sequenceNumber)
MessageGroupStore
setLastReleasedSequenceNumberForGroup
in interface MessageGroupStore
setLastReleasedSequenceNumberForGroup
in class AbstractConfigurableMongoDbMessageStore
groupId
- The group identifier.sequenceNumber
- The sequence number.public void completeGroup(Object groupId)
MessageGroupStore
completeGroup
in interface MessageGroupStore
completeGroup
in class AbstractConfigurableMongoDbMessageStore
groupId
- The group identifier.public Iterator<MessageGroup> iterator()
iterator
in interface Iterable<MessageGroup>
iterator
in interface MessageGroupStore
iterator
in class AbstractConfigurableMongoDbMessageStore
MessageGroup
s.@ManagedAttribute public int getMessageCountForAllMessageGroups()
MessageGroupStore
getMessageCountForAllMessageGroups
in interface MessageGroupStore
getMessageCountForAllMessageGroups
in class AbstractMessageGroupStore
@ManagedAttribute public int getMessageGroupCount()
MessageGroupStore
getMessageGroupCount
in interface MessageGroupStore
getMessageGroupCount
in class AbstractMessageGroupStore
public Message<?> getOneMessageFromGroup(Object groupId)
MessageGroupStore
Message
from MessageGroup
.getOneMessageFromGroup
in interface MessageGroupStore
getOneMessageFromGroup
in class AbstractConfigurableMongoDbMessageStore
groupId
- The group identifier.Message
.public Collection<Message<?>> getMessagesForGroup(Object groupId)
MessageGroupStore
getMessagesForGroup
in interface MessageGroupStore
getMessagesForGroup
in class AbstractConfigurableMongoDbMessageStore
groupId
- The group id to retrieve messages for.