public abstract class AbstractKeyValueMessageStore extends AbstractMessageGroupStore implements MessageStore
MessageGroupStore
and MessageStore
MessageGroupStore.MessageGroupCallback
Modifier and Type | Field and Description |
---|---|
protected static String |
CREATED_DATE |
protected static String |
MESSAGE_GROUP_KEY_PREFIX |
protected static 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(Object groupId,
Message<?> message)
Add a Message to the group with the provided group ID.
|
void |
completeGroup(Object groupId)
Completes this MessageGroup.
|
protected abstract Collection<?> |
doListKeys(String keyPattern) |
protected abstract Object |
doRemove(Object id) |
protected abstract Object |
doRetrieve(Object id) |
protected abstract void |
doStore(Object id,
Object objectToStore) |
Message<?> |
getMessage(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(Object groupId)
Will create a new instance of SimpleMessageGroup if necessary.
|
Iterator<MessageGroup> |
iterator()
Returns the iterator of currently accumulated
MessageGroup s |
int |
messageGroupSize(Object groupId)
Returns the size of this MessageGroup
|
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.
|
MessageGroup |
removeMessageFromGroup(Object groupId,
Message<?> messageToRemove)
Remove a Message from the group with the provided group ID.
|
void |
removeMessageGroup(Object groupId)
Remove the MessageGroup with the provided group ID.
|
void |
setLastReleasedSequenceNumberForGroup(Object groupId,
int sequenceNumber)
Allows you to set the sequence number of the last released Message.
|
expireMessageGroups, getMessageCountForAllMessageGroups, getMessageGroupCount, isTimeoutOnIdle, registerMessageGroupExpiryCallback, setExpiryCallbacks, setTimeoutOnIdle
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
forEach, spliterator
protected static final String MESSAGE_KEY_PREFIX
protected static final String MESSAGE_GROUP_KEY_PREFIX
protected static final String CREATED_DATE
public Message<?> getMessage(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(UUID id)
MessageStore
removeMessage
in interface MessageStore
@ManagedAttribute public long getMessageCount()
MessageStore
getMessageCount
in interface MessageStore
public MessageGroup getMessageGroup(Object groupId)
getMessageGroup
in interface MessageGroupStore
public MessageGroup addMessageToGroup(Object groupId, Message<?> message)
addMessageToGroup
in interface MessageGroupStore
groupId
- the group id to store the message undermessage
- a messagepublic MessageGroup removeMessageFromGroup(Object groupId, Message<?> messageToRemove)
removeMessageFromGroup
in interface MessageGroupStore
groupId
- the groupId for the group containing the messagemessageToRemove
- the message to be removedpublic void completeGroup(Object groupId)
MessageGroupStore
completeGroup
in interface MessageGroupStore
public void removeMessageGroup(Object groupId)
removeMessageGroup
in interface MessageGroupStore
groupId
- the id of the group to removepublic void setLastReleasedSequenceNumberForGroup(Object groupId, int sequenceNumber)
MessageGroupStore
setLastReleasedSequenceNumberForGroup
in interface MessageGroupStore
public Message<?> pollMessageFromGroup(Object groupId)
MessageGroupStore
MessageGroup
(in FIFO style if supported by the implementation)
while also removing the polled Message
pollMessageFromGroup
in interface MessageGroupStore
public Iterator<MessageGroup> iterator()
MessageGroupStore
MessageGroup
siterator
in interface Iterable<MessageGroup>
iterator
in interface MessageGroupStore
public int messageGroupSize(Object groupId)
MessageGroupStore
messageGroupSize
in interface MessageGroupStore
protected abstract Collection<?> doListKeys(String keyPattern)
Copyright © 2017. All rights reserved.