public abstract class AbstractKeyValueMessageStore extends AbstractMessageGroupStore implements MessageStore
MessageGroupStore
and MessageStore
MessageGroupStore.MessageGroupCallback
Modifier and Type | Field and Description |
---|---|
protected static java.lang.String |
CREATED_DATE |
protected static java.lang.String |
MESSAGE_GROUP_KEY_PREFIX |
protected static java.lang.String |
MESSAGE_KEY_PREFIX |
logger
Constructor and Description |
---|
AbstractKeyValueMessageStore() |
Modifier and Type | Method and Description |
---|---|
<T> Message<T> |
addMessage(Message<T> message)
Put the provided Message into the MessageStore.
|
MessageGroup |
addMessageToGroup(java.lang.Object groupId,
Message<?> message)
Add a Message to the group with the provided group ID.
|
void |
completeGroup(java.lang.Object groupId)
Completes this MessageGroup.
|
protected abstract java.util.Collection<?> |
doListKeys(java.lang.String keyPattern) |
protected abstract java.lang.Object |
doRemove(java.lang.Object id) |
protected abstract java.lang.Object |
doRetrieve(java.lang.Object id) |
protected abstract void |
doStore(java.lang.Object id,
java.lang.Object objectToStore) |
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)
Will create a new instance of SimpleMessageGroup if necessary.
|
java.util.Iterator<MessageGroup> |
iterator()
Returns the iterator of currently accumulated
MessageGroup s |
int |
messageGroupSize(java.lang.Object groupId)
Returns the size of this MessageGroup
|
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 |
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,
Message<?> messageToRemove)
Remove a Message from the group with the provided group ID.
|
void |
removeMessageGroup(java.lang.Object groupId)
Remove the MessageGroup with the provided group ID.
|
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, setTimeoutOnIdle
protected static final java.lang.String MESSAGE_KEY_PREFIX
protected static final java.lang.String MESSAGE_GROUP_KEY_PREFIX
protected static final java.lang.String CREATED_DATE
public Message<?> getMessage(java.util.UUID id)
MessageStore
getMessage
in interface MessageStore
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
public Message<?> removeMessage(java.util.UUID id)
MessageStore
removeMessage
in interface MessageStore
@ManagedAttribute public long getMessageCount()
MessageStore
getMessageCount
in interface MessageStore
public MessageGroup getMessageGroup(java.lang.Object groupId)
getMessageGroup
in interface MessageGroupStore
public MessageGroup addMessageToGroup(java.lang.Object groupId, Message<?> message)
addMessageToGroup
in interface MessageGroupStore
groupId
- the group id to store the message undermessage
- a messagepublic MessageGroup removeMessageFromGroup(java.lang.Object groupId, Message<?> messageToRemove)
removeMessageFromGroup
in interface MessageGroupStore
groupId
- the groupId for the group containing the messagemessageToRemove
- the message to be removedpublic void completeGroup(java.lang.Object groupId)
MessageGroupStore
completeGroup
in interface MessageGroupStore
public void removeMessageGroup(java.lang.Object groupId)
removeMessageGroup
in interface MessageGroupStore
groupId
- the id of the group to removepublic void setLastReleasedSequenceNumberForGroup(java.lang.Object groupId, int sequenceNumber)
MessageGroupStore
setLastReleasedSequenceNumberForGroup
in interface MessageGroupStore
public Message<?> pollMessageFromGroup(java.lang.Object groupId)
MessageGroupStore
MessageGroup
(in FIFO style if supported by the implementation)
while also removing the polled Message
pollMessageFromGroup
in interface MessageGroupStore
public java.util.Iterator<MessageGroup> iterator()
MessageGroupStore
MessageGroup
siterator
in interface java.lang.Iterable<MessageGroup>
iterator
in interface MessageGroupStore
public int messageGroupSize(java.lang.Object groupId)
MessageGroupStore
messageGroupSize
in interface MessageGroupStore
protected abstract java.lang.Object doRetrieve(java.lang.Object id)
protected abstract void doStore(java.lang.Object id, java.lang.Object objectToStore)
protected abstract java.lang.Object doRemove(java.lang.Object id)
protected abstract java.util.Collection<?> doListKeys(java.lang.String keyPattern)