|
Spring Integration | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.integration.store.AbstractMessageGroupStore org.springframework.integration.jdbc.JdbcMessageStore
@ManagedResource public class JdbcMessageStore
Implementation of MessageStore
using a relational database via JDBC. SQL scripts to create the necessary
tables are packaged as org/springframework/integration/jdbc/schema-*.sql
, where *
is the
target database type.
Notice: Starting with Spring Integration 3.0, this class will move to package:
org.springframework.integration.jdbc.store
.
If you intend backing a MessageChannel
using a JDBC-based Message Store,
please consider using the channel-specific JdbcChannelMessageStore
instead.
Field Summary | |
---|---|
static java.lang.String |
CREATED_DATE_KEY
The name of the message header that stores a timestamp for the time the message was inserted. |
static int |
DEFAULT_LONG_STRING_LENGTH
|
static java.lang.String |
DEFAULT_TABLE_PREFIX
Default value for the table prefix property. |
static java.lang.String |
SAVED_KEY
The name of the message header that stores a flag to indicate that the message has been saved. |
Constructor Summary | |
---|---|
JdbcMessageStore()
Convenient constructor for configuration use. |
|
JdbcMessageStore(javax.sql.DataSource dataSource)
Create a MessageStore with all mandatory properties. |
Method Summary | ||
---|---|---|
|
addMessage(Message<T> message)
Put the provided Message into the MessageStore. |
|
MessageGroup |
addMessageToGroup(java.lang.Object groupId,
Message<?> message)
Store a message with an association to a group id. |
|
void |
afterPropertiesSet()
Check mandatory properties (data source and incrementer). |
|
void |
completeGroup(java.lang.Object groupId)
Completes this MessageGroup. |
|
protected Message<?> |
doPollForMessage(java.lang.String groupIdKey)
This method executes a call to the DB to get the oldest Message in the MessageGroup Override this method if need to. |
|
protected org.springframework.jdbc.core.JdbcOperations |
getJdbcOperations()
To be used to get a reference to JdbcOperations in case this class is subclassed |
|
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. |
|
int |
getMessageCountForAllMessageGroups()
Optional attribute giving the number of messages in the store over all groups. |
|
MessageGroup |
getMessageGroup(java.lang.Object groupId)
Return all Messages currently in the MessageStore that were stored using MessageGroupStore.addMessageToGroup(Object, Message) with this group id. |
|
int |
getMessageGroupCount()
Optional attribute giving the number of message groups. |
|
protected java.lang.String |
getQuery(org.springframework.integration.jdbc.JdbcMessageStore.Query base)
Replace patterns in the input to produce a valid SQL query. |
|
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)
Persist a deletion on a single message from the group. |
|
void |
removeMessageGroup(java.lang.Object groupId)
Remove the message group with this id. |
|
void |
setDataSource(javax.sql.DataSource dataSource)
The JDBC DataSource to use when interacting with the database. |
|
void |
setDeserializer(org.springframework.core.serializer.Deserializer<? extends Message<?>> deserializer)
A converter for deserializing byte arrays to messages. |
|
void |
setJdbcTemplate(org.springframework.jdbc.core.JdbcOperations jdbcTemplate)
The JdbcOperations to use when interacting with the database. |
|
void |
setLastReleasedSequenceNumberForGroup(java.lang.Object groupId,
int sequenceNumber)
Allows you to set the sequence number of the last released Message. |
|
void |
setLobHandler(org.springframework.jdbc.support.lob.LobHandler lobHandler)
Override the LobHandler that is used to create and unpack large objects in SQL queries. |
|
void |
setRegion(java.lang.String region)
A unique grouping identifier for all messages persisted with this store. |
|
void |
setSerializer(org.springframework.core.serializer.Serializer<? super Message<?>> serializer)
A converter for serializing messages to byte arrays for storage. |
|
void |
setTablePrefix(java.lang.String tablePrefix)
Public setter for the table prefix property. |
Methods inherited from class org.springframework.integration.store.AbstractMessageGroupStore |
---|
expireMessageGroups, isTimeoutOnIdle, registerMessageGroupExpiryCallback, setExpiryCallbacks, setTimeoutOnIdle |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final java.lang.String DEFAULT_TABLE_PREFIX
public static final int DEFAULT_LONG_STRING_LENGTH
public static final java.lang.String SAVED_KEY
public static final java.lang.String CREATED_DATE_KEY
Constructor Detail |
---|
public JdbcMessageStore()
public JdbcMessageStore(javax.sql.DataSource dataSource)
MessageStore
with all mandatory properties.
dataSource
- a DataSource
Method Detail |
---|
public void setTablePrefix(java.lang.String tablePrefix)
DEFAULT_TABLE_PREFIX
.
tablePrefix
- the tablePrefix to setpublic void setRegion(java.lang.String region)
DEFAULT
.
region
- the region name to setpublic void setDataSource(javax.sql.DataSource dataSource)
DataSource
to use when interacting with the database. Either this property can be set or the
jdbcTemplate
.
dataSource
- a DataSource
public void setJdbcTemplate(org.springframework.jdbc.core.JdbcOperations jdbcTemplate)
JdbcOperations
to use when interacting with the database. Either this property can be set or the
dataSource
.
jdbcTemplate
- a JdbcOperations
public void setLobHandler(org.springframework.jdbc.support.lob.LobHandler lobHandler)
LobHandler
that is used to create and unpack large objects in SQL queries. The default is
fine for almost all platforms, but some Oracle drivers require a native implementation.
lobHandler
- a LobHandler
public void setSerializer(org.springframework.core.serializer.Serializer<? super Message<?>> serializer)
serializer
- the serializer to setpublic void setDeserializer(org.springframework.core.serializer.Deserializer<? extends Message<?>> deserializer)
deserializer
- the deserializer to setpublic void afterPropertiesSet() throws java.lang.Exception
java.lang.Exception
public Message<?> removeMessage(java.util.UUID id)
MessageStore
removeMessage
in interface MessageStore
@ManagedAttribute public long getMessageCount()
MessageStore
getMessageCount
in interface MessageStore
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 MessageGroup addMessageToGroup(java.lang.Object groupId, Message<?> message)
MessageGroupStore
addMessageToGroup
in interface MessageGroupStore
groupId
- the group id to store the message undermessage
- a message@ManagedAttribute public int getMessageGroupCount()
MessageGroupStore
getMessageGroupCount
in interface MessageGroupStore
getMessageGroupCount
in class AbstractMessageGroupStore
@ManagedAttribute public int getMessageCountForAllMessageGroups()
MessageGroupStore
getMessageCountForAllMessageGroups
in interface MessageGroupStore
getMessageCountForAllMessageGroups
in class AbstractMessageGroupStore
@ManagedAttribute public int messageGroupSize(java.lang.Object groupId)
MessageGroupStore
messageGroupSize
in interface MessageGroupStore
public MessageGroup getMessageGroup(java.lang.Object groupId)
MessageGroupStore
MessageGroupStore.addMessageToGroup(Object, Message)
with this group id.
getMessageGroup
in interface MessageGroupStore
public MessageGroup removeMessageFromGroup(java.lang.Object groupId, Message<?> messageToRemove)
MessageGroupStore
removeMessageFromGroup
in interface MessageGroupStore
groupId
- the groupId for the group containing the messagemessageToRemove
- the message to be removedpublic void removeMessageGroup(java.lang.Object groupId)
MessageGroupStore
removeMessageGroup
in interface MessageGroupStore
groupId
- the id of the group to removepublic void completeGroup(java.lang.Object groupId)
MessageGroupStore
completeGroup
in interface MessageGroupStore
public 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
s
iterator
in interface java.lang.Iterable<MessageGroup>
iterator
in interface MessageGroupStore
protected java.lang.String getQuery(org.springframework.integration.jdbc.JdbcMessageStore.Query base)
base
- the SQL query to be transformed
protected org.springframework.jdbc.core.JdbcOperations getJdbcOperations()
protected Message<?> doPollForMessage(java.lang.String groupIdKey)
groupIdKey
- String representation of message group ID
|
Spring Integration | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |