Class ConfigurableMongoDbMessageStore
java.lang.Object
org.springframework.integration.store.AbstractBatchingMessageGroupStore
org.springframework.integration.store.AbstractMessageGroupStore
org.springframework.integration.mongodb.store.AbstractConfigurableMongoDbMessageStore
org.springframework.integration.mongodb.store.ConfigurableMongoDbMessageStore
- All Implemented Interfaces:
- Iterable<MessageGroup>,- Aware,- InitializingBean,- ApplicationContextAware,- BasicMessageGroupStore,- MessageGroupStore,- MessageStore
public class ConfigurableMongoDbMessageStore extends AbstractConfigurableMongoDbMessageStore implements MessageStore
An alternate MongoDB 
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
 interface- Since:
- 3.0
- Author:
- Amol Nayak, Artem Bilan, Gary Russell
- 
Nested Class SummaryNested classes/interfaces inherited from interface org.springframework.integration.store.MessageGroupStoreMessageGroupStore.MessageGroupCallback
- 
Field SummaryFields Modifier and Type Field Description static StringDEFAULT_COLLECTION_NAMEFields inherited from class org.springframework.integration.mongodb.store.AbstractConfigurableMongoDbMessageStorecollectionName, logger, mongoDbFactory, SEQUENCE_NAME
- 
Constructor SummaryConstructors Constructor Description ConfigurableMongoDbMessageStore(MongoTemplate mongoTemplate)ConfigurableMongoDbMessageStore(MongoTemplate mongoTemplate, String collectionName)ConfigurableMongoDbMessageStore(MongoDatabaseFactory mongoDbFactory)ConfigurableMongoDbMessageStore(MongoDatabaseFactory mongoDbFactory, String collectionName)ConfigurableMongoDbMessageStore(MongoDatabaseFactory mongoDbFactory, MappingMongoConverter mappingMongoConverter)ConfigurableMongoDbMessageStore(MongoDatabaseFactory mongoDbFactory, MappingMongoConverter mappingMongoConverter, String collectionName)
- 
Method SummaryModifier and Type Method Description <T> Message<T>addMessage(Message<T> message)Put the provided Message into the MessageStore.voidaddMessagesToGroup(Object groupId, Message<?>... messages)Store messages with an association to a group id.MessageGroupaddMessageToGroup(Object groupId, Message<?> message)Store a message with an association to a group id.voidcompleteGroup(Object groupId)Completes this MessageGroup.longgetMessageCount()Optional attribute giving the number of messages in the store.intgetMessageCountForAllMessageGroups()Optional attribute giving the number of messages in the store over all groups.MessageGroupgetMessageGroup(Object groupId)Return all Messages currently in the MessageStore that were stored usingBasicMessageGroupStore.addMessageToGroup(Object, Message)with this group id.intgetMessageGroupCount()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 oneMessagefromMessageGroup.Iterator<MessageGroup>iterator()Message<?>pollMessageFromGroup(Object groupId)Poll Message from thisMessageGroup(in FIFO style if supported by the implementation) while also removing the polledMessage.Message<?>removeMessage(UUID id)Remove the Message with the given id from the MessageStore, if present, and return it.voidremoveMessagesFromGroup(Object groupId, Collection<Message<?>> messages)Persist the deletion of messages from the group.voidsetGroupCondition(Object groupId, String condition)Add a condition sentence into the group.voidsetLastReleasedSequenceNumberForGroup(Object groupId, int sequenceNumber)Allows you to set the sequence number of the last released Message.Stream<Message<?>>streamMessagesForGroup(Object groupId)Return a stream for messages stored in the provided group.Methods inherited from class org.springframework.integration.mongodb.store.AbstractConfigurableMongoDbMessageStoreaddMessageDocument, afterPropertiesSet, getApplicationContext, getMappingMongoConverter, getMessage, getMessageBuilderFactory, getMessageMetadata, getMongoTemplate, getNextId, groupIdQuery, messageGroupSize, removeMessageGroup, setApplicationContextMethods inherited from class org.springframework.integration.store.AbstractMessageGroupStorecopy, expireMessageGroups, getGroupMetadata, getMessageGroupFactory, isTimeoutOnIdle, registerMessageGroupExpiryCallback, removeMessagesFromGroup, setExpiryCallbacks, setLazyLoadMessageGroups, setTimeoutOnIdleMethods inherited from class org.springframework.integration.store.AbstractBatchingMessageGroupStoregetRemoveBatchSize, setMessageGroupFactory, setRemoveBatchSizeMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.integration.store.MessageStoregetMessage, getMessageMetadata
- 
Field Details- 
DEFAULT_COLLECTION_NAME- See Also:
- Constant Field Values
 
 
- 
- 
Constructor Details- 
ConfigurableMongoDbMessageStore
- 
ConfigurableMongoDbMessageStore
- 
ConfigurableMongoDbMessageStore
- 
ConfigurableMongoDbMessageStorepublic ConfigurableMongoDbMessageStore(MongoDatabaseFactory mongoDbFactory, MappingMongoConverter mappingMongoConverter)
- 
ConfigurableMongoDbMessageStore
- 
ConfigurableMongoDbMessageStorepublic ConfigurableMongoDbMessageStore(MongoDatabaseFactory mongoDbFactory, MappingMongoConverter mappingMongoConverter, String collectionName)
 
- 
- 
Method Details- 
addMessageDescription copied from interface:MessageStorePut the provided Message into the MessageStore. The store may need to mutate the message internally, and if it does then the return value can be different than the input. The id of the return value will be used as an index so that theMessageStore.getMessage(UUID)andMessageStore.removeMessage(UUID)behave properly. Since messages are immutable, putting the same message more than once is a no-op.- Specified by:
- addMessagein interface- MessageStore
- Type Parameters:
- T- The payload type.
- Parameters:
- message- The message.
- Returns:
- The message that was stored.
 
- 
removeMessageDescription copied from interface:MessageStoreRemove the Message with the given id from the MessageStore, if present, and return it. If no Message with that id is present in the store, this will return null.- Specified by:
- removeMessagein interface- MessageStore
- Parameters:
- id- THe message identifier.
- Returns:
- The message.
 
- 
getMessageCountpublic long getMessageCount()Description copied from interface:MessageStoreOptional attribute giving the number of messages in the store. Implementations may decline to respond by throwing an exception.- Specified by:
- getMessageCountin interface- MessageStore
- Returns:
- The number of messages.
 
- 
getMessageGroupDescription copied from interface:BasicMessageGroupStoreReturn all Messages currently in the MessageStore that were stored usingBasicMessageGroupStore.addMessageToGroup(Object, Message)with this group id.- Specified by:
- getMessageGroupin interface- BasicMessageGroupStore
- Parameters:
- groupId- The group identifier.
- Returns:
- A group of messages, empty if none exists for this key.
 
- 
addMessageToGroupDescription copied from interface:BasicMessageGroupStoreStore a message with an association to a group id. This can be used to group messages together.- Specified by:
- addMessageToGroupin interface- BasicMessageGroupStore
- Overrides:
- addMessageToGroupin class- AbstractMessageGroupStore
- Parameters:
- groupId- The group id to store the message under.
- message- A message.
- Returns:
- The message group.
 
- 
addMessagesToGroupDescription copied from interface:MessageGroupStoreStore messages with an association to a group id. This can be used to group messages together.- Specified by:
- addMessagesToGroupin interface- MessageGroupStore
- Overrides:
- addMessagesToGroupin class- AbstractConfigurableMongoDbMessageStore
- Parameters:
- groupId- The group id to store messages under.
- messages- The messages to add.
 
- 
removeMessagesFromGroupDescription copied from interface:MessageGroupStorePersist the deletion of messages from the group.- Specified by:
- removeMessagesFromGroupin interface- MessageGroupStore
- Overrides:
- removeMessagesFromGroupin class- AbstractConfigurableMongoDbMessageStore
- Parameters:
- groupId- The groupId for the group containing the message(s).
- messages- The messages to be removed.
 
- 
pollMessageFromGroupDescription copied from interface:BasicMessageGroupStorePoll Message from thisMessageGroup(in FIFO style if supported by the implementation) while also removing the polledMessage.- Specified by:
- pollMessageFromGroupin interface- BasicMessageGroupStore
- Parameters:
- groupId- The group identifier.
- Returns:
- The message.
 
- 
setLastReleasedSequenceNumberForGroupDescription copied from interface:MessageGroupStoreAllows you to set the sequence number of the last released Message. Used for Resequencing use cases- Specified by:
- setLastReleasedSequenceNumberForGroupin interface- MessageGroupStore
- Overrides:
- setLastReleasedSequenceNumberForGroupin class- AbstractConfigurableMongoDbMessageStore
- Parameters:
- groupId- The group identifier.
- sequenceNumber- The sequence number.
 
- 
setGroupConditionDescription copied from interface:MessageGroupStoreAdd a condition sentence into the group. Can be used later on for making some decisions for group, e.g. release strategy for correlation handler can consult this condition instead of iterating all the messages in group.- Specified by:
- setGroupConditionin interface- MessageGroupStore
- Overrides:
- setGroupConditionin class- AbstractConfigurableMongoDbMessageStore
- Parameters:
- groupId- The group identifier.
- condition- The condition to store into the group.
 
- 
completeGroupDescription copied from interface:MessageGroupStoreCompletes this MessageGroup. Completion of the MessageGroup generally means that this group should not be allowing any more mutating operation to be performed on it. For example any attempt to add/remove new Message form the group should not be allowed.- Specified by:
- completeGroupin interface- MessageGroupStore
- Overrides:
- completeGroupin class- AbstractConfigurableMongoDbMessageStore
- Parameters:
- groupId- The group identifier.
 
- 
iterator- Specified by:
- iteratorin interface- Iterable<MessageGroup>
- Specified by:
- iteratorin interface- MessageGroupStore
- Overrides:
- iteratorin class- AbstractConfigurableMongoDbMessageStore
- Returns:
- The iterator of currently accumulated MessageGroups.
 
- 
getMessageCountForAllMessageGroupsDescription copied from interface:MessageGroupStoreOptional attribute giving the number of messages in the store over all groups. Implementations may decline to respond by throwing an exception.- Specified by:
- getMessageCountForAllMessageGroupsin interface- MessageGroupStore
- Overrides:
- getMessageCountForAllMessageGroupsin class- AbstractMessageGroupStore
- Returns:
- the number of messages
 
- 
getMessageGroupCountDescription copied from interface:MessageGroupStoreOptional attribute giving the number of message groups. Implementations may decline to respond by throwing an exception.- Specified by:
- getMessageGroupCountin interface- MessageGroupStore
- Overrides:
- getMessageGroupCountin class- AbstractMessageGroupStore
- Returns:
- the number message groups
 
- 
getOneMessageFromGroupDescription copied from interface:MessageGroupStoreReturn the oneMessagefromMessageGroup.- Specified by:
- getOneMessageFromGroupin interface- MessageGroupStore
- Overrides:
- getOneMessageFromGroupin class- AbstractConfigurableMongoDbMessageStore
- Parameters:
- groupId- The group identifier.
- Returns:
- the Message.
 
- 
getMessagesForGroupDescription copied from interface:MessageGroupStoreRetrieve messages for the provided group id.- Specified by:
- getMessagesForGroupin interface- MessageGroupStore
- Overrides:
- getMessagesForGroupin class- AbstractConfigurableMongoDbMessageStore
- Parameters:
- groupId- The group id to retrieve messages for.
- Returns:
- the messages for group.
 
- 
streamMessagesForGroupDescription copied from interface:MessageGroupStoreReturn a stream for messages stored in the provided group. The persistent implementations return a Stream which has to be closed once fully processed (e.g. through a try-with-resources clause). By default, it streams a result ofMessageGroupStore.getMessagesForGroup(Object).- Specified by:
- streamMessagesForGroupin interface- MessageGroupStore
- Parameters:
- groupId- the group id to retrieve messages.
- Returns:
- the Streamfor messages in this group.
 
 
-