|
|||||||||
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.
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). |
|
int |
getMarkedMessageCountForAllMessageGroups()
Optional attribute giving the number of marked messages in the store for all groups. |
|
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. |
|
int |
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(java.lang.String base)
Replace patterns in the input to produce a valid SQL query. |
|
java.util.Iterator<MessageGroup> |
iterator()
|
|
MessageGroup |
markMessageFromGroup(java.lang.Object groupId,
Message<?> messageToMark)
Persist a mark on a single message from the group. |
|
MessageGroup |
markMessageGroup(MessageGroup group)
Persist the mark on all the messages from the group. |
|
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(Deserializer<? extends Message<?>> deserializer)
A converter for deserializing byte arrays to messages. |
|
void |
setJdbcTemplate(JdbcOperations jdbcTemplate)
The JdbcOperations to use when interacting with the database. |
|
void |
setLobHandler(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(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, registerMessageGroupExpiryCallback, setExpiryCallbacks |
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 |
---|
protected java.lang.String getQuery(java.lang.String base)
base
- the SQL query to be transformed
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(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(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(Serializer<? super Message<?>> serializer)
serializer
- the serializer to setpublic void setDeserializer(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 int 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 getMarkedMessageCountForAllMessageGroups()
MessageGroupStore
getMarkedMessageCountForAllMessageGroups
in interface MessageGroupStore
getMarkedMessageCountForAllMessageGroups
in class AbstractMessageGroupStore
public MessageGroup getMessageGroup(java.lang.Object groupId)
MessageGroupStore
MessageGroupStore.addMessageToGroup(Object, Message)
with this group id.
getMessageGroup
in interface MessageGroupStore
public MessageGroup markMessageGroup(MessageGroup group)
MessageGroupStore
markMessageGroup
in interface MessageGroupStore
group
- a MessageGroup with no unmarked messagespublic 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 MessageGroup markMessageFromGroup(java.lang.Object groupId, Message<?> messageToMark)
markMessageFromGroup
in interface MessageGroupStore
groupId
- the groupId for the group containing the messagemessageToMark
- the message to be markedpublic void removeMessageGroup(java.lang.Object groupId)
MessageGroupStore
removeMessageGroup
in interface MessageGroupStore
groupId
- the id of the group to removepublic java.util.Iterator<MessageGroup> iterator()
iterator
in interface java.lang.Iterable<MessageGroup>
iterator
in class AbstractMessageGroupStore
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |