public abstract class AbstractKeyValueMessageStore extends AbstractMessageGroupStore implements MessageStore
MessageGroupStore and MessageStoreMessageGroupStore.MessageGroupCallback| Modifier and Type | Field and Description |
|---|---|
protected static String |
CREATED_DATE
Deprecated.
since 5.0. This constant isn't used any more.
|
protected static String |
MESSAGE_GROUP_KEY_PREFIX |
protected static String |
MESSAGE_KEY_PREFIX |
logger| Modifier | Constructor and Description |
|---|---|
protected |
AbstractKeyValueMessageStore() |
protected |
AbstractKeyValueMessageStore(String prefix)
Construct an instance based on the provided prefix for keys to distinguish between
different store instances in the same target key-value data base.
|
| 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.
|
void |
completeGroup(Object groupId)
Completes this MessageGroup.
|
protected void |
doAddMessage(Message<?> message) |
protected abstract Collection<?> |
doListKeys(String keyPattern) |
protected abstract Object |
doRemove(Object id) |
protected abstract void |
doRemoveAll(Collection<Object> ids) |
protected abstract Object |
doRetrieve(Object id) |
protected abstract void |
doStore(Object id,
Object objectToStore) |
protected abstract void |
doStoreIfAbsent(Object id,
Object objectToStore) |
MessageGroupMetadata |
getGroupMetadata(Object groupId)
Obtain the group metadata without fetching any messages; must supply all other
group properties; may include the id of the first message.
|
String |
getGroupPrefix()
Return the configured prefix for message group keys to distinguish between
different store instances in the same target key-value data base.
|
Message<?> |
getMessage(UUID messageId) |
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.
|
MessageMetadata |
getMessageMetadata(UUID messageId)
|
protected String |
getMessagePrefix()
Return the configured prefix for message keys to distinguish between different
store instances in the same target key-value data base.
|
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() |
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.
|
void |
removeMessageGroup(Object groupId)
Remove the MessageGroup with the provided group ID.
|
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.
|
addMessageToGroup, copy, expireMessageGroups, getMessageCountForAllMessageGroups, getMessageGroupCount, getMessageGroupFactory, isTimeoutOnIdle, registerMessageGroupExpiryCallback, removeMessagesFromGroup, setExpiryCallbacks, setLazyLoadMessageGroups, setTimeoutOnIdlegetRemoveBatchSize, setMessageGroupFactory, setRemoveBatchSizeclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitforEach, spliteratorprotected static final String MESSAGE_KEY_PREFIX
protected static final String MESSAGE_GROUP_KEY_PREFIX
@Deprecated protected static final String CREATED_DATE
protected AbstractKeyValueMessageStore()
protected AbstractKeyValueMessageStore(String prefix)
prefix + MESSAGE_; for message groups - prefix + MESSAGE_GROUP_prefix - the prefix to useprotected String getMessagePrefix()
public String getGroupPrefix()
public Message<?> getMessage(UUID messageId)
getMessage in interface MessageStoremessageId - The message identifier.public MessageMetadata getMessageMetadata(UUID messageId)
MessageStoregetMessageMetadata in interface MessageStoremessageId - The message identifier.public <T> Message<T> addMessage(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.protected void doAddMessage(Message<?> message)
public Message<?> removeMessage(UUID id)
MessageStoreremoveMessage in interface MessageStoreid - THe message identifier.@ManagedAttribute public long getMessageCount()
MessageStoregetMessageCount in interface MessageStorepublic MessageGroup getMessageGroup(Object groupId)
getMessageGroup in interface BasicMessageGroupStoregroupId - The group identifier.public MessageGroupMetadata getGroupMetadata(Object groupId)
MessageGroupStoregetGroupMetadata in interface MessageGroupStoregetGroupMetadata in class AbstractMessageGroupStoregroupId - The group id.public void addMessagesToGroup(Object groupId, Message<?>... messages)
MessageGroupStoreaddMessagesToGroup in interface MessageGroupStoregroupId - The group id to store messages under.messages - The messages to add.public void removeMessagesFromGroup(Object groupId, Collection<Message<?>> messages)
MessageGroupStoreremoveMessagesFromGroup in interface MessageGroupStoregroupId - The groupId for the group containing the message(s).messages - The messages to be removed.public void completeGroup(Object groupId)
MessageGroupStorecompleteGroup in interface MessageGroupStoregroupId - The group identifier.public void removeMessageGroup(Object groupId)
removeMessageGroup in interface BasicMessageGroupStoregroupId - The id of the group to remove.public void setLastReleasedSequenceNumberForGroup(Object groupId, int sequenceNumber)
MessageGroupStoresetLastReleasedSequenceNumberForGroup in interface MessageGroupStoregroupId - The group identifier.sequenceNumber - The sequence number.public Message<?> pollMessageFromGroup(Object groupId)
BasicMessageGroupStoreMessageGroup (in FIFO style if supported by the implementation)
while also removing the polled MessagepollMessageFromGroup in interface BasicMessageGroupStoregroupId - The group identifier.public Message<?> getOneMessageFromGroup(Object groupId)
MessageGroupStoreMessage from MessageGroup.getOneMessageFromGroup in interface MessageGroupStoregroupId - The group identifier.Message.public Collection<Message<?>> getMessagesForGroup(Object groupId)
MessageGroupStoregetMessagesForGroup in interface MessageGroupStoregroupId - The group id to retrieve messages for.public Iterator<MessageGroup> iterator()
iterator in interface Iterable<MessageGroup>iterator in interface MessageGroupStoreMessageGroups.public int messageGroupSize(Object groupId)
BasicMessageGroupStoremessageGroupSize in interface BasicMessageGroupStoregroupId - The group identifier.protected abstract void doRemoveAll(Collection<Object> ids)
protected abstract Collection<?> doListKeys(String keyPattern)